@tinqerjs/tinqer 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/expressions/expression.d.ts +313 -0
- package/dist/expressions/expression.d.ts.map +1 -0
- package/dist/expressions/expression.js +56 -0
- package/dist/expressions/expression.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/linq/database-context.d.ts +18 -0
- package/dist/linq/database-context.d.ts.map +1 -0
- package/dist/linq/database-context.js +23 -0
- package/dist/linq/database-context.js.map +1 -0
- package/dist/linq/database-schema.d.ts +18 -0
- package/dist/linq/database-schema.d.ts.map +1 -0
- package/dist/linq/database-schema.js +23 -0
- package/dist/linq/database-schema.js.map +1 -0
- package/dist/linq/deletable.d.ts +30 -0
- package/dist/linq/deletable.d.ts.map +1 -0
- package/dist/linq/deletable.js +46 -0
- package/dist/linq/deletable.js.map +1 -0
- package/dist/linq/delete-from.d.ts +19 -0
- package/dist/linq/delete-from.d.ts.map +1 -0
- package/dist/linq/delete-from.js +11 -0
- package/dist/linq/delete-from.js.map +1 -0
- package/dist/linq/from.d.ts +19 -0
- package/dist/linq/from.d.ts.map +1 -0
- package/dist/linq/from.js +11 -0
- package/dist/linq/from.js.map +1 -0
- package/dist/linq/functions.d.ts +96 -0
- package/dist/linq/functions.d.ts.map +1 -0
- package/dist/linq/functions.js +136 -0
- package/dist/linq/functions.js.map +1 -0
- package/dist/linq/grouping.d.ts +26 -0
- package/dist/linq/grouping.d.ts.map +1 -0
- package/dist/linq/grouping.js +47 -0
- package/dist/linq/grouping.js.map +1 -0
- package/dist/linq/insert-into.d.ts +19 -0
- package/dist/linq/insert-into.d.ts.map +1 -0
- package/dist/linq/insert-into.js +11 -0
- package/dist/linq/insert-into.js.map +1 -0
- package/dist/linq/insertable.d.ts +30 -0
- package/dist/linq/insertable.d.ts.map +1 -0
- package/dist/linq/insertable.js +37 -0
- package/dist/linq/insertable.js.map +1 -0
- package/dist/linq/query-builder.d.ts +24 -0
- package/dist/linq/query-builder.d.ts.map +1 -0
- package/dist/linq/query-builder.js +21 -0
- package/dist/linq/query-builder.js.map +1 -0
- package/dist/linq/queryable.d.ts +61 -0
- package/dist/linq/queryable.d.ts.map +1 -0
- package/dist/linq/queryable.js +148 -0
- package/dist/linq/queryable.js.map +1 -0
- package/dist/linq/terminal-query.d.ts +10 -0
- package/dist/linq/terminal-query.d.ts.map +1 -0
- package/dist/linq/terminal-query.js +12 -0
- package/dist/linq/terminal-query.js.map +1 -0
- package/dist/linq/updatable.d.ts +57 -0
- package/dist/linq/updatable.d.ts.map +1 -0
- package/dist/linq/updatable.js +84 -0
- package/dist/linq/updatable.js.map +1 -0
- package/dist/linq/update.d.ts +19 -0
- package/dist/linq/update.d.ts.map +1 -0
- package/dist/linq/update.js +11 -0
- package/dist/linq/update.js.map +1 -0
- package/dist/parser/ast-types.d.ts +114 -0
- package/dist/parser/ast-types.d.ts.map +1 -0
- package/dist/parser/ast-types.js +6 -0
- package/dist/parser/ast-types.js.map +1 -0
- package/dist/parser/ast-visitor.d.ts +32 -0
- package/dist/parser/ast-visitor.d.ts.map +1 -0
- package/dist/parser/ast-visitor.js +666 -0
- package/dist/parser/ast-visitor.js.map +1 -0
- package/dist/parser/normalize-joins.d.ts +3 -0
- package/dist/parser/normalize-joins.d.ts.map +1 -0
- package/dist/parser/normalize-joins.js +109 -0
- package/dist/parser/normalize-joins.js.map +1 -0
- package/dist/parser/normalize-window-filters.d.ts +13 -0
- package/dist/parser/normalize-window-filters.d.ts.map +1 -0
- package/dist/parser/normalize-window-filters.js +212 -0
- package/dist/parser/normalize-window-filters.js.map +1 -0
- package/dist/parser/oxc-parser.d.ts +11 -0
- package/dist/parser/oxc-parser.d.ts.map +1 -0
- package/dist/parser/oxc-parser.js +27 -0
- package/dist/parser/oxc-parser.js.map +1 -0
- package/dist/parser/parse-cache-config.d.ts +31 -0
- package/dist/parser/parse-cache-config.d.ts.map +1 -0
- package/dist/parser/parse-cache-config.js +33 -0
- package/dist/parser/parse-cache-config.js.map +1 -0
- package/dist/parser/parse-cache.d.ts +65 -0
- package/dist/parser/parse-cache.d.ts.map +1 -0
- package/dist/parser/parse-cache.js +146 -0
- package/dist/parser/parse-cache.js.map +1 -0
- package/dist/parser/parse-query.d.ts +24 -0
- package/dist/parser/parse-query.d.ts.map +1 -0
- package/dist/parser/parse-query.js +118 -0
- package/dist/parser/parse-query.js.map +1 -0
- package/dist/parser/types.d.ts +11 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +2 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/plans/delete-plan.d.ts +44 -0
- package/dist/plans/delete-plan.d.ts.map +1 -0
- package/dist/plans/delete-plan.js +209 -0
- package/dist/plans/delete-plan.js.map +1 -0
- package/dist/plans/insert-plan.d.ts +50 -0
- package/dist/plans/insert-plan.d.ts.map +1 -0
- package/dist/plans/insert-plan.js +240 -0
- package/dist/plans/insert-plan.js.map +1 -0
- package/dist/plans/plan-execution.d.ts +39 -0
- package/dist/plans/plan-execution.d.ts.map +1 -0
- package/dist/plans/plan-execution.js +32 -0
- package/dist/plans/plan-execution.js.map +1 -0
- package/dist/plans/select-plan.d.ts +74 -0
- package/dist/plans/select-plan.d.ts.map +1 -0
- package/dist/plans/select-plan.js +551 -0
- package/dist/plans/select-plan.js.map +1 -0
- package/dist/plans/update-plan.d.ts +61 -0
- package/dist/plans/update-plan.d.ts.map +1 -0
- package/dist/plans/update-plan.js +297 -0
- package/dist/plans/update-plan.js.map +1 -0
- package/dist/query-tree/operations.d.ts +430 -0
- package/dist/query-tree/operations.d.ts.map +1 -0
- package/dist/query-tree/operations.js +8 -0
- package/dist/query-tree/operations.js.map +1 -0
- package/dist/visitors/aggregates/average.d.ts +11 -0
- package/dist/visitors/aggregates/average.d.ts.map +1 -0
- package/dist/visitors/aggregates/average.js +56 -0
- package/dist/visitors/aggregates/average.js.map +1 -0
- package/dist/visitors/aggregates/max.d.ts +11 -0
- package/dist/visitors/aggregates/max.d.ts.map +1 -0
- package/dist/visitors/aggregates/max.js +56 -0
- package/dist/visitors/aggregates/max.js.map +1 -0
- package/dist/visitors/aggregates/min.d.ts +11 -0
- package/dist/visitors/aggregates/min.d.ts.map +1 -0
- package/dist/visitors/aggregates/min.js +56 -0
- package/dist/visitors/aggregates/min.js.map +1 -0
- package/dist/visitors/aggregates/sum.d.ts +11 -0
- package/dist/visitors/aggregates/sum.d.ts.map +1 -0
- package/dist/visitors/aggregates/sum.js +56 -0
- package/dist/visitors/aggregates/sum.js.map +1 -0
- package/dist/visitors/ast-visitor.d.ts +15 -0
- package/dist/visitors/ast-visitor.d.ts.map +1 -0
- package/dist/visitors/ast-visitor.js +20 -0
- package/dist/visitors/ast-visitor.js.map +1 -0
- package/dist/visitors/boolean/comparison.d.ts +12 -0
- package/dist/visitors/boolean/comparison.d.ts.map +1 -0
- package/dist/visitors/boolean/comparison.js +128 -0
- package/dist/visitors/boolean/comparison.js.map +1 -0
- package/dist/visitors/boolean/logical.d.ts +12 -0
- package/dist/visitors/boolean/logical.d.ts.map +1 -0
- package/dist/visitors/boolean/logical.js +68 -0
- package/dist/visitors/boolean/logical.js.map +1 -0
- package/dist/visitors/boolean-predicates/all.d.ts +11 -0
- package/dist/visitors/boolean-predicates/all.d.ts.map +1 -0
- package/dist/visitors/boolean-predicates/all.js +49 -0
- package/dist/visitors/boolean-predicates/all.js.map +1 -0
- package/dist/visitors/boolean-predicates/any.d.ts +11 -0
- package/dist/visitors/boolean-predicates/any.d.ts.map +1 -0
- package/dist/visitors/boolean-predicates/any.js +48 -0
- package/dist/visitors/boolean-predicates/any.js.map +1 -0
- package/dist/visitors/common/identifier.d.ts +13 -0
- package/dist/visitors/common/identifier.d.ts.map +1 -0
- package/dist/visitors/common/identifier.js +46 -0
- package/dist/visitors/common/identifier.js.map +1 -0
- package/dist/visitors/common/literal.d.ts +13 -0
- package/dist/visitors/common/literal.d.ts.map +1 -0
- package/dist/visitors/common/literal.js +45 -0
- package/dist/visitors/common/literal.js.map +1 -0
- package/dist/visitors/common/member-access.d.ts +15 -0
- package/dist/visitors/common/member-access.d.ts.map +1 -0
- package/dist/visitors/common/member-access.js +192 -0
- package/dist/visitors/common/member-access.js.map +1 -0
- package/dist/visitors/contains/index.d.ts +11 -0
- package/dist/visitors/contains/index.d.ts.map +1 -0
- package/dist/visitors/contains/index.js +26 -0
- package/dist/visitors/contains/index.js.map +1 -0
- package/dist/visitors/count/index.d.ts +11 -0
- package/dist/visitors/count/index.d.ts.map +1 -0
- package/dist/visitors/count/index.js +47 -0
- package/dist/visitors/count/index.js.map +1 -0
- package/dist/visitors/delete/allow-full-delete.d.ts +14 -0
- package/dist/visitors/delete/allow-full-delete.d.ts.map +1 -0
- package/dist/visitors/delete/allow-full-delete.js +26 -0
- package/dist/visitors/delete/allow-full-delete.js.map +1 -0
- package/dist/visitors/delete/index.d.ts +10 -0
- package/dist/visitors/delete/index.d.ts.map +1 -0
- package/dist/visitors/delete/index.js +53 -0
- package/dist/visitors/delete/index.js.map +1 -0
- package/dist/visitors/delete/where-delete.d.ts +15 -0
- package/dist/visitors/delete/where-delete.d.ts.map +1 -0
- package/dist/visitors/delete/where-delete.js +59 -0
- package/dist/visitors/delete/where-delete.js.map +1 -0
- package/dist/visitors/distinct/index.d.ts +16 -0
- package/dist/visitors/distinct/index.d.ts.map +1 -0
- package/dist/visitors/distinct/index.js +20 -0
- package/dist/visitors/distinct/index.js.map +1 -0
- package/dist/visitors/from/index.d.ts +12 -0
- package/dist/visitors/from/index.d.ts.map +1 -0
- package/dist/visitors/from/index.js +58 -0
- package/dist/visitors/from/index.js.map +1 -0
- package/dist/visitors/groupby/index.d.ts +11 -0
- package/dist/visitors/groupby/index.d.ts.map +1 -0
- package/dist/visitors/groupby/index.js +51 -0
- package/dist/visitors/groupby/index.js.map +1 -0
- package/dist/visitors/groupjoin/index.d.ts +8 -0
- package/dist/visitors/groupjoin/index.d.ts.map +1 -0
- package/dist/visitors/groupjoin/index.js +184 -0
- package/dist/visitors/groupjoin/index.js.map +1 -0
- package/dist/visitors/index.d.ts +13 -0
- package/dist/visitors/index.d.ts.map +1 -0
- package/dist/visitors/index.js +266 -0
- package/dist/visitors/index.js.map +1 -0
- package/dist/visitors/insert/index.d.ts +10 -0
- package/dist/visitors/insert/index.d.ts.map +1 -0
- package/dist/visitors/insert/index.js +54 -0
- package/dist/visitors/insert/index.js.map +1 -0
- package/dist/visitors/insert/returning.d.ts +15 -0
- package/dist/visitors/insert/returning.d.ts.map +1 -0
- package/dist/visitors/insert/returning.js +60 -0
- package/dist/visitors/insert/returning.js.map +1 -0
- package/dist/visitors/insert/values.d.ts +15 -0
- package/dist/visitors/insert/values.d.ts.map +1 -0
- package/dist/visitors/insert/values.js +37 -0
- package/dist/visitors/insert/values.js.map +1 -0
- package/dist/visitors/join/context.d.ts +16 -0
- package/dist/visitors/join/context.d.ts.map +1 -0
- package/dist/visitors/join/context.js +6 -0
- package/dist/visitors/join/context.js.map +1 -0
- package/dist/visitors/join/expression.d.ts +16 -0
- package/dist/visitors/join/expression.d.ts.map +1 -0
- package/dist/visitors/join/expression.js +162 -0
- package/dist/visitors/join/expression.js.map +1 -0
- package/dist/visitors/join/index.d.ts +10 -0
- package/dist/visitors/join/index.d.ts.map +1 -0
- package/dist/visitors/join/index.js +9 -0
- package/dist/visitors/join/index.js.map +1 -0
- package/dist/visitors/join/join.d.ts +12 -0
- package/dist/visitors/join/join.d.ts.map +1 -0
- package/dist/visitors/join/join.js +348 -0
- package/dist/visitors/join/join.js.map +1 -0
- package/dist/visitors/join/result-selector.d.ts +16 -0
- package/dist/visitors/join/result-selector.d.ts.map +1 -0
- package/dist/visitors/join/result-selector.js +121 -0
- package/dist/visitors/join/result-selector.js.map +1 -0
- package/dist/visitors/join/shape.d.ts +16 -0
- package/dist/visitors/join/shape.d.ts.map +1 -0
- package/dist/visitors/join/shape.js +157 -0
- package/dist/visitors/join/shape.js.map +1 -0
- package/dist/visitors/orderby/context.d.ts +20 -0
- package/dist/visitors/orderby/context.d.ts.map +1 -0
- package/dist/visitors/orderby/context.js +25 -0
- package/dist/visitors/orderby/context.js.map +1 -0
- package/dist/visitors/orderby/index.d.ts +7 -0
- package/dist/visitors/orderby/index.d.ts.map +1 -0
- package/dist/visitors/orderby/index.js +7 -0
- package/dist/visitors/orderby/index.js.map +1 -0
- package/dist/visitors/orderby/key-selector.d.ts +13 -0
- package/dist/visitors/orderby/key-selector.d.ts.map +1 -0
- package/dist/visitors/orderby/key-selector.js +236 -0
- package/dist/visitors/orderby/key-selector.js.map +1 -0
- package/dist/visitors/orderby/orderby.d.ts +20 -0
- package/dist/visitors/orderby/orderby.d.ts.map +1 -0
- package/dist/visitors/orderby/orderby.js +83 -0
- package/dist/visitors/orderby/orderby.js.map +1 -0
- package/dist/visitors/orderby/thenby.d.ts +20 -0
- package/dist/visitors/orderby/thenby.d.ts.map +1 -0
- package/dist/visitors/orderby/thenby.js +76 -0
- package/dist/visitors/orderby/thenby.js.map +1 -0
- package/dist/visitors/predicates/first.d.ts +11 -0
- package/dist/visitors/predicates/first.d.ts.map +1 -0
- package/dist/visitors/predicates/first.js +47 -0
- package/dist/visitors/predicates/first.js.map +1 -0
- package/dist/visitors/predicates/last.d.ts +11 -0
- package/dist/visitors/predicates/last.d.ts.map +1 -0
- package/dist/visitors/predicates/last.js +48 -0
- package/dist/visitors/predicates/last.js.map +1 -0
- package/dist/visitors/predicates/single.d.ts +11 -0
- package/dist/visitors/predicates/single.d.ts.map +1 -0
- package/dist/visitors/predicates/single.js +48 -0
- package/dist/visitors/predicates/single.js.map +1 -0
- package/dist/visitors/reverse/index.d.ts +11 -0
- package/dist/visitors/reverse/index.d.ts.map +1 -0
- package/dist/visitors/reverse/index.js +14 -0
- package/dist/visitors/reverse/index.js.map +1 -0
- package/dist/visitors/select/context.d.ts +30 -0
- package/dist/visitors/select/context.d.ts.map +1 -0
- package/dist/visitors/select/context.js +30 -0
- package/dist/visitors/select/context.js.map +1 -0
- package/dist/visitors/select/index.d.ts +16 -0
- package/dist/visitors/select/index.d.ts.map +1 -0
- package/dist/visitors/select/index.js +180 -0
- package/dist/visitors/select/index.js.map +1 -0
- package/dist/visitors/select/projection.d.ts +13 -0
- package/dist/visitors/select/projection.d.ts.map +1 -0
- package/dist/visitors/select/projection.js +642 -0
- package/dist/visitors/select/projection.js.map +1 -0
- package/dist/visitors/select-many/index.d.ts +8 -0
- package/dist/visitors/select-many/index.d.ts.map +1 -0
- package/dist/visitors/select-many/index.js +244 -0
- package/dist/visitors/select-many/index.js.map +1 -0
- package/dist/visitors/shared/generic-visitor.d.ts +21 -0
- package/dist/visitors/shared/generic-visitor.d.ts.map +1 -0
- package/dist/visitors/shared/generic-visitor.js +32 -0
- package/dist/visitors/shared/generic-visitor.js.map +1 -0
- package/dist/visitors/shared/predicate-visitor.d.ts +21 -0
- package/dist/visitors/shared/predicate-visitor.d.ts.map +1 -0
- package/dist/visitors/shared/predicate-visitor.js +49 -0
- package/dist/visitors/shared/predicate-visitor.js.map +1 -0
- package/dist/visitors/shared/value-visitor.d.ts +21 -0
- package/dist/visitors/shared/value-visitor.d.ts.map +1 -0
- package/dist/visitors/shared/value-visitor.js +38 -0
- package/dist/visitors/shared/value-visitor.js.map +1 -0
- package/dist/visitors/take-skip/skip.d.ts +15 -0
- package/dist/visitors/take-skip/skip.d.ts.map +1 -0
- package/dist/visitors/take-skip/skip.js +209 -0
- package/dist/visitors/take-skip/skip.js.map +1 -0
- package/dist/visitors/take-skip/take.d.ts +15 -0
- package/dist/visitors/take-skip/take.d.ts.map +1 -0
- package/dist/visitors/take-skip/take.js +76 -0
- package/dist/visitors/take-skip/take.js.map +1 -0
- package/dist/visitors/types.d.ts +170 -0
- package/dist/visitors/types.d.ts.map +1 -0
- package/dist/visitors/types.js +184 -0
- package/dist/visitors/types.js.map +1 -0
- package/dist/visitors/update/allow-full-update.d.ts +14 -0
- package/dist/visitors/update/allow-full-update.d.ts.map +1 -0
- package/dist/visitors/update/allow-full-update.js +26 -0
- package/dist/visitors/update/allow-full-update.js.map +1 -0
- package/dist/visitors/update/index.d.ts +10 -0
- package/dist/visitors/update/index.d.ts.map +1 -0
- package/dist/visitors/update/index.js +54 -0
- package/dist/visitors/update/index.js.map +1 -0
- package/dist/visitors/update/returning-update.d.ts +15 -0
- package/dist/visitors/update/returning-update.d.ts.map +1 -0
- package/dist/visitors/update/returning-update.js +60 -0
- package/dist/visitors/update/returning-update.js.map +1 -0
- package/dist/visitors/update/set.d.ts +15 -0
- package/dist/visitors/update/set.d.ts.map +1 -0
- package/dist/visitors/update/set.js +46 -0
- package/dist/visitors/update/set.js.map +1 -0
- package/dist/visitors/update/where-update.d.ts +15 -0
- package/dist/visitors/update/where-update.d.ts.map +1 -0
- package/dist/visitors/update/where-update.js +59 -0
- package/dist/visitors/update/where-update.js.map +1 -0
- package/dist/visitors/utils.d.ts +36 -0
- package/dist/visitors/utils.d.ts.map +1 -0
- package/dist/visitors/utils.js +104 -0
- package/dist/visitors/utils.js.map +1 -0
- package/dist/visitors/value/array-literal.d.ts +12 -0
- package/dist/visitors/value/array-literal.d.ts.map +1 -0
- package/dist/visitors/value/array-literal.js +23 -0
- package/dist/visitors/value/array-literal.js.map +1 -0
- package/dist/visitors/value/call-expression.d.ts +12 -0
- package/dist/visitors/value/call-expression.d.ts.map +1 -0
- package/dist/visitors/value/call-expression.js +165 -0
- package/dist/visitors/value/call-expression.js.map +1 -0
- package/dist/visitors/value/object-literal.d.ts +12 -0
- package/dist/visitors/value/object-literal.d.ts.map +1 -0
- package/dist/visitors/value/object-literal.js +98 -0
- package/dist/visitors/value/object-literal.js.map +1 -0
- package/dist/visitors/visitor-utils.d.ts +22 -0
- package/dist/visitors/visitor-utils.d.ts.map +1 -0
- package/dist/visitors/visitor-utils.js +64 -0
- package/dist/visitors/visitor-utils.js.map +1 -0
- package/dist/visitors/where/boolean-method.d.ts +12 -0
- package/dist/visitors/where/boolean-method.d.ts.map +1 -0
- package/dist/visitors/where/boolean-method.js +150 -0
- package/dist/visitors/where/boolean-method.js.map +1 -0
- package/dist/visitors/where/case-insensitive-functions.d.ts +13 -0
- package/dist/visitors/where/case-insensitive-functions.d.ts.map +1 -0
- package/dist/visitors/where/case-insensitive-functions.js +72 -0
- package/dist/visitors/where/case-insensitive-functions.js.map +1 -0
- package/dist/visitors/where/column.d.ts +14 -0
- package/dist/visitors/where/column.d.ts.map +1 -0
- package/dist/visitors/where/column.js +57 -0
- package/dist/visitors/where/column.js.map +1 -0
- package/dist/visitors/where/comparison.d.ts +12 -0
- package/dist/visitors/where/comparison.d.ts.map +1 -0
- package/dist/visitors/where/comparison.js +141 -0
- package/dist/visitors/where/comparison.js.map +1 -0
- package/dist/visitors/where/context.d.ts +32 -0
- package/dist/visitors/where/context.d.ts.map +1 -0
- package/dist/visitors/where/context.js +18 -0
- package/dist/visitors/where/context.js.map +1 -0
- package/dist/visitors/where/index.d.ts +16 -0
- package/dist/visitors/where/index.d.ts.map +1 -0
- package/dist/visitors/where/index.js +82 -0
- package/dist/visitors/where/index.js.map +1 -0
- package/dist/visitors/where/logical.d.ts +12 -0
- package/dist/visitors/where/logical.d.ts.map +1 -0
- package/dist/visitors/where/logical.js +43 -0
- package/dist/visitors/where/logical.js.map +1 -0
- package/dist/visitors/where/predicate.d.ts +13 -0
- package/dist/visitors/where/predicate.d.ts.map +1 -0
- package/dist/visitors/where/predicate.js +131 -0
- package/dist/visitors/where/predicate.js.map +1 -0
- package/dist/visitors/where/value.d.ts +13 -0
- package/dist/visitors/where/value.d.ts.map +1 -0
- package/dist/visitors/where/value.js +356 -0
- package/dist/visitors/where/value.js.map +1 -0
- package/dist/visitors/window/index.d.ts +18 -0
- package/dist/visitors/window/index.d.ts.map +1 -0
- package/dist/visitors/window/index.js +156 -0
- package/dist/visitors/window/index.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified Query Operation Types for Runtime Parsing
|
|
3
|
+
*
|
|
4
|
+
* These types represent the parsed expression tree without complex generics.
|
|
5
|
+
* They are used by the parser to build query structures from lambda expressions.
|
|
6
|
+
*/
|
|
7
|
+
import type { Expression, BooleanExpression, ValueExpression, ObjectExpression } from "../expressions/expression.js";
|
|
8
|
+
/**
|
|
9
|
+
* Parameter reference for external parameters
|
|
10
|
+
*/
|
|
11
|
+
export interface ParamRef {
|
|
12
|
+
type: "param";
|
|
13
|
+
param: string;
|
|
14
|
+
property?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Base query operation
|
|
18
|
+
*/
|
|
19
|
+
export interface QueryOperation {
|
|
20
|
+
type: "queryOperation";
|
|
21
|
+
operationType: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* FROM operation - the root of all query chains
|
|
25
|
+
* Can reference either a table or a subquery (derived table)
|
|
26
|
+
*/
|
|
27
|
+
export interface FromOperation extends QueryOperation {
|
|
28
|
+
operationType: "from";
|
|
29
|
+
table?: string;
|
|
30
|
+
schema?: string;
|
|
31
|
+
subquery?: QueryOperation;
|
|
32
|
+
aliasHint?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* WHERE operation - filters the source
|
|
36
|
+
*/
|
|
37
|
+
export interface WhereOperation extends QueryOperation {
|
|
38
|
+
operationType: "where";
|
|
39
|
+
source: QueryOperation;
|
|
40
|
+
predicate: BooleanExpression;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* SELECT operation - projects the source
|
|
44
|
+
*/
|
|
45
|
+
export interface SelectOperation extends QueryOperation {
|
|
46
|
+
operationType: "select";
|
|
47
|
+
source: QueryOperation;
|
|
48
|
+
selector: ValueExpression | ObjectExpression | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* JOIN operation
|
|
52
|
+
*/
|
|
53
|
+
export interface JoinOperation extends QueryOperation {
|
|
54
|
+
operationType: "join";
|
|
55
|
+
source: QueryOperation;
|
|
56
|
+
inner: QueryOperation;
|
|
57
|
+
outerKey: string;
|
|
58
|
+
innerKey: string;
|
|
59
|
+
outerKeySource?: number;
|
|
60
|
+
resultSelector?: Expression;
|
|
61
|
+
resultShape?: ResultShape;
|
|
62
|
+
joinType?: "inner" | "left" | "right" | "full" | "cross";
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* GROUP JOIN operation (LINQ-style)
|
|
66
|
+
*/
|
|
67
|
+
export interface GroupJoinOperation extends QueryOperation {
|
|
68
|
+
operationType: "groupJoin";
|
|
69
|
+
source: QueryOperation;
|
|
70
|
+
inner: QueryOperation;
|
|
71
|
+
outerKey: string;
|
|
72
|
+
innerKey: string;
|
|
73
|
+
outerKeySource?: number;
|
|
74
|
+
resultSelector?: Expression;
|
|
75
|
+
resultShape?: ResultShape;
|
|
76
|
+
outerParam?: string;
|
|
77
|
+
innerGroupParam?: string;
|
|
78
|
+
outerBindingName?: string;
|
|
79
|
+
groupBindingName?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* SELECT MANY operation (LINQ-style)
|
|
83
|
+
*/
|
|
84
|
+
export interface SelectManyOperation extends QueryOperation {
|
|
85
|
+
operationType: "selectMany";
|
|
86
|
+
source: QueryOperation;
|
|
87
|
+
collection: QueryOperation | Expression;
|
|
88
|
+
resultSelector?: Expression;
|
|
89
|
+
sourceParam?: string;
|
|
90
|
+
collectionParam?: string;
|
|
91
|
+
resultParam?: string;
|
|
92
|
+
collectionPropertyPath?: string[];
|
|
93
|
+
usesDefaultIfEmpty?: boolean;
|
|
94
|
+
resultShape?: ResultShape;
|
|
95
|
+
resultBindings?: Array<{
|
|
96
|
+
name: string;
|
|
97
|
+
source: "outer" | "inner";
|
|
98
|
+
path?: string[];
|
|
99
|
+
}>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* DEFAULT IF EMPTY operation
|
|
103
|
+
*/
|
|
104
|
+
export interface DefaultIfEmptyOperation extends QueryOperation {
|
|
105
|
+
operationType: "defaultIfEmpty";
|
|
106
|
+
source: QueryOperation;
|
|
107
|
+
defaultValue?: Expression;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Represents the shape of a JOIN result with full nested structure preservation
|
|
111
|
+
*/
|
|
112
|
+
export interface ResultShape {
|
|
113
|
+
type: "object";
|
|
114
|
+
properties: Map<string, ShapeNode>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* A node in the shape tree that can be a column, object, or reference
|
|
118
|
+
*/
|
|
119
|
+
export type ShapeNode = ColumnShapeNode | ObjectShapeNode | ReferenceShapeNode | ArrayShapeNode;
|
|
120
|
+
/**
|
|
121
|
+
* Represents a direct column reference
|
|
122
|
+
*/
|
|
123
|
+
export interface ColumnShapeNode {
|
|
124
|
+
type: "column";
|
|
125
|
+
sourceTable: number;
|
|
126
|
+
columnName: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Represents a nested object with properties
|
|
130
|
+
*/
|
|
131
|
+
export interface ObjectShapeNode {
|
|
132
|
+
type: "object";
|
|
133
|
+
properties: Map<string, ShapeNode>;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Represents a reference to an entire table/parameter
|
|
137
|
+
*/
|
|
138
|
+
export interface ReferenceShapeNode {
|
|
139
|
+
type: "reference";
|
|
140
|
+
sourceTable: number;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Represents an array (for future support)
|
|
144
|
+
*/
|
|
145
|
+
export interface ArrayShapeNode {
|
|
146
|
+
type: "array";
|
|
147
|
+
elementShape: ShapeNode;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* GROUP BY operation
|
|
151
|
+
*/
|
|
152
|
+
export interface GroupByOperation extends QueryOperation {
|
|
153
|
+
operationType: "groupBy";
|
|
154
|
+
source: QueryOperation;
|
|
155
|
+
keySelector: Expression;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* ORDER BY operation
|
|
159
|
+
*/
|
|
160
|
+
export interface OrderByOperation extends QueryOperation {
|
|
161
|
+
operationType: "orderBy";
|
|
162
|
+
source: QueryOperation;
|
|
163
|
+
keySelector: string | ValueExpression;
|
|
164
|
+
descending: boolean;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* THEN BY operation - secondary ordering
|
|
168
|
+
*/
|
|
169
|
+
export interface ThenByOperation extends QueryOperation {
|
|
170
|
+
operationType: "thenBy";
|
|
171
|
+
source: QueryOperation;
|
|
172
|
+
keySelector: string | ValueExpression;
|
|
173
|
+
descending: boolean;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* DISTINCT operation
|
|
177
|
+
*/
|
|
178
|
+
export interface DistinctOperation extends QueryOperation {
|
|
179
|
+
operationType: "distinct";
|
|
180
|
+
source: QueryOperation;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* TAKE operation (LIMIT)
|
|
184
|
+
*/
|
|
185
|
+
export interface TakeOperation extends QueryOperation {
|
|
186
|
+
operationType: "take";
|
|
187
|
+
source: QueryOperation;
|
|
188
|
+
count: number | ParamRef | import("../expressions/expression.js").ValueExpression;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* SKIP operation (OFFSET)
|
|
192
|
+
*/
|
|
193
|
+
export interface SkipOperation extends QueryOperation {
|
|
194
|
+
operationType: "skip";
|
|
195
|
+
source: QueryOperation;
|
|
196
|
+
count: number | ParamRef | import("../expressions/expression.js").ValueExpression;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* REVERSE operation
|
|
200
|
+
*/
|
|
201
|
+
export interface ReverseOperation extends QueryOperation {
|
|
202
|
+
operationType: "reverse";
|
|
203
|
+
source: QueryOperation;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* ZIP operation
|
|
207
|
+
*/
|
|
208
|
+
export interface ZipOperation extends QueryOperation {
|
|
209
|
+
operationType: "zip";
|
|
210
|
+
source: QueryOperation;
|
|
211
|
+
second: QueryOperation;
|
|
212
|
+
resultSelector: ObjectExpression;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* APPEND operation
|
|
216
|
+
*/
|
|
217
|
+
export interface AppendOperation extends QueryOperation {
|
|
218
|
+
operationType: "append";
|
|
219
|
+
source: QueryOperation;
|
|
220
|
+
element: ValueExpression | ObjectExpression;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* PREPEND operation
|
|
224
|
+
*/
|
|
225
|
+
export interface PrependOperation extends QueryOperation {
|
|
226
|
+
operationType: "prepend";
|
|
227
|
+
source: QueryOperation;
|
|
228
|
+
element: ValueExpression | ObjectExpression;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* HAVING operation - filters after grouping
|
|
232
|
+
*/
|
|
233
|
+
export interface HavingOperation extends QueryOperation {
|
|
234
|
+
operationType: "having";
|
|
235
|
+
source: QueryOperation;
|
|
236
|
+
predicate: BooleanExpression;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* FIRST operation
|
|
240
|
+
*/
|
|
241
|
+
export interface FirstOperation extends QueryOperation {
|
|
242
|
+
operationType: "first";
|
|
243
|
+
source: QueryOperation;
|
|
244
|
+
predicate?: BooleanExpression;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* FIRST OR DEFAULT operation
|
|
248
|
+
*/
|
|
249
|
+
export interface FirstOrDefaultOperation extends QueryOperation {
|
|
250
|
+
operationType: "firstOrDefault";
|
|
251
|
+
source: QueryOperation;
|
|
252
|
+
predicate?: BooleanExpression;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* SINGLE operation
|
|
256
|
+
*/
|
|
257
|
+
export interface SingleOperation extends QueryOperation {
|
|
258
|
+
operationType: "single";
|
|
259
|
+
source: QueryOperation;
|
|
260
|
+
predicate?: BooleanExpression;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* SINGLE OR DEFAULT operation
|
|
264
|
+
*/
|
|
265
|
+
export interface SingleOrDefaultOperation extends QueryOperation {
|
|
266
|
+
operationType: "singleOrDefault";
|
|
267
|
+
source: QueryOperation;
|
|
268
|
+
predicate?: BooleanExpression;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* LAST operation
|
|
272
|
+
*/
|
|
273
|
+
export interface LastOperation extends QueryOperation {
|
|
274
|
+
operationType: "last";
|
|
275
|
+
source: QueryOperation;
|
|
276
|
+
predicate?: BooleanExpression;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* LAST OR DEFAULT operation
|
|
280
|
+
*/
|
|
281
|
+
export interface LastOrDefaultOperation extends QueryOperation {
|
|
282
|
+
operationType: "lastOrDefault";
|
|
283
|
+
source: QueryOperation;
|
|
284
|
+
predicate?: BooleanExpression;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* ANY operation
|
|
288
|
+
*/
|
|
289
|
+
export interface AnyOperation extends QueryOperation {
|
|
290
|
+
operationType: "any";
|
|
291
|
+
source: QueryOperation;
|
|
292
|
+
predicate?: BooleanExpression;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* ALL operation
|
|
296
|
+
*/
|
|
297
|
+
export interface AllOperation extends QueryOperation {
|
|
298
|
+
operationType: "all";
|
|
299
|
+
source: QueryOperation;
|
|
300
|
+
predicate: BooleanExpression;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* CONTAINS operation
|
|
304
|
+
*/
|
|
305
|
+
export interface ContainsOperation extends QueryOperation {
|
|
306
|
+
operationType: "contains";
|
|
307
|
+
source: QueryOperation;
|
|
308
|
+
value: ValueExpression;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* COUNT operation
|
|
312
|
+
*/
|
|
313
|
+
export interface CountOperation extends QueryOperation {
|
|
314
|
+
operationType: "count";
|
|
315
|
+
source: QueryOperation;
|
|
316
|
+
predicate?: BooleanExpression;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* LONG COUNT operation
|
|
320
|
+
*/
|
|
321
|
+
export interface LongCountOperation extends QueryOperation {
|
|
322
|
+
operationType: "longCount";
|
|
323
|
+
source: QueryOperation;
|
|
324
|
+
predicate?: BooleanExpression;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* SUM operation
|
|
328
|
+
*/
|
|
329
|
+
export interface SumOperation extends QueryOperation {
|
|
330
|
+
operationType: "sum";
|
|
331
|
+
source: QueryOperation;
|
|
332
|
+
selectorExpression?: ValueExpression;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* AVERAGE operation
|
|
336
|
+
*/
|
|
337
|
+
export interface AverageOperation extends QueryOperation {
|
|
338
|
+
operationType: "average";
|
|
339
|
+
source: QueryOperation;
|
|
340
|
+
selectorExpression?: ValueExpression;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* MIN operation
|
|
344
|
+
*/
|
|
345
|
+
export interface MinOperation extends QueryOperation {
|
|
346
|
+
operationType: "min";
|
|
347
|
+
source: QueryOperation;
|
|
348
|
+
selectorExpression?: ValueExpression;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* MAX operation
|
|
352
|
+
*/
|
|
353
|
+
export interface MaxOperation extends QueryOperation {
|
|
354
|
+
operationType: "max";
|
|
355
|
+
source: QueryOperation;
|
|
356
|
+
selectorExpression?: ValueExpression;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* AGGREGATE operation
|
|
360
|
+
*/
|
|
361
|
+
export interface AggregateOperation extends QueryOperation {
|
|
362
|
+
operationType: "aggregate";
|
|
363
|
+
source: QueryOperation;
|
|
364
|
+
seed: ValueExpression;
|
|
365
|
+
func: ObjectExpression;
|
|
366
|
+
resultSelector?: ObjectExpression;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* TO DICTIONARY operation
|
|
370
|
+
*/
|
|
371
|
+
export interface ToDictionaryOperation extends QueryOperation {
|
|
372
|
+
operationType: "toDictionary";
|
|
373
|
+
source: QueryOperation;
|
|
374
|
+
keySelector: string | ValueExpression;
|
|
375
|
+
elementSelector?: ValueExpression | ObjectExpression;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* TO LOOKUP operation
|
|
379
|
+
*/
|
|
380
|
+
export interface ToLookupOperation extends QueryOperation {
|
|
381
|
+
operationType: "toLookup";
|
|
382
|
+
source: QueryOperation;
|
|
383
|
+
keySelector: string | ValueExpression;
|
|
384
|
+
elementSelector?: ValueExpression | ObjectExpression;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Union type for all chainable operations
|
|
388
|
+
*/
|
|
389
|
+
export type ChainableOperation = FromOperation | WhereOperation | SelectOperation | JoinOperation | GroupJoinOperation | SelectManyOperation | DefaultIfEmptyOperation | GroupByOperation | OrderByOperation | ThenByOperation | DistinctOperation | TakeOperation | SkipOperation | ReverseOperation;
|
|
390
|
+
/**
|
|
391
|
+
* Union type for all terminal operations
|
|
392
|
+
*/
|
|
393
|
+
export type TerminalOperation = FirstOperation | FirstOrDefaultOperation | SingleOperation | SingleOrDefaultOperation | LastOperation | LastOrDefaultOperation | ContainsOperation | CountOperation | SumOperation | AverageOperation | MinOperation | MaxOperation;
|
|
394
|
+
/**
|
|
395
|
+
* INSERT operation
|
|
396
|
+
*/
|
|
397
|
+
export interface InsertOperation extends QueryOperation {
|
|
398
|
+
operationType: "insert";
|
|
399
|
+
table: string;
|
|
400
|
+
schema?: string;
|
|
401
|
+
values: ObjectExpression;
|
|
402
|
+
returning?: ValueExpression | ObjectExpression;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* UPDATE operation
|
|
406
|
+
*/
|
|
407
|
+
export interface UpdateOperation extends QueryOperation {
|
|
408
|
+
operationType: "update";
|
|
409
|
+
table: string;
|
|
410
|
+
schema?: string;
|
|
411
|
+
assignments: ObjectExpression;
|
|
412
|
+
predicate?: BooleanExpression;
|
|
413
|
+
allowFullTableUpdate?: boolean;
|
|
414
|
+
returning?: ValueExpression | ObjectExpression;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* DELETE operation
|
|
418
|
+
*/
|
|
419
|
+
export interface DeleteOperation extends QueryOperation {
|
|
420
|
+
operationType: "delete";
|
|
421
|
+
table: string;
|
|
422
|
+
schema?: string;
|
|
423
|
+
predicate?: BooleanExpression;
|
|
424
|
+
allowFullTableDelete?: boolean;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Union type for all operations
|
|
428
|
+
*/
|
|
429
|
+
export type AnyQueryOperation = ChainableOperation | TerminalOperation | InsertOperation | UpdateOperation | DeleteOperation;
|
|
430
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/query-tree/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified Query Operation Types for Runtime Parsing
|
|
3
|
+
*
|
|
4
|
+
* These types represent the parsed expression tree without complex generics.
|
|
5
|
+
* They are used by the parser to build query structures from lambda expressions.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/query-tree/operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AVERAGE operation visitor
|
|
3
|
+
*/
|
|
4
|
+
import type { AverageOperation, QueryOperation } from "../../query-tree/operations.js";
|
|
5
|
+
import type { CallExpression as ASTCallExpression } from "../../parser/ast-types.js";
|
|
6
|
+
import type { VisitorContext } from "../types.js";
|
|
7
|
+
export declare function visitAverageOperation(ast: ASTCallExpression, source: QueryOperation, _methodName: string, visitorContext: VisitorContext): {
|
|
8
|
+
operation: AverageOperation;
|
|
9
|
+
autoParams: Record<string, unknown>;
|
|
10
|
+
} | null;
|
|
11
|
+
//# sourceMappingURL=average.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"average.d.ts","sourceRoot":"","sources":["../../../src/visitors/aggregates/average.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEvF,OAAO,KAAK,EACV,cAAc,IAAI,iBAAiB,EAGpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CA8D7E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AVERAGE operation visitor
|
|
3
|
+
*/
|
|
4
|
+
import { getParameterName, getReturnExpression } from "../visitor-utils.js";
|
|
5
|
+
import { visitValue } from "../shared/value-visitor.js";
|
|
6
|
+
export function visitAverageOperation(ast, source, _methodName, visitorContext) {
|
|
7
|
+
const autoParams = {};
|
|
8
|
+
if (ast.arguments && ast.arguments.length > 0) {
|
|
9
|
+
const lambdaAst = ast.arguments[0];
|
|
10
|
+
if (lambdaAst && lambdaAst.type === "ArrowFunctionExpression") {
|
|
11
|
+
const arrowFunc = lambdaAst;
|
|
12
|
+
const paramName = getParameterName(arrowFunc);
|
|
13
|
+
// Create a new context for this visitor
|
|
14
|
+
const localTableParams = new Set(visitorContext.tableParams);
|
|
15
|
+
const localQueryParams = new Set(visitorContext.queryParams);
|
|
16
|
+
if (paramName) {
|
|
17
|
+
localTableParams.add(paramName);
|
|
18
|
+
}
|
|
19
|
+
// Handle both Expression body and BlockStatement body
|
|
20
|
+
let bodyExpr = null;
|
|
21
|
+
if (arrowFunc.body.type === "BlockStatement") {
|
|
22
|
+
// For block statements, look for a return statement
|
|
23
|
+
bodyExpr = getReturnExpression(arrowFunc.body.body);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
bodyExpr = arrowFunc.body;
|
|
27
|
+
}
|
|
28
|
+
if (bodyExpr) {
|
|
29
|
+
const result = visitValue(bodyExpr, localTableParams, localQueryParams, visitorContext.autoParams, visitorContext.autoParamCounter);
|
|
30
|
+
if (result.value) {
|
|
31
|
+
const expr = result.value;
|
|
32
|
+
Object.assign(autoParams, result.autoParams);
|
|
33
|
+
visitorContext.autoParamCounter = result.counter;
|
|
34
|
+
return {
|
|
35
|
+
operation: {
|
|
36
|
+
type: "queryOperation",
|
|
37
|
+
operationType: "average",
|
|
38
|
+
source,
|
|
39
|
+
selectorExpression: expr,
|
|
40
|
+
},
|
|
41
|
+
autoParams,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
operation: {
|
|
49
|
+
type: "queryOperation",
|
|
50
|
+
operationType: "average",
|
|
51
|
+
source,
|
|
52
|
+
},
|
|
53
|
+
autoParams,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=average.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"average.js","sourceRoot":"","sources":["../../../src/visitors/aggregates/average.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,UAAU,qBAAqB,CACnC,GAAsB,EACtB,MAAsB,EACtB,WAAmB,EACnB,cAA8B;IAE9B,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,SAAoC,CAAC;YACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAE9C,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAE7D,IAAI,SAAS,EAAE,CAAC;gBACd,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAED,sDAAsD;YACtD,IAAI,QAAQ,GAAyB,IAAI,CAAC;YAC1C,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC7C,oDAAoD;gBACpD,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,UAAU,CACvB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,gBAAgB,CAChC,CAAC;gBAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC1B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC7C,cAAc,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;oBAEjD,OAAO;wBACL,SAAS,EAAE;4BACT,IAAI,EAAE,gBAAgB;4BACtB,aAAa,EAAE,SAAS;4BACxB,MAAM;4BACN,kBAAkB,EAAE,IAAuB;yBAC5C;wBACD,UAAU;qBACX,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,SAAS;YACxB,MAAM;SACP;QACD,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MAX operation visitor
|
|
3
|
+
*/
|
|
4
|
+
import type { MaxOperation, QueryOperation } from "../../query-tree/operations.js";
|
|
5
|
+
import type { CallExpression as ASTCallExpression } from "../../parser/ast-types.js";
|
|
6
|
+
import type { VisitorContext } from "../types.js";
|
|
7
|
+
export declare function visitMaxOperation(ast: ASTCallExpression, source: QueryOperation, _methodName: string, visitorContext: VisitorContext): {
|
|
8
|
+
operation: MaxOperation;
|
|
9
|
+
autoParams: Record<string, unknown>;
|
|
10
|
+
} | null;
|
|
11
|
+
//# sourceMappingURL=max.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"max.d.ts","sourceRoot":"","sources":["../../../src/visitors/aggregates/max.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEnF,OAAO,KAAK,EACV,cAAc,IAAI,iBAAiB,EAGpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CA8DzE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MAX operation visitor
|
|
3
|
+
*/
|
|
4
|
+
import { getParameterName, getReturnExpression } from "../visitor-utils.js";
|
|
5
|
+
import { visitValue } from "../shared/value-visitor.js";
|
|
6
|
+
export function visitMaxOperation(ast, source, _methodName, visitorContext) {
|
|
7
|
+
const autoParams = {};
|
|
8
|
+
if (ast.arguments && ast.arguments.length > 0) {
|
|
9
|
+
const lambdaAst = ast.arguments[0];
|
|
10
|
+
if (lambdaAst && lambdaAst.type === "ArrowFunctionExpression") {
|
|
11
|
+
const arrowFunc = lambdaAst;
|
|
12
|
+
const paramName = getParameterName(arrowFunc);
|
|
13
|
+
// Create a new context for this visitor
|
|
14
|
+
const localTableParams = new Set(visitorContext.tableParams);
|
|
15
|
+
const localQueryParams = new Set(visitorContext.queryParams);
|
|
16
|
+
if (paramName) {
|
|
17
|
+
localTableParams.add(paramName);
|
|
18
|
+
}
|
|
19
|
+
// Handle both Expression body and BlockStatement body
|
|
20
|
+
let bodyExpr = null;
|
|
21
|
+
if (arrowFunc.body.type === "BlockStatement") {
|
|
22
|
+
// For block statements, look for a return statement
|
|
23
|
+
bodyExpr = getReturnExpression(arrowFunc.body.body);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
bodyExpr = arrowFunc.body;
|
|
27
|
+
}
|
|
28
|
+
if (bodyExpr) {
|
|
29
|
+
const result = visitValue(bodyExpr, localTableParams, localQueryParams, visitorContext.autoParams, visitorContext.autoParamCounter);
|
|
30
|
+
if (result.value) {
|
|
31
|
+
const expr = result.value;
|
|
32
|
+
Object.assign(autoParams, result.autoParams);
|
|
33
|
+
visitorContext.autoParamCounter = result.counter;
|
|
34
|
+
return {
|
|
35
|
+
operation: {
|
|
36
|
+
type: "queryOperation",
|
|
37
|
+
operationType: "max",
|
|
38
|
+
source,
|
|
39
|
+
selectorExpression: expr,
|
|
40
|
+
},
|
|
41
|
+
autoParams,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
operation: {
|
|
49
|
+
type: "queryOperation",
|
|
50
|
+
operationType: "max",
|
|
51
|
+
source,
|
|
52
|
+
},
|
|
53
|
+
autoParams,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=max.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/visitors/aggregates/max.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAC/B,GAAsB,EACtB,MAAsB,EACtB,WAAmB,EACnB,cAA8B;IAE9B,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,SAAoC,CAAC;YACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAE9C,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAE7D,IAAI,SAAS,EAAE,CAAC;gBACd,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAED,sDAAsD;YACtD,IAAI,QAAQ,GAAyB,IAAI,CAAC;YAC1C,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC7C,oDAAoD;gBACpD,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,UAAU,CACvB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,gBAAgB,CAChC,CAAC;gBAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC1B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC7C,cAAc,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;oBAEjD,OAAO;wBACL,SAAS,EAAE;4BACT,IAAI,EAAE,gBAAgB;4BACtB,aAAa,EAAE,KAAK;4BACpB,MAAM;4BACN,kBAAkB,EAAE,IAAuB;yBAC5C;wBACD,UAAU;qBACX,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,KAAK;YACpB,MAAM;SACP;QACD,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MIN operation visitor
|
|
3
|
+
*/
|
|
4
|
+
import type { MinOperation, QueryOperation } from "../../query-tree/operations.js";
|
|
5
|
+
import type { CallExpression as ASTCallExpression } from "../../parser/ast-types.js";
|
|
6
|
+
import type { VisitorContext } from "../types.js";
|
|
7
|
+
export declare function visitMinOperation(ast: ASTCallExpression, source: QueryOperation, _methodName: string, visitorContext: VisitorContext): {
|
|
8
|
+
operation: MinOperation;
|
|
9
|
+
autoParams: Record<string, unknown>;
|
|
10
|
+
} | null;
|
|
11
|
+
//# sourceMappingURL=min.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min.d.ts","sourceRoot":"","sources":["../../../src/visitors/aggregates/min.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEnF,OAAO,KAAK,EACV,cAAc,IAAI,iBAAiB,EAGpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CA8DzE"}
|