kysely 0.24.2 → 0.26.0
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/README.md +31 -567
- package/dist/cjs/dialect/database-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +5 -1
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/cjs/driver/database-connection.d.ts +6 -0
- package/dist/cjs/driver/driver.d.ts +1 -1
- package/dist/cjs/driver/runtime-driver.js +6 -6
- package/dist/cjs/dynamic/dynamic.d.ts +1 -1
- package/dist/cjs/dynamic/dynamic.js +1 -1
- package/dist/cjs/expression/expression-builder.d.ts +263 -109
- package/dist/cjs/expression/expression-builder.js +38 -7
- package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
- package/dist/cjs/expression/expression-wrapper.js +70 -2
- package/dist/cjs/helpers/mysql.d.ts +3 -3
- package/dist/cjs/helpers/mysql.js +2 -2
- package/dist/cjs/helpers/postgres.d.ts +31 -19
- package/dist/cjs/helpers/postgres.js +30 -18
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.js +10 -0
- package/dist/cjs/kysely.d.ts +42 -15
- package/dist/cjs/kysely.js +41 -10
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -7
- package/dist/cjs/operation-node/aggregate-function-node.js +1 -1
- package/dist/cjs/operation-node/alter-column-node.d.ts +3 -5
- package/dist/cjs/operation-node/alter-column-node.js +2 -7
- package/dist/cjs/operation-node/alter-table-node.d.ts +3 -3
- package/dist/cjs/operation-node/alter-table-node.js +1 -2
- package/dist/cjs/operation-node/case-node.d.ts +19 -0
- package/dist/cjs/operation-node/case-node.js +42 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
- package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-index-node.d.ts +4 -3
- package/dist/cjs/operation-node/create-index-node.js +6 -0
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/join-node.d.ts +1 -2
- package/dist/cjs/operation-node/join-node.js +0 -8
- package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
- package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
- package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-path-node.js +25 -0
- package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
- package/dist/cjs/operation-node/json-reference-node.js +25 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +12 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +53 -3
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +12 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +6 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -9
- package/dist/cjs/operation-node/operator-node.js +12 -2
- package/dist/cjs/operation-node/query-node.d.ts +9 -10
- package/dist/cjs/operation-node/query-node.js +0 -8
- package/dist/cjs/operation-node/reference-node.d.ts +2 -2
- package/dist/cjs/operation-node/reference-node.js +1 -1
- package/dist/cjs/operation-node/references-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -8
- package/dist/cjs/operation-node/selection-node.d.ts +1 -1
- package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/values-node.d.ts +1 -1
- package/dist/cjs/operation-node/when-node.d.ts +14 -0
- package/dist/cjs/operation-node/when-node.js +24 -0
- package/dist/cjs/operation-node/with-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -11
- package/dist/cjs/parser/binary-operation-parser.js +40 -103
- package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
- package/dist/cjs/parser/data-type-parser.d.ts +1 -1
- package/dist/cjs/parser/default-value-parser.d.ts +1 -1
- package/dist/cjs/parser/expression-parser.d.ts +6 -5
- package/dist/cjs/parser/group-by-parser.d.ts +2 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
- package/dist/cjs/parser/join-parser.d.ts +4 -4
- package/dist/cjs/parser/order-by-parser.d.ts +4 -3
- package/dist/cjs/parser/order-by-parser.js +5 -1
- package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.d.ts +16 -8
- package/dist/cjs/parser/reference-parser.js +43 -16
- package/dist/cjs/parser/returning-parser.d.ts +2 -2
- package/dist/cjs/parser/select-parser.d.ts +9 -9
- package/dist/cjs/parser/table-parser.d.ts +14 -13
- package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
- package/dist/cjs/parser/update-set-parser.d.ts +3 -3
- package/dist/cjs/parser/update-set-parser.js +1 -3
- package/dist/cjs/parser/value-parser.d.ts +4 -4
- package/dist/cjs/parser/with-parser.d.ts +14 -9
- package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
- package/dist/cjs/query-builder/case-builder.d.ts +111 -0
- package/dist/cjs/query-builder/case-builder.js +75 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +130 -63
- package/dist/cjs/query-builder/delete-query-builder.js +42 -59
- package/dist/cjs/query-builder/delete-result.d.ts +1 -2
- package/dist/cjs/query-builder/delete-result.js +2 -8
- package/dist/cjs/query-builder/function-module.d.ts +78 -69
- package/dist/cjs/query-builder/function-module.js +12 -16
- package/dist/cjs/query-builder/having-interface.d.ts +2 -35
- package/dist/cjs/query-builder/insert-query-builder.d.ts +99 -47
- package/dist/cjs/query-builder/insert-query-builder.js +57 -26
- package/dist/cjs/query-builder/insert-result.d.ts +3 -4
- package/dist/cjs/query-builder/insert-result.js +5 -14
- package/dist/cjs/query-builder/join-builder.d.ts +2 -35
- package/dist/cjs/query-builder/join-builder.js +1 -56
- package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
- package/dist/cjs/query-builder/json-path-builder.js +191 -0
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +144 -73
- package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
- package/dist/cjs/query-builder/over-builder.d.ts +2 -2
- package/dist/cjs/query-builder/over-builder.js +1 -1
- package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +184 -138
- package/dist/cjs/query-builder/select-query-builder.js +64 -130
- package/dist/cjs/query-builder/update-query-builder.d.ts +143 -71
- package/dist/cjs/query-builder/update-query-builder.js +47 -60
- package/dist/cjs/query-builder/update-result.d.ts +3 -3
- package/dist/cjs/query-builder/update-result.js +5 -9
- package/dist/cjs/query-builder/where-interface.d.ts +73 -38
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/compiled-query.js +2 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +12 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +67 -5
- package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
- package/dist/cjs/query-creator.d.ts +4 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +13 -7
- package/dist/cjs/schema/alter-column-builder.js +20 -22
- package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
- package/dist/cjs/schema/alter-table-builder.js +2 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
- package/dist/cjs/schema/column-definition-builder.js +1 -2
- package/dist/cjs/schema/create-index-builder.d.ts +49 -7
- package/dist/cjs/schema/create-index-builder.js +52 -14
- package/dist/cjs/schema/create-table-builder.d.ts +2 -6
- package/dist/cjs/schema/create-table-builder.js +0 -6
- package/dist/cjs/schema/schema.d.ts +1 -2
- package/dist/cjs/schema/schema.js +2 -3
- package/dist/cjs/util/column-type.d.ts +21 -16
- package/dist/cjs/util/explainable.d.ts +1 -1
- package/dist/cjs/util/infer-result.d.ts +2 -2
- package/dist/cjs/util/log.d.ts +6 -6
- package/dist/cjs/util/log.js +4 -4
- package/dist/cjs/util/object-utils.d.ts +2 -1
- package/dist/cjs/util/require-all-props.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +54 -40
- package/dist/esm/dialect/database-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/esm/driver/database-connection.d.ts +6 -0
- package/dist/esm/driver/driver.d.ts +1 -1
- package/dist/esm/driver/runtime-driver.js +6 -6
- package/dist/esm/dynamic/dynamic.d.ts +1 -1
- package/dist/esm/dynamic/dynamic.js +1 -1
- package/dist/esm/expression/expression-builder.d.ts +263 -109
- package/dist/esm/expression/expression-builder.js +40 -9
- package/dist/esm/expression/expression-wrapper.d.ts +296 -5
- package/dist/esm/expression/expression-wrapper.js +67 -1
- package/dist/esm/helpers/mysql.d.ts +3 -3
- package/dist/esm/helpers/mysql.js +2 -2
- package/dist/esm/helpers/postgres.d.ts +31 -19
- package/dist/esm/helpers/postgres.js +30 -18
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/kysely.d.ts +42 -15
- package/dist/esm/kysely.js +42 -11
- package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -7
- package/dist/esm/operation-node/aggregate-function-node.js +1 -1
- package/dist/esm/operation-node/alter-column-node.d.ts +3 -5
- package/dist/esm/operation-node/alter-column-node.js +2 -7
- package/dist/esm/operation-node/alter-table-node.d.ts +3 -3
- package/dist/esm/operation-node/alter-table-node.js +1 -2
- package/dist/esm/operation-node/case-node.d.ts +19 -0
- package/dist/esm/operation-node/case-node.js +40 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
- package/dist/esm/operation-node/constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/create-index-node.d.ts +4 -3
- package/dist/esm/operation-node/create-index-node.js +6 -0
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/create-table-node.d.ts +2 -2
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-view-node.d.ts +1 -1
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
- package/dist/esm/operation-node/join-node.d.ts +1 -2
- package/dist/esm/operation-node/join-node.js +0 -8
- package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
- package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/esm/operation-node/json-path-leg-node.js +17 -0
- package/dist/esm/operation-node/json-path-node.d.ts +16 -0
- package/dist/esm/operation-node/json-path-node.js +23 -0
- package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
- package/dist/esm/operation-node/json-reference-node.js +23 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +12 -0
- package/dist/esm/operation-node/operation-node-transformer.js +53 -3
- package/dist/esm/operation-node/operation-node-visitor.d.ts +12 -0
- package/dist/esm/operation-node/operation-node-visitor.js +6 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -9
- package/dist/esm/operation-node/operator-node.js +10 -1
- package/dist/esm/operation-node/query-node.d.ts +9 -10
- package/dist/esm/operation-node/query-node.js +0 -8
- package/dist/esm/operation-node/reference-node.d.ts +2 -2
- package/dist/esm/operation-node/reference-node.js +1 -1
- package/dist/esm/operation-node/references-node.d.ts +1 -1
- package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -8
- package/dist/esm/operation-node/selection-node.d.ts +1 -1
- package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
- package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/esm/operation-node/update-query-node.d.ts +1 -1
- package/dist/esm/operation-node/values-node.d.ts +1 -1
- package/dist/esm/operation-node/when-node.d.ts +14 -0
- package/dist/esm/operation-node/when-node.js +22 -0
- package/dist/esm/operation-node/with-node.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -11
- package/dist/esm/parser/binary-operation-parser.js +38 -99
- package/dist/esm/parser/coalesce-parser.d.ts +1 -1
- package/dist/esm/parser/data-type-parser.d.ts +1 -1
- package/dist/esm/parser/default-value-parser.d.ts +1 -1
- package/dist/esm/parser/expression-parser.d.ts +6 -5
- package/dist/esm/parser/group-by-parser.d.ts +2 -2
- package/dist/esm/parser/insert-values-parser.d.ts +4 -4
- package/dist/esm/parser/join-parser.d.ts +4 -4
- package/dist/esm/parser/order-by-parser.d.ts +4 -3
- package/dist/esm/parser/order-by-parser.js +3 -0
- package/dist/esm/parser/partition-by-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.d.ts +16 -8
- package/dist/esm/parser/reference-parser.js +40 -15
- package/dist/esm/parser/returning-parser.d.ts +2 -2
- package/dist/esm/parser/select-parser.d.ts +9 -9
- package/dist/esm/parser/table-parser.d.ts +14 -13
- package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
- package/dist/esm/parser/update-set-parser.d.ts +3 -3
- package/dist/esm/parser/update-set-parser.js +2 -4
- package/dist/esm/parser/value-parser.d.ts +4 -4
- package/dist/esm/parser/with-parser.d.ts +14 -9
- package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
- package/dist/esm/query-builder/case-builder.d.ts +111 -0
- package/dist/esm/query-builder/case-builder.js +69 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +130 -63
- package/dist/esm/query-builder/delete-query-builder.js +43 -60
- package/dist/esm/query-builder/delete-result.d.ts +1 -2
- package/dist/esm/query-builder/delete-result.js +2 -8
- package/dist/esm/query-builder/function-module.d.ts +78 -69
- package/dist/esm/query-builder/function-module.js +13 -17
- package/dist/esm/query-builder/having-interface.d.ts +2 -35
- package/dist/esm/query-builder/insert-query-builder.d.ts +99 -47
- package/dist/esm/query-builder/insert-query-builder.js +57 -26
- package/dist/esm/query-builder/insert-result.d.ts +3 -4
- package/dist/esm/query-builder/insert-result.js +5 -14
- package/dist/esm/query-builder/join-builder.d.ts +2 -35
- package/dist/esm/query-builder/join-builder.js +2 -57
- package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
- package/dist/esm/query-builder/json-path-builder.js +186 -0
- package/dist/esm/query-builder/no-result-error.d.ts +1 -1
- package/dist/esm/query-builder/on-conflict-builder.d.ts +144 -73
- package/dist/esm/query-builder/on-conflict-builder.js +3 -112
- package/dist/esm/query-builder/over-builder.d.ts +2 -2
- package/dist/esm/query-builder/over-builder.js +1 -1
- package/dist/esm/query-builder/returning-interface.d.ts +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +184 -138
- package/dist/esm/query-builder/select-query-builder.js +65 -131
- package/dist/esm/query-builder/update-query-builder.d.ts +143 -71
- package/dist/esm/query-builder/update-query-builder.js +48 -61
- package/dist/esm/query-builder/update-result.d.ts +3 -3
- package/dist/esm/query-builder/update-result.js +5 -9
- package/dist/esm/query-builder/where-interface.d.ts +73 -38
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/compiled-query.js +2 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +12 -0
- package/dist/esm/query-compiler/default-query-compiler.js +67 -5
- package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
- package/dist/esm/query-creator.d.ts +4 -2
- package/dist/esm/schema/alter-column-builder.d.ts +13 -7
- package/dist/esm/schema/alter-column-builder.js +20 -22
- package/dist/esm/schema/alter-table-builder.d.ts +0 -4
- package/dist/esm/schema/alter-table-builder.js +2 -9
- package/dist/esm/schema/column-definition-builder.d.ts +1 -1
- package/dist/esm/schema/column-definition-builder.js +1 -2
- package/dist/esm/schema/create-index-builder.d.ts +49 -7
- package/dist/esm/schema/create-index-builder.js +54 -16
- package/dist/esm/schema/create-table-builder.d.ts +2 -6
- package/dist/esm/schema/create-table-builder.js +0 -6
- package/dist/esm/schema/schema.d.ts +1 -2
- package/dist/esm/schema/schema.js +2 -3
- package/dist/esm/util/column-type.d.ts +21 -16
- package/dist/esm/util/explainable.d.ts +1 -1
- package/dist/esm/util/infer-result.d.ts +2 -2
- package/dist/esm/util/log.d.ts +6 -6
- package/dist/esm/util/log.js +4 -4
- package/dist/esm/util/object-utils.d.ts +2 -1
- package/dist/esm/util/require-all-props.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +54 -40
- package/package.json +25 -23
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
|
-
export
|
|
4
|
+
export type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
|
|
5
5
|
export interface DropIndexNode extends OperationNode {
|
|
6
6
|
readonly kind: 'DropIndexNode';
|
|
7
7
|
readonly name: SchemableIdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropSchemaNodeParams = Omit<Partial<DropSchemaNode>, 'kind' | 'schema'>;
|
|
4
4
|
export interface DropSchemaNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropSchemaNode';
|
|
6
6
|
readonly schema: IdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropTablexNodeParams = Omit<Partial<DropTableNode>, 'kind' | 'table'>;
|
|
4
4
|
export interface DropTableNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropTableNode';
|
|
6
6
|
readonly table: TableNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropTypeNodeParams = Omit<Partial<DropTypeNode>, 'kind' | 'name'>;
|
|
4
4
|
export interface DropTypeNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropTypeNode';
|
|
6
6
|
readonly name: SchemableIdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropViewNodeParams = Omit<Partial<DropViewNode>, 'kind' | 'name'>;
|
|
4
4
|
export interface DropViewNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropViewNode';
|
|
6
6
|
readonly name: SchemableIdentifierNode;
|
|
@@ -3,7 +3,7 @@ import { IdentifierNode } from './identifier-node.js';
|
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
4
|
import { OnModifyForeignAction, ReferencesNode } from './references-node.js';
|
|
5
5
|
import { TableNode } from './table-node.js';
|
|
6
|
-
export
|
|
6
|
+
export type ForeignKeyConstraintNodeProps = Omit<ForeignKeyConstraintNode, 'kind' | 'columns' | 'references'>;
|
|
7
7
|
export interface ForeignKeyConstraintNode extends OperationNode {
|
|
8
8
|
readonly kind: 'ForeignKeyConstraintNode';
|
|
9
9
|
readonly columns: ReadonlyArray<ColumnNode>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export
|
|
2
|
+
export type GeneratedNodeParams = Omit<GeneratedNode, 'kind' | 'expression'>;
|
|
3
3
|
export interface GeneratedNode extends OperationNode {
|
|
4
4
|
readonly kind: 'GeneratedNode';
|
|
5
5
|
readonly byDefault?: boolean;
|
|
@@ -6,7 +6,7 @@ import { OperationNode } from './operation-node.js';
|
|
|
6
6
|
import { ReturningNode } from './returning-node.js';
|
|
7
7
|
import { TableNode } from './table-node.js';
|
|
8
8
|
import { WithNode } from './with-node.js';
|
|
9
|
-
export
|
|
9
|
+
export type InsertQueryNodeProps = Omit<InsertQueryNode, 'kind' | 'into'>;
|
|
10
10
|
export interface InsertQueryNode extends OperationNode {
|
|
11
11
|
readonly kind: 'InsertQueryNode';
|
|
12
12
|
readonly into: TableNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnNode } from './on-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type JoinType = 'InnerJoin' | 'LeftJoin' | 'RightJoin' | 'FullJoin' | 'LateralInnerJoin' | 'LateralLeftJoin';
|
|
4
4
|
export interface JoinNode extends OperationNode {
|
|
5
5
|
readonly kind: 'JoinNode';
|
|
6
6
|
readonly joinType: JoinType;
|
|
@@ -15,5 +15,4 @@ export declare const JoinNode: Readonly<{
|
|
|
15
15
|
create(joinType: JoinType, table: OperationNode): JoinNode;
|
|
16
16
|
createWithOn(joinType: JoinType, table: OperationNode, on: OperationNode): JoinNode;
|
|
17
17
|
cloneWithOn(joinNode: JoinNode, operation: OperationNode): JoinNode;
|
|
18
|
-
cloneWithOrOn(joinNode: JoinNode, operation: OperationNode): JoinNode;
|
|
19
18
|
}>;
|
|
@@ -32,12 +32,4 @@ export const JoinNode = freeze({
|
|
|
32
32
|
: OnNode.create(operation),
|
|
33
33
|
});
|
|
34
34
|
},
|
|
35
|
-
cloneWithOrOn(joinNode, operation) {
|
|
36
|
-
return freeze({
|
|
37
|
-
...joinNode,
|
|
38
|
-
on: joinNode.on
|
|
39
|
-
? OnNode.cloneWithOperation(joinNode.on, 'Or', operation)
|
|
40
|
-
: OnNode.create(operation),
|
|
41
|
-
});
|
|
42
|
-
},
|
|
43
35
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { OperatorNode } from './operator-node.js';
|
|
3
|
+
import { ValueNode } from './value-node.js';
|
|
4
|
+
export interface JSONOperatorChainNode extends OperationNode {
|
|
5
|
+
readonly kind: 'JSONOperatorChainNode';
|
|
6
|
+
readonly operator: OperatorNode;
|
|
7
|
+
readonly values: readonly ValueNode[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const JSONOperatorChainNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is JSONOperatorChainNode;
|
|
14
|
+
create(operator: OperatorNode): JSONOperatorChainNode;
|
|
15
|
+
cloneWithValue(node: JSONOperatorChainNode, value: ValueNode): JSONOperatorChainNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./json-operator-chain-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONOperatorChainNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONOperatorChainNode';
|
|
9
|
+
},
|
|
10
|
+
create(operator) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONOperatorChainNode',
|
|
13
|
+
operator,
|
|
14
|
+
values: freeze([]),
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithValue(node, value) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...node,
|
|
20
|
+
values: freeze([...node.values, value]),
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
export type JSONPathLegType = 'Member' | 'ArrayLocation';
|
|
3
|
+
export interface JSONPathLegNode extends OperationNode {
|
|
4
|
+
readonly kind: 'JSONPathLegNode';
|
|
5
|
+
readonly type: JSONPathLegType;
|
|
6
|
+
readonly value: string | number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const JSONPathLegNode: Readonly<{
|
|
12
|
+
is(node: OperationNode): node is JSONPathLegNode;
|
|
13
|
+
create(type: JSONPathLegType, value: string | number): JSONPathLegNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="./json-path-leg-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONPathLegNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONPathLegNode';
|
|
9
|
+
},
|
|
10
|
+
create(type, value) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONPathLegNode',
|
|
13
|
+
type,
|
|
14
|
+
value,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { JSONPathLegNode } from './json-path-leg-node.js';
|
|
2
|
+
import { OperationNode } from './operation-node.js';
|
|
3
|
+
import { OperatorNode } from './operator-node.js';
|
|
4
|
+
export interface JSONPathNode extends OperationNode {
|
|
5
|
+
readonly kind: 'JSONPathNode';
|
|
6
|
+
readonly inOperator?: OperatorNode;
|
|
7
|
+
readonly pathLegs: ReadonlyArray<JSONPathLegNode>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const JSONPathNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is JSONPathNode;
|
|
14
|
+
create(inOperator?: OperatorNode): JSONPathNode;
|
|
15
|
+
cloneWithLeg(jsonPathNode: JSONPathNode, pathLeg: JSONPathLegNode): JSONPathNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./json-path-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONPathNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONPathNode';
|
|
9
|
+
},
|
|
10
|
+
create(inOperator) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONPathNode',
|
|
13
|
+
inOperator,
|
|
14
|
+
pathLegs: freeze([]),
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithLeg(jsonPathNode, pathLeg) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...jsonPathNode,
|
|
20
|
+
pathLegs: freeze([...jsonPathNode.pathLegs, pathLeg]),
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { JSONOperatorChainNode } from './json-operator-chain-node.js';
|
|
2
|
+
import { JSONPathNode } from './json-path-node.js';
|
|
3
|
+
import { OperationNode } from './operation-node.js';
|
|
4
|
+
import { ReferenceNode } from './reference-node.js';
|
|
5
|
+
export interface JSONReferenceNode extends OperationNode {
|
|
6
|
+
readonly kind: 'JSONReferenceNode';
|
|
7
|
+
readonly reference: ReferenceNode;
|
|
8
|
+
readonly traversal: JSONPathNode | JSONOperatorChainNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const JSONReferenceNode: Readonly<{
|
|
14
|
+
is(node: OperationNode): node is JSONReferenceNode;
|
|
15
|
+
create(reference: ReferenceNode, traversal: JSONPathNode | JSONOperatorChainNode): JSONReferenceNode;
|
|
16
|
+
cloneWithTraversal(node: JSONReferenceNode, traversal: JSONPathNode | JSONOperatorChainNode): JSONReferenceNode;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./json-reference-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONReferenceNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONReferenceNode';
|
|
9
|
+
},
|
|
10
|
+
create(reference, traversal) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONReferenceNode',
|
|
13
|
+
reference,
|
|
14
|
+
traversal,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithTraversal(node, traversal) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...node,
|
|
20
|
+
traversal,
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -3,7 +3,7 @@ import { ColumnUpdateNode } from './column-update-node.js';
|
|
|
3
3
|
import { IdentifierNode } from './identifier-node.js';
|
|
4
4
|
import { OperationNode } from './operation-node.js';
|
|
5
5
|
import { WhereNode } from './where-node.js';
|
|
6
|
-
export
|
|
6
|
+
export type OnConflictNodeProps = Omit<OnConflictNode, 'kind' | 'indexWhere' | 'updateWhere'>;
|
|
7
7
|
export interface OnConflictNode extends OperationNode {
|
|
8
8
|
readonly kind: 'OnConflictNode';
|
|
9
9
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ColumnUpdateNode } from './column-update-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type OnDuplicateKeyNodeProps = Omit<OnDuplicateKeyNode, 'kind'>;
|
|
4
4
|
export interface OnDuplicateKeyNode extends OperationNode {
|
|
5
5
|
readonly kind: 'OnDuplicateKeyNode';
|
|
6
6
|
readonly updates: ReadonlyArray<ColumnUpdateNode>;
|
|
@@ -78,6 +78,12 @@ import { BinaryOperationNode } from './binary-operation-node.js';
|
|
|
78
78
|
import { UnaryOperationNode } from './unary-operation-node.js';
|
|
79
79
|
import { UsingNode } from './using-node.js';
|
|
80
80
|
import { FunctionNode } from './function-node.js';
|
|
81
|
+
import { CaseNode } from './case-node.js';
|
|
82
|
+
import { WhenNode } from './when-node.js';
|
|
83
|
+
import { JSONReferenceNode } from './json-reference-node.js';
|
|
84
|
+
import { JSONPathNode } from './json-path-node.js';
|
|
85
|
+
import { JSONPathLegNode } from './json-path-leg-node.js';
|
|
86
|
+
import { JSONOperatorChainNode } from './json-operator-chain-node.js';
|
|
81
87
|
/**
|
|
82
88
|
* Transforms an operation node tree into another one.
|
|
83
89
|
*
|
|
@@ -185,6 +191,12 @@ export declare class OperationNodeTransformer {
|
|
|
185
191
|
protected transformUnaryOperation(node: UnaryOperationNode): UnaryOperationNode;
|
|
186
192
|
protected transformUsing(node: UsingNode): UsingNode;
|
|
187
193
|
protected transformFunction(node: FunctionNode): FunctionNode;
|
|
194
|
+
protected transformCase(node: CaseNode): CaseNode;
|
|
195
|
+
protected transformWhen(node: WhenNode): WhenNode;
|
|
196
|
+
protected transformJSONReference(node: JSONReferenceNode): JSONReferenceNode;
|
|
197
|
+
protected transformJSONPath(node: JSONPathNode): JSONPathNode;
|
|
198
|
+
protected transformJSONPathLeg(node: JSONPathLegNode): JSONPathLegNode;
|
|
199
|
+
protected transformJSONOperatorChain(node: JSONOperatorChainNode): JSONOperatorChainNode;
|
|
188
200
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
189
201
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
190
202
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
@@ -112,6 +112,12 @@ export class OperationNodeTransformer {
|
|
|
112
112
|
UnaryOperationNode: this.transformUnaryOperation.bind(this),
|
|
113
113
|
UsingNode: this.transformUsing.bind(this),
|
|
114
114
|
FunctionNode: this.transformFunction.bind(this),
|
|
115
|
+
CaseNode: this.transformCase.bind(this),
|
|
116
|
+
WhenNode: this.transformWhen.bind(this),
|
|
117
|
+
JSONReferenceNode: this.transformJSONReference.bind(this),
|
|
118
|
+
JSONPathNode: this.transformJSONPath.bind(this),
|
|
119
|
+
JSONPathLegNode: this.transformJSONPathLeg.bind(this),
|
|
120
|
+
JSONOperatorChainNode: this.transformJSONOperatorChain.bind(this),
|
|
115
121
|
});
|
|
116
122
|
transformNode(node) {
|
|
117
123
|
if (!node) {
|
|
@@ -185,8 +191,8 @@ export class OperationNodeTransformer {
|
|
|
185
191
|
transformReference(node) {
|
|
186
192
|
return requireAllProps({
|
|
187
193
|
kind: 'ReferenceNode',
|
|
188
|
-
table: this.transformNode(node.table),
|
|
189
194
|
column: this.transformNode(node.column),
|
|
195
|
+
table: this.transformNode(node.table),
|
|
190
196
|
});
|
|
191
197
|
}
|
|
192
198
|
transformAnd(node) {
|
|
@@ -402,7 +408,7 @@ export class OperationNodeTransformer {
|
|
|
402
408
|
kind: 'CreateIndexNode',
|
|
403
409
|
name: this.transformNode(node.name),
|
|
404
410
|
table: this.transformNode(node.table),
|
|
405
|
-
|
|
411
|
+
columns: this.transformNodeList(node.columns),
|
|
406
412
|
unique: node.unique,
|
|
407
413
|
using: this.transformNode(node.using),
|
|
408
414
|
ifNotExists: node.ifNotExists,
|
|
@@ -651,7 +657,7 @@ export class OperationNodeTransformer {
|
|
|
651
657
|
transformAggregateFunction(node) {
|
|
652
658
|
return requireAllProps({
|
|
653
659
|
kind: 'AggregateFunctionNode',
|
|
654
|
-
aggregated: this.
|
|
660
|
+
aggregated: this.transformNodeList(node.aggregated),
|
|
655
661
|
distinct: node.distinct,
|
|
656
662
|
filter: this.transformNode(node.filter),
|
|
657
663
|
func: node.func,
|
|
@@ -705,6 +711,50 @@ export class OperationNodeTransformer {
|
|
|
705
711
|
arguments: this.transformNodeList(node.arguments),
|
|
706
712
|
});
|
|
707
713
|
}
|
|
714
|
+
transformCase(node) {
|
|
715
|
+
return requireAllProps({
|
|
716
|
+
kind: 'CaseNode',
|
|
717
|
+
value: this.transformNode(node.value),
|
|
718
|
+
when: this.transformNodeList(node.when),
|
|
719
|
+
else: this.transformNode(node.else),
|
|
720
|
+
isStatement: node.isStatement,
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
transformWhen(node) {
|
|
724
|
+
return requireAllProps({
|
|
725
|
+
kind: 'WhenNode',
|
|
726
|
+
condition: this.transformNode(node.condition),
|
|
727
|
+
result: this.transformNode(node.result),
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
transformJSONReference(node) {
|
|
731
|
+
return requireAllProps({
|
|
732
|
+
kind: 'JSONReferenceNode',
|
|
733
|
+
reference: this.transformNode(node.reference),
|
|
734
|
+
traversal: this.transformNode(node.traversal),
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
transformJSONPath(node) {
|
|
738
|
+
return requireAllProps({
|
|
739
|
+
kind: 'JSONPathNode',
|
|
740
|
+
inOperator: this.transformNode(node.inOperator),
|
|
741
|
+
pathLegs: this.transformNodeList(node.pathLegs),
|
|
742
|
+
});
|
|
743
|
+
}
|
|
744
|
+
transformJSONPathLeg(node) {
|
|
745
|
+
return requireAllProps({
|
|
746
|
+
kind: 'JSONPathLegNode',
|
|
747
|
+
type: node.type,
|
|
748
|
+
value: node.value,
|
|
749
|
+
});
|
|
750
|
+
}
|
|
751
|
+
transformJSONOperatorChain(node) {
|
|
752
|
+
return requireAllProps({
|
|
753
|
+
kind: 'JSONOperatorChainNode',
|
|
754
|
+
operator: this.transformNode(node.operator),
|
|
755
|
+
values: this.transformNodeList(node.values),
|
|
756
|
+
});
|
|
757
|
+
}
|
|
708
758
|
transformDataType(node) {
|
|
709
759
|
// An Object.freezed leaf node. No need to clone.
|
|
710
760
|
return node;
|
|
@@ -78,6 +78,12 @@ import { BinaryOperationNode } from './binary-operation-node.js';
|
|
|
78
78
|
import { UnaryOperationNode } from './unary-operation-node.js';
|
|
79
79
|
import { UsingNode } from './using-node.js';
|
|
80
80
|
import { FunctionNode } from './function-node.js';
|
|
81
|
+
import { WhenNode } from './when-node.js';
|
|
82
|
+
import { CaseNode } from './case-node.js';
|
|
83
|
+
import { JSONReferenceNode } from './json-reference-node.js';
|
|
84
|
+
import { JSONPathNode } from './json-path-node.js';
|
|
85
|
+
import { JSONPathLegNode } from './json-path-leg-node.js';
|
|
86
|
+
import { JSONOperatorChainNode } from './json-operator-chain-node.js';
|
|
81
87
|
export declare abstract class OperationNodeVisitor {
|
|
82
88
|
#private;
|
|
83
89
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -162,4 +168,10 @@ export declare abstract class OperationNodeVisitor {
|
|
|
162
168
|
protected abstract visitUnaryOperation(node: UnaryOperationNode): void;
|
|
163
169
|
protected abstract visitUsing(node: UsingNode): void;
|
|
164
170
|
protected abstract visitFunction(node: FunctionNode): void;
|
|
171
|
+
protected abstract visitCase(node: CaseNode): void;
|
|
172
|
+
protected abstract visitWhen(node: WhenNode): void;
|
|
173
|
+
protected abstract visitJSONReference(node: JSONReferenceNode): void;
|
|
174
|
+
protected abstract visitJSONPath(node: JSONPathNode): void;
|
|
175
|
+
protected abstract visitJSONPathLeg(node: JSONPathLegNode): void;
|
|
176
|
+
protected abstract visitJSONOperatorChain(node: JSONOperatorChainNode): void;
|
|
165
177
|
}
|
|
@@ -85,6 +85,12 @@ export class OperationNodeVisitor {
|
|
|
85
85
|
UnaryOperationNode: this.visitUnaryOperation.bind(this),
|
|
86
86
|
UsingNode: this.visitUsing.bind(this),
|
|
87
87
|
FunctionNode: this.visitFunction.bind(this),
|
|
88
|
+
CaseNode: this.visitCase.bind(this),
|
|
89
|
+
WhenNode: this.visitWhen.bind(this),
|
|
90
|
+
JSONReferenceNode: this.visitJSONReference.bind(this),
|
|
91
|
+
JSONPathNode: this.visitJSONPath.bind(this),
|
|
92
|
+
JSONPathLegNode: this.visitJSONPathLeg.bind(this),
|
|
93
|
+
JSONOperatorChainNode: this.visitJSONOperatorChain.bind(this),
|
|
88
94
|
});
|
|
89
95
|
visitNode = (node) => {
|
|
90
96
|
this.nodeStack.push(node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->"];
|
|
2
|
+
export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp"];
|
|
3
3
|
export declare const ARITHMETIC_OPERATORS: readonly ["+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>"];
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const JSON_OPERATORS: readonly ["->", "->>"];
|
|
5
|
+
export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"];
|
|
5
6
|
export declare const UNARY_FILTER_OPERATORS: readonly ["exists", "not exists"];
|
|
6
7
|
export declare const UNARY_OPERATORS: readonly ["not", "-", "exists", "not exists"];
|
|
7
|
-
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "not", "-", "exists", "not exists"];
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
8
|
+
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists"];
|
|
9
|
+
export type ComparisonOperator = (typeof COMPARISON_OPERATORS)[number];
|
|
10
|
+
export type ArithmeticOperator = (typeof ARITHMETIC_OPERATORS)[number];
|
|
11
|
+
export type JSONOperator = (typeof JSON_OPERATORS)[number];
|
|
12
|
+
export type JSONOperatorWith$ = JSONOperator | `${JSONOperator}$`;
|
|
13
|
+
export type BinaryOperator = (typeof BINARY_OPERATORS)[number];
|
|
14
|
+
export type UnaryOperator = (typeof UNARY_OPERATORS)[number];
|
|
15
|
+
export type UnaryFilterOperator = (typeof UNARY_FILTER_OPERATORS)[number];
|
|
16
|
+
export type Operator = (typeof OPERATORS)[number];
|
|
14
17
|
export interface OperatorNode extends OperationNode {
|
|
15
18
|
readonly kind: 'OperatorNode';
|
|
16
19
|
readonly operator: Operator;
|
|
@@ -26,3 +29,4 @@ export declare function isOperator(op: unknown): op is Operator;
|
|
|
26
29
|
export declare function isBinaryOperator(op: unknown): op is BinaryOperator;
|
|
27
30
|
export declare function isComparisonOperator(op: unknown): op is ComparisonOperator;
|
|
28
31
|
export declare function isArithmeticOperator(op: unknown): op is ArithmeticOperator;
|
|
32
|
+
export declare function isJSONOperator(op: unknown): op is JSONOperator;
|
|
@@ -33,6 +33,7 @@ export const COMPARISON_OPERATORS = [
|
|
|
33
33
|
'@@@',
|
|
34
34
|
'!!',
|
|
35
35
|
'<->',
|
|
36
|
+
'regexp',
|
|
36
37
|
];
|
|
37
38
|
export const ARITHMETIC_OPERATORS = [
|
|
38
39
|
'+',
|
|
@@ -47,6 +48,7 @@ export const ARITHMETIC_OPERATORS = [
|
|
|
47
48
|
'<<',
|
|
48
49
|
'>>',
|
|
49
50
|
];
|
|
51
|
+
export const JSON_OPERATORS = ['->', '->>'];
|
|
50
52
|
export const BINARY_OPERATORS = [
|
|
51
53
|
...COMPARISON_OPERATORS,
|
|
52
54
|
...ARITHMETIC_OPERATORS,
|
|
@@ -55,7 +57,11 @@ export const BINARY_OPERATORS = [
|
|
|
55
57
|
];
|
|
56
58
|
export const UNARY_FILTER_OPERATORS = ['exists', 'not exists'];
|
|
57
59
|
export const UNARY_OPERATORS = ['not', '-', ...UNARY_FILTER_OPERATORS];
|
|
58
|
-
export const OPERATORS = [
|
|
60
|
+
export const OPERATORS = [
|
|
61
|
+
...BINARY_OPERATORS,
|
|
62
|
+
...JSON_OPERATORS,
|
|
63
|
+
...UNARY_OPERATORS,
|
|
64
|
+
];
|
|
59
65
|
/**
|
|
60
66
|
* @internal
|
|
61
67
|
*/
|
|
@@ -82,3 +88,6 @@ export function isComparisonOperator(op) {
|
|
|
82
88
|
export function isArithmeticOperator(op) {
|
|
83
89
|
return isString(op) && ARITHMETIC_OPERATORS.includes(op);
|
|
84
90
|
}
|
|
91
|
+
export function isJSONOperator(op) {
|
|
92
|
+
return isString(op) && JSON_OPERATORS.includes(op);
|
|
93
|
+
}
|
|
@@ -10,17 +10,17 @@ import { OperationNode } from './operation-node.js';
|
|
|
10
10
|
import { ExplainNode } from './explain-node.js';
|
|
11
11
|
import { ExplainFormat } from '../util/explainable.js';
|
|
12
12
|
import { Expression } from '../expression/expression.js';
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export type QueryNode = SelectQueryNode | InsertQueryNode | UpdateQueryNode | DeleteQueryNode;
|
|
14
|
+
type HasJoins = {
|
|
15
15
|
joins?: ReadonlyArray<JoinNode>;
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
type HasWhere = {
|
|
18
18
|
where?: WhereNode;
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
type HasReturning = {
|
|
21
21
|
returning?: ReturningNode;
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
type HasExplain = {
|
|
24
24
|
explain?: ExplainNode;
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
@@ -29,10 +29,9 @@ declare type HasExplain = {
|
|
|
29
29
|
export declare const QueryNode: Readonly<{
|
|
30
30
|
is(node: OperationNode): node is QueryNode;
|
|
31
31
|
cloneWithWhere<T extends HasWhere>(node: T, operation: OperationNode): T;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
cloneWithExplain<T_5 extends HasExplain>(node: T_5, format: ExplainFormat | undefined, options: Expression<any> | undefined): T_5;
|
|
32
|
+
cloneWithJoin<T_1 extends HasJoins>(node: T_1, join: JoinNode): T_1;
|
|
33
|
+
cloneWithReturning<T_2 extends HasReturning>(node: T_2, selections: ReadonlyArray<SelectionNode>): T_2;
|
|
34
|
+
cloneWithoutWhere<T_3 extends HasWhere>(node: T_3): T_3;
|
|
35
|
+
cloneWithExplain<T_4 extends HasExplain>(node: T_4, format: ExplainFormat | undefined, options: Expression<any> | undefined): T_4;
|
|
37
36
|
}>;
|
|
38
37
|
export {};
|
|
@@ -25,14 +25,6 @@ export const QueryNode = freeze({
|
|
|
25
25
|
: WhereNode.create(operation),
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
|
-
cloneWithOrWhere(node, operation) {
|
|
29
|
-
return freeze({
|
|
30
|
-
...node,
|
|
31
|
-
where: node.where
|
|
32
|
-
? WhereNode.cloneWithOperation(node.where, 'Or', operation)
|
|
33
|
-
: WhereNode.create(operation),
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
28
|
cloneWithJoin(node, join) {
|
|
37
29
|
return freeze({
|
|
38
30
|
...node,
|
|
@@ -4,14 +4,14 @@ import { TableNode } from './table-node.js';
|
|
|
4
4
|
import { SelectAllNode } from './select-all-node.js';
|
|
5
5
|
export interface ReferenceNode extends OperationNode {
|
|
6
6
|
readonly kind: 'ReferenceNode';
|
|
7
|
-
readonly table: TableNode;
|
|
8
7
|
readonly column: ColumnNode | SelectAllNode;
|
|
8
|
+
readonly table?: TableNode;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
13
|
export declare const ReferenceNode: Readonly<{
|
|
14
14
|
is(node: OperationNode): node is ReferenceNode;
|
|
15
|
-
create(
|
|
15
|
+
create(column: ColumnNode, table?: TableNode): ReferenceNode;
|
|
16
16
|
createSelectAll(table: TableNode): ReferenceNode;
|
|
17
17
|
}>;
|
|
@@ -3,7 +3,7 @@ import { ColumnNode } from './column-node.js';
|
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
4
|
import { ArrayItemType } from '../util/type-utils.js';
|
|
5
5
|
export declare const ON_MODIFY_FOREIGN_ACTIONS: readonly ["no action", "restrict", "cascade", "set null", "set default"];
|
|
6
|
-
export
|
|
6
|
+
export type OnModifyForeignAction = ArrayItemType<typeof ON_MODIFY_FOREIGN_ACTIONS>;
|
|
7
7
|
export interface ReferencesNode extends OperationNode {
|
|
8
8
|
readonly kind: 'ReferencesNode';
|
|
9
9
|
readonly table: TableNode;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export
|
|
2
|
+
export type SelectModifier = 'ForUpdate' | 'ForNoKeyUpdate' | 'ForShare' | 'ForKeyShare' | 'NoWait' | 'SkipLocked' | 'Distinct';
|
|
3
3
|
export interface SelectModifierNode extends OperationNode {
|
|
4
4
|
readonly kind: 'SelectModifierNode';
|
|
5
5
|
readonly modifier?: SelectModifier;
|