joist-core 2.3.0 → 2.4.0-next.2
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/build/BaseEntity.cjs +112 -0
- package/build/BaseEntity.cjs.map +1 -0
- package/build/BaseEntity.d.cts +73 -0
- package/build/BaseEntity.d.cts.map +1 -0
- package/build/BaseEntity.d.mts +73 -0
- package/build/BaseEntity.d.mts.map +1 -0
- package/build/BaseEntity.js +99 -110
- package/build/BaseEntity.js.map +1 -1
- package/build/Entity.cjs +12 -0
- package/build/Entity.cjs.map +1 -0
- package/build/Entity.d.cts +42 -0
- package/build/Entity.d.cts.map +1 -0
- package/build/Entity.d.mts +42 -0
- package/build/Entity.d.mts.map +1 -0
- package/build/Entity.js +8 -5
- package/build/Entity.js.map +1 -1
- package/build/EntityFields.cjs +1 -0
- package/build/EntityFields.d.cts +36 -0
- package/build/EntityFields.d.cts.map +1 -0
- package/build/EntityFields.d.mts +36 -0
- package/build/EntityFields.d.mts.map +1 -0
- package/build/EntityFields.js +1 -3
- package/build/EntityManager.cjs +1935 -0
- package/build/EntityManager.cjs.map +1 -0
- package/build/EntityManager.d.cts +835 -0
- package/build/EntityManager.d.cts.map +1 -0
- package/build/EntityManager.d.mts +835 -0
- package/build/EntityManager.d.mts.map +1 -0
- package/build/EntityManager.js +1812 -2211
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.cjs +75 -0
- package/build/EntityMetadata.cjs.map +1 -0
- package/build/EntityMetadata.d.cts +262 -0
- package/build/EntityMetadata.d.cts.map +1 -0
- package/build/EntityMetadata.d.mts +262 -0
- package/build/EntityMetadata.d.mts.map +1 -0
- package/build/EntityMetadata.js +31 -48
- package/build/EntityMetadata.js.map +1 -1
- package/build/EnumMetadata.cjs +1 -0
- package/build/EnumMetadata.d.cts +18 -0
- package/build/EnumMetadata.d.cts.map +1 -0
- package/build/EnumMetadata.d.mts +18 -0
- package/build/EnumMetadata.d.mts.map +1 -0
- package/build/EnumMetadata.js +1 -3
- package/build/IndexManager.cjs +178 -0
- package/build/IndexManager.cjs.map +1 -0
- package/build/IndexManager.d.cts +36 -0
- package/build/IndexManager.d.cts.map +1 -0
- package/build/IndexManager.d.mts +36 -0
- package/build/IndexManager.d.mts.map +1 -0
- package/build/IndexManager.js +169 -218
- package/build/IndexManager.js.map +1 -1
- package/build/InstanceData.cjs +218 -0
- package/build/InstanceData.cjs.map +1 -0
- package/build/InstanceData.d.cts +98 -0
- package/build/InstanceData.d.cts.map +1 -0
- package/build/InstanceData.d.mts +98 -0
- package/build/InstanceData.d.mts.map +1 -0
- package/build/InstanceData.js +215 -222
- package/build/InstanceData.js.map +1 -1
- package/build/PluginManager.cjs +89 -0
- package/build/PluginManager.cjs.map +1 -0
- package/build/PluginManager.d.cts +112 -0
- package/build/PluginManager.d.cts.map +1 -0
- package/build/PluginManager.d.mts +112 -0
- package/build/PluginManager.d.mts.map +1 -0
- package/build/PluginManager.js +80 -106
- package/build/PluginManager.js.map +1 -1
- package/build/RowData.cjs +37 -0
- package/build/RowData.cjs.map +1 -0
- package/build/RowData.d.cts +53 -0
- package/build/RowData.d.cts.map +1 -0
- package/build/RowData.d.mts +53 -0
- package/build/RowData.d.mts.map +1 -0
- package/build/RowData.js +35 -0
- package/build/RowData.js.map +1 -0
- package/build/_virtual/_rolldown/runtime.cjs +23 -0
- package/build/batchloaders/BatchLoader.cjs +49 -0
- package/build/batchloaders/BatchLoader.cjs.map +1 -0
- package/build/batchloaders/BatchLoader.d.cts +17 -0
- package/build/batchloaders/BatchLoader.d.cts.map +1 -0
- package/build/batchloaders/BatchLoader.d.mts +17 -0
- package/build/batchloaders/BatchLoader.d.mts.map +1 -0
- package/build/batchloaders/BatchLoader.js +45 -54
- package/build/batchloaders/BatchLoader.js.map +1 -1
- package/build/batchloaders/enumCollectionBatchLoader.cjs +66 -0
- package/build/batchloaders/enumCollectionBatchLoader.cjs.map +1 -0
- package/build/batchloaders/enumCollectionBatchLoader.d.cts +11 -0
- package/build/batchloaders/enumCollectionBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/enumCollectionBatchLoader.d.mts +11 -0
- package/build/batchloaders/enumCollectionBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/enumCollectionBatchLoader.js +58 -48
- package/build/batchloaders/enumCollectionBatchLoader.js.map +1 -1
- package/build/batchloaders/loadBatchLoader.cjs +78 -0
- package/build/batchloaders/loadBatchLoader.cjs.map +1 -0
- package/build/batchloaders/loadBatchLoader.d.cts +20 -0
- package/build/batchloaders/loadBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/loadBatchLoader.d.mts +20 -0
- package/build/batchloaders/loadBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/loadBatchLoader.js +72 -51
- package/build/batchloaders/loadBatchLoader.js.map +1 -1
- package/build/batchloaders/manyToManyBatchLoader.cjs +78 -0
- package/build/batchloaders/manyToManyBatchLoader.cjs.map +1 -0
- package/build/batchloaders/manyToManyBatchLoader.d.cts +11 -0
- package/build/batchloaders/manyToManyBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/manyToManyBatchLoader.d.mts +11 -0
- package/build/batchloaders/manyToManyBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/manyToManyBatchLoader.js +70 -61
- package/build/batchloaders/manyToManyBatchLoader.js.map +1 -1
- package/build/batchloaders/oneToManyBatchLoader.cjs +63 -0
- package/build/batchloaders/oneToManyBatchLoader.cjs.map +1 -0
- package/build/batchloaders/oneToManyBatchLoader.d.cts +11 -0
- package/build/batchloaders/oneToManyBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/oneToManyBatchLoader.d.mts +11 -0
- package/build/batchloaders/oneToManyBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/oneToManyBatchLoader.js +58 -48
- package/build/batchloaders/oneToManyBatchLoader.js.map +1 -1
- package/build/batchloaders/oneToOneBatchLoader.cjs +64 -0
- package/build/batchloaders/oneToOneBatchLoader.cjs.map +1 -0
- package/build/batchloaders/oneToOneBatchLoader.d.cts +10 -0
- package/build/batchloaders/oneToOneBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/oneToOneBatchLoader.d.mts +10 -0
- package/build/batchloaders/oneToOneBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/oneToOneBatchLoader.js +59 -50
- package/build/batchloaders/oneToOneBatchLoader.js.map +1 -1
- package/build/batchloaders/populateBatchLoader.cjs +155 -0
- package/build/batchloaders/populateBatchLoader.cjs.map +1 -0
- package/build/batchloaders/populateBatchLoader.d.cts +17 -0
- package/build/batchloaders/populateBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/populateBatchLoader.d.mts +17 -0
- package/build/batchloaders/populateBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/populateBatchLoader.js +147 -203
- package/build/batchloaders/populateBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.cjs +78 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.cjs.map +1 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.d.cts +10 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.d.mts +10 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.js +71 -72
- package/build/batchloaders/recursiveChildrenBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.cjs +83 -0
- package/build/batchloaders/recursiveM2mBatchLoader.cjs.map +1 -0
- package/build/batchloaders/recursiveM2mBatchLoader.d.cts +10 -0
- package/build/batchloaders/recursiveM2mBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/recursiveM2mBatchLoader.d.mts +10 -0
- package/build/batchloaders/recursiveM2mBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/recursiveM2mBatchLoader.js +76 -79
- package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.cjs +65 -0
- package/build/batchloaders/recursiveParentsBatchLoader.cjs.map +1 -0
- package/build/batchloaders/recursiveParentsBatchLoader.d.cts +10 -0
- package/build/batchloaders/recursiveParentsBatchLoader.d.cts.map +1 -0
- package/build/batchloaders/recursiveParentsBatchLoader.d.mts +10 -0
- package/build/batchloaders/recursiveParentsBatchLoader.d.mts.map +1 -0
- package/build/batchloaders/recursiveParentsBatchLoader.js +58 -55
- package/build/batchloaders/recursiveParentsBatchLoader.js.map +1 -1
- package/build/changes.cjs +221 -0
- package/build/changes.cjs.map +1 -0
- package/build/changes.d.cts +95 -0
- package/build/changes.d.cts.map +1 -0
- package/build/changes.d.mts +95 -0
- package/build/changes.d.mts.map +1 -0
- package/build/changes.js +208 -285
- package/build/changes.js.map +1 -1
- package/build/config.cjs +295 -0
- package/build/config.cjs.map +1 -0
- package/build/config.d.cts +277 -0
- package/build/config.d.cts.map +1 -0
- package/build/config.d.mts +277 -0
- package/build/config.d.mts.map +1 -0
- package/build/config.js +255 -301
- package/build/config.js.map +1 -1
- package/build/configure.cjs +324 -0
- package/build/configure.cjs.map +1 -0
- package/build/configure.d.cts +19 -0
- package/build/configure.d.cts.map +1 -0
- package/build/configure.d.mts +19 -0
- package/build/configure.d.mts.map +1 -0
- package/build/configure.js +265 -348
- package/build/configure.js.map +1 -1
- package/build/dataloaders/fastWhereFilterHash.cjs +140 -0
- package/build/dataloaders/fastWhereFilterHash.cjs.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.d.cts +18 -0
- package/build/dataloaders/fastWhereFilterHash.d.cts.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.d.mts +18 -0
- package/build/dataloaders/fastWhereFilterHash.d.mts.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.js +108 -133
- package/build/dataloaders/fastWhereFilterHash.js.map +1 -1
- package/build/dataloaders/findByUniqueDataLoader.cjs +58 -0
- package/build/dataloaders/findByUniqueDataLoader.cjs.map +1 -0
- package/build/dataloaders/findByUniqueDataLoader.d.cts +10 -0
- package/build/dataloaders/findByUniqueDataLoader.d.cts.map +1 -0
- package/build/dataloaders/findByUniqueDataLoader.d.mts +10 -0
- package/build/dataloaders/findByUniqueDataLoader.d.mts.map +1 -0
- package/build/dataloaders/findByUniqueDataLoader.js +53 -44
- package/build/dataloaders/findByUniqueDataLoader.js.map +1 -1
- package/build/dataloaders/findCountDataLoader.cjs +123 -0
- package/build/dataloaders/findCountDataLoader.cjs.map +1 -0
- package/build/dataloaders/findCountDataLoader.d.cts +19 -0
- package/build/dataloaders/findCountDataLoader.d.cts.map +1 -0
- package/build/dataloaders/findCountDataLoader.d.mts +19 -0
- package/build/dataloaders/findCountDataLoader.d.mts.map +1 -0
- package/build/dataloaders/findCountDataLoader.js +112 -109
- package/build/dataloaders/findCountDataLoader.js.map +1 -1
- package/build/dataloaders/findDataLoader.cjs +365 -0
- package/build/dataloaders/findDataLoader.cjs.map +1 -0
- package/build/dataloaders/findDataLoader.d.cts +79 -0
- package/build/dataloaders/findDataLoader.d.cts.map +1 -0
- package/build/dataloaders/findDataLoader.d.mts +79 -0
- package/build/dataloaders/findDataLoader.d.mts.map +1 -0
- package/build/dataloaders/findDataLoader.js +298 -382
- package/build/dataloaders/findDataLoader.js.map +1 -1
- package/build/dataloaders/findIdsDataLoader.cjs +82 -0
- package/build/dataloaders/findIdsDataLoader.cjs.map +1 -0
- package/build/dataloaders/findIdsDataLoader.d.cts +9 -0
- package/build/dataloaders/findIdsDataLoader.d.cts.map +1 -0
- package/build/dataloaders/findIdsDataLoader.d.mts +9 -0
- package/build/dataloaders/findIdsDataLoader.d.mts.map +1 -0
- package/build/dataloaders/findIdsDataLoader.js +77 -74
- package/build/dataloaders/findIdsDataLoader.js.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.cjs +120 -0
- package/build/dataloaders/findOrCreateDataLoader.cjs.map +1 -0
- package/build/dataloaders/findOrCreateDataLoader.d.cts +15 -0
- package/build/dataloaders/findOrCreateDataLoader.d.cts.map +1 -0
- package/build/dataloaders/findOrCreateDataLoader.d.mts +15 -0
- package/build/dataloaders/findOrCreateDataLoader.d.mts.map +1 -0
- package/build/dataloaders/findOrCreateDataLoader.js +102 -164
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/dataloaders/findPaginatedDataLoader.cjs +98 -0
- package/build/dataloaders/findPaginatedDataLoader.cjs.map +1 -0
- package/build/dataloaders/findPaginatedDataLoader.d.cts +10 -0
- package/build/dataloaders/findPaginatedDataLoader.d.cts.map +1 -0
- package/build/dataloaders/findPaginatedDataLoader.d.mts +10 -0
- package/build/dataloaders/findPaginatedDataLoader.d.mts.map +1 -0
- package/build/dataloaders/findPaginatedDataLoader.js +93 -80
- package/build/dataloaders/findPaginatedDataLoader.js.map +1 -1
- package/build/dataloaders/lensDataLoader.cjs +178 -0
- package/build/dataloaders/lensDataLoader.cjs.map +1 -0
- package/build/dataloaders/lensDataLoader.d.cts +15 -0
- package/build/dataloaders/lensDataLoader.d.cts.map +1 -0
- package/build/dataloaders/lensDataLoader.d.mts +15 -0
- package/build/dataloaders/lensDataLoader.d.mts.map +1 -0
- package/build/dataloaders/lensDataLoader.js +172 -176
- package/build/dataloaders/lensDataLoader.js.map +1 -1
- package/build/dataloaders/manyToManyFindDataLoader.cjs +84 -0
- package/build/dataloaders/manyToManyFindDataLoader.cjs.map +1 -0
- package/build/dataloaders/manyToManyFindDataLoader.d.cts +12 -0
- package/build/dataloaders/manyToManyFindDataLoader.d.cts.map +1 -0
- package/build/dataloaders/manyToManyFindDataLoader.d.mts +12 -0
- package/build/dataloaders/manyToManyFindDataLoader.d.mts.map +1 -0
- package/build/dataloaders/manyToManyFindDataLoader.js +76 -70
- package/build/dataloaders/manyToManyFindDataLoader.js.map +1 -1
- package/build/dataloaders/oneToManyFindDataLoader.cjs +77 -0
- package/build/dataloaders/oneToManyFindDataLoader.cjs.map +1 -0
- package/build/dataloaders/oneToManyFindDataLoader.d.cts +12 -0
- package/build/dataloaders/oneToManyFindDataLoader.d.cts.map +1 -0
- package/build/dataloaders/oneToManyFindDataLoader.d.mts +12 -0
- package/build/dataloaders/oneToManyFindDataLoader.d.mts.map +1 -0
- package/build/dataloaders/oneToManyFindDataLoader.js +71 -67
- package/build/dataloaders/oneToManyFindDataLoader.js.map +1 -1
- package/build/defaults.cjs +195 -0
- package/build/defaults.cjs.map +1 -0
- package/build/defaults.d.cts +56 -0
- package/build/defaults.d.cts.map +1 -0
- package/build/defaults.d.mts +56 -0
- package/build/defaults.d.mts.map +1 -0
- package/build/defaults.js +171 -271
- package/build/defaults.js.map +1 -1
- package/build/drivers/Driver.cjs +3 -0
- package/build/drivers/Driver.d.cts +51 -0
- package/build/drivers/Driver.d.cts.map +1 -0
- package/build/drivers/Driver.d.mts +51 -0
- package/build/drivers/Driver.d.mts.map +1 -0
- package/build/drivers/Driver.js +3 -3
- package/build/drivers/EntityWriter.cjs +208 -0
- package/build/drivers/EntityWriter.cjs.map +1 -0
- package/build/drivers/EntityWriter.d.cts +66 -0
- package/build/drivers/EntityWriter.d.cts.map +1 -0
- package/build/drivers/EntityWriter.d.mts +66 -0
- package/build/drivers/EntityWriter.d.mts.map +1 -0
- package/build/drivers/EntityWriter.js +183 -219
- package/build/drivers/EntityWriter.js.map +1 -1
- package/build/drivers/IdAssigner.cjs +89 -0
- package/build/drivers/IdAssigner.cjs.map +1 -0
- package/build/drivers/IdAssigner.d.cts +50 -0
- package/build/drivers/IdAssigner.d.cts.map +1 -0
- package/build/drivers/IdAssigner.d.mts +50 -0
- package/build/drivers/IdAssigner.d.mts.map +1 -0
- package/build/drivers/IdAssigner.js +80 -124
- package/build/drivers/IdAssigner.js.map +1 -1
- package/build/drivers/driverApi.cjs +19 -0
- package/build/drivers/driverApi.cjs.map +1 -0
- package/build/drivers/driverApi.d.cts +22 -0
- package/build/drivers/driverApi.d.cts.map +1 -0
- package/build/drivers/driverApi.d.mts +22 -0
- package/build/drivers/driverApi.d.mts.map +1 -0
- package/build/drivers/driverApi.js +18 -0
- package/build/drivers/driverApi.js.map +1 -0
- package/build/drivers/index.cjs +7 -0
- package/build/drivers/index.d.cts +4 -0
- package/build/drivers/index.d.mts +4 -0
- package/build/drivers/index.js +3 -22
- package/build/fields.cjs +127 -0
- package/build/fields.cjs.map +1 -0
- package/build/fields.d.cts +29 -0
- package/build/fields.d.cts.map +1 -0
- package/build/fields.d.mts +29 -0
- package/build/fields.d.mts.map +1 -0
- package/build/fields.js +98 -160
- package/build/fields.js.map +1 -1
- package/build/flush/FlushLock.cjs +51 -0
- package/build/flush/FlushLock.cjs.map +1 -0
- package/build/flush/FlushLock.d.cts +29 -0
- package/build/flush/FlushLock.d.cts.map +1 -0
- package/build/flush/FlushLock.d.mts +29 -0
- package/build/flush/FlushLock.d.mts.map +1 -0
- package/build/flush/FlushLock.js +51 -0
- package/build/flush/FlushLock.js.map +1 -0
- package/build/flush/JoinRows.cjs +263 -0
- package/build/flush/JoinRows.cjs.map +1 -0
- package/build/flush/JoinRows.d.cts +120 -0
- package/build/flush/JoinRows.d.cts.map +1 -0
- package/build/flush/JoinRows.d.mts +120 -0
- package/build/flush/JoinRows.d.mts.map +1 -0
- package/build/flush/JoinRows.js +261 -0
- package/build/flush/JoinRows.js.map +1 -0
- package/build/flush/PendingChanges.cjs +1 -0
- package/build/flush/PendingChanges.d.cts +29 -0
- package/build/flush/PendingChanges.d.cts.map +1 -0
- package/build/flush/PendingChanges.d.mts +29 -0
- package/build/flush/PendingChanges.d.mts.map +1 -0
- package/build/flush/PendingChanges.js +1 -0
- package/build/flush/Todo.cjs +71 -0
- package/build/flush/Todo.cjs.map +1 -0
- package/build/flush/Todo.d.cts +38 -0
- package/build/flush/Todo.d.cts.map +1 -0
- package/build/flush/Todo.d.mts +38 -0
- package/build/flush/Todo.d.mts.map +1 -0
- package/build/flush/Todo.js +67 -0
- package/build/flush/Todo.js.map +1 -0
- package/build/getProperties.cjs +87 -0
- package/build/getProperties.cjs.map +1 -0
- package/build/getProperties.d.cts +30 -0
- package/build/getProperties.d.cts.map +1 -0
- package/build/getProperties.d.mts +30 -0
- package/build/getProperties.d.mts.map +1 -0
- package/build/getProperties.js +71 -128
- package/build/getProperties.js.map +1 -1
- package/build/index.cjs +524 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.cts +180 -0
- package/build/index.d.cts.map +1 -0
- package/build/index.d.mts +180 -0
- package/build/index.d.mts.map +1 -0
- package/build/index.js +171 -292
- package/build/index.js.map +1 -1
- package/build/json.cjs +79 -0
- package/build/json.cjs.map +1 -0
- package/build/json.d.cts +76 -0
- package/build/json.d.cts.map +1 -0
- package/build/json.d.mts +76 -0
- package/build/json.d.mts.map +1 -0
- package/build/json.js +68 -106
- package/build/json.js.map +1 -1
- package/build/k.cjs +9 -0
- package/build/k.cjs.map +1 -0
- package/build/k.d.cts +1 -0
- package/build/k.d.mts +1 -0
- package/build/k.js +6 -6
- package/build/k.js.map +1 -1
- package/build/keys.cjs +181 -0
- package/build/keys.cjs.map +1 -0
- package/build/keys.d.cts +55 -0
- package/build/keys.d.cts.map +1 -0
- package/build/keys.d.mts +55 -0
- package/build/keys.d.mts.map +1 -0
- package/build/keys.js +129 -162
- package/build/keys.js.map +1 -1
- package/build/loading/HintTree.cjs +67 -0
- package/build/loading/HintTree.cjs.map +1 -0
- package/build/loading/HintTree.d.cts +45 -0
- package/build/loading/HintTree.d.cts.map +1 -0
- package/build/loading/HintTree.d.mts +45 -0
- package/build/loading/HintTree.d.mts.map +1 -0
- package/build/loading/HintTree.js +66 -0
- package/build/loading/HintTree.js.map +1 -0
- package/build/loading/IsLoadedCache.cjs +58 -0
- package/build/loading/IsLoadedCache.cjs.map +1 -0
- package/build/loading/IsLoadedCache.d.cts +35 -0
- package/build/loading/IsLoadedCache.d.cts.map +1 -0
- package/build/loading/IsLoadedCache.d.mts +35 -0
- package/build/loading/IsLoadedCache.d.mts.map +1 -0
- package/build/loading/IsLoadedCache.js +57 -0
- package/build/loading/IsLoadedCache.js.map +1 -0
- package/build/loading/loadHints.cjs +95 -0
- package/build/loading/loadHints.cjs.map +1 -0
- package/build/loading/loadHints.d.cts +116 -0
- package/build/loading/loadHints.d.cts.map +1 -0
- package/build/loading/loadHints.d.mts +116 -0
- package/build/loading/loadHints.d.mts.map +1 -0
- package/build/loading/loadHints.js +88 -0
- package/build/loading/loadHints.js.map +1 -0
- package/build/loading/loadLens.cjs +212 -0
- package/build/loading/loadLens.cjs.map +1 -0
- package/build/loading/loadLens.d.cts +77 -0
- package/build/loading/loadLens.d.cts.map +1 -0
- package/build/loading/loadLens.d.mts +77 -0
- package/build/loading/loadLens.d.mts.map +1 -0
- package/build/loading/loadLens.js +201 -0
- package/build/loading/loadLens.js.map +1 -0
- package/build/loading/withLoaded.cjs +64 -0
- package/build/loading/withLoaded.cjs.map +1 -0
- package/build/loading/withLoaded.d.cts +65 -0
- package/build/loading/withLoaded.d.cts.map +1 -0
- package/build/loading/withLoaded.d.mts +65 -0
- package/build/loading/withLoaded.d.mts.map +1 -0
- package/build/loading/withLoaded.js +61 -0
- package/build/loading/withLoaded.js.map +1 -0
- package/build/logging/FactoryLogger.cjs +66 -0
- package/build/logging/FactoryLogger.cjs.map +1 -0
- package/build/logging/FactoryLogger.d.cts +27 -0
- package/build/logging/FactoryLogger.d.cts.map +1 -0
- package/build/logging/FactoryLogger.d.mts +27 -0
- package/build/logging/FactoryLogger.d.mts.map +1 -0
- package/build/logging/FactoryLogger.js +58 -73
- package/build/logging/FactoryLogger.js.map +1 -1
- package/build/logging/FieldLogger.cjs +57 -0
- package/build/logging/FieldLogger.cjs.map +1 -0
- package/build/logging/FieldLogger.d.cts +32 -0
- package/build/logging/FieldLogger.d.cts.map +1 -0
- package/build/logging/FieldLogger.d.mts +32 -0
- package/build/logging/FieldLogger.d.mts.map +1 -0
- package/build/logging/FieldLogger.js +51 -67
- package/build/logging/FieldLogger.js.map +1 -1
- package/build/logging/ReactionLogger.cjs +93 -0
- package/build/logging/ReactionLogger.cjs.map +1 -0
- package/build/logging/ReactionLogger.d.cts +37 -0
- package/build/logging/ReactionLogger.d.cts.map +1 -0
- package/build/logging/ReactionLogger.d.mts +37 -0
- package/build/logging/ReactionLogger.d.mts.map +1 -0
- package/build/logging/ReactionLogger.js +76 -66
- package/build/logging/ReactionLogger.js.map +1 -1
- package/build/newEntity.cjs +89 -0
- package/build/newEntity.cjs.map +1 -0
- package/build/newEntity.d.cts +48 -0
- package/build/newEntity.d.cts.map +1 -0
- package/build/newEntity.d.mts +48 -0
- package/build/newEntity.d.mts.map +1 -0
- package/build/newEntity.js +71 -94
- package/build/newEntity.js.map +1 -1
- package/build/newTestInstance.cjs +539 -0
- package/build/newTestInstance.cjs.map +1 -0
- package/build/newTestInstance.d.cts +207 -0
- package/build/newTestInstance.d.cts.map +1 -0
- package/build/newTestInstance.d.mts +207 -0
- package/build/newTestInstance.d.mts.map +1 -0
- package/build/newTestInstance.js +459 -721
- package/build/newTestInstance.js.map +1 -1
- package/build/normalizeHints.cjs +58 -0
- package/build/normalizeHints.cjs.map +1 -0
- package/build/normalizeHints.d.cts +24 -0
- package/build/normalizeHints.d.cts.map +1 -0
- package/build/normalizeHints.d.mts +24 -0
- package/build/normalizeHints.d.mts.map +1 -0
- package/build/normalizeHints.js +40 -55
- package/build/normalizeHints.js.map +1 -1
- package/build/nowUTC.cjs +15 -0
- package/build/nowUTC.cjs.map +1 -0
- package/build/nowUTC.d.cts +10 -0
- package/build/nowUTC.d.cts.map +1 -0
- package/build/nowUTC.d.mts +10 -0
- package/build/nowUTC.d.mts.map +1 -0
- package/build/nowUTC.js +14 -0
- package/build/nowUTC.js.map +1 -0
- package/build/plugins/ImmutableEntitiesPlugin.cjs +21 -0
- package/build/plugins/ImmutableEntitiesPlugin.cjs.map +1 -0
- package/build/plugins/ImmutableEntitiesPlugin.d.cts +12 -0
- package/build/plugins/ImmutableEntitiesPlugin.d.cts.map +1 -0
- package/build/plugins/ImmutableEntitiesPlugin.d.mts +12 -0
- package/build/plugins/ImmutableEntitiesPlugin.d.mts.map +1 -0
- package/build/plugins/ImmutableEntitiesPlugin.js +19 -20
- package/build/plugins/ImmutableEntitiesPlugin.js.map +1 -1
- package/build/plugins/PreloadPlugin.cjs +3 -0
- package/build/plugins/PreloadPlugin.d.cts +77 -0
- package/build/plugins/PreloadPlugin.d.cts.map +1 -0
- package/build/plugins/PreloadPlugin.d.mts +77 -0
- package/build/plugins/PreloadPlugin.d.mts.map +1 -0
- package/build/plugins/PreloadPlugin.js +3 -3
- package/build/preloading/JsonAggregatePreloader.cjs +280 -0
- package/build/preloading/JsonAggregatePreloader.cjs.map +1 -0
- package/build/preloading/JsonAggregatePreloader.d.cts +19 -0
- package/build/preloading/JsonAggregatePreloader.d.cts.map +1 -0
- package/build/preloading/JsonAggregatePreloader.d.mts +19 -0
- package/build/preloading/JsonAggregatePreloader.d.mts.map +1 -0
- package/build/preloading/JsonAggregatePreloader.js +270 -320
- package/build/preloading/JsonAggregatePreloader.js.map +1 -1
- package/build/preloading/canPreload.cjs +19 -0
- package/build/preloading/canPreload.cjs.map +1 -0
- package/build/preloading/canPreload.d.cts +6 -0
- package/build/preloading/canPreload.d.cts.map +1 -0
- package/build/preloading/canPreload.d.mts +6 -0
- package/build/preloading/canPreload.d.mts.map +1 -0
- package/build/preloading/canPreload.js +15 -21
- package/build/preloading/canPreload.js.map +1 -1
- package/build/preloading/partitionHint.cjs +43 -0
- package/build/preloading/partitionHint.cjs.map +1 -0
- package/build/preloading/partitionHint.d.cts +8 -0
- package/build/preloading/partitionHint.d.cts.map +1 -0
- package/build/preloading/partitionHint.d.mts +8 -0
- package/build/preloading/partitionHint.d.mts.map +1 -0
- package/build/preloading/partitionHint.js +36 -56
- package/build/preloading/partitionHint.js.map +1 -1
- package/build/queries/ConditionBuilder.cjs +106 -0
- package/build/queries/ConditionBuilder.cjs.map +1 -0
- package/build/queries/ConditionBuilder.d.cts +31 -0
- package/build/queries/ConditionBuilder.d.cts.map +1 -0
- package/build/queries/ConditionBuilder.d.mts +31 -0
- package/build/queries/ConditionBuilder.d.mts.map +1 -0
- package/build/queries/ConditionBuilder.js +105 -0
- package/build/queries/ConditionBuilder.js.map +1 -0
- package/build/queries/conditions.cjs +15 -0
- package/build/queries/conditions.cjs.map +1 -0
- package/build/queries/conditions.d.cts +38 -0
- package/build/queries/conditions.d.cts.map +1 -0
- package/build/queries/conditions.d.mts +38 -0
- package/build/queries/conditions.d.mts.map +1 -0
- package/build/queries/conditions.js +13 -0
- package/build/queries/conditions.js.map +1 -0
- package/build/queries/entityQueryUtils.cjs +60 -0
- package/build/queries/entityQueryUtils.cjs.map +1 -0
- package/build/queries/entityQueryUtils.d.cts +19 -0
- package/build/queries/entityQueryUtils.d.cts.map +1 -0
- package/build/queries/entityQueryUtils.d.mts +19 -0
- package/build/queries/entityQueryUtils.d.mts.map +1 -0
- package/build/queries/entityQueryUtils.js +56 -0
- package/build/queries/entityQueryUtils.js.map +1 -0
- package/build/queries/find/Aliases.cjs +301 -0
- package/build/queries/find/Aliases.cjs.map +1 -0
- package/build/queries/find/Aliases.d.cts +122 -0
- package/build/queries/find/Aliases.d.cts.map +1 -0
- package/build/queries/find/Aliases.d.mts +122 -0
- package/build/queries/find/Aliases.d.mts.map +1 -0
- package/build/queries/find/Aliases.js +293 -0
- package/build/queries/find/Aliases.js.map +1 -0
- package/build/queries/find/DeferredAlias.cjs +25 -0
- package/build/queries/find/DeferredAlias.cjs.map +1 -0
- package/build/queries/find/DeferredAlias.d.cts +22 -0
- package/build/queries/find/DeferredAlias.d.cts.map +1 -0
- package/build/queries/find/DeferredAlias.d.mts +22 -0
- package/build/queries/find/DeferredAlias.d.mts.map +1 -0
- package/build/queries/find/DeferredAlias.js +22 -0
- package/build/queries/find/DeferredAlias.js.map +1 -0
- package/build/queries/find/EntityFilter.cjs +27 -0
- package/build/queries/find/EntityFilter.cjs.map +1 -0
- package/build/queries/find/EntityFilter.d.cts +127 -0
- package/build/queries/find/EntityFilter.d.cts.map +1 -0
- package/build/queries/find/EntityFilter.d.mts +127 -0
- package/build/queries/find/EntityFilter.d.mts.map +1 -0
- package/build/queries/find/EntityFilter.js +26 -0
- package/build/queries/find/EntityFilter.js.map +1 -0
- package/build/queries/find/EntityGraphQLFilter.cjs +52 -0
- package/build/queries/find/EntityGraphQLFilter.cjs.map +1 -0
- package/build/queries/find/EntityGraphQLFilter.d.cts +59 -0
- package/build/queries/find/EntityGraphQLFilter.d.cts.map +1 -0
- package/build/queries/find/EntityGraphQLFilter.d.mts +59 -0
- package/build/queries/find/EntityGraphQLFilter.d.mts.map +1 -0
- package/build/queries/find/EntityGraphQLFilter.js +50 -0
- package/build/queries/find/EntityGraphQLFilter.js.map +1 -0
- package/build/queries/find/QueryParser.cjs +553 -0
- package/build/queries/find/QueryParser.cjs.map +1 -0
- package/build/queries/find/QueryParser.collectionJoins.cjs +353 -0
- package/build/queries/find/QueryParser.collectionJoins.cjs.map +1 -0
- package/build/queries/find/QueryParser.collectionJoins.d.cts +30 -0
- package/build/queries/find/QueryParser.collectionJoins.d.cts.map +1 -0
- package/build/queries/find/QueryParser.collectionJoins.d.mts +30 -0
- package/build/queries/find/QueryParser.collectionJoins.d.mts.map +1 -0
- package/build/queries/find/QueryParser.collectionJoins.js +352 -0
- package/build/queries/find/QueryParser.collectionJoins.js.map +1 -0
- package/build/queries/find/QueryParser.d.cts +192 -0
- package/build/queries/find/QueryParser.d.cts.map +1 -0
- package/build/queries/find/QueryParser.d.mts +192 -0
- package/build/queries/find/QueryParser.d.mts.map +1 -0
- package/build/queries/find/QueryParser.js +546 -0
- package/build/queries/find/QueryParser.js.map +1 -0
- package/build/queries/find/QueryParser.pruning.cjs +115 -0
- package/build/queries/find/QueryParser.pruning.cjs.map +1 -0
- package/build/queries/find/QueryParser.pruning.d.cts +8 -0
- package/build/queries/find/QueryParser.pruning.d.cts.map +1 -0
- package/build/queries/find/QueryParser.pruning.d.mts +8 -0
- package/build/queries/find/QueryParser.pruning.d.mts.map +1 -0
- package/build/queries/find/QueryParser.pruning.js +113 -0
- package/build/queries/find/QueryParser.pruning.js.map +1 -0
- package/build/queries/find/QueryVisitor.cjs +77 -0
- package/build/queries/find/QueryVisitor.cjs.map +1 -0
- package/build/queries/find/QueryVisitor.d.cts +24 -0
- package/build/queries/find/QueryVisitor.d.cts.map +1 -0
- package/build/queries/find/QueryVisitor.d.mts +24 -0
- package/build/queries/find/QueryVisitor.d.mts.map +1 -0
- package/build/queries/find/QueryVisitor.js +74 -0
- package/build/queries/find/QueryVisitor.js.map +1 -0
- package/build/queries/find/buildFindQuery.cjs +112 -0
- package/build/queries/find/buildFindQuery.cjs.map +1 -0
- package/build/queries/find/buildFindQuery.d.cts +24 -0
- package/build/queries/find/buildFindQuery.d.cts.map +1 -0
- package/build/queries/find/buildFindQuery.d.mts +24 -0
- package/build/queries/find/buildFindQuery.d.mts.map +1 -0
- package/build/queries/find/buildFindQuery.js +110 -0
- package/build/queries/find/buildFindQuery.js.map +1 -0
- package/build/queries/find/scopes.cjs +301 -0
- package/build/queries/find/scopes.cjs.map +1 -0
- package/build/queries/find/scopes.d.cts +188 -0
- package/build/queries/find/scopes.d.cts.map +1 -0
- package/build/queries/find/scopes.d.mts +188 -0
- package/build/queries/find/scopes.d.mts.map +1 -0
- package/build/queries/find/scopes.js +296 -0
- package/build/queries/find/scopes.js.map +1 -0
- package/build/queries/parsedConditions.cjs +21 -0
- package/build/queries/parsedConditions.cjs.map +1 -0
- package/build/queries/parsedConditions.d.cts +127 -0
- package/build/queries/parsedConditions.d.cts.map +1 -0
- package/build/queries/parsedConditions.d.mts +127 -0
- package/build/queries/parsedConditions.d.mts.map +1 -0
- package/build/queries/parsedConditions.js +20 -0
- package/build/queries/parsedConditions.js.map +1 -0
- package/build/queries/renderConditions.cjs +66 -0
- package/build/queries/renderConditions.cjs.map +1 -0
- package/build/queries/renderConditions.d.cts +15 -0
- package/build/queries/renderConditions.d.cts.map +1 -0
- package/build/queries/renderConditions.d.mts +15 -0
- package/build/queries/renderConditions.d.mts.map +1 -0
- package/build/queries/renderConditions.js +64 -0
- package/build/queries/renderConditions.js.map +1 -0
- package/build/queries/skipCondition.cjs +14 -0
- package/build/queries/skipCondition.cjs.map +1 -0
- package/build/queries/skipCondition.d.cts +7 -0
- package/build/queries/skipCondition.d.cts.map +1 -0
- package/build/queries/skipCondition.d.mts +7 -0
- package/build/queries/skipCondition.d.mts.map +1 -0
- package/build/queries/skipCondition.js +13 -0
- package/build/queries/skipCondition.js.map +1 -0
- package/build/queries/sql/AliasAssigner.cjs +35 -0
- package/build/queries/sql/AliasAssigner.cjs.map +1 -0
- package/build/queries/sql/AliasAssigner.d.cts +13 -0
- package/build/queries/sql/AliasAssigner.d.cts.map +1 -0
- package/build/queries/sql/AliasAssigner.d.mts +13 -0
- package/build/queries/sql/AliasAssigner.d.mts.map +1 -0
- package/build/queries/sql/AliasAssigner.js +34 -0
- package/build/queries/sql/AliasAssigner.js.map +1 -0
- package/build/queries/sql/Expr.cjs +529 -0
- package/build/queries/sql/Expr.cjs.map +1 -0
- package/build/queries/sql/Expr.d.cts +284 -0
- package/build/queries/sql/Expr.d.cts.map +1 -0
- package/build/queries/sql/Expr.d.mts +284 -0
- package/build/queries/sql/Expr.d.mts.map +1 -0
- package/build/queries/sql/Expr.js +512 -0
- package/build/queries/sql/Expr.js.map +1 -0
- package/build/queries/sql/JoinTree.cjs +72 -0
- package/build/queries/sql/JoinTree.cjs.map +1 -0
- package/build/queries/sql/JoinTree.d.cts +107 -0
- package/build/queries/sql/JoinTree.d.cts.map +1 -0
- package/build/queries/sql/JoinTree.d.mts +107 -0
- package/build/queries/sql/JoinTree.d.mts.map +1 -0
- package/build/queries/sql/JoinTree.js +71 -0
- package/build/queries/sql/JoinTree.js.map +1 -0
- package/build/queries/sql/Tables.cjs +803 -0
- package/build/queries/sql/Tables.cjs.map +1 -0
- package/build/queries/sql/Tables.d.cts +322 -0
- package/build/queries/sql/Tables.d.cts.map +1 -0
- package/build/queries/sql/Tables.d.mts +322 -0
- package/build/queries/sql/Tables.d.mts.map +1 -0
- package/build/queries/sql/Tables.js +786 -0
- package/build/queries/sql/Tables.js.map +1 -0
- package/build/queries/sql/custom.cjs +52 -0
- package/build/queries/sql/custom.cjs.map +1 -0
- package/build/queries/sql/custom.d.cts +85 -0
- package/build/queries/sql/custom.d.cts.map +1 -0
- package/build/queries/sql/custom.d.mts +85 -0
- package/build/queries/sql/custom.d.mts.map +1 -0
- package/build/queries/sql/custom.js +49 -0
- package/build/queries/sql/custom.js.map +1 -0
- package/build/queries/sql/execute.cjs +276 -0
- package/build/queries/sql/execute.cjs.map +1 -0
- package/build/queries/sql/execute.d.cts +294 -0
- package/build/queries/sql/execute.d.cts.map +1 -0
- package/build/queries/sql/execute.d.mts +294 -0
- package/build/queries/sql/execute.d.mts.map +1 -0
- package/build/queries/sql/execute.js +273 -0
- package/build/queries/sql/execute.js.map +1 -0
- package/build/queries/sql/expressions/arrayAgg.cjs +63 -0
- package/build/queries/sql/expressions/arrayAgg.cjs.map +1 -0
- package/build/queries/sql/expressions/arrayAgg.d.cts +24 -0
- package/build/queries/sql/expressions/arrayAgg.d.cts.map +1 -0
- package/build/queries/sql/expressions/arrayAgg.d.mts +24 -0
- package/build/queries/sql/expressions/arrayAgg.d.mts.map +1 -0
- package/build/queries/sql/expressions/arrayAgg.js +61 -0
- package/build/queries/sql/expressions/arrayAgg.js.map +1 -0
- package/build/queries/sql/expressions/case.cjs +71 -0
- package/build/queries/sql/expressions/case.cjs.map +1 -0
- package/build/queries/sql/expressions/case.d.cts +57 -0
- package/build/queries/sql/expressions/case.d.cts.map +1 -0
- package/build/queries/sql/expressions/case.d.mts +57 -0
- package/build/queries/sql/expressions/case.d.mts.map +1 -0
- package/build/queries/sql/expressions/case.js +68 -0
- package/build/queries/sql/expressions/case.js.map +1 -0
- package/build/queries/sql/expressions/coalesce.cjs +25 -0
- package/build/queries/sql/expressions/coalesce.cjs.map +1 -0
- package/build/queries/sql/expressions/coalesce.d.cts +21 -0
- package/build/queries/sql/expressions/coalesce.d.cts.map +1 -0
- package/build/queries/sql/expressions/coalesce.d.mts +21 -0
- package/build/queries/sql/expressions/coalesce.d.mts.map +1 -0
- package/build/queries/sql/expressions/coalesce.js +22 -0
- package/build/queries/sql/expressions/coalesce.js.map +1 -0
- package/build/queries/sql/expressions/codecs.cjs +126 -0
- package/build/queries/sql/expressions/codecs.cjs.map +1 -0
- package/build/queries/sql/expressions/codecs.d.cts +11 -0
- package/build/queries/sql/expressions/codecs.d.cts.map +1 -0
- package/build/queries/sql/expressions/codecs.d.mts +11 -0
- package/build/queries/sql/expressions/codecs.d.mts.map +1 -0
- package/build/queries/sql/expressions/codecs.js +125 -0
- package/build/queries/sql/expressions/codecs.js.map +1 -0
- package/build/queries/sql/expressions/expression.cjs +102 -0
- package/build/queries/sql/expressions/expression.cjs.map +1 -0
- package/build/queries/sql/expressions/expression.d.cts +23 -0
- package/build/queries/sql/expressions/expression.d.cts.map +1 -0
- package/build/queries/sql/expressions/expression.d.mts +23 -0
- package/build/queries/sql/expressions/expression.d.mts.map +1 -0
- package/build/queries/sql/expressions/expression.js +97 -0
- package/build/queries/sql/expressions/expression.js.map +1 -0
- package/build/queries/sql/expressions/greatest.cjs +25 -0
- package/build/queries/sql/expressions/greatest.cjs.map +1 -0
- package/build/queries/sql/expressions/greatest.d.cts +21 -0
- package/build/queries/sql/expressions/greatest.d.cts.map +1 -0
- package/build/queries/sql/expressions/greatest.d.mts +21 -0
- package/build/queries/sql/expressions/greatest.d.mts.map +1 -0
- package/build/queries/sql/expressions/greatest.js +22 -0
- package/build/queries/sql/expressions/greatest.js.map +1 -0
- package/build/queries/sql/expressions/least.cjs +25 -0
- package/build/queries/sql/expressions/least.cjs.map +1 -0
- package/build/queries/sql/expressions/least.d.cts +21 -0
- package/build/queries/sql/expressions/least.d.cts.map +1 -0
- package/build/queries/sql/expressions/least.d.mts +21 -0
- package/build/queries/sql/expressions/least.d.mts.map +1 -0
- package/build/queries/sql/expressions/least.js +22 -0
- package/build/queries/sql/expressions/least.js.map +1 -0
- package/build/queries/sql/expressions/nullIf.cjs +27 -0
- package/build/queries/sql/expressions/nullIf.cjs.map +1 -0
- package/build/queries/sql/expressions/nullIf.d.cts +22 -0
- package/build/queries/sql/expressions/nullIf.d.cts.map +1 -0
- package/build/queries/sql/expressions/nullIf.d.mts +22 -0
- package/build/queries/sql/expressions/nullIf.d.mts.map +1 -0
- package/build/queries/sql/expressions/nullIf.js +24 -0
- package/build/queries/sql/expressions/nullIf.js.map +1 -0
- package/build/queries/sql/expressions/parseExpression.cjs +75 -0
- package/build/queries/sql/expressions/parseExpression.cjs.map +1 -0
- package/build/queries/sql/expressions/parseExpression.d.cts +19 -0
- package/build/queries/sql/expressions/parseExpression.d.cts.map +1 -0
- package/build/queries/sql/expressions/parseExpression.d.mts +19 -0
- package/build/queries/sql/expressions/parseExpression.d.mts.map +1 -0
- package/build/queries/sql/expressions/parseExpression.js +70 -0
- package/build/queries/sql/expressions/parseExpression.js.map +1 -0
- package/build/queries/sql/expressions/types.cjs +1 -0
- package/build/queries/sql/expressions/types.d.cts +114 -0
- package/build/queries/sql/expressions/types.d.cts.map +1 -0
- package/build/queries/sql/expressions/types.d.mts +114 -0
- package/build/queries/sql/expressions/types.d.mts.map +1 -0
- package/build/queries/sql/expressions/types.js +1 -0
- package/build/queries/sql/keywords.cjs +136 -0
- package/build/queries/sql/keywords.cjs.map +1 -0
- package/build/queries/sql/keywords.d.cts +18 -0
- package/build/queries/sql/keywords.d.cts.map +1 -0
- package/build/queries/sql/keywords.d.mts +18 -0
- package/build/queries/sql/keywords.d.mts.map +1 -0
- package/build/queries/sql/keywords.js +132 -0
- package/build/queries/sql/keywords.js.map +1 -0
- package/build/queries/sql/query.cjs +1610 -0
- package/build/queries/sql/query.cjs.map +1 -0
- package/build/queries/sql/query.d.cts +844 -0
- package/build/queries/sql/query.d.cts.map +1 -0
- package/build/queries/sql/query.d.mts +844 -0
- package/build/queries/sql/query.d.mts.map +1 -0
- package/build/queries/sql/query.js +1592 -0
- package/build/queries/sql/query.js.map +1 -0
- package/build/queries/unnest.cjs +62 -0
- package/build/queries/unnest.cjs.map +1 -0
- package/build/queries/unnest.d.cts +16 -0
- package/build/queries/unnest.d.cts.map +1 -0
- package/build/queries/unnest.d.mts +16 -0
- package/build/queries/unnest.d.mts.map +1 -0
- package/build/queries/unnest.js +60 -0
- package/build/queries/unnest.js.map +1 -0
- package/build/queries/valueFilters.cjs +240 -0
- package/build/queries/valueFilters.cjs.map +1 -0
- package/build/queries/valueFilters.d.cts +26 -0
- package/build/queries/valueFilters.d.cts.map +1 -0
- package/build/queries/valueFilters.d.mts +26 -0
- package/build/queries/valueFilters.d.mts.map +1 -0
- package/build/queries/valueFilters.js +236 -0
- package/build/queries/valueFilters.js.map +1 -0
- package/build/reactivity/ReactionsManager.cjs +264 -0
- package/build/reactivity/ReactionsManager.cjs.map +1 -0
- package/build/reactivity/ReactionsManager.d.cts +98 -0
- package/build/reactivity/ReactionsManager.d.cts.map +1 -0
- package/build/reactivity/ReactionsManager.d.mts +98 -0
- package/build/reactivity/ReactionsManager.d.mts.map +1 -0
- package/build/reactivity/ReactionsManager.js +263 -0
- package/build/reactivity/ReactionsManager.js.map +1 -0
- package/build/reactivity/reactiveHints.cjs +328 -0
- package/build/reactivity/reactiveHints.cjs.map +1 -0
- package/build/reactivity/reactiveHints.d.cts +143 -0
- package/build/reactivity/reactiveHints.d.cts.map +1 -0
- package/build/reactivity/reactiveHints.d.mts +143 -0
- package/build/reactivity/reactiveHints.d.mts.map +1 -0
- package/build/reactivity/reactiveHints.js +321 -0
- package/build/reactivity/reactiveHints.js.map +1 -0
- package/build/relations/AbstractPropertyImpl.cjs +16 -0
- package/build/relations/AbstractPropertyImpl.cjs.map +1 -0
- package/build/relations/AbstractPropertyImpl.d.cts +11 -0
- package/build/relations/AbstractPropertyImpl.d.cts.map +1 -0
- package/build/relations/AbstractPropertyImpl.d.mts +11 -0
- package/build/relations/AbstractPropertyImpl.d.mts.map +1 -0
- package/build/relations/AbstractPropertyImpl.js +13 -13
- package/build/relations/AbstractPropertyImpl.js.map +1 -1
- package/build/relations/AbstractRelationImpl.cjs +15 -0
- package/build/relations/AbstractRelationImpl.cjs.map +1 -0
- package/build/relations/AbstractRelationImpl.d.cts +43 -0
- package/build/relations/AbstractRelationImpl.d.cts.map +1 -0
- package/build/relations/AbstractRelationImpl.d.mts +43 -0
- package/build/relations/AbstractRelationImpl.d.mts.map +1 -0
- package/build/relations/AbstractRelationImpl.js +12 -17
- package/build/relations/AbstractRelationImpl.js.map +1 -1
- package/build/relations/AsyncProperty.cjs +75 -0
- package/build/relations/AsyncProperty.cjs.map +1 -0
- package/build/relations/AsyncProperty.d.cts +40 -0
- package/build/relations/AsyncProperty.d.cts.map +1 -0
- package/build/relations/AsyncProperty.d.mts +40 -0
- package/build/relations/AsyncProperty.d.mts.map +1 -0
- package/build/relations/AsyncProperty.js +61 -70
- package/build/relations/AsyncProperty.js.map +1 -1
- package/build/relations/AsyncReactiveField.cjs +110 -0
- package/build/relations/AsyncReactiveField.cjs.map +1 -0
- package/build/relations/AsyncReactiveField.d.cts +50 -0
- package/build/relations/AsyncReactiveField.d.cts.map +1 -0
- package/build/relations/AsyncReactiveField.d.mts +50 -0
- package/build/relations/AsyncReactiveField.d.mts.map +1 -0
- package/build/relations/AsyncReactiveField.js +97 -116
- package/build/relations/AsyncReactiveField.js.map +1 -1
- package/build/relations/Collection.cjs +23 -0
- package/build/relations/Collection.cjs.map +1 -0
- package/build/relations/Collection.d.cts +37 -0
- package/build/relations/Collection.d.cts.map +1 -0
- package/build/relations/Collection.d.mts +37 -0
- package/build/relations/Collection.d.mts.map +1 -0
- package/build/relations/Collection.js +14 -11
- package/build/relations/Collection.js.map +1 -1
- package/build/relations/CustomCollection.cjs +144 -0
- package/build/relations/CustomCollection.cjs.map +1 -0
- package/build/relations/CustomCollection.d.cts +74 -0
- package/build/relations/CustomCollection.d.cts.map +1 -0
- package/build/relations/CustomCollection.d.mts +74 -0
- package/build/relations/CustomCollection.d.mts.map +1 -0
- package/build/relations/CustomCollection.js +138 -162
- package/build/relations/CustomCollection.js.map +1 -1
- package/build/relations/CustomReference.cjs +142 -0
- package/build/relations/CustomReference.cjs.map +1 -0
- package/build/relations/CustomReference.d.cts +76 -0
- package/build/relations/CustomReference.d.cts.map +1 -0
- package/build/relations/CustomReference.d.mts +76 -0
- package/build/relations/CustomReference.d.mts.map +1 -0
- package/build/relations/CustomReference.js +135 -147
- package/build/relations/CustomReference.js.map +1 -1
- package/build/relations/EnumCollection.cjs +178 -0
- package/build/relations/EnumCollection.cjs.map +1 -0
- package/build/relations/EnumCollection.d.cts +86 -0
- package/build/relations/EnumCollection.d.cts.map +1 -0
- package/build/relations/EnumCollection.d.mts +86 -0
- package/build/relations/EnumCollection.d.mts.map +1 -0
- package/build/relations/EnumCollection.js +172 -207
- package/build/relations/EnumCollection.js.map +1 -1
- package/build/relations/LargeCollection.cjs +4 -0
- package/build/relations/LargeCollection.d.cts +22 -0
- package/build/relations/LargeCollection.d.cts.map +1 -0
- package/build/relations/LargeCollection.d.mts +22 -0
- package/build/relations/LargeCollection.d.mts.map +1 -0
- package/build/relations/LargeCollection.js +4 -3
- package/build/relations/LazyField.cjs +140 -0
- package/build/relations/LazyField.cjs.map +1 -0
- package/build/relations/LazyField.d.cts +51 -0
- package/build/relations/LazyField.d.cts.map +1 -0
- package/build/relations/LazyField.d.mts +51 -0
- package/build/relations/LazyField.d.mts.map +1 -0
- package/build/relations/LazyField.js +134 -0
- package/build/relations/LazyField.js.map +1 -0
- package/build/relations/ManyToManyCollection.cjs +421 -0
- package/build/relations/ManyToManyCollection.cjs.map +1 -0
- package/build/relations/ManyToManyCollection.d.cts +59 -0
- package/build/relations/ManyToManyCollection.d.cts.map +1 -0
- package/build/relations/ManyToManyCollection.d.mts +59 -0
- package/build/relations/ManyToManyCollection.d.mts.map +1 -0
- package/build/relations/ManyToManyCollection.js +411 -471
- package/build/relations/ManyToManyCollection.js.map +1 -1
- package/build/relations/ManyToManyLargeCollection.cjs +91 -0
- package/build/relations/ManyToManyLargeCollection.cjs.map +1 -0
- package/build/relations/ManyToManyLargeCollection.d.cts +34 -0
- package/build/relations/ManyToManyLargeCollection.d.cts.map +1 -0
- package/build/relations/ManyToManyLargeCollection.d.mts +34 -0
- package/build/relations/ManyToManyLargeCollection.d.mts.map +1 -0
- package/build/relations/ManyToManyLargeCollection.js +85 -118
- package/build/relations/ManyToManyLargeCollection.js.map +1 -1
- package/build/relations/ManyToOneReference.cjs +364 -0
- package/build/relations/ManyToOneReference.cjs.map +1 -0
- package/build/relations/ManyToOneReference.d.cts +121 -0
- package/build/relations/ManyToOneReference.d.cts.map +1 -0
- package/build/relations/ManyToOneReference.d.mts +121 -0
- package/build/relations/ManyToOneReference.d.mts.map +1 -0
- package/build/relations/ManyToOneReference.js +344 -411
- package/build/relations/ManyToOneReference.js.map +1 -1
- package/build/relations/OneToManyCollection.cjs +492 -0
- package/build/relations/OneToManyCollection.cjs.map +1 -0
- package/build/relations/OneToManyCollection.d.cts +69 -0
- package/build/relations/OneToManyCollection.d.cts.map +1 -0
- package/build/relations/OneToManyCollection.d.mts +69 -0
- package/build/relations/OneToManyCollection.d.mts.map +1 -0
- package/build/relations/OneToManyCollection.js +480 -579
- package/build/relations/OneToManyCollection.js.map +1 -1
- package/build/relations/OneToManyLargeCollection.cjs +85 -0
- package/build/relations/OneToManyLargeCollection.cjs.map +1 -0
- package/build/relations/OneToManyLargeCollection.d.cts +29 -0
- package/build/relations/OneToManyLargeCollection.d.cts.map +1 -0
- package/build/relations/OneToManyLargeCollection.d.mts +29 -0
- package/build/relations/OneToManyLargeCollection.d.mts.map +1 -0
- package/build/relations/OneToManyLargeCollection.js +79 -99
- package/build/relations/OneToManyLargeCollection.js.map +1 -1
- package/build/relations/OneToOneReference.cjs +209 -0
- package/build/relations/OneToOneReference.cjs.map +1 -0
- package/build/relations/OneToOneReference.d.cts +97 -0
- package/build/relations/OneToOneReference.d.cts.map +1 -0
- package/build/relations/OneToOneReference.d.mts +97 -0
- package/build/relations/OneToOneReference.d.mts.map +1 -0
- package/build/relations/OneToOneReference.js +193 -221
- package/build/relations/OneToOneReference.js.map +1 -1
- package/build/relations/PolymorphicReference.cjs +210 -0
- package/build/relations/PolymorphicReference.cjs.map +1 -0
- package/build/relations/PolymorphicReference.d.cts +93 -0
- package/build/relations/PolymorphicReference.d.cts.map +1 -0
- package/build/relations/PolymorphicReference.d.mts +93 -0
- package/build/relations/PolymorphicReference.d.mts.map +1 -0
- package/build/relations/PolymorphicReference.js +200 -237
- package/build/relations/PolymorphicReference.js.map +1 -1
- package/build/relations/PropertySymbols.cjs +7 -0
- package/build/relations/PropertySymbols.cjs.map +1 -0
- package/build/relations/PropertySymbols.d.cts +5 -0
- package/build/relations/PropertySymbols.d.cts.map +1 -0
- package/build/relations/PropertySymbols.d.mts +5 -0
- package/build/relations/PropertySymbols.d.mts.map +1 -0
- package/build/relations/PropertySymbols.js +6 -0
- package/build/relations/PropertySymbols.js.map +1 -0
- package/build/relations/ReactiveField.cjs +114 -0
- package/build/relations/ReactiveField.cjs.map +1 -0
- package/build/relations/ReactiveField.d.cts +88 -0
- package/build/relations/ReactiveField.d.cts.map +1 -0
- package/build/relations/ReactiveField.d.mts +88 -0
- package/build/relations/ReactiveField.d.mts.map +1 -0
- package/build/relations/ReactiveField.js +104 -137
- package/build/relations/ReactiveField.js.map +1 -1
- package/build/relations/ReactiveGetter.cjs +40 -0
- package/build/relations/ReactiveGetter.cjs.map +1 -0
- package/build/relations/ReactiveGetter.d.cts +33 -0
- package/build/relations/ReactiveGetter.d.cts.map +1 -0
- package/build/relations/ReactiveGetter.d.mts +33 -0
- package/build/relations/ReactiveGetter.d.mts.map +1 -0
- package/build/relations/ReactiveGetter.js +30 -31
- package/build/relations/ReactiveGetter.js.map +1 -1
- package/build/relations/ReactiveManyToMany.cjs +198 -0
- package/build/relations/ReactiveManyToMany.cjs.map +1 -0
- package/build/relations/ReactiveManyToMany.d.cts +63 -0
- package/build/relations/ReactiveManyToMany.d.cts.map +1 -0
- package/build/relations/ReactiveManyToMany.d.mts +63 -0
- package/build/relations/ReactiveManyToMany.d.mts.map +1 -0
- package/build/relations/ReactiveManyToMany.js +187 -238
- package/build/relations/ReactiveManyToMany.js.map +1 -1
- package/build/relations/ReactiveManyToManyOtherSide.cjs +148 -0
- package/build/relations/ReactiveManyToManyOtherSide.cjs.map +1 -0
- package/build/relations/ReactiveManyToManyOtherSide.d.cts +53 -0
- package/build/relations/ReactiveManyToManyOtherSide.d.cts.map +1 -0
- package/build/relations/ReactiveManyToManyOtherSide.d.mts +53 -0
- package/build/relations/ReactiveManyToManyOtherSide.d.mts.map +1 -0
- package/build/relations/ReactiveManyToManyOtherSide.js +139 -152
- package/build/relations/ReactiveManyToManyOtherSide.js.map +1 -1
- package/build/relations/ReactiveReference.cjs +336 -0
- package/build/relations/ReactiveReference.cjs.map +1 -0
- package/build/relations/ReactiveReference.d.cts +124 -0
- package/build/relations/ReactiveReference.d.cts.map +1 -0
- package/build/relations/ReactiveReference.d.mts +124 -0
- package/build/relations/ReactiveReference.d.mts.map +1 -0
- package/build/relations/ReactiveReference.js +321 -385
- package/build/relations/ReactiveReference.js.map +1 -1
- package/build/relations/ReadOnlyCollection.cjs +18 -0
- package/build/relations/ReadOnlyCollection.cjs.map +1 -0
- package/build/relations/ReadOnlyCollection.d.cts +22 -0
- package/build/relations/ReadOnlyCollection.d.cts.map +1 -0
- package/build/relations/ReadOnlyCollection.d.mts +22 -0
- package/build/relations/ReadOnlyCollection.d.mts.map +1 -0
- package/build/relations/ReadOnlyCollection.js +9 -9
- package/build/relations/ReadOnlyCollection.js.map +1 -1
- package/build/relations/RecursiveCollection.cjs +386 -0
- package/build/relations/RecursiveCollection.cjs.map +1 -0
- package/build/relations/RecursiveCollection.d.cts +112 -0
- package/build/relations/RecursiveCollection.d.cts.map +1 -0
- package/build/relations/RecursiveCollection.d.mts +112 -0
- package/build/relations/RecursiveCollection.d.mts.map +1 -0
- package/build/relations/RecursiveCollection.js +367 -427
- package/build/relations/RecursiveCollection.js.map +1 -1
- package/build/relations/RecursiveCycleError.cjs +17 -0
- package/build/relations/RecursiveCycleError.cjs.map +1 -0
- package/build/relations/RecursiveCycleError.d.cts +15 -0
- package/build/relations/RecursiveCycleError.d.cts.map +1 -0
- package/build/relations/RecursiveCycleError.d.mts +15 -0
- package/build/relations/RecursiveCycleError.d.mts.map +1 -0
- package/build/relations/RecursiveCycleError.js +14 -13
- package/build/relations/RecursiveCycleError.js.map +1 -1
- package/build/relations/Reference.cjs +25 -0
- package/build/relations/Reference.cjs.map +1 -0
- package/build/relations/Reference.d.cts +39 -0
- package/build/relations/Reference.d.cts.map +1 -0
- package/build/relations/Reference.d.mts +39 -0
- package/build/relations/Reference.d.mts.map +1 -0
- package/build/relations/Reference.js +15 -14
- package/build/relations/Reference.js.map +1 -1
- package/build/relations/ReferenceSymbols.cjs +7 -0
- package/build/relations/ReferenceSymbols.cjs.map +1 -0
- package/build/relations/ReferenceSymbols.d.cts +5 -0
- package/build/relations/ReferenceSymbols.d.cts.map +1 -0
- package/build/relations/ReferenceSymbols.d.mts +5 -0
- package/build/relations/ReferenceSymbols.d.mts.map +1 -0
- package/build/relations/ReferenceSymbols.js +6 -0
- package/build/relations/ReferenceSymbols.js.map +1 -0
- package/build/relations/Relation.cjs +17 -0
- package/build/relations/Relation.cjs.map +1 -0
- package/build/relations/Relation.d.cts +16 -0
- package/build/relations/Relation.d.cts.map +1 -0
- package/build/relations/Relation.d.mts +16 -0
- package/build/relations/Relation.d.mts.map +1 -0
- package/build/relations/Relation.js +10 -8
- package/build/relations/Relation.js.map +1 -1
- package/build/relations/RelationSymbols.cjs +9 -0
- package/build/relations/RelationSymbols.cjs.map +1 -0
- package/build/relations/RelationSymbols.d.cts +6 -0
- package/build/relations/RelationSymbols.d.cts.map +1 -0
- package/build/relations/RelationSymbols.d.mts +6 -0
- package/build/relations/RelationSymbols.d.mts.map +1 -0
- package/build/relations/RelationSymbols.js +7 -0
- package/build/relations/RelationSymbols.js.map +1 -0
- package/build/relations/hasAsyncMethod.cjs +47 -0
- package/build/relations/hasAsyncMethod.cjs.map +1 -0
- package/build/relations/hasAsyncMethod.d.cts +29 -0
- package/build/relations/hasAsyncMethod.d.cts.map +1 -0
- package/build/relations/hasAsyncMethod.d.mts +29 -0
- package/build/relations/hasAsyncMethod.d.mts.map +1 -0
- package/build/relations/hasAsyncMethod.js +40 -43
- package/build/relations/hasAsyncMethod.js.map +1 -1
- package/build/relations/hasManyDerived.cjs +35 -0
- package/build/relations/hasManyDerived.cjs.map +1 -0
- package/build/relations/hasManyDerived.d.cts +25 -0
- package/build/relations/hasManyDerived.d.cts.map +1 -0
- package/build/relations/hasManyDerived.d.mts +25 -0
- package/build/relations/hasManyDerived.d.mts.map +1 -0
- package/build/relations/hasManyDerived.js +30 -28
- package/build/relations/hasManyDerived.js.map +1 -1
- package/build/relations/hasManyThrough.cjs +29 -0
- package/build/relations/hasManyThrough.cjs.map +1 -0
- package/build/relations/hasManyThrough.d.cts +16 -0
- package/build/relations/hasManyThrough.d.cts.map +1 -0
- package/build/relations/hasManyThrough.d.mts +16 -0
- package/build/relations/hasManyThrough.d.mts.map +1 -0
- package/build/relations/hasManyThrough.js +24 -20
- package/build/relations/hasManyThrough.js.map +1 -1
- package/build/relations/hasOneDerived.cjs +32 -0
- package/build/relations/hasOneDerived.cjs.map +1 -0
- package/build/relations/hasOneDerived.d.cts +15 -0
- package/build/relations/hasOneDerived.d.cts.map +1 -0
- package/build/relations/hasOneDerived.d.mts +15 -0
- package/build/relations/hasOneDerived.d.mts.map +1 -0
- package/build/relations/hasOneDerived.js +27 -20
- package/build/relations/hasOneDerived.js.map +1 -1
- package/build/relations/hasOneThrough.cjs +31 -0
- package/build/relations/hasOneThrough.cjs.map +1 -0
- package/build/relations/hasOneThrough.d.cts +16 -0
- package/build/relations/hasOneThrough.d.cts.map +1 -0
- package/build/relations/hasOneThrough.d.mts +16 -0
- package/build/relations/hasOneThrough.d.mts.map +1 -0
- package/build/relations/hasOneThrough.js +26 -22
- package/build/relations/hasOneThrough.js.map +1 -1
- package/build/relations/hasProperty.cjs +109 -0
- package/build/relations/hasProperty.cjs.map +1 -0
- package/build/relations/hasProperty.d.cts +53 -0
- package/build/relations/hasProperty.d.cts.map +1 -0
- package/build/relations/hasProperty.d.mts +53 -0
- package/build/relations/hasProperty.d.mts.map +1 -0
- package/build/relations/hasProperty.js +90 -95
- package/build/relations/hasProperty.js.map +1 -1
- package/build/relations/index.cjs +99 -0
- package/build/relations/index.d.cts +32 -0
- package/build/relations/index.d.mts +32 -0
- package/build/relations/index.js +31 -97
- package/build/relations/isCascadeDelete.cjs +11 -0
- package/build/relations/isCascadeDelete.cjs.map +1 -0
- package/build/relations/isCascadeDelete.d.cts +7 -0
- package/build/relations/isCascadeDelete.d.cts.map +1 -0
- package/build/relations/isCascadeDelete.d.mts +7 -0
- package/build/relations/isCascadeDelete.d.mts.map +1 -0
- package/build/relations/isCascadeDelete.js +10 -0
- package/build/relations/isCascadeDelete.js.map +1 -0
- package/build/resurrection.cjs +74 -0
- package/build/resurrection.cjs.map +1 -0
- package/build/resurrection.d.cts +13 -0
- package/build/resurrection.d.cts.map +1 -0
- package/build/resurrection.d.mts +13 -0
- package/build/resurrection.d.mts.map +1 -0
- package/build/resurrection.js +48 -69
- package/build/resurrection.js.map +1 -1
- package/build/rules.cjs +227 -0
- package/build/rules.cjs.map +1 -0
- package/build/rules.d.cts +145 -0
- package/build/rules.d.cts.map +1 -0
- package/build/rules.d.mts +145 -0
- package/build/rules.d.mts.map +1 -0
- package/build/rules.js +189 -204
- package/build/rules.js.map +1 -1
- package/build/runtimeConfig.cjs +25 -0
- package/build/runtimeConfig.cjs.map +1 -0
- package/build/runtimeConfig.d.cts +24 -0
- package/build/runtimeConfig.d.cts.map +1 -0
- package/build/runtimeConfig.d.mts +24 -0
- package/build/runtimeConfig.d.mts.map +1 -0
- package/build/runtimeConfig.js +16 -12
- package/build/runtimeConfig.js.map +1 -1
- package/build/serde/TypeInfo.cjs +80 -0
- package/build/serde/TypeInfo.cjs.map +1 -0
- package/build/serde/TypeInfo.d.cts +57 -0
- package/build/serde/TypeInfo.d.cts.map +1 -0
- package/build/serde/TypeInfo.d.mts +57 -0
- package/build/serde/TypeInfo.d.mts.map +1 -0
- package/build/serde/TypeInfo.js +78 -0
- package/build/serde/TypeInfo.js.map +1 -0
- package/build/serde/columns.cjs +63 -0
- package/build/serde/columns.cjs.map +1 -0
- package/build/serde/columns.d.cts +38 -0
- package/build/serde/columns.d.cts.map +1 -0
- package/build/serde/columns.d.mts +38 -0
- package/build/serde/columns.d.mts.map +1 -0
- package/build/serde/columns.js +62 -0
- package/build/serde/columns.js.map +1 -0
- package/build/serde/fieldSerde.cjs +188 -0
- package/build/serde/fieldSerde.cjs.map +1 -0
- package/build/serde/fieldSerde.d.cts +87 -0
- package/build/serde/fieldSerde.d.cts.map +1 -0
- package/build/serde/fieldSerde.d.mts +87 -0
- package/build/serde/fieldSerde.d.mts.map +1 -0
- package/build/serde/fieldSerde.js +182 -0
- package/build/serde/fieldSerde.js.map +1 -0
- package/build/serde/serde.cjs +499 -0
- package/build/serde/serde.cjs.map +1 -0
- package/build/serde/serde.d.cts +248 -0
- package/build/serde/serde.d.cts.map +1 -0
- package/build/serde/serde.d.mts +248 -0
- package/build/serde/serde.d.mts.map +1 -0
- package/build/serde/serde.js +485 -0
- package/build/serde/serde.js.map +1 -0
- package/build/serde/temporal.cjs +57 -0
- package/build/serde/temporal.cjs.map +1 -0
- package/build/serde/temporal.d.cts +44 -0
- package/build/serde/temporal.d.cts.map +1 -0
- package/build/serde/temporal.d.mts +44 -0
- package/build/serde/temporal.d.mts.map +1 -0
- package/build/serde/temporal.js +55 -0
- package/build/serde/temporal.js.map +1 -0
- package/build/serde/temporalMappers.cjs +62 -0
- package/build/serde/temporalMappers.cjs.map +1 -0
- package/build/serde/temporalMappers.d.cts +36 -0
- package/build/serde/temporalMappers.d.cts.map +1 -0
- package/build/serde/temporalMappers.d.mts +36 -0
- package/build/serde/temporalMappers.d.mts.map +1 -0
- package/build/serde/temporalMappers.js +58 -0
- package/build/serde/temporalMappers.js.map +1 -0
- package/build/trusted.cjs +16 -0
- package/build/trusted.cjs.map +1 -0
- package/build/trusted.d.cts +8 -0
- package/build/trusted.d.cts.map +1 -0
- package/build/trusted.d.mts +8 -0
- package/build/trusted.d.mts.map +1 -0
- package/build/trusted.js +8 -8
- package/build/trusted.js.map +1 -1
- package/build/typeMap.cjs +3 -0
- package/build/typeMap.d.cts +88 -0
- package/build/typeMap.d.cts.map +1 -0
- package/build/typeMap.d.mts +88 -0
- package/build/typeMap.d.mts.map +1 -0
- package/build/typeMap.js +3 -3
- package/build/upsert.cjs +175 -0
- package/build/upsert.cjs.map +1 -0
- package/build/upsert.d.cts +42 -0
- package/build/upsert.d.cts.map +1 -0
- package/build/upsert.d.mts +42 -0
- package/build/upsert.d.mts.map +1 -0
- package/build/upsert.js +159 -274
- package/build/upsert.js.map +1 -1
- package/build/utils.cjs +204 -0
- package/build/utils.cjs.map +1 -0
- package/build/utils.d.cts +65 -0
- package/build/utils.d.cts.map +1 -0
- package/build/utils.d.mts +65 -0
- package/build/utils.d.mts.map +1 -0
- package/build/utils.js +123 -192
- package/build/utils.js.map +1 -1
- package/package.json +34 -14
- package/build/AliasAssigner.d.ts +0 -10
- package/build/AliasAssigner.d.ts.map +0 -1
- package/build/AliasAssigner.js +0 -39
- package/build/AliasAssigner.js.map +0 -1
- package/build/Aliases.d.ts +0 -117
- package/build/Aliases.d.ts.map +0 -1
- package/build/Aliases.js +0 -457
- package/build/Aliases.js.map +0 -1
- package/build/BaseEntity.d.ts +0 -68
- package/build/BaseEntity.d.ts.map +0 -1
- package/build/ConditionBuilder.d.ts +0 -29
- package/build/ConditionBuilder.d.ts.map +0 -1
- package/build/ConditionBuilder.js +0 -112
- package/build/ConditionBuilder.js.map +0 -1
- package/build/Entity.d.ts +0 -39
- package/build/Entity.d.ts.map +0 -1
- package/build/EntityFields.d.ts +0 -37
- package/build/EntityFields.d.ts.map +0 -1
- package/build/EntityFields.js.map +0 -1
- package/build/EntityFilter.d.ts +0 -134
- package/build/EntityFilter.d.ts.map +0 -1
- package/build/EntityFilter.js +0 -21
- package/build/EntityFilter.js.map +0 -1
- package/build/EntityGraphQLFilter.d.ts +0 -56
- package/build/EntityGraphQLFilter.d.ts.map +0 -1
- package/build/EntityGraphQLFilter.js +0 -53
- package/build/EntityGraphQLFilter.js.map +0 -1
- package/build/EntityManager.d.ts +0 -740
- package/build/EntityManager.d.ts.map +0 -1
- package/build/EntityMetadata.d.ts +0 -233
- package/build/EntityMetadata.d.ts.map +0 -1
- package/build/EnumMetadata.d.ts +0 -15
- package/build/EnumMetadata.d.ts.map +0 -1
- package/build/EnumMetadata.js.map +0 -1
- package/build/FlushLock.d.ts +0 -26
- package/build/FlushLock.d.ts.map +0 -1
- package/build/FlushLock.js +0 -57
- package/build/FlushLock.js.map +0 -1
- package/build/HintTree.d.ts +0 -42
- package/build/HintTree.d.ts.map +0 -1
- package/build/HintTree.js +0 -64
- package/build/HintTree.js.map +0 -1
- package/build/IndexManager.d.ts +0 -31
- package/build/IndexManager.d.ts.map +0 -1
- package/build/InstanceData.d.ts +0 -79
- package/build/InstanceData.d.ts.map +0 -1
- package/build/IsLoadedCache.d.ts +0 -32
- package/build/IsLoadedCache.d.ts.map +0 -1
- package/build/IsLoadedCache.js +0 -91
- package/build/IsLoadedCache.js.map +0 -1
- package/build/JoinRows.d.ts +0 -117
- package/build/JoinRows.d.ts.map +0 -1
- package/build/JoinRows.js +0 -320
- package/build/JoinRows.js.map +0 -1
- package/build/PendingChanges.d.ts +0 -26
- package/build/PendingChanges.d.ts.map +0 -1
- package/build/PendingChanges.js +0 -3
- package/build/PendingChanges.js.map +0 -1
- package/build/PluginManager.d.ts +0 -102
- package/build/PluginManager.d.ts.map +0 -1
- package/build/QueryParser.collectionJoins.d.ts +0 -27
- package/build/QueryParser.collectionJoins.d.ts.map +0 -1
- package/build/QueryParser.collectionJoins.js +0 -466
- package/build/QueryParser.collectionJoins.js.map +0 -1
- package/build/QueryParser.collectionJoins.test.d.ts +0 -2
- package/build/QueryParser.collectionJoins.test.d.ts.map +0 -1
- package/build/QueryParser.collectionJoins.test.js +0 -772
- package/build/QueryParser.collectionJoins.test.js.map +0 -1
- package/build/QueryParser.d.ts +0 -336
- package/build/QueryParser.d.ts.map +0 -1
- package/build/QueryParser.js +0 -965
- package/build/QueryParser.js.map +0 -1
- package/build/QueryParser.pruning.d.ts +0 -7
- package/build/QueryParser.pruning.d.ts.map +0 -1
- package/build/QueryParser.pruning.js +0 -195
- package/build/QueryParser.pruning.js.map +0 -1
- package/build/QueryParser.pruning.test.d.ts +0 -2
- package/build/QueryParser.pruning.test.d.ts.map +0 -1
- package/build/QueryParser.pruning.test.js +0 -106
- package/build/QueryParser.pruning.test.js.map +0 -1
- package/build/QueryParser.test.d.ts +0 -2
- package/build/QueryParser.test.d.ts.map +0 -1
- package/build/QueryParser.test.js +0 -27
- package/build/QueryParser.test.js.map +0 -1
- package/build/QueryVisitor.d.ts +0 -19
- package/build/QueryVisitor.d.ts.map +0 -1
- package/build/QueryVisitor.js +0 -106
- package/build/QueryVisitor.js.map +0 -1
- package/build/ReactionsManager.d.ts +0 -85
- package/build/ReactionsManager.d.ts.map +0 -1
- package/build/ReactionsManager.js +0 -315
- package/build/ReactionsManager.js.map +0 -1
- package/build/Todo.d.ts +0 -35
- package/build/Todo.d.ts.map +0 -1
- package/build/Todo.js +0 -73
- package/build/Todo.js.map +0 -1
- package/build/batchloaders/BatchLoader.d.ts +0 -14
- package/build/batchloaders/BatchLoader.d.ts.map +0 -1
- package/build/batchloaders/enumCollectionBatchLoader.d.ts +0 -7
- package/build/batchloaders/enumCollectionBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/loadBatchLoader.d.ts +0 -17
- package/build/batchloaders/loadBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/manyToManyBatchLoader.d.ts +0 -7
- package/build/batchloaders/manyToManyBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/oneToManyBatchLoader.d.ts +0 -7
- package/build/batchloaders/oneToManyBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/oneToOneBatchLoader.d.ts +0 -7
- package/build/batchloaders/oneToOneBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/populateBatchLoader.d.ts +0 -13
- package/build/batchloaders/populateBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts +0 -7
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts +0 -7
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts +0 -7
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts.map +0 -1
- package/build/changes.d.ts +0 -92
- package/build/changes.d.ts.map +0 -1
- package/build/config.d.ts +0 -250
- package/build/config.d.ts.map +0 -1
- package/build/config.test.d.ts +0 -2
- package/build/config.test.d.ts.map +0 -1
- package/build/config.test.js +0 -53
- package/build/config.test.js.map +0 -1
- package/build/configure.d.ts +0 -15
- package/build/configure.d.ts.map +0 -1
- package/build/dataloaders/fastWhereFilterHash.d.ts +0 -15
- package/build/dataloaders/fastWhereFilterHash.d.ts.map +0 -1
- package/build/dataloaders/fastWhereFilterHash.test.d.ts +0 -2
- package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +0 -1
- package/build/dataloaders/fastWhereFilterHash.test.js +0 -59
- package/build/dataloaders/fastWhereFilterHash.test.js.map +0 -1
- package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
- package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findCountDataLoader.d.ts +0 -16
- package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findDataLoader.d.ts +0 -76
- package/build/dataloaders/findDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findIdsDataLoader.d.ts +0 -6
- package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findPaginatedDataLoader.d.ts +0 -7
- package/build/dataloaders/findPaginatedDataLoader.d.ts.map +0 -1
- package/build/dataloaders/lensDataLoader.d.ts +0 -12
- package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
- package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
- package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
- package/build/defaults.d.ts +0 -54
- package/build/defaults.d.ts.map +0 -1
- package/build/driverApi.d.ts +0 -19
- package/build/driverApi.d.ts.map +0 -1
- package/build/driverApi.js +0 -17
- package/build/driverApi.js.map +0 -1
- package/build/drivers/Driver.d.ts +0 -26
- package/build/drivers/Driver.d.ts.map +0 -1
- package/build/drivers/Driver.js.map +0 -1
- package/build/drivers/EntityWriter.d.ts +0 -64
- package/build/drivers/EntityWriter.d.ts.map +0 -1
- package/build/drivers/IdAssigner.d.ts +0 -48
- package/build/drivers/IdAssigner.d.ts.map +0 -1
- package/build/drivers/buildRawQuery.d.ts +0 -22
- package/build/drivers/buildRawQuery.d.ts.map +0 -1
- package/build/drivers/buildRawQuery.js +0 -153
- package/build/drivers/buildRawQuery.js.map +0 -1
- package/build/drivers/buildUtils.d.ts +0 -9
- package/build/drivers/buildUtils.d.ts.map +0 -1
- package/build/drivers/buildUtils.js +0 -88
- package/build/drivers/buildUtils.js.map +0 -1
- package/build/drivers/index.d.ts +0 -6
- package/build/drivers/index.d.ts.map +0 -1
- package/build/drivers/index.js.map +0 -1
- package/build/fields.d.ts +0 -26
- package/build/fields.d.ts.map +0 -1
- package/build/getProperties.d.ts +0 -28
- package/build/getProperties.d.ts.map +0 -1
- package/build/index.d.ts +0 -133
- package/build/index.d.ts.map +0 -1
- package/build/json.d.ts +0 -77
- package/build/json.d.ts.map +0 -1
- package/build/k.d.ts +0 -2
- package/build/k.d.ts.map +0 -1
- package/build/keys.d.ts +0 -49
- package/build/keys.d.ts.map +0 -1
- package/build/keywords.d.ts +0 -5
- package/build/keywords.d.ts.map +0 -1
- package/build/keywords.js +0 -124
- package/build/keywords.js.map +0 -1
- package/build/loadHints.d.ts +0 -121
- package/build/loadHints.d.ts.map +0 -1
- package/build/loadHints.js +0 -129
- package/build/loadHints.js.map +0 -1
- package/build/loadLens.d.ts +0 -77
- package/build/loadLens.d.ts.map +0 -1
- package/build/loadLens.js +0 -320
- package/build/loadLens.js.map +0 -1
- package/build/logging/FactoryLogger.d.ts +0 -24
- package/build/logging/FactoryLogger.d.ts.map +0 -1
- package/build/logging/FieldLogger.d.ts +0 -27
- package/build/logging/FieldLogger.d.ts.map +0 -1
- package/build/logging/ReactionLogger.d.ts +0 -27
- package/build/logging/ReactionLogger.d.ts.map +0 -1
- package/build/newEntity.d.ts +0 -45
- package/build/newEntity.d.ts.map +0 -1
- package/build/newTestInstance.d.ts +0 -208
- package/build/newTestInstance.d.ts.map +0 -1
- package/build/normalizeHints.d.ts +0 -23
- package/build/normalizeHints.d.ts.map +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
- package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
- package/build/plugins/PreloadPlugin.d.ts +0 -69
- package/build/plugins/PreloadPlugin.d.ts.map +0 -1
- package/build/plugins/PreloadPlugin.js.map +0 -1
- package/build/preloading/JsonAggregatePreloader.d.ts +0 -16
- package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
- package/build/preloading/canPreload.d.ts +0 -3
- package/build/preloading/canPreload.d.ts.map +0 -1
- package/build/preloading/partitionHint.d.ts +0 -5
- package/build/preloading/partitionHint.d.ts.map +0 -1
- package/build/reactiveHints.d.ts +0 -146
- package/build/reactiveHints.d.ts.map +0 -1
- package/build/reactiveHints.js +0 -509
- package/build/reactiveHints.js.map +0 -1
- package/build/relations/AbstractPropertyImpl.d.ts +0 -8
- package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
- package/build/relations/AbstractRelationImpl.d.ts +0 -41
- package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
- package/build/relations/AsyncProperty.d.ts +0 -36
- package/build/relations/AsyncProperty.d.ts.map +0 -1
- package/build/relations/AsyncReactiveField.d.ts +0 -41
- package/build/relations/AsyncReactiveField.d.ts.map +0 -1
- package/build/relations/Collection.d.ts +0 -33
- package/build/relations/Collection.d.ts.map +0 -1
- package/build/relations/CustomCollection.d.ts +0 -69
- package/build/relations/CustomCollection.d.ts.map +0 -1
- package/build/relations/CustomReference.d.ts +0 -71
- package/build/relations/CustomReference.d.ts.map +0 -1
- package/build/relations/EnumCollection.d.ts +0 -81
- package/build/relations/EnumCollection.d.ts.map +0 -1
- package/build/relations/LargeCollection.d.ts +0 -19
- package/build/relations/LargeCollection.d.ts.map +0 -1
- package/build/relations/LargeCollection.js.map +0 -1
- package/build/relations/ManyToManyCollection.d.ts +0 -52
- package/build/relations/ManyToManyCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyLargeCollection.d.ts +0 -31
- package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/ManyToOneReference.d.ts +0 -117
- package/build/relations/ManyToOneReference.d.ts.map +0 -1
- package/build/relations/OneToManyCollection.d.ts +0 -62
- package/build/relations/OneToManyCollection.d.ts.map +0 -1
- package/build/relations/OneToManyLargeCollection.d.ts +0 -26
- package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/OneToOneReference.d.ts +0 -93
- package/build/relations/OneToOneReference.d.ts.map +0 -1
- package/build/relations/PolymorphicReference.d.ts +0 -89
- package/build/relations/PolymorphicReference.d.ts.map +0 -1
- package/build/relations/ReactiveField.d.ts +0 -85
- package/build/relations/ReactiveField.d.ts.map +0 -1
- package/build/relations/ReactiveGetter.d.ts +0 -30
- package/build/relations/ReactiveGetter.d.ts.map +0 -1
- package/build/relations/ReactiveManyToMany.d.ts +0 -57
- package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -48
- package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
- package/build/relations/ReactiveReference.d.ts +0 -119
- package/build/relations/ReactiveReference.d.ts.map +0 -1
- package/build/relations/ReadOnlyCollection.d.ts +0 -19
- package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
- package/build/relations/RecursiveCollection.d.ts +0 -108
- package/build/relations/RecursiveCollection.d.ts.map +0 -1
- package/build/relations/RecursiveCycleError.d.ts +0 -13
- package/build/relations/RecursiveCycleError.d.ts.map +0 -1
- package/build/relations/Reference.d.ts +0 -35
- package/build/relations/Reference.d.ts.map +0 -1
- package/build/relations/Relation.d.ts +0 -14
- package/build/relations/Relation.d.ts.map +0 -1
- package/build/relations/hasAsyncMethod.d.ts +0 -27
- package/build/relations/hasAsyncMethod.d.ts.map +0 -1
- package/build/relations/hasManyDerived.d.ts +0 -22
- package/build/relations/hasManyDerived.d.ts.map +0 -1
- package/build/relations/hasManyThrough.d.ts +0 -10
- package/build/relations/hasManyThrough.d.ts.map +0 -1
- package/build/relations/hasOneDerived.d.ts +0 -12
- package/build/relations/hasOneDerived.d.ts.map +0 -1
- package/build/relations/hasOneThrough.d.ts +0 -10
- package/build/relations/hasOneThrough.d.ts.map +0 -1
- package/build/relations/hasProperty.d.ts +0 -50
- package/build/relations/hasProperty.d.ts.map +0 -1
- package/build/relations/index.d.ts +0 -30
- package/build/relations/index.d.ts.map +0 -1
- package/build/relations/index.js.map +0 -1
- package/build/resurrection.d.ts +0 -10
- package/build/resurrection.d.ts.map +0 -1
- package/build/rules.d.ts +0 -123
- package/build/rules.d.ts.map +0 -1
- package/build/runtimeConfig.d.ts +0 -17
- package/build/runtimeConfig.d.ts.map +0 -1
- package/build/scopes.d.ts +0 -185
- package/build/scopes.d.ts.map +0 -1
- package/build/scopes.js +0 -302
- package/build/scopes.js.map +0 -1
- package/build/serde.d.ts +0 -277
- package/build/serde.d.ts.map +0 -1
- package/build/serde.js +0 -517
- package/build/serde.js.map +0 -1
- package/build/temporal.d.ts +0 -46
- package/build/temporal.d.ts.map +0 -1
- package/build/temporal.js +0 -66
- package/build/temporal.js.map +0 -1
- package/build/temporalMappers.d.ts +0 -25
- package/build/temporalMappers.d.ts.map +0 -1
- package/build/temporalMappers.js +0 -59
- package/build/temporalMappers.js.map +0 -1
- package/build/trusted.d.ts +0 -5
- package/build/trusted.d.ts.map +0 -1
- package/build/typeMap.d.ts +0 -68
- package/build/typeMap.d.ts.map +0 -1
- package/build/typeMap.js.map +0 -1
- package/build/unnest.d.ts +0 -13
- package/build/unnest.d.ts.map +0 -1
- package/build/unnest.js +0 -85
- package/build/unnest.js.map +0 -1
- package/build/upsert.d.ts +0 -42
- package/build/upsert.d.ts.map +0 -1
- package/build/utils.d.ts +0 -60
- package/build/utils.d.ts.map +0 -1
- package/build/withLoaded.d.ts +0 -56
- package/build/withLoaded.d.ts.map +0 -1
- package/build/withLoaded.js +0 -76
- package/build/withLoaded.js.map +0 -1
|
@@ -0,0 +1,844 @@
|
|
|
1
|
+
import { ColumnCondition } from "../parsedConditions.cjs";
|
|
2
|
+
import { SqlCondition, SqlPredicate, UnbrandedPredicate } from "../conditions.cjs";
|
|
3
|
+
import { TypeInfo } from "../../serde/TypeInfo.cjs";
|
|
4
|
+
import { EntityMetadata } from "../../EntityMetadata.cjs";
|
|
5
|
+
import { AliasAssigner } from "./AliasAssigner.cjs";
|
|
6
|
+
import { CheckInput, ExprFromInput, ExprInput, ExpressionSources, ExpressionValue } from "./expressions/types.cjs";
|
|
7
|
+
import "./expressions/expression.cjs";
|
|
8
|
+
import { Table, TableBrand, TableFor, TableSourceBrand, referenceJoinSource, tableMgmt } from "./Tables.cjs";
|
|
9
|
+
import { BaseExpr, Expr, ExprContext, ExprLike, InnerJoin, LeftJoin, SqlFragment, selectKeyBrand } from "./Expr.cjs";
|
|
10
|
+
import { CheckJoinInput, TreeEntries } from "./JoinTree.cjs";
|
|
11
|
+
import { Entity } from "../../Entity.cjs";
|
|
12
|
+
//#region src/queries/sql/query.d.ts
|
|
13
|
+
/**
|
|
14
|
+
* `em.query`: SQL-shaped queries as plain object literals.
|
|
15
|
+
*
|
|
16
|
+
* A query is data, a `Query<S, J>` POJO, `{ from, join, where, groupBy, having, select, orderBy, ... }`
|
|
17
|
+
* in SQL evaluation order:
|
|
18
|
+
*
|
|
19
|
+
* const [a, b] = tables(Author, Book);
|
|
20
|
+
* const bookStats = query({ from: b, groupBy: [b.author_id], select: { authorId: b.author_id, n: b.id.count() } });
|
|
21
|
+
* const rows = await em.query({
|
|
22
|
+
* from: a,
|
|
23
|
+
* join: [{ left: bookStats, on: bookStats.authorId.eq(a.id) }],
|
|
24
|
+
* select: { name: a.first_name, n: bookStats.n },
|
|
25
|
+
* orderBy: { n: "DESC" },
|
|
26
|
+
* });
|
|
27
|
+
* // rows: { name: string; n: number | undefined }[] (undefined because of the LEFT join)
|
|
28
|
+
*
|
|
29
|
+
* `em.query(pojo)` runs it. `select` decides the row type: a bare table returns entities, an array of
|
|
30
|
+
* columns or a `{ key: expr }` object returns typed POJOs, and a bare subquery returns its rows.
|
|
31
|
+
*
|
|
32
|
+
* `query(pojo)` turns the *same* POJO into a value: a derived table with typed columns, a scalar
|
|
33
|
+
* expression, or an entity list. It is the one non-POJO step, and the subquery analog of `table(Author)`:
|
|
34
|
+
* to reference a query's columns, the outer query needs *values* for them, and no POJO can manufacture
|
|
35
|
+
* values keyed off its own `select` keys.
|
|
36
|
+
*
|
|
37
|
+
* `table()`/`tables()` and `query()` are the only free functions a query needs, plus the `sql` tagged
|
|
38
|
+
* template as the escape hatch for SQL with no modeled shape. Everything else is in-DSL: join kinds are
|
|
39
|
+
* keyword keys (`{ left: b, on }`), SQL functions are methods on
|
|
40
|
+
* expressions (`b.id.count()`, `b.title.max()`, `x.coalesce(0)`), conditions are methods
|
|
41
|
+
* (`a.age.gte(18)`), and pruning is `undefined`: an `undefined` condition drops out, and a join nothing
|
|
42
|
+
* references anymore drops with it (see "Pruning" below).
|
|
43
|
+
*
|
|
44
|
+
* User documentation: `docs/src/content/docs/features/queries-raw.md`.
|
|
45
|
+
*/
|
|
46
|
+
declare const subqueryBrand: unique symbol;
|
|
47
|
+
declare const entityQueryBrand: unique symbol;
|
|
48
|
+
declare const scalarQueryBrand: unique symbol;
|
|
49
|
+
/** A query(...) value with any projection, for EXISTS and NOT EXISTS predicates. */
|
|
50
|
+
type ExistsQuery = Subquery<unknown, string> | EntityQuery<Entity> | {
|
|
51
|
+
readonly [scalarQueryBrand]: true;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* A condition for a query's where, having, or join on clause. Combine conditions with and/or,
|
|
55
|
+
* or use exists/notExists to check whether a query(...) value returns any rows.
|
|
56
|
+
*
|
|
57
|
+
* I.e. `{ and: [a.age.gte(18), { exists: booksForAuthor }] }` selects adult Authors with Books,
|
|
58
|
+
* where `booksForAuthor` is `query({ from: b, where: b.author_id.eq(a.id), select: b.id })`.
|
|
59
|
+
*/
|
|
60
|
+
type QueryCondition = SqlPredicate | UnbrandedPredicate | (({
|
|
61
|
+
and: readonly (QueryCondition | undefined)[];
|
|
62
|
+
or?: never;
|
|
63
|
+
exists?: never;
|
|
64
|
+
notExists?: never;
|
|
65
|
+
} | {
|
|
66
|
+
or: readonly (QueryCondition | undefined)[];
|
|
67
|
+
and?: never;
|
|
68
|
+
exists?: never;
|
|
69
|
+
notExists?: never;
|
|
70
|
+
}) & {
|
|
71
|
+
pruneIfUndefined?: "any" | "all";
|
|
72
|
+
}) | {
|
|
73
|
+
exists: ExistsQuery | undefined;
|
|
74
|
+
notExists?: never;
|
|
75
|
+
and?: never;
|
|
76
|
+
or?: never;
|
|
77
|
+
} | {
|
|
78
|
+
notExists: ExistsQuery | undefined;
|
|
79
|
+
exists?: never;
|
|
80
|
+
and?: never;
|
|
81
|
+
or?: never;
|
|
82
|
+
};
|
|
83
|
+
/** Phantom type information carried by a table-shaped subquery. */
|
|
84
|
+
interface SubqueryBrand<R, Name extends string> {
|
|
85
|
+
readonly __row: R;
|
|
86
|
+
readonly __name: Name;
|
|
87
|
+
}
|
|
88
|
+
/** Anything that can be a source or be joined: an entity table or a table-shaped subquery. */
|
|
89
|
+
type QuerySource = {
|
|
90
|
+
readonly [tableMgmt]: TableSourceBrand<string>;
|
|
91
|
+
} | {
|
|
92
|
+
readonly [subqueryBrand]: SubqueryBrand<any, string>;
|
|
93
|
+
};
|
|
94
|
+
/** A generated entity table or table-shaped subquery that supports `select: source`. */
|
|
95
|
+
type SelectableQuerySource = {
|
|
96
|
+
readonly [tableMgmt]: TableBrand<any, string>;
|
|
97
|
+
} | {
|
|
98
|
+
readonly [subqueryBrand]: SubqueryBrand<any, string>;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* A join entry (see `InnerJoin`/`LeftJoin` in `Expr.ts`): the expanded `{ inner: b, on }` form, or the
|
|
102
|
+
* entry a relation join factory returns (`a.books.as(b)`); joins to a subquery are always the expanded
|
|
103
|
+
* form, since a subquery has no FK metadata.
|
|
104
|
+
*/
|
|
105
|
+
type QueryJoin = InnerJoin<QuerySource, QueryCondition> | LeftJoin<QuerySource, QueryCondition>;
|
|
106
|
+
type QueryJoinList = readonly (QueryJoin | undefined)[];
|
|
107
|
+
/** A flat SQL join list or a domain relationship tree rooted at from. */
|
|
108
|
+
type QueryJoinInput = QueryJoinList | Readonly<Record<string, unknown>>;
|
|
109
|
+
/**
|
|
110
|
+
* Resolves tree bindings to join types for scope and result nullability.
|
|
111
|
+
* Deferring the extracted entry union avoids expanding recursive constraints in generic query signatures.
|
|
112
|
+
*/
|
|
113
|
+
type ResolvedJoins<F, J> = J extends QueryJoinList ? J : F extends TableFor<infer T extends Entity> ? TreeEntries<T, J> extends (infer E) ? readonly Extract<E, QueryJoin>[] : never : [];
|
|
114
|
+
/**
|
|
115
|
+
* A CTE declaration: a `query(...)` value with named columns, i.e. a POJO or set-operation select.
|
|
116
|
+
*
|
|
117
|
+
* Entity-mode and scalar `query(...)` shapes are excluded: a CTE must be a table shape, so it needs
|
|
118
|
+
* columns.
|
|
119
|
+
*/
|
|
120
|
+
type WithSource = Subquery<unknown, string>;
|
|
121
|
+
/** One CTE or an array of them; an `undefined` entry prunes, like any other clause. */
|
|
122
|
+
type WithInput = WithSource | readonly (WithSource | undefined)[];
|
|
123
|
+
/** How a recursive CTE combines its two terms: `UNION ALL` keeps every row, `UNION` drops duplicates. */
|
|
124
|
+
interface RecursiveOptions {
|
|
125
|
+
/** Defaults to `"all"`. `"distinct"` emits UNION, which stops a cyclic graph from looping forever. */
|
|
126
|
+
union?: "all" | "distinct";
|
|
127
|
+
}
|
|
128
|
+
/** An expression order-by entry, also returned by `expr.asc()` and `expr.desc()`. An undefined order prunes it. */
|
|
129
|
+
type ExpressionOrderBy = {
|
|
130
|
+
readonly sort: ExprLike<unknown>;
|
|
131
|
+
readonly order: "ASC" | "DESC" | undefined;
|
|
132
|
+
readonly nulls?: "first" | "last";
|
|
133
|
+
};
|
|
134
|
+
type OrderByDirection = "ASC" | "DESC" | "ASC NULLS FIRST" | "ASC NULLS LAST" | "DESC NULLS FIRST" | "DESC NULLS LAST";
|
|
135
|
+
/**
|
|
136
|
+
* A keyed `orderBy` entry, used alone or in an array, like `em.find`'s `orderBy: [{ firstName: "ASC" }]`.
|
|
137
|
+
*
|
|
138
|
+
* The keys are the keys of a POJO/subquery `select` (rendered as SQL output-column names, so ordering
|
|
139
|
+
* by an aggregate does not repeat its expression), or the entity's sortable fields in entity mode.
|
|
140
|
+
* An `undefined` direction prunes the entry, like any other condition. For expressions that are not
|
|
141
|
+
* in `select`, mix in `expr.asc()`/`expr.desc()` or `{ sort, order }` entries in the array form.
|
|
142
|
+
*/
|
|
143
|
+
type OrderByKeys<S> = S extends readonly NamedSelectExpression[] ? { readonly [K in SelectKey<S[number]>]?: OrderByDirection | undefined; } : S extends {
|
|
144
|
+
readonly [tableMgmt]: {
|
|
145
|
+
readonly __entity: infer T;
|
|
146
|
+
};
|
|
147
|
+
} ? T extends Entity ? { readonly [K in keyof Table<T> as Table<T>[K] extends ExprLike<any> ? K : never]?: OrderByDirection | undefined; } : never : S extends ExprLike<unknown> ? never : { readonly [K in keyof S & string]?: OrderByDirection | undefined; };
|
|
148
|
+
/** All sortable keys across select variants, not just the keys shared by every variant. */
|
|
149
|
+
type OrderByKey<S> = S extends unknown ? keyof OrderByKeys<S> : never;
|
|
150
|
+
/** Prevents a selected keyed sort from being silently mixed into an expression entry. */
|
|
151
|
+
type CheckedExpressionOrderBy<S> = ExpressionOrderBy & (string extends OrderByKey<S> ? unknown : [S] extends [{
|
|
152
|
+
readonly [tableMgmt]: unknown;
|
|
153
|
+
}] ? unknown : { readonly [K in Exclude<OrderByKey<S>, keyof ExpressionOrderBy>]?: never; });
|
|
154
|
+
/** The select shapes: a source, scalar expression, named column array, or POJO naming result columns. */
|
|
155
|
+
type QuerySelect = SelectableQuerySource | ExprLike<unknown> | readonly NamedSelectExpression[] | Record<string, SelectExpression>;
|
|
156
|
+
/** A named projection value may be an existing expression or an inline expression literal. */
|
|
157
|
+
type SelectExpression = ExprLike<unknown> | ExprInput;
|
|
158
|
+
/** A physical or subquery column that retains the field name used for array-select result rows. */
|
|
159
|
+
type NamedSelectExpression = ExprLike<unknown> & {
|
|
160
|
+
readonly [selectKeyBrand]: string;
|
|
161
|
+
};
|
|
162
|
+
/** Extracts the table property name carried by a column expression for array selects. */
|
|
163
|
+
type SelectKey<S> = S extends {
|
|
164
|
+
readonly [selectKeyBrand]: infer K extends string;
|
|
165
|
+
} ? K : never;
|
|
166
|
+
/** Checks expression literals only inside named projections. */
|
|
167
|
+
type CheckSelect<S> = S extends QuerySource | ExprLike<unknown> | readonly NamedSelectExpression[] ? unknown : { readonly [K in keyof S]: S[K] extends ExprInput ? CheckInput<S[K]> : unknown; };
|
|
168
|
+
/**
|
|
169
|
+
* Everything but the source, in SQL evaluation order: FROM/JOIN, WHERE, GROUP BY, HAVING, SELECT,
|
|
170
|
+
* ORDER BY, LIMIT.
|
|
171
|
+
*
|
|
172
|
+
* `S` and `J` are generic so callers keep the literal shape of `select` and `join`; the defaults let
|
|
173
|
+
* a standalone object use `satisfies Query` (or `satisfies Clauses` for a source-less fragment).
|
|
174
|
+
*/
|
|
175
|
+
interface Clauses<S extends QuerySelect = QuerySelect, J extends QueryJoinInput = QueryJoinInput> {
|
|
176
|
+
/**
|
|
177
|
+
* CTEs to include in a `WITH` clause, declared as `query(...)` values; either a single value or an array.
|
|
178
|
+
*
|
|
179
|
+
* I.e. `{ with: bookStats, from: a, join: [{ left: bookStats, on: ... }], select: { n: bookStats.n } }`.
|
|
180
|
+
*
|
|
181
|
+
* An `undefined` entry is ignored, and a CTE that nothing else in the query references will be pruned,
|
|
182
|
+
* the same pruning `join` gets (see "Pruning"); `pruneJoins: false` keeps every CTE.
|
|
183
|
+
*/
|
|
184
|
+
with?: WithInput;
|
|
185
|
+
/** A flat join list, or a domain relationship tree rooted at the entity table in from. */
|
|
186
|
+
join?: J;
|
|
187
|
+
/**
|
|
188
|
+
* An `{ and: [...] }` or `{ or: [...] }` group, an exists/notExists query, or a bare condition such as `a.age.gte(18)`.
|
|
189
|
+
*
|
|
190
|
+
* Arrays are shorthand for `{ and: [...] }`; undefined conditions are pruned.
|
|
191
|
+
*/
|
|
192
|
+
where?: QueryCondition | readonly (QueryCondition | undefined)[];
|
|
193
|
+
groupBy?: readonly ExprLike<any>[];
|
|
194
|
+
having?: QueryCondition;
|
|
195
|
+
select: S;
|
|
196
|
+
orderBy?: readonly (CheckedExpressionOrderBy<S> | OrderByKeys<S> | undefined)[] | CheckedExpressionOrderBy<S> | OrderByKeys<S>;
|
|
197
|
+
limit?: number;
|
|
198
|
+
offset?: number;
|
|
199
|
+
distinct?: boolean;
|
|
200
|
+
/** Defaults to true. `false` keeps every join, em.find's opt-out. */
|
|
201
|
+
pruneJoins?: boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Defaults to `"exclude"`, em.find's rule: a soft-deletable entity in `from` gains a
|
|
204
|
+
* `deleted_at IS NULL` condition in WHERE, and a joined one gains it in its join's ON (so a LEFT
|
|
205
|
+
* join nulls its columns out instead of dropping rows). `"include"` turns the injection off for
|
|
206
|
+
* this query; subqueries read their own key.
|
|
207
|
+
*/
|
|
208
|
+
softDeletes?: "include" | "exclude";
|
|
209
|
+
}
|
|
210
|
+
/** A whole query: `Clauses` plus its source. `query(q)` turns it into a value; `em.query(q)` runs it. */
|
|
211
|
+
interface Query<S extends QuerySelect = QuerySelect, J extends QueryJoinInput = QueryJoinInput> extends Clauses<S, J>, Partial<Record<SetOperation | MutationKey | "ctes", never>> {
|
|
212
|
+
from: QuerySource;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The six PostgreSQL set operations. Each compound root has exactly one operation.
|
|
216
|
+
*
|
|
217
|
+
* I.e. `union` removes duplicate projected Author names; `unionAll` keeps every copy.
|
|
218
|
+
*/
|
|
219
|
+
type SetOperation = "union" | "unionAll" | "intersect" | "intersectAll" | "except" | "exceptAll";
|
|
220
|
+
/** Mutation clauses are forbidden even on nonliteral read inputs. */
|
|
221
|
+
type MutationKey = "insert" | "update" | "delete" | "values" | "set" | "returning" | "allowAll";
|
|
222
|
+
/**
|
|
223
|
+
* For set operations like UNION, this is one read operand with named POJO columns: an ordinary query,
|
|
224
|
+
* a reusable query value, or another compound.
|
|
225
|
+
* Scalar queries, expressions, and entity hydration are excluded.
|
|
226
|
+
*
|
|
227
|
+
* I.e. `{ from: a, select: { id: a.id } }` and its `query(...)` value can contribute Author IDs to a
|
|
228
|
+
* union. `{ from: a, select: a.id }` cannot: even one-column set operands must give that column a name.
|
|
229
|
+
*/
|
|
230
|
+
type SetOperand = Query<Record<string, SelectExpression> | Subquery<unknown, string>> | Subquery<unknown, string> | SetQuery<readonly SetOperand[]>;
|
|
231
|
+
/**
|
|
232
|
+
* SQL-shaped compound input; use `satisfies SetQuery` to retain the operands' literal row types.
|
|
233
|
+
*
|
|
234
|
+
* I.e. for Author alias `a` and Book alias `b`:
|
|
235
|
+
* ```ts
|
|
236
|
+
* const names = {
|
|
237
|
+
* union: [
|
|
238
|
+
* { from: a, select: { name: a.first_name } },
|
|
239
|
+
* { from: b, select: { name: b.title } },
|
|
240
|
+
* ],
|
|
241
|
+
* orderBy: { name: "ASC" },
|
|
242
|
+
* } satisfies SetQuery;
|
|
243
|
+
* ```
|
|
244
|
+
*
|
|
245
|
+
* The default operand tuple requires at least two reads. `query` and `em.query` also infer dynamically
|
|
246
|
+
* sized arrays; `CheckSetQuery` validates their row types, and runtime validation checks their length.
|
|
247
|
+
* This input shape checks direction values; `CheckSetQuery` checks the inferred output keys in orderBy.
|
|
248
|
+
*/
|
|
249
|
+
type SetQuery<Operands extends readonly SetOperand[] = readonly [SetOperand, SetOperand, ...SetOperand[]]> = { [K in SetOperation]: { readonly [P in K]: Operands; } & { readonly [P in Exclude<SetOperation, K>]?: never; }; }[SetOperation] & {
|
|
250
|
+
/** CTEs for the combined query, declared once and in scope for every operand; see `Clauses.with`. */
|
|
251
|
+
readonly with?: WithInput;
|
|
252
|
+
readonly orderBy?: Readonly<Record<string, OrderByDirection | undefined>> | readonly (Readonly<Record<string, OrderByDirection | undefined>> | undefined)[];
|
|
253
|
+
readonly limit?: number;
|
|
254
|
+
readonly offset?: number;
|
|
255
|
+
readonly as?: string;
|
|
256
|
+
} & { readonly [K in "from" | "select" | "join" | "where" | "groupBy" | "having" | "distinct" | "softDeletes" | "pruneJoins" | MutationKey | "ctes"]?: never; };
|
|
257
|
+
/**
|
|
258
|
+
* Extracts the operand collection from each possible compound root, ignoring pagination and ordering.
|
|
259
|
+
*
|
|
260
|
+
* I.e. for `Q = { union: readonly [typeof authorNames, typeof bookNames]; limit: 10 }`, the result is
|
|
261
|
+
* `readonly [typeof authorNames, typeof bookNames]`. Distributing over Q also handles a runtime choice
|
|
262
|
+
* between different operations; Extract discards optional, unused operation keys whose value is undefined.
|
|
263
|
+
*/
|
|
264
|
+
type OperandsOf<Q> = Q extends unknown ? Extract<Q[keyof Q & SetOperation], readonly SetOperand[]> : never;
|
|
265
|
+
/**
|
|
266
|
+
* Gets the left operand, which supplies canonical output keys and the retained row type for EXCEPT/INTERSECT.
|
|
267
|
+
*
|
|
268
|
+
* I.e. `FirstOperand<{ except: readonly [typeof authorNames, typeof bookNames] }>` is `typeof authorNames`.
|
|
269
|
+
* For a dynamic array, the exact first element is unknown, so this is the array's element type instead.
|
|
270
|
+
*/
|
|
271
|
+
type FirstOperand<Q> = OperandsOf<Q>[0];
|
|
272
|
+
/**
|
|
273
|
+
* Resolves the named rows of an ordinary or compound read operand, including its LEFT join nullability.
|
|
274
|
+
*
|
|
275
|
+
* I.e. a query from Author `a` with a LEFT-joined Book `b` and `select: { title: b.title }` has row type
|
|
276
|
+
* `{ title: string | undefined }`, even though Book.title is required. A reusable `query(...)` value already
|
|
277
|
+
* stores that row type in its brand; a nested compound combines its own operands recursively.
|
|
278
|
+
*/
|
|
279
|
+
type ReadQueryRow<Q> = SetOperand extends Q ? unknown : Q extends {
|
|
280
|
+
readonly [subqueryBrand]: {
|
|
281
|
+
readonly __row: infer R;
|
|
282
|
+
};
|
|
283
|
+
} ? R : Q extends {
|
|
284
|
+
select: infer S;
|
|
285
|
+
} ? QueryRow<S, ResolvedJoins<Q[keyof Q & "from"], "join" extends keyof Q ? Extract<Q[keyof Q & "join"], QueryJoinInput> : []>> : [OperandsOf<Q>] extends [never] ? never : SetQueryRow<Q>;
|
|
286
|
+
/**
|
|
287
|
+
* UNION combines each column's values; INTERSECT and EXCEPT conservatively retain the left row.
|
|
288
|
+
*
|
|
289
|
+
* I.e. Author first names projected as `{ name: string }` unioned with LEFT-joined Book titles projected
|
|
290
|
+
* as `{ name: string | undefined }` produce `{ name: string | undefined }`. EXCEPT with those Author names on
|
|
291
|
+
* the left retains `{ name: string }`; it neither adds the right side's absence nor promises narrower values.
|
|
292
|
+
*
|
|
293
|
+
* The outer conditional distributes over a TypeScript union of alternative queries. I.e. a runtime
|
|
294
|
+
* choice between an Author-name UNION and a Book-order EXCEPT must retain `{ name: string } | { order: number }`.
|
|
295
|
+
*/
|
|
296
|
+
type SetQueryRow<Q> = Q extends unknown ? { -readonly [K in keyof ReadQueryRow<FirstOperand<Q>>]: ColumnValue<Q extends {
|
|
297
|
+
union: readonly SetOperand[];
|
|
298
|
+
} | {
|
|
299
|
+
unionAll: readonly SetOperand[];
|
|
300
|
+
} ? ReadQueryRow<OperandsOf<Q>[number]> : ReadQueryRow<FirstOperand<Q>>, K>; } : never;
|
|
301
|
+
/**
|
|
302
|
+
* Collects column K's value from each row alternative in R, rather than requiring K on every alternative.
|
|
303
|
+
*
|
|
304
|
+
* I.e. `ColumnValue<{ name: string } | { name: string | null }, "name">` is `string | null`.
|
|
305
|
+
* An alternative without K contributes never; `CompatibleRow` separately rejects mismatched operand keys.
|
|
306
|
+
*/
|
|
307
|
+
type ColumnValue<R, K extends PropertyKey> = R extends unknown ? (K extends keyof R ? R[K] : never) : never;
|
|
308
|
+
/**
|
|
309
|
+
* Checks whether either non-null value type is assignable to the other, without requiring equal nullability.
|
|
310
|
+
*
|
|
311
|
+
* I.e. `CompatibleValue<number, number | null>` is true, while `CompatibleValue<AuthorId, BookId>` is false.
|
|
312
|
+
* This is only a TypeScript check: Author.age and Author.age.sum() both pass as numbers, but runtime
|
|
313
|
+
* output-type checks must still reject their different int4/int8 representations.
|
|
314
|
+
*/
|
|
315
|
+
type CompatibleValue<L, R> = [NonNullable<L>] extends [NonNullable<R>] ? true : [NonNullable<R>] extends [NonNullable<L>] ? true : false;
|
|
316
|
+
/**
|
|
317
|
+
* Requires exactly the same output keys and compatible TypeScript values for every column.
|
|
318
|
+
*
|
|
319
|
+
* I.e. `L = { name: string; age: number }` and `R = { age: number | null; name: string }` are compatible despite
|
|
320
|
+
* key order and nullability. `{ name: string }` and `{ title: string }` are not. SQL representations and
|
|
321
|
+
* codec domains still need runtime validation; this boolean does not establish decoder compatibility.
|
|
322
|
+
*/
|
|
323
|
+
type CompatibleRow<L, R> = [keyof L] extends [keyof R] ? [keyof R] extends [keyof L] ? false extends { [K in keyof L]: CompatibleValue<L[K], ColumnValue<R, K>>; }[keyof L] ? false : true : false : false;
|
|
324
|
+
/**
|
|
325
|
+
* Produces a constraint for Q: unknown leaves a valid operand unchanged, while a message rejects it.
|
|
326
|
+
*
|
|
327
|
+
* I.e. First can select Author.firstName as `name` and Q can select Book.title as `name`. Both pass.
|
|
328
|
+
* Changing Q's key to `title` produces the key/value diagnostic. A nested compound must also pass its own
|
|
329
|
+
* arity and ordering checks, not merely expose a compatible result row.
|
|
330
|
+
*/
|
|
331
|
+
type CheckOperand<First, Q> = CompatibleRow<ReadQueryRow<First>, ReadQueryRow<Q>> extends true ? Q extends SetQuery<readonly SetOperand[]> ? CheckSetQuery<Q> : CheckReadQuery<Q> : "set operands must have the same keys and compatible column values";
|
|
332
|
+
/**
|
|
333
|
+
* Checks every operand against O[0] while preserving the collection's tuple shape and readonly modifier.
|
|
334
|
+
*
|
|
335
|
+
* I.e. compatible operands `O = readonly [typeof authorNames, typeof bookNames]` produce
|
|
336
|
+
* `readonly [unknown, unknown]` constraints. Mapping O directly preserves length instead of validating
|
|
337
|
+
* array methods and the length property as though they were additional query operands.
|
|
338
|
+
*/
|
|
339
|
+
type CheckOperands<O extends readonly SetOperand[]> = { readonly [I in keyof O]: CheckOperand<O[0], O[I]>; };
|
|
340
|
+
/**
|
|
341
|
+
* Restricts each ordering hash to Keys, including hashes supplied through variables or readonly arrays.
|
|
342
|
+
*
|
|
343
|
+
* I.e. with `Keys = "name"`, `{ name: "ASC" }` and `[undefined, { name: "DESC" }]` pass, but a `title`
|
|
344
|
+
* key receives a diagnostic. SetQuery already restricts direction values; this check does not replace them.
|
|
345
|
+
*/
|
|
346
|
+
type CheckSetOrder<O, Keys> = O extends readonly unknown[] ? { readonly [I in keyof O]: CheckSetOrder<O[I], Keys>; } : { readonly [K in keyof O]: K extends Keys ? unknown : "orderBy must name a set output column"; };
|
|
347
|
+
/**
|
|
348
|
+
* Validate known tuples and output ordering without widening the inferred operand projections.
|
|
349
|
+
* Preserve optional keys when TypeScript infers a runtime choice between different operations.
|
|
350
|
+
*
|
|
351
|
+
* I.e. `{ union: [authorNames] as const }` fails minimum arity; a `typeof authorNames[]` can pass the
|
|
352
|
+
* static checks but still needs a runtime length check. If authorNames and bookNames both expose only
|
|
353
|
+
* `name`, combining them with `orderBy: { title: "ASC" }` fails the output-key check.
|
|
354
|
+
*
|
|
355
|
+
* The result is intersected with the inferred input Q. Unknown constraints leave its literal types
|
|
356
|
+
* intact; error messages make the offending operands or ordering keys incompatible with that input.
|
|
357
|
+
*/
|
|
358
|
+
type CheckSetQuery<Q extends SetQuery<readonly SetOperand[]>> = Q extends unknown ? SetOperand extends FirstOperand<Q> ? "set operands were typed too generically; use `satisfies SetQuery` instead" : { readonly [K in keyof Q]: K extends SetOperation ? Q[K] extends readonly SetOperand[] ? number extends Q[K]["length"] ? CheckOperands<Q[K]> : Q[K] extends readonly [SetOperand, SetOperand, ...SetOperand[]] ? CheckOperands<Q[K]> : "set operations require at least two operands" : never : unknown; } & CheckReadQuery<Q> & {
|
|
359
|
+
readonly orderBy?: CheckSetOrder<Q["orderBy"], keyof ReadQueryRow<FirstOperand<Q>>>;
|
|
360
|
+
} : never;
|
|
361
|
+
/**
|
|
362
|
+
* Rejects unknown clauses on concrete read inputs, recursively through compound operands.
|
|
363
|
+
* Intersect this with an inferred Q; a widened annotation cannot reveal keys already erased from its type.
|
|
364
|
+
* I.e. an INSERT source with `select: { title: b.title }` and `ctes: [...]` must not silently discard the CTEs.
|
|
365
|
+
*/
|
|
366
|
+
type CheckReadQuery<Q> = SetOperand extends Q ? unknown : Q extends readonly unknown[] ? { readonly [I in keyof Q]: CheckReadQuery<Q[I]>; } : Q extends {
|
|
367
|
+
readonly [subqueryBrand]: SubqueryBrand<infer R, string>;
|
|
368
|
+
} ? { readonly [K in keyof Q]: K extends keyof R | typeof subqueryBrand ? unknown : never; } : Q extends {
|
|
369
|
+
readonly [entityQueryBrand]: unknown;
|
|
370
|
+
} ? { readonly [K in keyof Q]: K extends typeof entityQueryBrand ? unknown : never; } : Q extends {
|
|
371
|
+
readonly from: unknown;
|
|
372
|
+
readonly select: unknown;
|
|
373
|
+
} ? CheckJoinInput<Q["from"], "join" extends keyof Q ? Exclude<Q[keyof Q & "join"], undefined> : []> & { readonly [K in keyof Q]: K extends "select" ? CheckSelect<Q[K]> : K extends keyof Clauses | "from" | "as" ? unknown : never; } : { readonly [K in keyof Q]: K extends SetOperation ? Q[K] extends readonly unknown[] ? CheckReadQuery<Q[K]> : unknown : K extends "with" | "orderBy" | "limit" | "offset" | "as" ? unknown : never; };
|
|
374
|
+
/** The type-level name of a table or subquery, i.e. `"Author"` or `"book_stats"`. */
|
|
375
|
+
type NameOf<A> = A extends {
|
|
376
|
+
readonly [tableMgmt]: {
|
|
377
|
+
readonly __name: infer N;
|
|
378
|
+
};
|
|
379
|
+
} ? N : A extends {
|
|
380
|
+
readonly [subqueryBrand]: {
|
|
381
|
+
readonly __name: infer N;
|
|
382
|
+
};
|
|
383
|
+
} ? N : never;
|
|
384
|
+
/** The names of every alias that was LEFT JOINed; `X` is a naked type parameter so this distributes. */
|
|
385
|
+
type LeftJoined<X> = X extends LeftJoin<infer A> ? NameOf<A> : never;
|
|
386
|
+
/** Adds default reference targets whose source is already nullable; explicit INNER joins do not inherit. */
|
|
387
|
+
type InheritedLeft<X, Left> = X extends {
|
|
388
|
+
readonly [referenceJoinSource]: infer Src;
|
|
389
|
+
readonly inner: infer A;
|
|
390
|
+
} ? [Extract<Src, Left>] extends [never] ? never : NameOf<A> : never;
|
|
391
|
+
/**
|
|
392
|
+
* Finds all aliases that can be NULL through LEFT joins and subsequent reference joins.
|
|
393
|
+
* I.e. LEFT Book adds Author via Book.author.as(a), then further required references inherit Author's NULL.
|
|
394
|
+
* Alias-name collisions are conservative, as they are for explicit LEFT joins; runtime uses exact handles.
|
|
395
|
+
*/
|
|
396
|
+
type NullableSources<X, Left = LeftJoined<X>> = [Exclude<InheritedLeft<X, Left>, Left>] extends [never] ? Left : NullableSources<X, Left | InheritedLeft<X, Left>>;
|
|
397
|
+
/**
|
|
398
|
+
* Asks: is this expression's source key among the LEFT-joined sources in this query's join list? If
|
|
399
|
+
* yes, SQL can return NULL, so `R` becomes `R | null`; if no, `R` is unchanged.
|
|
400
|
+
*
|
|
401
|
+
* I.e. `MaybeNull<number, "book_stats", [LeftJoin<typeof bookStats>]>` is `number | null`,
|
|
402
|
+
* because `book_stats` is in `NullableSources<J[number]>`; with an inner join it stays `number`.
|
|
403
|
+
* Default references from nullable sources are included transitively.
|
|
404
|
+
*
|
|
405
|
+
* Source-less expressions (`Src` is `never`, i.e. `b.id.count()`) are never nullified. Untracked ones
|
|
406
|
+
* (`Src` is `string`, i.e. a table whose entity type is not statically known) might come from any left-joined table,
|
|
407
|
+
* so they are conservatively nullified whenever the query has a left join at all.
|
|
408
|
+
*
|
|
409
|
+
* `string` must never be a *table's* name: `Extract<"Author", string>` matches, so one left-joined
|
|
410
|
+
* table named `string` would nullify every column in the query. That is why anonymous subqueries
|
|
411
|
+
* share the literal sentinel `"?"` instead.
|
|
412
|
+
*/
|
|
413
|
+
type MaybeNull<R, Src extends string, J extends QueryJoinList> = string extends Src ? [NullableSources<J[number]>] extends [never] ? R : R | null : [Extract<Src, NullableSources<J[number]>>] extends [never] ? R : R | null;
|
|
414
|
+
/**
|
|
415
|
+
* The result row for a query with select `S` and joins `J`.
|
|
416
|
+
*
|
|
417
|
+
* - entity mode (`select: a`) is the entity
|
|
418
|
+
* - subquery mode (`select: bookStats`) is the subquery's row, i.e. `select *`
|
|
419
|
+
* - single expression (`select: b.id.count()`) is that expression's value, used by scalar subqueries
|
|
420
|
+
* - column array mode uses each column's field name as the result key
|
|
421
|
+
* - POJO mode is a mapped type over the select keys, with left-join nullability applied
|
|
422
|
+
*/
|
|
423
|
+
type QueryRow<S, J extends QueryJoinList = []> = S extends {
|
|
424
|
+
readonly [tableMgmt]: {
|
|
425
|
+
readonly __entity: infer T;
|
|
426
|
+
};
|
|
427
|
+
} ? T : S extends {
|
|
428
|
+
readonly [subqueryBrand]: {
|
|
429
|
+
readonly __row: infer R;
|
|
430
|
+
};
|
|
431
|
+
} ? R : S extends ExprLike<unknown> ? QueryResultValue<ExpressionValue<S, J>> : S extends readonly NamedSelectExpression[] ? { -readonly [E in S[number] as SelectKey<E>]: QueryResultValue<ExpressionValue<E, J>>; } : { -readonly [K in keyof S]: S[K] extends SelectExpression ? QueryResultValue<ExpressionValue<S[K] extends ExprInput ? ExprFromInput<S[K]> : S[K], J>> : never; };
|
|
432
|
+
/**
|
|
433
|
+
* Converts top-level SQL NULL to Joist's public undefined convention.
|
|
434
|
+
*
|
|
435
|
+
* Column metadata and expressions retain `T | null` because null is an explicit SQL value used by
|
|
436
|
+
* predicates, assignments, and functions such as COALESCE. Undefined instead means an omitted input.
|
|
437
|
+
* Keeping that distinction also lets reusable queries become SQL expressions without changing domains.
|
|
438
|
+
* The conversion therefore happens only at the executed-row boundary; nested array and JSON nulls remain null.
|
|
439
|
+
*/
|
|
440
|
+
type QueryResultValue<V> = Exclude<V, null> | (null extends V ? undefined : never);
|
|
441
|
+
/**
|
|
442
|
+
* Restores SQL NULL when a public query result is reused as an expression or mutation source.
|
|
443
|
+
*
|
|
444
|
+
* A future alternative is to retain both domains on every expression, i.e.
|
|
445
|
+
* `Expr<Sql, Src extends string = string, Result = QueryResultValue<Sql>>`. QueryRow could then use Result
|
|
446
|
+
* while predicates and reusable queries use Sql, avoiding this reverse conversion without making the
|
|
447
|
+
* common expression declaration verbose.
|
|
448
|
+
*/
|
|
449
|
+
type SqlExpressionValue<V> = Exclude<V, undefined> | (undefined extends V ? null : never);
|
|
450
|
+
/**
|
|
451
|
+
* A table-shaped query: one `Expr` per select key, each tagged with the table's name as its `Src`,
|
|
452
|
+
* plus a brand carrying the row type. This is the direct analog of `Table<T>`: `Table<T>` maps physical
|
|
453
|
+
* columns to expressions, `Subquery<Row, Name>` maps the inner query's select keys to expressions.
|
|
454
|
+
*/
|
|
455
|
+
type Subquery<R, Name extends string> = {
|
|
456
|
+
readonly [subqueryBrand]: SubqueryBrand<R, Name>;
|
|
457
|
+
} & { readonly [K in keyof R]: Expr<SqlExpressionValue<R[K]>, Name> & {
|
|
458
|
+
readonly [selectKeyBrand]: Extract<K, string>;
|
|
459
|
+
}; };
|
|
460
|
+
/** An entity-mode query (`select: a`): runnable, but it has no columns to reference. */
|
|
461
|
+
type EntityQuery<T extends Entity> = {
|
|
462
|
+
readonly [entityQueryBrand]: {
|
|
463
|
+
readonly __row: T;
|
|
464
|
+
};
|
|
465
|
+
} & Partial<Record<MutationKey | "with" | "ctes", never>>;
|
|
466
|
+
/** A scalar/list query that remains distinguishable from ordinary expressions for EXISTS. */
|
|
467
|
+
type ScalarQuery<R> = Expr<SqlExpressionValue<R> | null, never> & {
|
|
468
|
+
readonly [scalarQueryBrand]: true;
|
|
469
|
+
};
|
|
470
|
+
/**
|
|
471
|
+
* Rejects a `select` that a `: Query` annotation widened to the whole `QuerySelect` union.
|
|
472
|
+
*
|
|
473
|
+
* `satisfies Query` checks the shape but keeps the literal type of `select`, so `S` infers as
|
|
474
|
+
* `{ name: Expr<string, "Author"> }`. A `: Query` annotation replaces that type with the annotation, so
|
|
475
|
+
* `S` infers as `QuerySelect` itself, and without this guard `query(q)` returned a useless union with no
|
|
476
|
+
* error at all.
|
|
477
|
+
*
|
|
478
|
+
* A widened `S` is the only kind of `S` the whole `QuerySelect` union is assignable to (a POJO, an
|
|
479
|
+
* `Expr`, or a `Table` never is), so `QuerySelect extends S` detects it, and intersecting the parameter
|
|
480
|
+
* with `{ select: "<message>" }` fails the call on `select` with that message, for `query()` and
|
|
481
|
+
* `em.query()` alike:
|
|
482
|
+
*
|
|
483
|
+
* const narrow = { from: a, select: { name: a.first_name } } satisfies Query;
|
|
484
|
+
* query(narrow); // Subquery<{ name: string }, "?">
|
|
485
|
+
*
|
|
486
|
+
* const widened: Query = { from: a, select: { name: a.first_name } };
|
|
487
|
+
* query(widened);
|
|
488
|
+
* // error: Type 'QuerySelect' is not assignable to type
|
|
489
|
+
* // '"select was typed too generically; use `satisfies Query` instead of `: Query`"'
|
|
490
|
+
*
|
|
491
|
+
* `S` also defaults to `never`, so a *missing* `select` is reported as "Property 'select' is missing"
|
|
492
|
+
* against `Query<never, []>` instead of tripping this guard.
|
|
493
|
+
*/
|
|
494
|
+
type NotWidened<S> = QuerySelect extends S ? {
|
|
495
|
+
select: "select was typed too generically; use `satisfies Query` instead of `: Query`";
|
|
496
|
+
} : unknown;
|
|
497
|
+
/** What `query()` returns, by select shape: an entity list, a scalar/list subquery, or a derived table. */
|
|
498
|
+
type QueryValue<S, J extends QueryJoinList, Name extends string> = S extends {
|
|
499
|
+
readonly [tableMgmt]: {
|
|
500
|
+
readonly __entity: infer T extends Entity;
|
|
501
|
+
};
|
|
502
|
+
} ? EntityQuery<T> : S extends ExprLike<unknown> ? ScalarQuery<QueryRow<S, J>> : Subquery<QueryRow<S, J>, Name>;
|
|
503
|
+
/** The names of every alias in scope for a query: the source alias plus every joined alias. */
|
|
504
|
+
type JoinedName<X> = X extends {
|
|
505
|
+
readonly inner: infer A;
|
|
506
|
+
} ? NameOf<A> : X extends {
|
|
507
|
+
readonly left: infer A;
|
|
508
|
+
} ? NameOf<A> : never;
|
|
509
|
+
type InScope<F, J extends QueryJoinList> = NameOf<F> | JoinedName<J[number]>;
|
|
510
|
+
/**
|
|
511
|
+
* Asks, for every column of a POJO select: is its source key among `from` + `join` at all? If no, the
|
|
512
|
+
* query reads from a table it never joined, and that select key's type becomes an error message.
|
|
513
|
+
*
|
|
514
|
+
* Because `Expr` already carries `Src`, this is nearly free: for each select key, if `Src` is tracked
|
|
515
|
+
* and any of its names is outside `InScope`, intersect that key's type with an error string, so the
|
|
516
|
+
* caller sees `Type 'Expr<number, "book_stats">' is not assignable to type '... is not in from/join'`.
|
|
517
|
+
* Untracked (`string`) and source-less (`never`) expressions always pass. Tables with the same
|
|
518
|
+
* type-level name (two bare `table(Author)`, or two anonymous tables) cannot be told apart, so a miss
|
|
519
|
+
* there goes unreported; the check never gives a false positive, only false negatives on collisions.
|
|
520
|
+
*
|
|
521
|
+
* `[S] extends [...]` keeps this non-distributive, and `never` is skipped outright: `query()` defaults
|
|
522
|
+
* `S` to `never` when `select` is missing, and a distributive conditional over `never` would swallow the
|
|
523
|
+
* whole parameter type.
|
|
524
|
+
*/
|
|
525
|
+
type CheckScope<S, F, J extends QueryJoinInput> = [S] extends [never] ? unknown : [S] extends [QuerySource] ? NameOf<S> extends NameOf<F> ? unknown : {
|
|
526
|
+
select: `'${NameOf<S> & string}' is a joined source, not the from; select its columns individually`;
|
|
527
|
+
} : [S] extends [readonly NamedSelectExpression[]] ? {
|
|
528
|
+
select: { [K in keyof S]: CheckExpressionScope<S[K], InScope<F, ResolvedJoins<F, J>>>; };
|
|
529
|
+
} : [S] extends [Record<string, SelectExpression>] ? {
|
|
530
|
+
select: { [K in keyof S]: CheckExpressionScope<S[K], InScope<F, ResolvedJoins<F, J>>>; };
|
|
531
|
+
} : unknown;
|
|
532
|
+
/** Includes columns nested in inline CASE values and fallbacks in the existing scope check. */
|
|
533
|
+
type CheckExpressionScope<V, Scope> = string extends ExpressionSources<V> ? unknown : [Exclude<ExpressionSources<V>, Scope>] extends [never] ? unknown : `table '${Exclude<ExpressionSources<V>, Scope> & string}' is not in from/join`;
|
|
534
|
+
/** The one argument type `query()` and `em.query()` share: a `Query` POJO plus its source, name, and checks. */
|
|
535
|
+
type QueryArg<F extends QuerySource, S extends QuerySelect, J extends QueryJoinInput, Name extends string> = Query<S, J> & {
|
|
536
|
+
from: F;
|
|
537
|
+
as?: Name;
|
|
538
|
+
} & CheckScope<S, F, J> & NoInfer<CheckJoinInput<F, J>> & NotWidened<S> & {
|
|
539
|
+
select: CheckSelect<NoInfer<S>>;
|
|
540
|
+
};
|
|
541
|
+
/**
|
|
542
|
+
* Turns a `Query` POJO into a value. The select shape decides which (`QueryValue`):
|
|
543
|
+
*
|
|
544
|
+
* - a single expression is a scalar subquery or an IN list (`Expr<R | null>`; a scalar subquery can
|
|
545
|
+
* return no row, so use `.coalesce(0)` when the SQL guarantees a value, i.e. an ungrouped `count`)
|
|
546
|
+
* - an entity table is an entity list, runnable via `em.query`
|
|
547
|
+
* - a POJO is a derived table whose columns are `Expr`s; it can be a source, be joined, or be run
|
|
548
|
+
*
|
|
549
|
+
* `as` is the SQL alias and the type-level identity, the same role the second argument of
|
|
550
|
+
* `table(Author, "m")` plays. Without it the SQL alias is generated, like `table(Author)`, and all
|
|
551
|
+
* anonymous tables share the type-level identity `"?"`: precise against every named alias, and
|
|
552
|
+
* conservative (a left-joined anonymous table nullifies every anonymous table's columns) only among
|
|
553
|
+
* themselves. This is the same collision two bare `table(Author)` have.
|
|
554
|
+
*
|
|
555
|
+
* Ordinary SELECT shapes share one signature: separate scalar/entity/POJO overloads hid `as` from
|
|
556
|
+
* completions and cost 15-28% check time. The separate compound root has one additional signature;
|
|
557
|
+
* `NotWidened` still rejects a SELECT widened by a `: Query` annotation.
|
|
558
|
+
*/
|
|
559
|
+
declare function query<const Q extends SetQuery<readonly SetOperand[]>, Name extends string = "?">(q: Q & CheckSetQuery<Q> & {
|
|
560
|
+
as?: Name;
|
|
561
|
+
}): Subquery<SetQueryRow<Q>, Name>;
|
|
562
|
+
declare function query<F extends QuerySource, const S extends QuerySelect = never, J extends QueryJoinInput = [], Name extends string = "?">(q: QueryArg<F, S, J, Name>): QueryValue<S, ResolvedJoins<F, J>, Name>;
|
|
563
|
+
/**
|
|
564
|
+
* Builds a query value only when its user-supplied `where` or join-tree filters survive pruning.
|
|
565
|
+
*
|
|
566
|
+
* Missing or empty conditions prune the value, including nested groups and `pruneIfUndefined`.
|
|
567
|
+
* Alias-only joins, HAVING, and implicit soft-delete/STI conditions do not keep the value alive.
|
|
568
|
+
*
|
|
569
|
+
* I.e. `queryMaybe({ from: b, where: b.authorId.eq(enabled ? a.id : undefined), select: b.id })`
|
|
570
|
+
* returns `undefined` when `enabled` is false, so an enclosing `notExists` also prunes.
|
|
571
|
+
*/
|
|
572
|
+
declare function queryMaybe<F extends QuerySource, const S extends QuerySelect = never, J extends QueryJoinInput = [], Name extends string = "?">(q: QueryArg<F, S, J, Name>): QueryValue<S, ResolvedJoins<F, J>, Name> | undefined;
|
|
573
|
+
/**
|
|
574
|
+
* Declares a `WITH RECURSIVE` CTE from its two terms, and returns the CTE as a readable value.
|
|
575
|
+
*
|
|
576
|
+
* `base` is the non-recursive term, which seeds the rows and, as in PostgreSQL, supplies the CTE's
|
|
577
|
+
* columns. `step` is the recursive term: it receives the CTE itself, so it can join back to the rows
|
|
578
|
+
* found so far. The two terms are combined with UNION ALL, or UNION when `union: "distinct"` drops
|
|
579
|
+
* duplicates, which is how a cyclic graph is kept from looping forever.
|
|
580
|
+
*
|
|
581
|
+
* ```ts
|
|
582
|
+
* const [a] = tables(Author);
|
|
583
|
+
* const tree = recursiveQuery(
|
|
584
|
+
* "tree",
|
|
585
|
+
* { from: a, where: a.mentor_id.isNull(), select: { id: a.id, mentorId: a.mentor_id } },
|
|
586
|
+
* (self) => ({
|
|
587
|
+
* from: a,
|
|
588
|
+
* join: [{ inner: self, on: a.mentor_id.eq(self.id) }],
|
|
589
|
+
* select: { id: a.id, mentorId: a.mentor_id },
|
|
590
|
+
* }),
|
|
591
|
+
* );
|
|
592
|
+
* const rows = await em.query({ with: tree, from: tree, select: tree });
|
|
593
|
+
* ```
|
|
594
|
+
*
|
|
595
|
+
* Unlike `query()`, the name is required, because the step term must name it.
|
|
596
|
+
*/
|
|
597
|
+
declare function recursiveQuery<Name extends string, F extends QuerySource, const S extends QuerySelect, J extends QueryJoinInput>(name: Name, base: QueryArg<F, S, J, Name>, step: (self: Subquery<QueryRow<S, ResolvedJoins<F, J>>, Name>) => SetOperand, opts?: RecursiveOptions): Subquery<QueryRow<S, ResolvedJoins<F, J>>, Name>;
|
|
598
|
+
/**
|
|
599
|
+
* Builds a SQL expression from a tagged template.
|
|
600
|
+
*
|
|
601
|
+
* For an Author alias `a` assigned the SQL alias `a1`:
|
|
602
|
+
*
|
|
603
|
+
* ```ts
|
|
604
|
+
* sql`${a.age} * 2` // Expression: a1.age * 2
|
|
605
|
+
* sql`${a.age.gte(18)}` // Condition: (a1.age >= ?), bindings [18]
|
|
606
|
+
* sql`${"Alice"}` // Value: ?, bindings ["Alice"]
|
|
607
|
+
*
|
|
608
|
+
* // Selecting this expression keeps the join to Book b.
|
|
609
|
+
* sql.number`${b.order} * ${2}`
|
|
610
|
+
*
|
|
611
|
+
* // Reference an unmodeled column; prefer the table's own `column`, which keeps its source key.
|
|
612
|
+
* a.column<string>("ts_search")
|
|
613
|
+
* sql.condition`${a.column("ts_search")} @@ plainto_tsquery(${term})`
|
|
614
|
+
* ```
|
|
615
|
+
*/
|
|
616
|
+
declare function sql<R = unknown>(strings: TemplateStringsArray, ...values: unknown[]): Expr<R, never>;
|
|
617
|
+
declare namespace sql {
|
|
618
|
+
var number: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<number, never>;
|
|
619
|
+
var numberOrNull: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<number | null, never>;
|
|
620
|
+
var numberArray: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<number[], never>;
|
|
621
|
+
var numberArrayOrNull: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<number[] | null, never>;
|
|
622
|
+
var string: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<string, never>;
|
|
623
|
+
var stringOrNull: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<string | null, never>;
|
|
624
|
+
var stringArray: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<string[], never>;
|
|
625
|
+
var stringArrayOrNull: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<string[] | null, never>;
|
|
626
|
+
var boolean: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<boolean, never>;
|
|
627
|
+
var booleanOrNull: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<boolean | null, never>;
|
|
628
|
+
var booleanArray: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<boolean[], never>;
|
|
629
|
+
var booleanArrayOrNull: (strings: TemplateStringsArray, ...values: unknown[]) => Expr<boolean[] | null, never>;
|
|
630
|
+
var condition: (strings: TemplateStringsArray, ...values: unknown[]) => SqlCondition;
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Parses `arg` (a `Query` POJO or `query(...)` value) into a runnable `Plan`.
|
|
634
|
+
*
|
|
635
|
+
* `EntityManager.query` runs the plan; this module deliberately does not import `EntityManager` (see
|
|
636
|
+
* `EntityHydrator`), so it parses and hands back `{ sql, bindings, decodeRows }` instead of executing.
|
|
637
|
+
*/
|
|
638
|
+
declare function parseUserQuery(arg: unknown): Plan;
|
|
639
|
+
/**
|
|
640
|
+
* Parses a read that sits inside another statement, i.e. an INSERT's SELECT source, so it resolves that
|
|
641
|
+
* statement's CTEs and shares its alias space instead of generating names that could collide with them.
|
|
642
|
+
*/
|
|
643
|
+
declare function parseNestedQuery(arg: unknown, parent: Ctx, assigner: AliasAssigner): Plan;
|
|
644
|
+
/** Recognizes read brands, including malformed hybrids that must reach read validation rather than mutation execution. */
|
|
645
|
+
declare function isReadQueryValue(arg: unknown): boolean;
|
|
646
|
+
/**
|
|
647
|
+
* Compiles scalar or nonempty named expression projections, shared by SELECT and mutation RETURNING.
|
|
648
|
+
* Source-shaped values need read hydration/source rules and are deliberately excluded here.
|
|
649
|
+
*/
|
|
650
|
+
declare function projectionToSql(select: unknown, ctx: Ctx, joins?: QueryJoinList): {
|
|
651
|
+
selects: SqlFragment[];
|
|
652
|
+
decodeRows: Plan["decodeRows"];
|
|
653
|
+
output: QueryOutput;
|
|
654
|
+
};
|
|
655
|
+
/**
|
|
656
|
+
* The one `EntityManager` capability that row decoding needs, typed structurally.
|
|
657
|
+
*
|
|
658
|
+
* Importing `EntityManager.ts` here would complete an `EntityManager.ts` <-> `query.ts` declaration
|
|
659
|
+
* cycle (`EntityManager.query` imports this module's types), which correlated with a tsc 7.0.2
|
|
660
|
+
* incremental-build bug: after tsdown rewrites `build/`, `tsc --build` sporadically reports thousands
|
|
661
|
+
* of phantom "Module 'joist-orm' has no exported member ..." errors and caches them in `.tsbuildinfo`.
|
|
662
|
+
*/
|
|
663
|
+
interface EntityHydrator {
|
|
664
|
+
hydrate(cstr: any, rows: readonly any[]): any[];
|
|
665
|
+
}
|
|
666
|
+
interface Plan {
|
|
667
|
+
sql: string;
|
|
668
|
+
bindings: any[];
|
|
669
|
+
/** Aliases of enclosing queries this (sub)query referenced. */
|
|
670
|
+
outerRefs: string[];
|
|
671
|
+
/** Ordered SQL output columns and their existing expression codecs, before JS row decoding. */
|
|
672
|
+
output: QueryOutput;
|
|
673
|
+
decodeRows(em: EntityHydrator, rows: any[]): any[];
|
|
674
|
+
}
|
|
675
|
+
type AnyQuery = Query<any, any> & {
|
|
676
|
+
as?: string;
|
|
677
|
+
};
|
|
678
|
+
type AnyReadQuery = AnyQuery | SetQuery<readonly SetOperand[]>;
|
|
679
|
+
/** Only POJO outputs can be set operands; ordinary scalar reads also expose an ordered output column. */
|
|
680
|
+
interface QueryOutput {
|
|
681
|
+
kind: "entity" | "scalar" | "pojo";
|
|
682
|
+
/** Expressions retain codecs and physical nullability after LEFT joins and set operations. */
|
|
683
|
+
columns: readonly (readonly [string, BaseExpr])[];
|
|
684
|
+
}
|
|
685
|
+
/** The runtime identity of a `query(...)` value; `Ctx.aliasFor` keys on it, like a table's `TableMgmt`. */
|
|
686
|
+
declare class SubqueryHandle {
|
|
687
|
+
#private;
|
|
688
|
+
readonly recursive: boolean;
|
|
689
|
+
constructor(q: AnyReadQuery, recursive?: boolean);
|
|
690
|
+
get q(): AnyReadQuery;
|
|
691
|
+
/**
|
|
692
|
+
* Gives a recursive CTE its finished body. `recursiveQuery` starts the handle on its base term, so
|
|
693
|
+
* the step term can read the CTE's columns while the body that will hold that step is still being
|
|
694
|
+
* built. The base term supplies the CTE's columns either way, PostgreSQL's rule for a recursive WITH.
|
|
695
|
+
*/
|
|
696
|
+
setBody(q: AnyReadQuery): void;
|
|
697
|
+
get name(): string | undefined;
|
|
698
|
+
/** The select keys, for `select: <subquery>` and for reporting unknown columns. */
|
|
699
|
+
columnKeys(): string[];
|
|
700
|
+
/** The inner expression behind `key`, for its decoder/encoder. */
|
|
701
|
+
columnExpr(key: string): BaseExpr;
|
|
702
|
+
/** Resolve output metadata without parsing SQL or caching aliases from an enclosing query. */
|
|
703
|
+
output(): QueryOutput;
|
|
704
|
+
column(key: string): SubqueryColumnExpr;
|
|
705
|
+
describe(): string;
|
|
706
|
+
}
|
|
707
|
+
/** A column of a joined/from'd subquery, i.e. `bookStats.bookCount`, which becomes `book_stats."bookCount"`. */
|
|
708
|
+
declare class SubqueryColumnExpr extends BaseExpr {
|
|
709
|
+
private handle;
|
|
710
|
+
private key;
|
|
711
|
+
private inner;
|
|
712
|
+
constructor(handle: SubqueryHandle, key: string, inner: BaseExpr);
|
|
713
|
+
get [selectKeyBrand](): string;
|
|
714
|
+
toSql(ctx: ExprContext): SqlFragment;
|
|
715
|
+
decode(value: unknown): unknown;
|
|
716
|
+
encode(value: unknown): unknown;
|
|
717
|
+
get outputType(): TypeInfo | undefined;
|
|
718
|
+
get sqlNullable(): boolean | undefined;
|
|
719
|
+
get sqlSource(): object;
|
|
720
|
+
}
|
|
721
|
+
/**
|
|
722
|
+
* What an expression needs from the query it is generating SQL for.
|
|
723
|
+
*
|
|
724
|
+
* Each (sub)query gets its own `Ctx`; a lookup that misses locally walks up to the enclosing query and
|
|
725
|
+
* records the hit in `outerRefs`, which is how a correlated subquery reports the outer aliases it
|
|
726
|
+
* depends on (the way `ExistsCondition.outerAliases` does), so join pruning keeps them.
|
|
727
|
+
*/
|
|
728
|
+
declare class Ctx implements ExprContext {
|
|
729
|
+
readonly assigner: AliasAssigner;
|
|
730
|
+
private parent;
|
|
731
|
+
private aliases;
|
|
732
|
+
/**
|
|
733
|
+
* The subset of `aliases` that are CTE names. A `from`/`join` on one of these emits just the name,
|
|
734
|
+
* i.e. `FROM book_stats`, where an ordinary `query(...)` value emits its whole body inline, i.e.
|
|
735
|
+
* `FROM (SELECT ...) AS sq`.
|
|
736
|
+
*/
|
|
737
|
+
private ctes;
|
|
738
|
+
/**
|
|
739
|
+
* `with` entries named but not yet turned into SQL. `registerCtes` names every entry first, then
|
|
740
|
+
* generates the bodies one at a time, so while one body is being generated the entries after it sit
|
|
741
|
+
* here. Reading one of those is a forward reference.
|
|
742
|
+
*/
|
|
743
|
+
private pendingCtes;
|
|
744
|
+
/** CTEs already read by this query's `from`/`join`, so a second read fails instead of colliding. */
|
|
745
|
+
private usedCtes;
|
|
746
|
+
/** The recursive CTE whose body this query is part of, if any; see `recursiveSelf`. */
|
|
747
|
+
private ownRecursiveSelf;
|
|
748
|
+
readonly outerRefs: Set<string>;
|
|
749
|
+
constructor(assigner: AliasAssigner, parent: Ctx | undefined);
|
|
750
|
+
/**
|
|
751
|
+
* One handle can hold only one alias per query, so a value used twice must be told apart, not
|
|
752
|
+
* silently collapsed into the second registration's alias.
|
|
753
|
+
*/
|
|
754
|
+
register(handle: object, alias: string): void;
|
|
755
|
+
/** Names every `with` entry up front, so a CTE reading a later sibling is reported, not inlined. */
|
|
756
|
+
declareCte(handle: object, alias: string): void;
|
|
757
|
+
/** Brings a pending CTE into scope, for the sources and columns that may now read it. */
|
|
758
|
+
promoteCte(handle: object): void;
|
|
759
|
+
/**
|
|
760
|
+
* The CTE name for `handle`, looking in the enclosing queries too, because a CTE is in scope for the
|
|
761
|
+
* whole statement.
|
|
762
|
+
*
|
|
763
|
+
* Unlike `aliasFor`, a hit in an enclosing query is not added to `outerRefs`: reading a CTE by name
|
|
764
|
+
* is not a correlated reference, so it must not keep an enclosing join alive.
|
|
765
|
+
*/
|
|
766
|
+
cteAliasFor(handle: object): string | undefined;
|
|
767
|
+
/**
|
|
768
|
+
* The recursive CTE this query's terms belong to, inherited from the enclosing query.
|
|
769
|
+
*
|
|
770
|
+
* PostgreSQL requires a recursive term to reference its own CTE, so that reference is not optional
|
|
771
|
+
* and must survive pruning, unlike an ordinary explicit join that nothing else reads.
|
|
772
|
+
*/
|
|
773
|
+
get recursiveSelf(): SubqueryHandle | undefined;
|
|
774
|
+
setRecursiveSelf(handle: SubqueryHandle): void;
|
|
775
|
+
/** Whether `handle` is a CTE with no SQL yet, i.e. itself or a later `with` entry. */
|
|
776
|
+
isPendingCte(handle: object): boolean;
|
|
777
|
+
/**
|
|
778
|
+
* Fails if this query already reads `handle`. A `Ctx` maps each handle to a single alias, so two
|
|
779
|
+
* reads of one CTE value would render as the same name, i.e. `FROM tree JOIN tree`, and neither the
|
|
780
|
+
* SQL nor a column expression could say which one it meant. Each read needs its own `query(...)`.
|
|
781
|
+
*
|
|
782
|
+
* Only this query is checked, not the enclosing ones: a nested subquery has its own FROM, so reading
|
|
783
|
+
* the same CTE in there is fine.
|
|
784
|
+
*/
|
|
785
|
+
useCte(handle: object): void;
|
|
786
|
+
aliasFor(handle: object): string;
|
|
787
|
+
conditionToSql(cond: QueryCondition): SqlFragment | undefined;
|
|
788
|
+
}
|
|
789
|
+
/** A parsed `with` entry: the CTE's name and its body, ready to render into the WITH clause. */
|
|
790
|
+
interface ParsedCte {
|
|
791
|
+
alias: string;
|
|
792
|
+
plan: Plan;
|
|
793
|
+
/** A recursive CTE reads itself, and makes the whole clause `WITH RECURSIVE`. */
|
|
794
|
+
recursive: boolean;
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* Per-source soft-delete injections: `alias.deleted_at IS NULL` for a soft-deletable entity.
|
|
798
|
+
* CTI subtypes are skipped because their deleted-at column belongs to the base table (see
|
|
799
|
+
* `filterSoftDeletes`). STI sources read all physical rows without discriminator predicates.
|
|
800
|
+
*
|
|
801
|
+
* The conditions go into the from's WHERE or the join's ON, and never keep an otherwise unreferenced
|
|
802
|
+
* join alive, which is what `pruneable: true` means on em.find's side.
|
|
803
|
+
*/
|
|
804
|
+
declare function injectedConditions(source: {
|
|
805
|
+
meta: EntityMetadata | undefined;
|
|
806
|
+
alias: string;
|
|
807
|
+
}, softDeletes: "include" | "exclude"): ColumnCondition[];
|
|
808
|
+
/**
|
|
809
|
+
* Parses a user-facing condition (a single condition or an `{ and }`/`{ or }` filter) with the same
|
|
810
|
+
* `ConditionBuilder` `em.find` uses, so `undefined` members drop out, empty groups drop, and
|
|
811
|
+
* `pruneIfUndefined` applies unchanged. Deferred SQL expression conditions are resolved
|
|
812
|
+
* against the context first.
|
|
813
|
+
*/
|
|
814
|
+
declare function conditionToSql(cond: QueryCondition | undefined, ctx: Ctx, topLevel: boolean): SqlFragment | undefined;
|
|
815
|
+
/**
|
|
816
|
+
* Names and parses each `with` entry, in declaration order.
|
|
817
|
+
*
|
|
818
|
+
* Each entry is in scope before the next is parsed, so a CTE can read an *earlier* sibling by name,
|
|
819
|
+
* PostgreSQL's rule for a non-recursive WITH. A forward reference, or a CTE reading the query's own
|
|
820
|
+
* `from`, fails as "not in this query's from/join", the same error any out-of-scope source gets.
|
|
821
|
+
*
|
|
822
|
+
* I.e. `with: [totals, ranked]` parses `totals` first, so `ranked` can join it, but not the reverse.
|
|
823
|
+
*/
|
|
824
|
+
declare function registerCtes(q: {
|
|
825
|
+
with?: WithInput;
|
|
826
|
+
}, ctx: Ctx, assigner: AliasAssigner): ParsedCte[];
|
|
827
|
+
/**
|
|
828
|
+
* Drops the CTEs that nothing reads, given the aliases the rest of the statement referenced.
|
|
829
|
+
*
|
|
830
|
+
* A CTE can only read earlier siblings, so going last to first means every CTE that could read this one
|
|
831
|
+
* was already visited, and its own reads are already in `referenced`. That makes one pass enough; first
|
|
832
|
+
* to last would have to repeat until the set stopped growing. `unshift` restores WITH order.
|
|
833
|
+
*/
|
|
834
|
+
declare function pruneCtes(ctes: ParsedCte[], referenced: Set<string>): ParsedCte[];
|
|
835
|
+
/**
|
|
836
|
+
* Renders `WITH a AS (...), b AS (...) `, whose bindings lead the statement, as their SQL does.
|
|
837
|
+
*
|
|
838
|
+
* One recursive CTE makes the whole clause `WITH RECURSIVE`, PostgreSQL's rule: the keyword is on the
|
|
839
|
+
* clause, not on the entry that needs it, and it does not force the other entries to be recursive.
|
|
840
|
+
*/
|
|
841
|
+
declare function withFragment(ctes: ParsedCte[]): SqlFragment;
|
|
842
|
+
//#endregion
|
|
843
|
+
export { CheckReadQuery, CheckScope, CheckSetQuery, Clauses, CompatibleValue, Ctx, EntityHydrator, EntityQuery, ExistsQuery, ExpressionOrderBy, MaybeNull, NameOf, NamedSelectExpression, NotWidened, OrderByDirection, OrderByKeys, ParsedCte, Plan, Query, QueryArg, QueryCondition, QueryJoin, QueryJoinInput, QueryJoinList, QueryOutput, QueryRow, QuerySelect, QuerySource, QueryValue, ReadQueryRow, RecursiveOptions, ResolvedJoins, ScalarQuery, SelectExpression, SetOperand, SetOperation, SetQuery, SetQueryRow, SqlExpressionValue, Subquery, SubqueryBrand, SubqueryHandle, WithInput, WithSource, conditionToSql, entityQueryBrand, injectedConditions, isReadQueryValue, parseNestedQuery, parseUserQuery, projectionToSql, pruneCtes, query, queryMaybe, recursiveQuery, registerCtes, scalarQueryBrand, sql, subqueryBrand, withFragment };
|
|
844
|
+
//# sourceMappingURL=query.d.cts.map
|