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,240 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_queries_find_Aliases = require("./find/Aliases.cjs");
|
|
3
|
+
const require_queries_find_scopes = require("./find/scopes.cjs");
|
|
4
|
+
const require_utils = require("../utils.cjs");
|
|
5
|
+
const require_EntityManager = require("../EntityManager.cjs");
|
|
6
|
+
const require_Entity = require("../Entity.cjs");
|
|
7
|
+
let joist_utils = require("joist-utils");
|
|
8
|
+
//#region src/queries/valueFilters.ts
|
|
9
|
+
/** Parses an entity filter, which could be "just an id", an array of ids, or a nested filter. */
|
|
10
|
+
function parseEntityFilter(_meta, filter) {
|
|
11
|
+
if (filter === void 0) return;
|
|
12
|
+
else if (require_queries_find_Aliases.isAlias(filter)) return;
|
|
13
|
+
else if (require_queries_find_scopes.isScope(filter)) return {
|
|
14
|
+
kind: "join",
|
|
15
|
+
subFilter: {}
|
|
16
|
+
};
|
|
17
|
+
else if (filter === null) return { kind: "is-null" };
|
|
18
|
+
else if (typeof filter === "string" || typeof filter === "number") return {
|
|
19
|
+
kind: "eq",
|
|
20
|
+
value: filter
|
|
21
|
+
};
|
|
22
|
+
else if (typeof filter === "boolean") return filter ? { kind: "not-null" } : { kind: "is-null" };
|
|
23
|
+
else if (Array.isArray(filter)) return {
|
|
24
|
+
kind: "in",
|
|
25
|
+
value: filter.flatMap((value) => {
|
|
26
|
+
if (!require_Entity.isEntity(value)) return [value];
|
|
27
|
+
return isNotInDb(value) ? [] : [value.idTagged];
|
|
28
|
+
})
|
|
29
|
+
};
|
|
30
|
+
else if (require_Entity.isEntity(filter)) return isNotInDb(filter) ? {
|
|
31
|
+
kind: "in",
|
|
32
|
+
value: []
|
|
33
|
+
} : {
|
|
34
|
+
kind: "eq",
|
|
35
|
+
value: filter.idTagged
|
|
36
|
+
};
|
|
37
|
+
else if (typeof filter === "object") {
|
|
38
|
+
const keys = Object.keys(filter);
|
|
39
|
+
if (keys.length === 1 && keys[0] === "ne") {
|
|
40
|
+
const value = filter["ne"];
|
|
41
|
+
if (value === void 0) return;
|
|
42
|
+
else if (value === null) return { kind: "not-null" };
|
|
43
|
+
else if (typeof value === "string" || typeof value === "number") return {
|
|
44
|
+
kind: "ne",
|
|
45
|
+
value
|
|
46
|
+
};
|
|
47
|
+
else if (require_Entity.isEntity(value)) return isNotInDb(value) ? { kind: "not-null" } : {
|
|
48
|
+
kind: "ne",
|
|
49
|
+
value: value.idTagged
|
|
50
|
+
};
|
|
51
|
+
else throw new Error(`Unsupported "ne" value ${value}`);
|
|
52
|
+
}
|
|
53
|
+
if (keys.length === 1 && keys[0] === "id") {
|
|
54
|
+
const value = filter["id"];
|
|
55
|
+
if (value === void 0) return;
|
|
56
|
+
else if (value === null) return { kind: "is-null" };
|
|
57
|
+
else if (typeof value === "string" || typeof value === "number") return {
|
|
58
|
+
kind: "eq",
|
|
59
|
+
value
|
|
60
|
+
};
|
|
61
|
+
else if (require_Entity.isEntity(value)) return isNotInDb(value) ? {
|
|
62
|
+
kind: "in",
|
|
63
|
+
value: []
|
|
64
|
+
} : {
|
|
65
|
+
kind: "eq",
|
|
66
|
+
value: value.idTagged
|
|
67
|
+
};
|
|
68
|
+
else return parseValueFilter(value)[0];
|
|
69
|
+
}
|
|
70
|
+
const subFilter = {};
|
|
71
|
+
for (const [key, value] of Object.entries(filter)) if (value && typeof value === "object" && !require_Entity.isEntity(value) && !(0, joist_utils.isPlainObject)(value) && "idTaggedMaybe" in value) subFilter[key] = value.idTaggedMaybe === void 0 ? [] : value.idTaggedMaybe;
|
|
72
|
+
else subFilter[key] = value;
|
|
73
|
+
return {
|
|
74
|
+
kind: "join",
|
|
75
|
+
subFilter
|
|
76
|
+
};
|
|
77
|
+
} else throw new Error(`Unrecognized filter ${filter}`);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Parses the many/hodgepodge (ergonomic!) patterns of value filters into a `ParsedValueFilter[]`.
|
|
81
|
+
*
|
|
82
|
+
* Note we return an array because filter might be a `ValueGraphQLFilter` that is allowed to have
|
|
83
|
+
* multiple conditions, i.e. `{ lt: 10, gt: 5 }`.
|
|
84
|
+
*/
|
|
85
|
+
function parseValueFilter(filter) {
|
|
86
|
+
if (filter === null) return [{ kind: "is-null" }];
|
|
87
|
+
else if (filter === void 0) return [];
|
|
88
|
+
else if (Array.isArray(filter)) return [{
|
|
89
|
+
kind: "in",
|
|
90
|
+
value: filter
|
|
91
|
+
}];
|
|
92
|
+
else if ((0, joist_utils.isPlainObject)(filter)) {
|
|
93
|
+
const keys = Object.keys(filter);
|
|
94
|
+
if (keys.length === 0) return [];
|
|
95
|
+
else if (keys.length === 2 && "op" in filter && "value" in filter) {
|
|
96
|
+
const { op, value } = filter;
|
|
97
|
+
if (shouldPruneValueFilter(op, value)) return [];
|
|
98
|
+
else if (value === null) return [{ kind: "is-null" }];
|
|
99
|
+
else return [{
|
|
100
|
+
kind: op,
|
|
101
|
+
value: value ?? null
|
|
102
|
+
}];
|
|
103
|
+
} else if (keys.length === 2 && "gte" in filter && "lte" in filter) {
|
|
104
|
+
const { gte, lte } = filter;
|
|
105
|
+
return [{
|
|
106
|
+
kind: "between",
|
|
107
|
+
value: [gte, lte]
|
|
108
|
+
}];
|
|
109
|
+
} else return Object.entries(filter).map(([key, value]) => {
|
|
110
|
+
if (shouldPruneValueFilter(key, value)) return;
|
|
111
|
+
switch (key) {
|
|
112
|
+
case "eq": if (value === null) return { kind: "is-null" };
|
|
113
|
+
else return {
|
|
114
|
+
kind: "eq",
|
|
115
|
+
value: filter[key]
|
|
116
|
+
};
|
|
117
|
+
case "ne": if (value === null) return { kind: "not-null" };
|
|
118
|
+
else return {
|
|
119
|
+
kind: "ne",
|
|
120
|
+
value: filter[key] ?? null
|
|
121
|
+
};
|
|
122
|
+
case "in":
|
|
123
|
+
case "nin":
|
|
124
|
+
case "gt":
|
|
125
|
+
case "gte":
|
|
126
|
+
case "lt":
|
|
127
|
+
case "lte":
|
|
128
|
+
case "like":
|
|
129
|
+
case "nlike":
|
|
130
|
+
case "ilike":
|
|
131
|
+
case "nilike":
|
|
132
|
+
case "regex":
|
|
133
|
+
case "nregex":
|
|
134
|
+
case "iregex":
|
|
135
|
+
case "niregex":
|
|
136
|
+
case "contains":
|
|
137
|
+
case "overlaps":
|
|
138
|
+
case "containedBy": return {
|
|
139
|
+
kind: key,
|
|
140
|
+
value: filter[key]
|
|
141
|
+
};
|
|
142
|
+
case "pathExists": return {
|
|
143
|
+
kind: "jsonPathExists",
|
|
144
|
+
value: filter[key]
|
|
145
|
+
};
|
|
146
|
+
case "pathIsTrue": return {
|
|
147
|
+
kind: "jsonPathPredicate",
|
|
148
|
+
value: filter[key]
|
|
149
|
+
};
|
|
150
|
+
case "search": return {
|
|
151
|
+
kind: "ilike",
|
|
152
|
+
value: makeLike(filter[key])
|
|
153
|
+
};
|
|
154
|
+
case "between": return {
|
|
155
|
+
kind: key,
|
|
156
|
+
value: filter[key]
|
|
157
|
+
};
|
|
158
|
+
default: throw new Error(`Unsupported value filter key ${key}`);
|
|
159
|
+
}
|
|
160
|
+
}).filter(require_EntityManager.isDefined);
|
|
161
|
+
} else return [{
|
|
162
|
+
kind: "eq",
|
|
163
|
+
value: filter
|
|
164
|
+
}];
|
|
165
|
+
}
|
|
166
|
+
/** Converts domain-level values like string ids/enums into their db equivalent. */
|
|
167
|
+
function mapToDb(column, filter) {
|
|
168
|
+
switch (filter.kind) {
|
|
169
|
+
case "eq":
|
|
170
|
+
case "gt":
|
|
171
|
+
case "gte":
|
|
172
|
+
case "ne":
|
|
173
|
+
case "lt":
|
|
174
|
+
case "lte":
|
|
175
|
+
case "like":
|
|
176
|
+
case "nlike":
|
|
177
|
+
case "ilike":
|
|
178
|
+
case "nilike":
|
|
179
|
+
case "regex":
|
|
180
|
+
case "nregex":
|
|
181
|
+
case "iregex":
|
|
182
|
+
case "niregex":
|
|
183
|
+
filter.value = column.mapToDb(filter.value);
|
|
184
|
+
return filter;
|
|
185
|
+
case "in":
|
|
186
|
+
if (column.isArray) return {
|
|
187
|
+
kind: "contains",
|
|
188
|
+
value: column.mapToDb(filter.value)
|
|
189
|
+
};
|
|
190
|
+
else filter.value = filter.value.map((v) => column.mapToDb(v));
|
|
191
|
+
return filter;
|
|
192
|
+
case "nin":
|
|
193
|
+
if (column.isArray) throw new Error("The nin operator is not supported on array columns yet");
|
|
194
|
+
else filter.value = filter.value.map((v) => column.mapToDb(v));
|
|
195
|
+
return filter;
|
|
196
|
+
case "contains":
|
|
197
|
+
case "ncontains":
|
|
198
|
+
case "overlaps":
|
|
199
|
+
case "noverlaps":
|
|
200
|
+
case "containedBy":
|
|
201
|
+
if (!(column.isArray || column.dbType === "jsonb")) throw new Error(`${filter.kind} is only unsupported on array or jsonb columns`);
|
|
202
|
+
if (column.isArray) filter.value = column.mapToDb(filter.value);
|
|
203
|
+
return filter;
|
|
204
|
+
case "between":
|
|
205
|
+
filter.value = [column.mapToDb(filter.value[0]), column.mapToDb(filter.value[1])];
|
|
206
|
+
return filter;
|
|
207
|
+
case "is-null":
|
|
208
|
+
case "not-null":
|
|
209
|
+
case "jsonPathExists":
|
|
210
|
+
case "jsonPathPredicate": return filter;
|
|
211
|
+
default: throw require_utils.assertNever(filter);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/** Converts a search term like `foo bar` into a SQL `like` pattern like `%foo%bar%`. */
|
|
215
|
+
function makeLike(search) {
|
|
216
|
+
return search ? `%${search.replace(/\s+/g, "%")}%` : void 0;
|
|
217
|
+
}
|
|
218
|
+
/** Returns true for values that should be treated like an omitted filter. */
|
|
219
|
+
function shouldPruneValueFilter(key, value) {
|
|
220
|
+
if (value === void 0) return true;
|
|
221
|
+
return value === false && key !== "eq" && key !== "ne";
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Returns whether an entity is known not to be queryable from the database.
|
|
225
|
+
*
|
|
226
|
+
* We check `idTaggedMaybe` instead of `isNewEntity` because commit rules run after INSERTs while those
|
|
227
|
+
* entities still report as new until the flush completes (and yet, because they are in the database, we
|
|
228
|
+
* must keep them in the query instead of ignoring them). An ID can also be assigned before INSERT, so an
|
|
229
|
+
* ID-bearing entity conservatively falls through to a harmless database query.
|
|
230
|
+
*/
|
|
231
|
+
function isNotInDb(value) {
|
|
232
|
+
return value.idTaggedMaybe === void 0;
|
|
233
|
+
}
|
|
234
|
+
//#endregion
|
|
235
|
+
exports.makeLike = makeLike;
|
|
236
|
+
exports.mapToDb = mapToDb;
|
|
237
|
+
exports.parseEntityFilter = parseEntityFilter;
|
|
238
|
+
exports.parseValueFilter = parseValueFilter;
|
|
239
|
+
|
|
240
|
+
//# sourceMappingURL=valueFilters.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueFilters.cjs","names":["isAlias","isScope","isEntity","isPlainObject","isDefined","assertNever"],"sources":["../../src/queries/valueFilters.ts"],"sourcesContent":["import { isPlainObject } from \"joist-utils\";\nimport { type Entity, isEntity } from \"src/Entity.ts\";\nimport { isDefined } from \"src/EntityManager.ts\";\nimport type { EntityMetadata } from \"src/EntityMetadata.ts\";\nimport { isAlias } from \"src/queries/find/Aliases.ts\";\nimport type { ValueFilter } from \"src/queries/find/EntityFilter.ts\";\nimport { isScope } from \"src/queries/find/scopes.ts\";\nimport type { ParsedValueFilter } from \"src/queries/parsedConditions.ts\";\nimport type { Column } from \"src/serde/columns.ts\";\nimport { assertNever } from \"src/utils.ts\";\n\n/** An ADT version of `EntityFilter`. */\nexport type ParsedEntityFilter =\n // ParsedValueFilter is any simple match on `id`\n | ParsedValueFilter<string | number>\n // Otherwise we return the join/complex\n | { kind: \"join\"; subFilter: object };\n\n/** Parses an entity filter, which could be \"just an id\", an array of ids, or a nested filter. */\nexport function parseEntityFilter(_meta: EntityMetadata, filter: any): ParsedEntityFilter | undefined {\n if (filter === undefined) {\n // This matches legacy `em.find(Book, { author: undefined })` behavior\n return undefined;\n } else if (isAlias(filter)) {\n // We're just binding an alias to this position in the join tree\n return undefined;\n } else if (isScope(filter)) {\n // A scope on a relation (e.g. `{ author: Author.adult }`) always implies conditions on the\n // related entity, so signal \"needs a join\" via the existing `join` discriminant rather than\n // adding a dedicated `kind: \"scope\"` that every relation branch would have to learn. The empty\n // `subFilter` is intentionally never read: the m2o/m2m branches only check `kind === \"join\"` to\n // decide whether to join, then re-dispatch the original scope value back through `addTable`,\n // where `isScope(...)` routes it to `addScopeFilterAt` to apply the scope's actual fragments.\n return { kind: \"join\", subFilter: {} };\n } else if (filter === null) {\n return { kind: \"is-null\" };\n } else if (typeof filter === \"string\" || typeof filter === \"number\") {\n return { kind: \"eq\", value: filter };\n } else if (typeof filter === \"boolean\") {\n return filter ? { kind: \"not-null\" } : { kind: \"is-null\" };\n } else if (Array.isArray(filter)) {\n return {\n kind: \"in\",\n value: filter.flatMap((value: string | number | Entity) => {\n if (!isEntity(value)) return [value];\n // If no IDs remain, `in: []` marks the condition as unable to match a database row.\n return isNotInDb(value) ? [] : [value.idTagged];\n }),\n };\n } else if (isEntity(filter)) {\n // We use `in: []` to mark an ID-less entity as unable to match a database row.\n return isNotInDb(filter) ? { kind: \"in\", value: [] } : { kind: \"eq\", value: filter.idTagged };\n } else if (typeof filter === \"object\") {\n // Looking for `{ firstName: \"f1\" }` or `{ ne: \"f1\" }`\n const keys = Object.keys(filter);\n // Special case only looking at `ne`\n if (keys.length === 1 && keys[0] === \"ne\") {\n const value = filter[\"ne\"];\n if (value === undefined) {\n return undefined;\n } else if (value === null) {\n return { kind: \"not-null\" };\n } else if (typeof value === \"string\" || typeof value === \"number\") {\n return { kind: \"ne\", value };\n } else if (isEntity(value)) {\n // No persisted FK can equal an ID-less entity, and SQL `!=` excludes nulls, so this is `IS NOT NULL`.\n return isNotInDb(value) ? { kind: \"not-null\" } : { kind: \"ne\", value: value.idTagged };\n } else {\n throw new Error(`Unsupported \"ne\" value ${value}`);\n }\n }\n // Special case only looking at `id`\n if (keys.length === 1 && keys[0] === \"id\") {\n const value = filter[\"id\"];\n if (value === undefined) {\n return undefined;\n } else if (value === null) {\n return { kind: \"is-null\" };\n } else if (typeof value === \"string\" || typeof value === \"number\") {\n return { kind: \"eq\", value };\n } else if (isEntity(value)) {\n return isNotInDb(value) ? { kind: \"in\", value: [] } : { kind: \"eq\", value: value.idTagged };\n } else {\n return parseValueFilter(value)[0] as any;\n }\n }\n // Look for subFilter values being EntityFilter-ish instances like ManyToOneReference\n // that have an id, and so structurally match the entity filter without really being filters,\n // and convert them over here before getting into parseValueFilter.\n const subFilter = {} as any;\n for (const [key, value] of Object.entries(filter)) {\n if (value && typeof value === \"object\" && !isEntity(value) && !isPlainObject(value) && \"idTaggedMaybe\" in value) {\n subFilter[key] = value.idTaggedMaybe === undefined ? [] : value.idTaggedMaybe;\n } else {\n subFilter[key] = value;\n }\n }\n return { kind: \"join\", subFilter };\n } else {\n throw new Error(`Unrecognized filter ${filter}`);\n }\n}\n\n/**\n * Parses the many/hodgepodge (ergonomic!) patterns of value filters into a `ParsedValueFilter[]`.\n *\n * Note we return an array because filter might be a `ValueGraphQLFilter` that is allowed to have\n * multiple conditions, i.e. `{ lt: 10, gt: 5 }`.\n */\nexport function parseValueFilter<V>(filter: ValueFilter<V, any>): ParsedValueFilter<V>[] {\n if (filter === null) {\n return [{ kind: \"is-null\" }];\n } else if (filter === undefined) {\n // This is legacy behavior where `em.find(Book, { author: undefined })` would match all books\n return [];\n } else if (Array.isArray(filter)) {\n return [{ kind: \"in\", value: filter }];\n } else if (isPlainObject(filter)) {\n const keys = Object.keys(filter);\n if (keys.length === 0) {\n // Should this be an error?\n return [];\n } else if (keys.length === 2 && \"op\" in filter && \"value\" in filter) {\n // Probe for `findGql` op & value\n const { op, value } = filter;\n if (shouldPruneValueFilter(op, value)) {\n return [];\n } else if (value === null) {\n return [{ kind: \"is-null\" }];\n } else {\n return [{ kind: op, value: value ?? null }];\n }\n } else if (keys.length === 2 && \"gte\" in filter && \"lte\" in filter) {\n const { gte, lte } = filter;\n return [{ kind: \"between\", value: [gte, lte] }];\n } else {\n return Object.entries(filter)\n .map(([key, value]) => {\n // Always do condition pruning on the value\n if (shouldPruneValueFilter(key, value)) {\n return undefined;\n }\n switch (key) {\n case \"eq\":\n if (value === null) {\n return { kind: \"is-null\" as const };\n } else {\n return { kind: \"eq\" as const, value: filter[key] };\n }\n case \"ne\":\n if (value === null) {\n return { kind: \"not-null\" as const };\n } else {\n return { kind: \"ne\" as const, value: filter[key] ?? null };\n }\n case \"in\":\n case \"nin\":\n case \"gt\":\n case \"gte\":\n case \"lt\":\n case \"lte\":\n case \"like\":\n case \"nlike\":\n case \"ilike\":\n case \"nilike\":\n case \"regex\":\n case \"nregex\":\n case \"iregex\":\n case \"niregex\":\n case \"contains\":\n case \"overlaps\":\n case \"containedBy\":\n return { kind: key, value: filter[key] };\n case \"pathExists\":\n return { kind: \"jsonPathExists\" as const, value: filter[key] };\n case \"pathIsTrue\":\n return { kind: \"jsonPathPredicate\" as const, value: filter[key] };\n case \"search\":\n return { kind: \"ilike\" as const, value: makeLike(filter[key]) };\n case \"between\":\n return { kind: key, value: filter[key] };\n default:\n throw new Error(`Unsupported value filter key ${key}`);\n }\n })\n .filter(isDefined);\n }\n } else {\n // This is a primitive like a string, number\n return [{ kind: \"eq\", value: filter }];\n }\n}\n\n/** Converts domain-level values like string ids/enums into their db equivalent. */\nexport function mapToDb(column: Column, filter: ParsedValueFilter<any>): ParsedValueFilter<any> {\n // ...to teach this `mapToDb` function to handle/rewrite `in: [1, null]` handling, we'd need to:\n // 1. return a maybe-simple/maybe-nested condition, so basically a `ParsedExpressionCondition`, because\n // this would let `in` return an `{ or: ... }` to all the callers.\n // 2. also return `{ parsed: ParsedExpressionCondition, simples: SimpleCondition[] }` tuple, for the\n // alias `addCondition` processing to track the `simples` and rewrite their alias when later bound.\n switch (filter.kind) {\n case \"eq\":\n case \"gt\":\n case \"gte\":\n case \"ne\":\n case \"lt\":\n case \"lte\":\n case \"like\":\n case \"nlike\":\n case \"ilike\":\n case \"nilike\":\n case \"regex\":\n case \"nregex\":\n case \"iregex\":\n case \"niregex\":\n filter.value = column.mapToDb(filter.value);\n return filter;\n case \"in\":\n if (column.isArray) {\n // Arrays need a special operator\n return { kind: \"contains\", value: column.mapToDb(filter.value) };\n } else {\n filter.value = filter.value.map((v) => column.mapToDb(v));\n }\n return filter;\n case \"nin\":\n if (column.isArray) {\n // Arrays need a special operator\n throw new Error(\"The nin operator is not supported on array columns yet\");\n } else {\n filter.value = filter.value.map((v) => column.mapToDb(v));\n }\n return filter;\n case \"contains\":\n case \"ncontains\":\n case \"overlaps\":\n case \"noverlaps\":\n case \"containedBy\":\n const supportsContains = column.isArray || column.dbType === \"jsonb\";\n if (!supportsContains) {\n throw new Error(`${filter.kind} is only unsupported on array or jsonb columns`);\n }\n if (column.isArray) {\n filter.value = column.mapToDb(filter.value);\n } else {\n // leave jsonb values alone\n }\n return filter;\n case \"between\":\n filter.value = [column.mapToDb(filter.value[0]), column.mapToDb(filter.value[1])];\n return filter;\n case \"is-null\":\n case \"not-null\":\n case \"jsonPathExists\":\n case \"jsonPathPredicate\":\n return filter;\n default:\n throw assertNever(filter);\n }\n}\n\n/** Converts a search term like `foo bar` into a SQL `like` pattern like `%foo%bar%`. */\nexport function makeLike(search: any | undefined): any {\n return search ? `%${search.replace(/\\s+/g, \"%\")}%` : undefined;\n}\n\n/** Returns true for values that should be treated like an omitted filter. */\nfunction shouldPruneValueFilter(key: unknown, value: unknown): boolean {\n if (value === undefined) return true;\n return value === false && key !== \"eq\" && key !== \"ne\";\n}\n\n/**\n * Returns whether an entity is known not to be queryable from the database.\n *\n * We check `idTaggedMaybe` instead of `isNewEntity` because commit rules run after INSERTs while those\n * entities still report as new until the flush completes (and yet, because they are in the database, we\n * must keep them in the query instead of ignoring them). An ID can also be assigned before INSERT, so an\n * ID-bearing entity conservatively falls through to a harmless database query.\n */\nfunction isNotInDb(value: Entity): boolean {\n return value.idTaggedMaybe === undefined;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ParsedValueFilter } from "./parsedConditions.cjs";
|
|
2
|
+
import { ValueFilter } from "./find/EntityFilter.cjs";
|
|
3
|
+
import { Column } from "../serde/columns.cjs";
|
|
4
|
+
import { EntityMetadata } from "../EntityMetadata.cjs";
|
|
5
|
+
//#region src/queries/valueFilters.d.ts
|
|
6
|
+
/** An ADT version of `EntityFilter`. */
|
|
7
|
+
type ParsedEntityFilter = ParsedValueFilter<string | number> | {
|
|
8
|
+
kind: "join";
|
|
9
|
+
subFilter: object;
|
|
10
|
+
};
|
|
11
|
+
/** Parses an entity filter, which could be "just an id", an array of ids, or a nested filter. */
|
|
12
|
+
declare function parseEntityFilter(_meta: EntityMetadata, filter: any): ParsedEntityFilter | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Parses the many/hodgepodge (ergonomic!) patterns of value filters into a `ParsedValueFilter[]`.
|
|
15
|
+
*
|
|
16
|
+
* Note we return an array because filter might be a `ValueGraphQLFilter` that is allowed to have
|
|
17
|
+
* multiple conditions, i.e. `{ lt: 10, gt: 5 }`.
|
|
18
|
+
*/
|
|
19
|
+
declare function parseValueFilter<V>(filter: ValueFilter<V, any>): ParsedValueFilter<V>[];
|
|
20
|
+
/** Converts domain-level values like string ids/enums into their db equivalent. */
|
|
21
|
+
declare function mapToDb(column: Column, filter: ParsedValueFilter<any>): ParsedValueFilter<any>;
|
|
22
|
+
/** Converts a search term like `foo bar` into a SQL `like` pattern like `%foo%bar%`. */
|
|
23
|
+
declare function makeLike(search: any | undefined): any;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { ParsedEntityFilter, makeLike, mapToDb, parseEntityFilter, parseValueFilter };
|
|
26
|
+
//# sourceMappingURL=valueFilters.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueFilters.d.cts","names":[],"sources":["../../src/queries/valueFilters.ts"],"mappings":";;;;;;KAYY,qBAER;EAEE;EAAc;;;iBAGJ,kBAAkB,OAAO,gBAAgB,cAAc;;;;;;;iBA0FvD,iBAAiB,GAAG,QAAQ,YAAY,UAAU,kBAAkB;;iBAqFpE,QAAQ,QAAQ,QAAQ,QAAQ,yBAAyB;;iBAoEzD,SAAS"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ParsedValueFilter } from "./parsedConditions.mjs";
|
|
2
|
+
import { ValueFilter } from "./find/EntityFilter.mjs";
|
|
3
|
+
import { Column } from "../serde/columns.mjs";
|
|
4
|
+
import { EntityMetadata } from "../EntityMetadata.mjs";
|
|
5
|
+
//#region src/queries/valueFilters.d.ts
|
|
6
|
+
/** An ADT version of `EntityFilter`. */
|
|
7
|
+
type ParsedEntityFilter = ParsedValueFilter<string | number> | {
|
|
8
|
+
kind: "join";
|
|
9
|
+
subFilter: object;
|
|
10
|
+
};
|
|
11
|
+
/** Parses an entity filter, which could be "just an id", an array of ids, or a nested filter. */
|
|
12
|
+
declare function parseEntityFilter(_meta: EntityMetadata, filter: any): ParsedEntityFilter | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Parses the many/hodgepodge (ergonomic!) patterns of value filters into a `ParsedValueFilter[]`.
|
|
15
|
+
*
|
|
16
|
+
* Note we return an array because filter might be a `ValueGraphQLFilter` that is allowed to have
|
|
17
|
+
* multiple conditions, i.e. `{ lt: 10, gt: 5 }`.
|
|
18
|
+
*/
|
|
19
|
+
declare function parseValueFilter<V>(filter: ValueFilter<V, any>): ParsedValueFilter<V>[];
|
|
20
|
+
/** Converts domain-level values like string ids/enums into their db equivalent. */
|
|
21
|
+
declare function mapToDb(column: Column, filter: ParsedValueFilter<any>): ParsedValueFilter<any>;
|
|
22
|
+
/** Converts a search term like `foo bar` into a SQL `like` pattern like `%foo%bar%`. */
|
|
23
|
+
declare function makeLike(search: any | undefined): any;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { ParsedEntityFilter, makeLike, mapToDb, parseEntityFilter, parseValueFilter };
|
|
26
|
+
//# sourceMappingURL=valueFilters.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueFilters.d.mts","names":[],"sources":["../../src/queries/valueFilters.ts"],"mappings":";;;;;;KAYY,qBAER;EAEE;EAAc;;;iBAGJ,kBAAkB,OAAO,gBAAgB,cAAc;;;;;;;iBA0FvD,iBAAiB,GAAG,QAAQ,YAAY,UAAU,kBAAkB;;iBAqFpE,QAAQ,QAAQ,QAAQ,QAAQ,yBAAyB;;iBAoEzD,SAAS"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { isAlias } from "./find/Aliases.js";
|
|
2
|
+
import { isScope } from "./find/scopes.js";
|
|
3
|
+
import { assertNever } from "../utils.js";
|
|
4
|
+
import { isDefined } from "../EntityManager.js";
|
|
5
|
+
import { isEntity } from "../Entity.js";
|
|
6
|
+
import { isPlainObject } from "joist-utils";
|
|
7
|
+
//#region src/queries/valueFilters.ts
|
|
8
|
+
/** Parses an entity filter, which could be "just an id", an array of ids, or a nested filter. */
|
|
9
|
+
function parseEntityFilter(_meta, filter) {
|
|
10
|
+
if (filter === void 0) return;
|
|
11
|
+
else if (isAlias(filter)) return;
|
|
12
|
+
else if (isScope(filter)) return {
|
|
13
|
+
kind: "join",
|
|
14
|
+
subFilter: {}
|
|
15
|
+
};
|
|
16
|
+
else if (filter === null) return { kind: "is-null" };
|
|
17
|
+
else if (typeof filter === "string" || typeof filter === "number") return {
|
|
18
|
+
kind: "eq",
|
|
19
|
+
value: filter
|
|
20
|
+
};
|
|
21
|
+
else if (typeof filter === "boolean") return filter ? { kind: "not-null" } : { kind: "is-null" };
|
|
22
|
+
else if (Array.isArray(filter)) return {
|
|
23
|
+
kind: "in",
|
|
24
|
+
value: filter.flatMap((value) => {
|
|
25
|
+
if (!isEntity(value)) return [value];
|
|
26
|
+
return isNotInDb(value) ? [] : [value.idTagged];
|
|
27
|
+
})
|
|
28
|
+
};
|
|
29
|
+
else if (isEntity(filter)) return isNotInDb(filter) ? {
|
|
30
|
+
kind: "in",
|
|
31
|
+
value: []
|
|
32
|
+
} : {
|
|
33
|
+
kind: "eq",
|
|
34
|
+
value: filter.idTagged
|
|
35
|
+
};
|
|
36
|
+
else if (typeof filter === "object") {
|
|
37
|
+
const keys = Object.keys(filter);
|
|
38
|
+
if (keys.length === 1 && keys[0] === "ne") {
|
|
39
|
+
const value = filter["ne"];
|
|
40
|
+
if (value === void 0) return;
|
|
41
|
+
else if (value === null) return { kind: "not-null" };
|
|
42
|
+
else if (typeof value === "string" || typeof value === "number") return {
|
|
43
|
+
kind: "ne",
|
|
44
|
+
value
|
|
45
|
+
};
|
|
46
|
+
else if (isEntity(value)) return isNotInDb(value) ? { kind: "not-null" } : {
|
|
47
|
+
kind: "ne",
|
|
48
|
+
value: value.idTagged
|
|
49
|
+
};
|
|
50
|
+
else throw new Error(`Unsupported "ne" value ${value}`);
|
|
51
|
+
}
|
|
52
|
+
if (keys.length === 1 && keys[0] === "id") {
|
|
53
|
+
const value = filter["id"];
|
|
54
|
+
if (value === void 0) return;
|
|
55
|
+
else if (value === null) return { kind: "is-null" };
|
|
56
|
+
else if (typeof value === "string" || typeof value === "number") return {
|
|
57
|
+
kind: "eq",
|
|
58
|
+
value
|
|
59
|
+
};
|
|
60
|
+
else if (isEntity(value)) return isNotInDb(value) ? {
|
|
61
|
+
kind: "in",
|
|
62
|
+
value: []
|
|
63
|
+
} : {
|
|
64
|
+
kind: "eq",
|
|
65
|
+
value: value.idTagged
|
|
66
|
+
};
|
|
67
|
+
else return parseValueFilter(value)[0];
|
|
68
|
+
}
|
|
69
|
+
const subFilter = {};
|
|
70
|
+
for (const [key, value] of Object.entries(filter)) if (value && typeof value === "object" && !isEntity(value) && !isPlainObject(value) && "idTaggedMaybe" in value) subFilter[key] = value.idTaggedMaybe === void 0 ? [] : value.idTaggedMaybe;
|
|
71
|
+
else subFilter[key] = value;
|
|
72
|
+
return {
|
|
73
|
+
kind: "join",
|
|
74
|
+
subFilter
|
|
75
|
+
};
|
|
76
|
+
} else throw new Error(`Unrecognized filter ${filter}`);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Parses the many/hodgepodge (ergonomic!) patterns of value filters into a `ParsedValueFilter[]`.
|
|
80
|
+
*
|
|
81
|
+
* Note we return an array because filter might be a `ValueGraphQLFilter` that is allowed to have
|
|
82
|
+
* multiple conditions, i.e. `{ lt: 10, gt: 5 }`.
|
|
83
|
+
*/
|
|
84
|
+
function parseValueFilter(filter) {
|
|
85
|
+
if (filter === null) return [{ kind: "is-null" }];
|
|
86
|
+
else if (filter === void 0) return [];
|
|
87
|
+
else if (Array.isArray(filter)) return [{
|
|
88
|
+
kind: "in",
|
|
89
|
+
value: filter
|
|
90
|
+
}];
|
|
91
|
+
else if (isPlainObject(filter)) {
|
|
92
|
+
const keys = Object.keys(filter);
|
|
93
|
+
if (keys.length === 0) return [];
|
|
94
|
+
else if (keys.length === 2 && "op" in filter && "value" in filter) {
|
|
95
|
+
const { op, value } = filter;
|
|
96
|
+
if (shouldPruneValueFilter(op, value)) return [];
|
|
97
|
+
else if (value === null) return [{ kind: "is-null" }];
|
|
98
|
+
else return [{
|
|
99
|
+
kind: op,
|
|
100
|
+
value: value ?? null
|
|
101
|
+
}];
|
|
102
|
+
} else if (keys.length === 2 && "gte" in filter && "lte" in filter) {
|
|
103
|
+
const { gte, lte } = filter;
|
|
104
|
+
return [{
|
|
105
|
+
kind: "between",
|
|
106
|
+
value: [gte, lte]
|
|
107
|
+
}];
|
|
108
|
+
} else return Object.entries(filter).map(([key, value]) => {
|
|
109
|
+
if (shouldPruneValueFilter(key, value)) return;
|
|
110
|
+
switch (key) {
|
|
111
|
+
case "eq": if (value === null) return { kind: "is-null" };
|
|
112
|
+
else return {
|
|
113
|
+
kind: "eq",
|
|
114
|
+
value: filter[key]
|
|
115
|
+
};
|
|
116
|
+
case "ne": if (value === null) return { kind: "not-null" };
|
|
117
|
+
else return {
|
|
118
|
+
kind: "ne",
|
|
119
|
+
value: filter[key] ?? null
|
|
120
|
+
};
|
|
121
|
+
case "in":
|
|
122
|
+
case "nin":
|
|
123
|
+
case "gt":
|
|
124
|
+
case "gte":
|
|
125
|
+
case "lt":
|
|
126
|
+
case "lte":
|
|
127
|
+
case "like":
|
|
128
|
+
case "nlike":
|
|
129
|
+
case "ilike":
|
|
130
|
+
case "nilike":
|
|
131
|
+
case "regex":
|
|
132
|
+
case "nregex":
|
|
133
|
+
case "iregex":
|
|
134
|
+
case "niregex":
|
|
135
|
+
case "contains":
|
|
136
|
+
case "overlaps":
|
|
137
|
+
case "containedBy": return {
|
|
138
|
+
kind: key,
|
|
139
|
+
value: filter[key]
|
|
140
|
+
};
|
|
141
|
+
case "pathExists": return {
|
|
142
|
+
kind: "jsonPathExists",
|
|
143
|
+
value: filter[key]
|
|
144
|
+
};
|
|
145
|
+
case "pathIsTrue": return {
|
|
146
|
+
kind: "jsonPathPredicate",
|
|
147
|
+
value: filter[key]
|
|
148
|
+
};
|
|
149
|
+
case "search": return {
|
|
150
|
+
kind: "ilike",
|
|
151
|
+
value: makeLike(filter[key])
|
|
152
|
+
};
|
|
153
|
+
case "between": return {
|
|
154
|
+
kind: key,
|
|
155
|
+
value: filter[key]
|
|
156
|
+
};
|
|
157
|
+
default: throw new Error(`Unsupported value filter key ${key}`);
|
|
158
|
+
}
|
|
159
|
+
}).filter(isDefined);
|
|
160
|
+
} else return [{
|
|
161
|
+
kind: "eq",
|
|
162
|
+
value: filter
|
|
163
|
+
}];
|
|
164
|
+
}
|
|
165
|
+
/** Converts domain-level values like string ids/enums into their db equivalent. */
|
|
166
|
+
function mapToDb(column, filter) {
|
|
167
|
+
switch (filter.kind) {
|
|
168
|
+
case "eq":
|
|
169
|
+
case "gt":
|
|
170
|
+
case "gte":
|
|
171
|
+
case "ne":
|
|
172
|
+
case "lt":
|
|
173
|
+
case "lte":
|
|
174
|
+
case "like":
|
|
175
|
+
case "nlike":
|
|
176
|
+
case "ilike":
|
|
177
|
+
case "nilike":
|
|
178
|
+
case "regex":
|
|
179
|
+
case "nregex":
|
|
180
|
+
case "iregex":
|
|
181
|
+
case "niregex":
|
|
182
|
+
filter.value = column.mapToDb(filter.value);
|
|
183
|
+
return filter;
|
|
184
|
+
case "in":
|
|
185
|
+
if (column.isArray) return {
|
|
186
|
+
kind: "contains",
|
|
187
|
+
value: column.mapToDb(filter.value)
|
|
188
|
+
};
|
|
189
|
+
else filter.value = filter.value.map((v) => column.mapToDb(v));
|
|
190
|
+
return filter;
|
|
191
|
+
case "nin":
|
|
192
|
+
if (column.isArray) throw new Error("The nin operator is not supported on array columns yet");
|
|
193
|
+
else filter.value = filter.value.map((v) => column.mapToDb(v));
|
|
194
|
+
return filter;
|
|
195
|
+
case "contains":
|
|
196
|
+
case "ncontains":
|
|
197
|
+
case "overlaps":
|
|
198
|
+
case "noverlaps":
|
|
199
|
+
case "containedBy":
|
|
200
|
+
if (!(column.isArray || column.dbType === "jsonb")) throw new Error(`${filter.kind} is only unsupported on array or jsonb columns`);
|
|
201
|
+
if (column.isArray) filter.value = column.mapToDb(filter.value);
|
|
202
|
+
return filter;
|
|
203
|
+
case "between":
|
|
204
|
+
filter.value = [column.mapToDb(filter.value[0]), column.mapToDb(filter.value[1])];
|
|
205
|
+
return filter;
|
|
206
|
+
case "is-null":
|
|
207
|
+
case "not-null":
|
|
208
|
+
case "jsonPathExists":
|
|
209
|
+
case "jsonPathPredicate": return filter;
|
|
210
|
+
default: throw assertNever(filter);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/** Converts a search term like `foo bar` into a SQL `like` pattern like `%foo%bar%`. */
|
|
214
|
+
function makeLike(search) {
|
|
215
|
+
return search ? `%${search.replace(/\s+/g, "%")}%` : void 0;
|
|
216
|
+
}
|
|
217
|
+
/** Returns true for values that should be treated like an omitted filter. */
|
|
218
|
+
function shouldPruneValueFilter(key, value) {
|
|
219
|
+
if (value === void 0) return true;
|
|
220
|
+
return value === false && key !== "eq" && key !== "ne";
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Returns whether an entity is known not to be queryable from the database.
|
|
224
|
+
*
|
|
225
|
+
* We check `idTaggedMaybe` instead of `isNewEntity` because commit rules run after INSERTs while those
|
|
226
|
+
* entities still report as new until the flush completes (and yet, because they are in the database, we
|
|
227
|
+
* must keep them in the query instead of ignoring them). An ID can also be assigned before INSERT, so an
|
|
228
|
+
* ID-bearing entity conservatively falls through to a harmless database query.
|
|
229
|
+
*/
|
|
230
|
+
function isNotInDb(value) {
|
|
231
|
+
return value.idTaggedMaybe === void 0;
|
|
232
|
+
}
|
|
233
|
+
//#endregion
|
|
234
|
+
export { makeLike, mapToDb, parseEntityFilter, parseValueFilter };
|
|
235
|
+
|
|
236
|
+
//# sourceMappingURL=valueFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueFilters.js","names":[],"sources":["../../src/queries/valueFilters.ts"],"sourcesContent":["import { isPlainObject } from \"joist-utils\";\nimport { type Entity, isEntity } from \"src/Entity.ts\";\nimport { isDefined } from \"src/EntityManager.ts\";\nimport type { EntityMetadata } from \"src/EntityMetadata.ts\";\nimport { isAlias } from \"src/queries/find/Aliases.ts\";\nimport type { ValueFilter } from \"src/queries/find/EntityFilter.ts\";\nimport { isScope } from \"src/queries/find/scopes.ts\";\nimport type { ParsedValueFilter } from \"src/queries/parsedConditions.ts\";\nimport type { Column } from \"src/serde/columns.ts\";\nimport { assertNever } from \"src/utils.ts\";\n\n/** An ADT version of `EntityFilter`. */\nexport type ParsedEntityFilter =\n // ParsedValueFilter is any simple match on `id`\n | ParsedValueFilter<string | number>\n // Otherwise we return the join/complex\n | { kind: \"join\"; subFilter: object };\n\n/** Parses an entity filter, which could be \"just an id\", an array of ids, or a nested filter. */\nexport function parseEntityFilter(_meta: EntityMetadata, filter: any): ParsedEntityFilter | undefined {\n if (filter === undefined) {\n // This matches legacy `em.find(Book, { author: undefined })` behavior\n return undefined;\n } else if (isAlias(filter)) {\n // We're just binding an alias to this position in the join tree\n return undefined;\n } else if (isScope(filter)) {\n // A scope on a relation (e.g. `{ author: Author.adult }`) always implies conditions on the\n // related entity, so signal \"needs a join\" via the existing `join` discriminant rather than\n // adding a dedicated `kind: \"scope\"` that every relation branch would have to learn. The empty\n // `subFilter` is intentionally never read: the m2o/m2m branches only check `kind === \"join\"` to\n // decide whether to join, then re-dispatch the original scope value back through `addTable`,\n // where `isScope(...)` routes it to `addScopeFilterAt` to apply the scope's actual fragments.\n return { kind: \"join\", subFilter: {} };\n } else if (filter === null) {\n return { kind: \"is-null\" };\n } else if (typeof filter === \"string\" || typeof filter === \"number\") {\n return { kind: \"eq\", value: filter };\n } else if (typeof filter === \"boolean\") {\n return filter ? { kind: \"not-null\" } : { kind: \"is-null\" };\n } else if (Array.isArray(filter)) {\n return {\n kind: \"in\",\n value: filter.flatMap((value: string | number | Entity) => {\n if (!isEntity(value)) return [value];\n // If no IDs remain, `in: []` marks the condition as unable to match a database row.\n return isNotInDb(value) ? [] : [value.idTagged];\n }),\n };\n } else if (isEntity(filter)) {\n // We use `in: []` to mark an ID-less entity as unable to match a database row.\n return isNotInDb(filter) ? { kind: \"in\", value: [] } : { kind: \"eq\", value: filter.idTagged };\n } else if (typeof filter === \"object\") {\n // Looking for `{ firstName: \"f1\" }` or `{ ne: \"f1\" }`\n const keys = Object.keys(filter);\n // Special case only looking at `ne`\n if (keys.length === 1 && keys[0] === \"ne\") {\n const value = filter[\"ne\"];\n if (value === undefined) {\n return undefined;\n } else if (value === null) {\n return { kind: \"not-null\" };\n } else if (typeof value === \"string\" || typeof value === \"number\") {\n return { kind: \"ne\", value };\n } else if (isEntity(value)) {\n // No persisted FK can equal an ID-less entity, and SQL `!=` excludes nulls, so this is `IS NOT NULL`.\n return isNotInDb(value) ? { kind: \"not-null\" } : { kind: \"ne\", value: value.idTagged };\n } else {\n throw new Error(`Unsupported \"ne\" value ${value}`);\n }\n }\n // Special case only looking at `id`\n if (keys.length === 1 && keys[0] === \"id\") {\n const value = filter[\"id\"];\n if (value === undefined) {\n return undefined;\n } else if (value === null) {\n return { kind: \"is-null\" };\n } else if (typeof value === \"string\" || typeof value === \"number\") {\n return { kind: \"eq\", value };\n } else if (isEntity(value)) {\n return isNotInDb(value) ? { kind: \"in\", value: [] } : { kind: \"eq\", value: value.idTagged };\n } else {\n return parseValueFilter(value)[0] as any;\n }\n }\n // Look for subFilter values being EntityFilter-ish instances like ManyToOneReference\n // that have an id, and so structurally match the entity filter without really being filters,\n // and convert them over here before getting into parseValueFilter.\n const subFilter = {} as any;\n for (const [key, value] of Object.entries(filter)) {\n if (value && typeof value === \"object\" && !isEntity(value) && !isPlainObject(value) && \"idTaggedMaybe\" in value) {\n subFilter[key] = value.idTaggedMaybe === undefined ? [] : value.idTaggedMaybe;\n } else {\n subFilter[key] = value;\n }\n }\n return { kind: \"join\", subFilter };\n } else {\n throw new Error(`Unrecognized filter ${filter}`);\n }\n}\n\n/**\n * Parses the many/hodgepodge (ergonomic!) patterns of value filters into a `ParsedValueFilter[]`.\n *\n * Note we return an array because filter might be a `ValueGraphQLFilter` that is allowed to have\n * multiple conditions, i.e. `{ lt: 10, gt: 5 }`.\n */\nexport function parseValueFilter<V>(filter: ValueFilter<V, any>): ParsedValueFilter<V>[] {\n if (filter === null) {\n return [{ kind: \"is-null\" }];\n } else if (filter === undefined) {\n // This is legacy behavior where `em.find(Book, { author: undefined })` would match all books\n return [];\n } else if (Array.isArray(filter)) {\n return [{ kind: \"in\", value: filter }];\n } else if (isPlainObject(filter)) {\n const keys = Object.keys(filter);\n if (keys.length === 0) {\n // Should this be an error?\n return [];\n } else if (keys.length === 2 && \"op\" in filter && \"value\" in filter) {\n // Probe for `findGql` op & value\n const { op, value } = filter;\n if (shouldPruneValueFilter(op, value)) {\n return [];\n } else if (value === null) {\n return [{ kind: \"is-null\" }];\n } else {\n return [{ kind: op, value: value ?? null }];\n }\n } else if (keys.length === 2 && \"gte\" in filter && \"lte\" in filter) {\n const { gte, lte } = filter;\n return [{ kind: \"between\", value: [gte, lte] }];\n } else {\n return Object.entries(filter)\n .map(([key, value]) => {\n // Always do condition pruning on the value\n if (shouldPruneValueFilter(key, value)) {\n return undefined;\n }\n switch (key) {\n case \"eq\":\n if (value === null) {\n return { kind: \"is-null\" as const };\n } else {\n return { kind: \"eq\" as const, value: filter[key] };\n }\n case \"ne\":\n if (value === null) {\n return { kind: \"not-null\" as const };\n } else {\n return { kind: \"ne\" as const, value: filter[key] ?? null };\n }\n case \"in\":\n case \"nin\":\n case \"gt\":\n case \"gte\":\n case \"lt\":\n case \"lte\":\n case \"like\":\n case \"nlike\":\n case \"ilike\":\n case \"nilike\":\n case \"regex\":\n case \"nregex\":\n case \"iregex\":\n case \"niregex\":\n case \"contains\":\n case \"overlaps\":\n case \"containedBy\":\n return { kind: key, value: filter[key] };\n case \"pathExists\":\n return { kind: \"jsonPathExists\" as const, value: filter[key] };\n case \"pathIsTrue\":\n return { kind: \"jsonPathPredicate\" as const, value: filter[key] };\n case \"search\":\n return { kind: \"ilike\" as const, value: makeLike(filter[key]) };\n case \"between\":\n return { kind: key, value: filter[key] };\n default:\n throw new Error(`Unsupported value filter key ${key}`);\n }\n })\n .filter(isDefined);\n }\n } else {\n // This is a primitive like a string, number\n return [{ kind: \"eq\", value: filter }];\n }\n}\n\n/** Converts domain-level values like string ids/enums into their db equivalent. */\nexport function mapToDb(column: Column, filter: ParsedValueFilter<any>): ParsedValueFilter<any> {\n // ...to teach this `mapToDb` function to handle/rewrite `in: [1, null]` handling, we'd need to:\n // 1. return a maybe-simple/maybe-nested condition, so basically a `ParsedExpressionCondition`, because\n // this would let `in` return an `{ or: ... }` to all the callers.\n // 2. also return `{ parsed: ParsedExpressionCondition, simples: SimpleCondition[] }` tuple, for the\n // alias `addCondition` processing to track the `simples` and rewrite their alias when later bound.\n switch (filter.kind) {\n case \"eq\":\n case \"gt\":\n case \"gte\":\n case \"ne\":\n case \"lt\":\n case \"lte\":\n case \"like\":\n case \"nlike\":\n case \"ilike\":\n case \"nilike\":\n case \"regex\":\n case \"nregex\":\n case \"iregex\":\n case \"niregex\":\n filter.value = column.mapToDb(filter.value);\n return filter;\n case \"in\":\n if (column.isArray) {\n // Arrays need a special operator\n return { kind: \"contains\", value: column.mapToDb(filter.value) };\n } else {\n filter.value = filter.value.map((v) => column.mapToDb(v));\n }\n return filter;\n case \"nin\":\n if (column.isArray) {\n // Arrays need a special operator\n throw new Error(\"The nin operator is not supported on array columns yet\");\n } else {\n filter.value = filter.value.map((v) => column.mapToDb(v));\n }\n return filter;\n case \"contains\":\n case \"ncontains\":\n case \"overlaps\":\n case \"noverlaps\":\n case \"containedBy\":\n const supportsContains = column.isArray || column.dbType === \"jsonb\";\n if (!supportsContains) {\n throw new Error(`${filter.kind} is only unsupported on array or jsonb columns`);\n }\n if (column.isArray) {\n filter.value = column.mapToDb(filter.value);\n } else {\n // leave jsonb values alone\n }\n return filter;\n case \"between\":\n filter.value = [column.mapToDb(filter.value[0]), column.mapToDb(filter.value[1])];\n return filter;\n case \"is-null\":\n case \"not-null\":\n case \"jsonPathExists\":\n case \"jsonPathPredicate\":\n return filter;\n default:\n throw assertNever(filter);\n }\n}\n\n/** Converts a search term like `foo bar` into a SQL `like` pattern like `%foo%bar%`. */\nexport function makeLike(search: any | undefined): any {\n return search ? `%${search.replace(/\\s+/g, \"%\")}%` : undefined;\n}\n\n/** Returns true for values that should be treated like an omitted filter. */\nfunction shouldPruneValueFilter(key: unknown, value: unknown): boolean {\n if (value === undefined) return true;\n return value === false && key !== \"eq\" && key !== \"ne\";\n}\n\n/**\n * Returns whether an entity is known not to be queryable from the database.\n *\n * We check `idTaggedMaybe` instead of `isNewEntity` because commit rules run after INSERTs while those\n * entities still report as new until the flush completes (and yet, because they are in the database, we\n * must keep them in the query instead of ignoring them). An ID can also be assigned before INSERT, so an\n * ID-bearing entity conservatively falls through to a harmless database query.\n */\nfunction isNotInDb(value: Entity): boolean {\n return value.idTaggedMaybe === undefined;\n}\n"],"mappings":"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"}
|