From 30809e16faea26ddbcaa726c7b5119cd246100b3 Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Tue, 28 Feb 2023 08:26:14 +1100 Subject: [PATCH] Update go dependencies (#3480) * Bump golang.org/x/text from 0.3.7 to 0.3.8 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.7 to 0.3.8. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.3.7...v0.3.8) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Update go dependencies * Update x/net --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 24 +- go.sum | 50 +- tools.go | 1 + vendor/github.com/99designs/gqlgen/.gitignore | 2 + .../github.com/99designs/gqlgen/CHANGELOG.md | 2370 +++- vendor/github.com/99designs/gqlgen/README.md | 14 +- .../99designs/gqlgen/RELEASE-CHECKLIST.md | 7 +- vendor/github.com/99designs/gqlgen/TESTING.md | 3 +- .../99designs/gqlgen/api/generate.go | 16 +- .../99designs/gqlgen/codegen/args.go | 12 +- .../99designs/gqlgen/codegen/config/binder.go | 55 +- .../99designs/gqlgen/codegen/config/config.go | 63 +- .../gqlgen/codegen/config/package.go | 1 + .../99designs/gqlgen/codegen/data.go | 48 + .../99designs/gqlgen/codegen/directives.gotpl | 10 +- .../99designs/gqlgen/codegen/field.go | 56 +- .../99designs/gqlgen/codegen/field.gotpl | 91 +- .../99designs/gqlgen/codegen/generate.go | 11 +- .../99designs/gqlgen/codegen/generated!.gotpl | 33 +- .../99designs/gqlgen/codegen/input.gotpl | 27 +- .../99designs/gqlgen/codegen/object.go | 34 +- .../99designs/gqlgen/codegen/object.gotpl | 55 +- .../99designs/gqlgen/codegen/root_.gotpl | 39 +- .../gqlgen/codegen/templates/import.go | 4 +- .../gqlgen/codegen/templates/templates.go | 315 +- .../gqlgen/codegen/templates/test.gotpl | 1 + .../gqlgen/codegen/templates/test_.gotpl | 1 + .../99designs/gqlgen/codegen/type.gotpl | 22 +- .../99designs/gqlgen/codegen/util.go | 1 + .../99designs/gqlgen/graphql/context_field.go | 19 + .../gqlgen/graphql/context_operation.go | 14 +- .../99designs/gqlgen/graphql/errcode/codes.go | 19 +- .../99designs/gqlgen/graphql/error.go | 3 +- .../gqlgen/graphql/executable_schema.go | 5 + .../gqlgen/graphql/executor/executor.go | 57 +- .../99designs/gqlgen/graphql/handler.go | 17 +- .../gqlgen/graphql/handler/server.go | 3 +- .../graphql/handler/transport/http_form.go | 196 +- .../graphql/handler/transport/http_get.go | 24 +- .../graphql/handler/transport/http_post.go | 63 +- .../graphql/handler/transport/options.go | 15 +- .../graphql/handler/transport/reader.go | 28 +- .../gqlgen/graphql/handler/transport/sse.go | 110 + .../graphql/handler/transport/websocket.go | 43 +- .../websocket_graphql_transport_ws.go | 2 +- .../handler/transport/websocket_graphqlws.go | 2 +- .../transport/websocket_resolver_error.go | 69 + .../99designs/gqlgen/graphql/input.go | 55 + .../graphql/playground/altair_playground.go | 84 + .../gqlgen/graphql/playground/playground.go | 90 +- .../99designs/gqlgen/graphql/stats.go | 4 +- .../99designs/gqlgen/graphql/string.go | 5 +- .../99designs/gqlgen/graphql/upload.go | 2 +- .../99designs/gqlgen/graphql/version.go | 2 +- .../gqlgen/init-templates/gqlgen.yml.gotmpl | 15 +- .../99designs/gqlgen/internal/code/compare.go | 21 +- .../99designs/gqlgen/internal/code/imports.go | 31 +- .../gqlgen/internal/code/packages.go | 2 +- .../gqlgen/internal/rewrite/rewriter.go | 26 +- vendor/github.com/99designs/gqlgen/main.go | 57 +- .../gqlgen/plugin/federation/entity.go | 109 + .../gqlgen/plugin/federation/federation.go | 118 +- .../plugin/federation/fieldset/fieldset.go | 12 - .../gqlgen/plugin/modelgen/models.go | 365 +- .../gqlgen/plugin/modelgen/models.gotpl | 50 +- .../gqlgen/plugin/resolvergen/resolver.go | 32 +- .../gqlgen/plugin/resolvergen/resolver.gotpl | 3 +- .../gqlgen/plugin/servergen/server.go | 5 + vendor/github.com/99designs/gqlgen/tools.go | 8 - vendor/github.com/gorilla/websocket/README.md | 39 +- vendor/github.com/gorilla/websocket/client.go | 77 +- .../gorilla/websocket/client_clone.go | 16 - .../gorilla/websocket/client_clone_legacy.go | 38 - vendor/github.com/gorilla/websocket/conn.go | 63 +- .../gorilla/websocket/conn_write.go | 15 - .../gorilla/websocket/conn_write_legacy.go | 18 - vendor/github.com/gorilla/websocket/mask.go | 1 + .../github.com/gorilla/websocket/mask_safe.go | 1 + vendor/github.com/gorilla/websocket/proxy.go | 2 +- vendor/github.com/gorilla/websocket/server.go | 8 +- .../gorilla/websocket/tls_handshake.go | 21 + .../gorilla/websocket/tls_handshake_116.go | 21 + vendor/github.com/gorilla/websocket/trace.go | 19 - .../github.com/gorilla/websocket/trace_17.go | 12 - vendor/github.com/matryer/moq/.gitignore | 29 - vendor/github.com/matryer/moq/.goreleaser.yml | 34 - vendor/github.com/matryer/moq/LICENSE | 21 - vendor/github.com/matryer/moq/README.md | 135 - .../moq/internal/registry/method_scope.go | 135 - .../matryer/moq/internal/registry/package.go | 93 - .../matryer/moq/internal/registry/registry.go | 190 - .../matryer/moq/internal/registry/var.go | 146 - .../matryer/moq/internal/template/template.go | 190 - .../moq/internal/template/template_data.go | 125 - vendor/github.com/matryer/moq/main.go | 109 - .../github.com/matryer/moq/moq-logo-small.png | Bin 32570 -> 0 bytes vendor/github.com/matryer/moq/moq-logo.png | Bin 29562 -> 0 bytes .../matryer/moq/pkg/moq/formatter.go | 31 - vendor/github.com/matryer/moq/pkg/moq/moq.go | 171 - vendor/github.com/matryer/moq/preview.png | Bin 743543 -> 0 bytes vendor/github.com/matryer/moq/releasing.md | 36 - .../mitchellh/mapstructure/CHANGELOG.md | 13 + .../mitchellh/mapstructure/decode_hooks.go | 22 + .../mitchellh/mapstructure/mapstructure.go | 83 +- .../testify/assert/assertion_compare.go | 54 +- .../assert/assertion_compare_can_convert.go | 16 + .../assert/assertion_compare_legacy.go | 16 + .../testify/assert/assertion_format.go | 12 + .../testify/assert/assertion_forward.go | 24 + .../testify/assert/assertion_order.go | 8 +- .../stretchr/testify/assert/assertions.go | 112 +- .../github.com/stretchr/testify/mock/mock.go | 10 +- vendor/github.com/urfave/cli/v2/.gitignore | 3 +- .../urfave/cli/v2/CODE_OF_CONDUCT.md | 11 +- vendor/github.com/urfave/cli/v2/LICENSE | 2 +- vendor/github.com/urfave/cli/v2/Makefile | 40 + vendor/github.com/urfave/cli/v2/README.md | 65 +- vendor/github.com/urfave/cli/v2/app.go | 156 +- vendor/github.com/urfave/cli/v2/category.go | 94 +- vendor/github.com/urfave/cli/v2/cli.go | 2 +- vendor/github.com/urfave/cli/v2/command.go | 53 +- vendor/github.com/urfave/cli/v2/context.go | 56 +- vendor/github.com/urfave/cli/v2/docs.go | 7 +- vendor/github.com/urfave/cli/v2/fish.go | 2 +- .../github.com/urfave/cli/v2/flag-spec.yaml | 50 + vendor/github.com/urfave/cli/v2/flag.go | 109 +- vendor/github.com/urfave/cli/v2/flag_bool.go | 68 +- .../github.com/urfave/cli/v2/flag_duration.go | 68 +- .../github.com/urfave/cli/v2/flag_float64.go | 70 +- .../urfave/cli/v2/flag_float64_slice.go | 77 +- .../github.com/urfave/cli/v2/flag_generic.go | 68 +- vendor/github.com/urfave/cli/v2/flag_int.go | 68 +- vendor/github.com/urfave/cli/v2/flag_int64.go | 68 +- .../urfave/cli/v2/flag_int64_slice.go | 79 +- .../urfave/cli/v2/flag_int_slice.go | 79 +- vendor/github.com/urfave/cli/v2/flag_path.go | 74 +- .../github.com/urfave/cli/v2/flag_string.go | 75 +- .../urfave/cli/v2/flag_string_slice.go | 71 +- .../urfave/cli/v2/flag_timestamp.go | 69 +- vendor/github.com/urfave/cli/v2/flag_uint.go | 68 +- .../github.com/urfave/cli/v2/flag_uint64.go | 68 +- vendor/github.com/urfave/cli/v2/funcs.go | 4 +- .../urfave/cli/v2/godoc-current.txt | 2204 ++++ vendor/github.com/urfave/cli/v2/help.go | 124 +- .../urfave/cli/v2/mkdocs-requirements.txt | 5 + vendor/github.com/urfave/cli/v2/mkdocs.yml | 62 + vendor/github.com/urfave/cli/v2/parse.go | 18 +- .../github.com/urfave/cli/v2/suggestions.go | 60 + vendor/github.com/urfave/cli/v2/template.go | 18 +- .../urfave/cli/v2/zz_generated.flags.go | 672 + .../vektah/gqlparser/v2/ast/decode.go | 216 + .../vektah/gqlparser/v2/ast/definition.go | 2 +- .../vektah/gqlparser/v2/ast/document.go | 10 + .../gqlparser/v2/formatter/formatter.go | 47 +- .../vektah/gqlparser/v2/gqlparser.go | 5 +- .../vektah/gqlparser/v2/lexer/lexer.go | 25 +- .../vektah/gqlparser/v2/lexer/lexer_test.yml | 20 + .../vektah/gqlparser/v2/parser/parser.go | 4 +- .../vektah/gqlparser/v2/parser/query.go | 4 +- .../vektah/gqlparser/v2/parser/schema.go | 5 +- .../gqlparser/v2/parser/schema_test.yml | 2 +- .../vektah/gqlparser/v2/validator/prelude.go | 10 +- .../v2/validator/rules/known_root_type.go | 35 + .../validator/rules/values_of_correct_type.go | 15 +- .../vektah/gqlparser/v2/validator/schema.go | 40 +- .../gqlparser/v2/validator/schema_test.yml | 31 +- .../vektah/gqlparser/v2/validator/vars.go | 44 +- vendor/github.com/xrash/smetrics/.travis.yml | 9 + vendor/github.com/xrash/smetrics/LICENSE | 21 + vendor/github.com/xrash/smetrics/README.md | 49 + vendor/github.com/xrash/smetrics/doc.go | 19 + vendor/github.com/xrash/smetrics/hamming.go | 25 + .../github.com/xrash/smetrics/jaro-winkler.go | 28 + vendor/github.com/xrash/smetrics/jaro.go | 86 + vendor/github.com/xrash/smetrics/soundex.go | 41 + vendor/github.com/xrash/smetrics/ukkonen.go | 94 + .../xrash/smetrics/wagner-fischer.go | 48 + .../golang.org/x/net/bpf/vm_instructions.go | 4 +- vendor/golang.org/x/net/html/parse.go | 4 +- vendor/golang.org/x/net/html/render.go | 4 +- vendor/golang.org/x/net/html/token.go | 61 +- .../x/net/internal/socket/mmsghdr_unix.go | 18 +- .../x/net/internal/socket/msghdr_linux.go | 3 - .../x/net/internal/socket/rawconn_msg.go | 48 +- .../x/net/internal/socket/sys_stub.go | 6 +- .../x/net/internal/socket/sys_unix.go | 101 +- .../x/net/internal/socket/sys_windows.go | 7 +- .../x/net/internal/socket/sys_zos_s390x.go | 38 +- .../x/net/internal/socket/zsys_darwin_arm.go | 30 - ..._darwin_386.go => zsys_freebsd_riscv64.go} | 8 +- .../net/internal/socket/zsys_openbsd_ppc64.go | 30 + .../internal/socket/zsys_openbsd_riscv64.go | 30 + .../x/net/ipv4/zsys_freebsd_riscv64.go | 52 + .../x/net/publicsuffix/data/children | Bin 0 -> 2876 bytes .../golang.org/x/net/publicsuffix/data/nodes | Bin 0 -> 48280 bytes .../golang.org/x/net/publicsuffix/data/text | 1 + vendor/golang.org/x/net/publicsuffix/list.go | 27 +- vendor/golang.org/x/net/publicsuffix/table.go | 10567 +--------------- vendor/golang.org/x/sys/cpu/cpu_arm64.go | 5 +- vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c | 1 + .../golang.org/x/sys/cpu/cpu_linux_arm64.go | 44 +- .../golang.org/x/sys/cpu/cpu_other_ppc64x.go | 15 + vendor/golang.org/x/sys/cpu/endian_big.go | 11 + vendor/golang.org/x/sys/cpu/endian_little.go | 11 + vendor/golang.org/x/sys/cpu/parse.go | 43 + .../x/sys/cpu/proc_cpuinfo_linux.go | 54 + .../golang.org/x/sys/execabs/execabs_go119.go | 8 +- vendor/golang.org/x/sys/plan9/mkerrors.sh | 4 +- vendor/golang.org/x/sys/plan9/syscall.go | 10 +- vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s | 31 + vendor/golang.org/x/sys/unix/dirent.go | 4 +- vendor/golang.org/x/sys/unix/gccgo.go | 4 +- vendor/golang.org/x/sys/unix/gccgo_c.c | 4 +- vendor/golang.org/x/sys/unix/ioctl.go | 4 +- vendor/golang.org/x/sys/unix/ioctl_linux.go | 20 +- vendor/golang.org/x/sys/unix/mkall.sh | 43 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 4 +- vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 14 + vendor/golang.org/x/sys/unix/str.go | 27 - vendor/golang.org/x/sys/unix/syscall.go | 10 +- .../x/sys/unix/syscall_darwin.1_12.go | 32 - .../x/sys/unix/syscall_darwin.1_13.go | 108 - .../golang.org/x/sys/unix/syscall_darwin.go | 91 + .../x/sys/unix/syscall_dragonfly.go | 1 + .../golang.org/x/sys/unix/syscall_freebsd.go | 1 + .../x/sys/unix/syscall_freebsd_386.go | 9 +- .../x/sys/unix/syscall_freebsd_amd64.go | 9 +- .../x/sys/unix/syscall_freebsd_arm.go | 9 +- .../x/sys/unix/syscall_freebsd_arm64.go | 9 +- .../x/sys/unix/syscall_freebsd_riscv64.go | 9 +- vendor/golang.org/x/sys/unix/syscall_hurd.go | 22 + .../golang.org/x/sys/unix/syscall_hurd_386.go | 29 + .../golang.org/x/sys/unix/syscall_illumos.go | 106 - vendor/golang.org/x/sys/unix/syscall_linux.go | 95 +- .../x/sys/unix/syscall_linux_386.go | 4 - .../x/sys/unix/syscall_linux_amd64.go | 4 - .../x/sys/unix/syscall_linux_arm.go | 4 - .../x/sys/unix/syscall_linux_arm64.go | 4 - .../x/sys/unix/syscall_linux_loong64.go | 4 - .../x/sys/unix/syscall_linux_mips64x.go | 4 - .../x/sys/unix/syscall_linux_mipsx.go | 4 - .../x/sys/unix/syscall_linux_ppc.go | 4 - .../x/sys/unix/syscall_linux_ppc64x.go | 4 - .../x/sys/unix/syscall_linux_riscv64.go | 4 - .../x/sys/unix/syscall_linux_s390x.go | 4 - .../x/sys/unix/syscall_linux_sparc64.go | 4 - .../golang.org/x/sys/unix/syscall_netbsd.go | 15 + .../golang.org/x/sys/unix/syscall_openbsd.go | 1 + .../x/sys/unix/syscall_openbsd_libc.go | 27 + .../x/sys/unix/syscall_openbsd_ppc64.go | 42 + .../x/sys/unix/syscall_openbsd_riscv64.go | 42 + .../golang.org/x/sys/unix/syscall_solaris.go | 216 +- vendor/golang.org/x/sys/unix/syscall_unix.go | 77 +- .../golang.org/x/sys/unix/syscall_unix_gc.go | 6 +- .../x/sys/unix/syscall_zos_s390x.go | 173 +- vendor/golang.org/x/sys/unix/sysvshm_unix.go | 13 +- vendor/golang.org/x/sys/unix/timestruct.go | 2 +- vendor/golang.org/x/sys/unix/xattr_bsd.go | 104 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 30 +- .../x/sys/unix/zerrors_linux_386.go | 1 + .../x/sys/unix/zerrors_linux_amd64.go | 1 + .../x/sys/unix/zerrors_linux_arm.go | 1 + .../x/sys/unix/zerrors_linux_arm64.go | 1 + .../x/sys/unix/zerrors_linux_loong64.go | 1 + .../x/sys/unix/zerrors_linux_mips.go | 1 + .../x/sys/unix/zerrors_linux_mips64.go | 1 + .../x/sys/unix/zerrors_linux_mips64le.go | 1 + .../x/sys/unix/zerrors_linux_mipsle.go | 1 + .../x/sys/unix/zerrors_linux_ppc.go | 1 + .../x/sys/unix/zerrors_linux_ppc64.go | 1 + .../x/sys/unix/zerrors_linux_ppc64le.go | 1 + .../x/sys/unix/zerrors_linux_riscv64.go | 1 + .../x/sys/unix/zerrors_linux_s390x.go | 1 + .../x/sys/unix/zerrors_linux_sparc64.go | 1 + .../x/sys/unix/zerrors_openbsd_386.go | 356 +- .../x/sys/unix/zerrors_openbsd_amd64.go | 189 +- .../x/sys/unix/zerrors_openbsd_arm.go | 348 +- .../x/sys/unix/zerrors_openbsd_arm64.go | 160 +- .../x/sys/unix/zerrors_openbsd_mips64.go | 95 +- .../x/sys/unix/zerrors_openbsd_ppc64.go | 1905 +++ .../x/sys/unix/zerrors_openbsd_riscv64.go | 1904 +++ .../x/sys/unix/zsyscall_darwin_amd64.1_13.go | 40 - .../x/sys/unix/zsyscall_darwin_amd64.1_13.s | 25 - .../x/sys/unix/zsyscall_darwin_amd64.go | 32 +- .../x/sys/unix/zsyscall_darwin_amd64.s | 21 +- .../x/sys/unix/zsyscall_darwin_arm64.1_13.go | 40 - .../x/sys/unix/zsyscall_darwin_arm64.1_13.s | 25 - .../x/sys/unix/zsyscall_darwin_arm64.go | 32 +- .../x/sys/unix/zsyscall_darwin_arm64.s | 21 +- .../x/sys/unix/zsyscall_dragonfly_amd64.go | 10 + .../x/sys/unix/zsyscall_freebsd_386.go | 10 + .../x/sys/unix/zsyscall_freebsd_amd64.go | 10 + .../x/sys/unix/zsyscall_freebsd_arm.go | 10 + .../x/sys/unix/zsyscall_freebsd_arm64.go | 10 + .../x/sys/unix/zsyscall_freebsd_riscv64.go | 10 + .../x/sys/unix/zsyscall_illumos_amd64.go | 28 +- .../golang.org/x/sys/unix/zsyscall_linux.go | 21 + .../x/sys/unix/zsyscall_linux_386.go | 40 - .../x/sys/unix/zsyscall_linux_amd64.go | 40 - .../x/sys/unix/zsyscall_linux_arm.go | 40 - .../x/sys/unix/zsyscall_linux_arm64.go | 40 - .../x/sys/unix/zsyscall_linux_loong64.go | 40 - .../x/sys/unix/zsyscall_linux_mips.go | 40 - .../x/sys/unix/zsyscall_linux_mips64.go | 40 - .../x/sys/unix/zsyscall_linux_mips64le.go | 40 - .../x/sys/unix/zsyscall_linux_mipsle.go | 40 - .../x/sys/unix/zsyscall_linux_ppc.go | 40 - .../x/sys/unix/zsyscall_linux_ppc64.go | 40 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 40 - .../x/sys/unix/zsyscall_linux_riscv64.go | 40 - .../x/sys/unix/zsyscall_linux_s390x.go | 40 - .../x/sys/unix/zsyscall_linux_sparc64.go | 40 - .../x/sys/unix/zsyscall_netbsd_386.go | 10 + .../x/sys/unix/zsyscall_netbsd_amd64.go | 10 + .../x/sys/unix/zsyscall_netbsd_arm.go | 10 + .../x/sys/unix/zsyscall_netbsd_arm64.go | 10 + .../x/sys/unix/zsyscall_openbsd_386.go | 812 +- .../x/sys/unix/zsyscall_openbsd_386.s | 669 + .../x/sys/unix/zsyscall_openbsd_amd64.go | 812 +- .../x/sys/unix/zsyscall_openbsd_amd64.s | 669 + .../x/sys/unix/zsyscall_openbsd_arm.go | 812 +- .../x/sys/unix/zsyscall_openbsd_arm.s | 669 + .../x/sys/unix/zsyscall_openbsd_arm64.go | 812 +- .../x/sys/unix/zsyscall_openbsd_arm64.s | 669 + .../x/sys/unix/zsyscall_openbsd_mips64.go | 812 +- .../x/sys/unix/zsyscall_openbsd_mips64.s | 669 + .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2235 ++++ .../x/sys/unix/zsyscall_openbsd_ppc64.s | 802 ++ .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2235 ++++ .../x/sys/unix/zsyscall_openbsd_riscv64.s | 669 + .../x/sys/unix/zsyscall_solaris_amd64.go | 41 +- .../x/sys/unix/zsysctl_openbsd_386.go | 51 +- .../x/sys/unix/zsysctl_openbsd_amd64.go | 17 +- .../x/sys/unix/zsysctl_openbsd_arm.go | 51 +- .../x/sys/unix/zsysctl_openbsd_arm64.go | 11 +- .../x/sys/unix/zsysctl_openbsd_mips64.go | 3 +- .../x/sys/unix/zsysctl_openbsd_ppc64.go | 281 + .../x/sys/unix/zsysctl_openbsd_riscv64.go | 282 + .../x/sys/unix/zsysnum_openbsd_386.go | 1 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 1 + .../x/sys/unix/zsysnum_openbsd_arm.go | 1 + .../x/sys/unix/zsysnum_openbsd_arm64.go | 1 + .../x/sys/unix/zsysnum_openbsd_mips64.go | 1 + .../x/sys/unix/zsysnum_openbsd_ppc64.go | 218 + .../x/sys/unix/zsysnum_openbsd_riscv64.go | 219 + .../x/sys/unix/ztypes_freebsd_386.go | 17 +- .../x/sys/unix/ztypes_freebsd_amd64.go | 18 +- .../x/sys/unix/ztypes_freebsd_arm.go | 18 +- .../x/sys/unix/ztypes_freebsd_arm64.go | 18 +- .../x/sys/unix/ztypes_freebsd_riscv64.go | 18 +- .../x/sys/unix/ztypes_illumos_amd64.go | 42 - vendor/golang.org/x/sys/unix/ztypes_linux.go | 217 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 6 + .../x/sys/unix/ztypes_linux_amd64.go | 6 + .../golang.org/x/sys/unix/ztypes_linux_arm.go | 6 + .../x/sys/unix/ztypes_linux_arm64.go | 6 + .../x/sys/unix/ztypes_linux_loong64.go | 6 + .../x/sys/unix/ztypes_linux_mips.go | 6 + .../x/sys/unix/ztypes_linux_mips64.go | 6 + .../x/sys/unix/ztypes_linux_mips64le.go | 6 + .../x/sys/unix/ztypes_linux_mipsle.go | 6 + .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 6 + .../x/sys/unix/ztypes_linux_ppc64.go | 6 + .../x/sys/unix/ztypes_linux_ppc64le.go | 6 + .../x/sys/unix/ztypes_linux_riscv64.go | 6 + .../x/sys/unix/ztypes_linux_s390x.go | 6 + .../x/sys/unix/ztypes_linux_sparc64.go | 6 + .../x/sys/unix/ztypes_netbsd_386.go | 84 + .../x/sys/unix/ztypes_netbsd_amd64.go | 84 + .../x/sys/unix/ztypes_netbsd_arm.go | 84 + .../x/sys/unix/ztypes_netbsd_arm64.go | 84 + .../x/sys/unix/ztypes_openbsd_386.go | 97 +- .../x/sys/unix/ztypes_openbsd_amd64.go | 33 +- .../x/sys/unix/ztypes_openbsd_arm.go | 9 +- .../x/sys/unix/ztypes_openbsd_arm64.go | 9 +- .../x/sys/unix/ztypes_openbsd_mips64.go | 9 +- .../x/sys/unix/ztypes_openbsd_ppc64.go | 571 + .../x/sys/unix/ztypes_openbsd_riscv64.go | 571 + .../x/sys/unix/ztypes_solaris_amd64.go | 35 + .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 11 +- .../x/sys/windows/setupapi_windows.go | 2 +- vendor/golang.org/x/sys/windows/syscall.go | 10 +- .../x/sys/windows/syscall_windows.go | 50 +- .../golang.org/x/sys/windows/types_windows.go | 45 + .../x/sys/windows/zsyscall_windows.go | 95 + vendor/golang.org/x/term/AUTHORS | 3 - vendor/golang.org/x/term/CONTRIBUTORS | 3 - vendor/golang.org/x/term/term.go | 10 +- vendor/golang.org/x/term/terminal.go | 3 +- vendor/golang.org/x/text/AUTHORS | 3 - vendor/golang.org/x/text/CONTRIBUTORS | 3 - vendor/golang.org/x/text/cases/trieval.go | 73 +- .../x/text/encoding/htmlindex/tables.go | 9 + .../text/encoding/internal/identifier/mib.go | 8 + .../x/text/encoding/simplifiedchinese/gbk.go | 6 +- .../x/text/internal/colltab/collelem.go | 39 +- .../internal/language/compact/language.go | 2 +- .../text/internal/language/compact/tables.go | 6 +- .../x/text/internal/language/language.go | 2 +- .../x/text/internal/language/lookup.go | 4 +- .../x/text/internal/language/parse.go | 24 +- .../x/text/internal/language/tables.go | 868 +- .../internal/utf8internal/utf8internal.go | 2 +- vendor/golang.org/x/text/language/doc.go | 44 +- vendor/golang.org/x/text/language/go1_1.go | 39 - vendor/golang.org/x/text/language/go1_2.go | 12 - vendor/golang.org/x/text/language/language.go | 2 +- vendor/golang.org/x/text/language/match.go | 2 +- vendor/golang.org/x/text/language/parse.go | 8 +- vendor/golang.org/x/text/language/tables.go | 18 +- vendor/golang.org/x/text/runes/runes.go | 2 +- .../x/text/unicode/norm/forminfo.go | 9 +- .../x/text/unicode/norm/normalize.go | 11 +- .../x/text/unicode/norm/tables13.0.0.go | 4 +- vendor/gopkg.in/yaml.v3/decode.go | 78 +- vendor/gopkg.in/yaml.v3/parserc.go | 11 +- vendor/modules.txt | 33 +- 417 files changed, 32289 insertions(+), 17730 deletions(-) create mode 100644 vendor/github.com/99designs/gqlgen/codegen/templates/test.gotpl create mode 100644 vendor/github.com/99designs/gqlgen/codegen/templates/test_.gotpl create mode 100644 vendor/github.com/99designs/gqlgen/graphql/handler/transport/sse.go create mode 100644 vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_resolver_error.go create mode 100644 vendor/github.com/99designs/gqlgen/graphql/input.go create mode 100644 vendor/github.com/99designs/gqlgen/graphql/playground/altair_playground.go create mode 100644 vendor/github.com/99designs/gqlgen/plugin/federation/entity.go delete mode 100644 vendor/github.com/99designs/gqlgen/tools.go delete mode 100644 vendor/github.com/gorilla/websocket/client_clone.go delete mode 100644 vendor/github.com/gorilla/websocket/client_clone_legacy.go delete mode 100644 vendor/github.com/gorilla/websocket/conn_write.go delete mode 100644 vendor/github.com/gorilla/websocket/conn_write_legacy.go create mode 100644 vendor/github.com/gorilla/websocket/tls_handshake.go create mode 100644 vendor/github.com/gorilla/websocket/tls_handshake_116.go delete mode 100644 vendor/github.com/gorilla/websocket/trace.go delete mode 100644 vendor/github.com/gorilla/websocket/trace_17.go delete mode 100644 vendor/github.com/matryer/moq/.gitignore delete mode 100644 vendor/github.com/matryer/moq/.goreleaser.yml delete mode 100644 vendor/github.com/matryer/moq/LICENSE delete mode 100644 vendor/github.com/matryer/moq/README.md delete mode 100644 vendor/github.com/matryer/moq/internal/registry/method_scope.go delete mode 100644 vendor/github.com/matryer/moq/internal/registry/package.go delete mode 100644 vendor/github.com/matryer/moq/internal/registry/registry.go delete mode 100644 vendor/github.com/matryer/moq/internal/registry/var.go delete mode 100644 vendor/github.com/matryer/moq/internal/template/template.go delete mode 100644 vendor/github.com/matryer/moq/internal/template/template_data.go delete mode 100644 vendor/github.com/matryer/moq/main.go delete mode 100644 vendor/github.com/matryer/moq/moq-logo-small.png delete mode 100644 vendor/github.com/matryer/moq/moq-logo.png delete mode 100644 vendor/github.com/matryer/moq/pkg/moq/formatter.go delete mode 100644 vendor/github.com/matryer/moq/pkg/moq/moq.go delete mode 100644 vendor/github.com/matryer/moq/preview.png delete mode 100644 vendor/github.com/matryer/moq/releasing.md create mode 100644 vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go create mode 100644 vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go create mode 100644 vendor/github.com/urfave/cli/v2/Makefile create mode 100644 vendor/github.com/urfave/cli/v2/flag-spec.yaml create mode 100644 vendor/github.com/urfave/cli/v2/godoc-current.txt create mode 100644 vendor/github.com/urfave/cli/v2/mkdocs-requirements.txt create mode 100644 vendor/github.com/urfave/cli/v2/mkdocs.yml create mode 100644 vendor/github.com/urfave/cli/v2/suggestions.go create mode 100644 vendor/github.com/urfave/cli/v2/zz_generated.flags.go create mode 100644 vendor/github.com/vektah/gqlparser/v2/ast/decode.go create mode 100644 vendor/github.com/vektah/gqlparser/v2/validator/rules/known_root_type.go create mode 100644 vendor/github.com/xrash/smetrics/.travis.yml create mode 100644 vendor/github.com/xrash/smetrics/LICENSE create mode 100644 vendor/github.com/xrash/smetrics/README.md create mode 100644 vendor/github.com/xrash/smetrics/doc.go create mode 100644 vendor/github.com/xrash/smetrics/hamming.go create mode 100644 vendor/github.com/xrash/smetrics/jaro-winkler.go create mode 100644 vendor/github.com/xrash/smetrics/jaro.go create mode 100644 vendor/github.com/xrash/smetrics/soundex.go create mode 100644 vendor/github.com/xrash/smetrics/ukkonen.go create mode 100644 vendor/github.com/xrash/smetrics/wagner-fischer.go delete mode 100644 vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go rename vendor/golang.org/x/net/internal/socket/{zsys_darwin_386.go => zsys_freebsd_riscv64.go} (79%) create mode 100644 vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/net/publicsuffix/data/children create mode 100644 vendor/golang.org/x/net/publicsuffix/data/nodes create mode 100644 vendor/golang.org/x/net/publicsuffix/data/text create mode 100644 vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go create mode 100644 vendor/golang.org/x/sys/cpu/endian_big.go create mode 100644 vendor/golang.org/x/sys/cpu/endian_little.go create mode 100644 vendor/golang.org/x/sys/cpu/parse.go create mode 100644 vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s delete mode 100644 vendor/golang.org/x/sys/unix/str.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/term/AUTHORS delete mode 100644 vendor/golang.org/x/term/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/text/AUTHORS delete mode 100644 vendor/golang.org/x/text/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/text/language/go1_1.go delete mode 100644 vendor/golang.org/x/text/language/go1_2.go diff --git a/go.mod b/go.mod index 8155adaeb..bd72e1d5e 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,7 @@ module github.com/stashapp/stash require ( - github.com/99designs/gqlgen v0.17.2 + github.com/99designs/gqlgen v0.17.24 github.com/Yamashou/gqlgenc v0.0.6 github.com/anacrolix/dms v1.2.2 github.com/antchfx/htmlquery v1.2.5-0.20211125074323-810ee8082758 @@ -15,7 +15,7 @@ require ( github.com/golang-migrate/migrate/v4 v4.15.0-beta.1 github.com/gorilla/securecookie v1.1.1 github.com/gorilla/sessions v1.2.0 - github.com/gorilla/websocket v1.4.2 + github.com/gorilla/websocket v1.5.0 github.com/jinzhu/copier v0.0.0-20190924061706-b57f9002281a github.com/jmoiron/sqlx v1.3.1 github.com/json-iterator/go v1.1.12 @@ -30,16 +30,16 @@ require ( github.com/spf13/afero v1.8.2 // indirect github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.10.1 - github.com/stretchr/testify v1.7.0 + github.com/stretchr/testify v1.7.1 github.com/tidwall/gjson v1.9.3 github.com/tidwall/pretty v1.2.0 // indirect github.com/vektra/mockery/v2 v2.10.0 golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb - golang.org/x/net v0.0.0-20220722155237-a158d28d115b - golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 - golang.org/x/text v0.3.7 + golang.org/x/net v0.7.0 + golang.org/x/sys v0.5.0 + golang.org/x/term v0.5.0 + golang.org/x/text v0.7.0 golang.org/x/tools v0.1.12 // indirect gopkg.in/sourcemap.v1 v1.0.5 // indirect gopkg.in/yaml.v2 v2.4.0 @@ -57,7 +57,7 @@ require ( github.com/spf13/cast v1.4.1 github.com/vearutop/statigz v1.1.6 github.com/vektah/dataloaden v0.3.0 - github.com/vektah/gqlparser/v2 v2.4.1 + github.com/vektah/gqlparser/v2 v2.5.1 github.com/xWTF/chardet v0.0.0-20230208095535-c780f2ac244e gopkg.in/guregu/null.v4 v4.0.0 ) @@ -83,9 +83,8 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/matryer/moq v0.2.6 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect @@ -100,11 +99,12 @@ require ( github.com/stretchr/objx v0.2.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect github.com/tidwall/match v1.1.1 // indirect - github.com/urfave/cli/v2 v2.4.0 // indirect + github.com/urfave/cli/v2 v2.8.1 // indirect + github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect gopkg.in/ini.v1 v1.66.4 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace git.apache.org/thrift.git => github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999 diff --git a/go.sum b/go.sum index 25007a2b1..c21e73521 100644 --- a/go.sum +++ b/go.sum @@ -50,8 +50,9 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/99designs/gqlgen v0.17.2 h1:yczvlwMsfcVu/JtejqfrLwXuSP0yZFhmcss3caEvHw8= github.com/99designs/gqlgen v0.17.2/go.mod h1:K5fzLKwtph+FFgh9j7nFbRUdBKvTcGnsta51fsMTn3o= +github.com/99designs/gqlgen v0.17.24 h1:pcd/HFIoSdRvyADYQG2dHvQN2KZqX/nXzlVm6TMMq7E= +github.com/99designs/gqlgen v0.17.24/go.mod h1:BMhYIhe4bp7OlCo5I2PnowSK/Wimpv/YlxfNkqZGwLo= github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-storage-blob-go v0.13.0/go.mod h1:pA9kNqtjUeQF2zOSu4s//nUdBD+e64lEuc4sVnuOfNs= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= @@ -63,6 +64,7 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.4.3/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= @@ -396,8 +398,9 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ= github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= @@ -556,8 +559,7 @@ github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsI github.com/markbates/pkger v0.15.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/matryer/moq v0.2.3/go.mod h1:9RtPYjTnH1bSBIkpvtHkFN7nbWAnO7oRpdJkEIn6UtE= -github.com/matryer/moq v0.2.6 h1:X4+LF09udTsi2P+Z+1UhSb4p3K8IyiF7KSNFDR9M3M0= -github.com/matryer/moq v0.2.6/go.mod h1:kITsx543GOENm48TUAQyJ9+SAvFSr7iGQXPoth/VUBk= +github.com/matryer/moq v0.2.7/go.mod h1:kITsx543GOENm48TUAQyJ9+SAvFSr7iGQXPoth/VUBk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -565,6 +567,7 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -575,6 +578,7 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.7 h1:fxWBnXkxfM6sRiuH3bqJ4CfzZojMOLVc0UTsTglEghA= @@ -591,8 +595,9 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.2.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -734,8 +739,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tidwall/gjson v1.9.3 h1:hqzS9wAHMO+KVBBkLxYdkEeeFHuqr95GfClRLKlgK0E= @@ -748,15 +754,16 @@ github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhso github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.4.0 h1:m2pxjjDFgDxSPtO8WSdbndj17Wu2y8vOT86wE/tjr+I= -github.com/urfave/cli/v2 v2.4.0/go.mod h1:NX9W0zmTvedE5oDoOMs2RTC8RvdK98NTYZE5LbaEYPg= +github.com/urfave/cli/v2 v2.8.1 h1:CGuYNZF9IKZY/rfBe3lJpccSoIY1ytfvmgQT90cNOl4= +github.com/urfave/cli/v2 v2.8.1/go.mod h1:Z41J9TPoffeoqP0Iza0YbAhGvymRdZAd2uPmZ5JxRdY= github.com/vearutop/statigz v1.1.6 h1:si1zvulh/6P4S/SjFticuKQ8/EgQISglaRuycj8PWso= github.com/vearutop/statigz v1.1.6/go.mod h1:czAv7iXgPv/s+xsgXpVEhhD0NSOQ4wZPgmM/n7LANDI= github.com/vektah/dataloaden v0.3.0 h1:ZfVN2QD6swgvp+tDqdH/OIT/wu3Dhu0cus0k5gIZS84= github.com/vektah/dataloaden v0.3.0/go.mod h1:/HUdMve7rvxZma+2ZELQeNh88+003LL7Pf/CZ089j8U= github.com/vektah/gqlparser/v2 v2.4.0/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= -github.com/vektah/gqlparser/v2 v2.4.1 h1:QOyEn8DAPMUMARGMeshKDkDgNmVoEaEGiDB0uWxcSlQ= github.com/vektah/gqlparser/v2 v2.4.1/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= +github.com/vektah/gqlparser/v2 v2.5.1 h1:ZGu+bquAY23jsxDRcYpWjttRZrUz07LbiY77gUOHcr4= +github.com/vektah/gqlparser/v2 v2.5.1/go.mod h1:mPgqFBu/woKTVYWyNk8cO3kh4S/f4aRFZrvOnp3hmCs= github.com/vektra/mockery/v2 v2.10.0 h1:MiiQWxwdq7/ET6dCXLaJzSGEN17k758H7JHS9kOdiks= github.com/vektra/mockery/v2 v2.10.0/go.mod h1:m/WO2UzWzqgVX3nvqpRQq70I4Z7jbSCRhdmkgtp+Ab4= github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= @@ -766,6 +773,8 @@ github.com/xanzy/go-gitlab v0.15.0/go.mod h1:8zdQa/ri1dfn8eS3Ir1SyfvOKlw7WBJ8DVT github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -774,6 +783,7 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b/go.mod h1:T3BPAOm2cqquPa0MKWeNkmOM5RQsRhkrwMWonFMN7fE= go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= @@ -924,8 +934,9 @@ golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -958,6 +969,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1050,11 +1062,15 @@ golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 h1:v1W7bwXHsnLLloWYTVEdvGvA7BHMeBYsPcF0GLDxIRs= -golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1063,8 +1079,10 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1303,6 +1321,7 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1332,8 +1351,9 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/postgres v1.0.8/go.mod h1:4eOzrI1MUfm6ObJU/UcmbXyiHSs8jSwH95G5P5dxcAg= gorm.io/gorm v1.20.12/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.21.4/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= diff --git a/tools.go b/tools.go index adc47d7e9..cb92a06fb 100644 --- a/tools.go +++ b/tools.go @@ -5,6 +5,7 @@ package main import ( _ "github.com/99designs/gqlgen" + _ "github.com/99designs/gqlgen/graphql/introspection" _ "github.com/Yamashou/gqlgenc" _ "github.com/vektah/dataloaden" _ "github.com/vektra/mockery/v2" diff --git a/vendor/github.com/99designs/gqlgen/.gitignore b/vendor/github.com/99designs/gqlgen/.gitignore index 9fb9693df..cbc986fb5 100644 --- a/vendor/github.com/99designs/gqlgen/.gitignore +++ b/vendor/github.com/99designs/gqlgen/.gitignore @@ -14,3 +14,5 @@ .idea/ *.test *.out +gqlgen +*.exe diff --git a/vendor/github.com/99designs/gqlgen/CHANGELOG.md b/vendor/github.com/99designs/gqlgen/CHANGELOG.md index af09f4bfe..b0c7ff1e9 100644 --- a/vendor/github.com/99designs/gqlgen/CHANGELOG.md +++ b/vendor/github.com/99designs/gqlgen/CHANGELOG.md @@ -5,13 +5,1171 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased](https://github.com/99designs/gqlgen/compare/v0.17.1...HEAD) +## [Unreleased](https://github.com/99designs/gqlgen/compare/v0.17.22...HEAD) + +## [v0.17.22](https://github.com/99designs/gqlgen/compare/v0.17.21...v0.17.22) - 2022-12-08 +- d6579466 release v0.17.22 + +- 9a292299 graphql.Error is not deprecated anymore (#2455) + +
a44685b2 Ability to return multiple errors from resolvers raise than add it to stack. (#2454) + +* Remove DO NOT EDIT + +Sometimes vscode warn about this while editing resolvers code. +Finally the resolver's code is editable and generated at the same time. + +* Ability to return multiple errors from resolver. + +* Multiple errors return example + +* Fix missing import + +* reformat + +* gofmt + +* go generate ./... + +* go generate ./... + +* Regenerate + + +* remove trailing period + +
+ +
db1e3b81 Implicit external check (#2449) + +* Prevent entity resolver generation for stub types. +In Federation 2 key fields are implicitly external + +* Add more comments to "isResolvable" + +* Check that no resolvers are set for stub "Hello" + +* Run generate with go 1.16 + +* Simplify implicit external check + +* Add stricter federation version check. +Update comment on expected behavior of the resolvable argument. +Add comment to documentation about external directive. + +* Preallocate keyFields slice + +* Add non stub type to federation v2 test + +* Do not append to preallocated slice + +* Add test coverage for multiple fields in key + +* Fix typo in comment + +
+ +- 5065163c Re-generate and update release checklist to regenerate for new version + +- 5cfc22de Add v0.17.21 Release notes + +- 5d39046d v0.17.21 postrelease bump + + + + + + +## [v0.17.21](https://github.com/99designs/gqlgen/compare/v0.17.20...v0.17.21) - 2022-12-03 +- 9deb8381 release v0.17.21 + +
5c083c79 use goField directive for getters generation (#2447) + +* consider goField directive for getters generation + +* Re-generate to pass linting + +
+ +
463d2134 fix: safe http error response (#2438) + +* safe http error when parsing body + +* fix tests + +* fix linting + +* fix linting + +* Dispatch decoding errors so hook can present them + + +* Revert test expectation to original + +
+ +
86c144fc Bump decode-uri-component from 0.2.0 to 0.2.2 in /integration (#2445) + +Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2. +- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases) +- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2) + +--- +updated-dependencies: +- dependency-name: decode-uri-component + dependency-type: indirect +... + +
+ +
f28ffccd Bump minimatch from 3.0.4 to 3.1.2 in /integration (#2435) + +Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2. +- [Release notes](https://github.com/isaacs/minimatch/releases) +- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2) + +--- +updated-dependencies: +- dependency-name: minimatch + dependency-type: indirect +... + +
+ +- e3af4459 docs : embedding schema in generated code (#2351) + +
efb31b54 Check if go.mod exists while init (#2432) + +* Add check go.mod first to prevent cascade errors in "init" directive + +* Fix formatting + +* Fix formatting with gofmt + + + +This reverts commit c23d183d9da4e33993e600beefcccd1fc4ec6264. + + +* Adjust go.mod file to look in parent directories as well + +
+ +
89e91da1 Add resolver commit (#2434) + +* Add resolver commit + +* Add version to comment and re-generate + +
+ +- 3087cf3a Fix for #1274. (#2411) + +
906c0dee optional return pointers in unmarshalInput (#2397) + +* optional return pointers in unmarshalInput + +* add docs for return_pointers_in_unmarshalinput + +
+ +
a9d06036 Add json.Number support to UnmarshalString (#2396) + +* Add json.Number support to UnmarshalString + +* Add UnmarshalString tests + +* Remove trailing zeros when calling UnmarshalString with float64 + +
+ +
daa44079 Update README.md (#2391) + +fix: execute gqlgen generate command error. eg: systems failed: unable to build object definition: unable to find type: github.com/99designs/gqlgen/graphql/introspection.InputValue. need import github.com/99designs/gqlgen/graphql/introspection . + +
+ +
419dd96c Bump got and [@graphql](https://github.com/graphql)-codegen/cli in /integration (#2389) + +Removes `got` + +- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases) +- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/graphql-codegen-cli/CHANGELOG.md) + +--- +updated-dependencies: +- dependency-name: got + dependency-type: indirect + dependency-type: direct:development +... + +
+ +- b1ca215a Add global typescript (#2390) + +
265888c6 Bump jsdom and jest in /integration (#2388) + +Bumps [jsdom](https://github.com/jsdom/jsdom) and [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest). These dependencies needed to be updated together. + +Removes `jsdom` + +Updates `jest` from 24.9.0 to 29.0.3 +- [Release notes](https://github.com/facebook/jest/releases) +- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) +- [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/jest) + +--- +updated-dependencies: +- dependency-name: jsdom + dependency-type: indirect +- dependency-name: jest + dependency-type: direct:development +... + +
+ +
56f6db04 Update module mitchellh/mapstructure to 1.5.0 (#2111) + +* Update mitchellh/mapstructure + + +* Avoid double pointer + +
+ +- ea9590a4 update changelog for v0.17.20 + +- 4c06e6c6 v0.17.20 postrelease bump + + + + + + +## [v0.17.20](https://github.com/99designs/gqlgen/compare/v0.17.19...v0.17.20) - 2022-09-19 +- 0e4cbd10 release v0.17.20 + +
12ae8ffa Update go-colorable and x/tools. (#2382) + +This picks up a new 2022 version of golang.org/x/sys which is caused by +https://github.com/golang/go/issues/49219 and is needed to fix building +using Go 1.18 on aarch64-darwin. + +
+ +
68136ffb Update diagram in documentation (#2381) + +The diagram wasn't rendering properly in Go docs, which was a shame because it's a great diagram. This PR fixes that by indenting it another space. + +
+ +- d29d098f fix field merging behavior for fragments on interfaces (#2380) + +- 6bb31862 Update changelog for v0.17.19 + +- bb7fbc0f v0.17.19 postrelease bump + + + + + + +## [v0.17.19](https://github.com/99designs/gqlgen/compare/v0.17.18...v0.17.19) - 2022-09-15 +- 588c6ac1 release v0.17.19 + +- c6713170 v0.17.18 postrelease bump + + + + + + +## [v0.17.18](https://github.com/99designs/gqlgen/compare/v0.17.17...v0.17.18) - 2022-09-15 +- 1d41c808 release v0.17.18 + +- 4dbe2e47 update graphiql to 2.0.7 (#2375) + +
b7cc094a testfix: make apollo federated tracer test more consistent (#2374) + +* Update tracing_test.go + +* add missing imports + +
+ +- d096fb9b Update directives (#2371) + +- 1acfea2f Add v0.17.17 changelog + +- c273adc8 v0.17.17 postrelease bump + + + + + + +## [v0.17.17](https://github.com/99designs/gqlgen/compare/v0.17.16...v0.17.17) - 2022-09-13 +- d50bc5ac release v0.17.17 + +
462025b4 nil check error before type assertion follow-up from #2341 (#2368) + +* Improve errcode.Set safety + +
+ +
59493aff fix: apollo federation tracer was race prone (#2366) + +The tracer was using a global state across different goroutines +Added req headers to operation context to allow it to be fetched in InterceptOperation + +
+ +- fc018556 Update gqlparser to v2.5.1 (#2363) + +- 56574a14 feat: make Playground HTML content compatible with UTF-8 charset (#2355) + +
182b039d Add `subscriptions.md` recipe to docs (#2346) + +* Add `subscriptions.md` recipe to docs + +* Fix wrong request type + +
+ +- b66fff16 Add omit_getters config option (#2348) + +- 2ba8040f Update changelog for v0.17.16 + +- 8bef8c80 v0.17.16 postrelease bump + + + + + + +## [v0.17.16](https://github.com/99designs/gqlgen/compare/v0.17.15...v0.17.16) - 2022-08-26 +- 9593cead release v0.17.16 + +- 2390af2d Update gqlparser to v2.5.0 (#2341) + +- 2a87fe06 feat: update Graphiql to version 2 (#2340) + +
32e2ccd3 Update yaml to v3 (#2339) + +* update yaml to v3 + +* add missing go entry for yaml on _example + +* add missing sum file + +
+ +- 7949117a v0.17.15 postrelease bump + + + + + + +## [v0.17.15](https://github.com/99designs/gqlgen/compare/v0.17.14...v0.17.15) - 2022-08-23 +- 23cc7492 release v0.17.15 + +- 577a570c Markdown formatting fixes (#2335) + +
2b584011 Fix Interface Slice Getter Generation (#2332) + +* Make modelgen test fail if generated doesn't build +Added returning list of interface to modelgen test schema + +* Implement slice copying when returning interface slices + +* Re-generate to satisfy the linter + +
+ +
aee57b4c Correct boolean logic (#2330) + +Correcting boolean logic issue + +
+ +- da0610e1 Update changelog for v0.17.14 + +- ddcb524e v0.17.14 postrelease bump + + + + + + +## [v0.17.14](https://github.com/99designs/gqlgen/compare/v0.17.13...v0.17.14) - 2022-08-18 +- 581bf6eb release v0.17.14 + +- d3384377 Update gqlparser + +- c2d02d35 More descriptive `not implemented` stubs (#2328) (closes #2327) + +
9f919d2c Avoid GraphQL to Go Naming Collision with "ToGoModelName" func (#2322) (closes #2321) + +* using ReplaceAllStringLiteral + +* fixing wordInfo template test + +* bumping linter timeout to 5m + +* comment cleanup + +* some cleanup, adding "ToGoPrivateModelName" func + +* adding "ToGoPrivateModelName" func + +* refactoring word walker impl and tests + +* hopefully making linter happy + +
+ +- 2304c104 Include docstrings on interface getters (#2317) + +- f5d60326 Leverage (*Imports).LookupType when generating interface field getters (#2315) + +
242c3ba2 Generate getters for interface fields (#2314) + +* Generate getters for interface fields + +* Changes to make models_test.go pass + +* Use text/template, not html/template + +* Re-run go generate ./... + +* gofmt a few files that were failing lint checks + +* Another gofmt straggler + +* Try making the "generated" match the exact whitespace github is disliking + +
+ +- 0d91c893 Add hackernews graphql api tutorial to other resources (#2305) + +- c2526ba5 Update gqlparser to v2.4.7 (#2300) + +- f283124d #2298: fix gqlgen extracting module name from comment line (#2299) + +
779d7cdd Add support for KeepAlive message in websocket client (#2293) + +* Add support for KeepAlive message in websocket client + +* rewrite if-else to switch statement + +
+ +- 5a37d1dc v0.17.13 postrelease bump + + + + + + +## [v0.17.13](https://github.com/99designs/gqlgen/compare/v0.17.12...v0.17.13) - 2022-07-15 +- e82b6bf1 release v0.17.13 + +
f0e9047d Hide dependencies in `tools.go` from importers (#2287) + +Projects that use `go mod vendor` will vendor `github.com/matryer/moq` +despite it not being required at runtime. + +Moving `tools.go` to `internal` hides this import from downstream +users and avoids `github.com/matryer/moq` being vendored. + +`go generate` of the mocks still works as expected. + +The assumption behind the import test broke, so I've pointed it at a +different path that has no Go code. This seems to match the intent +behind the original test for the `internal/code/..` path. + +
+ +- 6310e6a7 support named interface to Field.CallArgs (#2289) + +
30493696 fix: return the original error (#2288) + +* fix: return the original error + +close https://github.com/99designs/gqlgen/issues/2286 + +* Update error.go + +
+ +- fb13091d updated WebSocker InitFunc recipe (#2275) + +- 770c09fb Update changelog for v0.17.12 + +- b4c186a7 v0.17.12 postrelease bump + + + + + + +## [v0.17.12](https://github.com/99designs/gqlgen/compare/v0.17.11...v0.17.12) - 2022-07-04 +- 94c02b0d release v0.17.12 + +- 7eb8ba93 Fix CreateTodo (#2256) + +
0b0e5ce4 Replace use of strings.Title with cases.Title (#2268) + +* github: Test more go versions + +* github: Fix ci tests + +* github: Increase verbosity, sleep + +* github: Drop bash + +* github: Test go 1.18 and newer node verisons + +* github: Pull out node 16 for now + +* github: Only lint 1.16 for now + +* cases: Use cases.Title over strings.Title which is deprecated + +* gqlgen: Remove use of deprecated strings.Title + +
+ +- 0c11e5fd parse at beginning of do function (#2269) + +- edb1c585 Update Changelog for v0.17.11 + +- 5e6b52fd v0.17.11 postrelease bump + + + + + + +## [v0.17.11](https://github.com/99designs/gqlgen/compare/v0.17.10...v0.17.11) - 2022-07-03 +- ea294c4e release v0.17.11 + +- 8ebf75c1 Update gqlparser (#2270) + +
b8497f52 github: Fix CI pipelines (#2266) + +* github: Test more go versions + +* github: Fix ci tests + +* github: Increase verbosity, sleep + +* github: Drop bash + +* github: Test go 1.18 and newer node verisons + +* github: Pull out node 16 for now + +* github: Only lint 1.16 for now + +
+ +
c287a7b0 codegen: fix resolvers execution order (#2267) + +* codegen: fix run order of resolver + + +* fix: update code generate + +* fix: update stub, root to generate resolver for input + +* fix: added unit-test for input field order + +* fix: added test for singlefile + +
+ +
8481457f gqlgen: Add resolver comment generation and preservation (#2263) + +* gqlgen: Add resolver comment generation and preservation + +* gqlgen: Regenerate + +
+ +- 532d46af Make uploads content seekable (#2247) + +
34bbc450 Use the go:embed API to lookup templates (#2262) + +* Switch the templates package internally to read from TemplateFS + +Users are expected to pass in the FS by using the embed API. + +* Update all usages of templates.Render to use the TemplateFS option + +* Fix unit tests + +* Fix linter error + +* Commit generated changes + +Doesn't look like anything has changed though. Maybe just a different +whitespace character. + +* Fix test + +
+ +
53ca207a Fix PR links in CHANGELOG.md (#2257) + +* fix "PR" regex in CHANGELOG-full-history.tpl.md + +* regenerate CHANGELOG.md + +
+ +
53ada82e Replace deprecated ioutil pkg with os & io (#2254) + +As of Go 1.16, the same functionality is now provided by package io or +package os, and those implementations should be preferred in new code. + +So replacing all usage of ioutil pkg with io & os. + +
+ +- a8f112e0 update changelog + +- 82fbbe41 v0.17.10 postrelease bump + + + + + + +## [v0.17.10](https://github.com/99designs/gqlgen/compare/v0.17.9...v0.17.10) - 2022-06-13 +- 4ff9ea92 release v0.17.10 + +- cac4f404 update gqlparser (#2239) + +- d07ec12d Use exact capitalization from field names overridden in config (#2237) + +- 3a640782 fix: #2234 (#2235) Response.Errors in DispatchError function is not PresentedError + +
c355df9e fix #1876: Optional Any type should allow nil values (#2231) + +* Anonymous func that checks value of arg type interface for nil + +* Added unit test for `CallArgs()` + +* Fixed type of argument in unit test + +
+ +- 65e68108 Add config boolean for whether resolvers return pointers (#2175) + +- ddd825ef Only make cyclical struct fields pointers (#2174) + +- 5a87fe29 Update websocket.go (#2223) + +- e2edda5d Update dataloaders.MD (#2221) + +- 3de7d2cf fix: chat example frontend race condition (#2219) + +- 11f40572 Update Changelog + +- caca01fb v0.17.9 postrelease bump + + + + + + +## [v0.17.9](https://github.com/99designs/gqlgen/compare/v0.17.8...v0.17.9) - 2022-05-26 +- 7f0611b2 release v0.17.9 + +- 738209b2 Update gqlparser (#2216) + +
6855b729 fix: prevent goroutine leak and CPU spinning at websocket transport (#2209) (closes #2168) + +* Added goroutine leak test for chat example + +* Improved chat example with proper concurrency + + +This reverts commit eef7bfaad1b524f9e2fc0c1150fdb321c276069e. + +* Improved subscription channel usage + +* Regenerated examples and codegen + +* Add support for subscription keepalives in websocket client + +* Update chat example test + +* if else chain to switch + + +* Revert "Add support for subscription keepalives in websocket client" + +This reverts commits 64b882c3c9901f25edc0684ce2a1f9b63443416b and 670cf22272b490005d46dc2bee1634de1cd06d68. + +* Fixed chat example race condition + +* Fixed chatroom#Messages type + +
+ +
5f5bfcb9 fix #2204 - don't try to embed builtin sources (#2214) + +* don't try to embed builtins + +* add test + +* generated code + +* fix error message string + +
+ +- 8d9d3f12 Check only direct dependencies (#2205) + +- b262e40a v0.17.8 postrelease bump + + + + + + +## [v0.17.8](https://github.com/99designs/gqlgen/compare/v0.17.7...v0.17.8) - 2022-05-25 +- 25367e0a release v0.17.8 + +- 5a56b69d Add security workflow with nancy (#2202) + +- 482f4ce0 Run CI tests on windows (#2199) + +- 656045d3 This works on Windows too! (#2197) + +- f6aeed60 Merge branch 'master' of github.com:99designs/gqlgen + +- d91080be Update changelog + +- 752d2d7e v0.17.7 postrelease bump + + + + + + +## [v0.17.7](https://github.com/99designs/gqlgen/compare/v0.17.6...v0.17.7) - 2022-05-24 +- 2b1dff1b release v0.17.7 + +- b2087f94 Update module dependencies (#2192) + +
8825ac46 Fix misprint (#2187) + +* Fix misprint + +* Fix misprint + +* Re-generate + +
+ +- 41daa5d8 fix #2190 - don't use backslash for "embed" paths on windows (#2191) + +- 0cce5544 Update Changelog + +- 26644541 v0.17.6 postrelease bump + + + + + + +## [v0.17.6](https://github.com/99designs/gqlgen/compare/v0.17.5...v0.17.6) - 2022-05-23 +- 358d45dc release v0.17.6 + +- 7c95938c Improve operation error handling (#2184) + +- 2526f687 Correct identation (#2182) + +
f7bf453c Bump dset from 3.1.1 to 3.1.2 in /integration (#2176) + +Bumps [dset](https://github.com/lukeed/dset) from 3.1.1 to 3.1.2. +- [Release notes](https://github.com/lukeed/dset/releases) +- [Commits](https://github.com/lukeed/dset/compare/v3.1.1...v3.1.2) + +--- +updated-dependencies: +- dependency-name: dset + dependency-type: indirect +... + +
+ +
4cdf7026 Update getting-started.md (#2157) + +Fix getting-started missing fields resolver config + +
+ +- eef7bfaa fix: prevents goroutine leak at websocket transport (#2168) + +- b8ec51d8 go: update gqlparser to latest (#2149) + +- ec3e597e Fix docs bug in field collection (#2141) + +
f6b35231 Add argument to WebsocketErrorFunc (#2124) + +* Add argument to WebsocketErrorFunc + +to determine whether the error ocured on read or write to the websocket. + +* Wrap websocket error + +
+ +- 0f016df3 Fix invalid query parameter for playground subscription endpoint (#2148) + +
fb5751ab use "embed" in generated code (#2119) + +* use "embed" in generated code + +* don't use embed for builtins + +* working poc + +* handle no embeddable sources + +* fix dir + +* comment + +* add test for embedding + +* improve error handling + +
+ +
d38911f1 Allow absolute https://github.com/99designs/gqlgens to the GraphQL playground (#2142) + +* Allow absolute URLs to the GraphQL playground + +* Add test for playground URLs + +* Close res.Body in playground test + +
+ +
3228f36f Update getting-started.md (#2140) + +* Update getting-started.md + +function rand.Int requires two parameters and returns two value in golang version 1.18.1. + +* Highlight the package used so people don't pick crypto/rand + +* Revert to original + +* Remove extra space + +
+ +
33fe0b9b Update package.json (#2138) + +I added `graphql-ws` because there is no graphql-ws in package.json + +
+ +
f8e837b8 Use MultipartReader to parse file uploads (#2135) + +Use a streaming MultipartReader to parse requests with file +uploads. The GraphQL multipart request specification guarantees +that the operations and map form fields will come first. + +There are two reasons motivating this change: + +- This allows for file uploads without specifying a specific + filename. +- This avoids unnecessary copies for requests with more than one + file. Go's ParseForm already copies the request's body into + memory or on disk. We were also doing this manually as a second + step. + +
+ +- 05bfc1fb Upddate Changelog + +- 62f694f0 v0.17.5 postrelease bump + + + + + + +## [v0.17.5](https://github.com/99designs/gqlgen/compare/v0.17.4...v0.17.5) - 2022-04-29 +- fd97e74e release v0.17.5 + +
9250f9ac Feature: Add FTV1 Support via Handler (#2132) + +* initial support for ftv1 traces via handler + +* remove testing json extension + +* remove binary from commit and add to .gitignore + +* updating go.mod + +* updating examples go.sum + +* rerunning generate within the examples folder + +
+ +
fce3a11a feat: added graphql.UnmarshalInputFromContext (#2131) + +* feat: added graphql.UnmarshalInputFromContext + +* chore: run go generate for _examples + +* fix: apply suggestions from code review + + +* fix: update error cases + +* fix: fixed unit-test by update root_.gotpl + +* fix: apply suggestions from code review + +* fix: update graphql/input.go + +
+ +
6a24e881 update instructions to specify package of Role (#2130) + +Can't compile with the example unless I also include `model.` for Role. + +
+ +- ccfa245b Ignore protobuf files in coverage (#2133) + +- 0465dcb1 Update federation.md (#2129) + +- 8f0631dc Update Changelog + +- 41611560 v0.17.4 postrelease bump + + + + + + +## [v0.17.4](https://github.com/99designs/gqlgen/compare/v0.17.3...v0.17.4) - 2022-04-25 +- d6de831a release v0.17.4 + +
2a2a3dcb Feature: Adds Federation 2 Support (#2115) + +* fed2 rough support + +* autodetection of fed2 + +* adding basic tests for changes + +* fixing docs + +* Update plugin/federation/federation.go + +* removing custom scalar since it was causing issues + +* fixing lint test + +* should fix for real this time + +* fixing test failures + +
+ +
77260e88 shorten some generated code (#2120) + +* shorten some generated code + +* generate examples + +
+ +
4da17e1c update modules except mapstructure (#2118) + +* Update modules + + +* Update modules except for mapstructure + + +* Try to update to v1.3.1 + +
+ +- cddbf02d Update Changelog file + +- 8f80f4ef v0.17.3 postrelease bump + + + + + + +## [v0.17.3](https://github.com/99designs/gqlgen/compare/v0.17.2...v0.17.3) - 2022-04-20 +- 0bb262d1 release v0.17.3 + +
8d0bd22a Update gqlparser (#2109) + +* Update gqlparser + + +* Update tests to be NoError + +
+ +
ec0dea88 Fix the ability of websockets to get errors (#2097) + +Because DispatchOperation creates tempResponseContext, +which is passed into Exec, which is then used in _Subscription to +generate the next function. Inside the various subscription functions +when generating next the context was captured there. + +Which means later when the returned function from DispatchOperation is +called. The responseContext which accumulates the errors is the +tempResponseContext which we no longer have access to to read the errors +out of it. + +Instead add a context to next() so that it can be passed through and +accumulated the errors as expected. + +Added a unit test for this as well. + +
+ +
e3f04b42 Change the error message to be consumer targeted (#2096) + +* Change the error message to be slightly more clear + +* Rebase on updated origin/master. + +Fix the test to not be sensitive to array ordering. +Re-generate on master as there was a schema change. + +
+ +
5a497649 Fix websocket subscriptions to not double close. (#2095) + +We were closing at the end of the loop and also in the defer. + +
+ +- a15a9bfd Update test.yml to be valid + +
a1538928 Use Github API to update the docs (#2101) + +* Use Github API to update the docs + +Instead of a hard-coded version of the docs we want to realease, this +uses the Github API to get the last 20 versions and publish those. This +will allow any script invoking this to make sure to always have the +latest version of the docs + +* Reinstate set -e + +
+ +- 3bf437c2 Update golangci-lint (#2103) + +
12c6d0bf Fix misprint (#2102) + +* Fix misprint + +* Update websocket_graphql_transport_ws.go + +
+ +
9f5fad13 Bump minimist from 1.2.5 to 1.2.6 in /integration (#2085) + +Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. +- [Release notes](https://github.com/substack/minimist/releases) +- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) + +--- +updated-dependencies: +- dependency-name: minimist + dependency-type: indirect +... + +
+ +
035e1d6e Add AllowedMethods field to transport.Options (#2080) + +* Add AllowedMethods field to transport.Options + +to enable users to specify allowed HTTP methods. + +* Update graphql/handler/transport/options.go + +
+ +- f0fdb116 Add instructions for enabling autobinding (#2079) + +
12b0b385 Bump Playground version (#2078) + +* update playground + +* enables tabs + +* update shas + +
+ +
1324c3ff Merge pull request #2062 from a8m/childfield + +graphql: add FieldContext.Child field function and enable it in codegen + +
+ +- bf9caeae graphql: add FieldContext.ChildArgs field and enable it in codegen + +- 36fb3dc6 codegen: allow binding methods with optional variadic arguments (#2066) + +- fba5edd4 Update Changelog + +- 48b2b7e1 v0.17.2 postrelease bump + + + + + + +## [v0.17.2](https://github.com/99designs/gqlgen/compare/v0.17.1...v0.17.2) - 2022-03-21 +- 1f04d38a release v0.17.2 + +- 87fc5f22 Fix #1961 for Go 1.18 (#2052) + +- f85d59d3 fixed modelgen test schema (#2032) + +- d873ff8b v0.17.1 postrelease bump + + + + + ## [v0.17.1](https://github.com/99designs/gqlgen/compare/v0.17.0...v0.17.1) - 2022-03-02 -
9f520a28 Update golangci-lint and fix resource leak (#2024) +- 5ea50aee release v0.17.1 + +- a493a423 Prepare for new release + +
9f520a28 Update golangci-lint and fix resource leak (#2024) * Fix golangci-lint in CI @@ -19,7 +1177,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
-- 74baaa14 fixed model gen for multiple implemented type (#2021) +- 74baaa14 fixed model gen for multiple implemented type (#2021) - d31cf6be v0.17.0 postrelease bump @@ -31,19 +1189,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [v0.17.0](https://github.com/99designs/gqlgen/compare/v0.16.0...v0.17.0) - 2022-03-01 - e4be5651 release v0.17.0 -
082bbff6 Revert "Update quickstart (#1850](https://github.com/99designs/gqlgen/issues/1850))" ([#2014) +
082bbff6 Revert "Update quickstart (#1850)" (#2014) This reverts commit 0ab636144bfc875f86e4d9fd7a2686bc57d5050c.
-- a58411b8 Embed templates instead of inlining them (#2019) +- a58411b8 Embed templates instead of inlining them (#2019) -- 839b50df Test gqlgen generate in CI (#2017) +- 839b50df Test gqlgen generate in CI (#2017) -- 00dc14ad Remove ambient imports (#2016) +- 00dc14ad Remove ambient imports (#2016) -
45e192ea Clean up docs to clarify how to use a particular version (#2015) (closes #1851) +
45e192ea Clean up docs to clarify how to use a particular version (#2015) (closes #1851) This reverts commit 57a148f6d12572fe585ecfcafafbb7441dbf9cab. @@ -55,7 +1213,7 @@ This reverts commit 57a148f6d12572fe585ecfcafafbb7441dbf9cab. - 3a9413f7 Fix issue template -
5236fb09 fix introspection for description to be nullable (#2008) +
5236fb09 fix introspection for description to be nullable (#2008) * fixed introspection for description to be nullable @@ -69,7 +1227,7 @@ This reverts commit 57a148f6d12572fe585ecfcafafbb7441dbf9cab.
-
82fefdb5 support to generate model for intermediate interface (#1982) +
82fefdb5 support to generate model for intermediate interface (#1982) * support to generate model for intermediate interface @@ -79,7 +1237,7 @@ This reverts commit 57a148f6d12572fe585ecfcafafbb7441dbf9cab.
-
3ec83635 Bump ajv from 6.10.2 to 6.12.6 in /integration (#2007) +
3ec83635 Bump ajv from 6.10.2 to 6.12.6 in /integration (#2007) Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.10.2 to 6.12.6. - [Release notes](https://github.com/ajv-validator/ajv/releases) @@ -93,7 +1251,7 @@ updated-dependencies:
-
9546de2c Web Socket initialization message timeout (#2006) +
9546de2c Web Socket initialization message timeout (#2006) * Added an optional timeout to the web socket initialization message read operation. @@ -101,7 +1259,7 @@ updated-dependencies:
-
f6ea6230 fixed introspection for schema description and specifiedByhttps://github.com/99designs/gqlgen (#1986) +
f6ea6230 fixed introspection for schema description and specifiedByhttps://github.com/99designs/gqlgen (#1986) * fixed introspection for schema description and specifiedByURL @@ -133,13 +1291,13 @@ updated-dependencies:
-- f17ca15e Fix broken links in docs (#1983) (closes #1734) +- f17ca15e Fix broken links in docs (#1983) (closes #1734) -- a0c856b7 Added a callback error handling function to the websocket and added tests for it. (#1975) +- a0c856b7 Added a callback error handling function to the websocket and added tests for it. (#1975) -- cfea9f07 generate resolvers for input types (#1950) +- cfea9f07 generate resolvers for input types (#1950) -
ffa857ef Websocket i/o timeout fix (#1973) +
ffa857ef Websocket i/o timeout fix (#1973) * Renamed "pingMesageType" to "pingMessageType" and refactored websocket_graphqlws.go to look more like websocket_graphql_transport_ws.go for the sake of consistency. @@ -149,13 +1307,13 @@ updated-dependencies:
-
d7da5b0d Merge pull request #1958 from 99designs/cleanup-main +
d7da5b0d Merge pull request #1958 from 99designs/cleanup-main Cleanup main
-
42f32432 Merge pull request #1957 from 99designs/move-init-ci +
42f32432 Merge pull request #1957 from 99designs/move-init-ci Upate init CI step @@ -165,9 +1323,9 @@ Upate init CI step - 8ea290c0 Upate init CI step -- 56bfb188 Fix 1955: only print message on @key](https://github.com/key) found on interfaces ([#1956) +- 56bfb188 Fix 1955: only print message on [@key](https://github.com/key) found on interfaces (#1956) -
213a085b rename "example" dir to "_examples" (#1734) +
213a085b rename "example" dir to "_examples" (#1734) * rename "example" dir to "_examples" @@ -177,7 +1335,7 @@ Upate init CI step
-
9262b358 fix: typo in dataloader code sample (#1954) +
9262b358 fix: typo in dataloader code sample (#1954) * fix: typo in dataloader code sample @@ -185,9 +1343,9 @@ Upate init CI step
-- a0543733 remove autobind example (#1949) +- a0543733 remove autobind example (#1949) -
06bbca37 docs: migrate dataloaders sample to graph-gophers/dataloader (#1871) +
06bbca37 docs: migrate dataloaders sample to graph-gophers/dataloader (#1871) * docs: add dataloader sample @@ -211,15 +1369,15 @@ Upate init CI step
-
f9fcfa16 Comment out autobind in the sample config file (#1872) +
f9fcfa16 Comment out autobind in the sample config file (#1872) The reason is that many people using it for the first time copy exactly that configuration example and then open the issues to say it doesn't work.
-- a30b68de fix: whitelist VERSION and CURRENT_VERSION env vars (#1870) +- a30b68de fix: whitelist VERSION and CURRENT_VERSION env vars (#1870) -
76a533b8 Bump gopkg.in/yaml.v2 from 2.2.4 to 2.2.8 (#1858) +
76a533b8 Bump gopkg.in/yaml.v2 from 2.2.4 to 2.2.8 (#1858) * Bump gopkg.in/yaml.v2 from 2.2.4 to 2.2.8 @@ -238,7 +1396,7 @@ updated-dependencies:
-
eed4301c Bump node-fetch from 2.6.1 to 2.6.7 in /integration (#1859) +
eed4301c Bump node-fetch from 2.6.1 to 2.6.7 in /integration (#1859) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) @@ -252,15 +1410,15 @@ updated-dependencies:
-- 7f5dce6d Fix #1776](https://github.com/99designs/gqlgen/issues/1776) : Edit and persist headers in GraphiQL ([#1856) +- 7f5dce6d Fix #1776 : Edit and persist headers in GraphiQL (#1856) -- e0b42f99 fix requires directive with nested field when entityResolver directive is used (#1863) +- e0b42f99 fix requires directive with nested field when entityResolver directive is used (#1863) -- 25c2cdcb Fix #1636](https://github.com/99designs/gqlgen/issues/1636) by updating gqlparser ([#1857) +- 25c2cdcb Fix #1636 by updating gqlparser (#1857) -- c161ab38 fix #1770](https://github.com/99designs/gqlgen/issues/1770) minor error in getting-started.md ([#1771) +- c161ab38 fix #1770 minor error in getting-started.md (#1771) -
57a148f6 Remove outdated version reference so example is always for latest (#1851) +
57a148f6 Remove outdated version reference so example is always for latest (#1851) * Also update version reference to next @@ -268,9 +1426,9 @@ updated-dependencies:
-- 0ab63614 Update quickstart (#1850) +- 0ab63614 Update quickstart (#1850) -
a8eba26d Fix #1777](https://github.com/99designs/gqlgen/issues/1777) by updating version constant and adding release checklist ([#1848) +
a8eba26d Fix #1777 by updating version constant and adding release checklist (#1848) * Revise to use script 🤦 @@ -284,11 +1442,11 @@ updated-dependencies: ## [v0.16.0](https://github.com/99designs/gqlgen/compare/v0.15.1...v0.16.0) - 2022-01-24 - b90f9750 Merge branch 'master' of github.com:99designs/gqlgen -- 99523e44 Prepare for v0.16.0 release (#1842) +- 99523e44 Prepare for v0.16.0 release (#1842) - 0563146c Prepare for v0.16.0 release -
7cefef26 add PrependPlugin (#1839) +
7cefef26 add PrependPlugin (#1839) * add PrependPlugin @@ -298,13 +1456,13 @@ related: https://github.com/99designs/gqlgen/pull/1838
-
972878a0 Revert "Fix plugin addition (#1717](https://github.com/99designs/gqlgen/issues/1717))" ([#1838) +
972878a0 Revert "Fix plugin addition (#1717)" (#1838) This reverts commit f591c8f797e35635fb5eb0e4465c77b6a073896b.
-
1ed7e050 Fix #1832](https://github.com/99designs/gqlgen/issues/1832) [@requires](https://github.com/requires) directive when [@entityResolver](https://github.com/entityResolver) is used ([#1833) +
1ed7e050 Fix #1832 [@requires](https://github.com/requires) directive when [@entityResolver](https://github.com/entityResolver) is used (#1833) * fix requires directive for multipleEntity directive @@ -313,13 +1471,13 @@ This reverts commit f591c8f797e35635fb5eb0e4465c77b6a073896b.
-
fcee4c40 Update README.md (#1836) +
fcee4c40 Update README.md (#1836) Corrected a simple grammar typo.
-
3fb5fd99 Fix #1834](https://github.com/99designs/gqlgen/issues/1834): Implement federation correctly ([#1835) +
3fb5fd99 Fix #1834: Implement federation correctly (#1835) * Fix federation implementation which does not conform to Apollo Federation subgraph specification @@ -329,13 +1487,13 @@ Corrected a simple grammar typo.
-
98665071 Imporve gqlgen test cases (#1773) (closes #1765) +
98665071 Imporve gqlgen test cases (#1773) (closes #1765) * Imporve test cases for init and generate
-
5d904d87 Merge pull request #1778 from ipfans/gh-pages-patch +
5d904d87 Merge pull request #1778 from ipfans/gh-pages-patch Bump gqlgen.com version list @@ -351,13 +1509,13 @@ Bump gqlgen.com version list ## [v0.15.1](https://github.com/99designs/gqlgen/compare/v0.15.0...v0.15.1) - 2022-01-16 - 7102a36b Prepare for 0.15.1 release -
2b8f50b3 Fix #1765](https://github.com/99designs/gqlgen/issues/1765): Sometimes module info not exists or not loaded. ([#1767) +
2b8f50b3 Fix #1765: Sometimes module info not exists or not loaded. (#1767) * Remove failing test
-- 46502e5e fixed broken link (#1768) +- 46502e5e fixed broken link (#1768) @@ -367,15 +1525,15 @@ Bump gqlgen.com version list ## [v0.15.0](https://github.com/99designs/gqlgen/compare/v0.14.0...v0.15.0) - 2022-01-14 - 99be1951 Prepare for release -
931271a2 Fix #1762](https://github.com/99designs/gqlgen/issues/1762): Reload packages before merging type systems ([#1763) +
931271a2 Fix #1762: Reload packages before merging type systems (#1763) * run gofmt on file
-- e5b5e832 Improve performance of MarshalBoolean (#1757) +- e5b5e832 Improve performance of MarshalBoolean (#1757) -
57664bf0 Migrate playgrounds to GraphiQL (#1751) +
57664bf0 Migrate playgrounds to GraphiQL (#1751) * migrate to GraphiQL playground @@ -383,7 +1541,7 @@ Bump gqlgen.com version list
-
b2a832d5 Avoid problems with `val` being undefined in the federation template. (#1760) +
b2a832d5 Avoid problems with `val` being undefined in the federation template. (#1760) * Avoid problems with `val` being undefined in the federation template. @@ -440,15 +1598,15 @@ go run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.yml
-
47015f12 Added pointer to a solution for `no Go files` err (#1747) +
47015f12 Added pointer to a solution for `no Go files` err (#1747) While following the instructions in this getting started guide I run into this error `package github.com/99designs/gqlgen: no Go files` which was pretty annoying to fix. Its a golang issue but for people who are unfamiliar with how the `go generate` command works in vendored projects its a blocker trying to follow the rest of this guide. It will be really nice to at least have a pointer in the guide for people to find a possible solution to the issue while going through the guide. I'm sure many folks have run into this issue given vendoring is now very popular with the latest go releases.
-- 27a2b210 Downgrade to Go 1.16 (#1743) +- 27a2b210 Downgrade to Go 1.16 (#1743) -
14cfee70 Support for multiple @key](https://github.com/key) directives in federation (reworked) ([#1723) +
14cfee70 Support for multiple [@key](https://github.com/key) directives in federation (reworked) (#1723) * address review comments @@ -462,9 +1620,9 @@ Still missing:
-- 2747bd5f Add CSV and PDF to common initialisms (#1741) +- 2747bd5f Add CSV and PDF to common initialisms (#1741) -
44beadc1 Fix list coercion when using graphql variables (#1740) +
44beadc1 Fix list coercion when using graphql variables (#1740) * fix(codegen): support coercion of lists in graphql variables @@ -482,7 +1640,7 @@ This was broken by an upstream dependency `gqlparser` coercing variables during
-
bd8938d8 fix: automatically register built-in directive goTag (#1737) +
bd8938d8 fix: automatically register built-in directive goTag (#1737) * fix: automatically register built-in tag goTag @@ -490,7 +1648,7 @@ This was broken by an upstream dependency `gqlparser` coercing variables during
-
497227fa Close Websocket Connection on Context close/cancel (#1728) +
497227fa Close Websocket Connection on Context close/cancel (#1728) * Added code to the web socket so it closes when the context is cancelled (with an optional close reason). @@ -503,9 +1661,9 @@ This was broken by an upstream dependency `gqlparser` coercing variables during
-- 4581fccd Don't loose field arguments when none match (#1725) +- 4581fccd Don't loose field arguments when none match (#1725) -
213ecd93 Add support for graphql-transport-ws with duplex ping-pong (#1578) +
213ecd93 Add support for graphql-transport-ws with duplex ping-pong (#1578) * Add support for graphql-transport-ws with duplex ping-pong @@ -513,13 +1671,13 @@ This was broken by an upstream dependency `gqlparser` coercing variables during
-- ae92c83d add federation tests (#1719) +- ae92c83d add federation tests (#1719) -- f591c8f7 Fix plugin addition (#1717) +- f591c8f7 Fix plugin addition (#1717) -- 8fa6470f Fix #1704](https://github.com/99designs/gqlgen/issues/1704): handle [@required](https://github.com/required) nested fields as in [@key](https://github.com/key) ([#1706) +- 8fa6470f Fix #1704: handle [@required](https://github.com/required) nested fields as in [@key](https://github.com/key) (#1706) -
af33b7cd Cleaning up extra return in federation generated code (#1713) +
af33b7cd Cleaning up extra return in federation generated code (#1713) In PR 1709, I introduced GetMany semantics for resolving federated entities. But I left a couple of extra return statements in the generated code that are not necessary. So Im just cleaning those up here. @@ -533,7 +1691,7 @@ go test -race ./... && cd example && go test -race ./... && cd ..
-
402a2259 Optimize performance for binder, imports and packages (Rebased from sbalabanov/master) (#1711) +
402a2259 Optimize performance for binder, imports and packages (Rebased from sbalabanov/master) (#1711) * Cache go.mod resolution for module name search @@ -547,9 +1705,9 @@ go test -race ./... && cd example && go test -race ./... && cd ..
-- 237a7e6a Separate golangci-lint from other jobs (#1712) +- 237a7e6a Separate golangci-lint from other jobs (#1712) -
50292e99 Resolve multiple federated entities in a single entityResolve call (#1709) +
50292e99 Resolve multiple federated entities in a single entityResolve call (#1709) * Resolve multiple federated entities in a single entityResolve call @@ -579,7 +1737,7 @@ You can look at the federated code in `plugin/federation/testdata/entityresolver
-
80713b84 Adding entity resolver tests for errors, entities with different type… (#1708) +
80713b84 Adding entity resolver tests for errors, entities with different type… (#1708) * Adding entity resolver tests for errors, entities with different types, and requires @@ -594,9 +1752,9 @@ To run tests:
-- ed2d6998 Replace ! with _ in root.generated file to avoid build conflicts (#1701) +- ed2d6998 Replace ! with _ in root.generated file to avoid build conflicts (#1701) -
828820af transport: implement `graphql-transport-ws` ws sub-protocol (#1507) +
828820af transport: implement `graphql-transport-ws` ws sub-protocol (#1507) * websocket: create `messageExchanger` to handle subprotocol messages @@ -622,11 +1780,11 @@ To run tests:
-- 28caa6ce Ignore generated files from test coverage (#1699) +- 28caa6ce Ignore generated files from test coverage (#1699) - 7ac988de Fix linting issue -
01d3c4f8 Entity resolver tests (#1697) +
01d3c4f8 Entity resolver tests (#1697) * Moving federation tests to their own folders @@ -665,21 +1823,21 @@ To run the tests:
-
b7db36d3 Revert "Support for multiple @key](https://github.com/key) directives in federation ([#1684](https://github.com/99designs/gqlgen/issues/1684))" ([#1698) +
b7db36d3 Revert "Support for multiple [@key](https://github.com/key) directives in federation (#1684)" (#1698) This reverts commit 47de912f56cd4bd6da9b74929cd67b8881617026.
-- 4a4b5601 DOC: Fixed indention in example code. (#1693) +- 4a4b5601 DOC: Fixed indention in example code. (#1693) -
47de912f Support for multiple @key](https://github.com/key) directives in federation ([#1684) +
47de912f Support for multiple [@key](https://github.com/key) directives in federation (#1684) * add more unit test coverage to plugin/federation
-
59a30919 Reimplement goTag using FieldMutateHook (#1682) +
59a30919 Reimplement goTag using FieldMutateHook (#1682) * Reimplement goTag using a FieldMutateHook @@ -689,7 +1847,7 @@ This change does not change the logic of goTag, merely reimplements it using a F
-
37a4e7ee Rename `@extraTag](https://github.com/extraTag)` directive to `[@goTag](https://github.com/goTag)` and make repeatable ([#1680) +
37a4e7ee Rename `[@extraTag](https://github.com/extraTag)` directive to `[@goTag](https://github.com/goTag)` and make repeatable (#1680) * Allow Repeatable `goTag` Directive @@ -699,7 +1857,7 @@ This change does not change the logic of goTag, merely reimplements it using a F
-
87f9e436 Fix nil pointer dereference when an invalid import is bound to a model (#1676) +
87f9e436 Fix nil pointer dereference when an invalid import is bound to a model (#1676) * Fixes remaining Name field in singlefile test @@ -717,15 +1875,15 @@ Totally accidental, sorry!
-
6c65e8f1 Update getting-started.md (#1674) +
6c65e8f1 Update getting-started.md (#1674) missing an 's' on quoted filename default
-- 3bbc2a34 feat: generate resolvers for inputs if fields are missing (#1404) +- 3bbc2a34 feat: generate resolvers for inputs if fields are missing (#1404) -
7db941a5 Fix 1138: nested fieldset support (#1669) +
7db941a5 Fix 1138: nested fieldset support (#1669) * formatting @@ -738,7 +1896,7 @@ upgrade deps in federation integration tests
-
488a31fc ContextMarshaler (#1652) +
488a31fc ContextMarshaler (#1652) * Add interface and detection for ContextMarshaler @@ -765,11 +1923,11 @@ upgrade deps in federation integration tests
-- a626d9b4 Add ICMP to common initialisms (#1666) +- a626d9b4 Add ICMP to common initialisms (#1666) -- db4b5eb7 Merge Inline Fragment Nested Interface Fields (#1663) +- db4b5eb7 Merge Inline Fragment Nested Interface Fields (#1663) -
8b973717 Update directives doc page (#1660) +
8b973717 Update directives doc page (#1660) * Update directives doc page @@ -777,7 +1935,7 @@ upgrade deps in federation integration tests
-
1f500016 Add follow-schema layout for exec (#1309) (closes #1265) +
1f500016 Add follow-schema layout for exec (#1309) (closes #1265) * Define ExecConfig separate from PackageConfig @@ -804,7 +1962,7 @@ the same name, just applied to `exec` instead of `resolver`.
-
12978359 Update GQLgen test client to work with multipart form data (take 2) (#1661) +
12978359 Update GQLgen test client to work with multipart form data (take 2) (#1661) * Update GQLgen test client to work with multipart form data @@ -876,7 +2034,7 @@ running the test on and/or race condition
-
7435403c Adds RootFieldInterceptor to extension interfaces (#1647) +
7435403c Adds RootFieldInterceptor to extension interfaces (#1647) * Adds RootFieldInterceptor to extension interfaces @@ -888,19 +2046,19 @@ running the test on and/or race condition
-- 8b25c9e0 Add a config option to skip running "go mod tidy" on code generation (#1644) +- 8b25c9e0 Add a config option to skip running "go mod tidy" on code generation (#1644) -
658195b7 Revert "Update GQLgen test client to work with multipart form data (#1418](https://github.com/99designs/gqlgen/issues/1418))" ([#1659) +
658195b7 Revert "Update GQLgen test client to work with multipart form data (#1418)" (#1659) This reverts commit 1318f12792e86c76a2cdff9132ebac5b3e30e148.
-- 41c86765 Revert 1595 (#1658) +- 41c86765 Revert 1595 (#1658) -- 8359f974 Allow custom websocket upgrader (#1595) +- 8359f974 Allow custom websocket upgrader (#1595) -
1318f127 Update GQLgen test client to work with multipart form data (#1418) +
1318f127 Update GQLgen test client to work with multipart form data (#1418) * Update GQLgen test client to work with multipart form data @@ -951,9 +2109,9 @@ builder `createUploadRequest`.
-- 6758654c raise panic when nested @requires](https://github.com/requires) are used on federation ([#1655) +- 6758654c raise panic when nested [@requires](https://github.com/requires) are used on federation (#1655) -
f6c35be2 Add ReplacePlugin option to replace a specific plugin (#1657) +
f6c35be2 Add ReplacePlugin option to replace a specific plugin (#1657) * Add Helper Option for replacing plugins @@ -963,7 +2121,7 @@ builder `createUploadRequest`.
-
f8c46600 fix double indirect bug (#1604) (closes #1587) +
f8c46600 fix double indirect bug (#1604) (closes #1587) * invalid code generated @@ -971,11 +2129,11 @@ builder `createUploadRequest`.
-- 629c91a2 remove extra WithOperationContext call (#1641) +- 629c91a2 remove extra WithOperationContext call (#1641) -- 35199c49 codegen: ensure Elem present before using (#1317) +- 35199c49 codegen: ensure Elem present before using (#1317) -
bfea93cd Reload config packages after generating models (#1491) +
bfea93cd Reload config packages after generating models (#1491) If models are generated in a package that has already been loaded, and that package refers to another package that has already been loaded, we @@ -1040,7 +2198,7 @@ code that fails in this scenario.
-
9e0817cd Add graphql schema aware field level hook to modelgen (#1650) +
9e0817cd Add graphql schema aware field level hook to modelgen (#1650) * Add ast aware field level hook to modelgen @@ -1054,7 +2212,7 @@ This change adds a hook at the end of the field creation process which provides
-
af2ac061 handling unconventional naming used in type names (#1549) +
af2ac061 handling unconventional naming used in type names (#1549) * handling unconventional naming used in type names @@ -1064,20 +2222,20 @@ This change adds a hook at the end of the field creation process which provides
-- 393f7554 add extraTag directive (#1173) +- 393f7554 add extraTag directive (#1173) -- fd1bd7c9 adding support for sending extension with gqlgen client (#1633) +- fd1bd7c9 adding support for sending extension with gqlgen client (#1633) -
589a7742 Enable lowercase type names in GraphQL schema to properly render (#1359) +
589a7742 Enable lowercase type names in GraphQL schema to properly render (#1359) The difficulty with lowercased type names is that in go code any lowercased name is not exported. This change makes the names title case for go code while preserving the proper case when interacting with the GraphQL schema.
-- 50f6a2aa Fixes #1653](https://github.com/99designs/gqlgen/issues/1653): update docs and wrap error if not *gqlerror.Error ([#1654) +- 50f6a2aa Fixes #1653: update docs and wrap error if not *gqlerror.Error (#1654) -
7081dedb Bump tmpl from 1.0.4 to 1.0.5 in /integration (#1627) +
7081dedb Bump tmpl from 1.0.4 to 1.0.5 in /integration (#1627) Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5. - [Release notes](https://github.com/daaku/nodejs-tmpl/releases) @@ -1091,7 +2249,7 @@ updated-dependencies:
-
5287e4e5 Add QR and KVK to common initialisms (#1419) +
5287e4e5 Add QR and KVK to common initialisms (#1419) * Add QR and KVK to common initialisms @@ -1101,7 +2259,7 @@ updated-dependencies:
-
f9df1a46 Update time format for `Time` scalar (#1648) +
f9df1a46 Update time format for `Time` scalar (#1648) * Use more precise time format @@ -1115,27 +2273,27 @@ updated-dependencies:
-
77c757f0 Merge pull request #1640 from minus7/master +
77c757f0 Merge pull request #1640 from minus7/master Fix example run instructions
-
e60dc7af Merge pull request #1619 from Khan/benkraft.mod-tidy-stdout +
e60dc7af Merge pull request #1619 from Khan/benkraft.mod-tidy-stdout Forward `go mod tidy` stdout/stderr
-
0c63f1d1 Merge pull request #1515 from OpenSourceProjects/time +
0c63f1d1 Merge pull request #1515 from OpenSourceProjects/time Marshaling & Unmarshaling time return initial value
-- a3d9e8ce Remove redundant favicon (#1638) +- a3d9e8ce Remove redundant favicon (#1638) -- 210c1aa6 Appropriately Handle Falsy Default Field Values (#1623) +- 210c1aa6 Appropriately Handle Falsy Default Field Values (#1623)
47ce074a Fix example run instructions (closes #1607) @@ -1151,7 +2309,7 @@ example/todo/server/server.go:10:2: no required module provides package github.c - 1a0b19fe Update README.md -
d9998283 Merge pull request #1628 from robertmarsal/patch-1 +
d9998283 Merge pull request #1628 from robertmarsal/patch-1 Fix typo in the getting-started docs @@ -1159,7 +2317,7 @@ Fix typo in the getting-started docs - f93f73ac Fix typo in the getting-started docs -
2f6919ff Merge pull request #1624 from FlymeDllVa/master +
2f6919ff Merge pull request #1624 from FlymeDllVa/master Update disabling Introspection @@ -1196,7 +2354,7 @@ output to our own stdout/stderr rather than devnull. - cacd49a6 Update README.md -
7d549d64 Merge pull request #1617 from 99designs/update-docs-for-go1.17 +
7d549d64 Merge pull request #1617 from 99designs/update-docs-for-go1.17 Update docs for getting started @@ -1210,7 +2368,7 @@ Update docs for getting started - 2272e05b Update README.md -
ef4d4a38 Merge pull request #1614 from 99designs/go-1.16 +
ef4d4a38 Merge pull request #1614 from 99designs/go-1.16 Also test against 1.16 @@ -1218,7 +2376,7 @@ Also test against 1.16 - 00ed6fb1 Also test against 1.16 -
473f0671 Merge pull request #1613 from 99designs/bump-non-module-deps +
473f0671 Merge pull request #1613 from 99designs/bump-non-module-deps Clean up non-module deps @@ -1226,7 +2384,7 @@ Clean up non-module deps - 6960c0c2 Bump non-module deps -
bf9b34aa Merge pull request #1612 from 99designs/update-linter +
bf9b34aa Merge pull request #1612 from 99designs/update-linter Update golangci linter @@ -1236,7 +2394,7 @@ Update golangci linter - 777dabde Update the linter -
85dd47bb Merge pull request #1607 from 99designs/example-module +
85dd47bb Merge pull request #1607 from 99designs/example-module [POC/RFC] Split examples into separate go module @@ -1244,7 +2402,7 @@ Update golangci linter - f93fb248 Split examples into separate go module -
890f5f66 Merge pull request #1610 from 99designs/go-1.17 +
890f5f66 Merge pull request #1610 from 99designs/go-1.17 Update to go 1.17 @@ -1254,7 +2412,7 @@ Update to go 1.17 - f67a5b26 Update github.com/urfave/cli/v2 -
1116ea6c Merge pull request #1608 from jjmengze/patch-1 +
1116ea6c Merge pull request #1608 from jjmengze/patch-1 fix Options response header @@ -1302,43 +2460,43 @@ operatee the header of ResponseWriter should before WriteHeader called - a991e3e7 Update errors to use go1.13 semantics -
8f179be9 Merge pull request #1581 from tsh96/master +
8f179be9 Merge pull request #1581 from tsh96/master Bypass complexity limit on __Schema queries.
-
5048f992 Merge pull request #1525 from Code-Hex/fix/support-input-object +
5048f992 Merge pull request #1525 from Code-Hex/fix/support-input-object support input object directive
-
1e2b303a Merge pull request #1526 from epulze/fix/allow-more-types +
1e2b303a Merge pull request #1526 from epulze/fix/allow-more-types allow more than 10 different import sources with types
-
e7df3e5c Merge pull request #1405 from alexsn/subsciption-complete-on-panic +
e7df3e5c Merge pull request #1405 from alexsn/subsciption-complete-on-panic subscriptions: send complete message on resolver panic
-
06e4fe88 Merge pull request #1529 from mathieupost/master +
06e4fe88 Merge pull request #1529 from mathieupost/master Return type loading errors in config.Binder.FindObject
-
a557c90c Merge pull request #1340 from bickyeric/master +
a557c90c Merge pull request #1340 from bickyeric/master serialize ID just like String
-
522cab59 Merge pull request #1285 from Khan/benkraft.federation +
522cab59 Merge pull request #1285 from Khan/benkraft.federation Resolve requests for federation entities in parallel @@ -1396,25 +2554,25 @@ clearest test; the changed functionality is already exercised by ## [v0.14.0](https://github.com/99designs/gqlgen/compare/v0.13.0...v0.14.0) - 2021-09-08 - 56451d92 release v0.14.0 -
8e97969b Merge pull request #1358 from mtsmfm/patch-1 +
8e97969b Merge pull request #1358 from mtsmfm/patch-1 Create package declaration to run dataloaden
-
b978593c Merge pull request #1387 from Khan/benkraft.config +
b978593c Merge pull request #1387 from Khan/benkraft.config codegen/config: Add a new API to finish an already-validated config
-
71507dfc Merge pull request #1408 from max107/patch-1 +
71507dfc Merge pull request #1408 from max107/patch-1 int64 support graphql/string.go
-
23577b69 Merge pull request #1460 from snxk/edit-docs-recipe-gin +
23577b69 Merge pull request #1460 from snxk/edit-docs-recipe-gin Edited the Gin-Gonic Recipe Docs @@ -1422,7 +2580,7 @@ Edited the Gin-Gonic Recipe Docs - db6154b9 Update README.md -
cecda160 Merge pull request #1464 from frederikhors/patch-1 +
cecda160 Merge pull request #1464 from frederikhors/patch-1 Add goreportcard badge @@ -1430,61 +2588,61 @@ Add goreportcard badge - cc957171 Merge branch 'master' into patch-1 -
023f66df Merge pull request #1465 from frederikhors/patch-2 +
023f66df Merge pull request #1465 from frederikhors/patch-2 Add coveralls badge
-
50c2028a Merge pull request #1497 from polytomic/stable-introspection +
50c2028a Merge pull request #1497 from polytomic/stable-introspection Return introspection document in stable order
-
a0232dd2 Merge pull request #1603 from 99designs/dependabot/npm_and_yarn/integration/normalize-url-4.5.1 +
a0232dd2 Merge pull request #1603 from 99designs/dependabot/npm_and_yarn/integration/normalize-url-4.5.1 Bump normalize-url from 4.5.0 to 4.5.1 in /integration
-
4e059eba Merge pull request #1602 from 99designs/dependabot/npm_and_yarn/integration/ini-1.3.8 +
4e059eba Merge pull request #1602 from 99designs/dependabot/npm_and_yarn/integration/ini-1.3.8 Bump ini from 1.3.5 to 1.3.8 in /integration
-
43705d45 Merge pull request #1601 from 99designs/dependabot/npm_and_yarn/integration/y18n-3.2.2 +
43705d45 Merge pull request #1601 from 99designs/dependabot/npm_and_yarn/integration/y18n-3.2.2 Bump y18n from 3.2.1 to 3.2.2 in /integration
-
1f2465c6 Merge pull request #1600 from 99designs/dependabot/npm_and_yarn/integration/browserslist-4.17.0 +
1f2465c6 Merge pull request #1600 from 99designs/dependabot/npm_and_yarn/integration/browserslist-4.17.0 Bump browserslist from 4.14.0 to 4.17.0 in /integration
-
bbdebd4c Merge pull request #1599 from 99designs/dependabot/npm_and_yarn/integration/hosted-git-info-2.8.9 +
bbdebd4c Merge pull request #1599 from 99designs/dependabot/npm_and_yarn/integration/hosted-git-info-2.8.9 Bump hosted-git-info from 2.8.5 to 2.8.9 in /integration
-
900a37af Merge pull request #1598 from 99designs/dependabot/npm_and_yarn/integration/node-fetch-2.6.1 +
900a37af Merge pull request #1598 from 99designs/dependabot/npm_and_yarn/integration/node-fetch-2.6.1 Bump node-fetch from 2.6.0 to 2.6.1 in /integration
-
9d334cdd Merge pull request #1597 from 99designs/dependabot/npm_and_yarn/integration/ws-7.4.6 +
9d334cdd Merge pull request #1597 from 99designs/dependabot/npm_and_yarn/integration/ws-7.4.6 Bump ws from 7.3.1 to 7.4.6 in /integration
-
56181e8a Merge pull request #1365 from frederikhors/add-uint,-uint64,-uint32-types-in-graphql +
56181e8a Merge pull request #1365 from frederikhors/add-uint,-uint64,-uint32-types-in-graphql add uint, uint64, uint32 types in graphql pkg @@ -1592,19 +2750,19 @@ updated-dependencies:
-
2b3b7212 Merge pull request #1594 from 99designs/dependabot/npm_and_yarn/integration/tar-6.1.11 +
2b3b7212 Merge pull request #1594 from 99designs/dependabot/npm_and_yarn/integration/tar-6.1.11 Bump tar from 6.0.5 to 6.1.11 in /integration
-
5b43833d Merge pull request #1582 from 99designs/dependabot/npm_and_yarn/integration/path-parse-1.0.7 +
5b43833d Merge pull request #1582 from 99designs/dependabot/npm_and_yarn/integration/path-parse-1.0.7 Bump path-parse from 1.0.6 to 1.0.7 in /integration
-
55b028ca Merge pull request #1584 from nullism/patch-1 +
55b028ca Merge pull request #1584 from nullism/patch-1 Fix spaces -> tabs typo in authentication.md @@ -1645,25 +2803,25 @@ updated-dependencies:
-
9a214e80 Merge pull request #1451 from sanjeevchopra/patch-1 +
9a214e80 Merge pull request #1451 from sanjeevchopra/patch-1 doc only change: updated sample code for disabling introspection
-
01197437 Merge pull request #1417 from RicCu/patch-1 +
01197437 Merge pull request #1417 from RicCu/patch-1 Use mutation instead of query in 'Changesets' doc example
-
e3293b53 Merge pull request #1444 from lisowskibraeden/patch-1 +
e3293b53 Merge pull request #1444 from lisowskibraeden/patch-1 Update cors.md
-
a4d67855 Merge pull request #1517 from ShivangGoswami/patch-1 +
a4d67855 Merge pull request #1517 from ShivangGoswami/patch-1 Update apq.md function definition mismatch @@ -1676,13 +2834,13 @@ something like graphql-codegen.
-
7e38dd46 Merge pull request #1568 from DanyHenriquez/patch-1 +
7e38dd46 Merge pull request #1568 from DanyHenriquez/patch-1 Update apq.md
-
88f2b8a7 Merge pull request #1572 from talhaguy/dataloaders-doc-casing +
88f2b8a7 Merge pull request #1572 from talhaguy/dataloaders-doc-casing Correct minor casing issue @@ -1704,7 +2862,7 @@ Proposed the first one for now.
-
5ad012e3 Revert "Merge pull request #1511 from a8m/a8m/restore-cwd" +
5ad012e3 Revert "Merge pull request #1511 from a8m/a8m/restore-cwd" This reverts commit f4bf1f591b6a3884041876deb64ce0dd70c3c883, reversing changes made to 3f68ea27a1a9fea2064caf877f7e24d00aa439e6. @@ -1714,11 +2872,11 @@ generated files get put.
-- bb59cc43 Add a CHANGELOG.md (#1512) +- bb59cc43 Add a CHANGELOG.md (#1512) -- 058a365a Merge pull request #1456 from skaji/issue-1455 +- 058a365a Merge pull request #1456 from skaji/issue-1455 -
bf2fdf44 Merge pull request #1514 from 99designs/bump-gqlparser +
bf2fdf44 Merge pull request #1514 from 99designs/bump-gqlparser Bump gqlparser to v2.2.0 @@ -1730,15 +2888,15 @@ Bump gqlparser to v2.2.0 - f57d1a02 Bump gqlparser to master & support repeated directives -
f4bf1f59 Merge pull request #1511 from a8m/a8m/restore-cwd +
f4bf1f59 Merge pull request #1511 from a8m/a8m/restore-cwd codegen/config: restore current working directory after changing it
-- 3f68ea27 Special handling for pointers to slices (#1363) +- 3f68ea27 Special handling for pointers to slices (#1363) -
c920bdeb Merge pull request #1449 from steebchen/feat-prisma-compat +
c920bdeb Merge pull request #1449 from steebchen/feat-prisma-compat feat(codegen): handle (v, ok) methods @@ -1755,25 +2913,25 @@ after loading the config.
-
35b80a72 Merge pull request #1495 from Niennienzz/improve-apq-doc +
35b80a72 Merge pull request #1495 from Niennienzz/improve-apq-doc Update apq.md
-
463debae Merge pull request #1503 from nana4gonta/resolve-vulnerability +
463debae Merge pull request #1503 from nana4gonta/resolve-vulnerability Resolve indirect dependency vulnerability in example
-
29e7bccb Merge pull request #1501 from 99designs/fix-init-1.16 +
29e7bccb Merge pull request #1501 from 99designs/fix-init-1.16 Run go mod tidy after code generation
-
9a4c80ab Merge pull request #1502 from 99designs/rm-chi +
9a4c80ab Merge pull request #1502 from 99designs/rm-chi Remove chi from dataloader example @@ -1789,31 +2947,31 @@ Remove chi from dataloader example - 54e387c4 Resolve indirect dependency vulnerability in example -- 7985db44 Mention math.rand for the todo ID (#1489) +- 7985db44 Mention math.rand for the todo ID (#1489) -- b995f7f1 Make spacing consistent (#1488) +- b995f7f1 Make spacing consistent (#1488) -
52ded951 Merge pull request #1459 from aaronArinder/getting-started-server-section +
52ded951 Merge pull request #1459 from aaronArinder/getting-started-server-section getting started: make running server own section
-- 82a8e1bf Make it clearer what happened on init. (#1487) +- 82a8e1bf Make it clearer what happened on init. (#1487) -
7258af5f Merge pull request #1458 from aaronArinder/getting-started-wording +
7258af5f Merge pull request #1458 from aaronArinder/getting-started-wording getting started: making the resolver fn section clearer
-
4fead489 Merge pull request #1452 from fmyd/fix/formatted-query-indent +
4fead489 Merge pull request #1452 from fmyd/fix/formatted-query-indent prettified some indentation
-
58e3225e Merge pull request #1480 from wilhelmeek/double-bubble +
58e3225e Merge pull request #1480 from wilhelmeek/double-bubble Bubble Null from List Element to Nearest Nullable Ancestor @@ -1870,7 +3028,7 @@ I had problems reading this page and applying it to my project. With these chang
-
997da421 Merge pull request #1436 from ddouglas/patch-1 +
997da421 Merge pull request #1436 from ddouglas/patch-1 Upgrade graphql-playground to 1.7.26 @@ -1880,7 +3038,7 @@ Upgrade graphql-playground to 1.7.26 - 918801ea Change 'Changeset' doc example to mutation -
862762c7 Merge pull request #1409 from zikaeroh/chi-mod +
862762c7 Merge pull request #1409 from zikaeroh/chi-mod Upgrade go-chi to v1.5.1 with module support @@ -1890,27 +3048,27 @@ Upgrade go-chi to v1.5.1 with module support - a9c8fabf int64 support -
b484fc27 Merge pull request #1401 from oseifrimpong/patch-1 +
b484fc27 Merge pull request #1401 from oseifrimpong/patch-1 fix typo
-
4cc031af Merge pull request #1394 from j2gg0s/fix-default-recover-func +
4cc031af Merge pull request #1394 from j2gg0s/fix-default-recover-func bugfix: Default Recover func should return gqlerror.Error
-
2af51336 Merge pull request #1400 from 99designs/sanstale +
2af51336 Merge pull request #1400 from 99designs/sanstale Remove stale bot
-
34a442c7 Merge pull request #1399 from 99designs/prevent-possible-error-deadlock +
34a442c7 Merge pull request #1399 from 99designs/prevent-possible-error-deadlock -Dont hold error lock when calling into error presenters +Don't hold error lock when calling into error presenters
@@ -1957,19 +3115,19 @@ that could break existing clients. Either way would work for us.
-
0e12bfbf Merge pull request #1269 from dqn/new-line-at-the-end-of-file +
0e12bfbf Merge pull request #1269 from dqn/new-line-at-the-end-of-file Add a new line to end of the file schema.graphqls
-
22c5d1f5 Merge pull request #1303 from kunalpowar/inline-directives-doc +
22c5d1f5 Merge pull request #1303 from kunalpowar/inline-directives-doc Update README.md
-
88cffee4 Merge pull request #1356 from maapteh/chore/chat-example-update +
88cffee4 Merge pull request #1356 from maapteh/chore/chat-example-update Chore: update Chat example @@ -1977,7 +3135,7 @@ Chore: update Chat example - 1e8c34e5 Dont export Input -
de8af66c Merge pull request #1360 from Captain-K-101/master +
de8af66c Merge pull request #1360 from Captain-K-101/master Update introspection.md @@ -1985,7 +3143,7 @@ Update introspection.md - 09756915 Update introspection docs -
651eda40 Merge pull request #1374 from rudylee/docs-file-upload-small-typo +
651eda40 Merge pull request #1374 from rudylee/docs-file-upload-small-typo Fix small typo in file upload docs @@ -2023,13 +3181,13 @@ ref: https://github.com/vektah/dataloaden/issues/35 - e6e64224 update deps -
3a31a752 Merge pull request #1345 from abeltay/fix-alignment +
3a31a752 Merge pull request #1345 from abeltay/fix-alignment Fix tab spacing in cors.md
-
0c68337c Merge pull request #1346 from abeltay/fix-typo +
0c68337c Merge pull request #1346 from abeltay/fix-typo Fix typo in migration guide @@ -2039,7 +3197,7 @@ Fix typo in migration guide - 3791f71d Fix tab spacing in cors.md -
819e751c Merge pull request #1341 from dgraph-io/rajas/fix-gqlgen-1299 +
819e751c Merge pull request #1341 from dgraph-io/rajas/fix-gqlgen-1299 Rajas/fix gqlgen 1299 @@ -2065,13 +3223,13 @@ Rajas/fix gqlgen 1299 - 259f2711 Bump to gqlparser to v2.1.0 Error unwrapping release -
669a1668 Merge pull request #1312 from 99designs/error-wrapping +
669a1668 Merge pull request #1312 from 99designs/error-wrapping Always wrap user errors
-
9b948a5f Merge pull request #1316 from skaji/is-resolver +
9b948a5f Merge pull request #1316 from skaji/is-resolver Add IsResolver to FieldContext @@ -2095,7 +3253,7 @@ Questions:
-
51b580de Merge pull request #1324 from bemasher/patch-1 +
51b580de Merge pull request #1324 from bemasher/patch-1 Fix typos in README.md @@ -2109,7 +3267,7 @@ Fix typos in README.md - 55951163 add IsResolver to FieldContext -
622316e7 Merge pull request #1295 from a-oz/a-oz-patch-1 +
622316e7 Merge pull request #1295 from a-oz/a-oz-patch-1 Update getting-started.md @@ -2131,19 +3289,19 @@ fix typo ## [v0.12.2](https://github.com/99designs/gqlgen/compare/v0.12.1...v0.12.2) - 2020-08-18 - 03cebf20 release v0.12.2 -
e3ce560d Merge pull request #1288 from alexsn/nopath-field-noerror +
e3ce560d Merge pull request #1288 from alexsn/nopath-field-noerror avoid computing field path when getting field errors
-
108975c3 Merge pull request #1284 from dgraph-io/jatin/sameFieldSameTypeGettingIgnored +
108975c3 Merge pull request #1284 from dgraph-io/jatin/sameFieldSameTypeGettingIgnored fix same field name in two different fragments
-
eb424a22 Merge pull request #1294 from 99designs/fix-init +
eb424a22 Merge pull request #1294 from 99designs/fix-init Allow rewriter to work on empty but potentially importable packages @@ -2189,25 +3347,25 @@ Allow rewriter to work on empty but potentially importable packages ## [v0.12.0](https://github.com/99designs/gqlgen/compare/v0.11.3...v0.12.0) - 2020-08-14 - 70302123 Version 0.12.0 -
3b633dfa Merge pull request #1267 from ImKcat/master +
3b633dfa Merge pull request #1267 from ImKcat/master Fixed transport not support issue
-
c9a27ae3 Merge pull request #1255 from s-ichikawa/fix-object-directive-bug +
c9a27ae3 Merge pull request #1255 from s-ichikawa/fix-object-directive-bug Fix bug about OBJECT directive
-
e9863af1 Merge pull request #1276 from Ghvstcode/master +
e9863af1 Merge pull request #1276 from Ghvstcode/master Documentation Fixes
-
04f6a691 Merge pull request #1277 from 99designs/direct-pointer-binding +
04f6a691 Merge pull request #1277 from 99designs/direct-pointer-binding Support pointers in un/marshal functions @@ -2237,13 +3395,13 @@ This reverts commit 89960664d05f0e93ed629a22753b9e30ced2698f. - f35b162f Fixed transport not support issue -
39a12e0f Merge pull request #1134 from seriousben/fix-default-config-no-ast-sources +
39a12e0f Merge pull request #1134 from seriousben/fix-default-config-no-ast-sources Add LoadDefaultConfig to load the schema by default
-
1b23cf15 Merge pull request #1264 from 99designs/go-1.14 +
1b23cf15 Merge pull request #1264 from 99designs/go-1.14 Target multiple go versions for CI @@ -2251,7 +3409,7 @@ Target multiple go versions for CI - dbbda22e go 1.14 -
ce964c1f Merge pull request #1115 from bowd/add-input-path-for-unmarshaling +
ce964c1f Merge pull request #1115 from bowd/add-input-path-for-unmarshaling Add input path in unmarshaling errors @@ -2269,19 +3427,19 @@ resolve merge conflicts.
-- fbfdd41c Merge pull request #1262 from sateeshpnv/gqlparser-alias (closes #1258) +- fbfdd41c Merge pull request #1262 from sateeshpnv/gqlparser-alias (closes #1258) -- 99fafc9f issue [#1258] explicitly add gqlparser alias to vektah/gqlparser/v2 import +- 99fafc9f [issue #1258] explicitly add gqlparser alias to vektah/gqlparser/v2 import - 49291f23 fix bug in OBJECT directive -
0fbf293f Merge pull request #1248 from sotoslammer/master +
0fbf293f Merge pull request #1248 from sotoslammer/master close the connection when run returns
-
d7eabafb Merge pull request #1246 from arkhvoid/master +
d7eabafb Merge pull request #1246 from arkhvoid/master Fix typo cause memory problem on upload @@ -2291,7 +3449,7 @@ Fix typo cause memory problem on upload - cc9c520f close the connection when run returns -
8494028e Merge pull request #1243 from 99designs/nilable-nullable-unnmarshal +
8494028e Merge pull request #1243 from 99designs/nilable-nullable-unnmarshal Remove a bunch of unneeded nil checks from non-nullable graphql type unmarshalling @@ -2301,13 +3459,13 @@ Remove a bunch of unneeded nil checks from non-nullable graphql type unmarshalli - 14d1a4dc Only return nil for nilable types when the graphql spec would allow it -
3e59a10d Merge pull request #1215 from ddouglas/master +
3e59a10d Merge pull request #1215 from ddouglas/master Adding Missing Header to response
-
1650c499 Merge pull request #1242 from 99designs/named_map_references +
1650c499 Merge pull request #1242 from 99designs/named_map_references Do not use pointers on named map types @@ -2315,13 +3473,13 @@ Do not use pointers on named map types - d11f6021 Do not use pointers on named map types -
acaee361 Merge pull request #1121 from Khan/extern-only +
acaee361 Merge pull request #1121 from Khan/extern-only Do not require a resolver for "empty" extended types.
-
555db6d2 Merge pull request #1224 from frederikhors/patch-1 +
555db6d2 Merge pull request #1224 from frederikhors/patch-1 Indentation misprint @@ -2329,7 +3487,7 @@ Indentation misprint - 77b37bb2 Indentation misprint -
a3c38c65 Merge pull request #1221 from longngn/patch-1 +
a3c38c65 Merge pull request #1221 from longngn/patch-1 Update dataloaders.md @@ -2337,7 +3495,7 @@ Update dataloaders.md - 71182de8 Update dataloaders.md -
d81baeed Merge pull request #1218 from StevenACoffman/patch-1 +
d81baeed Merge pull request #1218 from StevenACoffman/patch-1 Update feature comparison for federation @@ -2351,13 +3509,13 @@ Update feature comparison for federation - f5de4731 Add timeout to integration test -
a21a6633 Merge pull request #1189 from RichardLindhout/patch-1 +
a21a6633 Merge pull request #1189 from RichardLindhout/patch-1 Upgrade to OperationContext and remove duplicate fields to fix https:…
-
543317a2 Merge pull request #1170 from alexsn/apollotracing/nopanic +
543317a2 Merge pull request #1170 from alexsn/apollotracing/nopanic apollotracing: skip field interceptor when on no tracing extension @@ -2365,31 +3523,31 @@ apollotracing: skip field interceptor when on no tracing extension - d347d972 Update stale.yml -
032854bb Merge pull request #1154 from gsgalloway/master +
032854bb Merge pull request #1154 from gsgalloway/master Add operation context when dispatching
-
ccc4eb1d Merge pull request #1188 from k-yomo/update-errors-doc +
ccc4eb1d Merge pull request #1188 from k-yomo/update-errors-doc Update outdated examples in errors doc
-
628b83c1 Merge pull request #1198 from ddevault/pgp +
628b83c1 Merge pull request #1198 from ddevault/pgp codegen: add PGP to common initialisms
-
d881559b Merge pull request #1202 from whereswaldon/patch-1 +
d881559b Merge pull request #1202 from whereswaldon/patch-1 doc: fix typo in embedded struct example
-
b6ce42a7 Merge pull request #1207 from k-yomo/update-gorilla-websocket +
b6ce42a7 Merge pull request #1207 from k-yomo/update-gorilla-websocket Update gorilla/websocket to v1.4.2 to resolve vulnerability @@ -2403,13 +3561,13 @@ Update gorilla/websocket to v1.4.2 to resolve vulnerability - 9ab7294d apollotracing: skip field interceptor when on no tracing extension -
40570d1b Merge pull request #1163 from fwojciec/master +
40570d1b Merge pull request #1163 from fwojciec/master fix redundant type warning
-
3f7f60bf Merge pull request #1181 from tmc/patch-1 +
3f7f60bf Merge pull request #1181 from tmc/patch-1 Update getting-started.md @@ -2421,37 +3579,37 @@ Update getting-started.md - 0921915d Update getting-started.md -
0a404813 Merge pull request #1117 from s-ichikawa/object-directive +
0a404813 Merge pull request #1117 from s-ichikawa/object-directive Add support for OBJECT directive
-
90ee8ded Merge pull request #1137 from ddevault/master +
90ee8ded Merge pull request #1137 from ddevault/master Replace ~ with א in package names
-
e4c699dc Merge pull request #1147 from ddevault/docs +
e4c699dc Merge pull request #1147 from ddevault/docs Add links to godoc to the README and docsite
-
73746621 Merge pull request #1131 from muraoka/fix-typo +
73746621 Merge pull request #1131 from muraoka/fix-typo Fix typo in authentication docs
-
ace558b4 Merge pull request #1124 from OpenSourceProjects/update-apq-documentation +
ace558b4 Merge pull request #1124 from OpenSourceProjects/update-apq-documentation Update APQ example to reflect newer API
-
3c126f9e Merge pull request #1119 from skaji/patch-1 +
3c126f9e Merge pull request #1119 from skaji/patch-1 type Person -> type Person struct @@ -2558,13 +3716,13 @@ Differential Revision: https://phabricator.khanacademy.org/D61883 - d98ff1b0 Modify templates to include deeper context nesting -
a1a02615 Merge pull request #1104 from oshalygin/docs/update-query-complexity-initialization +
a1a02615 Merge pull request #1104 from oshalygin/docs/update-query-complexity-initialization Update Query Complexity Documentation
-
c68df3c6 Merge pull request #1112 from s-ichikawa/delete-unused-code +
c68df3c6 Merge pull request #1112 from s-ichikawa/delete-unused-code delete unused code @@ -2606,21 +3764,21 @@ PRs from outside the org arent running CI, hopefully this fixes it. - 4b949f2e remove copyright notice at bottom of doc pages -
c5039196 Merge pull request #1094 from 99designs/update-upload-docs +
c5039196 Merge pull request #1094 from 99designs/update-upload-docs Update file upload docs with Apollo client usage
-- 5e3cef24 revert #1079 +- 5e3cef24 revert #1079 -
793b0672 Merge pull request #1100 from sonatard/fast +
793b0672 Merge pull request #1100 from sonatard/fast Gnerate to fast by exec codegen.GenerateCode before plugin GenerateCode
-
6ac2d1cd Merge pull request #1097 from 86/86/update-federation-doc +
6ac2d1cd Merge pull request #1097 from 86/86/update-federation-doc Add Enable federation section in federation doc @@ -2644,7 +3802,7 @@ Add Enable federation section in federation doc ## [v0.11.2](https://github.com/99designs/gqlgen/compare/v0.11.1...v0.11.2) - 2020-03-05 - 2ccc0aa6 release v0.11.2 -
78f3da22 Merge pull request #1050 from technoweenie/executor +
78f3da22 Merge pull request #1050 from technoweenie/executor Executor @@ -2652,13 +3810,13 @@ Executor - b82ee517 Fix CI badge -
42eff5a9 Merge pull request #1057 from RichardLindhout/master +
42eff5a9 Merge pull request #1057 from RichardLindhout/master Upgrade to github.com/urfave/cli/v2
-
bb5cb8a3 Merge pull request #1086 from 99designs/github-actions +
bb5cb8a3 Merge pull request #1086 from 99designs/github-actions Use GitHub Actions @@ -2666,7 +3824,7 @@ Use GitHub Actions - cd2b53f2 remove os.Exits -
587bc81c Merge pull request #1074 from yudppp/feature/add_contenttype_for_upload +
587bc81c Merge pull request #1074 from yudppp/feature/add_contenttype_for_upload Add ContentType to graphql.Upload @@ -2700,31 +3858,31 @@ Add ContentType to graphql.Upload - f21832af fix: Fixed Upload type document -
b165568c Merge pull request #1071 from kandros/fix-server-path +
b165568c Merge pull request #1071 from kandros/fix-server-path fix server path
-
9d7648aa Merge pull request #1072 from wtask/patch-1 +
9d7648aa Merge pull request #1072 from wtask/patch-1 Fix a typo in sql example
-
24400c9b Merge pull request #1079 from sonatard/remove-unused +
24400c9b Merge pull request #1079 from sonatard/remove-unused Remove unused code
-
a7c79891 Merge pull request #1081 from sonatard/fix-plugin-test +
a7c79891 Merge pull request #1081 from sonatard/fix-plugin-test Fix unlink file path in resolvergen test
-
e7bf7548 Merge pull request #1080 from sonatard/fix-testdata +
e7bf7548 Merge pull request #1080 from sonatard/fix-testdata Fix test data @@ -2746,19 +3904,19 @@ I think todo is referenced to user by user_id field, not by todo.id - 22a43d77 fix server path -
b788cce5 Merge pull request #1054 from 99designs/golint-free-resolvers +
b788cce5 Merge pull request #1054 from 99designs/golint-free-resolvers suppress golint messages
-
c515d403 Merge pull request #1053 from RichardLindhout/patch-3 +
c515d403 Merge pull request #1053 from RichardLindhout/patch-3 Add practical example of getting all the requested fields
-
e57cd445 Merge pull request #1061 from halvdan/patch-1 +
e57cd445 Merge pull request #1061 from halvdan/patch-1 Fix mismatching documentation of Todo struct @@ -2782,7 +3940,7 @@ Based on this https://github.com/99designs/gqlgen/issues/954 was tagged as 'need
-
a53ce377 Merge pull request #1051 from 99designs/has-operation-context +
a53ce377 Merge pull request #1051 from 99designs/has-operation-context Add function to check presense of operation context @@ -2812,7 +3970,7 @@ Add function to check presense of operation context ## [v0.11.1](https://github.com/99designs/gqlgen/compare/v0.11.0...v0.11.1) - 2020-02-19 - 11af15a1 release v0.11.1 -
bc07188c Merge pull request #1038 from 99designs/feat-check-len +
bc07188c Merge pull request #1038 from 99designs/feat-check-len check slice length @@ -2820,13 +3978,13 @@ check slice length - 2c3853c8 fix whitespace in comparison -
07a13861 Merge pull request #1043 from 99designs/ensure-panic-handlers-get-applied +
07a13861 Merge pull request #1043 from 99designs/ensure-panic-handlers-get-applied Ensure panic handlers get applied
-
156d306d Merge pull request #1046 from appleboy/patch +
156d306d Merge pull request #1046 from appleboy/patch docs(gin): missing import playground @@ -2840,7 +3998,7 @@ docs(gin): missing import playground - 2340f7a7 Ensure panic handlers get applied -
25d16761 Merge pull request #1039 from VitaliiLakusta/patch-1 +
25d16761 Merge pull request #1039 from VitaliiLakusta/patch-1 Fix link to examples directory in Federation docs @@ -2868,7 +4026,7 @@ Fix link to examples directory in Federation docs ## [v0.11.0](https://github.com/99designs/gqlgen/compare/v0.10.2...v0.11.0) - 2020-02-17 - 368597aa release v0.11.0 -
e65d6228 Merge pull request #1036 from 99designs/update-v011-docs +
e65d6228 Merge pull request #1036 from 99designs/update-v011-docs Update 0.11 migration docs @@ -2876,7 +4034,7 @@ Update 0.11 migration docs - 11f97936 Update 0.11 migration docs -
2b3eed30 Merge pull request #1034 from 99designs/strip-underscores-from-entity-interfaces +
2b3eed30 Merge pull request #1034 from 99designs/strip-underscores-from-entity-interfaces Trim underscores from around go identifiers @@ -2888,13 +4046,13 @@ Trim underscores from around go identifiers - 4b9dfa61 trim underscores from around go identifiers -
7cac3610 Merge pull request #1027 from sonatard/response-errors +
7cac3610 Merge pull request #1027 from sonatard/response-errors propagate resolver errors to response error in ResponseMiddleware
-
14dccc57 Merge pull request #1022 from 99designs/feat-gqlparser-117 +
14dccc57 Merge pull request #1022 from 99designs/feat-gqlparser-117 example about apply https://github.com/vektah/gqlparser/pull/117 @@ -2902,7 +4060,7 @@ example about apply https://github.com/vektah/gqlparser/pull/117 - cf6f7683 bump to gqlparser v2 -
4ece3857 Merge pull request #1028 from abhimanyusinghgaur/master +
4ece3857 Merge pull request #1028 from abhimanyusinghgaur/master Respect includeDeprecated for EnumValues @@ -2920,7 +4078,7 @@ Respect includeDeprecated for EnumValues - e4530da6 apply https://github.com/vektah/gqlparser/pull/117 -
30e23757 Merge pull request #1020 from 99designs/handle-interfaces-implementing-interfaces +
30e23757 Merge pull request #1020 from 99designs/handle-interfaces-implementing-interfaces Handle interfaces that implement interfaces @@ -2928,7 +4086,7 @@ Handle interfaces that implement interfaces - b7a58a1c Handle interfaces that implement interfaces -
ab8d62b6 Merge pull request #1019 from 99designs/remove-source-reprinting +
ab8d62b6 Merge pull request #1019 from 99designs/remove-source-reprinting Remove source reprinting @@ -2938,7 +4096,7 @@ Remove source reprinting - aacc9b1f Remove source reprinting -
e289aaa0 Merge pull request #1018 from 99designs/federation-docs +
e289aaa0 Merge pull request #1018 from 99designs/federation-docs Federation docs and examples @@ -2946,7 +4104,7 @@ Federation docs and examples - 3045b2cf Federation docs and examples -
656a07d1 Merge pull request #1016 from 99designs/federation-entity-type +
656a07d1 Merge pull request #1016 from 99designs/federation-entity-type Create a non generated federation _Entity type @@ -2954,13 +4112,13 @@ Create a non generated federation _Entity type - 8850a527 Create a non generated federation _Entity type -
1d41c2eb Merge pull request #1012 from 99designs/federation-config +
1d41c2eb Merge pull request #1012 from 99designs/federation-config Allow configuring the federation output file location
-
afa9a150 Merge pull request #1013 from 99designs/feat-error-dispatch +
afa9a150 Merge pull request #1013 from 99designs/feat-error-dispatch propagate errors to response context in DispatchError @@ -2968,7 +4126,7 @@ propagate errors to response context in DispatchError - 652aa2fb propagate errors to response context in DispatchError -
0fe1af8c Merge pull request #1011 from Khan/compound-keys +
0fe1af8c Merge pull request #1011 from Khan/compound-keys Compound key support in federation @@ -2976,7 +4134,7 @@ Compound key support in federation - ad3c1c81 Allow configuring the federation output file location -
b4a00e6c Merge pull request #1010 from Khan/query-exists +
b4a00e6c Merge pull request #1010 from Khan/query-exists Make sure there's a Query node before trying to add a field to it. @@ -3032,7 +4190,7 @@ too.
-
b941b970 Merge pull request #1007 from 99designs/handle-invalid-autoload-path +
b941b970 Merge pull request #1007 from 99designs/handle-invalid-autoload-path Give an appropriate error message when autoload isnt a valid package @@ -3044,7 +4202,7 @@ Give an appropriate error message when autoload isnt a valid package - d5d6f830 Give an appropriate error message when autoload isnt a valid package -
f7667e12 Merge pull request #1009 from 99designs/interface-regression +
f7667e12 Merge pull request #1009 from 99designs/interface-regression Interface regression @@ -3054,7 +4212,7 @@ Interface regression - 44cfb926 Test example for interface regression -
0ddb3ef3 Merge pull request #1006 from ravisastryk/entity-directives-lookup +
0ddb3ef3 Merge pull request #1006 from ravisastryk/entity-directives-lookup skip searching directives when entity is found @@ -3064,7 +4222,7 @@ skip searching directives when entity is found - e1f2282e bump to go 1.13 in ci -
34c92eba Merge pull request #1003 from 99designs/fix-chat-example +
34c92eba Merge pull request #1003 from 99designs/fix-chat-example fix chat example @@ -3072,7 +4230,7 @@ fix chat example - 6bf88417 fix chat example -
8ed2ec59 Merge pull request #988 from 99designs/package-cache +
8ed2ec59 Merge pull request #988 from 99designs/package-cache Cache all packages.Load calls in a central object @@ -3080,7 +4238,7 @@ Cache all packages.Load calls in a central object - 9ccd7ed7 Cache all packages.Load calls in a central object -
565619a8 Merge pull request #993 from 99designs/resolver-generator-v2 +
565619a8 Merge pull request #993 from 99designs/resolver-generator-v2 Resolver regenerator @@ -3110,7 +4268,7 @@ Resolver regenerator - 8a18895e Update to latest golangci-lint -- f7a67722 Merge pull request #985 from Khan/no-key-needed +- f7a67722 Merge pull request #985 from Khan/no-key-needed
fa884991 Correctly generate a federated schema when no entity has a `[@key](https://github.com/key)`. @@ -3128,13 +4286,13 @@ This commit updates the federation code to support that use case.
-
36aae4aa Merge pull request #994 from 99designs/feat-cache-ctx +
36aae4aa Merge pull request #994 from 99designs/feat-cache-ctx Add context.Context to graphql.Cache interface's methods
-
61e060bd Merge pull request #995 from alexsn/directiveroot_empty_lines +
61e060bd Merge pull request #995 from alexsn/directiveroot_empty_lines Remove empty lines on DirectiveRoot generation @@ -3144,13 +4302,13 @@ Remove empty lines on DirectiveRoot generation - 85cfa8a3 Add context.Context to graphql.Cache interface's methods -
a6c7aafb Merge pull request #931 from fridolin-koch/master +
a6c7aafb Merge pull request #931 from fridolin-koch/master Fix for Panic if only interfaces shall be generated
-
ec4f6b15 Merge pull request #989 from 99designs/fix-intermittent-test-ka-failure +
ec4f6b15 Merge pull request #989 from 99designs/fix-intermittent-test-ka-failure Fix intermittent websocket ka test failure @@ -3158,7 +4316,7 @@ Fix intermittent websocket ka test failure - 76035df5 Fix intermittent websocket ka test failure -
aa407b1f Merge pull request #979 from 99designs/capture-read-times +
aa407b1f Merge pull request #979 from 99designs/capture-read-times Capture read times @@ -3168,13 +4326,13 @@ Capture read times - 8dbce3cf Capture the time spent reading requests from the client -
c6b3e2a1 Merge pull request #983 from vikstrous/name-for-package-global +
c6b3e2a1 Merge pull request #983 from vikstrous/name-for-package-global single packages.Load for NameForPackage
-
ae79e75b Merge pull request #978 from 99designs/pluggable-error-code +
ae79e75b Merge pull request #978 from 99designs/pluggable-error-code Allow customizing http and websocket status codes for errors @@ -3188,7 +4346,7 @@ Allow customizing http and websocket status codes for errors - bd50bbcb single packages.Load for NameForPackage -
28c032d1 Merge pull request #982 from DavidJFelix/patch-1 +
28c032d1 Merge pull request #982 from DavidJFelix/patch-1 fix: explicitly exclude trailing comma from link @@ -3212,7 +4370,7 @@ fix: explicitly exclude trailing comma from link - cfa2907a Generate docs for all tags -
8218c734 Merge pull request #851 from marwan-at-work/federation +
8218c734 Merge pull request #851 from marwan-at-work/federation Apollo Federation MVP @@ -3224,13 +4382,13 @@ Apollo Federation MVP - d2a13d33 update go.mod -
0eef2fe2 Merge pull request #970 from spiffyjr/master +
0eef2fe2 Merge pull request #970 from spiffyjr/master Fix extra trimspace on nillable Unmarshals
-
56b8eef2 Merge pull request #974 from oshalygin/docs/gqlgen-pg-example-repo +
56b8eef2 Merge pull request #974 from oshalygin/docs/gqlgen-pg-example-repo Add Link to Sample Project with GQLGen and Postgres @@ -3285,7 +4443,7 @@ README which covers a ton of the details on how to use this project: - 21356ce3 markdown cleanup -
412a72fe Merge pull request #885 from 99designs/handler-refactor +
412a72fe Merge pull request #885 from 99designs/handler-refactor Refactor handler package @@ -3295,7 +4453,7 @@ Refactor handler package - dca9e4a5 Add migration docs -
5106480b Merge pull request #947 from 99designs/handler-oc-handling +
5106480b Merge pull request #947 from 99designs/handler-oc-handling always return OperationContext for postpone process @@ -3419,25 +4577,25 @@ always return OperationContext for postpone process ## [v0.10.2](https://github.com/99designs/gqlgen/compare/v0.10.1...v0.10.2) - 2019-11-28 - f276a4e6 release v0.10.2 -
9e989d94 Merge pull request #929 from nmaquet/check-nil-interface-ptrs +
9e989d94 Merge pull request #929 from nmaquet/check-nil-interface-ptrs Don't crash when interface resolver returns a typed nil
-
6f20101c Merge pull request #940 from vikstrous/optional-modelgen +
6f20101c Merge pull request #940 from vikstrous/optional-modelgen make model generation optional
-
9b9dd562 Merge pull request #942 from vikstrous/disable-validation +
9b9dd562 Merge pull request #942 from vikstrous/disable-validation add skip_validation flag
-
f9f2063a Merge pull request #941 from vikstrous/qualify-package-path-faster +
f9f2063a Merge pull request #941 from vikstrous/qualify-package-path-faster shortcut QualifyPackagePath in go module mode @@ -3455,7 +4613,7 @@ shortcut QualifyPackagePath in go module mode - c2c2d7de make model generation optional -
d3f63844 Merge pull request #939 from mjarkk/patch-1 +
d3f63844 Merge pull request #939 from mjarkk/patch-1 (docs) graph-gophers now supports Struct Field resolving @@ -3463,13 +4621,13 @@ shortcut QualifyPackagePath in go module mode - ba3d0189 graph-gophers now supports Struct Field resolvers -
e747d923 Merge pull request #938 from lulucas/master +
e747d923 Merge pull request #938 from lulucas/master modelgen hook docs fixed
-
63be1d5e Merge pull request [#1](https://github.com/99designs/gqlgen/issues/1) from lulucas/modelgen-hook-patch-1 +
63be1d5e Merge pull request #1 from lulucas/modelgen-hook-patch-1 modelgen hook docs use plugin poitner @@ -3502,7 +4660,7 @@ See https://golang.org/doc/faq#nil_error
-
15b30588 Merge pull request #894 from 99designs/enum-var-value-coercion +
15b30588 Merge pull request #894 from 99designs/enum-var-value-coercion Improve enum value (with vars) validation timing @@ -3512,25 +4670,25 @@ Improve enum value (with vars) validation timing - 0ccfc7e0 Merge branch 'master' into enum-var-value-coercion -
9cfd817e Merge pull request #897 from mskrip/modelgen-hook +
9cfd817e Merge pull request #897 from mskrip/modelgen-hook Add possibility to hook into modelgen plugin
-- c1e64148 Merge pull request #900 from zannen/master (closes #896) +- c1e64148 Merge pull request #900 from zannen/master (closes #896) -- 8a8f0a0f Add autogenerated files (#896) +- 8a8f0a0f Add autogenerated files (#896) -- 531729df Move test schema file from example dir into codegen/testserver (#896) +- 531729df Move test schema file from example dir into codegen/testserver (#896) -- 5144775f Add example to check for regression of #896 +- 5144775f Add example to check for regression of #896 -- 3b5df4ce Add check for obviously different TypeReferences (#896) +- 3b5df4ce Add check for obviously different TypeReferences (#896) -- fb96756a Update generated content (#896) +- fb96756a Update generated content (#896) -
fd201a8c Update UniquenessKey for when Element is/isn't nullable (#896) +
fd201a8c Update UniquenessKey for when Element is/isn't nullable (#896) With a schema: type Query { @@ -3581,7 +4739,7 @@ func main() {
-
99a55da2 Merge pull request #927 from matiasanaya/feature/bind-to-embedded-interface +
99a55da2 Merge pull request #927 from matiasanaya/feature/bind-to-embedded-interface Bind to embedded interface @@ -3589,9 +4747,9 @@ Bind to embedded interface - 70e860cc Bind to embedded interface method -- a745dc78 Fixes #843: Bind to embedded struct method or field +- a745dc78 Fixes #843: Bind to embedded struct method or field -
f80cab06 Merge pull request #923 from 99designs/gqlparser-1.2.0 +
f80cab06 Merge pull request #923 from 99designs/gqlparser-1.2.0 Update to gqlparser-1.2.0 @@ -3599,13 +4757,13 @@ Update to gqlparser-1.2.0 - 7508f4e5 Update to gqlparser-1.2.0 -
7653a681 Merge pull request #916 from karthikraobr/patch-1 +
7653a681 Merge pull request #916 from karthikraobr/patch-1 3->4 scalars
-
8faa0e3a Merge pull request #917 from colelawrence/patch-1 +
8faa0e3a Merge pull request #917 from colelawrence/patch-1 docs: Fix typo in title of "Resolvers" @@ -3615,7 +4773,7 @@ docs: Fix typo in title of "Resolvers" - d722ac66 Update scalars.md -
1172128c Merge pull request #904 from cfilby/fix-config-docs +
1172128c Merge pull request #904 from cfilby/fix-config-docs Minor Documentation Tweaks @@ -3627,11 +4785,11 @@ Minor Documentation Tweaks - 5eb6bef6 Fix weird indending -- 756dcf6b Merge pull request #907 from lian-yue/patch-1 (closes #860) +- 756dcf6b Merge pull request #907 from lian-yue/patch-1 (closes #860) - 2a943eed Update directive.go (closes #860) -
adbceeea Merge pull request #902 from cfilby/fix-int64-marshalling +
adbceeea Merge pull request #902 from cfilby/fix-int64-marshalling Add support for int64 IDs @@ -3657,7 +4815,7 @@ Add support for int64 IDs - 395fc85e Add support for int64 ids -
dbc88428 Merge pull request #889 from thnt/fix-init-with-schema-arg +
dbc88428 Merge pull request #889 from thnt/fix-init-with-schema-arg fix init not use custom schema filename @@ -3667,7 +4825,7 @@ fix init not use custom schema filename - dd98bb13 fix init not use custom schema -
4c35356c Merge pull request #883 from 99designs/handle-invalid-types +
4c35356c Merge pull request #883 from 99designs/handle-invalid-types Gracefully handle invalid types from invalid go packages @@ -3675,7 +4833,7 @@ Gracefully handle invalid types from invalid go packages - 25b70271 Gracefully handle invalid types from invalid go packages -
046054db Merge pull request #882 from 99designs/testserver-autobind +
046054db Merge pull request #882 from 99designs/testserver-autobind Use autobinding in testserver @@ -3683,7 +4841,7 @@ Use autobinding in testserver - 12c963a4 Use autobinding in testserver -
305116a0 Merge pull request #879 from coderste/patch-1 +
305116a0 Merge pull request #879 from coderste/patch-1 Fixed broken GitHub link within the APQ page @@ -3705,7 +4863,7 @@ Small documentation change to fix a broken GitHub link. ## [v0.10.1](https://github.com/99designs/gqlgen/compare/v0.10.0...v0.10.1) - 2019-09-25 - efb6efe0 release v0.10.1 -
955f3499 Merge pull request #877 from 99designs/fix-websocket-client +
955f3499 Merge pull request #877 from 99designs/fix-websocket-client Fix websocket connections on test client @@ -3723,13 +4881,13 @@ Fix websocket connections on test client ## [v0.10.0](https://github.com/99designs/gqlgen/compare/v0.9.3...v0.10.0) - 2019-09-24 - 75a83752 release v0.10.0 -
0bc3cc86 Merge pull request #875 from 99designs/fix-clientwide-opts +
0bc3cc86 Merge pull request #875 from 99designs/fix-clientwide-opts Fix client global options
-
b43edf5d Merge pull request #874 from 99designs/configurable-slice-element-pointers +
b43edf5d Merge pull request #874 from 99designs/configurable-slice-element-pointers Add config option to omit pointers to slice elements @@ -3739,7 +4897,7 @@ Add config option to omit pointers to slice elements - d0098e60 Add config option to omit pointers to slice elements -
01893280 Merge pull request #819 from 99designs/fix-directive-interface-nils +
01893280 Merge pull request #819 from 99designs/fix-directive-interface-nils Fix directives returning nils from optional interfaces @@ -3747,37 +4905,37 @@ Fix directives returning nils from optional interfaces - 34d10975 Fix directives returning nils from optional interfaces -
eea38e55 Merge pull request #862 from qhenkart/fixes-shareable-link-setting +
eea38e55 Merge pull request #862 from qhenkart/fixes-shareable-link-setting fixes shareable link button in playground
-
b5e78342 Merge pull request #870 from 99designs/ws-init-ctx +
b5e78342 Merge pull request #870 from 99designs/ws-init-ctx Allow changing context in websocket init func
-
034aa627 Merge pull request #871 from 99designs/subscription-middleware +
034aa627 Merge pull request #871 from 99designs/subscription-middleware Call middleware and directives for subscriptions
-
7b41ca3c Merge pull request #872 from 99designs/autobind-prefix +
7b41ca3c Merge pull request #872 from 99designs/autobind-prefix Allow prefixes when using autobind
-
de8e559f Merge pull request #854 from wabain/nested-map-interface +
de8e559f Merge pull request #854 from wabain/nested-map-interface Fix for nested fields backed by map or interface
-
cc64f331 Merge pull request #828 from 99designs/feat-rc +
cc64f331 Merge pull request #828 from 99designs/feat-rc introduce RequestContext#Validate and use it instead of NewRequestContext function @@ -3789,7 +4947,7 @@ introduce RequestContext#Validate and use it instead of NewRequestContext functi - 5a7c5903 Allow changing context in websocket init func -
17f32d28 Merge pull request #861 from 99designs/refactor-test-client +
17f32d28 Merge pull request #861 from 99designs/refactor-test-client Refactor test client @@ -3817,7 +4975,7 @@ fix formatting - feebee7d stalebot -
7e643fdc Merge pull request #838 from 99designs/fix-directive-nil +
7e643fdc Merge pull request #838 from 99designs/fix-directive-nil fix directives return nil handling @@ -3825,7 +4983,7 @@ fix directives return nil handling - f33e09e8 Merge branch 'master' into fix-directive-nil -
8590edef Merge pull request #839 from 99designs/fix-nil-directive +
8590edef Merge pull request #839 from 99designs/fix-nil-directive refactor unimplemented directive handling @@ -3851,13 +5009,13 @@ refactor unimplemented directive handling ## [v0.9.3](https://github.com/99designs/gqlgen/compare/v0.9.2...v0.9.3) - 2019-08-16 - a7bc468c release v0.9.3 -
fc02cfe8 Merge pull request #829 from 99designs/fix-2directives +
fc02cfe8 Merge pull request #829 from 99designs/fix-2directives fix go syntax issue when field has 2 directives
-
924f620c Merge pull request #831 from yudppp/patch-1 +
924f620c Merge pull request #831 from yudppp/patch-1 Fixed scalar reference documentation @@ -3877,7 +5035,7 @@ Fixed scalar reference documentation ## [v0.9.2](https://github.com/99designs/gqlgen/compare/v0.9.1...v0.9.2) - 2019-08-08 - 4eeacc6e release v0.9.2 -
5628169d Merge pull request #822 from 99designs/windows-import-path-loop +
5628169d Merge pull request #822 from 99designs/windows-import-path-loop fix for windows infinite loop @@ -3887,7 +5045,7 @@ fix for windows infinite loop - 6348a563 fix for windows infinite loop -
12893fa4 Merge pull request #821 from 99designs/fix-init +
12893fa4 Merge pull request #821 from 99designs/fix-init Fix config loading during gqlgen init @@ -3895,7 +5053,7 @@ Fix config loading during gqlgen init - 5fafe79c Fix config loading during gqlgen init -
2599f560 Merge pull request #820 from 99designs/keepalive-on-init +
2599f560 Merge pull request #820 from 99designs/keepalive-on-init send keepalive on init @@ -3905,7 +5063,7 @@ send keepalive on init - f93df340 send keepalive on init -
8f0d9b48 Merge pull request #816 from nii236/patch-1 +
8f0d9b48 Merge pull request #816 from nii236/patch-1 Update cors.md to allow CORS for websockets @@ -3913,7 +5071,7 @@ Update cors.md to allow CORS for websockets - 297e09c4 change origin check -
410d8322 Merge pull request #805 from andrey1s/golangci +
410d8322 Merge pull request #805 from andrey1s/golangci enable-all linters on golangci-lint @@ -3927,31 +5085,31 @@ enable-all linters on golangci-lint - cce06f1d update lint in circleci -
da1c208e Merge pull request #795 from oshalygin/feature/issue-794-resolve-dead-readme-link +
da1c208e Merge pull request #795 from oshalygin/feature/issue-794-resolve-dead-readme-link Update GraphQL Reference Link
-
8343c32c Merge pull request #784 from y15e/add-missing-header +
8343c32c Merge pull request #784 from y15e/add-missing-header Add a missing "Upload" header
-
8302463f Merge pull request #797 from muesli/format-fixes +
8302463f Merge pull request #797 from muesli/format-fixes Format import order using goimports
-
f2825e09 Merge pull request #801 from Schparky/patch-1 +
f2825e09 Merge pull request #801 from Schparky/patch-1 Documentation: getting-started edits
-
3db5627f Merge pull request #807 from flrossetto/patch-1 +
3db5627f Merge pull request #807 from flrossetto/patch-1 Fix doc @@ -3998,7 +5156,7 @@ map[string]{interface} -> map[string]interface{}
-
373359de Merge pull request #781 from 99designs/fix-default-directives-init +
373359de Merge pull request #781 from 99designs/fix-default-directives-init Set default directives after parsing config @@ -4008,13 +5166,13 @@ Set default directives after parsing config - 8cab5fba Set default directives after parsing config -
d2c5bf2a Merge pull request #780 from zdebra/master +
d2c5bf2a Merge pull request #780 from zdebra/master fixed generating a description to golang comments for enum type
-
bf2cc90e Merge pull request #768 from 99designs/fix-ptr-from-directive +
bf2cc90e Merge pull request #768 from 99designs/fix-ptr-from-directive Fix pointer returns from directive @@ -4022,7 +5180,7 @@ Fix pointer returns from directive - 446c3df3 fixed generating a description to golang comments for enum type -- 414a4d34 Merge pull request #771 from sunfmin/master +- 414a4d34 Merge pull request #771 from sunfmin/master - 4d1484b0 Fix doc for how to use [@goField](https://github.com/goField) directives forceResolver option @@ -4044,7 +5202,7 @@ this was affecting the version shown in go modules when using commits
-
5ffc2975 Merge pull request #764 from 99designs/fix-field-directives-on-roots +
5ffc2975 Merge pull request #764 from 99designs/fix-field-directives-on-roots fix field schema directives applied to roots @@ -4052,7 +5210,7 @@ fix field schema directives applied to roots - ef3830b5 fix field schema directives applied to roots -
17ee40ba Merge pull request #761 from 99designs/autobinding +
17ee40ba Merge pull request #761 from 99designs/autobinding Autobind models @@ -4060,7 +5218,7 @@ Autobind models - b716bfac Autobind models -
fc3755f1 Merge pull request #732 from 99designs/schemaconfig-plugin +
fc3755f1 Merge pull request #732 from 99designs/schemaconfig-plugin Add a plugin for configuring gqlgen via directives @@ -4070,13 +5228,13 @@ Add a plugin for configuring gqlgen via directives - 64aca616 Merge remote-tracking branch 'origin/master' into schemaconfig-plugin -
5e7e94c8 Merge pull request #756 from andrey1s/field +
5e7e94c8 Merge pull request #756 from andrey1s/field generate field defenition and execute field directive
-
ad2ca304 Merge pull request #759 from 99designs/circle-workflows +
ad2ca304 Merge pull request #759 from 99designs/circle-workflows CircleCI workflows @@ -4084,7 +5242,7 @@ CircleCI workflows - 0fc822ca CircleCI workflows -
2dc8423b Merge pull request #758 from franxois/patch-1 +
2dc8423b Merge pull request #758 from franxois/patch-1 Update dataloaders.md @@ -4108,7 +5266,7 @@ Make SQL request use requested IDs - dd162f04 define implDirectives template -
56f3f92b Merge pull request #755 from 99designs/fix-globbing-windows +
56f3f92b Merge pull request #755 from 99designs/fix-globbing-windows fix globbing on windows @@ -4116,7 +5274,7 @@ fix globbing on windows - a4480fb0 fix globbing on windows -
ba176e2e Merge pull request #754 from 99designs/coveralls +
ba176e2e Merge pull request #754 from 99designs/coveralls Add coveralls @@ -4124,7 +5282,7 @@ Add coveralls - f28ed264 Add coveralls -
f4a69ab5 Merge pull request #744 from andrey1s/directive +
f4a69ab5 Merge pull request #744 from andrey1s/directive add Execute QUERY/MUTATION/SUBSCRIPTION Directives @@ -4132,19 +5290,19 @@ add Execute QUERY/MUTATION/SUBSCRIPTION Directives - dbd2cc6e simplify resolver test -
7fed71b6 Merge pull request #728 from fgallina/make-generated-resolver-dependent-types-follow-configured-type +
7fed71b6 Merge pull request #728 from fgallina/make-generated-resolver-dependent-types-follow-configured-type resolvergen: use the resolver type as base name for dependent types
-
cb284c56 Merge pull request #734 from DBL-Lee/master +
cb284c56 Merge pull request #734 from DBL-Lee/master Automatic Persisted Queries
-
726a94f4 Merge pull request #750 from 99designs/ws-connection-param-check +
726a94f4 Merge pull request #750 from 99designs/ws-connection-param-check [websocket] Add a config to reject initial connection @@ -4152,7 +5310,7 @@ Automatic Persisted Queries - 69d7e282 move directive to directives.gotpl -
090f0bd9 Merge pull request #722 from marwan-at-work/deps +
090f0bd9 Merge pull request #722 from marwan-at-work/deps resolve all pkg dependencies @@ -4222,7 +5380,7 @@ diff -u resolver.go resolvernew.go - 8fcc1868 format -
e0e1e318 Merge pull request [#1](https://github.com/99designs/gqlgen/issues/1) from radev/master +
e0e1e318 Merge pull request #1 from radev/master Support for external APQ cache @@ -4232,7 +5390,7 @@ Support for external APQ cache - 48292c10 Support pluggable APQ cache implementations. -- 694f90aa Merge pull request #717 from cbelsole/schema_file_globbing (closes #631) +- 694f90aa Merge pull request #717 from cbelsole/schema_file_globbing (closes #631) - 9be5aad0 Don't inject builtins during schema config @@ -4244,7 +5402,7 @@ Support for external APQ cache - 17a82c37 Provide config to skip generating runtime for a directive -
ba7092c5 Merge pull request #724 from saint1991/patch-1 +
ba7092c5 Merge pull request #724 from saint1991/patch-1 added a missing close bracket @@ -4254,7 +5412,7 @@ added a missing close bracket - 3dd8baf5 resolve all pkg dependencies -- 1617ff28 Merge pull request #718 from hh/fix-docs (closes #714) +- 1617ff28 Merge pull request #718 from hh/fix-docs (closes #714) - 9d332a7d Fixing getting-started documentation @@ -4262,9 +5420,9 @@ added a missing close bracket - e32c82be cleanup -- e9389ef8 added schema file globbing fixes #631 +- e9389ef8 added schema file globbing fixes #631 -
4f163cbc Merge pull request #713 from 99designs/faq +
4f163cbc Merge pull request #713 from 99designs/faq Add faq section @@ -4280,7 +5438,7 @@ Add faq section ## [v0.9.0](https://github.com/99designs/gqlgen/compare/v0.8.3...v0.9.0) - 2019-05-15 - ea4652d2 release v0.9.0 -
f3c8406d Merge pull request #710 from 99designs/slice-pointers +
f3c8406d Merge pull request #710 from 99designs/slice-pointers Use pointers to structs inside slices @@ -4290,7 +5448,7 @@ Use pointers to structs inside slices - 315141d9 Use pointers to structs inside slices -
9a6a10ab Merge pull request #706 from 99designs/mapping-primitive +
9a6a10ab Merge pull request #706 from 99designs/mapping-primitive Fix mapping object types onto go primitives @@ -4300,13 +5458,13 @@ Fix mapping object types onto go primitives - b0cd95a1 Test mapping object types onto go string -
eaa61bb5 Merge pull request #707 from 99designs/gomodules-performance +
eaa61bb5 Merge pull request #707 from 99designs/gomodules-performance make gqlgen generate 10x faster in some projects
-
ab961ce0 Merge pull request #705 from 99designs/fix-error-race +
ab961ce0 Merge pull request #705 from 99designs/fix-error-race Fix a data race when handling concurrent resolver errors @@ -4318,7 +5476,7 @@ Fix a data race when handling concurrent resolver errors - 962470de Fix a data race when handling concurrent resolver errors -
9ca43ba9 Merge pull request #701 from 99designs/modelgen-pointers +
9ca43ba9 Merge pull request #701 from 99designs/modelgen-pointers Use pointers when embedding structs in generated structs @@ -4326,7 +5484,7 @@ Use pointers when embedding structs in generated structs - 4f5e9cf0 always use pointers when refering to structs in generated models -
e2ac8480 Merge pull request #704 from tul/doc-typo +
e2ac8480 Merge pull request #704 from tul/doc-typo Fix typo @@ -4334,13 +5492,13 @@ Fix typo - 80ebe644 Fix typo -
0bd90809 Merge pull request #700 from 99designs/fix-interface-caseing +
0bd90809 Merge pull request #700 from 99designs/fix-interface-caseing Fix interface casing
-
5586ee2c Merge pull request #702 from 99designs/drop-automatic-zeroisnull +
5586ee2c Merge pull request #702 from 99designs/drop-automatic-zeroisnull Drop automatic conversion of IsZero to null @@ -4350,7 +5508,7 @@ Drop automatic conversion of IsZero to null - 46c40b74 Fix interface casing (closes #694) -
e49d44f7 Merge pull request #689 from tgwizard/enforce-request-content-type +
e49d44f7 Merge pull request #689 from tgwizard/enforce-request-content-type Enforce content type for POST requests @@ -4360,13 +5518,13 @@ Enforce content type for POST requests - d4b3de3a Merge remote-tracking branch 'origin/master' into enforce-request-content-type -
f8ef6d2e Merge pull request #668 from mbranch/complexity +
f8ef6d2e Merge pull request #668 from mbranch/complexity Fix: complexity case selection
-
c4805049 Merge pull request #655 from hantonelli/file-upload +
c4805049 Merge pull request #655 from hantonelli/file-upload File upload @@ -4376,7 +5534,7 @@ File upload - 8a0c34a4 Merge branch 'master' into file-upload -
4e359aa2 Merge pull request #686 from qhenkart/master +
4e359aa2 Merge pull request #686 from qhenkart/master Adds default custom scalar of interface{} @@ -4405,7 +5563,7 @@ field names to the associated complexity func. - bf2d07a4 moves naming convention to a non-go standard -
d1e8acda Merge pull request #687 from stereosteve/fix-includeDeprecated +
d1e8acda Merge pull request #687 from stereosteve/fix-includeDeprecated Fix: omit deprecated fields when includeDeprecated=false @@ -4437,7 +5595,7 @@ This reverts commit 7ade7c2
-
afe33f73 Merge pull request #680 from asp24/collect-fields-performance +
afe33f73 Merge pull request #680 from asp24/collect-fields-performance Better CollectFields performance @@ -4455,7 +5613,7 @@ Better CollectFields performance - da52e810 Extend test and don't close form file. -
1c95d42a Merge pull request #678 from jonatasbaldin/gin-context-recipe +
1c95d42a Merge pull request #678 from jonatasbaldin/gin-context-recipe Fix unset key and comment block at Gin recipe docs @@ -4463,7 +5621,7 @@ Fix unset key and comment block at Gin recipe docs - 0b39c445 Fix unset key and comment block -
5aa6a20b Merge pull request #673 from marwan-at-work/tpl +
5aa6a20b Merge pull request #673 from marwan-at-work/tpl codegen/templates: allow templates to be passed in options instead of… @@ -4473,7 +5631,7 @@ codegen/templates: allow templates to be passed in options instead of… - e69b7399 add docs to the templates package -
8cae895b Merge pull request #676 from jonatasbaldin/gin-context-recipe +
8cae895b Merge pull request #676 from jonatasbaldin/gin-context-recipe Add recipe to use gin.Context @@ -4489,7 +5647,7 @@ Add recipe to use gin.Context - 2cf7f452 Fix comments (add request size limit, remove useless comments, improve decoding and function signature, improve documentation) -
5ff60925 Merge pull request #665 from ezeql/patch-1 +
5ff60925 Merge pull request #665 from ezeql/patch-1 update README.md @@ -4572,19 +5730,19 @@ fix link ## [v0.8.3](https://github.com/99designs/gqlgen/compare/v0.8.2...v0.8.3) - 2019-04-03 - 010a79b6 release v0.8.3 -
3623f7fc Merge pull request #650 from andcan/plugin-funcmap +
3623f7fc Merge pull request #650 from andcan/plugin-funcmap Allow plugins to provide additional template funcs
-
a2e59362 Merge pull request #652 from andrey1s/extraBuiltins +
a2e59362 Merge pull request #652 from andrey1s/extraBuiltins add extra builtins types when no type exists
-
c93d92ba Merge pull request #654 from sharkyze/fix-introscpetion-doc +
c93d92ba Merge pull request #654 from sharkyze/fix-introscpetion-doc doc: fix mistake on introspection doc page @@ -4592,7 +5750,7 @@ doc: fix mistake on introspection doc page - 93e72b58 doc: fix error on introspection doc page -
ef2e51ba Merge pull request #637 from 99designs/fix-is-slice +
ef2e51ba Merge pull request #637 from 99designs/fix-is-slice Fix Mapping Custom Scalar to Slice @@ -4606,7 +5764,7 @@ Fix Mapping Custom Scalar to Slice - 055157f9 Update ISSUE_TEMPLATE.md -
a148229c Merge pull request #644 from Sauraus/master +
a148229c Merge pull request #644 from Sauraus/master Fix Gin installation instruction @@ -4636,7 +5794,7 @@ cases such as a scalar mapping to []byte ## [v0.8.2](https://github.com/99designs/gqlgen/compare/v0.8.1...v0.8.2) - 2019-03-18 - ee06517c release v0.8.2 -
8ac8a1f8 Merge pull request #635 from 99designs/fix-inject-builtin-scalars +
8ac8a1f8 Merge pull request #635 from 99designs/fix-inject-builtin-scalars Only Inject Builtin Scalars if Defined in Schema @@ -4648,7 +5806,7 @@ Only Inject Builtin Scalars if Defined in Schema - d567d5c8 Inject non-spec builtin values only if defined -
3e39b57a Merge pull request #634 from 99designs/fallback-to-string +
3e39b57a Merge pull request #634 from 99designs/fallback-to-string Use graphql.String for types wrapping a basic string @@ -4656,7 +5814,7 @@ Use graphql.String for types wrapping a basic string - a2cce0d1 Use graphql.String for types wrapping a basic string -
fc05501b Merge pull request #633 from 99designs/fix-union-pointers +
fc05501b Merge pull request #633 from 99designs/fix-union-pointers Fix Having Pointers to Union Types @@ -4673,7 +5831,7 @@ to a Go stuct.
-
5df0938f Merge pull request #628 from 99designs/fix-ambient-imports +
5df0938f Merge pull request #628 from 99designs/fix-ambient-imports Move ambient imports into cmd package @@ -4688,7 +5846,7 @@ This was changed in 0.8 but the ambient imports weren't moved.
-
58744de9 Merge pull request #622 from 99designs/handle-complexity-root-collisions +
58744de9 Merge pull request #622 from 99designs/handle-complexity-root-collisions Handle colliding fields in complexity root gracefully @@ -4696,7 +5854,7 @@ Handle colliding fields in complexity root gracefully - c889b314 Handle colliding fields in complexity root gracefully -
26c395b0 Merge pull request #620 from codyleyhan/cl/error +
26c395b0 Merge pull request #620 from codyleyhan/cl/error Allow user to supply path to gqlerror @@ -4704,7 +5862,7 @@ Allow user to supply path to gqlerror - 12cf01aa Allow user to supply path to gqlerror -
932322b6 Merge pull request #619 from 99designs/nil-slices +
932322b6 Merge pull request #619 from 99designs/nil-slices Support returning nulls from slices @@ -4712,7 +5870,7 @@ Support returning nulls from slices - a48c55b2 Support returning nulls from slices -
2b270e4d Merge pull request #618 from codyleyhan/cl/method +
2b270e4d Merge pull request #618 from codyleyhan/cl/method Adds way to determine if a resolver is a function call or value @@ -4724,19 +5882,19 @@ Adds way to determine if a resolver is a function call or value - f52726de Update README.md -
ac2422e3 Merge pull request #614 from wesovilabs/master +
ac2422e3 Merge pull request #614 from wesovilabs/master Adding entry for workshop
-
db4f7255 Merge pull request #613 from icco/patch-2 +
db4f7255 Merge pull request #613 from icco/patch-2 Upgrade graphql-playground to 1.7.20
-
163bfc76 Merge pull request #612 from 99designs/maps-changesets +
163bfc76 Merge pull request #612 from 99designs/maps-changesets Maps as changesets @@ -4750,7 +5908,7 @@ CSS didn't change but js did.
-
8fb1fafd Merge pull request #611 from 99designs/gqlparser-1.1.2 +
8fb1fafd Merge pull request #611 from 99designs/gqlparser-1.1.2 Bump gqlparser to 1.1.2 @@ -4762,7 +5920,7 @@ Bump gqlparser to 1.1.2 - 0a92ca46 Support map[string]interface{} in return types -
ac56112b Merge pull request #610 from tgwizard/dynamic-complexity +
ac56112b Merge pull request #610 from tgwizard/dynamic-complexity Allow configuring the complexity limit dynamically per request @@ -4772,13 +5930,13 @@ Allow configuring the complexity limit dynamically per request - dd288145 Allow configuring the complexity limit dynamically per request -
485ddf30 Merge pull request #605 from 99designs/fix-default-scalars +
485ddf30 Merge pull request #605 from 99designs/fix-default-scalars Fix default scalars
-
3ca2599a Merge pull request #606 from jonatasbaldin/add-gin-recipe +
3ca2599a Merge pull request #606 from jonatasbaldin/add-gin-recipe Add Gin recipe @@ -4786,7 +5944,7 @@ Add Gin recipe - 386eede9 Add Gin recipe -
22be59d1 Merge pull request #604 from cevou/arg-scalar +
22be59d1 Merge pull request #604 from cevou/arg-scalar Fix directives on args with custom type @@ -4796,7 +5954,7 @@ Fix directives on args with custom type - 30d235bc Fix default scalars -
d7b5dc28 Merge pull request #591 from 99designs/fix-577 +
d7b5dc28 Merge pull request #591 from 99designs/fix-577 Fix mixed case name handling in ToGo, ToGoPrivate @@ -4814,13 +5972,13 @@ Fix mixed case name handling in ToGo, ToGoPrivate ## [v0.8.1](https://github.com/99designs/gqlgen/compare/v0.8.0...v0.8.1) - 2019-03-07 - 229185e4 release v0.8.1 -
d872af63 Merge pull request #582 from demdxx/master +
d872af63 Merge pull request #582 from demdxx/master Load the playground sources from HTTPS by default
-
8e66832f Merge pull request #589 from 99designs/fix-autocasing-modelgen-bugs +
8e66832f Merge pull request #589 from 99designs/fix-autocasing-modelgen-bugs Fix autocasing modelgen bugs @@ -4828,7 +5986,7 @@ Fix autocasing modelgen bugs - de3b7cb8 Fix autocasing modelgen bugs -
8e00703e Merge pull request #588 from 99designs/fix-default-scalar-implementation-regression +
8e00703e Merge pull request #588 from 99designs/fix-default-scalar-implementation-regression Fix default scalar implementation regression @@ -4836,7 +5994,7 @@ Fix default scalar implementation regression - b27139ed Fix default scalar implementation regression -
737a59a3 Merge pull request #579 from 99designs/fix-camelcase +
737a59a3 Merge pull request #579 from 99designs/fix-camelcase Take care about commonInitialisms in ToGo @@ -4848,7 +6006,7 @@ Take care about commonInitialisms in ToGo - eb453674 address comment -- dcd208d9 Merge pull request #584 from 99designs/fix-deprecated-directive +- dcd208d9 Merge pull request #584 from 99designs/fix-deprecated-directive
5ba8c8ea Add builtin flag for build directives @@ -4866,7 +6024,7 @@ For some browsers on non-secure domains resources from CDN doesn't loads, so I m - 6ea48ff6 Take care about commonInitialisms in ToCamel -
1968a7bc Merge pull request #576 from jflam/patch-1 +
1968a7bc Merge pull request #576 from jflam/patch-1 Update README.md @@ -4886,13 +6044,13 @@ Fixed typo in MD link ttps -> https ## [v0.8.0](https://github.com/99designs/gqlgen/compare/v0.7.2...v0.8.0) - 2019-03-04 - f24e79d0 release v0.8.0 -
55df9b8d Merge pull request #574 from 99designs/next +
55df9b8d Merge pull request #574 from 99designs/next v0.8.0
-
aedcc68a Merge pull request #573 from 99designs/plugin-docs +
aedcc68a Merge pull request #573 from 99designs/plugin-docs Very rough first pass at plugin docs @@ -4900,7 +6058,7 @@ Very rough first pass at plugin docs - 8f91cf56 Very rough first pass at plugin docs -
3d9ad75e Merge pull request #572 from 99designs/handle-nonexistant-directories-when-genreating-packagenames +
3d9ad75e Merge pull request #572 from 99designs/handle-nonexistant-directories-when-genreating-packagenames Handle non-existant directories when generating default package names @@ -4908,13 +6066,13 @@ Handle non-existant directories when generating default package names - 08923334 Handle non-existant directories when generating default package names -
2ef4b443 Merge pull request #571 from 99designs/automatically-bind-to-int32-int64 +
2ef4b443 Merge pull request #571 from 99designs/automatically-bind-to-int32-int64 Automatically bind to int32 and int64
-
2888e96c Merge pull request #570 from 99designs/vendor-packages-workaround +
2888e96c Merge pull request #570 from 99designs/vendor-packages-workaround Workaround for using packages with vendored code @@ -4922,7 +6080,7 @@ Workaround for using packages with vendored code - fb87dc39 Automatically bind to int32 and int64 -
f2d9c3f7 Merge pull request #569 from 99designs/improve-introduction +
f2d9c3f7 Merge pull request #569 from 99designs/improve-introduction Introduction Improvements @@ -4938,13 +6096,13 @@ Introduction Improvements - d9a9a532 playground: secure CDN resources with Subresource Integrity -
cb38b4be Merge pull request #568 from MichaelMure/secured-playground +
cb38b4be Merge pull request #568 from MichaelMure/secured-playground playground: secure CDN resources with Subresource Integrity
-
0258e1a2 Merge pull request #565 from steebchen/next +
0258e1a2 Merge pull request #565 from steebchen/next Fix cli config getters @@ -4956,7 +6114,7 @@ Fix cli config getters - da12fd11 Fix cli config getters -
51266b8f Merge pull request #554 from 99designs/fix-missing-recover +
51266b8f Merge pull request #554 from 99designs/fix-missing-recover Recover from panics in unlikly places @@ -4964,7 +6122,7 @@ Recover from panics in unlikly places - 67795c95 Recover from panics in unlikly places -
56163b45 Merge pull request #553 from 99designs/getting-started-0.8 +
56163b45 Merge pull request #553 from 99designs/getting-started-0.8 Update Getting Started for 0.8 and Go Modules @@ -4982,13 +6140,13 @@ Update Getting Started for 0.8 and Go Modules - d261b3fb Fix navigation font weights -
327a1a34 Merge pull request #551 from 99designs/improved-collect-fields-api +
327a1a34 Merge pull request #551 from 99designs/improved-collect-fields-api Improved Collect Fields API and Documentation
-
6439f197 Merge pull request #552 from 99designs/always-return-struct-pointers +
6439f197 Merge pull request #552 from 99designs/always-return-struct-pointers Always return *Thing from resolvers for structs @@ -4998,7 +6156,7 @@ Always return *Thing from resolvers for structs - e61b3e0b Add Field Collection docs -
ef0223cf Merge pull request #541 from 99designs/fix-underscore-only-fields +
ef0223cf Merge pull request #541 from 99designs/fix-underscore-only-fields Allow underscore only fields and naming collisions to be aliased explicitly @@ -5012,13 +6170,13 @@ Allow underscore only fields and naming collisions to be aliased explicitly - 0eb8b5c1 Merge remote-tracking branch 'origin/master' into HEAD -
015d02eb Merge pull request #542 from Elgarni/add-more-validation-checks-on-yml-config-file +
015d02eb Merge pull request #542 from Elgarni/add-more-validation-checks-on-yml-config-file Add more validation checks on .yml config file
-
647c62a5 Merge pull request #550 from 99designs/fix-unstable-marshaler-func +
647c62a5 Merge pull request #550 from 99designs/fix-unstable-marshaler-func Fix unstable external marshaler funcs with same name as type @@ -5028,7 +6186,7 @@ Fix unstable external marshaler funcs with same name as type - 9ebe7717 Fix unstable external marshaler funcs with same name as type -
a1195843 Merge pull request #544 from enjoylife/fix-directive +
a1195843 Merge pull request #544 from enjoylife/fix-directive Fix directives on fields with custom scalars @@ -5058,7 +6216,7 @@ Fix typo in README in selection example directory to point to the selection exam
-
66120d8f Merge pull request #535 from awiede/master +
66120d8f Merge pull request #535 from awiede/master Fix typo in README @@ -5066,13 +6224,13 @@ Fix typo in README - fcacf200 Merge remote-tracking branch 'origin/master' into HEAD -
b9819b21 Merge pull request #540 from 99designs/check-is-zero +
b9819b21 Merge pull request #540 from 99designs/check-is-zero Automatically convert IsZero to null
-
03a655dc Merge pull request #526 from 99designs/union-fragment-bug +
03a655dc Merge pull request #526 from 99designs/union-fragment-bug Union Fragment Bug Fix @@ -5091,21 +6249,21 @@ conditional when reading through the first time. - 306da15f Automatically convert IsZero to null -- f81c61d3 Merge pull request #539 from 99designs/test-nullable-interface-pointers (closes #484) +- f81c61d3 Merge pull request #539 from 99designs/test-nullable-interface-pointers (closes #484) -
f5200c80 Merge pull request #498 from vilterp/playground-content-type +
f5200c80 Merge pull request #498 from vilterp/playground-content-type add `content-type: text/html` header to playground handler
-- de148d13 Test for #484 +- de148d13 Test for #484 -- 9a48a007 Merge pull request #538 from 99designs/test-input-marshalling (closes #487) +- 9a48a007 Merge pull request #538 from 99designs/test-input-marshalling (closes #487) -- 7a82ab43 Test for #487 +- 7a82ab43 Test for #487 -
48a7e07f Merge pull request #537 from 99designs/stub-generation +
48a7e07f Merge pull request #537 from 99designs/stub-generation Stub generation @@ -5115,7 +6273,7 @@ Stub generation - c5e3dd44 add stub generation plugin -
43db679a Merge pull request #534 from 99designs/multiple-bind-types +
43db679a Merge pull request #534 from 99designs/multiple-bind-types Multiple bind types @@ -5145,7 +6303,7 @@ Fix typo in README in selection example directory to point to the selection exam - cf94d3ba Removed named types -
82ded321 Merge pull request #532 from 99designs/fix-missing-json-content-type +
82ded321 Merge pull request #532 from 99designs/fix-missing-json-content-type Fix set header to JSON earlier in GraphQL response @@ -5175,7 +6333,7 @@ Fixes https://github.com/99designs/gqlgen/issues/519 - 60473555 Shared arg unmarshaling logic -
a7c8abe6 Merge pull request #529 from 99designs/websocket-keepalive +
a7c8abe6 Merge pull request #529 from 99designs/websocket-keepalive Add websocket keepalive support @@ -5195,15 +6353,15 @@ duration of inactivity. - 693753fc Add websocket keepalive support -- 162afad7 enums dont exist in runtime +- 162afad7 enums don't exist in runtime -
d0b6485b Merge pull request #525 from 99designs/stop-grc-panic +
d0b6485b Merge pull request #525 from 99designs/stop-grc-panic Stop GetResolverContext from panicking when missing
-
78cfff48 Merge pull request #528 from 99designs/fix-todo-directive +
78cfff48 Merge pull request #528 from 99designs/fix-todo-directive Fix Todo Example Directive @@ -5228,7 +6386,7 @@ pointers to structs. Can just be removed. - 1bc51010 Everything is a plugin -
055fb4bc Merge pull request #514 from 99designs/gomod +
055fb4bc Merge pull request #514 from 99designs/gomod Add support for go modules @@ -5240,7 +6398,7 @@ Add support for go modules - 251e8514 Add support for go modules -
62175eab Merge pull request #502 from 99designs/model-plugin +
62175eab Merge pull request #502 from 99designs/model-plugin Model plugin @@ -5258,7 +6416,7 @@ middleware.
-
f94b4b78 Merge pull request #497 from azavorotnii/small_fixes +
f94b4b78 Merge pull request #497 from azavorotnii/small_fixes Small fixes @@ -5272,7 +6430,7 @@ Small fixes - 940db1f9 Fix cacheSize usage in handler -
fba9a378 Merge pull request #492 from 99designs/unified-merge-pass +
fba9a378 Merge pull request #492 from 99designs/unified-merge-pass Unified merge pass @@ -5286,7 +6444,7 @@ Unified merge pass - 87b37b0c Replace string based type comparisons with recursive types.Type check -
82b1917d Merge pull request #490 from 99designs/bind-directly-to-types +
82b1917d Merge pull request #490 from 99designs/bind-directly-to-types Bind directly to AST types, instead of copying out random bits @@ -5310,7 +6468,7 @@ Bind directly to AST types, instead of copying out random bits - eb101161 Remove aliased types, to be replaced by allowing multiple backing types -
e79252b0 Merge pull request #488 from 99designs/refactor-config +
e79252b0 Merge pull request #488 from 99designs/refactor-config Refactor config @@ -5324,7 +6482,7 @@ Refactor config - f10fc649 Merge remote-tracking branch 'origin/next' into HEAD -
dd972081 Merge pull request #486 from nicovogelaar/feature/list-of-enums +
dd972081 Merge pull request #486 from nicovogelaar/feature/list-of-enums add list of enums @@ -5336,7 +6494,7 @@ add list of enums - f87ea6e8 Merge remote-tracking branch 'origin/master' into HEAD -
473f4f0c Merge pull request #465 from 99designs/performance-improvments +
473f4f0c Merge pull request #465 from 99designs/performance-improvments Performance improvments @@ -5423,7 +6581,7 @@ ok github.com/99designs/gqlgen/example/starwars 9.901s ## [v0.7.2](https://github.com/99designs/gqlgen/compare/v0.7.1...v0.7.2) - 2019-02-05 - da1e07f5 release v0.7.2 -
8c0562c1 Merge pull request #530 from 99designs/websocket-keepalive-master +
8c0562c1 Merge pull request #530 from 99designs/websocket-keepalive-master Add websocket keepalive support @@ -5441,7 +6599,7 @@ duration of inactivity. - d36d3dc5 Add websocket keepalive support -
39216361 Merge pull request #476 from svanburen/patch-1 +
39216361 Merge pull request #476 from svanburen/patch-1 Update config.md @@ -5459,7 +6617,7 @@ Add a missed word and add an apostrophe - 675ba773 Update errors.md -
5c870a48 Merge pull request #461 from ryota548/patch-1 +
5c870a48 Merge pull request #461 from ryota548/patch-1 Update getting-started.md @@ -5477,7 +6635,7 @@ modify `graph/graph.go` to `resolver.go` ## [v0.7.1](https://github.com/99designs/gqlgen/compare/v0.7.0...v0.7.1) - 2018-11-29 -
3a7f37c7 Merge pull request #455 from 99designs/fix-deprecated-fields +
3a7f37c7 Merge pull request #455 from 99designs/fix-deprecated-fields Fix deprecated fields @@ -5495,13 +6653,13 @@ Fix deprecated fields ## [v0.7.0](https://github.com/99designs/gqlgen/compare/v0.6.0...v0.7.0) - 2018-11-28 - a81fe503 release v0.7.0 -
4bfc82d7 Merge pull request #453 from 99designs/deprecate-binary +
4bfc82d7 Merge pull request #453 from 99designs/deprecate-binary Add Deprecation Warning to Binary
-
8dd29b85 Merge pull request #454 from 99designs/update-gqlparser +
8dd29b85 Merge pull request #454 from 99designs/update-gqlparser Update gqlparser to latest @@ -5509,7 +6667,7 @@ Update gqlparser to latest - 747c3f9c Update gqlparser to latest -
d6d9885f Merge pull request #416 from 99designs/improved-getting-started +
d6d9885f Merge pull request #416 from 99designs/improved-getting-started Improve Getting Started Documentation — No Binary Approach @@ -5519,7 +6677,7 @@ Improve Getting Started Documentation — No Binary Approach - 878f3945 Minor fixes to getting started code examples -
6a02657c Merge pull request #447 from 99designs/disable-introspection +
6a02657c Merge pull request #447 from 99designs/disable-introspection Add config option to disable introspection @@ -5549,13 +6707,13 @@ Regenerate
-
e4bad0e6 Merge pull request #449 from 99designs/increase-float-precision +
e4bad0e6 Merge pull request #449 from 99designs/increase-float-precision Increase float precision
-
c5589792 Merge pull request #450 from 99designs/import-refactor +
c5589792 Merge pull request #450 from 99designs/import-refactor Refactor import handling @@ -5563,7 +6721,7 @@ Refactor import handling - 62f0d085 Edit copy for introspection docs -
63fc2753 Merge pull request #452 from cemremengu/patch-1 +
63fc2753 Merge pull request #452 from cemremengu/patch-1 Fix typo in directives.md @@ -5587,7 +6745,7 @@ Fix small typo - c114346d Decouple loader creation from schema -
9d636e78 Merge pull request #448 from 99designs/update-gqlparser +
9d636e78 Merge pull request #448 from 99designs/update-gqlparser Update to latest gqlparser @@ -5597,13 +6755,13 @@ Update to latest gqlparser - b0acd078 Add config option to disable introspection -
f9c880b6 Merge pull request #446 from 99designs/fix-flakey-test +
f9c880b6 Merge pull request #446 from 99designs/fix-flakey-test Fix flakey goroutine test
-
5461e967 Merge pull request #445 from 99designs/remove-graphqlgen +
5461e967 Merge pull request #445 from 99designs/remove-graphqlgen Remove graphqlgen link @@ -5611,7 +6769,7 @@ Remove graphqlgen link - 8a5039d8 Fix flakey goroutine test -
4b082518 Merge pull request #439 from snormore/pointer-slice +
4b082518 Merge pull request #439 from snormore/pointer-slice Fix type binding validation for slices of pointers like []*foo @@ -5619,7 +6777,7 @@ Fix type binding validation for slices of pointers like []*foo - 293b9eaf Remove graphqlgen link -
77b27884 Merge pull request #443 from mgutz/patch-1 +
77b27884 Merge pull request #443 from mgutz/patch-1 fix generate stubs sentence @@ -5629,7 +6787,7 @@ fix generate stubs sentence - 827dac5e Fix type binding validation for slices of pointers like []*foo -
f7932b40 Merge pull request #435 from matiasanaya/update-readme +
f7932b40 Merge pull request #435 from matiasanaya/update-readme Update README.md comparison with graph-gophers @@ -5637,13 +6795,13 @@ Update README.md comparison with graph-gophers - a816208b Update README.md comparison with graph-gophers -
d25e3b4b Merge pull request #422 from gracenoah/model-method-context +
d25e3b4b Merge pull request #422 from gracenoah/model-method-context accept an optional ctx parameter on model methods
-
0ac6fa57 Merge pull request #434 from urakozz/patch-1 +
0ac6fa57 Merge pull request #434 from urakozz/patch-1 Tracer: fixed nil pointer issue @@ -5671,7 +6829,7 @@ Right now code generated with latest master fails since there are usages of Trac - 49755120 accept an optional ctx parameter on model methods -
02a19352 Merge pull request #429 from 99designs/refactor-gofmt +
02a19352 Merge pull request #429 from 99designs/refactor-gofmt apply go fmt ./... @@ -5681,7 +6839,7 @@ apply go fmt ./... - c656dc31 apply go fmt ./... -
3f598bdc Merge pull request #427 from anurag/patch-1 +
3f598bdc Merge pull request #427 from anurag/patch-1 Fix docs typo @@ -5689,7 +6847,7 @@ Fix docs typo - cac61bb2 Fix docs typo -
9f4afe3a Merge pull request #425 from 99designs/render +
9f4afe3a Merge pull request #425 from 99designs/render Switch to hosting docs on render.com @@ -5703,7 +6861,7 @@ switched the DNS records and updated the docs.
-
981fd10a Merge pull request #419 from 99designs/fix-capture-ctx +
981fd10a Merge pull request #419 from 99designs/fix-capture-ctx fix unexpected ctx variable capture on Tracing @@ -5719,7 +6877,7 @@ fix unexpected ctx variable capture on Tracing - 5c28d011 fix unexpected ctx variable capture on Tracing -
4bda3bc1 Merge pull request #411 from 99designs/feat-geterrors +
4bda3bc1 Merge pull request #411 from 99designs/feat-geterrors add GetErrors to RequestContext @@ -5727,7 +6885,7 @@ add GetErrors to RequestContext - a4eaa400 add tests for RequestContext#GetErrors -
53f33f77 Merge pull request #410 from 99designs/move-tracing-to-contrib +
53f33f77 Merge pull request #410 from 99designs/move-tracing-to-contrib Move tracing to contrib @@ -5737,13 +6895,13 @@ Move tracing to contrib - f0dbce5a Move tracing to contrib -
a3a92775 Merge pull request #409 from 99designs/graphql-playground-1.7.8 +
a3a92775 Merge pull request #409 from 99designs/graphql-playground-1.7.8 Bump to the latest version of graphql-playground
-
d2648580 Merge pull request #402 from 99designs/feat-opencensus +
d2648580 Merge pull request #402 from 99designs/feat-opencensus add Tracer for OpenCensus @@ -5759,7 +6917,7 @@ add Tracer for OpenCensus - 4e7e6a1c Merge branch 'master' into feat-opencensus -
926ad17a Merge pull request #403 from 99designs/feat-complexity +
926ad17a Merge pull request #403 from 99designs/feat-complexity copy complexity to RequestContext @@ -5771,7 +6929,7 @@ copy complexity to RequestContext - c9368904 Merge branch 'master' into feat-opencensus -
b26ee6b4 Merge pull request #404 from 99designs/feat-apollo-tracing +
b26ee6b4 Merge pull request #404 from 99designs/feat-apollo-tracing add apollo-tracing support @@ -5797,7 +6955,7 @@ add apollo-tracing support - ececa23c add Tracer for OpenCensus -
0d5c65b6 Merge pull request #400 from 99designs/fix-ci +
0d5c65b6 Merge pull request #400 from 99designs/fix-ci fix Circle CI test @@ -5809,19 +6967,19 @@ fix Circle CI test - f70cedc2 fix Circle CI test -
1b17b5a2 Merge pull request #392 from 99designs/feat-tracer +
1b17b5a2 Merge pull request #392 from 99designs/feat-tracer Add Tracer layer
-
184e48cb Merge pull request #396 from 99designs/remove-ci-exclusion +
184e48cb Merge pull request #396 from 99designs/remove-ci-exclusion Run generate ./... and test ./... in circle
-
fd5d9eca Merge pull request #395 from 99designs/feat-extension-example +
fd5d9eca Merge pull request #395 from 99designs/feat-extension-example add Type System Extension syntax example @@ -5865,7 +7023,7 @@ This reverts commit 583f98047f5d1b6604d87e7b8d6f8fd38082d459. - ab4752c2 Update README.md -
3447dd2d Merge pull request #389 from 99designs/multiple-schemas +
3447dd2d Merge pull request #389 from 99designs/multiple-schemas Support multiple schemas @@ -5873,7 +7031,7 @@ Support multiple schemas - a230eb04 Support multiple schemas -
20a5b6c7 Merge pull request #369 from vetcher/master +
20a5b6c7 Merge pull request #369 from vetcher/master reverse errors and data order in response @@ -5881,7 +7039,7 @@ reverse errors and data order in response - f1f043b9 reverse 'data' and 'error' fields order in failure tests -
3eab22a3 Merge pull request #370 from rodrigo-brito/fix-underscore +
3eab22a3 Merge pull request #370 from rodrigo-brito/fix-underscore Underscore on field name finder @@ -5899,7 +7057,7 @@ Underscore on field name finder ## [v0.6.0](https://github.com/99designs/gqlgen/compare/v0.5.1...v0.6.0) - 2018-10-03 - 6f486bde release v0.6.0 -
7833d0cb Merge pull request #365 from 99designs/dont-guess-imports +
7833d0cb Merge pull request #365 from 99designs/dont-guess-imports Don't let goimports guess import paths @@ -5907,7 +7065,7 @@ Don't let goimports guess import paths - 732be395 Don't let goimports guess import paths -
926eb9d8 Merge pull request #364 from 99designs/query-cache-test +
926eb9d8 Merge pull request #364 from 99designs/query-cache-test Add a stress test on query cache @@ -5915,7 +7073,7 @@ Add a stress test on query cache - bab70df5 Add a stress test on query cache -
84481761 Merge pull request #362 from 99designs/fix-error-docs +
84481761 Merge pull request #362 from 99designs/fix-error-docs fix error docs @@ -5923,7 +7081,7 @@ fix error docs - 23b58f6d fix error docs -
8f0ef777 Merge pull request #361 from 99designs/revert-360-revert-335-typed-interfaces +
8f0ef777 Merge pull request #361 from 99designs/revert-360-revert-335-typed-interfaces Revert "Revert "Generate typed interfaces for gql interfaces & unions"" @@ -5931,13 +7089,13 @@ Revert "Revert "Generate typed interfaces for gql interfaces & unions"" - 77257d1e Revert "Revert "Generate typed interfaces for gql interfaces & unions"" -
1cae19bb Merge pull request #359 from 99designs/fix-null-arg-error +
1cae19bb Merge pull request #359 from 99designs/fix-null-arg-error Fix Issue With Argument Pointer Type
-
ee862717 Merge pull request #360 from 99designs/revert-335-typed-interfaces +
ee862717 Merge pull request #360 from 99designs/revert-335-typed-interfaces Revert "Generate typed interfaces for gql interfaces & unions" @@ -5945,7 +7103,7 @@ Revert "Generate typed interfaces for gql interfaces & unions" - 02658647 Revert "Generate typed interfaces for gql interfaces & unions" -
bc35d730 Merge pull request #335 from 99designs/typed-interfaces +
bc35d730 Merge pull request #335 from 99designs/typed-interfaces Generate typed interfaces for gql interfaces & unions @@ -5966,7 +7124,7 @@ but has a default, then null is still a valid value to send through. - 0c399270 Add test case -
b836a976 Merge pull request #358 from 99designs/fix-embedded-pointer +
b836a976 Merge pull request #358 from 99designs/fix-embedded-pointer Fix Embedded Pointer @@ -5976,7 +7134,7 @@ Fix Embedded Pointer - b8af0c81 Use types.Implements to check if an interface implementor accepts value recievers -
2ab05daf Merge pull request #353 from 99designs/resolver-ctx-parenting +
2ab05daf Merge pull request #353 from 99designs/resolver-ctx-parenting Parent middleware generated contexts @@ -5988,7 +7146,7 @@ Parent middleware generated contexts - f302b408 Added reproduce test case -
14cf46bc Merge pull request #348 from gissleh/feat-websocket-initpayload +
14cf46bc Merge pull request #348 from gissleh/feat-websocket-initpayload Added parsing of the websocket init message payload @@ -6013,7 +7171,7 @@ Added parsing of the websocket init message payload
-
2bd1cc2e Merge pull request #334 from 99designs/support-response-extensions +
2bd1cc2e Merge pull request #334 from 99designs/support-response-extensions Support Extensions in Response @@ -6035,13 +7193,13 @@ Support Extensions in Response - bfb48f2f Update README.md -
869215a7 Merge pull request #339 from 99designs/fix-subscription-goroutine-leak +
869215a7 Merge pull request #339 from 99designs/fix-subscription-goroutine-leak Fix gouroutine leak when using subscriptions
-
535dd24b Merge pull request #338 from codyleyhan/cl/docs +
535dd24b Merge pull request #338 from codyleyhan/cl/docs Adds docs for how resolvers are bound @@ -6049,7 +7207,7 @@ Adds docs for how resolvers are bound - baa99fc5 cleaned up resolver doc -
647fbbc9 Merge pull request #340 from chris-ramon/patch-1 +
647fbbc9 Merge pull request #340 from chris-ramon/patch-1 README.md: Updates `graphql-go/graphql` features. @@ -6069,7 +7227,7 @@ README.md: Updates `graphql-go/graphql` features. - 35c15c94 Add link to talk by Christopher Biscardi -
72edf98a Merge pull request #331 from edsrzf/arg-refactor +
72edf98a Merge pull request #331 from edsrzf/arg-refactor Refactor arg codegen @@ -6092,7 +7250,7 @@ its purpose is a little different than it used to be.
-
8026e63b Merge pull request #330 from edsrzf/string-compare +
8026e63b Merge pull request #330 from edsrzf/string-compare Use built-in less than operator instead of strings.Compare @@ -6108,7 +7266,7 @@ Use built-in less than operator instead of strings.Compare ## [v0.5.0](https://github.com/99designs/gqlgen/compare/v0.4.4...v0.5.0) - 2018-08-31 - 5bc4665f release v0.5.0 -
b48c6b92 Merge pull request #326 from 99designs/version +
b48c6b92 Merge pull request #326 from 99designs/version Add version const @@ -6116,7 +7274,7 @@ Add version const - 14587a5f Add version const -
7d44dd6b Merge pull request #315 from edsrzf/query-complexity +
7d44dd6b Merge pull request #315 from edsrzf/query-complexity Query complexity calculation and limits @@ -6126,7 +7284,7 @@ Query complexity calculation and limits - 6e408d5d Interfaces take max complexity of implementors -
d08b9c4a Merge pull request #325 from edsrzf/no-get-mutations +
d08b9c4a Merge pull request #325 from edsrzf/no-get-mutations Only allow query operations on GET requests @@ -6142,19 +7300,19 @@ This mitigates the risk of CSRF attacks. - 8da5d61b Generate complexity for all fields. Fix bugs. Re-generate examples. -
40943c6d Merge pull request #322 from 99designs/drop-old-flags +
40943c6d Merge pull request #322 from 99designs/drop-old-flags Drop old cli flags
-
8c17eea9 Merge pull request #320 from andrioid/master +
8c17eea9 Merge pull request #320 from andrioid/master Description added to generated Model code
-
988b367a Merge pull request #316 from 99designs/feat-concurrent-each-element +
988b367a Merge pull request #316 from 99designs/feat-concurrent-each-element use goroutine about processing each array elements @@ -6174,13 +7332,13 @@ use goroutine about processing each array elements - 2488e1b3 Merge branch 'master' of https://github.com/99designs/gqlgen -
f6a733ae Merge pull request #308 from codyleyhan/tags +
f6a733ae Merge pull request #308 from codyleyhan/tags Finds fields by configurable struct tag
-
f7aeb88a Merge pull request #321 from 99designs/remove-typemap +
f7aeb88a Merge pull request #321 from 99designs/remove-typemap Remove support for the old json typemap @@ -6198,7 +7356,7 @@ Also some small behavior fixes to complexity calculations.
-
002ea476 Merge pull request #318 from edsrzf/query-cache +
002ea476 Merge pull request #318 from edsrzf/query-cache Add query cache @@ -6232,7 +7390,7 @@ Also ran `dep ensure` to add the new dependency to `Gopkg.lock`. - 556b93ac Run go generate ./... -
2dcb2dd8 Merge pull request #314 from 99designs/directive-obj +
2dcb2dd8 Merge pull request #314 from 99designs/directive-obj Add obj to Directives @@ -6248,7 +7406,7 @@ Add obj to Directives - 1fda3ede Add obj to Directives -
9b247102 Merge pull request #301 from 99designs/feat-directive-parent +
9b247102 Merge pull request #301 from 99designs/feat-directive-parent add Result field to ResolverContext @@ -6262,7 +7420,7 @@ add Result field to ResolverContext - 568a72e9 add some refactor -
50588a8a Merge pull request #299 from 99designs/test-init-on-windows +
50588a8a Merge pull request #299 from 99designs/test-init-on-windows Test gqlgen init on windows @@ -6272,19 +7430,19 @@ Test gqlgen init on windows - c7fd8416 Merge branch 'master' into feat-directive-parent -
3f8a601b Merge pull request #312 from 99designs/validate-gopath +
3f8a601b Merge pull request #312 from 99designs/validate-gopath Validate gopath when running gqlgen
-
77e69552 Merge pull request #310 from 99designs/sitemap-404s +
77e69552 Merge pull request #310 from 99designs/sitemap-404s Remove 404s from sitemap
-
0b6cedfb Merge pull request #311 from jekaspekas/fix-mapstructure-err +
0b6cedfb Merge pull request #311 from jekaspekas/fix-mapstructure-err fix mapstructure unit test error @@ -6300,7 +7458,7 @@ fix unit test error "mapstructure: result must be a pointer". It appears instead - 25b12cb6 Remove 404s from sitemap -
4a6f505d Merge pull request #309 from 99designs/pr-template +
4a6f505d Merge pull request #309 from 99designs/pr-template Add a PR template @@ -6322,7 +7480,7 @@ Add a PR template - 09e4bf8c add Result field instead of ParentObject field -
b8695fb5 Merge pull request #304 from 99designs/newline-for-init-response +
b8695fb5 Merge pull request #304 from 99designs/newline-for-init-response Put newline at end of `gqlgen init` output @@ -6332,7 +7490,7 @@ Put newline at end of `gqlgen init` output - e53d224e Merge branch 'master' into feat-directive-parent -
de750645 Merge pull request #298 from 99designs/handle-response-nulls +
de750645 Merge pull request #298 from 99designs/handle-response-nulls Nulls in required fields should cause errors and bubble @@ -6342,7 +7500,7 @@ Nulls in required fields should cause errors and bubble - 072363c7 add ParentObject field to ResolverContext -
e15d7890 Merge pull request #300 from 99designs/fix-starwars-connection-example +
e15d7890 Merge pull request #300 from 99designs/fix-starwars-connection-example fix connection example @@ -6352,7 +7510,7 @@ fix connection example - 7d1cdaca Nulls in required fields should cause errors and bubble -
2c4e6cbf Merge pull request #294 from 99designs/simplfy-concurrent-resolvers +
2c4e6cbf Merge pull request #294 from 99designs/simplfy-concurrent-resolvers Simplfy concurrent resolver logic @@ -6368,7 +7526,7 @@ Simplfy concurrent resolver logic ## [v0.4.4](https://github.com/99designs/gqlgen/compare/0.4.3...v0.4.4) - 2018-08-21 - 6f6622c6 Bump gqlparser to latest version -
72659af4 Merge pull request #297 from 99designs/fix-dep-pruning +
72659af4 Merge pull request #297 from 99designs/fix-dep-pruning Explicitly import ambient imports so dep doesn't prune them @@ -6376,7 +7534,7 @@ Explicitly import ambient imports so dep doesn't prune them - cac3c729 Explicitly import ambient imports so dep doesn't prune them -
e6af26e0 Merge pull request #296 from heww/master +
e6af26e0 Merge pull request #296 from heww/master sort directives by name when gen @@ -6384,7 +7542,7 @@ sort directives by name when gen - fd09cd99 sort directives by name when gen -
71917267 Merge pull request #292 from m4ppi/fix-doc +
71917267 Merge pull request #292 from m4ppi/fix-doc Fix broken links in docs @@ -6392,7 +7550,7 @@ Fix broken links in docs - 05c73d9f Fix broken links in docs -
5a0b56aa Merge pull request #285 from 99designs/fix-force-type +
5a0b56aa Merge pull request #285 from 99designs/fix-force-type Stop force resolver from picking up types from matching fields @@ -6400,7 +7558,7 @@ Stop force resolver from picking up types from matching fields - 31478cf4 Stop force resolver from picking up types from matching fields -
ebdcf740 Merge pull request #283 from 99designs/speed-up-tests +
ebdcf740 Merge pull request #283 from 99designs/speed-up-tests Speed up tests @@ -6414,7 +7572,7 @@ Speed up tests ## [0.4.3](https://github.com/99designs/gqlgen/compare/0.4.2...0.4.3) - 2018-08-10 -
3575c289 Merge pull request #281 from 99designs/introspection-default-args +
3575c289 Merge pull request #281 from 99designs/introspection-default-args Fix missing default args on types @@ -6422,7 +7580,7 @@ Fix missing default args on types - b808253f Fix missing default args on types -
bf235296 Merge pull request #282 from 99designs/flakey-tests +
bf235296 Merge pull request #282 from 99designs/flakey-tests Remove sleeps in tests @@ -6438,7 +7596,7 @@ Remove sleeps in tests ## [0.4.2](https://github.com/99designs/gqlgen/compare/0.4.1...0.4.2) - 2018-08-10 - 06b00d45 Update README.md -
5c379a33 Merge pull request #279 from 99designs/integration-tests +
5c379a33 Merge pull request #279 from 99designs/integration-tests Integration tests @@ -6452,7 +7610,7 @@ Integration tests - 45e22cb1 Add introspection schema check -
53109cd0 Merge pull request #270 from 99designs/feat-handlers +
53109cd0 Merge pull request #270 from 99designs/feat-handlers stop pickup "github.com/vektah/gqlgen/handler" from GOPATH @@ -6466,7 +7624,7 @@ stop pickup "github.com/vektah/gqlgen/handler" from GOPATH - f372b1c9 Use docker in docker for the existing testsuite -
0eb08ab9 Merge pull request #274 from 99designs/fix-variable-validation-data +
0eb08ab9 Merge pull request #274 from 99designs/fix-variable-validation-data Prevent executing queries on variable validation failures @@ -6478,7 +7636,7 @@ Prevent executing queries on variable validation failures - e6005f6b fix mobile nav -
5cdbc975 Merge pull request #267 from 99designs/authentication-docs +
5cdbc975 Merge pull request #267 from 99designs/authentication-docs Authentication docs @@ -6492,13 +7650,13 @@ Authentication docs - 8db3c143 Add structure to menu -
c57619e0 Merge pull request #260 from 99designs/init-improvements +
c57619e0 Merge pull request #260 from 99designs/init-improvements Init Config Improvement
-
336b62ec Merge pull request #266 from 99designs/lint-friendly-decollision +
336b62ec Merge pull request #266 from 99designs/lint-friendly-decollision Make keyword decollision more lint friendly @@ -6506,7 +7664,7 @@ Make keyword decollision more lint friendly - 2acbc245 Make keyword decollision more lint friendly -
f12f08a7 Merge pull request #264 from 99designs/docs +
f12f08a7 Merge pull request #264 from 99designs/docs CORS docs @@ -6518,7 +7676,7 @@ CORS docs - 96e6aab2 Add CORS docs -
0ab1c685 Merge pull request #263 from 99designs/add-logo +
0ab1c685 Merge pull request #263 from 99designs/add-logo Add logo to doc site @@ -6538,7 +7696,7 @@ Add logo to doc site ## [0.4.1](https://github.com/99designs/gqlgen/compare/0.4.0...0.4.1) - 2018-08-04 -
42f10ec9 Merge pull request #255 from 99designs/introspection-fixes +
42f10ec9 Merge pull request #255 from 99designs/introspection-fixes Fix introspection api @@ -6546,7 +7704,7 @@ Fix introspection api - 7400221c Fix introspection api -
b35804ba Merge pull request #254 from oskanberg/patch-1 +
b35804ba Merge pull request #254 from oskanberg/patch-1 Fix typo in introduction docs @@ -6564,13 +7722,13 @@ Fix typo in introduction docs ## [0.4.0](https://github.com/99designs/gqlgen/compare/0.3.0...0.4.0) - 2018-08-03 -
7b5a3d74 Merge pull request #247 from 99designs/next +
7b5a3d74 Merge pull request #247 from 99designs/next 0.4.0 Release
-
c0be9c99 Merge pull request #251 from 99designs/rewrite-imports +
c0be9c99 Merge pull request #251 from 99designs/rewrite-imports Rewrite import paths @@ -6578,7 +7736,7 @@ Rewrite import paths - 4361401a Rewrite import paths -
f042328a Merge pull request #252 from 99designs/move-doc-site +
f042328a Merge pull request #252 from 99designs/move-doc-site Move doc site @@ -6586,7 +7744,7 @@ Move doc site - 658a24d9 Move doc site -
07b7e6ca Merge pull request #248 from 99designs/json-usenumber +
07b7e6ca Merge pull request #248 from 99designs/json-usenumber use json.Decoder.UseNumber() when unmarshalling vars @@ -6594,19 +7752,19 @@ use json.Decoder.UseNumber() when unmarshalling vars - 95fe07fe use json.Decoder.UseNumber() when unmarshalling vars -
c555f54c Merge pull request #245 from vektah/new-feature-docs +
c555f54c Merge pull request #245 from vektah/new-feature-docs New feature docs
-
825840aa Merge pull request #244 from vektah/array-coercion +
825840aa Merge pull request #244 from vektah/array-coercion Add implicit value to array coercion
-
90b40769 Merge pull request #246 from vektah/fix-introspection +
90b40769 Merge pull request #246 from vektah/fix-introspection Fix introspection @@ -6626,7 +7784,7 @@ Fix introspection - d2265f3d Add implicit value to array coercion -
191c8ba0 Merge pull request #239 from vektah/directive-args +
191c8ba0 Merge pull request #239 from vektah/directive-args Directive args @@ -6636,7 +7794,7 @@ Directive args - 4f37d170 Add directive args -
f78a6046 Merge pull request #241 from vektah/feat-lintfree +
f78a6046 Merge pull request #241 from vektah/feat-lintfree Make more golint free generated code @@ -6646,7 +7804,7 @@ Make more golint free generated code - c3fa1a55 Merge branch 'next' into feat-lintfree -
17bfa2cb Merge pull request #240 from vektah/doc-fonts +
17bfa2cb Merge pull request #240 from vektah/doc-fonts Use fonts from golang styleguide @@ -6654,7 +7812,7 @@ Use fonts from golang styleguide - 64ef0571 Use fonts from golang styleguide -
6b532383 Merge pull request #237 from vektah/feat-fieldmapping +
6b532383 Merge pull request #237 from vektah/feat-fieldmapping Add model field mapping @@ -6668,13 +7826,13 @@ Add model field mapping - d7e24664 Add method support -
17bcb322 Merge pull request #236 from vektah/generate-handler-on-init +
17bcb322 Merge pull request #236 from vektah/generate-handler-on-init Generate server on running init
-
600f4675 Merge pull request #238 from vektah/variable-validation +
600f4675 Merge pull request #238 from vektah/variable-validation Add missing variable validation @@ -6690,7 +7848,7 @@ Add missing variable validation - 69eab938 Add model field mapping -
ffee020c Merge pull request #235 from vektah/generate-resolver-on-init +
ffee020c Merge pull request #235 from vektah/generate-resolver-on-init Generate resolver on init @@ -6700,7 +7858,7 @@ Generate resolver on init - 58831ac1 Generate resolver if configured -
7031264d Merge pull request #229 from vektah/fix-init-command +
7031264d Merge pull request #229 from vektah/fix-init-command Fixing init command @@ -6726,7 +7884,7 @@ mutating the default config.
-
803711e9 Merge pull request #221 from vektah/middleware-stack +
803711e9 Merge pull request #221 from vektah/middleware-stack Implement FieldMiddleware Stack @@ -6767,7 +7925,7 @@ setup, that will run after Resolver middlewares.
-
7226e573 Merge pull request #225 from rongfengliang/patch-1 +
7226e573 Merge pull request #225 from rongfengliang/patch-1 Update getting-started.md @@ -6783,7 +7941,7 @@ CreateTodo UserID input should be UserId not User
-
0fa7977f Merge pull request #217 from vektah/resolver-middleware-all +
0fa7977f Merge pull request #217 from vektah/resolver-middleware-all Run Resolver Middleware For All Fields @@ -6807,13 +7965,13 @@ Not true anymore! - b512176c Run resolver middleware for all fields -
f67f8390 Merge pull request #218 from vektah/remove-old-resolvers +
f67f8390 Merge pull request #218 from vektah/remove-old-resolvers Remove old resolvers
-
1a3e4e99 Merge pull request #220 from vektah/feat-race +
1a3e4e99 Merge pull request #220 from vektah/feat-race turn back -race option @@ -6844,7 +8002,7 @@ directly.
-- ffe42658 Merge pull request #208 from vektah/directives-skip-include +- ffe42658 Merge pull request #208 from vektah/directives-skip-include
a69071e3 Pass context to CollectFields instead of RequestContext @@ -6874,13 +8032,13 @@ the graphql-js implementation. Skip takes precedence here. - ebfde103 Pass request context through to CollectFields -
bab7abb2 Merge pull request #210 from vektah/feat-init +
bab7abb2 Merge pull request #210 from vektah/feat-init introduce gen & init subcommand
-
6ba508f9 Merge pull request #214 from vektah/gqlparser-schema-validation +
6ba508f9 Merge pull request #214 from vektah/gqlparser-schema-validation Bump gqlparser to get schema validation @@ -6902,13 +8060,13 @@ Bump gqlparser to get schema validation - c3c20f8f Merge remote-tracking branch 'origin/master' into HEAD -
90df37f6 Merge pull request #205 from vektah/forward-credential-to-graphql-endpoint +
90df37f6 Merge pull request #205 from vektah/forward-credential-to-graphql-endpoint Use original credential for query request in playground
-
52343745 Merge pull request #206 from vektah/validation-locations +
52343745 Merge pull request #206 from vektah/validation-locations Update gqlparser for validation locations @@ -6916,13 +8074,13 @@ Update gqlparser for validation locations - f4d31aa4 Update gqlparser for validation locations -
9d473f8b Merge pull request #203 from vektah/99designs-announcement +
9d473f8b Merge pull request #203 from vektah/99designs-announcement Announcement: 99designs is now sponsoring gqlgen
-
c2f1570d Merge pull request #204 from vektah/gqlparser-prelude +
c2f1570d Merge pull request #204 from vektah/gqlparser-prelude Use shared prelude @@ -6940,7 +8098,7 @@ credential logins.
-
f855a89c Merge pull request #201 from cocorambo/remove-trailing-println +
f855a89c Merge pull request #201 from cocorambo/remove-trailing-println Remove trailing Println @@ -6948,7 +8106,7 @@ Remove trailing Println - c41a6c36 Remove trailing Println -
2692d3e0 Merge pull request #197 from vektah/new-parser +
2692d3e0 Merge pull request #197 from vektah/new-parser Integrate gqlparser @@ -6958,7 +8116,7 @@ Integrate gqlparser - 55179a61 Update badges -
01a4c677 Merge pull request #195 from jonstaryuk/master +
01a4c677 Merge pull request #195 from jonstaryuk/master Update playground version @@ -6972,7 +8130,7 @@ Update playground version ## [0.3.0](https://github.com/99designs/gqlgen/compare/0.2.5...0.3.0) - 2018-07-14 -
381b3469 Merge pull request #194 from vektah/multiline-comments +
381b3469 Merge pull request #194 from vektah/multiline-comments Fix multiline comments @@ -6982,7 +8140,7 @@ Fix multiline comments - 4b3778e3 Fix multiline comments -
eb44925c Merge pull request #193 from vektah/validate-method-returns +
eb44925c Merge pull request #193 from vektah/validate-method-returns validate method return types @@ -6990,7 +8148,7 @@ validate method return types - 164acaed validate method return types -
f478f816 Merge pull request #192 from vektah/strict-config +
f478f816 Merge pull request #192 from vektah/strict-config Strict config @@ -6998,7 +8156,7 @@ Strict config - a1c02e7b Strict config -
533dcba7 Merge pull request #191 from vektah/nullable-list-elements +
533dcba7 Merge pull request #191 from vektah/nullable-list-elements Support nullable list elements @@ -7006,7 +8164,7 @@ Support nullable list elements - e0bf6afd Support nullable list elements -
0780bf2e Merge pull request #190 from vektah/generated-forced-resolvers +
0780bf2e Merge pull request #190 from vektah/generated-forced-resolvers Allow forcing resolvers on generated types @@ -7014,7 +8172,7 @@ Allow forcing resolvers on generated types - bf1823cd Allow forcing resolvers on generated types -
febd0358 Merge pull request #186 from vektah/error-redux +
febd0358 Merge pull request #186 from vektah/error-redux Error redux @@ -7032,7 +8190,7 @@ Error redux ## [0.2.5](https://github.com/99designs/gqlgen/compare/0.2.4...0.2.5) - 2018-07-13 -
0a9709db Merge pull request #188 from vektah/fix-windows-gopath +
0a9709db Merge pull request #188 from vektah/fix-windows-gopath Fix windows gopath issue @@ -7052,7 +8210,7 @@ Fix windows gopath issue ## [0.2.4](https://github.com/99designs/gqlgen/compare/0.2.3...0.2.4) - 2018-07-10 -
ac9e5a66 Merge pull request #180 from vektah/import-alias-before-finalize +
ac9e5a66 Merge pull request #180 from vektah/import-alias-before-finalize Fix a bug custom scalar marshallers in external packages @@ -7060,7 +8218,7 @@ Fix a bug custom scalar marshallers in external packages - 160ebab5 Fix a bug custom scalar marshallers in external packages -
43212c04 Merge pull request #179 from vektah/models-config-error +
43212c04 Merge pull request #179 from vektah/models-config-error Improve Output Filename and Package Handling @@ -7086,7 +8244,7 @@ Improve Output Filename and Package Handling ## [0.2.3](https://github.com/99designs/gqlgen/compare/0.2.2...0.2.3) - 2018-07-08 - 6391596d Add some basic docs on the new config file -
a9c3af86 Merge pull request #176 from vektah/config-search-paths +
a9c3af86 Merge pull request #176 from vektah/config-search-paths Search for config @@ -7094,7 +8252,7 @@ Search for config - 25cfbf08 Search for config -
bff3356b Merge pull request #175 from vektah/lint-all-packages +
bff3356b Merge pull request #175 from vektah/lint-all-packages gometalinter should cover all packages @@ -7102,13 +8260,13 @@ gometalinter should cover all packages - 61f37173 gometalinter should cover all packages -
ce657044 Merge pull request #173 from vvakame/feat-resolver-hint +
ce657044 Merge pull request #173 from vvakame/feat-resolver-hint add resolver option support to field
-
57b8279e Merge pull request #172 from vvakame/feat-newconfig +
57b8279e Merge pull request #172 from vvakame/feat-newconfig switch to .gqlgen.yml @@ -7120,7 +8278,7 @@ switch to .gqlgen.yml - 42948153 move to .gqlgen.yml -
325c45a4 Merge pull request #171 from vvakame/add-gitignore +
325c45a4 Merge pull request #171 from vvakame/add-gitignore add .idea/ to .gitignore @@ -7136,13 +8294,13 @@ add .idea/ to .gitignore ## [0.2.2](https://github.com/99designs/gqlgen/compare/0.2.1...0.2.2) - 2018-07-05 - f79b6a52 cleanup new config -
f0a08617 Merge pull request #163 from vvakame/feat-types-json +
f0a08617 Merge pull request #163 from vvakame/feat-types-json support .gqlgen.yml
-
faf095fc Merge pull request #166 from vektah/validate-at-end +
faf095fc Merge pull request #166 from vektah/validate-at-end Validate at end @@ -7162,9 +8320,9 @@ Validate at end - ecf56003 Refactor types.json parsing -
b16e8429 Merge pull request #159 from vektah/enum-only-generation +
b16e8429 Merge pull request #159 from vektah/enum-only-generation -Dont skip model generation if there are enums defined +Don't skip model generation if there are enums defined
@@ -7172,7 +8330,7 @@ Dont skip model generation if there are enums defined - 588aeacb more tutorial fixes -
dc472965 Merge pull request #157 from johncurley/fix-docs-argument +
dc472965 Merge pull request #157 from johncurley/fix-docs-argument Updated mutation to take correct argument @@ -7180,7 +8338,7 @@ Updated mutation to take correct argument - 88a84f83 Updated mutation to take correct argument -
404f0b0d Merge pull request #151 from qdentity/fix-longer-gopath +
404f0b0d Merge pull request #151 from qdentity/fix-longer-gopath Fix bug with multiple GOPATH full package name resolving @@ -7198,19 +8356,19 @@ This commit fixes the bug where GOPATH values that are longer than the input pac ## [0.2.1](https://github.com/99designs/gqlgen/compare/0.2.0...0.2.1) - 2018-06-26 -
cb87a2cb Merge pull request #147 from vektah/import-overhaul +
cb87a2cb Merge pull request #147 from vektah/import-overhaul Improve import handling
-
9fa3f0fb Merge pull request #134 from mastercactapus/small-interfaces +
9fa3f0fb Merge pull request #134 from mastercactapus/small-interfaces add lint-friendly small interfaces option for resolvers
-
e8c30acd fix template error on generated defaults (#146) +
e8c30acd fix template error on generated defaults (#146) * fix template error on generated defaults @@ -7246,7 +8404,7 @@ add lint-friendly small interfaces option for resolvers - f48cbf03 tutorial fixes -
0a85d4f2 Update generated headers to match convention. (#139) +
0a85d4f2 Update generated headers to match convention. (#139) * Update generated.gotpl @@ -7280,19 +8438,19 @@ add lint-friendly small interfaces option for resolvers ## [0.2.0](https://github.com/99designs/gqlgen/releases/tag/0.2.0) - 2018-06-21 -
d26ef2a2 Merge pull request #136 from tianhai82/master +
d26ef2a2 Merge pull request #136 from tianhai82/master fix GOPATH case mismatch issue
-
a34b4de4 Merge pull request #137 from appleboy/patch-1 +
a34b4de4 Merge pull request #137 from appleboy/patch-1 fix example links
-
c1cde36c Merge pull request #133 from mastercactapus/skip-type-mismatch +
c1cde36c Merge pull request #133 from mastercactapus/skip-type-mismatch skip struct fields with incompatible types @@ -7304,7 +8462,7 @@ skip struct fields with incompatible types - 8771065f skip fields with incompatible types -
40d9a11b Merge pull request #127 from jon-walton/windows-path-slash +
40d9a11b Merge pull request #127 from jon-walton/windows-path-slash convert windows input path separators to slash @@ -7312,7 +8470,7 @@ convert windows input path separators to slash - 7db9d122 convert windows input path separators to slash -
a5f72601 Merge pull request #122 from vektah/json-encoding-fixes +
a5f72601 Merge pull request #122 from vektah/json-encoding-fixes Fix json string encoding @@ -7322,13 +8480,13 @@ Fix json string encoding - 578d8415 Fix json string encoding -
e9b40666 Merge pull request #123 from vektah/drop-fk-generation +
e9b40666 Merge pull request #123 from vektah/drop-fk-generation BC Break: Stop generating foreign keys in models
-
a8419e20 Merge pull request #124 from vektah/fix-backtick-escaping +
a8419e20 Merge pull request #124 from vektah/fix-backtick-escaping Fix backtick escaping @@ -7338,7 +8496,7 @@ Fix backtick escaping - a5c02e6c BC Break: Stop generating foreign keys in models -
94d5c89e Merge pull request #120 from andrewmunro/bugfix/fix-panic-on-invalid-array-type +
94d5c89e Merge pull request #120 from andrewmunro/bugfix/fix-panic-on-invalid-array-type Fixing panic when non array value is passed to array type @@ -7352,7 +8510,7 @@ Fixing panic when non array value is passed to array type - 6c823beb add doc publish script -
a25232d8 Merge pull request #113 from mikeifomin/patch-1 +
a25232d8 Merge pull request #113 from mikeifomin/patch-1 Fix typo in url dataloaden @@ -7360,11 +8518,11 @@ Fix typo in url dataloaden - 3a129c77 Fix typo in url dataloaden -- e1fd79fe Merge pull request #111 from imiskolee/master (closes #110) +- e1fd79fe Merge pull request #111 from imiskolee/master (closes #110) -- e38cb497 1. fix bug: #110 +- e38cb497 1. fix bug: #110 -
3990eacf Merge pull request #108 from imiskolee/master +
3990eacf Merge pull request #108 from imiskolee/master generate json tag to model field by gql name. @@ -7374,7 +8532,7 @@ generate json tag to model field by gql name. - e1f90946 1. add json tag in models_gen.go 2. use gqlname to model filed json tag. -
35e09717 Merge pull request #107 from vektah/fix-vendor-normalization +
35e09717 Merge pull request #107 from vektah/fix-vendor-normalization Fix vendor normalization @@ -7388,13 +8546,13 @@ directory.
-
2a437c23 Merge pull request #105 from vektah/keyword-input-args +
2a437c23 Merge pull request #105 from vektah/keyword-input-args Automatically add a _ suffix to reserved words
-
26ac13ff Merge pull request #104 from vektah/new-request-context +
26ac13ff Merge pull request #104 from vektah/new-request-context Add a NewRequestContext method @@ -7861,7 +9019,7 @@ User defined custom types - 5c04d1ad __typename support -
51292db9 Merge pull request [#4](https://github.com/99designs/gqlgen/issues/4) from vektah/cleanup-type-binding +
51292db9 Merge pull request #4 from vektah/cleanup-type-binding Cleanup schema binding code @@ -7869,7 +9027,7 @@ Cleanup schema binding code - c89a8774 Cleanup schema binding code -
030954a5 Merge pull request [#2](https://github.com/99designs/gqlgen/issues/2) from ulrikstrid/patch-1 +
030954a5 Merge pull request #2 from ulrikstrid/patch-1 Fix typo in README @@ -8272,7 +9430,7 @@ aren't included in any production builds. - e06f5855 support for "deprecated" directive on enum values -- 498fe396 support for @deprecated](https://github.com/deprecated) directive on fields (fixes [#64) +- 498fe396 support for [@deprecated](https://github.com/deprecated) directive on fields (fixes #64) - 93ddece9 refactor: DirectiveArgs @@ -8402,11 +9560,11 @@ fix wrong import statement - 8f7d2b1e added relay.Handler -- fce75a50 properly coerce Int input values ([#8](https://github.com/99designs/gqlgen/issues/8)) +- fce75a50 properly coerce Int input values (#8) -- 0dd38747 star wars example: pass operation name and variables ([#8](https://github.com/99designs/gqlgen/issues/8)) +- 0dd38747 star wars example: pass operation name and variables (#8) -- 3b7efd5c fix __typename for concrete object types (fixes [#9](https://github.com/99designs/gqlgen/issues/9)) +- 3b7efd5c fix __typename for concrete object types (fixes #9) - 35667eda testing tools @@ -8424,7 +9582,7 @@ fix wrong import statement - e3386b06 improved type coercion and explicit ID type -- 2ab9d765 support for custom scalars (fixes [#3](https://github.com/99designs/gqlgen/issues/3)) +- 2ab9d765 support for custom scalars (fixes #3) - bdfd5ce3 use custom error type less diff --git a/vendor/github.com/99designs/gqlgen/README.md b/vendor/github.com/99designs/gqlgen/README.md index 0621c55bf..e8f89fa5b 100644 --- a/vendor/github.com/99designs/gqlgen/README.md +++ b/vendor/github.com/99designs/gqlgen/README.md @@ -22,7 +22,8 @@ Still not convinced enough to use **gqlgen**? Compare **gqlgen** with other Go g 2. Add `github.com/99designs/gqlgen` to your [project's tools.go](https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module) - printf '// +build tools\npackage tools\nimport _ "github.com/99designs/gqlgen"' | gofmt > tools.go + printf '// +build tools\npackage tools\nimport (_ "github.com/99designs/gqlgen"\n _ "github.com/99designs/gqlgen/graphql/introspection")' | gofmt > tools.go + go mod tidy 3. Initialise gqlgen config and generate models @@ -142,9 +143,20 @@ first model in this list is used as the default type and it will always be used There isn't any way around this, gqlgen has no way to know what you want in a given context. +### Why do my interfaces have getters? Can I disable these? +These were added in v0.17.14 to allow accessing common interface fields without casting to a concrete type. +However, certain fields, like Relay-style Connections, cannot be implemented with simple getters. + +If you'd prefer to not have getters generated in your interfaces, you can add the following in your `gqlgen.yml`: +```yaml +# gqlgen.yml +omit_getters: true +``` + ## Other Resources - [Christopher Biscardi @ Gophercon UK 2018](https://youtu.be/FdURVezcdcw) - [Introducing gqlgen: a GraphQL Server Generator for Go](https://99designs.com.au/blog/engineering/gqlgen-a-graphql-server-generator-for-go/) - [Dive into GraphQL by Iván Corrales Solera](https://medium.com/@ivan.corrales.solera/dive-into-graphql-9bfedf22e1a) - [Sample Project built on gqlgen with Postgres by Oleg Shalygin](https://github.com/oshalygin/gqlgen-pg-todo-example) +- [Hackernews GraphQL Server with gqlgen by Shayegan Hooshyari](https://www.howtographql.com/graphql-go/0-introduction/) diff --git a/vendor/github.com/99designs/gqlgen/RELEASE-CHECKLIST.md b/vendor/github.com/99designs/gqlgen/RELEASE-CHECKLIST.md index 86c2f3776..ce087bf9e 100644 --- a/vendor/github.com/99designs/gqlgen/RELEASE-CHECKLIST.md +++ b/vendor/github.com/99designs/gqlgen/RELEASE-CHECKLIST.md @@ -6,9 +6,10 @@ Assuming the next version is $NEW_VERSION=v0.16.0 or something like that. ./bin/release $NEW_VERSION ``` 2. git-chglog -o CHANGELOG.md -3. git commit and push the CHANGELOG.md -4. Go to https://github.com/99designs/gqlgen/releases and draft new release, autogenerate the release notes, and Create a discussion for this release -5. Comment on the release discussion with any really important notes (breaking changes) +3. go generate ./...; cd _examples; go generate ./...; cd .. +4. git commit and push the CHANGELOG.md +5. Go to https://github.com/99designs/gqlgen/releases and draft new release, autogenerate the release notes, and Create a discussion for this release +6. Comment on the release discussion with any really important notes (breaking changes) I used https://github.com/git-chglog/git-chglog to automate the changelog maintenance process for now. We could just as easily use go releaser to make the whole thing automated. diff --git a/vendor/github.com/99designs/gqlgen/TESTING.md b/vendor/github.com/99designs/gqlgen/TESTING.md index e5d49e8a9..b8adadd64 100644 --- a/vendor/github.com/99designs/gqlgen/TESTING.md +++ b/vendor/github.com/99designs/gqlgen/TESTING.md @@ -36,5 +36,4 @@ npm install will write the schema to `integration/schema-fetched.graphql`, compare that with `schema-expected.graphql` -CI will run this and fail the build if the two files dont match. - +CI will run this and fail the build if the two files don't match. diff --git a/vendor/github.com/99designs/gqlgen/api/generate.go b/vendor/github.com/99designs/gqlgen/api/generate.go index 6a85cd941..6619dd5cd 100644 --- a/vendor/github.com/99designs/gqlgen/api/generate.go +++ b/vendor/github.com/99designs/gqlgen/api/generate.go @@ -2,6 +2,7 @@ package api import ( "fmt" + "regexp" "syscall" "github.com/99designs/gqlgen/codegen" @@ -24,7 +25,20 @@ func Generate(cfg *config.Config, option ...Option) error { } plugins = append(plugins, resolvergen.New()) if cfg.Federation.IsDefined() { - plugins = append([]plugin.Plugin{federation.New()}, plugins...) + if cfg.Federation.Version == 0 { // default to using the user's choice of version, but if unset, try to sort out which federation version to use + urlRegex := regexp.MustCompile(`(?s)@link.*\(.*url:.*?"(.*?)"[^)]+\)`) // regex to grab the url of a link directive, should it exist + + // check the sources, and if one is marked as federation v2, we mark the entirety to be generated using that format + for _, v := range cfg.Sources { + cfg.Federation.Version = 1 + urlString := urlRegex.FindStringSubmatch(v.Input) + if urlString != nil && urlString[1] == "https://specs.apollo.dev/federation/v2.0" { + cfg.Federation.Version = 2 + break + } + } + } + plugins = append([]plugin.Plugin{federation.New(cfg.Federation.Version)}, plugins...) } for _, o := range option { diff --git a/vendor/github.com/99designs/gqlgen/codegen/args.go b/vendor/github.com/99designs/gqlgen/codegen/args.go index 8c08d924f..0fd30fffd 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/args.go +++ b/vendor/github.com/99designs/gqlgen/codegen/args.go @@ -73,11 +73,15 @@ func (b *builder) buildArg(obj *Object, arg *ast.ArgumentDefinition) (*FieldArgu return &newArg, nil } -func (b *builder) bindArgs(field *Field, params *types.Tuple) ([]*FieldArgument, error) { - var newArgs []*FieldArgument - +func (b *builder) bindArgs(field *Field, sig *types.Signature, params *types.Tuple) ([]*FieldArgument, error) { + n := params.Len() + newArgs := make([]*FieldArgument, 0, len(field.Args)) + // Accept variadic methods (i.e. have optional parameters). + if params.Len() > len(field.Args) && sig.Variadic() { + n = len(field.Args) + } nextArg: - for j := 0; j < params.Len(); j++ { + for j := 0; j < n; j++ { param := params.At(j) for _, oldArg := range field.Args { if strings.EqualFold(oldArg.Name, param.Name()) { diff --git a/vendor/github.com/99designs/gqlgen/codegen/config/binder.go b/vendor/github.com/99designs/gqlgen/codegen/config/binder.go index 90820de6d..e56e2bc95 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/config/binder.go +++ b/vendor/github.com/99designs/gqlgen/codegen/config/binder.go @@ -183,15 +183,16 @@ func (b *Binder) PointerTo(ref *TypeReference) *TypeReference { // TypeReference is used by args and field types. The Definition can refer to both input and output types. type TypeReference struct { - Definition *ast.Definition - GQL *ast.Type - GO types.Type // Type of the field being bound. Could be a pointer or a value type of Target. - Target types.Type // The actual type that we know how to bind to. May require pointer juggling when traversing to fields. - CastType types.Type // Before calling marshalling functions cast from/to this base type - Marshaler *types.Func // When using external marshalling functions this will point to the Marshal function - Unmarshaler *types.Func // When using external marshalling functions this will point to the Unmarshal function - IsMarshaler bool // Does the type implement graphql.Marshaler and graphql.Unmarshaler - IsContext bool // Is the Marshaler/Unmarshaller the context version; applies to either the method or interface variety. + Definition *ast.Definition + GQL *ast.Type + GO types.Type // Type of the field being bound. Could be a pointer or a value type of Target. + Target types.Type // The actual type that we know how to bind to. May require pointer juggling when traversing to fields. + CastType types.Type // Before calling marshalling functions cast from/to this base type + Marshaler *types.Func // When using external marshalling functions this will point to the Marshal function + Unmarshaler *types.Func // When using external marshalling functions this will point to the Unmarshal function + IsMarshaler bool // Does the type implement graphql.Marshaler and graphql.Unmarshaler + IsContext bool // Is the Marshaler/Unmarshaller the context version; applies to either the method or interface variety. + PointersInUmarshalInput bool // Inverse values and pointers in return. } func (ref *TypeReference) Elem() *TypeReference { @@ -216,7 +217,6 @@ func (t *TypeReference) IsPtr() bool { } // fix for https://github.com/golang/go/issues/31103 may make it possible to remove this (may still be useful) -// func (t *TypeReference) IsPtrToPtr() bool { if p, isPtr := t.GO.(*types.Pointer); isPtr { _, isPtr := p.Elem().(*types.Pointer) @@ -252,6 +252,39 @@ func (t *TypeReference) IsStruct() bool { return isStruct } +func (t *TypeReference) IsUnderlyingBasic() bool { + _, isUnderlyingBasic := t.GO.Underlying().(*types.Basic) + return isUnderlyingBasic +} + +func (t *TypeReference) IsUnusualBasic() bool { + if basic, isBasic := t.GO.(*types.Basic); isBasic { + switch basic.Kind() { + case types.Int8, types.Int16, types.Uint, types.Uint8, types.Uint16, types.Uint32: + return true + default: + return false + } + } + return false +} + +func (t *TypeReference) IsUnderlyingUnusualBasic() bool { + if basic, isUnderlyingBasic := t.GO.Underlying().(*types.Basic); isUnderlyingBasic { + switch basic.Kind() { + case types.Int8, types.Int16, types.Uint, types.Uint8, types.Uint16, types.Uint32: + return true + default: + return false + } + } + return false +} + +func (t *TypeReference) IsScalarID() bool { + return t.Definition.Kind == ast.Scalar && t.Marshaler.Name() == "MarshalID" +} + func (t *TypeReference) IsScalar() bool { return t.Definition.Kind == ast.Scalar } @@ -413,6 +446,8 @@ func (b *Binder) TypeReference(schemaType *ast.Type, bindTarget types.Type) (ret ref.GO = bindTarget } + ref.PointersInUmarshalInput = b.cfg.ReturnPointersInUmarshalInput + return ref, nil } diff --git a/vendor/github.com/99designs/gqlgen/codegen/config/config.go b/vendor/github.com/99designs/gqlgen/codegen/config/config.go index 9affe6a69..79136b09d 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/config/config.go +++ b/vendor/github.com/99designs/gqlgen/codegen/config/config.go @@ -1,8 +1,8 @@ package config import ( + "bytes" "fmt" - "io/ioutil" "os" "path/filepath" "regexp" @@ -12,25 +12,30 @@ import ( "github.com/99designs/gqlgen/internal/code" "github.com/vektah/gqlparser/v2" "github.com/vektah/gqlparser/v2/ast" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) type Config struct { - SchemaFilename StringList `yaml:"schema,omitempty"` - Exec ExecConfig `yaml:"exec"` - Model PackageConfig `yaml:"model,omitempty"` - Federation PackageConfig `yaml:"federation,omitempty"` - Resolver ResolverConfig `yaml:"resolver,omitempty"` - AutoBind []string `yaml:"autobind"` - Models TypeMap `yaml:"models,omitempty"` - StructTag string `yaml:"struct_tag,omitempty"` - Directives map[string]DirectiveConfig `yaml:"directives,omitempty"` - OmitSliceElementPointers bool `yaml:"omit_slice_element_pointers,omitempty"` - SkipValidation bool `yaml:"skip_validation,omitempty"` - SkipModTidy bool `yaml:"skip_mod_tidy,omitempty"` - Sources []*ast.Source `yaml:"-"` - Packages *code.Packages `yaml:"-"` - Schema *ast.Schema `yaml:"-"` + SchemaFilename StringList `yaml:"schema,omitempty"` + Exec ExecConfig `yaml:"exec"` + Model PackageConfig `yaml:"model,omitempty"` + Federation PackageConfig `yaml:"federation,omitempty"` + Resolver ResolverConfig `yaml:"resolver,omitempty"` + AutoBind []string `yaml:"autobind"` + Models TypeMap `yaml:"models,omitempty"` + StructTag string `yaml:"struct_tag,omitempty"` + Directives map[string]DirectiveConfig `yaml:"directives,omitempty"` + OmitSliceElementPointers bool `yaml:"omit_slice_element_pointers,omitempty"` + OmitGetters bool `yaml:"omit_getters,omitempty"` + OmitComplexity bool `yaml:"omit_complexity,omitempty"` + StructFieldsAlwaysPointers bool `yaml:"struct_fields_always_pointers,omitempty"` + ReturnPointersInUmarshalInput bool `yaml:"return_pointers_in_unmarshalinput,omitempty"` + ResolversAlwaysReturnPointers bool `yaml:"resolvers_always_return_pointers,omitempty"` + SkipValidation bool `yaml:"skip_validation,omitempty"` + SkipModTidy bool `yaml:"skip_mod_tidy,omitempty"` + Sources []*ast.Source `yaml:"-"` + Packages *code.Packages `yaml:"-"` + Schema *ast.Schema `yaml:"-"` // Deprecated: use Federation instead. Will be removed next release Federated bool `yaml:"federated,omitempty"` @@ -41,11 +46,14 @@ var cfgFilenames = []string{".gqlgen.yml", "gqlgen.yml", "gqlgen.yaml"} // DefaultConfig creates a copy of the default config func DefaultConfig() *Config { return &Config{ - SchemaFilename: StringList{"schema.graphql"}, - Model: PackageConfig{Filename: "models_gen.go"}, - Exec: ExecConfig{Filename: "generated.go"}, - Directives: map[string]DirectiveConfig{}, - Models: TypeMap{}, + SchemaFilename: StringList{"schema.graphql"}, + Model: PackageConfig{Filename: "models_gen.go"}, + Exec: ExecConfig{Filename: "generated.go"}, + Directives: map[string]DirectiveConfig{}, + Models: TypeMap{}, + StructFieldsAlwaysPointers: true, + ReturnPointersInUmarshalInput: false, + ResolversAlwaysReturnPointers: true, } } @@ -57,7 +65,7 @@ func LoadDefaultConfig() (*Config, error) { filename = filepath.ToSlash(filename) var err error var schemaRaw []byte - schemaRaw, err = ioutil.ReadFile(filename) + schemaRaw, err = os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("unable to open schema: %w", err) } @@ -94,12 +102,15 @@ var path2regex = strings.NewReplacer( func LoadConfig(filename string) (*Config, error) { config := DefaultConfig() - b, err := ioutil.ReadFile(filename) + b, err := os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("unable to read config: %w", err) } - if err := yaml.UnmarshalStrict(b, config); err != nil { + dec := yaml.NewDecoder(bytes.NewReader(b)) + dec.KnownFields(true) + + if err := dec.Decode(config); err != nil { return nil, fmt.Errorf("unable to parse config: %w", err) } @@ -173,7 +184,7 @@ func CompleteConfig(config *Config) error { filename = filepath.ToSlash(filename) var err error var schemaRaw []byte - schemaRaw, err = ioutil.ReadFile(filename) + schemaRaw, err = os.ReadFile(filename) if err != nil { return fmt.Errorf("unable to open schema: %w", err) } diff --git a/vendor/github.com/99designs/gqlgen/codegen/config/package.go b/vendor/github.com/99designs/gqlgen/codegen/config/package.go index a96459381..faacd1496 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/config/package.go +++ b/vendor/github.com/99designs/gqlgen/codegen/config/package.go @@ -12,6 +12,7 @@ import ( type PackageConfig struct { Filename string `yaml:"filename,omitempty"` Package string `yaml:"package,omitempty"` + Version int `yaml:"version,omitempty"` } func (c *PackageConfig) ImportPath() string { diff --git a/vendor/github.com/99designs/gqlgen/codegen/data.go b/vendor/github.com/99designs/gqlgen/codegen/data.go index e12fb1047..592140ae6 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/data.go +++ b/vendor/github.com/99designs/gqlgen/codegen/data.go @@ -2,7 +2,10 @@ package codegen import ( "fmt" + "os" + "path/filepath" "sort" + "strings" "github.com/vektah/gqlparser/v2/ast" @@ -30,6 +33,26 @@ type Data struct { QueryRoot *Object MutationRoot *Object SubscriptionRoot *Object + AugmentedSources []AugmentedSource +} + +func (d *Data) HasEmbeddableSources() bool { + hasEmbeddableSources := false + for _, s := range d.AugmentedSources { + if s.Embeddable { + hasEmbeddableSources = true + } + } + return hasEmbeddableSources +} + +// AugmentedSource contains extra information about graphql schema files which is not known directly from the Config.Sources data +type AugmentedSource struct { + // path relative to Config.Exec.Filename + RelativePath string + Embeddable bool + BuiltIn bool + Source string } type builder struct { @@ -147,6 +170,31 @@ func BuildData(cfg *config.Config) (*Data, error) { // otherwise show a generic error message return nil, fmt.Errorf("invalid types were encountered while traversing the go source code, this probably means the invalid code generated isnt correct. add try adding -v to debug") } + aSources := []AugmentedSource{} + for _, s := range cfg.Sources { + wd, err := os.Getwd() + if err != nil { + return nil, fmt.Errorf("failed to get working directory: %w", err) + } + outputDir := cfg.Exec.Dir() + sourcePath := filepath.Join(wd, s.Name) + relative, err := filepath.Rel(outputDir, sourcePath) + if err != nil { + return nil, fmt.Errorf("failed to compute path of %s relative to %s: %w", sourcePath, outputDir, err) + } + relative = filepath.ToSlash(relative) + embeddable := true + if strings.HasPrefix(relative, "..") || s.BuiltIn { + embeddable = false + } + aSources = append(aSources, AugmentedSource{ + RelativePath: relative, + Embeddable: embeddable, + BuiltIn: s.BuiltIn, + Source: s.Input, + }) + } + s.AugmentedSources = aSources return &s, nil } diff --git a/vendor/github.com/99designs/gqlgen/codegen/directives.gotpl b/vendor/github.com/99designs/gqlgen/codegen/directives.gotpl index e6d2455f6..23bcf0f87 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/directives.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/directives.gotpl @@ -70,7 +70,7 @@ func (ec *executionContext) _mutationMiddleware(ctx context.Context, obj *ast.Op {{ end }} {{ if .Directives.LocationDirectives "SUBSCRIPTION" }} -func (ec *executionContext) _subscriptionMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (interface{}, error)) func() graphql.Marshaler { +func (ec *executionContext) _subscriptionMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (interface{}, error)) func(ctx context.Context) graphql.Marshaler { for _, d := range obj.Directives { switch d.Name { {{- range $directive := .Directives.LocationDirectives "SUBSCRIPTION" }} @@ -80,7 +80,7 @@ func (ec *executionContext) _subscriptionMiddleware(ctx context.Context, obj *as args, err := ec.{{ $directive.ArgsFunc }}(ctx,rawArgs) if err != nil { ec.Error(ctx, err) - return func() graphql.Marshaler { + return func(ctx context.Context) graphql.Marshaler { return graphql.Null } } @@ -98,15 +98,15 @@ func (ec *executionContext) _subscriptionMiddleware(ctx context.Context, obj *as tmp, err := next(ctx) if err != nil { ec.Error(ctx, err) - return func() graphql.Marshaler { + return func(ctx context.Context) graphql.Marshaler { return graphql.Null } } - if data, ok := tmp.(func() graphql.Marshaler); ok { + if data, ok := tmp.(func(ctx context.Context) graphql.Marshaler); ok { return data } ec.Errorf(ctx, `unexpected type %T from directive, should be graphql.Marshaler`, tmp) - return func() graphql.Marshaler { + return func(ctx context.Context) graphql.Marshaler { return graphql.Null } } diff --git a/vendor/github.com/99designs/gqlgen/codegen/field.go b/vendor/github.com/99designs/gqlgen/codegen/field.go index 867215e5b..b9e71de73 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/field.go +++ b/vendor/github.com/99designs/gqlgen/codegen/field.go @@ -3,6 +3,7 @@ package codegen import ( "errors" "fmt" + goast "go/ast" "go/types" "log" "reflect" @@ -12,6 +13,8 @@ import ( "github.com/99designs/gqlgen/codegen/config" "github.com/99designs/gqlgen/codegen/templates" "github.com/vektah/gqlparser/v2/ast" + "golang.org/x/text/cases" + "golang.org/x/text/language" ) type Field struct { @@ -71,7 +74,7 @@ func (b *builder) buildField(obj *Object, field *ast.FieldDefinition) (*Field, e log.Println(err.Error()) } - if f.IsResolver && !f.TypeReference.IsPtr() && f.TypeReference.IsStruct() { + if f.IsResolver && b.Config.ResolversAlwaysReturnPointers && !f.TypeReference.IsPtr() && f.TypeReference.IsStruct() { f.TypeReference = b.Binder.PointerTo(f.TypeReference) } @@ -179,8 +182,8 @@ func (b *builder) bindField(obj *Object, f *Field) (errret error) { params = types.NewTuple(vars...) } - // Try to match target function's arguments with GraphQL field arguments - newArgs, err := b.bindArgs(f, params) + // Try to match target function's arguments with GraphQL field arguments. + newArgs, err := b.bindArgs(f, sig, params) if err != nil { return fmt.Errorf("%s:%d: %w", pos.Filename, pos.Line, err) } @@ -469,10 +472,11 @@ func (f *Field) GoNameUnexported() string { } func (f *Field) ShortInvocation() string { + caser := cases.Title(language.English, cases.NoLower) if f.Object.Kind == ast.InputObject { - return fmt.Sprintf("%s().%s(ctx, &it, data)", strings.Title(f.Object.Definition.Name), f.GoFieldName) + return fmt.Sprintf("%s().%s(ctx, &it, data)", caser.String(f.Object.Definition.Name), f.GoFieldName) } - return fmt.Sprintf("%s().%s(%s)", strings.Title(f.Object.Definition.Name), f.GoFieldName, f.CallArgs()) + return fmt.Sprintf("%s().%s(%s)", caser.String(f.Object.Definition.Name), f.GoFieldName, f.CallArgs()) } func (f *Field) ArgsFunc() string { @@ -483,6 +487,14 @@ func (f *Field) ArgsFunc() string { return "field_" + f.Object.Definition.Name + "_" + f.Name + "_args" } +func (f *Field) FieldContextFunc() string { + return "fieldContext_" + f.Object.Definition.Name + "_" + f.Name +} + +func (f *Field) ChildFieldContextFunc(name string) string { + return "fieldContext_" + f.TypeReference.Definition.Name + "_" + name +} + func (f *Field) ResolverType() string { if !f.IsResolver { return "" @@ -492,6 +504,12 @@ func (f *Field) ResolverType() string { } func (f *Field) ShortResolverDeclaration() string { + return f.ShortResolverSignature(nil) +} + +// ShortResolverSignature is identical to ShortResolverDeclaration, +// but respects previous naming (return) conventions, if any. +func (f *Field) ShortResolverSignature(ft *goast.FuncType) string { if f.Object.Kind == ast.InputObject { return fmt.Sprintf("(ctx context.Context, obj %s, data %s) error", templates.CurrentImports.LookupType(f.Object.Reference()), @@ -512,8 +530,17 @@ func (f *Field) ShortResolverDeclaration() string { if f.Object.Stream { result = "<-chan " + result } - - res += fmt.Sprintf(") (%s, error)", result) + // Named return. + var namedV, namedE string + if ft != nil { + if ft.Results != nil && len(ft.Results.List) > 0 && len(ft.Results.List[0].Names) > 0 { + namedV = ft.Results.List[0].Names[0].Name + } + if ft.Results != nil && len(ft.Results.List) > 1 && len(ft.Results.List[1].Names) > 0 { + namedE = ft.Results.List[1].Names[0].Name + } + } + res += fmt.Sprintf(") (%s %s, %s error)", namedV, result, namedE) return res } @@ -549,7 +576,20 @@ func (f *Field) CallArgs() string { } for _, arg := range f.Args { - args = append(args, "args["+strconv.Quote(arg.Name)+"].("+templates.CurrentImports.LookupType(arg.TypeReference.GO)+")") + tmp := "fc.Args[" + strconv.Quote(arg.Name) + "].(" + templates.CurrentImports.LookupType(arg.TypeReference.GO) + ")" + + if iface, ok := arg.TypeReference.GO.(*types.Interface); ok && iface.Empty() { + tmp = fmt.Sprintf(` + func () interface{} { + if fc.Args["%s"] == nil { + return nil + } + return fc.Args["%s"].(interface{}) + }()`, arg.Name, arg.Name, + ) + } + + args = append(args, tmp) } return strings.Join(args, ", ") diff --git a/vendor/github.com/99designs/gqlgen/codegen/field.gotpl b/vendor/github.com/99designs/gqlgen/codegen/field.gotpl index 0c6becaea..3daaa596f 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/field.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/field.gotpl @@ -1,34 +1,21 @@ {{- range $object := .Objects }}{{- range $field := $object.Fields }} -func (ec *executionContext) _{{$object.Name}}_{{$field.Name}}(ctx context.Context, field graphql.CollectedField{{ if not $object.Root }}, obj {{$object.Reference | ref}}{{end}}) (ret {{ if $object.Stream }}func(){{ end }}graphql.Marshaler) { +func (ec *executionContext) _{{$object.Name}}_{{$field.Name}}(ctx context.Context, field graphql.CollectedField{{ if not $object.Root }}, obj {{$object.Reference | ref}}{{end}}) (ret {{ if $object.Stream }}func(ctx context.Context){{ end }}graphql.Marshaler) { {{- $null := "graphql.Null" }} {{- if $object.Stream }} {{- $null = "nil" }} {{- end }} + fc, err := ec.{{ $field.FieldContextFunc }}(ctx, field) + if err != nil { + return {{ $null }} + } + ctx = graphql.WithFieldContext(ctx, fc) defer func () { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) ret = {{ $null }} } }() - fc := &graphql.FieldContext{ - Object: {{$object.Name|quote}}, - Field: field, - Args: nil, - IsMethod: {{or $field.IsMethod $field.IsResolver}}, - IsResolver: {{ $field.IsResolver }}, - } - - ctx = graphql.WithFieldContext(ctx, fc) - {{- if $field.Args }} - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.{{ $field.ArgsFunc }}(ctx,rawArgs) - if err != nil { - ec.Error(ctx, err) - return {{ $null }} - } - fc.Args = args - {{- end }} {{- if $.AllDirectives.LocationDirectives "FIELD" }} resTmp := ec._fieldMiddleware(ctx, {{if $object.Root}}nil{{else}}obj{{end}}, func(rctx context.Context) (interface{}, error) { {{ template "field" $field }} @@ -39,7 +26,9 @@ func (ec *executionContext) _{{$object.Name}}_{{$field.Name}}(ctx context.Contex }) if err != nil { ec.Error(ctx, err) - return {{ $null }} + {{- if not $object.Root }} + return {{ $null }} + {{- end }} } {{- end }} if resTmp == nil { @@ -51,18 +40,22 @@ func (ec *executionContext) _{{$object.Name}}_{{$field.Name}}(ctx context.Contex return {{ $null }} } {{- if $object.Stream }} - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan {{$field.TypeReference.GO | ref}}) - if !ok { + return func(ctx context.Context) graphql.Marshaler { + select { + case res, ok := <-resTmp.(<-chan {{$field.TypeReference.GO | ref}}): + if !ok { + return nil + } + return graphql.WriterFunc(func(w io.Writer) { + w.Write([]byte{'{'}) + graphql.MarshalString(field.Alias).MarshalGQL(w) + w.Write([]byte{':'}) + ec.{{ $field.TypeReference.MarshalFunc }}(ctx, field.Selections, res).MarshalGQL(w) + w.Write([]byte{'}'}) + }) + case <-ctx.Done(): return nil } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.{{ $field.TypeReference.MarshalFunc }}(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) } {{- else }} res := resTmp.({{$field.TypeReference.GO | ref}}) @@ -71,6 +64,44 @@ func (ec *executionContext) _{{$object.Name}}_{{$field.Name}}(ctx context.Contex {{- end }} } +func (ec *executionContext) {{ $field.FieldContextFunc }}(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: {{quote $field.Object.Name}}, + Field: field, + IsMethod: {{or $field.IsMethod $field.IsResolver}}, + IsResolver: {{ $field.IsResolver }}, + Child: func (ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + {{- if not $field.TypeReference.Definition.Fields }} + return nil, errors.New("field of type {{ $field.TypeReference.Definition.Name }} does not have child fields") + {{- else if ne $field.TypeReference.Definition.Kind "OBJECT" }} + return nil, errors.New("FieldContext.Child cannot be called on type {{ $field.TypeReference.Definition.Kind }}") + {{- else }} + switch field.Name { + {{- range $f := $field.TypeReference.Definition.Fields }} + case "{{ $f.Name }}": + return ec.{{ $field.ChildFieldContextFunc $f.Name }}(ctx, field) + {{- end }} + } + return nil, fmt.Errorf("no field named %q was found under type {{ $field.TypeReference.Definition.Name }}", field.Name) + {{- end }} + }, + } + {{- if $field.Args }} + defer func () { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.{{ $field.ArgsFunc }}(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return + } + {{- end }} + return fc, nil +} + {{- end }}{{- end}} {{ define "field" }} diff --git a/vendor/github.com/99designs/gqlgen/codegen/generate.go b/vendor/github.com/99designs/gqlgen/codegen/generate.go index 77bbf5751..1ce8c329d 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/generate.go +++ b/vendor/github.com/99designs/gqlgen/codegen/generate.go @@ -1,9 +1,10 @@ package codegen import ( + "embed" "errors" "fmt" - "io/ioutil" + "os" "path/filepath" "runtime" "strings" @@ -13,6 +14,9 @@ import ( "github.com/vektah/gqlparser/v2/ast" ) +//go:embed *.gotpl +var codegenTemplates embed.FS + func GenerateCode(data *Data) error { if !data.Config.Exec.IsDefined() { return fmt.Errorf("missing exec config") @@ -36,6 +40,7 @@ func generateSingleFile(data *Data) error { RegionTags: true, GeneratedHeader: true, Packages: data.Config.Packages, + TemplateFS: codegenTemplates, }) } @@ -82,6 +87,7 @@ func generatePerSchema(data *Data) error { RegionTags: true, GeneratedHeader: true, Packages: data.Config.Packages, + TemplateFS: codegenTemplates, }) if err != nil { return err @@ -131,7 +137,7 @@ func generateRootFile(data *Data) error { _, thisFile, _, _ := runtime.Caller(0) rootDir := filepath.Dir(thisFile) templatePath := filepath.Join(rootDir, "root_.gotpl") - templateBytes, err := ioutil.ReadFile(templatePath) + templateBytes, err := os.ReadFile(templatePath) if err != nil { return err } @@ -145,6 +151,7 @@ func generateRootFile(data *Data) error { RegionTags: false, GeneratedHeader: true, Packages: data.Config.Packages, + TemplateFS: codegenTemplates, }) } diff --git a/vendor/github.com/99designs/gqlgen/codegen/generated!.gotpl b/vendor/github.com/99designs/gqlgen/codegen/generated!.gotpl index bf59dacce..647b0e46a 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/generated!.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/generated!.gotpl @@ -7,6 +7,7 @@ {{ reserveImport "sync/atomic" }} {{ reserveImport "errors" }} {{ reserveImport "bytes" }} +{{ reserveImport "embed" }} {{ reserveImport "github.com/vektah/gqlparser/v2" "gqlparser" }} {{ reserveImport "github.com/vektah/gqlparser/v2/ast" }} @@ -50,6 +51,7 @@ } type ComplexityRoot struct { + {{- if not .Config.OmitComplexity }} {{ range $object := .Objects }} {{ if not $object.IsReserved -}} {{ ucFirst $object.Name }} struct { @@ -62,6 +64,7 @@ } {{- end }} {{ end }} + {{- end }} } {{ end }} @@ -103,6 +106,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]interface{}) (int, bool) { ec := executionContext{nil, e} _ = ec + {{ if not .Config.OmitComplexity -}} switch typeName + "." + field { {{ range $object := .Objects }} {{ if not $object.IsReserved }} @@ -129,12 +133,20 @@ {{ end }} {{ end }} } + {{- end }} return 0, false } func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { rc := graphql.GetOperationContext(ctx) ec := executionContext{rc, e} + inputUnmarshalMap := graphql.BuildUnmarshalerMap( + {{- range $input := .Inputs -}} + {{ if not $input.HasUnmarshal }} + ec.unmarshalInput{{ $input.Name }}, + {{- end }} + {{- end }} + ) first := true switch rc.Operation.Operation { @@ -142,6 +154,7 @@ return func(ctx context.Context) *graphql.Response { if !first { return nil } first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) {{ if .Directives.LocationDirectives "QUERY" -}} data := ec._queryMiddleware(ctx, rc.Operation, func(ctx context.Context) (interface{}, error){ return ec._{{.QueryRoot.Name}}(ctx, rc.Operation.SelectionSet), nil @@ -162,6 +175,7 @@ return func(ctx context.Context) *graphql.Response { if !first { return nil } first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) {{ if .Directives.LocationDirectives "MUTATION" -}} data := ec._mutationMiddleware(ctx, rc.Operation, func(ctx context.Context) (interface{}, error){ return ec._{{.MutationRoot.Name}}(ctx, rc.Operation.SelectionSet), nil @@ -190,7 +204,7 @@ var buf bytes.Buffer return func(ctx context.Context) *graphql.Response { buf.Reset() - data := next() + data := next(ctx) if data == nil { return nil @@ -226,9 +240,22 @@ return introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name]), nil } + {{if .HasEmbeddableSources }} + //go:embed{{- range $source := .AugmentedSources }}{{if $source.Embeddable}} {{$source.RelativePath|quote}}{{end}}{{- end }} + var sourcesFS embed.FS + + func sourceData(filename string) string { + data, err := sourcesFS.ReadFile(filename) + if err != nil { + panic(fmt.Sprintf("codegen problem: %s not available", filename)) + } + return string(data) + } + {{- end }} + var sources = []*ast.Source{ - {{- range $source := .Config.Sources }} - {Name: {{$source.Name|quote}}, Input: {{$source.Input|rawQuote}}, BuiltIn: {{$source.BuiltIn}}}, + {{- range $source := .AugmentedSources }} + {Name: {{$source.RelativePath|quote}}, Input: {{if (not $source.Embeddable)}}{{$source.Source|rawQuote}}{{else}}sourceData({{$source.RelativePath|quote}}){{end}}, BuiltIn: {{$source.BuiltIn}}}, {{- end }} } var parsedSchema = gqlparser.MustLoadSchema(sources...) diff --git a/vendor/github.com/99designs/gqlgen/codegen/input.gotpl b/vendor/github.com/99designs/gqlgen/codegen/input.gotpl index 5694bcd61..85480d1f2 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/input.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/input.gotpl @@ -1,6 +1,10 @@ {{- range $input := .Inputs }} {{- if not .HasUnmarshal }} - func (ec *executionContext) unmarshalInput{{ .Name }}(ctx context.Context, obj interface{}) ({{.Type | ref}}, error) { + {{- $it := "it" }} + {{- if .PointersInUmarshalInput }} + {{- $it = "&it" }} + {{- end }} + func (ec *executionContext) unmarshalInput{{ .Name }}(ctx context.Context, obj interface{}) ({{ if .PointersInUmarshalInput }}*{{ end }}{{.Type | ref}}, error) { var it {{.Type | ref}} asMap := map[string]interface{}{} for k, v := range obj.(map[string]interface{}) { @@ -14,7 +18,12 @@ {{- end}} {{- end }} - for k, v := range asMap { + fieldsInOrder := [...]string{ {{ range .Fields }}{{ quote .Name }},{{ end }} } + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } switch k { {{- range $field := .Fields }} case {{$field.Name|quote}}: @@ -26,12 +35,12 @@ {{ template "implDirectives" $field }} tmp, err := directive{{$field.ImplDirectives|len}}(ctx) if err != nil { - return it, graphql.ErrorOnPath(ctx, err) + return {{$it}}, graphql.ErrorOnPath(ctx, err) } if data, ok := tmp.({{ $field.TypeReference.GO | ref }}) ; ok { {{- if $field.IsResolver }} if err = ec.resolvers.{{ $field.ShortInvocation }}; err != nil { - return it, err + return {{$it}}, err } {{- else }} it.{{$field.GoFieldName}} = data @@ -44,21 +53,21 @@ {{- end }} } else { err := fmt.Errorf(`unexpected type %T from directive, should be {{ $field.TypeReference.GO }}`, tmp) - return it, graphql.ErrorOnPath(ctx, err) + return {{$it}}, graphql.ErrorOnPath(ctx, err) } {{- else }} {{- if $field.IsResolver }} data, err := ec.{{ $field.TypeReference.UnmarshalFunc }}(ctx, v) if err != nil { - return it, err + return {{$it}}, err } if err = ec.resolvers.{{ $field.ShortInvocation }}; err != nil { - return it, err + return {{$it}}, err } {{- else }} it.{{$field.GoFieldName}}, err = ec.{{ $field.TypeReference.UnmarshalFunc }}(ctx, v) if err != nil { - return it, err + return {{$it}}, err } {{- end }} {{- end }} @@ -66,7 +75,7 @@ } } - return it, nil + return {{$it}}, nil } {{- end }} {{ end }} diff --git a/vendor/github.com/99designs/gqlgen/codegen/object.go b/vendor/github.com/99designs/gqlgen/codegen/object.go index 6cf922d47..ed0042a61 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/object.go +++ b/vendor/github.com/99designs/gqlgen/codegen/object.go @@ -9,6 +9,8 @@ import ( "github.com/99designs/gqlgen/codegen/config" "github.com/vektah/gqlparser/v2/ast" + "golang.org/x/text/cases" + "golang.org/x/text/language" ) type GoFieldType int @@ -23,14 +25,15 @@ const ( type Object struct { *ast.Definition - Type types.Type - ResolverInterface types.Type - Root bool - Fields []*Field - Implements []*ast.Definition - DisableConcurrency bool - Stream bool - Directives []*Directive + Type types.Type + ResolverInterface types.Type + Root bool + Fields []*Field + Implements []*ast.Definition + DisableConcurrency bool + Stream bool + Directives []*Directive + PointersInUmarshalInput bool } func (b *builder) buildObject(typ *ast.Definition) (*Object, error) { @@ -38,15 +41,16 @@ func (b *builder) buildObject(typ *ast.Definition) (*Object, error) { if err != nil { return nil, fmt.Errorf("%s: %w", typ.Name, err) } - + caser := cases.Title(language.English, cases.NoLower) obj := &Object{ - Definition: typ, - Root: b.Schema.Query == typ || b.Schema.Mutation == typ || b.Schema.Subscription == typ, - DisableConcurrency: typ == b.Schema.Mutation, - Stream: typ == b.Schema.Subscription, - Directives: dirs, + Definition: typ, + Root: b.Schema.Query == typ || b.Schema.Mutation == typ || b.Schema.Subscription == typ, + DisableConcurrency: typ == b.Schema.Mutation, + Stream: typ == b.Schema.Subscription, + Directives: dirs, + PointersInUmarshalInput: b.Config.ReturnPointersInUmarshalInput, ResolverInterface: types.NewNamed( - types.NewTypeName(0, b.Config.Exec.Pkg(), strings.Title(typ.Name)+"Resolver", nil), + types.NewTypeName(0, b.Config.Exec.Pkg(), caser.String(typ.Name)+"Resolver", nil), nil, nil, ), diff --git a/vendor/github.com/99designs/gqlgen/codegen/object.gotpl b/vendor/github.com/99designs/gqlgen/codegen/object.gotpl index 8cb9d28ce..ab31beb71 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/object.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/object.gotpl @@ -3,7 +3,7 @@ var {{ $object.Name|lcFirst}}Implementors = {{$object.Implementors}} {{- if .Stream }} -func (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.SelectionSet) func() graphql.Marshaler { +func (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, {{$object.Name|lcFirst}}Implementors) ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ Object: {{$object.Name|quote}}, @@ -31,7 +31,9 @@ func (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.Selec }) {{end}} out := graphql.NewFieldSet(fields) - var invalids uint32 + {{- if not $object.Root }} + var invalids uint32 + {{- end }} for i, field := range fields { {{- if $object.Root }} innerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{ @@ -54,14 +56,16 @@ func (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.Selec } }() res = ec._{{$object.Name}}_{{$field.Name}}(ctx, field{{if not $object.Root}}, obj{{end}}) - {{- if $field.TypeReference.GQL.NonNull }} - if res == graphql.Null { - {{- if $object.IsConcurrent }} - atomic.AddUint32(&invalids, 1) - {{- else }} - invalids++ - {{- end }} - } + {{- if not $object.Root }} + {{- if $field.TypeReference.GQL.NonNull }} + if res == graphql.Null { + {{- if $object.IsConcurrent }} + atomic.AddUint32(&invalids, 1) + {{- else }} + invalids++ + {{- end }} + } + {{- end }} {{- end }} return res } @@ -80,23 +84,24 @@ func (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.Selec {{end}} }) {{- else }} - innerFunc := func(ctx context.Context) (res graphql.Marshaler) { - return ec._{{$object.Name}}_{{$field.Name}}(ctx, field{{if not $object.Root}}, obj{{end}}) - } {{if $object.Root}} - out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, innerFunc) + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._{{$object.Name}}_{{$field.Name}}(ctx, field) + }) {{else}} - out.Values[i] = innerFunc(ctx) + out.Values[i] = ec._{{$object.Name}}_{{$field.Name}}(ctx, field, obj) {{end}} - {{- if $field.TypeReference.GQL.NonNull }} - if out.Values[i] == graphql.Null { - {{- if $object.IsConcurrent }} - atomic.AddUint32(&invalids, 1) - {{- else }} - invalids++ - {{- end }} - } + {{- if not $object.Root }} + {{- if $field.TypeReference.GQL.NonNull }} + if out.Values[i] == graphql.Null { + {{- if $object.IsConcurrent }} + atomic.AddUint32(&invalids, 1) + {{- else }} + invalids++ + {{- end }} + } + {{- end }} {{- end }} {{- end }} {{- end }} @@ -105,7 +110,9 @@ func (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.Selec } } out.Dispatch() - if invalids > 0 { return graphql.Null } + {{- if not $object.Root }} + if invalids > 0 { return graphql.Null } + {{- end }} return out } {{- end }} diff --git a/vendor/github.com/99designs/gqlgen/codegen/root_.gotpl b/vendor/github.com/99designs/gqlgen/codegen/root_.gotpl index 13d779618..5f97a574b 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/root_.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/root_.gotpl @@ -7,6 +7,7 @@ {{ reserveImport "sync/atomic" }} {{ reserveImport "errors" }} {{ reserveImport "bytes" }} +{{ reserveImport "embed" }} {{ reserveImport "github.com/vektah/gqlparser/v2" "gqlparser" }} {{ reserveImport "github.com/vektah/gqlparser/v2/ast" }} @@ -34,6 +35,11 @@ type ResolverRoot interface { {{ucFirst $object.Name}}() {{ucFirst $object.Name}}Resolver {{ end }} {{- end }} +{{- range $object := .Inputs -}} + {{ if $object.HasResolvers -}} + {{ucFirst $object.Name}}() {{ucFirst $object.Name}}Resolver + {{ end }} +{{- end }} } type DirectiveRoot struct { @@ -43,6 +49,7 @@ type DirectiveRoot struct { } type ComplexityRoot struct { +{{- if not .Config.OmitComplexity }} {{ range $object := .Objects }} {{ if not $object.IsReserved -}} {{ ucFirst $object.Name }} struct { @@ -55,6 +62,7 @@ type ComplexityRoot struct { } {{- end }} {{ end }} +{{- end }} } type executableSchema struct { @@ -70,6 +78,7 @@ func (e *executableSchema) Schema() *ast.Schema { func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]interface{}) (int, bool) { ec := executionContext{nil, e} _ = ec + {{- if not .Config.OmitComplexity }} switch typeName + "." + field { {{ range $object := .Objects }} {{ if not $object.IsReserved }} @@ -96,12 +105,20 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in {{ end }} {{ end }} } + {{- end }} return 0, false } func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { rc := graphql.GetOperationContext(ctx) ec := executionContext{rc, e} + inputUnmarshalMap := graphql.BuildUnmarshalerMap( + {{- range $input := .Inputs -}} + {{ if not $input.HasUnmarshal }} + ec.unmarshalInput{{ $input.Name }}, + {{- end }} + {{- end }} + ) first := true switch rc.Operation.Operation { @@ -109,6 +126,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { return func(ctx context.Context) *graphql.Response { if !first { return nil } first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) {{ if .Directives.LocationDirectives "QUERY" -}} data := ec._queryMiddleware(ctx, rc.Operation, func(ctx context.Context) (interface{}, error){ return ec._{{.QueryRoot.Name}}(ctx, rc.Operation.SelectionSet), nil @@ -129,6 +147,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { return func(ctx context.Context) *graphql.Response { if !first { return nil } first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) {{ if .Directives.LocationDirectives "MUTATION" -}} data := ec._mutationMiddleware(ctx, rc.Operation, func(ctx context.Context) (interface{}, error){ return ec._{{.MutationRoot.Name}}(ctx, rc.Operation.SelectionSet), nil @@ -157,7 +176,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { var buf bytes.Buffer return func(ctx context.Context) *graphql.Response { buf.Reset() - data := next() + data := next(ctx) if data == nil { return nil @@ -193,9 +212,23 @@ func (ec *executionContext) introspectType(name string) (*introspection.Type, er return introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name]), nil } + +{{if .HasEmbeddableSources }} +//go:embed{{- range $source := .AugmentedSources }}{{if $source.Embeddable}} {{$source.RelativePath|quote}}{{end}}{{- end }} +var sourcesFS embed.FS + +func sourceData(filename string) string { + data, err := sourcesFS.ReadFile(filename) + if err != nil { + panic(fmt.Sprintf("codegen problem: %s not available", filename)) + } + return string(data) +} +{{- end}} + var sources = []*ast.Source{ -{{- range $source := .Config.Sources }} - {Name: {{$source.Name|quote}}, Input: {{$source.Input|rawQuote}}, BuiltIn: {{$source.BuiltIn}}}, +{{- range $source := .AugmentedSources }} + {Name: {{$source.RelativePath|quote}}, Input: {{if (not $source.Embeddable)}}{{$source.Source|rawQuote}}{{else}}sourceData({{$source.RelativePath|quote}}){{end}}, BuiltIn: {{$source.BuiltIn}}}, {{- end }} } var parsedSchema = gqlparser.MustLoadSchema(sources...) diff --git a/vendor/github.com/99designs/gqlgen/codegen/templates/import.go b/vendor/github.com/99designs/gqlgen/codegen/templates/import.go index 00a82ea5e..50115283f 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/templates/import.go +++ b/vendor/github.com/99designs/gqlgen/codegen/templates/import.go @@ -45,7 +45,7 @@ func (s *Imports) Reserve(path string, aliases ...string) (string, error) { panic("empty ambient import") } - // if we are referencing our own package we dont need an import + // if we are referencing our own package we don't need an import if code.ImportPathForDir(s.destDir) == path { return "", nil } @@ -85,7 +85,7 @@ func (s *Imports) Lookup(path string) string { path = code.NormalizeVendor(path) - // if we are referencing our own package we dont need an import + // if we are referencing our own package we don't need an import if code.ImportPathForDir(s.destDir) == path { return "" } diff --git a/vendor/github.com/99designs/gqlgen/codegen/templates/templates.go b/vendor/github.com/99designs/gqlgen/codegen/templates/templates.go index 0ea3c8725..159df77c9 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/templates/templates.go +++ b/vendor/github.com/99designs/gqlgen/codegen/templates/templates.go @@ -4,14 +4,16 @@ import ( "bytes" "fmt" "go/types" - "io/ioutil" + "io/fs" "os" "path/filepath" "reflect" + "regexp" "runtime" "sort" "strconv" "strings" + "sync" "text/template" "unicode" @@ -36,6 +38,11 @@ type Options struct { // the plugin processor will look for .gotpl files // in the same directory of where you wrote the plugin. Template string + + // Use the go:embed API to collect all the template files you want to pass into Render + // this is an alternative to passing the Template option + TemplateFS fs.FS + // Filename is the name of the file that will be // written to the system disk once the template is rendered. Filename string @@ -53,6 +60,12 @@ type Options struct { Packages *code.Packages } +var ( + modelNamesMu sync.Mutex + modelNames = make(map[string]string, 0) + goNameRe = regexp.MustCompile("[^a-zA-Z0-9_]") +) + // Render renders a gql plugin template from the given Options. Render is an // abstraction of the text/template package that makes it easier to write gqlgen // plugins. If Options.Template is empty, the Render function will look for `.gotpl` @@ -63,55 +76,27 @@ func Render(cfg Options) error { } CurrentImports = &Imports{packages: cfg.Packages, destDir: filepath.Dir(cfg.Filename)} - // load path relative to calling source file - _, callerFile, _, _ := runtime.Caller(1) - rootDir := filepath.Dir(callerFile) - funcs := Funcs() for n, f := range cfg.Funcs { funcs[n] = f } + t := template.New("").Funcs(funcs) + t, err := parseTemplates(cfg, t) + if err != nil { + return err + } - var roots []string - if cfg.Template != "" { - var err error - t, err = t.New("template.gotpl").Parse(cfg.Template) - if err != nil { - return fmt.Errorf("error with provided template: %w", err) + roots := make([]string, 0, len(t.Templates())) + for _, template := range t.Templates() { + // templates that end with _.gotpl are special files we don't want to include + if strings.HasSuffix(template.Name(), "_.gotpl") || + // filter out templates added with {{ template xxx }} syntax inside the template file + !strings.HasSuffix(template.Name(), ".gotpl") { + continue } - roots = append(roots, "template.gotpl") - } else { - // load all the templates in the directory - err := filepath.Walk(rootDir, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - name := filepath.ToSlash(strings.TrimPrefix(path, rootDir+string(os.PathSeparator))) - if !strings.HasSuffix(info.Name(), ".gotpl") { - return nil - } - // omit any templates with "_" at the end of their name, which are meant for specific contexts only - if strings.HasSuffix(info.Name(), "_.gotpl") { - return nil - } - b, err := ioutil.ReadFile(path) - if err != nil { - return err - } - t, err = t.New(name).Parse(string(b)) - if err != nil { - return fmt.Errorf("%s: %w", cfg.Filename, err) - } - - roots = append(roots, name) - - return nil - }) - if err != nil { - return fmt.Errorf("locating templates: %w", err) - } + roots = append(roots, template.Name()) } // then execute all the important looking ones in order, adding them to the same file @@ -125,6 +110,7 @@ func Render(cfg Options) error { } return roots[i] < roots[j] }) + var buf bytes.Buffer for _, root := range roots { if cfg.RegionTags { @@ -156,7 +142,7 @@ func Render(cfg Options) error { result.WriteString("import (\n") result.WriteString(CurrentImports.String()) result.WriteString(")\n") - _, err := buf.WriteTo(&result) + _, err = buf.WriteTo(&result) if err != nil { return err } @@ -171,6 +157,34 @@ func Render(cfg Options) error { return nil } +func parseTemplates(cfg Options, t *template.Template) (*template.Template, error) { + if cfg.Template != "" { + var err error + t, err = t.New("template.gotpl").Parse(cfg.Template) + if err != nil { + return nil, fmt.Errorf("error with provided template: %w", err) + } + return t, nil + } + + var fileSystem fs.FS + if cfg.TemplateFS != nil { + fileSystem = cfg.TemplateFS + } else { + // load path relative to calling source file + _, callerFile, _, _ := runtime.Caller(1) + rootDir := filepath.Dir(callerFile) + fileSystem = os.DirFS(rootDir) + } + + t, err := t.ParseFS(fileSystem, "*.gotpl") + if err != nil { + return nil, fmt.Errorf("locating templates: %w", err) + } + + return t, nil +} + func center(width int, pad string, s string) string { if len(s)+2 > width { return s @@ -182,20 +196,22 @@ func center(width int, pad string, s string) string { func Funcs() template.FuncMap { return template.FuncMap{ - "ucFirst": UcFirst, - "lcFirst": LcFirst, - "quote": strconv.Quote, - "rawQuote": rawQuote, - "dump": Dump, - "ref": ref, - "ts": TypeIdentifier, - "call": Call, - "prefixLines": prefixLines, - "notNil": notNil, - "reserveImport": CurrentImports.Reserve, - "lookupImport": CurrentImports.Lookup, - "go": ToGo, - "goPrivate": ToGoPrivate, + "ucFirst": UcFirst, + "lcFirst": LcFirst, + "quote": strconv.Quote, + "rawQuote": rawQuote, + "dump": Dump, + "ref": ref, + "ts": TypeIdentifier, + "call": Call, + "prefixLines": prefixLines, + "notNil": notNil, + "reserveImport": CurrentImports.Reserve, + "lookupImport": CurrentImports.Lookup, + "go": ToGo, + "goPrivate": ToGoPrivate, + "goModelName": ToGoModelName, + "goPrivateModelName": ToGoPrivateModelName, "add": func(a, b int) int { return a + b }, @@ -285,25 +301,154 @@ func Call(p *types.Func) string { return pkg + p.Name() } +func resetModelNames() { + modelNamesMu.Lock() + defer modelNamesMu.Unlock() + modelNames = make(map[string]string, 0) +} + +func buildGoModelNameKey(parts []string) string { + const sep = ":" + return strings.Join(parts, sep) +} + +func goModelName(primaryToGoFunc func(string) string, parts []string) string { + modelNamesMu.Lock() + defer modelNamesMu.Unlock() + + var ( + goNameKey string + partLen int + + nameExists = func(n string) bool { + for _, v := range modelNames { + if n == v { + return true + } + } + return false + } + + applyToGoFunc = func(parts []string) string { + var out string + switch len(parts) { + case 0: + return "" + case 1: + return primaryToGoFunc(parts[0]) + default: + out = primaryToGoFunc(parts[0]) + } + for _, p := range parts[1:] { + out = fmt.Sprintf("%s%s", out, ToGo(p)) + } + return out + } + + applyValidGoName = func(parts []string) string { + var out string + for _, p := range parts { + out = fmt.Sprintf("%s%s", out, replaceInvalidCharacters(p)) + } + return out + } + ) + + // build key for this entity + goNameKey = buildGoModelNameKey(parts) + + // determine if we've seen this entity before, and reuse if so + if goName, ok := modelNames[goNameKey]; ok { + return goName + } + + // attempt first pass + if goName := applyToGoFunc(parts); !nameExists(goName) { + modelNames[goNameKey] = goName + return goName + } + + // determine number of parts + partLen = len(parts) + + // if there is only 1 part, append incrementing number until no conflict + if partLen == 1 { + base := applyToGoFunc(parts) + for i := 0; ; i++ { + tmp := fmt.Sprintf("%s%d", base, i) + if !nameExists(tmp) { + modelNames[goNameKey] = tmp + return tmp + } + } + } + + // best effort "pretty" name + for i := partLen - 1; i >= 1; i-- { + tmp := fmt.Sprintf("%s%s", applyToGoFunc(parts[0:i]), applyValidGoName(parts[i:])) + if !nameExists(tmp) { + modelNames[goNameKey] = tmp + return tmp + } + } + + // finally, fallback to just adding an incrementing number + base := applyToGoFunc(parts) + for i := 0; ; i++ { + tmp := fmt.Sprintf("%s%d", base, i) + if !nameExists(tmp) { + modelNames[goNameKey] = tmp + return tmp + } + } +} + +func ToGoModelName(parts ...string) string { + return goModelName(ToGo, parts) +} + +func ToGoPrivateModelName(parts ...string) string { + return goModelName(ToGoPrivate, parts) +} + +func replaceInvalidCharacters(in string) string { + return goNameRe.ReplaceAllLiteralString(in, "_") +} + +func wordWalkerFunc(private bool, nameRunes *[]rune) func(*wordInfo) { + return func(info *wordInfo) { + word := info.Word + + switch { + case private && info.WordOffset == 0: + if strings.ToUpper(word) == word || strings.ToLower(word) == word { + // ID → id, CAMEL → camel + word = strings.ToLower(info.Word) + } else { + // ITicket → iTicket + word = LcFirst(info.Word) + } + + case info.MatchCommonInitial: + word = strings.ToUpper(word) + + case !info.HasCommonInitial && (strings.ToUpper(word) == word || strings.ToLower(word) == word): + // FOO or foo → Foo + // FOo → FOo + word = UcFirst(strings.ToLower(word)) + } + + *nameRunes = append(*nameRunes, []rune(word)...) + } +} + func ToGo(name string) string { if name == "_" { return "_" } runes := make([]rune, 0, len(name)) - wordWalker(name, func(info *wordInfo) { - word := info.Word - if info.MatchCommonInitial { - word = strings.ToUpper(word) - } else if !info.HasCommonInitial { - if strings.ToUpper(word) == word || strings.ToLower(word) == word { - // FOO or foo → Foo - // FOo → FOo - word = UcFirst(strings.ToLower(word)) - } - } - runes = append(runes, []rune(word)...) - }) + wordWalker(name, wordWalkerFunc(false, &runes)) return string(runes) } @@ -314,31 +459,13 @@ func ToGoPrivate(name string) string { } runes := make([]rune, 0, len(name)) - first := true - wordWalker(name, func(info *wordInfo) { - word := info.Word - switch { - case first: - if strings.ToUpper(word) == word || strings.ToLower(word) == word { - // ID → id, CAMEL → camel - word = strings.ToLower(info.Word) - } else { - // ITicket → iTicket - word = LcFirst(info.Word) - } - first = false - case info.MatchCommonInitial: - word = strings.ToUpper(word) - case !info.HasCommonInitial: - word = UcFirst(strings.ToLower(word)) - } - runes = append(runes, []rune(word)...) - }) + wordWalker(name, wordWalkerFunc(true, &runes)) return sanitizeKeywords(string(runes)) } type wordInfo struct { + WordOffset int Word string MatchCommonInitial bool HasCommonInitial bool @@ -348,7 +475,7 @@ type wordInfo struct { // https://github.com/golang/lint/blob/06c8688daad7faa9da5a0c2f163a3d14aac986ca/lint.go#L679 func wordWalker(str string, f func(*wordInfo)) { runes := []rune(strings.TrimFunc(str, isDelimiter)) - w, i := 0, 0 // index of start of word, scan + w, i, wo := 0, 0, 0 // index of start of word, scan, word offset hasCommonInitial := false for i+1 <= len(runes) { eow := false // whether we hit the end of a word @@ -396,12 +523,14 @@ func wordWalker(str string, f func(*wordInfo)) { } f(&wordInfo{ + WordOffset: wo, Word: word, MatchCommonInitial: matchCommonInitial, HasCommonInitial: hasCommonInitial, }) hasCommonInitial = false w = i + wo++ } } @@ -576,7 +705,7 @@ func resolveName(name string, skip int) string { func render(filename string, tpldata interface{}) (*bytes.Buffer, error) { t := template.New("").Funcs(Funcs()) - b, err := ioutil.ReadFile(filename) + b, err := os.ReadFile(filename) if err != nil { return nil, err } @@ -602,7 +731,7 @@ func write(filename string, b []byte, packages *code.Packages) error { formatted = b } - err = ioutil.WriteFile(filename, formatted, 0o644) + err = os.WriteFile(filename, formatted, 0o644) if err != nil { return fmt.Errorf("failed to write %s: %w", filename, err) } diff --git a/vendor/github.com/99designs/gqlgen/codegen/templates/test.gotpl b/vendor/github.com/99designs/gqlgen/codegen/templates/test.gotpl new file mode 100644 index 000000000..07b8462a6 --- /dev/null +++ b/vendor/github.com/99designs/gqlgen/codegen/templates/test.gotpl @@ -0,0 +1 @@ +this is my test package diff --git a/vendor/github.com/99designs/gqlgen/codegen/templates/test_.gotpl b/vendor/github.com/99designs/gqlgen/codegen/templates/test_.gotpl new file mode 100644 index 000000000..c74258f3e --- /dev/null +++ b/vendor/github.com/99designs/gqlgen/codegen/templates/test_.gotpl @@ -0,0 +1 @@ +this will not be included diff --git a/vendor/github.com/99designs/gqlgen/codegen/type.gotpl b/vendor/github.com/99designs/gqlgen/codegen/type.gotpl index 1fc6319c5..850c627e0 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/type.gotpl +++ b/vendor/github.com/99designs/gqlgen/codegen/type.gotpl @@ -56,6 +56,10 @@ return *res, graphql.ErrorOnPath(ctx, err) {{- else if and (not $type.IsTargetNilable) $type.IsNilable }} return &res, graphql.ErrorOnPath(ctx, err) + {{- else if or $type.IsUnusualBasic $type.IsUnderlyingUnusualBasic }} + return {{ $type.GO | ref }}(res), graphql.ErrorOnPath(ctx, err) + {{- else if and $type.IsNamed $type.Definition.BuiltIn (not $type.IsScalarID) }} + return {{ $type.GO | ref }}(res), graphql.ErrorOnPath(ctx, err) {{- else}} return res, graphql.ErrorOnPath(ctx, err) {{- end }} @@ -75,9 +79,11 @@ return res, graphql.ErrorOnPath(ctx, err) {{- else }} res, err := ec.unmarshalInput{{ $type.GQL.Name }}(ctx, v) - {{- if $type.IsNilable }} + {{- if and $type.IsNilable (not $type.PointersInUmarshalInput) }} return &res, graphql.ErrorOnPath(ctx, err) - {{- else}} + {{- else if and (not $type.IsNilable) $type.PointersInUmarshalInput }} + return *res, graphql.ErrorOnPath(ctx, err) + {{- else }} return res, graphql.ErrorOnPath(ctx, err) {{- end }} {{- end }} @@ -151,7 +157,7 @@ if v == nil { {{- if $type.GQL.NonNull }} if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") + ec.Errorf(ctx, "the requested element is null which the schema does not allow") } {{- end }} return graphql.Null @@ -170,11 +176,17 @@ {{- else if and (not $type.IsTargetNilable) $type.IsNilable }} {{- $v = "*v" }} {{- end }} - res := {{ $type.Marshaler | call }}({{- if $type.CastType }}{{ $type.CastType | ref }}({{ $v }}){{else}}{{ $v }}{{- end }}) + {{- if or $type.IsUnusualBasic $type.IsUnderlyingUnusualBasic }} + res := {{ $type.Marshaler | call }}({{ $type.Target | ref }}({{ $v }})) + {{- else if and $type.IsNamed $type.Definition.BuiltIn (not $type.IsScalarID) }} + res := {{ $type.Marshaler | call }}({{- if and $type.GO.Underlying $type.IsUnderlyingBasic }}{{ $type.GO.Underlying | ref }}({{ $v }}){{else}}{{ $v }}{{- end }}) + {{- else }} + res := {{ $type.Marshaler | call }}({{- if $type.CastType }}{{ $type.CastType | ref }}({{ $v }}){{else}}{{ $v }}{{- end }}) + {{- end }} {{- if $type.GQL.NonNull }} if res == graphql.Null { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") + ec.Errorf(ctx, "the requested element is null which the schema does not allow") } } {{- end }} diff --git a/vendor/github.com/99designs/gqlgen/codegen/util.go b/vendor/github.com/99designs/gqlgen/codegen/util.go index fa2ceed3d..8a60cd198 100644 --- a/vendor/github.com/99designs/gqlgen/codegen/util.go +++ b/vendor/github.com/99designs/gqlgen/codegen/util.go @@ -41,6 +41,7 @@ func findGoInterface(def types.Type) (*types.Interface, error) { func equalFieldName(source, target string) bool { source = strings.ReplaceAll(source, "_", "") + source = strings.ReplaceAll(source, ",omitempty", "") target = strings.ReplaceAll(target, "_", "") return strings.EqualFold(source, target) } diff --git a/vendor/github.com/99designs/gqlgen/graphql/context_field.go b/vendor/github.com/99designs/gqlgen/graphql/context_field.go index c06118b2c..1f9a6e88d 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/context_field.go +++ b/vendor/github.com/99designs/gqlgen/graphql/context_field.go @@ -30,6 +30,25 @@ type FieldContext struct { IsMethod bool // IsResolver indicates if the field has a user-specified resolver IsResolver bool + // Child allows getting a child FieldContext by its field collection description. + // Note that, the returned child FieldContext represents the context as it was + // before the execution of the field resolver. For example: + // + // srv.AroundFields(func(ctx context.Context, next graphql.Resolver) (interface{}, error) { + // fc := graphql.GetFieldContext(ctx) + // op := graphql.GetOperationContext(ctx) + // collected := graphql.CollectFields(opCtx, fc.Field.Selections, []string{"User"}) + // + // child, err := fc.Child(ctx, collected[0]) + // if err != nil { + // return nil, err + // } + // fmt.Println("child context %q with args: %v", child.Field.Name, child.Args) + // + // return next(ctx) + // }) + // + Child func(context.Context, CollectedField) (*FieldContext, error) } type FieldStats struct { diff --git a/vendor/github.com/99designs/gqlgen/graphql/context_operation.go b/vendor/github.com/99designs/gqlgen/graphql/context_operation.go index bfbbc5c00..77a42b84b 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/context_operation.go +++ b/vendor/github.com/99designs/gqlgen/graphql/context_operation.go @@ -3,8 +3,10 @@ package graphql import ( "context" "errors" + "net/http" "github.com/vektah/gqlparser/v2/ast" + "github.com/vektah/gqlparser/v2/gqlerror" ) // Deprecated: Please update all references to OperationContext instead @@ -15,6 +17,7 @@ type OperationContext struct { Variables map[string]interface{} OperationName string Doc *ast.QueryDocument + Headers http.Header Operation *ast.OperationDefinition DisableIntrospection bool @@ -104,9 +107,16 @@ func (c *OperationContext) Errorf(ctx context.Context, format string, args ...in AddErrorf(ctx, format, args...) } -// Error sends an error to the client, passing it through the formatter. -// Deprecated: use graphql.AddError(ctx, err) instead +// Error add error or multiple errors (if underlaying type is gqlerror.List) into the stack. +// Then it will be sends to the client, passing it through the formatter. func (c *OperationContext) Error(ctx context.Context, err error) { + if errList, ok := err.(gqlerror.List); ok { + for _, e := range errList { + AddError(ctx, e) + } + return + } + AddError(ctx, err) } diff --git a/vendor/github.com/99designs/gqlgen/graphql/errcode/codes.go b/vendor/github.com/99designs/gqlgen/graphql/errcode/codes.go index 98b95d005..854b206f4 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/errcode/codes.go +++ b/vendor/github.com/99designs/gqlgen/graphql/errcode/codes.go @@ -23,18 +23,27 @@ var codeType = map[string]ErrorKind{ ParseFailed: KindProtocol, } -// RegisterErrorType should be called by extensions that want to customize the http status codes for errors they return +// RegisterErrorType should be called by extensions that want to customize the http status codes for +// errors they return func RegisterErrorType(code string, kind ErrorKind) { codeType[code] = kind } // Set the error code on a given graphql error extension -func Set(err *gqlerror.Error, value string) { - if err.Extensions == nil { - err.Extensions = map[string]interface{}{} +func Set(err error, value string) { + if err == nil { + return + } + gqlErr, ok := err.(*gqlerror.Error) + if !ok { + return } - err.Extensions["code"] = value + if gqlErr.Extensions == nil { + gqlErr.Extensions = map[string]interface{}{} + } + + gqlErr.Extensions["code"] = value } // get the kind of the first non User error, defaults to User if no errors have a custom extension diff --git a/vendor/github.com/99designs/gqlgen/graphql/error.go b/vendor/github.com/99designs/gqlgen/graphql/error.go index 4fe520b28..f816bef6b 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/error.go +++ b/vendor/github.com/99designs/gqlgen/graphql/error.go @@ -26,7 +26,8 @@ func ErrorOnPath(ctx context.Context, err error) error { if gqlErr.Path == nil { gqlErr.Path = GetPath(ctx) } - return gqlErr + // Return the original error to avoid losing any attached annotation + return err } return gqlerror.WrapPath(GetPath(ctx), err) } diff --git a/vendor/github.com/99designs/gqlgen/graphql/executable_schema.go b/vendor/github.com/99designs/gqlgen/graphql/executable_schema.go index 541b65fbe..618916228 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/executable_schema.go +++ b/vendor/github.com/99designs/gqlgen/graphql/executable_schema.go @@ -118,6 +118,11 @@ func getOrCreateAndAppendField(c *[]CollectedField, name string, alias string, o return &(*c)[i] } } + for _, ifc := range cf.ObjectDefinition.Interfaces { + if ifc == objectDefinition.Name { + return &(*c)[i] + } + } } } diff --git a/vendor/github.com/99designs/gqlgen/graphql/executor/executor.go b/vendor/github.com/99designs/gqlgen/graphql/executor/executor.go index 95a280311..c46a007b9 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/executor/executor.go +++ b/vendor/github.com/99designs/gqlgen/graphql/executor/executor.go @@ -37,7 +37,10 @@ func New(es graphql.ExecutableSchema) *Executor { return e } -func (e *Executor) CreateOperationContext(ctx context.Context, params *graphql.RawParams) (*graphql.OperationContext, gqlerror.List) { +func (e *Executor) CreateOperationContext( + ctx context.Context, + params *graphql.RawParams, +) (*graphql.OperationContext, gqlerror.List) { rc := &graphql.OperationContext{ DisableIntrospection: true, RecoverFunc: e.recoverFunc, @@ -58,6 +61,7 @@ func (e *Executor) CreateOperationContext(ctx context.Context, params *graphql.R rc.RawQuery = params.Query rc.OperationName = params.OperationName + rc.Headers = params.Headers var listErr gqlerror.List rc.Doc, listErr = e.parseQuery(ctx, &rc.Stats, params.Query) @@ -67,15 +71,21 @@ func (e *Executor) CreateOperationContext(ctx context.Context, params *graphql.R rc.Operation = rc.Doc.Operations.ForName(params.OperationName) if rc.Operation == nil { - return rc, gqlerror.List{gqlerror.Errorf("operation %s not found", params.OperationName)} - } - - var err *gqlerror.Error - rc.Variables, err = validator.VariableValues(e.es.Schema(), rc.Operation, params.Variables) - if err != nil { + err := gqlerror.Errorf("operation %s not found", params.OperationName) errcode.Set(err, errcode.ValidationFailed) return rc, gqlerror.List{err} } + + var err error + rc.Variables, err = validator.VariableValues(e.es.Schema(), rc.Operation, params.Variables) + + if err != nil { + gqlErr, ok := err.(*gqlerror.Error) + if ok { + errcode.Set(gqlErr, errcode.ValidationFailed) + return rc, gqlerror.List{gqlErr} + } + } rc.Stats.Validation.End = graphql.Now() for _, p := range e.ext.operationContextMutators { @@ -87,7 +97,10 @@ func (e *Executor) CreateOperationContext(ctx context.Context, params *graphql.R return rc, nil } -func (e *Executor) DispatchOperation(ctx context.Context, rc *graphql.OperationContext) (graphql.ResponseHandler, context.Context) { +func (e *Executor) DispatchOperation( + ctx context.Context, + rc *graphql.OperationContext, +) (graphql.ResponseHandler, context.Context) { ctx = graphql.WithOperationContext(ctx, rc) var innerCtx context.Context @@ -130,7 +143,7 @@ func (e *Executor) DispatchError(ctx context.Context, list gqlerror.List) *graph resp := e.ext.responseMiddleware(ctx, func(ctx context.Context) *graphql.Response { resp := &graphql.Response{ - Errors: list, + Errors: graphql.GetErrors(ctx), } resp.Extensions = graphql.GetExtensions(ctx) return resp @@ -139,7 +152,7 @@ func (e *Executor) DispatchError(ctx context.Context, list gqlerror.List) *graph return resp } -func (e *Executor) PresentRecoveredError(ctx context.Context, err interface{}) *gqlerror.Error { +func (e *Executor) PresentRecoveredError(ctx context.Context, err interface{}) error { return e.errorPresenter(ctx, e.recoverFunc(ctx, err)) } @@ -157,9 +170,14 @@ func (e *Executor) SetRecoverFunc(f graphql.RecoverFunc) { // parseQuery decodes the incoming query and validates it, pulling from cache if present. // -// NOTE: This should NOT look at variables, they will change per request. It should only parse and validate +// NOTE: This should NOT look at variables, they will change per request. It should only parse and +// validate // the raw query string. -func (e *Executor) parseQuery(ctx context.Context, stats *graphql.Stats, query string) (*ast.QueryDocument, gqlerror.List) { +func (e *Executor) parseQuery( + ctx context.Context, + stats *graphql.Stats, + query string, +) (*ast.QueryDocument, gqlerror.List) { stats.Parsing.Start = graphql.Now() if doc, ok := e.queryCache.Get(ctx, query); ok { @@ -172,12 +190,23 @@ func (e *Executor) parseQuery(ctx context.Context, stats *graphql.Stats, query s doc, err := parser.ParseQuery(&ast.Source{Input: query}) if err != nil { - errcode.Set(err, errcode.ParseFailed) - return nil, gqlerror.List{err} + gqlErr, ok := err.(*gqlerror.Error) + if ok { + errcode.Set(gqlErr, errcode.ParseFailed) + return nil, gqlerror.List{gqlErr} + } } stats.Parsing.End = graphql.Now() stats.Validation.Start = graphql.Now() + + if len(doc.Operations) == 0 { + err = gqlerror.Errorf("no operation provided") + gqlErr, _ := err.(*gqlerror.Error) + errcode.Set(err, errcode.ValidationFailed) + return nil, gqlerror.List{gqlErr} + } + listErr := validator.Validate(e.es.Schema(), doc) if len(listErr) != 0 { for _, e := range listErr { diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler.go b/vendor/github.com/99designs/gqlgen/graphql/handler.go index 921165978..cd358740c 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler.go @@ -27,6 +27,7 @@ type ( OperationName string `json:"operationName"` Variables map[string]interface{} `json:"variables"` Extensions map[string]interface{} `json:"extensions"` + Headers http.Header `json:"headers"` ReadTime TraceTiming `json:"-"` } @@ -41,14 +42,14 @@ type ( // Its important to understand the lifecycle of a graphql request and the terminology we use in gqlgen // before working with these // - // +--- REQUEST POST /graphql --------------------------------------------+ - // | +- OPERATION query OpName { viewer { name } } -----------------------+ | - // | | RESPONSE { "data": { "viewer": { "name": "bob" } } } | | - // | +- OPERATION subscription OpName2 { chat { message } } --------------+ | - // | | RESPONSE { "data": { "chat": { "message": "hello" } } } | | - // | | RESPONSE { "data": { "chat": { "message": "byee" } } } | | - // | +--------------------------------------------------------------------+ | - // +------------------------------------------------------------------------+ + // +--- REQUEST POST /graphql --------------------------------------------+ + // | +- OPERATION query OpName { viewer { name } } -----------------------+ | + // | | RESPONSE { "data": { "viewer": { "name": "bob" } } } | | + // | +- OPERATION subscription OpName2 { chat { message } } --------------+ | + // | | RESPONSE { "data": { "chat": { "message": "hello" } } } | | + // | | RESPONSE { "data": { "chat": { "message": "byee" } } } | | + // | +--------------------------------------------------------------------+ | + // +------------------------------------------------------------------------+ HandlerExtension interface { // ExtensionName should be a CamelCase string version of the extension which may be shown in stats and logging. ExtensionName() string diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/server.go b/vendor/github.com/99designs/gqlgen/graphql/handler/server.go index 69530bbc5..b6524d8da 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/server.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/server.go @@ -102,7 +102,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { defer func() { if err := recover(); err != nil { err := s.exec.PresentRecoveredError(r.Context(), err) - resp := &graphql.Response{Errors: []*gqlerror.Error{err}} + gqlErr, _ := err.(*gqlerror.Error) + resp := &graphql.Response{Errors: []*gqlerror.Error{gqlErr}} b, _ := json.Marshal(resp) w.WriteHeader(http.StatusUnprocessableEntity) w.Write(b) diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_form.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_form.go index 3874eef48..3d3477b9b 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_form.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_form.go @@ -3,11 +3,9 @@ package transport import ( "encoding/json" "io" - "io/ioutil" "mime" "net/http" "os" - "strings" "github.com/99designs/gqlgen/graphql" ) @@ -64,133 +62,145 @@ func (f MultipartForm) Do(w http.ResponseWriter, r *http.Request, exec graphql.G return } r.Body = http.MaxBytesReader(w, r.Body, f.maxUploadSize()) - if err = r.ParseMultipartForm(f.maxMemory()); err != nil { + defer r.Body.Close() + + mr, err := r.MultipartReader() + if err != nil { w.WriteHeader(http.StatusUnprocessableEntity) - if strings.Contains(err.Error(), "request body too large") { - writeJsonError(w, "failed to parse multipart form, request body too large") - return - } writeJsonError(w, "failed to parse multipart form") return } - defer r.Body.Close() + + part, err := mr.NextPart() + if err != nil || part.FormName() != "operations" { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonError(w, "first part must be operations") + return + } var params graphql.RawParams - - if err = jsonDecode(strings.NewReader(r.Form.Get("operations")), ¶ms); err != nil { + if err = jsonDecode(part, ¶ms); err != nil { w.WriteHeader(http.StatusUnprocessableEntity) writeJsonError(w, "operations form field could not be decoded") return } + part, err = mr.NextPart() + if err != nil || part.FormName() != "map" { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonError(w, "second part must be map") + return + } + uploadsMap := map[string][]string{} - if err = json.Unmarshal([]byte(r.Form.Get("map")), &uploadsMap); err != nil { + if err = json.NewDecoder(part).Decode(&uploadsMap); err != nil { w.WriteHeader(http.StatusUnprocessableEntity) writeJsonError(w, "map form field could not be decoded") return } - var upload graphql.Upload - for key, paths := range uploadsMap { + for { + part, err = mr.NextPart() + if err == io.EOF { + break + } else if err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonErrorf(w, "failed to parse part") + return + } + + key := part.FormName() + filename := part.FileName() + contentType := part.Header.Get("Content-Type") + + paths := uploadsMap[key] if len(paths) == 0 { w.WriteHeader(http.StatusUnprocessableEntity) writeJsonErrorf(w, "invalid empty operations paths list for key %s", key) return } - file, header, err := r.FormFile(key) - if err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonErrorf(w, "failed to get key %s from form", key) - return - } - defer file.Close() + delete(uploadsMap, key) - if len(paths) == 1 { - upload = graphql.Upload{ - File: file, - Size: header.Size, - Filename: header.Filename, - ContentType: header.Header.Get("Content-Type"), - } - - if err := params.AddUpload(upload, key, paths[0]); err != nil { + var upload graphql.Upload + if r.ContentLength < f.maxMemory() { + fileBytes, err := io.ReadAll(part) + if err != nil { w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonGraphqlError(w, err) + writeJsonErrorf(w, "failed to read file for key %s", key) return } + for _, path := range paths { + upload = graphql.Upload{ + File: &bytesReader{s: &fileBytes, i: 0}, + Size: int64(len(fileBytes)), + Filename: filename, + ContentType: contentType, + } + + if err := params.AddUpload(upload, key, path); err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonGraphqlError(w, err) + return + } + } } else { - if r.ContentLength < f.maxMemory() { - fileBytes, err := ioutil.ReadAll(file) - if err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonErrorf(w, "failed to read file for key %s", key) - return - } - for _, path := range paths { - upload = graphql.Upload{ - File: &bytesReader{s: &fileBytes, i: 0, prevRune: -1}, - Size: header.Size, - Filename: header.Filename, - ContentType: header.Header.Get("Content-Type"), - } - - if err := params.AddUpload(upload, key, path); err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonGraphqlError(w, err) - return - } - } - } else { - tmpFile, err := ioutil.TempFile(os.TempDir(), "gqlgen-") - if err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonErrorf(w, "failed to create temp file for key %s", key) - return - } - tmpName := tmpFile.Name() - defer func() { - _ = os.Remove(tmpName) - }() - _, err = io.Copy(tmpFile, file) - if err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - if err := tmpFile.Close(); err != nil { - writeJsonErrorf(w, "failed to copy to temp file and close temp file for key %s", key) - return - } - writeJsonErrorf(w, "failed to copy to temp file for key %s", key) - return - } + tmpFile, err := os.CreateTemp(os.TempDir(), "gqlgen-") + if err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonErrorf(w, "failed to create temp file for key %s", key) + return + } + tmpName := tmpFile.Name() + defer func() { + _ = os.Remove(tmpName) + }() + fileSize, err := io.Copy(tmpFile, part) + if err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) if err := tmpFile.Close(); err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonErrorf(w, "failed to close temp file for key %s", key) + writeJsonErrorf(w, "failed to copy to temp file and close temp file for key %s", key) return } - for _, path := range paths { - pathTmpFile, err := os.Open(tmpName) - if err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonErrorf(w, "failed to open temp file for key %s", key) - return - } - defer pathTmpFile.Close() - upload = graphql.Upload{ - File: pathTmpFile, - Size: header.Size, - Filename: header.Filename, - ContentType: header.Header.Get("Content-Type"), - } + writeJsonErrorf(w, "failed to copy to temp file for key %s", key) + return + } + if err := tmpFile.Close(); err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonErrorf(w, "failed to close temp file for key %s", key) + return + } + for _, path := range paths { + pathTmpFile, err := os.Open(tmpName) + if err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonErrorf(w, "failed to open temp file for key %s", key) + return + } + defer pathTmpFile.Close() + upload = graphql.Upload{ + File: pathTmpFile, + Size: fileSize, + Filename: filename, + ContentType: contentType, + } - if err := params.AddUpload(upload, key, path); err != nil { - w.WriteHeader(http.StatusUnprocessableEntity) - writeJsonGraphqlError(w, err) - return - } + if err := params.AddUpload(upload, key, path); err != nil { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonGraphqlError(w, err) + return } } } } + for key := range uploadsMap { + w.WriteHeader(http.StatusUnprocessableEntity) + writeJsonErrorf(w, "failed to get key %s from form", key) + return + } + + params.Headers = r.Header + params.ReadTime = graphql.TraceTiming{ Start: start, End: graphql.Now(), diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_get.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_get.go index d97c89c63..8114ba66a 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_get.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_get.go @@ -4,6 +4,7 @@ import ( "encoding/json" "io" "net/http" + "net/url" "strings" "github.com/99designs/gqlgen/graphql" @@ -27,15 +28,22 @@ func (h GET) Supports(r *http.Request) bool { } func (h GET) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) { + query, err := url.ParseQuery(r.URL.RawQuery) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + writeJsonError(w, err.Error()) + return + } w.Header().Set("Content-Type", "application/json") raw := &graphql.RawParams{ - Query: r.URL.Query().Get("query"), - OperationName: r.URL.Query().Get("operationName"), + Query: query.Get("query"), + OperationName: query.Get("operationName"), + Headers: r.Header, } raw.ReadTime.Start = graphql.Now() - if variables := r.URL.Query().Get("variables"); variables != "" { + if variables := query.Get("variables"); variables != "" { if err := jsonDecode(strings.NewReader(variables), &raw.Variables); err != nil { w.WriteHeader(http.StatusBadRequest) writeJsonError(w, "variables could not be decoded") @@ -43,7 +51,7 @@ func (h GET) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecut } } - if extensions := r.URL.Query().Get("extensions"); extensions != "" { + if extensions := query.Get("extensions"); extensions != "" { if err := jsonDecode(strings.NewReader(extensions), &raw.Extensions); err != nil { w.WriteHeader(http.StatusBadRequest) writeJsonError(w, "extensions could not be decoded") @@ -53,10 +61,10 @@ func (h GET) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecut raw.ReadTime.End = graphql.Now() - rc, err := exec.CreateOperationContext(r.Context(), raw) - if err != nil { - w.WriteHeader(statusFor(err)) - resp := exec.DispatchError(graphql.WithOperationContext(r.Context(), rc), err) + rc, gqlError := exec.CreateOperationContext(r.Context(), raw) + if gqlError != nil { + w.WriteHeader(statusFor(gqlError)) + resp := exec.DispatchError(graphql.WithOperationContext(r.Context(), rc), gqlError) writeJson(w, resp) return } diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_post.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_post.go index deefeb38d..28847754b 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_post.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/http_post.go @@ -1,8 +1,14 @@ package transport import ( + "fmt" + "io" + "log" "mime" "net/http" + "strings" + + "github.com/vektah/gqlparser/v2/gqlerror" "github.com/99designs/gqlgen/graphql" ) @@ -26,28 +32,59 @@ func (h POST) Supports(r *http.Request) bool { return r.Method == "POST" && mediaType == "application/json" } -func (h POST) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) { - w.Header().Set("Content-Type", "application/json") - - var params *graphql.RawParams - start := graphql.Now() - if err := jsonDecode(r.Body, ¶ms); err != nil { - w.WriteHeader(http.StatusBadRequest) - writeJsonErrorf(w, "json body could not be decoded: "+err.Error()) - return +func getRequestBody(r *http.Request) (string, error) { + if r == nil || r.Body == nil { + return "", nil } + body, err := io.ReadAll(r.Body) + if err != nil { + return "", fmt.Errorf("unable to get Request Body %w", err) + } + return string(body), nil +} + +func (h POST) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) { + ctx := r.Context() + w.Header().Set("Content-Type", "application/json") + params := &graphql.RawParams{} + start := graphql.Now() + params.Headers = r.Header params.ReadTime = graphql.TraceTiming{ Start: start, End: graphql.Now(), } - rc, err := exec.CreateOperationContext(r.Context(), params) + bodyString, err := getRequestBody(r) if err != nil { - w.WriteHeader(statusFor(err)) - resp := exec.DispatchError(graphql.WithOperationContext(r.Context(), rc), err) + gqlErr := gqlerror.Errorf("could not get json request body: %+v", err) + resp := exec.DispatchError(ctx, gqlerror.List{gqlErr}) + log.Printf("could not get json request body: %+v", err.Error()) + writeJson(w, resp) + } + + bodyReader := io.NopCloser(strings.NewReader(bodyString)) + if err = jsonDecode(bodyReader, ¶ms); err != nil { + w.WriteHeader(http.StatusBadRequest) + gqlErr := gqlerror.Errorf( + "json request body could not be decoded: %+v body:%s", + err, + bodyString, + ) + resp := exec.DispatchError(ctx, gqlerror.List{gqlErr}) + log.Printf("decoding error: %+v body:%s", err.Error(), bodyString) writeJson(w, resp) return } - responses, ctx := exec.DispatchOperation(r.Context(), rc) + + rc, OpErr := exec.CreateOperationContext(ctx, params) + if OpErr != nil { + w.WriteHeader(statusFor(OpErr)) + resp := exec.DispatchError(graphql.WithOperationContext(ctx, rc), OpErr) + writeJson(w, resp) + return + } + + var responses graphql.ResponseHandler + responses, ctx = exec.DispatchOperation(ctx, rc) writeJson(w, responses(ctx)) } diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/options.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/options.go index 6b725ff3e..5d7f4b881 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/options.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/options.go @@ -2,12 +2,16 @@ package transport import ( "net/http" + "strings" "github.com/99designs/gqlgen/graphql" ) // Options responds to http OPTIONS and HEAD requests -type Options struct{} +type Options struct { + // AllowedMethods is a list of allowed HTTP methods. + AllowedMethods []string +} var _ graphql.Transport = Options{} @@ -18,9 +22,16 @@ func (o Options) Supports(r *http.Request) bool { func (o Options) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) { switch r.Method { case http.MethodOptions: - w.Header().Set("Allow", "OPTIONS, GET, POST") + w.Header().Set("Allow", o.allowedMethods()) w.WriteHeader(http.StatusOK) case http.MethodHead: w.WriteHeader(http.StatusMethodNotAllowed) } } + +func (o Options) allowedMethods() string { + if len(o.AllowedMethods) == 0 { + return "OPTIONS, GET, POST" + } + return strings.Join(o.AllowedMethods, ", ") +} diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/reader.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/reader.go index d3261e283..c58eccf33 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/reader.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/reader.go @@ -6,9 +6,8 @@ import ( ) type bytesReader struct { - s *[]byte - i int64 // current reading index - prevRune int // index of previous rune; or < 0 + s *[]byte + i int64 // current reading index } func (r *bytesReader) Read(b []byte) (n int, err error) { @@ -18,8 +17,29 @@ func (r *bytesReader) Read(b []byte) (n int, err error) { if r.i >= int64(len(*r.s)) { return 0, io.EOF } - r.prevRune = -1 n = copy(b, (*r.s)[r.i:]) r.i += int64(n) return } + +func (r *bytesReader) Seek(offset int64, whence int) (int64, error) { + if r.s == nil { + return 0, errors.New("byte slice pointer is nil") + } + var abs int64 + switch whence { + case io.SeekStart: + abs = offset + case io.SeekCurrent: + abs = r.i + offset + case io.SeekEnd: + abs = int64(len(*r.s)) + offset + default: + return 0, errors.New("invalid whence") + } + if abs < 0 { + return 0, errors.New("negative position") + } + r.i = abs + return abs, nil +} diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/sse.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/sse.go new file mode 100644 index 000000000..521014a65 --- /dev/null +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/sse.go @@ -0,0 +1,110 @@ +package transport + +import ( + "encoding/json" + "fmt" + "io" + "log" + "mime" + "net/http" + "strings" + + "github.com/vektah/gqlparser/v2/gqlerror" + + "github.com/99designs/gqlgen/graphql" +) + +type SSE struct{} + +var _ graphql.Transport = SSE{} + +func (t SSE) Supports(r *http.Request) bool { + if !strings.Contains(r.Header.Get("Accept"), "text/event-stream") { + return false + } + mediaType, _, err := mime.ParseMediaType(r.Header.Get("Content-Type")) + if err != nil { + return false + } + return r.Method == http.MethodPost && mediaType == "application/json" +} + +func (t SSE) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) { + ctx := r.Context() + flusher, ok := w.(http.Flusher) + if !ok { + SendErrorf(w, http.StatusInternalServerError, "streaming unsupported") + return + } + defer flusher.Flush() + + w.Header().Set("Cache-Control", "no-cache") + w.Header().Set("Connection", "keep-alive") + w.Header().Set("Content-Type", "application/json") + + params := &graphql.RawParams{} + start := graphql.Now() + params.Headers = r.Header + params.ReadTime = graphql.TraceTiming{ + Start: start, + End: graphql.Now(), + } + + bodyString, err := getRequestBody(r) + if err != nil { + gqlErr := gqlerror.Errorf("could not get json request body: %+v", err) + resp := exec.DispatchError(ctx, gqlerror.List{gqlErr}) + log.Printf("could not get json request body: %+v", err.Error()) + writeJson(w, resp) + return + } + + bodyReader := io.NopCloser(strings.NewReader(bodyString)) + if err = jsonDecode(bodyReader, ¶ms); err != nil { + w.WriteHeader(http.StatusBadRequest) + gqlErr := gqlerror.Errorf( + "json request body could not be decoded: %+v body:%s", + err, + bodyString, + ) + resp := exec.DispatchError(ctx, gqlerror.List{gqlErr}) + log.Printf("decoding error: %+v body:%s", err.Error(), bodyString) + writeJson(w, resp) + return + } + + rc, OpErr := exec.CreateOperationContext(ctx, params) + if OpErr != nil { + w.WriteHeader(statusFor(OpErr)) + resp := exec.DispatchError(graphql.WithOperationContext(ctx, rc), OpErr) + writeJson(w, resp) + return + } + + ctx = graphql.WithOperationContext(ctx, rc) + + w.Header().Set("Content-Type", "text/event-stream") + fmt.Fprint(w, ":\n\n") + flusher.Flush() + + responses, ctx := exec.DispatchOperation(ctx, rc) + + for { + response := responses(ctx) + if response == nil { + break + } + writeJsonWithSSE(w, response) + flusher.Flush() + } + + fmt.Fprint(w, "event: complete\n\n") +} + +func writeJsonWithSSE(w io.Writer, response *graphql.Response) { + b, err := json.Marshal(response) + if err != nil { + panic(err) + } + fmt.Fprintf(w, "event: next\ndata: %s\n\n", b) +} diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket.go index 28480a409..08fc6bfb2 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket.go @@ -49,7 +49,24 @@ type ( var errReadTimeout = errors.New("read timeout") -var _ graphql.Transport = Websocket{} +type WebsocketError struct { + Err error + + // IsReadError flags whether the error occurred on read or write to the websocket + IsReadError bool +} + +func (e WebsocketError) Error() string { + if e.IsReadError { + return fmt.Sprintf("websocket read: %v", e.Err) + } + return fmt.Sprintf("websocket write: %v", e.Err) +} + +var ( + _ graphql.Transport = Websocket{} + _ error = WebsocketError{} +) func (t Websocket) Supports(r *http.Request) bool { return r.Header.Get("Upgrade") != "" @@ -94,9 +111,12 @@ func (t Websocket) Do(w http.ResponseWriter, r *http.Request, exec graphql.Graph conn.run() } -func (c *wsConnection) handlePossibleError(err error) { +func (c *wsConnection) handlePossibleError(err error, isReadError bool) { if c.ErrorFunc != nil && err != nil { - c.ErrorFunc(c.ctx, err) + c.ErrorFunc(c.ctx, WebsocketError{ + Err: err, + IsReadError: isReadError, + }) } } @@ -181,7 +201,7 @@ func (c *wsConnection) init() bool { func (c *wsConnection) write(msg *message) { c.mu.Lock() - c.handlePossibleError(c.me.Send(msg)) + c.handlePossibleError(c.me.Send(msg), false) c.mu.Unlock() } @@ -227,7 +247,7 @@ func (c *wsConnection) run() { if err != nil { // If the connection got closed by us, don't report the error if !errors.Is(err, net.ErrClosed) { - c.handlePossibleError(err) + c.handlePossibleError(err, true) } return } @@ -330,6 +350,7 @@ func (c *wsConnection) subscribe(start time.Time, msg *message) { c.mu.Unlock() go func() { + ctx = withSubscriptionErrorContext(ctx) defer func() { if r := recover(); r != nil { err := rc.Recover(ctx, r) @@ -342,7 +363,11 @@ func (c *wsConnection) subscribe(start time.Time, msg *message) { } c.sendError(msg.id, gqlerr) } - c.complete(msg.id) + if errs := getSubscriptionError(ctx); len(errs) != 0 { + c.sendError(msg.id, errs...) + } else { + c.complete(msg.id) + } c.mu.Lock() delete(c.active, msg.id) c.mu.Unlock() @@ -358,12 +383,8 @@ func (c *wsConnection) subscribe(start time.Time, msg *message) { c.sendResponse(msg.id, response) } - c.complete(msg.id) - c.mu.Lock() - delete(c.active, msg.id) - c.mu.Unlock() - cancel() + // complete and context cancel comes from the defer }() } diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphql_transport_ws.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphql_transport_ws.go index 9b82082a2..bfb12541a 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphql_transport_ws.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphql_transport_ws.go @@ -7,7 +7,7 @@ import ( "github.com/gorilla/websocket" ) -// https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md +// https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md const ( graphqltransportwsSubprotocol = "graphql-transport-ws" diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphqlws.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphqlws.go index 49ed1ee80..d690cec46 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphqlws.go +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_graphqlws.go @@ -7,7 +7,7 @@ import ( "github.com/gorilla/websocket" ) -// https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md +// https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md const ( graphqlwsSubprotocol = "graphql-ws" diff --git a/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_resolver_error.go b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_resolver_error.go new file mode 100644 index 000000000..cb8e3ed1a --- /dev/null +++ b/vendor/github.com/99designs/gqlgen/graphql/handler/transport/websocket_resolver_error.go @@ -0,0 +1,69 @@ +package transport + +import ( + "context" + + "github.com/vektah/gqlparser/v2/gqlerror" +) + +// A private key for context that only this package can access. This is important +// to prevent collisions between different context uses +var wsSubscriptionErrorCtxKey = &wsSubscriptionErrorContextKey{"subscription-error"} + +type wsSubscriptionErrorContextKey struct { + name string +} + +type subscriptionError struct { + errs []*gqlerror.Error +} + +// AddSubscriptionError is used to let websocket return an error message after subscription resolver returns a channel. +// for example: +// +// func (r *subscriptionResolver) Method(ctx context.Context) (<-chan *model.Message, error) { +// ch := make(chan *model.Message) +// go func() { +// defer func() { +// close(ch) +// } +// // some kind of block processing (e.g.: gRPC client streaming) +// stream, err := gRPCClientStreamRequest(ctx) +// if err != nil { +// transport.AddSubscriptionError(ctx, err) +// return // must return and close channel so websocket can send error back +// } +// for { +// m, err := stream.Recv() +// if err == io.EOF { +// return +// } +// if err != nil { +// transport.AddSubscriptionError(ctx, err) +// return // must return and close channel so websocket can send error back +// } +// ch <- m +// } +// }() +// +// return ch, nil +// } +// +// see https://github.com/99designs/gqlgen/pull/2506 for more details +func AddSubscriptionError(ctx context.Context, err *gqlerror.Error) { + subscriptionErrStruct := getSubscriptionErrorStruct(ctx) + subscriptionErrStruct.errs = append(subscriptionErrStruct.errs, err) +} + +func withSubscriptionErrorContext(ctx context.Context) context.Context { + return context.WithValue(ctx, wsSubscriptionErrorCtxKey, &subscriptionError{}) +} + +func getSubscriptionErrorStruct(ctx context.Context) *subscriptionError { + v, _ := ctx.Value(wsSubscriptionErrorCtxKey).(*subscriptionError) + return v +} + +func getSubscriptionError(ctx context.Context) []*gqlerror.Error { + return getSubscriptionErrorStruct(ctx).errs +} diff --git a/vendor/github.com/99designs/gqlgen/graphql/input.go b/vendor/github.com/99designs/gqlgen/graphql/input.go new file mode 100644 index 000000000..88c3efaa6 --- /dev/null +++ b/vendor/github.com/99designs/gqlgen/graphql/input.go @@ -0,0 +1,55 @@ +package graphql + +import ( + "context" + "errors" + "reflect" +) + +const unmarshalInputCtx key = "unmarshal_input_context" + +// BuildUnmarshalerMap returns a map of unmarshal functions of the ExecutableContext +// to use with the WithUnmarshalerMap function. +func BuildUnmarshalerMap(unmarshaler ...interface{}) map[reflect.Type]reflect.Value { + maps := make(map[reflect.Type]reflect.Value) + for _, v := range unmarshaler { + ft := reflect.TypeOf(v) + if ft.Kind() == reflect.Func { + maps[ft.Out(0)] = reflect.ValueOf(v) + } + } + + return maps +} + +// WithUnmarshalerMap returns a new context with a map from input types to their unmarshaler functions. +func WithUnmarshalerMap(ctx context.Context, maps map[reflect.Type]reflect.Value) context.Context { + return context.WithValue(ctx, unmarshalInputCtx, maps) +} + +// UnmarshalInputFromContext allows unmarshaling input object from a context. +func UnmarshalInputFromContext(ctx context.Context, raw, v interface{}) error { + m, ok := ctx.Value(unmarshalInputCtx).(map[reflect.Type]reflect.Value) + if m == nil || !ok { + return errors.New("graphql: the input context is empty") + } + + rv := reflect.ValueOf(v) + if rv.Kind() != reflect.Ptr || rv.IsNil() { + return errors.New("graphql: input must be a non-nil pointer") + } + if fn, ok := m[rv.Elem().Type()]; ok { + res := fn.Call([]reflect.Value{ + reflect.ValueOf(ctx), + reflect.ValueOf(raw), + }) + if err := res[1].Interface(); err != nil { + return err.(error) + } + + rv.Elem().Set(res[0]) + return nil + } + + return errors.New("graphql: no unmarshal function found") +} diff --git a/vendor/github.com/99designs/gqlgen/graphql/playground/altair_playground.go b/vendor/github.com/99designs/gqlgen/graphql/playground/altair_playground.go new file mode 100644 index 000000000..6928828cd --- /dev/null +++ b/vendor/github.com/99designs/gqlgen/graphql/playground/altair_playground.go @@ -0,0 +1,84 @@ +package playground + +import ( + "html/template" + "net/http" +) + +var altairPage = template.Must(template.New("altair").Parse(` + + + + + {{.title}} + + + + + + + + + +
+
+
+ Altair +
+
+ + + +
+
+
+
+ + + + + + + + +`)) + +// AltairHandler responsible for setting up the altair playground +func AltairHandler(title, endpoint string) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + err := altairPage.Execute(w, map[string]interface{}{ + "title": title, + "endpoint": endpoint, + "endpointIsAbsolute": endpointHasScheme(endpoint), + "subscriptionEndpoint": getSubscriptionEndpoint(endpoint), + "version": "5.0.5", + "cssSRI": "sha256-kZ35e5mdMYN5ALEbnsrA2CLn85Oe4hBodfsih9BqNxs=", + "mainSRI": "sha256-nWdVTcGTlBDV1L04UQnqod+AJedzBCnKHv6Ct65liHE=", + "polyfillsSRI": "sha256-1aVEg2sROcCQ/RxU3AlcPaRZhZdIWA92q2M+mdd/R4c=", + "runtimeSRI": "sha256-cK2XhXqQr0WS1Z5eKNdac0rJxTD6miC3ubd+aEVMQDk=", + }) + if err != nil { + panic(err) + } + } +} diff --git a/vendor/github.com/99designs/gqlgen/graphql/playground/playground.go b/vendor/github.com/99designs/gqlgen/graphql/playground/playground.go index 1b04a20da..08e5e4a8d 100644 --- a/vendor/github.com/99designs/gqlgen/graphql/playground/playground.go +++ b/vendor/github.com/99designs/gqlgen/graphql/playground/playground.go @@ -3,22 +3,26 @@ package playground import ( "html/template" "net/http" + "net/url" ) var page = template.Must(template.New("graphiql").Parse(` - {{.title}} - - - -
+ + {{.title}} + + + + +
Loading...
+