@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 @@
|
|
|
1
|
+
{"version":3,"file":"ast-visitor.js","sourceRoot":"","sources":["../../src/parser/ast-visitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-joins.d.ts","sourceRoot":"","sources":["../../src/parser/normalize-joins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,6BAA6B,CAAC;AAoHrC,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAoBxE"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { buildResultShape } from "../visitors/join/shape.js";
|
|
2
|
+
function isQueryOperation(value) {
|
|
3
|
+
return (!!value && typeof value === "object" && "operationType" in value);
|
|
4
|
+
}
|
|
5
|
+
function normalizeSelectMany(operation) {
|
|
6
|
+
const normalizedSource = normalizeJoins(operation.source);
|
|
7
|
+
operation.source = normalizedSource;
|
|
8
|
+
if (isQueryOperation(operation.collection)) {
|
|
9
|
+
const normalizedInner = normalizeJoins(operation.collection);
|
|
10
|
+
if (operation.resultBindings && operation.resultBindings.length > 0) {
|
|
11
|
+
const properties = {};
|
|
12
|
+
let hasOuterBinding = false;
|
|
13
|
+
let hasInnerBinding = false;
|
|
14
|
+
for (const binding of operation.resultBindings) {
|
|
15
|
+
const paramIndex = binding.source === "outer" ? 0 : 1;
|
|
16
|
+
if (binding.source === "outer") {
|
|
17
|
+
hasOuterBinding = true;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
hasInnerBinding = true;
|
|
21
|
+
}
|
|
22
|
+
properties[binding.name] = {
|
|
23
|
+
type: "reference",
|
|
24
|
+
source: { type: "joinParam", paramIndex },
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (hasOuterBinding && hasInnerBinding) {
|
|
28
|
+
const resultSelector = {
|
|
29
|
+
type: "object",
|
|
30
|
+
properties,
|
|
31
|
+
};
|
|
32
|
+
const resultShape = buildResultShape(resultSelector, "__outer", "__inner");
|
|
33
|
+
const joinOperation = {
|
|
34
|
+
type: "queryOperation",
|
|
35
|
+
operationType: "join",
|
|
36
|
+
source: normalizedSource,
|
|
37
|
+
inner: normalizedInner,
|
|
38
|
+
outerKey: "__cross",
|
|
39
|
+
innerKey: "__cross",
|
|
40
|
+
resultSelector,
|
|
41
|
+
resultShape,
|
|
42
|
+
joinType: "cross",
|
|
43
|
+
};
|
|
44
|
+
return joinOperation;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return operation;
|
|
48
|
+
}
|
|
49
|
+
if (normalizedSource.operationType !== "groupJoin") {
|
|
50
|
+
return operation;
|
|
51
|
+
}
|
|
52
|
+
const groupJoin = normalizedSource;
|
|
53
|
+
if (!operation.usesDefaultIfEmpty ||
|
|
54
|
+
!operation.collectionPropertyPath ||
|
|
55
|
+
operation.collectionPropertyPath.length === 0 ||
|
|
56
|
+
!groupJoin.groupBindingName ||
|
|
57
|
+
operation.collectionPropertyPath[0] !== groupJoin.groupBindingName ||
|
|
58
|
+
!operation.resultBindings ||
|
|
59
|
+
operation.resultBindings.length === 0) {
|
|
60
|
+
return operation;
|
|
61
|
+
}
|
|
62
|
+
const normalizedOuterSource = normalizeJoins(groupJoin.source);
|
|
63
|
+
const normalizedInnerSource = normalizeJoins(groupJoin.inner);
|
|
64
|
+
const properties = {};
|
|
65
|
+
for (const binding of operation.resultBindings) {
|
|
66
|
+
const paramIndex = binding.source === "outer" ? 0 : 1;
|
|
67
|
+
properties[binding.name] = {
|
|
68
|
+
type: "reference",
|
|
69
|
+
source: { type: "joinParam", paramIndex },
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const resultSelector = {
|
|
73
|
+
type: "object",
|
|
74
|
+
properties,
|
|
75
|
+
};
|
|
76
|
+
const resultShape = buildResultShape(resultSelector, "__outer", "__inner");
|
|
77
|
+
const joinOperation = {
|
|
78
|
+
type: "queryOperation",
|
|
79
|
+
operationType: "join",
|
|
80
|
+
source: normalizedOuterSource,
|
|
81
|
+
inner: normalizedInnerSource,
|
|
82
|
+
outerKey: groupJoin.outerKey,
|
|
83
|
+
innerKey: groupJoin.innerKey,
|
|
84
|
+
outerKeySource: groupJoin.outerKeySource,
|
|
85
|
+
resultSelector,
|
|
86
|
+
resultShape,
|
|
87
|
+
joinType: "left",
|
|
88
|
+
};
|
|
89
|
+
return joinOperation;
|
|
90
|
+
}
|
|
91
|
+
export function normalizeJoins(operation) {
|
|
92
|
+
if (operation.operationType === "selectMany") {
|
|
93
|
+
return normalizeSelectMany(operation);
|
|
94
|
+
}
|
|
95
|
+
if (operation.source) {
|
|
96
|
+
const current = operation;
|
|
97
|
+
if (current.source) {
|
|
98
|
+
current.source = normalizeJoins(current.source);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (operation.inner) {
|
|
102
|
+
const op = operation;
|
|
103
|
+
if (op.inner && isQueryOperation(op.inner)) {
|
|
104
|
+
op.inner = normalizeJoins(op.inner);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return operation;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=normalize-joins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-joins.js","sourceRoot":"","sources":["../../src/parser/normalize-joins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalization pass that wraps queries in subqueries when WHERE clauses
|
|
3
|
+
* reference window function columns defined in SELECT.
|
|
4
|
+
*
|
|
5
|
+
* This is necessary because SQL does not allow referencing window function
|
|
6
|
+
* aliases in the WHERE clause of the same query level.
|
|
7
|
+
*/
|
|
8
|
+
import type { QueryOperation } from "../query-tree/operations.js";
|
|
9
|
+
/**
|
|
10
|
+
* Main entry point: wrap queries that filter on window function columns
|
|
11
|
+
*/
|
|
12
|
+
export declare function wrapWindowFilters(operation: QueryOperation): QueryOperation;
|
|
13
|
+
//# sourceMappingURL=normalize-window-filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-window-filters.d.ts","sourceRoot":"","sources":["../../src/parser/normalize-window-filters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,6BAA6B,CAAC;AA0RrC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAE3E"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalization pass that wraps queries in subqueries when WHERE clauses
|
|
3
|
+
* reference window function columns defined in SELECT.
|
|
4
|
+
*
|
|
5
|
+
* This is necessary because SQL does not allow referencing window function
|
|
6
|
+
* aliases in the WHERE clause of the same query level.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Extract window function column names from a SELECT operation
|
|
10
|
+
*/
|
|
11
|
+
function getWindowAliasesFromSelect(selectOp, parentAliases) {
|
|
12
|
+
const aliases = new Set();
|
|
13
|
+
if (!selectOp.selector) {
|
|
14
|
+
// SELECT * - no new window aliases, but preserve parent ones
|
|
15
|
+
return parentAliases;
|
|
16
|
+
}
|
|
17
|
+
if (selectOp.selector.type === "allColumns") {
|
|
18
|
+
// SELECT all - preserve parent window aliases
|
|
19
|
+
return parentAliases;
|
|
20
|
+
}
|
|
21
|
+
if (selectOp.selector.type === "object") {
|
|
22
|
+
const objectExpr = selectOp.selector;
|
|
23
|
+
for (const [propName, expr] of Object.entries(objectExpr.properties)) {
|
|
24
|
+
// Direct window function
|
|
25
|
+
if (expr.type === "windowFunction") {
|
|
26
|
+
aliases.add(propName);
|
|
27
|
+
}
|
|
28
|
+
// Forwarded window alias: { newRn: r.rn } where "rn" is a window alias
|
|
29
|
+
else if (expr.type === "column") {
|
|
30
|
+
const colExpr = expr;
|
|
31
|
+
if (parentAliases.has(colExpr.name)) {
|
|
32
|
+
aliases.add(propName);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return aliases;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a boolean expression references any columns in the given set
|
|
41
|
+
*/
|
|
42
|
+
function referencesColumns(expr, columnNames) {
|
|
43
|
+
switch (expr.type) {
|
|
44
|
+
case "comparison":
|
|
45
|
+
return (expressionReferencesColumns(expr.left, columnNames) ||
|
|
46
|
+
expressionReferencesColumns(expr.right, columnNames));
|
|
47
|
+
case "logical":
|
|
48
|
+
return (referencesColumns(expr.left, columnNames) || referencesColumns(expr.right, columnNames));
|
|
49
|
+
case "not":
|
|
50
|
+
return referencesColumns(expr.expression, columnNames);
|
|
51
|
+
case "booleanColumn":
|
|
52
|
+
return columnNames.has(expr.name);
|
|
53
|
+
case "in":
|
|
54
|
+
return expressionReferencesColumns(expr.value, columnNames);
|
|
55
|
+
case "isNull":
|
|
56
|
+
return expressionReferencesColumns(expr.expression, columnNames);
|
|
57
|
+
case "booleanMethod":
|
|
58
|
+
return expressionReferencesColumns(expr.object, columnNames);
|
|
59
|
+
case "caseInsensitiveFunction":
|
|
60
|
+
return expr.arguments.some((arg) => expressionReferencesColumns(arg, columnNames));
|
|
61
|
+
case "booleanConstant":
|
|
62
|
+
case "booleanParam":
|
|
63
|
+
return false;
|
|
64
|
+
default:
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if a value expression references any columns in the given set
|
|
70
|
+
*/
|
|
71
|
+
function expressionReferencesColumns(expr, columnNames) {
|
|
72
|
+
if (!expr) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
switch (expr.type) {
|
|
76
|
+
case "column":
|
|
77
|
+
return columnNames.has(expr.name);
|
|
78
|
+
case "arithmetic":
|
|
79
|
+
return (expressionReferencesColumns(expr.left, columnNames) ||
|
|
80
|
+
expressionReferencesColumns(expr.right, columnNames));
|
|
81
|
+
case "concat":
|
|
82
|
+
return (expressionReferencesColumns(expr.left, columnNames) ||
|
|
83
|
+
expressionReferencesColumns(expr.right, columnNames));
|
|
84
|
+
case "stringMethod":
|
|
85
|
+
return expressionReferencesColumns(expr.object, columnNames);
|
|
86
|
+
case "case":
|
|
87
|
+
return (expr.conditions.some((c) => referencesColumns(c.when, columnNames) ||
|
|
88
|
+
expressionReferencesColumns(c.then, columnNames)) || (expr.else ? expressionReferencesColumns(expr.else, columnNames) : false));
|
|
89
|
+
case "coalesce":
|
|
90
|
+
return expr.expressions.some((e) => expressionReferencesColumns(e, columnNames));
|
|
91
|
+
case "object":
|
|
92
|
+
return Object.values(expr.properties).some((e) => expressionReferencesColumns(e, columnNames));
|
|
93
|
+
case "constant":
|
|
94
|
+
case "param":
|
|
95
|
+
case "reference":
|
|
96
|
+
case "allColumns":
|
|
97
|
+
case "aggregate":
|
|
98
|
+
case "windowFunction":
|
|
99
|
+
return false;
|
|
100
|
+
default:
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Recursively normalize operations and wrap WHERE clauses that reference window columns
|
|
106
|
+
*/
|
|
107
|
+
function visit(operation, parentAliases = new Set()) {
|
|
108
|
+
// Handle WHERE operations specially - this is where wrapping happens
|
|
109
|
+
if (operation.operationType === "where") {
|
|
110
|
+
const whereOp = operation;
|
|
111
|
+
// First, recursively normalize the source
|
|
112
|
+
const normalizedSource = visit(whereOp.source, parentAliases);
|
|
113
|
+
// Check if this WHERE references any window aliases from the source
|
|
114
|
+
if (referencesColumns(whereOp.predicate, normalizedSource.windowAliases) &&
|
|
115
|
+
normalizedSource.windowAliases.size > 0) {
|
|
116
|
+
// Need to wrap - but don't wrap if source is already a subquery FROM
|
|
117
|
+
const needsWrapping = !(normalizedSource.operation.operationType === "from" &&
|
|
118
|
+
normalizedSource.operation.subquery);
|
|
119
|
+
if (needsWrapping) {
|
|
120
|
+
// Get the original table name for aliasing
|
|
121
|
+
const originalTableName = getOriginalTableName(normalizedSource.operation);
|
|
122
|
+
// Create a subquery FROM operation
|
|
123
|
+
const subqueryFrom = {
|
|
124
|
+
type: "queryOperation",
|
|
125
|
+
operationType: "from",
|
|
126
|
+
subquery: normalizedSource.operation,
|
|
127
|
+
aliasHint: originalTableName,
|
|
128
|
+
};
|
|
129
|
+
// Return wrapped WHERE with the subquery
|
|
130
|
+
const wrappedWhere = {
|
|
131
|
+
type: "queryOperation",
|
|
132
|
+
operationType: "where",
|
|
133
|
+
source: subqueryFrom,
|
|
134
|
+
predicate: whereOp.predicate,
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
operation: wrappedWhere,
|
|
138
|
+
windowAliases: normalizedSource.windowAliases,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// No wrapping needed - return normalized WHERE
|
|
143
|
+
const normalizedWhere = {
|
|
144
|
+
type: "queryOperation",
|
|
145
|
+
operationType: "where",
|
|
146
|
+
source: normalizedSource.operation,
|
|
147
|
+
predicate: whereOp.predicate,
|
|
148
|
+
};
|
|
149
|
+
return {
|
|
150
|
+
operation: normalizedWhere,
|
|
151
|
+
windowAliases: normalizedSource.windowAliases,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
// Handle SELECT operations - track window aliases
|
|
155
|
+
if (operation.operationType === "select") {
|
|
156
|
+
const selectOp = operation;
|
|
157
|
+
const normalizedSource = visit(selectOp.source, parentAliases);
|
|
158
|
+
// Extract window aliases from this SELECT
|
|
159
|
+
const newAliases = getWindowAliasesFromSelect(selectOp, normalizedSource.windowAliases);
|
|
160
|
+
const normalizedSelect = {
|
|
161
|
+
type: "queryOperation",
|
|
162
|
+
operationType: "select",
|
|
163
|
+
source: normalizedSource.operation,
|
|
164
|
+
selector: selectOp.selector,
|
|
165
|
+
};
|
|
166
|
+
return {
|
|
167
|
+
operation: normalizedSelect,
|
|
168
|
+
windowAliases: newAliases,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
// For all other operations, recursively normalize source and propagate aliases
|
|
172
|
+
const sourceOp = operation;
|
|
173
|
+
if (sourceOp.source) {
|
|
174
|
+
const normalizedSource = visit(sourceOp.source, parentAliases);
|
|
175
|
+
// We need to reconstruct the operation with the normalized source
|
|
176
|
+
// Since we can't spread due to type constraints, handle common operations explicitly
|
|
177
|
+
const reconstructed = {
|
|
178
|
+
...operation,
|
|
179
|
+
source: normalizedSource.operation,
|
|
180
|
+
};
|
|
181
|
+
return {
|
|
182
|
+
operation: reconstructed,
|
|
183
|
+
windowAliases: normalizedSource.windowAliases,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// Base case: no source (e.g., FROM operation)
|
|
187
|
+
return {
|
|
188
|
+
operation,
|
|
189
|
+
windowAliases: new Set(),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get the original table name from an operation tree
|
|
194
|
+
*/
|
|
195
|
+
function getOriginalTableName(operation) {
|
|
196
|
+
if (operation.operationType === "from") {
|
|
197
|
+
const fromOp = operation;
|
|
198
|
+
return fromOp.aliasHint || fromOp.table;
|
|
199
|
+
}
|
|
200
|
+
const sourceOp = operation;
|
|
201
|
+
if (sourceOp.source) {
|
|
202
|
+
return getOriginalTableName(sourceOp.source);
|
|
203
|
+
}
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Main entry point: wrap queries that filter on window function columns
|
|
208
|
+
*/
|
|
209
|
+
export function wrapWindowFilters(operation) {
|
|
210
|
+
return visit(operation).operation;
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=normalize-window-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-window-filters.js","sourceRoot":"","sources":["../../src/parser/normalize-window-filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OXC Parser wrapper
|
|
3
|
+
* Wraps the OXC WASM parser for JavaScript/TypeScript parsing
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Parses JavaScript/TypeScript code using OXC parser
|
|
7
|
+
* @param code The JavaScript/TypeScript code to parse
|
|
8
|
+
* @returns The parsed AST or null if parsing fails
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseJavaScript(code: string): unknown;
|
|
11
|
+
//# sourceMappingURL=oxc-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oxc-parser.d.ts","sourceRoot":"","sources":["../../src/parser/oxc-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBrD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OXC Parser wrapper
|
|
3
|
+
* Wraps the OXC WASM parser for JavaScript/TypeScript parsing
|
|
4
|
+
*/
|
|
5
|
+
import { parseSync } from "oxc-parser";
|
|
6
|
+
/**
|
|
7
|
+
* Parses JavaScript/TypeScript code using OXC parser
|
|
8
|
+
* @param code The JavaScript/TypeScript code to parse
|
|
9
|
+
* @returns The parsed AST or null if parsing fails
|
|
10
|
+
*/
|
|
11
|
+
export function parseJavaScript(code) {
|
|
12
|
+
try {
|
|
13
|
+
const result = parseSync("query.ts", code, {
|
|
14
|
+
sourceType: "module",
|
|
15
|
+
});
|
|
16
|
+
if (result.errors.length > 0) {
|
|
17
|
+
console.error("Parse errors:", result.errors);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return result.program;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.error("Failed to parse JavaScript:", error);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=oxc-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oxc-parser.js","sourceRoot":"","sources":["../../src/parser/oxc-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;YACzC,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse cache configuration
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Configuration options for the parse result cache
|
|
6
|
+
*/
|
|
7
|
+
export interface ParseCacheConfig {
|
|
8
|
+
/**
|
|
9
|
+
* Whether caching is enabled
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Maximum number of cached parse results
|
|
15
|
+
* @default 1024
|
|
16
|
+
*/
|
|
17
|
+
capacity: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Update parse cache configuration
|
|
21
|
+
*/
|
|
22
|
+
export declare function setParseCacheConfig(config: Partial<ParseCacheConfig>): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get current parse cache configuration
|
|
25
|
+
*/
|
|
26
|
+
export declare function getParseCacheConfig(): ParseCacheConfig;
|
|
27
|
+
/**
|
|
28
|
+
* Clear all cached parse results
|
|
29
|
+
*/
|
|
30
|
+
export declare function clearParseCache(): void;
|
|
31
|
+
//# sourceMappingURL=parse-cache-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-cache-config.d.ts","sourceRoot":"","sources":["../../src/parser/parse-cache-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAM3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse cache configuration
|
|
3
|
+
*/
|
|
4
|
+
import { parseCache } from "./parse-cache.js";
|
|
5
|
+
/**
|
|
6
|
+
* Current cache configuration
|
|
7
|
+
*/
|
|
8
|
+
let currentConfig = {
|
|
9
|
+
enabled: true,
|
|
10
|
+
capacity: 1024,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Update parse cache configuration
|
|
14
|
+
*/
|
|
15
|
+
export function setParseCacheConfig(config) {
|
|
16
|
+
currentConfig = { ...currentConfig, ...config };
|
|
17
|
+
if (config.capacity !== undefined) {
|
|
18
|
+
parseCache.setCapacity(currentConfig.capacity);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get current parse cache configuration
|
|
23
|
+
*/
|
|
24
|
+
export function getParseCacheConfig() {
|
|
25
|
+
return { ...currentConfig };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Clear all cached parse results
|
|
29
|
+
*/
|
|
30
|
+
export function clearParseCache() {
|
|
31
|
+
parseCache.clear();
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=parse-cache-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-cache-config.js","sourceRoot":"","sources":["../../src/parser/parse-cache-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmB9C;;GAEG;AACH,IAAI,aAAa,GAAqB;IACpC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAEhD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse result cache implementation using LRU (Least Recently Used) eviction
|
|
3
|
+
*/
|
|
4
|
+
import type { QueryOperation } from "../query-tree/operations.js";
|
|
5
|
+
import type { VisitorContextSnapshot } from "../visitors/types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Cached parse result containing the operation tree and auto-generated parameters
|
|
8
|
+
*/
|
|
9
|
+
export interface CachedParseResult {
|
|
10
|
+
operation: QueryOperation;
|
|
11
|
+
autoParams: Record<string, unknown>;
|
|
12
|
+
autoParamInfos?: Record<string, unknown>;
|
|
13
|
+
contextSnapshot: VisitorContextSnapshot;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* LRU cache implementation for parse results
|
|
17
|
+
*/
|
|
18
|
+
export declare class ParseCache {
|
|
19
|
+
private capacity;
|
|
20
|
+
private cache;
|
|
21
|
+
private head;
|
|
22
|
+
private tail;
|
|
23
|
+
constructor(capacity: number);
|
|
24
|
+
/**
|
|
25
|
+
* Get a cached parse result
|
|
26
|
+
*/
|
|
27
|
+
get(key: string): CachedParseResult | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Store a parse result in the cache
|
|
30
|
+
*/
|
|
31
|
+
set(key: string, value: CachedParseResult): void;
|
|
32
|
+
/**
|
|
33
|
+
* Clear all cached entries
|
|
34
|
+
*/
|
|
35
|
+
clear(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Update the cache capacity
|
|
38
|
+
*/
|
|
39
|
+
setCapacity(capacity: number): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get current cache size
|
|
42
|
+
*/
|
|
43
|
+
size(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Move node to front of LRU list
|
|
46
|
+
*/
|
|
47
|
+
private moveToFront;
|
|
48
|
+
/**
|
|
49
|
+
* Add node to front of LRU list
|
|
50
|
+
*/
|
|
51
|
+
private addToFront;
|
|
52
|
+
/**
|
|
53
|
+
* Remove node from LRU list
|
|
54
|
+
*/
|
|
55
|
+
private removeNode;
|
|
56
|
+
/**
|
|
57
|
+
* Evict least recently used entry
|
|
58
|
+
*/
|
|
59
|
+
private evictLRU;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Singleton parse cache instance
|
|
63
|
+
*/
|
|
64
|
+
export declare const parseCache: ParseCache;
|
|
65
|
+
//# sourceMappingURL=parse-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-cache.d.ts","sourceRoot":"","sources":["../../src/parser/parse-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,EAAE,sBAAsB,CAAC;CACzC;AAcD;;GAEG;AACH,qBAAa,UAAU;IAKT,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,IAAI,CAAwB;gBAEhB,QAAQ,EAAE,MAAM;IAEpC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAW/C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAwBhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcnC;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAQjB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAuB,CAAC"}
|