@@ -29,8 +29,7 @@ import type { CelMap } from "../map.js";
2929import { RE2JS } from "@bufbuild/re2" ;
3030
3131export function matches ( this : string , pattern : string ) : boolean {
32- const re : RE2JS = RE2JS . compile ( pattern ) ;
33- return re . test ( this ) ;
32+ return RE2JS . compile ( pattern ) . test ( this ) ;
3433}
3534
3635function compareDuration (
@@ -86,99 +85,91 @@ const MAP = mapType(CelScalar.DYN, CelScalar.DYN);
8685// biome-ignore format: table
8786export default [
8887 // !
89- celFunc ( opc . LOGICAL_NOT , [ BOOL ] , BOOL , ( x ) => ! x ) ,
88+ celFunc ( opc . LOGICAL_NOT , [ BOOL ] , BOOL , ( x ) => ! x ) ,
9089 // =
91- celFunc ( opc . EQUALS , [ DYN , DYN ] , BOOL , equals ) ,
92- celFunc ( opc . NOT_EQUALS , [ DYN , DYN ] , BOOL , ( l , r ) => ! equals ( l , r ) ) ,
90+ celFunc ( opc . EQUALS , [ DYN , DYN ] , BOOL , equals ) ,
91+ celFunc ( opc . NOT_EQUALS , [ DYN , DYN ] , BOOL , ( l , r ) => ! equals ( l , r ) ) ,
9392 // <
94- celFunc ( opc . LESS , [ BOOL , BOOL ] , BOOL , ( l , r ) => l < r ) ,
95- celFunc ( opc . LESS , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) < 0 ) ,
96- celFunc ( opc . LESS , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l < r ) ,
97- celFunc ( opc . LESS , [ STRING , STRING ] , BOOL , ( l , r ) => l < r ) ,
98- celFunc ( opc . LESS , [ INT , INT ] , BOOL , ( l , r ) => l < r ) ,
99- celFunc ( opc . LESS , [ INT , UINT ] , BOOL , ( l , r ) => l < r . value ) ,
100- celFunc ( opc . LESS , [ UINT , INT ] , BOOL , ( l , r ) => l . value < r ) ,
101- celFunc ( opc . LESS , [ UINT , UINT ] , BOOL , ( l , r ) => l . value < r . value ) ,
93+ celFunc ( opc . LESS , [ BOOL , BOOL ] , BOOL , ( l , r ) => l < r ) ,
94+ celFunc ( opc . LESS , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) < 0 ) ,
95+ celFunc ( opc . LESS , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l < r ) ,
96+ celFunc ( opc . LESS , [ STRING , STRING ] , BOOL , ( l , r ) => l < r ) ,
97+ celFunc ( opc . LESS , [ INT , INT ] , BOOL , ( l , r ) => l < r ) ,
98+ celFunc ( opc . LESS , [ INT , UINT ] , BOOL , ( l , r ) => l < r . value ) ,
99+ celFunc ( opc . LESS , [ UINT , INT ] , BOOL , ( l , r ) => l . value < r ) ,
100+ celFunc ( opc . LESS , [ UINT , UINT ] , BOOL , ( l , r ) => l . value < r . value ) ,
102101 // TODO investigate: ECMAScript relational operators support mixed bigint/number operands,
103102 // but removing the coercion to number here fails the conformance test "not_lt_dyn_int_big_lossy_double"
104- celFunc ( opc . LESS , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) < r ) ,
105- celFunc ( opc . LESS , [ DOUBLE , INT ] , BOOL , ( l , r ) => l < Number ( r ) ) ,
106- celFunc ( opc . LESS , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l < Number ( r . value ) ) ,
107- celFunc ( opc . LESS , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) < r ) ,
108- celFunc ( opc . LESS , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) < 0 ) ,
109- celFunc ( opc . LESS , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) < 0 ) ,
103+ celFunc ( opc . LESS , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) < r ) ,
104+ celFunc ( opc . LESS , [ DOUBLE , INT ] , BOOL , ( l , r ) => l < Number ( r ) ) ,
105+ celFunc ( opc . LESS , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l < Number ( r . value ) ) ,
106+ celFunc ( opc . LESS , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) < r ) ,
107+ celFunc ( opc . LESS , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) < 0 ) ,
108+ celFunc ( opc . LESS , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) < 0 ) ,
110109 // <=
111- celFunc ( opc . LESS_EQUALS , [ BOOL , BOOL ] , BOOL , ( l , r ) => l <= r ) ,
112- celFunc ( opc . LESS_EQUALS , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) <= 0 ) ,
113- celFunc ( opc . LESS_EQUALS , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l <= r ) ,
114- celFunc ( opc . LESS_EQUALS , [ STRING , STRING ] , BOOL , ( l , r ) => l <= r ) ,
115- celFunc ( opc . LESS_EQUALS , [ INT , INT ] , BOOL , ( l , r ) => l <= r ) ,
116- celFunc ( opc . LESS_EQUALS , [ INT , UINT ] , BOOL , ( l , r ) => l <= r . value ) ,
117- celFunc ( opc . LESS_EQUALS , [ UINT , INT ] , BOOL , ( l , r ) => l . value <= r ) ,
118- celFunc ( opc . LESS_EQUALS , [ UINT , UINT ] , BOOL , ( l , r ) => l . value <= r . value ) ,
119- celFunc ( opc . LESS_EQUALS , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) <= r ) ,
120- celFunc ( opc . LESS_EQUALS , [ DOUBLE , INT ] , BOOL , ( l , r ) => l <= Number ( r ) ) ,
121- celFunc ( opc . LESS_EQUALS , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l <= Number ( r . value ) ) ,
122- celFunc ( opc . LESS_EQUALS , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) <= r ) ,
123- celFunc ( opc . LESS_EQUALS , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) <= 0 ) ,
124- celFunc ( opc . LESS_EQUALS , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) <= 0 ) ,
110+ celFunc ( opc . LESS_EQUALS , [ BOOL , BOOL ] , BOOL , ( l , r ) => l <= r ) ,
111+ celFunc ( opc . LESS_EQUALS , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) <= 0 ) ,
112+ celFunc ( opc . LESS_EQUALS , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l <= r ) ,
113+ celFunc ( opc . LESS_EQUALS , [ STRING , STRING ] , BOOL , ( l , r ) => l <= r ) ,
114+ celFunc ( opc . LESS_EQUALS , [ INT , INT ] , BOOL , ( l , r ) => l <= r ) ,
115+ celFunc ( opc . LESS_EQUALS , [ INT , UINT ] , BOOL , ( l , r ) => l <= r . value ) ,
116+ celFunc ( opc . LESS_EQUALS , [ UINT , INT ] , BOOL , ( l , r ) => l . value <= r ) ,
117+ celFunc ( opc . LESS_EQUALS , [ UINT , UINT ] , BOOL , ( l , r ) => l . value <= r . value ) ,
118+ celFunc ( opc . LESS_EQUALS , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) <= r ) ,
119+ celFunc ( opc . LESS_EQUALS , [ DOUBLE , INT ] , BOOL , ( l , r ) => l <= Number ( r ) ) ,
120+ celFunc ( opc . LESS_EQUALS , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l <= Number ( r . value ) ) ,
121+ celFunc ( opc . LESS_EQUALS , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) <= r ) ,
122+ celFunc ( opc . LESS_EQUALS , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) <= 0 ) ,
123+ celFunc ( opc . LESS_EQUALS , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) <= 0 ) ,
125124 // >
126- celFunc ( opc . GREATER , [ BOOL , BOOL ] , BOOL , ( l , r ) => l > r ) ,
127- celFunc ( opc . GREATER , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) > 0 ) ,
128- celFunc ( opc . GREATER , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l > r ) ,
129- celFunc ( opc . GREATER , [ STRING , STRING ] , BOOL , ( l , r ) => l > r ) ,
130- celFunc ( opc . GREATER , [ INT , INT ] , BOOL , ( l , r ) => l > r ) ,
131- celFunc ( opc . GREATER , [ INT , UINT ] , BOOL , ( l , r ) => l > r . value ) ,
132- celFunc ( opc . GREATER , [ UINT , INT ] , BOOL , ( l , r ) => l . value > r ) ,
133- celFunc ( opc . GREATER , [ UINT , UINT ] , BOOL , ( l , r ) => l . value > r . value ) ,
134- celFunc ( opc . GREATER , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) > r ) ,
135- celFunc ( opc . GREATER , [ DOUBLE , INT ] , BOOL , ( l , r ) => l > Number ( r ) ) ,
136- celFunc ( opc . GREATER , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l > Number ( r . value ) ) ,
137- celFunc ( opc . GREATER , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) > r ) ,
138- celFunc ( opc . GREATER , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) > 0 ) ,
139- celFunc ( opc . GREATER , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) > 0 ) ,
125+ celFunc ( opc . GREATER , [ BOOL , BOOL ] , BOOL , ( l , r ) => l > r ) ,
126+ celFunc ( opc . GREATER , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) > 0 ) ,
127+ celFunc ( opc . GREATER , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l > r ) ,
128+ celFunc ( opc . GREATER , [ STRING , STRING ] , BOOL , ( l , r ) => l > r ) ,
129+ celFunc ( opc . GREATER , [ INT , INT ] , BOOL , ( l , r ) => l > r ) ,
130+ celFunc ( opc . GREATER , [ INT , UINT ] , BOOL , ( l , r ) => l > r . value ) ,
131+ celFunc ( opc . GREATER , [ UINT , INT ] , BOOL , ( l , r ) => l . value > r ) ,
132+ celFunc ( opc . GREATER , [ UINT , UINT ] , BOOL , ( l , r ) => l . value > r . value ) ,
133+ celFunc ( opc . GREATER , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) > r ) ,
134+ celFunc ( opc . GREATER , [ DOUBLE , INT ] , BOOL , ( l , r ) => l > Number ( r ) ) ,
135+ celFunc ( opc . GREATER , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l > Number ( r . value ) ) ,
136+ celFunc ( opc . GREATER , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) > r ) ,
137+ celFunc ( opc . GREATER , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) > 0 ) ,
138+ celFunc ( opc . GREATER , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) > 0 ) ,
140139 // >=
141- celFunc ( opc . GREATER_EQUALS , [ BOOL , BOOL ] , BOOL , ( l , r ) => l >= r ) ,
142- celFunc ( opc . GREATER_EQUALS , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) >= 0 ) ,
143- celFunc ( opc . GREATER_EQUALS , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l >= r ) ,
144- celFunc ( opc . GREATER_EQUALS , [ STRING , STRING ] , BOOL , ( l , r ) => l >= r ) ,
145- celFunc ( opc . GREATER_EQUALS , [ INT , INT ] , BOOL , ( l , r ) => l >= r ) ,
146- celFunc ( opc . GREATER_EQUALS , [ INT , UINT ] , BOOL , ( l , r ) => l >= r . value ) ,
147- celFunc ( opc . GREATER_EQUALS , [ UINT , INT ] , BOOL , ( l , r ) => l . value >= r ) ,
148- celFunc ( opc . GREATER_EQUALS , [ UINT , UINT ] , BOOL , ( l , r ) => l . value >= r . value ) ,
149- celFunc ( opc . GREATER_EQUALS , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) >= r ) ,
150- celFunc ( opc . GREATER_EQUALS , [ DOUBLE , INT ] , BOOL , ( l , r ) => l >= Number ( r ) ) ,
151- celFunc ( opc . GREATER_EQUALS , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l >= Number ( r . value ) ) ,
152- celFunc ( opc . GREATER_EQUALS , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) >= r ) ,
153- celFunc ( opc . GREATER_EQUALS , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) >= 0 ) ,
154- celFunc ( opc . GREATER_EQUALS , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) >= 0 ) ,
140+ celFunc ( opc . GREATER_EQUALS , [ BOOL , BOOL ] , BOOL , ( l , r ) => l >= r ) ,
141+ celFunc ( opc . GREATER_EQUALS , [ BYTES , BYTES ] , BOOL , ( l , r ) => compareBytes ( l , r ) >= 0 ) ,
142+ celFunc ( opc . GREATER_EQUALS , [ DOUBLE , DOUBLE ] , BOOL , ( l , r ) => l >= r ) ,
143+ celFunc ( opc . GREATER_EQUALS , [ STRING , STRING ] , BOOL , ( l , r ) => l >= r ) ,
144+ celFunc ( opc . GREATER_EQUALS , [ INT , INT ] , BOOL , ( l , r ) => l >= r ) ,
145+ celFunc ( opc . GREATER_EQUALS , [ INT , UINT ] , BOOL , ( l , r ) => l >= r . value ) ,
146+ celFunc ( opc . GREATER_EQUALS , [ UINT , INT ] , BOOL , ( l , r ) => l . value >= r ) ,
147+ celFunc ( opc . GREATER_EQUALS , [ UINT , UINT ] , BOOL , ( l , r ) => l . value >= r . value ) ,
148+ celFunc ( opc . GREATER_EQUALS , [ INT , DOUBLE ] , BOOL , ( l , r ) => Number ( l ) >= r ) ,
149+ celFunc ( opc . GREATER_EQUALS , [ DOUBLE , INT ] , BOOL , ( l , r ) => l >= Number ( r ) ) ,
150+ celFunc ( opc . GREATER_EQUALS , [ DOUBLE , UINT ] , BOOL , ( l , r ) => l >= Number ( r . value ) ) ,
151+ celFunc ( opc . GREATER_EQUALS , [ UINT , DOUBLE ] , BOOL , ( l , r ) => Number ( l . value ) >= r ) ,
152+ celFunc ( opc . GREATER_EQUALS , [ DURATION , DURATION ] , BOOL , ( l , r ) => compareDuration ( l , r ) >= 0 ) ,
153+ celFunc ( opc . GREATER_EQUALS , [ TIMESTAMP , TIMESTAMP ] , BOOL , ( l , r ) => compareTimestamp ( l , r ) >= 0 ) ,
155154 // size
156- celFunc ( olc . SIZE , [ BYTES ] , INT , ( x ) => BigInt ( x . length ) ) ,
157- celFunc ( olc . SIZE , [ LIST ] , INT , ( x ) => BigInt ( x . size ) ) ,
158- celFunc ( olc . SIZE , [ STRING ] , INT , ( x ) => BigInt ( [ ...x ] . length ) ) ,
159- celFunc ( olc . SIZE , [ MAP ] , INT , ( x ) => BigInt ( x . size ) ) ,
160- celMethod ( olc . SIZE , BYTES , [ ] , INT , function ( ) {
161- return BigInt ( this . length )
162- } ) ,
163- celMethod ( olc . SIZE , LIST , [ ] , INT , function ( ) {
164- return BigInt ( this . size )
165- } ) ,
166- celMethod ( olc . SIZE , STRING , [ ] , INT , function ( ) {
167- return BigInt ( [ ...this ] . length )
168- } ) ,
169- celMethod ( olc . SIZE , MAP , [ ] , INT , function ( ) {
170- return BigInt ( this . size )
171- } ) ,
155+ celFunc ( olc . SIZE , [ BYTES ] , INT , ( x ) => BigInt ( x . length ) ) ,
156+ celFunc ( olc . SIZE , [ LIST ] , INT , ( x ) => BigInt ( x . size ) ) ,
157+ celFunc ( olc . SIZE , [ STRING ] , INT , ( x ) => BigInt ( [ ...x ] . length ) ) ,
158+ celFunc ( olc . SIZE , [ MAP ] , INT , ( x ) => BigInt ( x . size ) ) ,
159+ celMethod ( olc . SIZE , BYTES , [ ] , INT , function ( ) { return BigInt ( this . length ) } ) ,
160+ celMethod ( olc . SIZE , LIST , [ ] , INT , function ( ) { return BigInt ( this . size ) } ) ,
161+ celMethod ( olc . SIZE , STRING , [ ] , INT , function ( ) { return BigInt ( [ ...this ] . length ) } ) ,
162+ celMethod ( olc . SIZE , MAP , [ ] , INT , function ( ) { return BigInt ( this . size ) } ) ,
172163 // in
173- celFunc ( opc . IN , [ DYN , LIST ] , BOOL , inList ) ,
174- celFunc ( opc . IN , [ STRING , MAP ] , BOOL , inMap ) ,
175- celFunc ( opc . IN , [ DOUBLE , MAP ] , BOOL , inMap ) ,
176- celFunc ( opc . IN , [ INT , MAP ] , BOOL , inMap ) ,
177- celFunc ( opc . IN , [ BOOL , MAP ] , BOOL , inMap ) ,
178- celFunc ( opc . IN , [ UINT , MAP ] , BOOL , inMap ) ,
164+ celFunc ( opc . IN , [ DYN , LIST ] , BOOL , inList ) ,
165+ celFunc ( opc . IN , [ STRING , MAP ] , BOOL , inMap ) ,
166+ celFunc ( opc . IN , [ DOUBLE , MAP ] , BOOL , inMap ) ,
167+ celFunc ( opc . IN , [ INT , MAP ] , BOOL , inMap ) ,
168+ celFunc ( opc . IN , [ BOOL , MAP ] , BOOL , inMap ) ,
169+ celFunc ( opc . IN , [ UINT , MAP ] , BOOL , inMap ) ,
179170 // string.*
180- celMethod ( olc . CONTAINS , STRING , [ STRING ] , BOOL , String . prototype . includes ) ,
181- celMethod ( olc . ENDS_WITH , STRING , [ STRING ] , BOOL , String . prototype . endsWith ) ,
182- celMethod ( olc . STARTS_WITH , STRING , [ STRING ] , BOOL , String . prototype . startsWith ) ,
183- celMethod ( olc . MATCHES , STRING , [ STRING ] , BOOL , matches ) ,
171+ celMethod ( olc . CONTAINS , STRING , [ STRING ] , BOOL , String . prototype . includes ) ,
172+ celMethod ( olc . ENDS_WITH , STRING , [ STRING ] , BOOL , String . prototype . endsWith ) ,
173+ celMethod ( olc . STARTS_WITH , STRING , [ STRING ] , BOOL , String . prototype . startsWith ) ,
174+ celMethod ( olc . MATCHES , STRING , [ STRING ] , BOOL , matches ) ,
184175] ;
0 commit comments