load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

package(
    default_visibility = ["//visibility:public"],
    licenses = ["notice"],  # Apache 2.0
)

go_library(
    name = "go_default_library",
    srcs = [
        "any_value.go",
        "bool.go",
        "bytes.go",
        "compare.go",
        "double.go",
        "duration.go",
        "err.go",
        "int.go",
        "iterator.go",
        "json_value.go",
        "format.go",
        "list.go",
        "map.go",
        "null.go",
        "object.go",
        "optional.go",
        "overflow.go",
        "provider.go",
        "string.go",
        "timestamp.go",
        "types.go",
        "uint.go",
        "unknown.go",
        "util.go",
    ],
    importpath = "github.com/google/cel-go/common/types",
    deps = [
        "//checker/decls:go_default_library",
        "//common/overloads:go_default_library",
        "//common/types/pb:go_default_library",
        "//common/types/ref:go_default_library",
        "//common/types/traits:go_default_library",
        "@dev_cel_expr//:expr",
        "@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
        "@org_golang_google_protobuf//encoding/protojson:go_default_library",
        "@org_golang_google_protobuf//proto:go_default_library",
        "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
        "@org_golang_google_protobuf//types/dynamicpb:go_default_library",
        "@org_golang_google_protobuf//types/known/anypb:go_default_library",
        "@org_golang_google_protobuf//types/known/durationpb:go_default_library",
        "@org_golang_google_protobuf//types/known/structpb:go_default_library",
        "@org_golang_google_protobuf//types/known/timestamppb:go_default_library",
        "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    size = "small",
    srcs = [
        "bool_test.go",
        "bytes_test.go",
        "double_test.go",
        "duration_test.go",
        "int_test.go",
        "json_list_test.go",
        "json_struct_test.go",
        "list_test.go",
        "map_test.go",
        "null_test.go",
        "object_test.go",
        "optional_test.go",
        "provider_test.go",
        "string_test.go",
        "timestamp_test.go",
        "types_test.go",
        "uint_test.go",
        "unknown_test.go",
        "util_test.go",
    ],
    embed = [":go_default_library"],
    deps = [
        "//common/types/ref:go_default_library",
        "//test:go_default_library",
        "//test/proto3pb:test_all_types_go_proto",
        "@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
        "@org_golang_google_protobuf//encoding/protojson:go_default_library",
        "@org_golang_google_protobuf//types/known/anypb:go_default_library",
        "@org_golang_google_protobuf//types/known/durationpb:go_default_library",
        "@org_golang_google_protobuf//types/known/timestamppb:go_default_library",
    ],
)
