@bufbuild/cel-spec
Version:
CEL definitions and test data
1,157 lines • 735 kB
TypeScript
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