UNPKG

@bufbuild/cel-spec

Version:

CEL definitions and test data

1,157 lines 735 kB
export declare const testdataJson: readonly [{ readonly name: "basic"; readonly description: "Basic conformance tests that all implementations should pass."; readonly section: readonly [{ readonly name: "self_eval_zeroish"; readonly description: "Simple self-evaluating forms to zero-ish values."; readonly test: readonly [{ readonly name: "self_eval_int_zero"; readonly expr: "0"; readonly value: { readonly int64Value: "0"; }; }, { readonly name: "self_eval_uint_zero"; readonly expr: "0u"; readonly value: { readonly uint64Value: "0"; }; }, { readonly name: "self_eval_uint_alias_zero"; readonly expr: "0U"; readonly value: { readonly uint64Value: "0"; }; }, { readonly name: "self_eval_float_zero"; readonly expr: "0.0"; readonly value: { readonly doubleValue: 0; }; }, { readonly name: "self_eval_float_zerowithexp"; readonly expr: "0e+0"; readonly value: { readonly doubleValue: 0; }; }, { readonly name: "self_eval_string_empty"; readonly expr: "''"; readonly value: { readonly stringValue: ""; }; }, { readonly name: "self_eval_string_empty_quotes"; readonly expr: "\"\""; readonly value: { readonly stringValue: ""; }; }, { readonly name: "self_eval_string_raw_prefix"; readonly expr: "r\"\""; readonly value: { readonly stringValue: ""; }; }, { readonly name: "self_eval_bytes_empty"; readonly expr: "b\"\""; readonly value: { readonly bytesValue: ""; }; }, { readonly name: "self_eval_bool_false"; readonly expr: "false"; readonly value: { readonly boolValue: false; }; }, { readonly name: "self_eval_null"; readonly expr: "null"; readonly value: { readonly nullValue: null; }; }, { readonly name: "self_eval_empty_list"; readonly expr: "[]"; readonly value: { readonly listValue: {}; }; }, { readonly name: "self_eval_empty_map"; readonly expr: "{}"; readonly value: { readonly mapValue: {}; }; }, { readonly name: "self_eval_string_raw_prefix_triple_double"; readonly expr: "r\"\"\"\"\"\""; readonly value: { readonly stringValue: ""; }; }, { readonly name: "self_eval_string_raw_prefix_triple_single"; readonly expr: "r''''''"; readonly value: { readonly stringValue: ""; }; }]; }, { readonly name: "self_eval_nonzeroish"; readonly description: "Simple self-evaluating forms to non-zero-ish values."; readonly test: readonly [{ readonly name: "self_eval_int_nonzero"; readonly expr: "42"; readonly value: { readonly int64Value: "42"; }; }, { readonly name: "self_eval_uint_nonzero"; readonly expr: "123456789u"; readonly value: { readonly uint64Value: "123456789"; }; }, { readonly name: "self_eval_uint_alias_nonzero"; readonly expr: "123456789U"; readonly value: { readonly uint64Value: "123456789"; }; }, { readonly name: "self_eval_int_negative_min"; readonly expr: "-9223372036854775808"; readonly value: { readonly int64Value: "-9223372036854775808"; }; }, { readonly name: "self_eval_float_negative_exp"; readonly expr: "-2.3e+1"; readonly value: { readonly doubleValue: -23; }; }, { readonly name: "self_eval_string_excl"; readonly expr: "\"!\""; readonly value: { readonly stringValue: "!"; }; }, { readonly name: "self_eval_string_escape"; readonly expr: "'\\''"; readonly value: { readonly stringValue: "'"; }; }, { readonly name: "self_eval_bytes_escape"; readonly expr: "b'ÿ'"; readonly value: { readonly bytesValue: "w78="; }; }, { readonly name: "self_eval_bytes_invalid_utf8"; readonly expr: "b'\\000\\xff'"; readonly value: { readonly bytesValue: "AP8="; }; }, { readonly name: "self_eval_list_singleitem"; readonly expr: "[-1]"; readonly value: { readonly listValue: { readonly values: readonly [{ readonly int64Value: "-1"; }]; }; }; }, { readonly name: "self_eval_map_singleitem"; readonly expr: "{\"k\":\"v\"}"; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "k"; }; readonly value: { readonly stringValue: "v"; }; }]; }; }; }, { readonly name: "self_eval_bool_true"; readonly expr: "true"; readonly value: { readonly boolValue: true; }; }, { readonly name: "self_eval_int_hex"; readonly expr: "0x55555555"; readonly value: { readonly int64Value: "1431655765"; }; }, { readonly name: "self_eval_int_hex_negative"; readonly expr: "-0x55555555"; readonly value: { readonly int64Value: "-1431655765"; }; }, { readonly name: "self_eval_uint_hex"; readonly expr: "0x55555555u"; readonly value: { readonly uint64Value: "1431655765"; }; }, { readonly name: "self_eval_uint_alias_hex"; readonly expr: "0x55555555U"; readonly value: { readonly uint64Value: "1431655765"; }; }, { readonly name: "self_eval_unicode_escape_four"; readonly expr: "\"\\u270c\""; readonly value: { readonly stringValue: "✌"; }; }, { readonly name: "self_eval_unicode_escape_eight"; readonly expr: "\"\\U0001f431\""; readonly value: { readonly stringValue: "🐱"; }; }, { readonly name: "self_eval_ascii_escape_seq"; readonly expr: "\"\\a\\b\\f\\n\\r\\t\\v\\\"\\'\\\\\""; readonly value: { readonly stringValue: "\u0007\b\f\n\r\t\v\"'\\"; }; }]; }, { readonly name: "variables"; readonly description: "Variable lookups."; readonly test: readonly [{ readonly name: "self_eval_bound_lookup"; readonly expr: "x"; readonly typeEnv: readonly [{ readonly name: "x"; readonly ident: { readonly type: { readonly primitive: "INT64"; }; }; }]; readonly bindings: { readonly x: { readonly value: { readonly int64Value: "123"; }; }; }; readonly value: { readonly int64Value: "123"; }; }, { readonly name: "self_eval_unbound_lookup"; readonly description: "An unbound variable should be marked as an error during execution. See google/cel-go#154"; readonly expr: "x"; readonly disableCheck: true; readonly evalError: { readonly errors: readonly [{ readonly message: "undeclared reference to 'x' (in container '')"; }]; }; }, { readonly name: "unbound_is_runtime_error"; readonly description: "Make sure we can short-circuit around an unbound variable."; readonly expr: "x || true"; readonly disableCheck: true; readonly value: { readonly boolValue: true; }; }]; }, { readonly name: "functions"; readonly description: "Basic mechanisms for function calls."; readonly test: readonly [{ readonly name: "binop"; readonly expr: "1 + 1"; readonly value: { readonly int64Value: "2"; }; }, { readonly name: "unbound"; readonly expr: "f_unknown(17)"; readonly disableCheck: true; readonly evalError: { readonly errors: readonly [{ readonly message: "unbound function"; }]; }; }, { readonly name: "unbound_is_runtime_error"; readonly expr: "f_unknown(17) || true"; readonly disableCheck: true; readonly value: { readonly boolValue: true; }; }]; }, { readonly name: "reserved_const"; readonly description: "Named constants should never be shadowed by identifiers."; readonly test: readonly [{ readonly name: "false"; readonly expr: "false"; readonly typeEnv: readonly [{ readonly name: "false"; readonly ident: { readonly type: { readonly primitive: "BOOL"; }; }; }]; readonly bindings: { readonly false: { readonly value: { readonly boolValue: true; }; }; }; readonly value: { readonly boolValue: false; }; }, { readonly name: "true"; readonly expr: "true"; readonly typeEnv: readonly [{ readonly name: "true"; readonly ident: { readonly type: { readonly primitive: "BOOL"; }; }; }]; readonly bindings: { readonly true: { readonly value: { readonly boolValue: false; }; }; }; readonly value: { readonly boolValue: true; }; }, { readonly name: "null"; readonly expr: "null"; readonly typeEnv: readonly [{ readonly name: "null"; readonly ident: { readonly type: { readonly primitive: "BOOL"; }; }; }]; readonly bindings: { readonly null: { readonly value: { readonly boolValue: true; }; }; }; readonly value: { readonly nullValue: null; }; }]; }]; }, { readonly name: "bindings_ext"; readonly description: "Tests for the bindings extension library."; readonly section: readonly [{ readonly name: "bind"; readonly test: readonly [{ readonly name: "boolean_literal"; readonly expr: "cel.bind(t, true, t)"; readonly value: { readonly boolValue: true; }; }, { readonly name: "string_concat"; readonly expr: "cel.bind(msg, \"hello\", msg + msg + msg)"; readonly value: { readonly stringValue: "hellohellohello"; }; }, { readonly name: "bind_nested"; readonly expr: "cel.bind(t1, true, cel.bind(t2, true, t1 && t2))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "macro_exists"; readonly expr: "cel.bind(valid_elems, [1, 2, 3], [3, 4, 5].exists(e, e in valid_elems))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "macro_not_exists"; readonly expr: "cel.bind(valid_elems, [1, 2, 3], ![4, 5].exists(e, e in valid_elems))"; readonly value: { readonly boolValue: true; }; }]; }]; }, { readonly name: "block_ext"; readonly description: "Tests for cel.block."; readonly section: readonly [{ readonly name: "basic"; readonly test: readonly [{ readonly name: "int_add"; readonly expr: "cel.block([1, cel.index(0) + 1, cel.index(1) + 1, cel.index(2) + 1], cel.index(3))"; readonly value: { readonly int64Value: "4"; }; }, { readonly name: "size_1"; readonly expr: "cel.block([[1, 2], size(cel.index(0)), cel.index(1) + cel.index(1), cel.index(2) + 1], cel.index(3))"; readonly value: { readonly int64Value: "5"; }; }, { readonly name: "size_2"; readonly expr: "cel.block([[1, 2], size(cel.index(0)), 2 + cel.index(1), cel.index(2) + cel.index(1), cel.index(3) + 1], cel.index(4))"; readonly value: { readonly int64Value: "7"; }; }, { readonly name: "size_3"; readonly expr: "cel.block([[0], size(cel.index(0)), [1, 2], size(cel.index(2)), cel.index(1) + cel.index(1), cel.index(4) + cel.index(3), cel.index(5) + cel.index(3)], cel.index(6))"; readonly value: { readonly int64Value: "6"; }; }, { readonly name: "size_4"; readonly expr: "cel.block([[0], size(cel.index(0)), [1, 2], size(cel.index(2)), [1, 2, 3], size(cel.index(4)), 5 + cel.index(1), cel.index(6) + cel.index(1), cel.index(7) + cel.index(3), cel.index(8) + cel.index(3), cel.index(9) + cel.index(5), cel.index(10) + cel.index(5)], cel.index(11))"; readonly value: { readonly int64Value: "17"; }; }, { readonly name: "timestamp"; readonly expr: "cel.block([timestamp(1000000000), int(cel.index(0)), timestamp(cel.index(1)), cel.index(2).getFullYear(), timestamp(50), int(cel.index(4)), timestamp(cel.index(5)), timestamp(200), int(cel.index(7)), timestamp(cel.index(8)), cel.index(9).getFullYear(), timestamp(75), int(cel.index(11)), timestamp(cel.index(12)), cel.index(13).getFullYear(), cel.index(3) + cel.index(14), cel.index(6).getFullYear(), cel.index(15) + cel.index(16), cel.index(17) + cel.index(3), cel.index(6).getSeconds(), cel.index(18) + cel.index(19), cel.index(20) + cel.index(10), cel.index(21) + cel.index(10), cel.index(13).getMinutes(), cel.index(22) + cel.index(23), cel.index(24) + cel.index(3)], cel.index(25))"; readonly value: { readonly int64Value: "13934"; }; }, { readonly name: "map_index"; readonly expr: "cel.block([{\"a\": 2}, cel.index(0)[\"a\"], cel.index(1) * cel.index(1), cel.index(1) + cel.index(2)], cel.index(3))"; readonly value: { readonly int64Value: "6"; }; }, { readonly name: "nested_map_construction"; readonly expr: "cel.block([{\"b\": 1}, {\"e\": cel.index(0)}], {\"a\": cel.index(0), \"c\": cel.index(0), \"d\": cel.index(1), \"e\": cel.index(1)})"; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "a"; }; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "b"; }; readonly value: { readonly int64Value: "1"; }; }]; }; }; }, { readonly key: { readonly stringValue: "c"; }; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "b"; }; readonly value: { readonly int64Value: "1"; }; }]; }; }; }, { readonly key: { readonly stringValue: "d"; }; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "e"; }; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "b"; }; readonly value: { readonly int64Value: "1"; }; }]; }; }; }]; }; }; }, { readonly key: { readonly stringValue: "e"; }; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "e"; }; readonly value: { readonly mapValue: { readonly entries: readonly [{ readonly key: { readonly stringValue: "b"; }; readonly value: { readonly int64Value: "1"; }; }]; }; }; }]; }; }; }]; }; }; }, { readonly name: "nested_list_construction"; readonly expr: "cel.block([[1, 2, 3, 4], [1, 2], [cel.index(1), cel.index(0)]], [1, cel.index(0), 2, cel.index(0), 5, cel.index(0), 7, cel.index(2), cel.index(1)])"; readonly value: { readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }, { readonly int64Value: "2"; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }, { readonly int64Value: "5"; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }, { readonly int64Value: "7"; }, { readonly listValue: { readonly values: readonly [{ readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly int64Value: "2"; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }, { readonly int64Value: "2"; }]; }; }]; }; }; }, { readonly name: "select"; readonly expr: "cel.block([msg.single_int64, cel.index(0) + cel.index(0)], cel.index(1))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "6"; }; }, { readonly name: "select_nested_1"; readonly expr: "cel.block([msg.oneof_type, cel.index(0).payload, cel.index(1).single_int64, cel.index(1).single_int32, cel.index(2) + cel.index(3), cel.index(4) + cel.index(2), msg.single_int64, cel.index(5) + cel.index(6), cel.index(1).oneof_type, cel.index(8).payload, cel.index(9).single_int64, cel.index(7) + cel.index(10)], cel.index(11))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "31"; }; }, { readonly name: "select_nested_2"; readonly expr: "cel.block([msg.oneof_type, cel.index(0).payload, cel.index(1).oneof_type, cel.index(2).payload, cel.index(3).oneof_type, cel.index(4).payload, cel.index(5).oneof_type, cel.index(6).payload, cel.index(7).single_bool, true || cel.index(8), cel.index(4).child, cel.index(10).child, cel.index(11).payload, cel.index(12).single_bool], cel.index(9) || cel.index(13))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly boolValue: true; }; }, { readonly name: "select_nested_message_map_index_1"; readonly expr: "cel.block([msg.oneof_type, cel.index(0).payload, cel.index(1).map_int32_int64, cel.index(2)[1], cel.index(3) + cel.index(3), cel.index(4) + cel.index(3)], cel.index(5))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "15"; }; }, { readonly name: "select_nested_message_map_index_2"; readonly expr: "cel.block([msg.oneof_type, cel.index(0).payload, cel.index(1).map_int32_int64, cel.index(2)[0], cel.index(2)[1], cel.index(3) + cel.index(4), cel.index(2)[2], cel.index(5) + cel.index(6)], cel.index(7))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "8"; }; }, { readonly name: "ternary"; readonly expr: "cel.block([msg.single_int64, cel.index(0) > 0, cel.index(1) ? cel.index(0) : 0], cel.index(2))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "3"; }; }, { readonly name: "nested_ternary"; readonly expr: "cel.block([msg.single_int64, msg.single_int32, cel.index(0) > 0, cel.index(1) > 0, cel.index(0) + cel.index(1), cel.index(3) ? cel.index(4) : 0, cel.index(2) ? cel.index(5) : 0], cel.index(6))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "8"; }; }, { readonly name: "multiple_macros_1"; readonly expr: "cel.block([[1].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) > 0), size([cel.index(0)]), [2].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) > 1), size([cel.index(2)])], cel.index(1) + cel.index(1) + cel.index(3) + cel.index(3))"; readonly value: { readonly int64Value: "4"; }; }, { readonly name: "multiple_macros_2"; readonly expr: "cel.block([[1].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) > 0), [cel.index(0)], ['a'].exists(cel.iterVar(0, 1), cel.iterVar(0, 1) == 'a'), [cel.index(2)]], cel.index(1) + cel.index(1) + cel.index(3) + cel.index(3))"; readonly value: { readonly listValue: { readonly values: readonly [{ readonly boolValue: true; }, { readonly boolValue: true; }, { readonly boolValue: true; }, { readonly boolValue: true; }]; }; }; }, { readonly name: "multiple_macros_3"; readonly expr: "cel.block([[1].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) > 0)], cel.index(0) && cel.index(0) && [1].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) > 1) && [2].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) > 1))"; readonly value: { readonly boolValue: false; }; }, { readonly name: "nested_macros_1"; readonly expr: "cel.block([[1, 2, 3]], cel.index(0).map(cel.iterVar(0, 0), cel.index(0).map(cel.iterVar(1, 0), cel.iterVar(1, 0) + 1)))"; readonly value: { readonly listValue: { readonly values: readonly [{ readonly listValue: { readonly values: readonly [{ readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "2"; }, { readonly int64Value: "3"; }, { readonly int64Value: "4"; }]; }; }]; }; }; }, { readonly name: "nested_macros_2"; readonly expr: "[1, 2].map(cel.iterVar(0, 0), [1, 2, 3].filter(cel.iterVar(1, 0), cel.iterVar(1, 0) == cel.iterVar(0, 0)))"; readonly value: { readonly listValue: { readonly values: readonly [{ readonly listValue: { readonly values: readonly [{ readonly int64Value: "1"; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly int64Value: "2"; }]; }; }]; }; }; }, { readonly name: "adjacent_macros"; readonly expr: "cel.block([[1, 2, 3], cel.index(0).map(cel.iterVar(0, 0), cel.index(0).map(cel.iterVar(1, 0), cel.iterVar(1, 0) + 1))], cel.index(1) == cel.index(1))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "macro_shadowed_variable_1"; readonly expr: "cel.block([x - 1, cel.index(0) > 3], [cel.index(1) ? cel.index(0) : 5].exists(cel.iterVar(0, 0), cel.iterVar(0, 0) - 1 > 3) || cel.index(1))"; readonly typeEnv: readonly [{ readonly name: "x"; readonly ident: { readonly type: { readonly primitive: "INT64"; }; }; }]; readonly bindings: { readonly x: { readonly value: { readonly int64Value: "5"; }; }; }; readonly value: { readonly boolValue: true; }; }, { readonly name: "macro_shadowed_variable_2"; readonly expr: "['foo', 'bar'].map(cel.iterVar(1, 0), [cel.iterVar(1, 0) + cel.iterVar(1, 0), cel.iterVar(1, 0) + cel.iterVar(1, 0)]).map(cel.iterVar(0, 0), [cel.iterVar(0, 0) + cel.iterVar(0, 0), cel.iterVar(0, 0) + cel.iterVar(0, 0)])"; readonly typeEnv: readonly [{ readonly name: "x"; readonly ident: { readonly type: { readonly primitive: "INT64"; }; }; }]; readonly bindings: { readonly x: { readonly value: { readonly int64Value: "5"; }; }; }; readonly value: { readonly listValue: { readonly values: readonly [{ readonly listValue: { readonly values: readonly [{ readonly listValue: { readonly values: readonly [{ readonly stringValue: "foofoo"; }, { readonly stringValue: "foofoo"; }, { readonly stringValue: "foofoo"; }, { readonly stringValue: "foofoo"; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly stringValue: "foofoo"; }, { readonly stringValue: "foofoo"; }, { readonly stringValue: "foofoo"; }, { readonly stringValue: "foofoo"; }]; }; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly listValue: { readonly values: readonly [{ readonly stringValue: "barbar"; }, { readonly stringValue: "barbar"; }, { readonly stringValue: "barbar"; }, { readonly stringValue: "barbar"; }]; }; }, { readonly listValue: { readonly values: readonly [{ readonly stringValue: "barbar"; }, { readonly stringValue: "barbar"; }, { readonly stringValue: "barbar"; }, { readonly stringValue: "barbar"; }]; }; }]; }; }]; }; }; }, { readonly name: "inclusion_list"; readonly expr: "cel.block([[1, 2, 3], 1 in cel.index(0), 2 in cel.index(0), cel.index(1) && cel.index(2), [3, cel.index(0)], 3 in cel.index(4), cel.index(5) && cel.index(1)], cel.index(3) && cel.index(6))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "inclusion_map"; readonly expr: "cel.block([{true: false}, {\"a\": 1, 2: cel.index(0), 3: cel.index(0)}], 2 in cel.index(1))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "presence_test"; readonly expr: "cel.block([{\"a\": true}, has(cel.index(0).a), cel.index(0)[\"a\"]], cel.index(1) && cel.index(2))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "presence_test_2"; readonly expr: "cel.block([{\"a\": true}, has(cel.index(0).a)], cel.index(1) && cel.index(1))"; readonly value: { readonly boolValue: true; }; }, { readonly name: "presence_test_with_ternary"; readonly expr: "cel.block([msg.oneof_type, has(cel.index(0).payload), cel.index(0).payload, cel.index(2).single_int64, cel.index(1) ? cel.index(3) : 0], cel.index(4))"; readonly typeEnv: readonly [{ readonly name: "msg"; readonly ident: { readonly type: { readonly messageType: "cel.expr.conformance.proto3.TestAllTypes"; }; }; }]; readonly bindings: { readonly msg: { readonly value: { readonly objectValue: { readonly "@type": "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes"; readonly singleInt32: 5; readonly singleInt64: "3"; readonly oneofType: { readonly payload: { readonly singleInt32: 8; readonly singleInt64: "10"; readonly mapInt32Int64: { readonly "0": "1"; readonly "1": "5"; readonly "2": "2"; }; readonly mapStringString: { readonly key: "A"; }; }; }; }; }; }; }; readonly value: { readonly int64Value: "10"; }; }, { readonly name: "presence_test_with_ternary_2"; readonly expr: "cel.block([msg.oneof_type, cel.index(0).payload, cel.index(1).single_int64, has(cel.index(0).payload), cel.index(2) * 0, cel.index(3) ? cel.index(2) : cel.index(4)], cel.index(5))"; readonly typeEnv: readonly [{ readonly name: "msg"; reado