joist-core 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +176 -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 +167 -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,114 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_relations_AbstractPropertyImpl = require("./AbstractPropertyImpl.cjs");
|
|
3
|
+
const require_relations_PropertySymbols = require("./PropertySymbols.cjs");
|
|
4
|
+
const require_reactivity_reactiveHints = require("../reactivity/reactiveHints.cjs");
|
|
5
|
+
const require_loading_loadHints = require("../loading/loadHints.cjs");
|
|
6
|
+
const require_fields = require("../fields.cjs");
|
|
7
|
+
const require_newEntity = require("../newEntity.cjs");
|
|
8
|
+
const require_EntityMetadata = require("../EntityMetadata.cjs");
|
|
9
|
+
require("../index.cjs");
|
|
10
|
+
const require_EntityManager = require("../EntityManager.cjs");
|
|
11
|
+
require("../Entity.cjs");
|
|
12
|
+
//#region src/relations/ReactiveField.ts
|
|
13
|
+
/**
|
|
14
|
+
* Creates a calculated derived value from a load hint + lambda.
|
|
15
|
+
*
|
|
16
|
+
* The property can be accessed by default as a promise, with `someProperty.load()`.
|
|
17
|
+
*
|
|
18
|
+
* But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
|
|
19
|
+
* with `someProperty.get`.
|
|
20
|
+
*/
|
|
21
|
+
function hasReactiveField(hint, fn) {
|
|
22
|
+
return require_newEntity.lazyField((entity, fieldName) => {
|
|
23
|
+
const field = require_EntityMetadata.getMetadata(entity).allFields[fieldName];
|
|
24
|
+
return new ReactiveFieldImpl(entity, field, hint, fn);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
var ReactiveFieldImpl = class extends require_relations_AbstractPropertyImpl.AbstractPropertyImpl {
|
|
28
|
+
fn;
|
|
29
|
+
#field;
|
|
30
|
+
#reactiveHint;
|
|
31
|
+
#loadPromise;
|
|
32
|
+
#isLoaded;
|
|
33
|
+
#isCached = false;
|
|
34
|
+
constructor(entity, field, reactiveHint, fn) {
|
|
35
|
+
super(entity);
|
|
36
|
+
this.fn = fn;
|
|
37
|
+
this.#field = field;
|
|
38
|
+
this.#reactiveHint = reactiveHint;
|
|
39
|
+
}
|
|
40
|
+
async load(opts) {
|
|
41
|
+
if (!this.isLoaded || opts?.forceReload) return this.#loadPromise ??= this.entity.em.populate(this.entity, { hint: this.loadHint }).then(() => {
|
|
42
|
+
this.#loadPromise = void 0;
|
|
43
|
+
this.#isLoaded = true;
|
|
44
|
+
require_EntityManager.getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
45
|
+
this.resetCacheUnlessFactoryPinned();
|
|
46
|
+
return this.get;
|
|
47
|
+
});
|
|
48
|
+
this.resetCacheUnlessFactoryPinned();
|
|
49
|
+
return this.get;
|
|
50
|
+
}
|
|
51
|
+
/** Returns either the latest calculated value (if loaded) or the previously-calculated value (if not loaded). */
|
|
52
|
+
get get() {
|
|
53
|
+
const { fn } = this;
|
|
54
|
+
if (this.#isCached) return this.fieldValue;
|
|
55
|
+
if (this.isLoaded) {
|
|
56
|
+
const newValue = fn(this.entity);
|
|
57
|
+
if (!require_EntityManager.getEmInternalApi(this.entity.em).isValidating) {
|
|
58
|
+
require_fields.setField(this.entity, this.fieldName, newValue);
|
|
59
|
+
this.#isCached = true;
|
|
60
|
+
require_EntityManager.getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
61
|
+
}
|
|
62
|
+
return newValue;
|
|
63
|
+
} else if (this.isSet) {
|
|
64
|
+
this.#isCached = true;
|
|
65
|
+
require_EntityManager.getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
66
|
+
return this.fieldValue;
|
|
67
|
+
} else throw new Error(`${this.fieldName} has not been derived yet`);
|
|
68
|
+
}
|
|
69
|
+
get fieldName() {
|
|
70
|
+
return this.#field.fieldName;
|
|
71
|
+
}
|
|
72
|
+
get reactiveHint() {
|
|
73
|
+
return this.#reactiveHint;
|
|
74
|
+
}
|
|
75
|
+
get fieldValue() {
|
|
76
|
+
return require_fields.getField(this.entity, this.fieldName);
|
|
77
|
+
}
|
|
78
|
+
get isSet() {
|
|
79
|
+
return require_fields.isFieldSet(this.entity, this.fieldName);
|
|
80
|
+
}
|
|
81
|
+
get isLoaded() {
|
|
82
|
+
if (this.#isLoaded !== void 0) return this.#isLoaded;
|
|
83
|
+
this.#isLoaded = require_loading_loadHints.isLoaded(this.entity, this.loadHint);
|
|
84
|
+
require_EntityManager.getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
85
|
+
return this.#isLoaded;
|
|
86
|
+
}
|
|
87
|
+
resetIsLoaded() {
|
|
88
|
+
this.#isLoaded = void 0;
|
|
89
|
+
this.resetCacheUnlessFactoryPinned();
|
|
90
|
+
}
|
|
91
|
+
get loadHint() {
|
|
92
|
+
const meta = require_EntityMetadata.getMetadata(this.entity);
|
|
93
|
+
return meta.config.__data.cachedReactiveLoadHints[this.fieldName] ??= require_reactivity_reactiveHints.convertToLoadHint(meta, this.reactiveHint);
|
|
94
|
+
}
|
|
95
|
+
setFactoryValue(newValue) {
|
|
96
|
+
require_fields.setField(this.entity, this.fieldName, newValue);
|
|
97
|
+
this.#isCached = "factory-value";
|
|
98
|
+
}
|
|
99
|
+
[require_relations_PropertySymbols.PropertyT] = void 0;
|
|
100
|
+
resetCacheUnlessFactoryPinned() {
|
|
101
|
+
if (this.#isCached === "factory-value") return;
|
|
102
|
+
this.#isCached = false;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
/** Type guard utility for determining if an entity field is a ReactiveField. */
|
|
106
|
+
function isReactiveField(maybeReactiveField) {
|
|
107
|
+
return maybeReactiveField instanceof ReactiveFieldImpl;
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
exports.ReactiveFieldImpl = ReactiveFieldImpl;
|
|
111
|
+
exports.hasReactiveField = hasReactiveField;
|
|
112
|
+
exports.isReactiveField = isReactiveField;
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=ReactiveField.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactiveField.cjs","names":["lazyField","getMetadata","AbstractPropertyImpl","#field","#reactiveHint","#loadPromise","#isLoaded","#isCached","getEmInternalApi","getField","isFieldSet","isLoaded","convertToLoadHint","PropertyT"],"sources":["../../src/relations/ReactiveField.ts"],"sourcesContent":["import { type Entity } from \"src/Entity.ts\";\nimport { getEmInternalApi } from \"src/EntityManager.ts\";\nimport { type PrimitiveField, getMetadata } from \"src/EntityMetadata.ts\";\nimport { getField, isFieldSet, setField } from \"src/fields.ts\";\nimport { isLoaded } from \"src/index.ts\";\nimport type { IsLoadedCachable } from \"src/loading/IsLoadedCache.ts\";\nimport { lazyField } from \"src/newEntity.ts\";\nimport { type Reacted, type ReactiveHint, convertToLoadHint } from \"src/reactivity/reactiveHints.ts\";\nimport { AbstractPropertyImpl } from \"src/relations/AbstractPropertyImpl.ts\";\nimport { PropertyT } from \"src/relations/PropertySymbols.ts\";\n\n/**\n * A `ReactiveField` is a value that is derived from other entities/values,\n * similar to a `Property`, but it is also persisted in the database.\n *\n * This allows callers (or SQL queries) to access the value without first calling\n * `await load()` on the property.\n *\n * So, unlike `Property`, `.get` is always available; if the property is unloaded,\n * then `.get` will return the last-calculated value, but if the property is loaded,\n * then it will go ahead and invoke function to calculate the latest value (i.e. so\n * that you can observe the latest & greatest value w/o waiting for `em.flush` to\n * re-calc the value while persisting to the database.\n */\nexport interface ReactiveField<T extends Entity, V> {\n [PropertyT]: T;\n isLoaded: boolean;\n isSet: boolean;\n\n /**\n * Calculates the latest derived value.\n *\n * Users are not required to call this method explicitly, as Joist will keep the\n * persisted value automatically in-sync, but if for some reason (code changes,\n * bug fixes, etc.) you need to trigger an explicit recalc, you can call `.load()`,\n * any dependent data will be loaded from the database, and the latest value\n * returned, and then later stored to the database on `em.flush`.\n *\n * Note that persisted properties used in load hints, i.e. `em.populate`s that\n * accidentally list reactive fields (instead of just relations) will not have\n * `.load()` invoked, and will instead use the previously-calculated value.\n * The rationale is that one persisted property should be able to declare its\n * dependency on another persisted property (for its reactive field-level hint)\n * without causing that dependent property's populate hint to itself be loaded.\n */\n load(opts?: { forceReload?: boolean }): Promise<V>;\n\n /** If loaded, returns the latest derived value, or if unload returns the previously-calculated value. */\n get: V;\n\n /**\n * Returns the as-of-last-flush previously-calculated value.\n *\n * This is useful if you have to purposefully avoid using the lambda to calc the latest value,\n * i.e. if you're in a test and want to watch a calculated value change from some dummy value\n * to the new derived value.\n * */\n fieldValue: V;\n}\n\n/**\n * Creates a calculated derived value from a load hint + lambda.\n *\n * The property can be accessed by default as a promise, with `someProperty.load()`.\n *\n * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,\n * with `someProperty.get`.\n */\nexport function hasReactiveField<T extends Entity, const H extends ReactiveHint<T>, V>(\n hint: H,\n fn: (entity: Reacted<T, H>) => V,\n): ReactiveField<T, V> {\n return lazyField((entity: T, fieldName) => {\n const field = getMetadata(entity).allFields[fieldName] as PrimitiveField;\n return new ReactiveFieldImpl(entity, field, hint, fn);\n });\n}\n\nexport class ReactiveFieldImpl<T extends Entity, H extends ReactiveHint<T>, V>\n extends AbstractPropertyImpl<T>\n implements ReactiveField<T, V>, IsLoadedCachable\n{\n readonly #field: PrimitiveField;\n readonly #reactiveHint: H;\n #loadPromise: any;\n // Initially undefined, then cached as true/false\n #isLoaded: boolean | undefined;\n #isCached: boolean | \"factory-value\" = false;\n\n constructor(\n entity: T,\n field: PrimitiveField,\n reactiveHint: H,\n private fn: (entity: Reacted<T, H>) => V,\n ) {\n super(entity);\n this.#field = field;\n this.#reactiveHint = reactiveHint;\n }\n\n async load(opts?: { forceReload?: boolean }): Promise<V> {\n // Even without `forceReload=true`, any explicit calls to `.load()` ==> ensure a fresh value,\n // because `.get` may have cached the stale/previously-calculated value.\n //\n // (Currently `em.populate` / `populateDataLoader` has a hack/escape hatch that ignores calling\n // RF.load(), to avoid pulling in the RF subgraph over using the materialized value, which ideally would be\n // replaced with us learning to do the maybeDirty approach.)\n if (!this.isLoaded || opts?.forceReload) {\n return (this.#loadPromise ??= this.entity.em.populate(this.entity, { hint: this.loadHint } as any).then(() => {\n this.#loadPromise = undefined;\n this.#isLoaded = true;\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n // Wait and reset `#isCached` until inside this `then`, so that we don't have a race condition where:\n // - two relations (us and someone else) are both passed to `em.calc`\n // - their load hint is simpler, so their promises resolves first, and their `.get` calls our `.get`\n // - our `.get` sees we're not loaded, but calls `fieldValue` for the existing value, and dutifully sets `#isCached=true`\n // - finally our promise runs, and if we didn't immediately set `#isCached=false` here, our `.get` would again\n // early return and keep using the stale fieldValue.\n this.resetCacheUnlessFactoryPinned();\n // Go through `this.get` so that `setField` is called to set our latest value\n return this.get;\n }));\n }\n this.resetCacheUnlessFactoryPinned();\n return this.get;\n }\n\n /** Returns either the latest calculated value (if loaded) or the previously-calculated value (if not loaded). */\n get get(): V {\n const { fn } = this;\n // Some ReactiveFields can have surprisingly expensive calculations, especially in loops\n // or those that invoke loops, so cache the value.\n if (this.#isCached) return this.fieldValue;\n // isLoaded will watch for our previously-loaded subgraph being mutated (isLoaded is locally cached but hooked into\n // our IsLoadedCache cache that is immediately invalidated on write-path), and if we've drifted to not-loaded, it's\n // better to fail and tell the user.\n if (this.isLoaded) {\n const newValue = fn(this.entity as Reacted<T, H>);\n if (!getEmInternalApi(this.entity.em).isValidating) {\n // setField will immediately invalidate downstream #isLoaded/#isCached values\n setField(this.entity, this.fieldName, newValue);\n this.#isCached = true;\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n }\n return newValue;\n } else if (this.isSet) {\n this.#isCached = true;\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n return this.fieldValue;\n } else {\n throw new Error(`${this.fieldName} has not been derived yet`);\n }\n }\n\n get fieldName(): keyof T & string {\n return this.#field.fieldName as keyof T & string;\n }\n\n get reactiveHint(): H {\n return this.#reactiveHint;\n }\n\n get fieldValue(): V {\n return getField(this.entity, this.fieldName);\n }\n\n get isSet() {\n return isFieldSet(this.entity, this.fieldName);\n }\n\n get isLoaded() {\n // Skip an expensive isLoaded(subgraph) call if no mutations have happened\n if (this.#isLoaded !== undefined) return this.#isLoaded;\n this.#isLoaded = isLoaded(this.entity, this.loadHint);\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n return this.#isLoaded;\n }\n\n resetIsLoaded(): void {\n // Even though we reset this on every mutation, `isLoaded` will still realize when the subgraph\n // is still loaded (as it did before we added caching), so users won't see false positive.\n this.#isLoaded = undefined;\n this.resetCacheUnlessFactoryPinned();\n }\n\n get loadHint(): any {\n const meta = getMetadata(this.entity);\n return (meta.config.__data.cachedReactiveLoadHints[this.fieldName] ??= convertToLoadHint(meta, this.reactiveHint));\n }\n\n setFactoryValue(newValue: any): void {\n setField(this.entity, this.fieldName, newValue);\n this.#isCached = \"factory-value\";\n }\n\n [PropertyT] = undefined as any as T;\n\n private resetCacheUnlessFactoryPinned(): void {\n // If factories asked for a hard-coded value, don't reset the cached flag\n if (this.#isCached === \"factory-value\") return;\n this.#isCached = false;\n }\n}\n\n/** Type guard utility for determining if an entity field is a ReactiveField. */\nexport function isReactiveField(maybeReactiveField: any): maybeReactiveField is ReactiveField<any, any> {\n return maybeReactiveField instanceof ReactiveFieldImpl;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoEA,SAAgB,iBACd,MACA,IACqB;CACrB,OAAOA,kBAAAA,WAAW,QAAW,cAAc;EACzC,MAAM,QAAQC,uBAAAA,YAAY,MAAM,CAAC,CAAC,UAAU;EAC5C,OAAO,IAAI,kBAAkB,QAAQ,OAAO,MAAM,EAAE;CACtD,CAAC;AACH;AAEA,IAAa,oBAAb,cACUC,uCAAAA,qBAEV;CAYY;CAXV;CACA;CACA;CAEA;CACA,YAAuC;CAEvC,YACE,QACA,OACA,cACA,IACA;EACA,MAAM,MAAM;EAFJ,KAAA,KAAA;EAGR,KAAKC,SAAS;EACd,KAAKC,gBAAgB;CACvB;CAEA,MAAM,KAAK,MAA8C;EAOvD,IAAI,CAAC,KAAK,YAAY,MAAM,aAC1B,OAAQ,KAAKC,iBAAiB,KAAK,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAQ,CAAC,CAAC,WAAW;GAC5G,KAAKA,eAAe,KAAA;GACpB,KAAKC,YAAY;GACjB,sBAAA,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;GAOvD,KAAK,8BAA8B;GAEnC,OAAO,KAAK;EACd,CAAC;EAEH,KAAK,8BAA8B;EACnC,OAAO,KAAK;CACd;;CAGA,IAAI,MAAS;EACX,MAAM,EAAE,OAAO;EAGf,IAAI,KAAKC,WAAW,OAAO,KAAK;EAIhC,IAAI,KAAK,UAAU;GACjB,MAAM,WAAW,GAAG,KAAK,MAAuB;GAChD,IAAI,CAACC,sBAAAA,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc;IAElD,eAAA,SAAS,KAAK,QAAQ,KAAK,WAAW,QAAQ;IAC9C,KAAKD,YAAY;IACjB,sBAAA,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;GACzD;GACA,OAAO;EACT,OAAO,IAAI,KAAK,OAAO;GACrB,KAAKA,YAAY;GACjB,sBAAA,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;GACvD,OAAO,KAAK;EACd,OACE,MAAM,IAAI,MAAM,GAAG,KAAK,UAAU,0BAA0B;CAEhE;CAEA,IAAI,YAA8B;EAChC,OAAO,KAAKJ,OAAO;CACrB;CAEA,IAAI,eAAkB;EACpB,OAAO,KAAKC;CACd;CAEA,IAAI,aAAgB;EAClB,OAAOK,eAAAA,SAAS,KAAK,QAAQ,KAAK,SAAS;CAC7C;CAEA,IAAI,QAAQ;EACV,OAAOC,eAAAA,WAAW,KAAK,QAAQ,KAAK,SAAS;CAC/C;CAEA,IAAI,WAAW;EAEb,IAAI,KAAKJ,cAAc,KAAA,GAAW,OAAO,KAAKA;EAC9C,KAAKA,YAAYK,0BAAAA,SAAS,KAAK,QAAQ,KAAK,QAAQ;EACpD,sBAAA,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;EACvD,OAAO,KAAKL;CACd;CAEA,gBAAsB;EAGpB,KAAKA,YAAY,KAAA;EACjB,KAAK,8BAA8B;CACrC;CAEA,IAAI,WAAgB;EAClB,MAAM,OAAOL,uBAAAA,YAAY,KAAK,MAAM;EACpC,OAAQ,KAAK,OAAO,OAAO,wBAAwB,KAAK,eAAeW,iCAAAA,kBAAkB,MAAM,KAAK,YAAY;CAClH;CAEA,gBAAgB,UAAqB;EACnC,eAAA,SAAS,KAAK,QAAQ,KAAK,WAAW,QAAQ;EAC9C,KAAKL,YAAY;CACnB;CAEA,CAACM,kCAAAA,aAAa,KAAA;CAEd,gCAA8C;EAE5C,IAAI,KAAKN,cAAc,iBAAiB;EACxC,KAAKA,YAAY;CACnB;AACF;;AAGA,SAAgB,gBAAgB,oBAAwE;CACtG,OAAO,8BAA8B;AACvC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { AbstractPropertyImpl } from "./AbstractPropertyImpl.cjs";
|
|
2
|
+
import { PropertyT } from "./PropertySymbols.cjs";
|
|
3
|
+
import { IsLoadedCachable } from "../loading/IsLoadedCache.cjs";
|
|
4
|
+
import { Reacted, ReactiveHint } from "../reactivity/reactiveHints.cjs";
|
|
5
|
+
import { PrimitiveField } from "../EntityMetadata.cjs";
|
|
6
|
+
import { Entity } from "../Entity.cjs";
|
|
7
|
+
//#region src/relations/ReactiveField.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* A `ReactiveField` is a value that is derived from other entities/values,
|
|
10
|
+
* similar to a `Property`, but it is also persisted in the database.
|
|
11
|
+
*
|
|
12
|
+
* This allows callers (or SQL queries) to access the value without first calling
|
|
13
|
+
* `await load()` on the property.
|
|
14
|
+
*
|
|
15
|
+
* So, unlike `Property`, `.get` is always available; if the property is unloaded,
|
|
16
|
+
* then `.get` will return the last-calculated value, but if the property is loaded,
|
|
17
|
+
* then it will go ahead and invoke function to calculate the latest value (i.e. so
|
|
18
|
+
* that you can observe the latest & greatest value w/o waiting for `em.flush` to
|
|
19
|
+
* re-calc the value while persisting to the database.
|
|
20
|
+
*/
|
|
21
|
+
interface ReactiveField<T extends Entity, V> {
|
|
22
|
+
[PropertyT]: T;
|
|
23
|
+
isLoaded: boolean;
|
|
24
|
+
isSet: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Calculates the latest derived value.
|
|
27
|
+
*
|
|
28
|
+
* Users are not required to call this method explicitly, as Joist will keep the
|
|
29
|
+
* persisted value automatically in-sync, but if for some reason (code changes,
|
|
30
|
+
* bug fixes, etc.) you need to trigger an explicit recalc, you can call `.load()`,
|
|
31
|
+
* any dependent data will be loaded from the database, and the latest value
|
|
32
|
+
* returned, and then later stored to the database on `em.flush`.
|
|
33
|
+
*
|
|
34
|
+
* Note that persisted properties used in load hints, i.e. `em.populate`s that
|
|
35
|
+
* accidentally list reactive fields (instead of just relations) will not have
|
|
36
|
+
* `.load()` invoked, and will instead use the previously-calculated value.
|
|
37
|
+
* The rationale is that one persisted property should be able to declare its
|
|
38
|
+
* dependency on another persisted property (for its reactive field-level hint)
|
|
39
|
+
* without causing that dependent property's populate hint to itself be loaded.
|
|
40
|
+
*/
|
|
41
|
+
load(opts?: {
|
|
42
|
+
forceReload?: boolean;
|
|
43
|
+
}): Promise<V>;
|
|
44
|
+
/** If loaded, returns the latest derived value, or if unload returns the previously-calculated value. */
|
|
45
|
+
get: V;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the as-of-last-flush previously-calculated value.
|
|
48
|
+
*
|
|
49
|
+
* This is useful if you have to purposefully avoid using the lambda to calc the latest value,
|
|
50
|
+
* i.e. if you're in a test and want to watch a calculated value change from some dummy value
|
|
51
|
+
* to the new derived value.
|
|
52
|
+
* */
|
|
53
|
+
fieldValue: V;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a calculated derived value from a load hint + lambda.
|
|
57
|
+
*
|
|
58
|
+
* The property can be accessed by default as a promise, with `someProperty.load()`.
|
|
59
|
+
*
|
|
60
|
+
* But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
|
|
61
|
+
* with `someProperty.get`.
|
|
62
|
+
*/
|
|
63
|
+
declare function hasReactiveField<T extends Entity, const H extends ReactiveHint<T>, V>(hint: H, fn: (entity: Reacted<T, H>) => V): ReactiveField<T, V>;
|
|
64
|
+
declare class ReactiveFieldImpl<T extends Entity, H extends ReactiveHint<T>, V> extends AbstractPropertyImpl<T> implements ReactiveField<T, V>, IsLoadedCachable {
|
|
65
|
+
#private;
|
|
66
|
+
private fn;
|
|
67
|
+
constructor(entity: T, field: PrimitiveField, reactiveHint: H, fn: (entity: Reacted<T, H>) => V);
|
|
68
|
+
load(opts?: {
|
|
69
|
+
forceReload?: boolean;
|
|
70
|
+
}): Promise<V>;
|
|
71
|
+
/** Returns either the latest calculated value (if loaded) or the previously-calculated value (if not loaded). */
|
|
72
|
+
get get(): V;
|
|
73
|
+
get fieldName(): keyof T & string;
|
|
74
|
+
get reactiveHint(): H;
|
|
75
|
+
get fieldValue(): V;
|
|
76
|
+
get isSet(): boolean;
|
|
77
|
+
get isLoaded(): boolean;
|
|
78
|
+
resetIsLoaded(): void;
|
|
79
|
+
get loadHint(): any;
|
|
80
|
+
setFactoryValue(newValue: any): void;
|
|
81
|
+
[PropertyT]: T;
|
|
82
|
+
private resetCacheUnlessFactoryPinned;
|
|
83
|
+
}
|
|
84
|
+
/** Type guard utility for determining if an entity field is a ReactiveField. */
|
|
85
|
+
declare function isReactiveField(maybeReactiveField: any): maybeReactiveField is ReactiveField<any, any>;
|
|
86
|
+
//#endregion
|
|
87
|
+
export { ReactiveField, ReactiveFieldImpl, hasReactiveField, isReactiveField };
|
|
88
|
+
//# sourceMappingURL=ReactiveField.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactiveField.d.cts","names":[],"sources":["../../src/relations/ReactiveField.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;UAwBiB,cAAc,UAAU,QAAQ;GAC9C,YAAY;EACb;EACA;;;;;;;;;;;;;;;;;EAkBA,KAAK;IAAS;MAA0B,QAAQ;;EAGhD,KAAK;;;;;;;;EASL,YAAY;;;;;;;;;;iBAWE,iBAAiB,UAAU,cAAc,UAAU,aAAa,IAAI,GAClF,MAAM,GACN,KAAK,QAAQ,QAAQ,GAAG,OAAO,IAC9B,cAAc,GAAG;cAOP,kBAAkB,UAAU,QAAQ,UAAU,aAAa,IAAI,WAClE,qBAAqB,cAClB,cAAc,GAAG,IAAI;;UAatB;EAJV,YACE,QAAQ,GACR,OAAO,gBACP,cAAc,GACN,KAAK,QAAQ,QAAQ,GAAG,OAAO;EAOnC,KAAK;IAAS;MAA0B,QAAQ;;MA4BlD,OAAO;MA0BP,mBAAmB;MAInB,gBAAgB;MAIhB,cAAc;MAId;MAIA;EAQJ;MAOI;EAKJ,gBAAgB;GAKf,YAAiC;UAE1B;;;iBAQM,gBAAgB,0BAA0B,sBAAsB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { AbstractPropertyImpl } from "./AbstractPropertyImpl.mjs";
|
|
2
|
+
import { PropertyT } from "./PropertySymbols.mjs";
|
|
3
|
+
import { IsLoadedCachable } from "../loading/IsLoadedCache.mjs";
|
|
4
|
+
import { Reacted, ReactiveHint } from "../reactivity/reactiveHints.mjs";
|
|
5
|
+
import { PrimitiveField } from "../EntityMetadata.mjs";
|
|
6
|
+
import { Entity } from "../Entity.mjs";
|
|
7
|
+
//#region src/relations/ReactiveField.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* A `ReactiveField` is a value that is derived from other entities/values,
|
|
10
|
+
* similar to a `Property`, but it is also persisted in the database.
|
|
11
|
+
*
|
|
12
|
+
* This allows callers (or SQL queries) to access the value without first calling
|
|
13
|
+
* `await load()` on the property.
|
|
14
|
+
*
|
|
15
|
+
* So, unlike `Property`, `.get` is always available; if the property is unloaded,
|
|
16
|
+
* then `.get` will return the last-calculated value, but if the property is loaded,
|
|
17
|
+
* then it will go ahead and invoke function to calculate the latest value (i.e. so
|
|
18
|
+
* that you can observe the latest & greatest value w/o waiting for `em.flush` to
|
|
19
|
+
* re-calc the value while persisting to the database.
|
|
20
|
+
*/
|
|
21
|
+
interface ReactiveField<T extends Entity, V> {
|
|
22
|
+
[PropertyT]: T;
|
|
23
|
+
isLoaded: boolean;
|
|
24
|
+
isSet: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Calculates the latest derived value.
|
|
27
|
+
*
|
|
28
|
+
* Users are not required to call this method explicitly, as Joist will keep the
|
|
29
|
+
* persisted value automatically in-sync, but if for some reason (code changes,
|
|
30
|
+
* bug fixes, etc.) you need to trigger an explicit recalc, you can call `.load()`,
|
|
31
|
+
* any dependent data will be loaded from the database, and the latest value
|
|
32
|
+
* returned, and then later stored to the database on `em.flush`.
|
|
33
|
+
*
|
|
34
|
+
* Note that persisted properties used in load hints, i.e. `em.populate`s that
|
|
35
|
+
* accidentally list reactive fields (instead of just relations) will not have
|
|
36
|
+
* `.load()` invoked, and will instead use the previously-calculated value.
|
|
37
|
+
* The rationale is that one persisted property should be able to declare its
|
|
38
|
+
* dependency on another persisted property (for its reactive field-level hint)
|
|
39
|
+
* without causing that dependent property's populate hint to itself be loaded.
|
|
40
|
+
*/
|
|
41
|
+
load(opts?: {
|
|
42
|
+
forceReload?: boolean;
|
|
43
|
+
}): Promise<V>;
|
|
44
|
+
/** If loaded, returns the latest derived value, or if unload returns the previously-calculated value. */
|
|
45
|
+
get: V;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the as-of-last-flush previously-calculated value.
|
|
48
|
+
*
|
|
49
|
+
* This is useful if you have to purposefully avoid using the lambda to calc the latest value,
|
|
50
|
+
* i.e. if you're in a test and want to watch a calculated value change from some dummy value
|
|
51
|
+
* to the new derived value.
|
|
52
|
+
* */
|
|
53
|
+
fieldValue: V;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a calculated derived value from a load hint + lambda.
|
|
57
|
+
*
|
|
58
|
+
* The property can be accessed by default as a promise, with `someProperty.load()`.
|
|
59
|
+
*
|
|
60
|
+
* But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
|
|
61
|
+
* with `someProperty.get`.
|
|
62
|
+
*/
|
|
63
|
+
declare function hasReactiveField<T extends Entity, const H extends ReactiveHint<T>, V>(hint: H, fn: (entity: Reacted<T, H>) => V): ReactiveField<T, V>;
|
|
64
|
+
declare class ReactiveFieldImpl<T extends Entity, H extends ReactiveHint<T>, V> extends AbstractPropertyImpl<T> implements ReactiveField<T, V>, IsLoadedCachable {
|
|
65
|
+
#private;
|
|
66
|
+
private fn;
|
|
67
|
+
constructor(entity: T, field: PrimitiveField, reactiveHint: H, fn: (entity: Reacted<T, H>) => V);
|
|
68
|
+
load(opts?: {
|
|
69
|
+
forceReload?: boolean;
|
|
70
|
+
}): Promise<V>;
|
|
71
|
+
/** Returns either the latest calculated value (if loaded) or the previously-calculated value (if not loaded). */
|
|
72
|
+
get get(): V;
|
|
73
|
+
get fieldName(): keyof T & string;
|
|
74
|
+
get reactiveHint(): H;
|
|
75
|
+
get fieldValue(): V;
|
|
76
|
+
get isSet(): boolean;
|
|
77
|
+
get isLoaded(): boolean;
|
|
78
|
+
resetIsLoaded(): void;
|
|
79
|
+
get loadHint(): any;
|
|
80
|
+
setFactoryValue(newValue: any): void;
|
|
81
|
+
[PropertyT]: T;
|
|
82
|
+
private resetCacheUnlessFactoryPinned;
|
|
83
|
+
}
|
|
84
|
+
/** Type guard utility for determining if an entity field is a ReactiveField. */
|
|
85
|
+
declare function isReactiveField(maybeReactiveField: any): maybeReactiveField is ReactiveField<any, any>;
|
|
86
|
+
//#endregion
|
|
87
|
+
export { ReactiveField, ReactiveFieldImpl, hasReactiveField, isReactiveField };
|
|
88
|
+
//# sourceMappingURL=ReactiveField.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactiveField.d.mts","names":[],"sources":["../../src/relations/ReactiveField.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;UAwBiB,cAAc,UAAU,QAAQ;GAC9C,YAAY;EACb;EACA;;;;;;;;;;;;;;;;;EAkBA,KAAK;IAAS;MAA0B,QAAQ;;EAGhD,KAAK;;;;;;;;EASL,YAAY;;;;;;;;;;iBAWE,iBAAiB,UAAU,cAAc,UAAU,aAAa,IAAI,GAClF,MAAM,GACN,KAAK,QAAQ,QAAQ,GAAG,OAAO,IAC9B,cAAc,GAAG;cAOP,kBAAkB,UAAU,QAAQ,UAAU,aAAa,IAAI,WAClE,qBAAqB,cAClB,cAAc,GAAG,IAAI;;UAatB;EAJV,YACE,QAAQ,GACR,OAAO,gBACP,cAAc,GACN,KAAK,QAAQ,QAAQ,GAAG,OAAO;EAOnC,KAAK;IAAS;MAA0B,QAAQ;;MA4BlD,OAAO;MA0BP,mBAAmB;MAInB,gBAAgB;MAIhB,cAAc;MAId;MAIA;EAQJ;MAOI;EAKJ,gBAAgB;GAKf,YAAiC;UAE1B;;;iBAQM,gBAAgB,0BAA0B,sBAAsB"}
|
|
@@ -1,144 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const AbstractPropertyImpl_1 = require("./AbstractPropertyImpl");
|
|
13
|
-
const hasProperty_1 = require("./hasProperty");
|
|
1
|
+
import { AbstractPropertyImpl } from "./AbstractPropertyImpl.js";
|
|
2
|
+
import { PropertyT } from "./PropertySymbols.js";
|
|
3
|
+
import { convertToLoadHint } from "../reactivity/reactiveHints.js";
|
|
4
|
+
import { isLoaded } from "../loading/loadHints.js";
|
|
5
|
+
import { getField, isFieldSet, setField } from "../fields.js";
|
|
6
|
+
import { lazyField } from "../newEntity.js";
|
|
7
|
+
import { getMetadata } from "../EntityMetadata.js";
|
|
8
|
+
import "../index.js";
|
|
9
|
+
import { getEmInternalApi } from "../EntityManager.js";
|
|
10
|
+
import "../Entity.js";
|
|
11
|
+
//#region src/relations/ReactiveField.ts
|
|
14
12
|
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
* Creates a calculated derived value from a load hint + lambda.
|
|
14
|
+
*
|
|
15
|
+
* The property can be accessed by default as a promise, with `someProperty.load()`.
|
|
16
|
+
*
|
|
17
|
+
* But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
|
|
18
|
+
* with `someProperty.get`.
|
|
19
|
+
*/
|
|
22
20
|
function hasReactiveField(hint, fn) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
return lazyField((entity, fieldName) => {
|
|
22
|
+
const field = getMetadata(entity).allFields[fieldName];
|
|
23
|
+
return new ReactiveFieldImpl(entity, field, hint, fn);
|
|
24
|
+
});
|
|
27
25
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
get isSet() {
|
|
107
|
-
return (0, fields_1.isFieldSet)(this.entity, this.fieldName);
|
|
108
|
-
}
|
|
109
|
-
get isLoaded() {
|
|
110
|
-
// Skip an expensive isLoaded(subgraph) call if no mutations have happened
|
|
111
|
-
if (this.#isLoaded !== undefined)
|
|
112
|
-
return this.#isLoaded;
|
|
113
|
-
this.#isLoaded = (0, index_1.isLoaded)(this.entity, this.loadHint);
|
|
114
|
-
(0, EntityManager_1.getEmInternalApi)(this.entity.em).isLoadedCache.add(this);
|
|
115
|
-
return this.#isLoaded;
|
|
116
|
-
}
|
|
117
|
-
resetIsLoaded() {
|
|
118
|
-
// Even though we reset this on every mutation, `isLoaded` will still realize when the subgraph
|
|
119
|
-
// is still loaded (as it did before we added caching), so users won't see false positive.
|
|
120
|
-
this.#isLoaded = undefined;
|
|
121
|
-
this.resetCacheUnlessFactoryPinned();
|
|
122
|
-
}
|
|
123
|
-
get loadHint() {
|
|
124
|
-
const meta = (0, EntityMetadata_1.getMetadata)(this.entity);
|
|
125
|
-
return (meta.config.__data.cachedReactiveLoadHints[this.fieldName] ??= (0, reactiveHints_1.convertToLoadHint)(meta, this.reactiveHint));
|
|
126
|
-
}
|
|
127
|
-
setFactoryValue(newValue) {
|
|
128
|
-
(0, fields_1.setField)(this.entity, this.fieldName, newValue);
|
|
129
|
-
this.#isCached = "factory-value";
|
|
130
|
-
}
|
|
131
|
-
[hasProperty_1.PropertyT] = undefined;
|
|
132
|
-
resetCacheUnlessFactoryPinned() {
|
|
133
|
-
// If factories asked for a hard-coded value, don't reset the cached flag
|
|
134
|
-
if (this.#isCached === "factory-value")
|
|
135
|
-
return;
|
|
136
|
-
this.#isCached = false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
exports.ReactiveFieldImpl = ReactiveFieldImpl;
|
|
26
|
+
var ReactiveFieldImpl = class extends AbstractPropertyImpl {
|
|
27
|
+
fn;
|
|
28
|
+
#field;
|
|
29
|
+
#reactiveHint;
|
|
30
|
+
#loadPromise;
|
|
31
|
+
#isLoaded;
|
|
32
|
+
#isCached = false;
|
|
33
|
+
constructor(entity, field, reactiveHint, fn) {
|
|
34
|
+
super(entity);
|
|
35
|
+
this.fn = fn;
|
|
36
|
+
this.#field = field;
|
|
37
|
+
this.#reactiveHint = reactiveHint;
|
|
38
|
+
}
|
|
39
|
+
async load(opts) {
|
|
40
|
+
if (!this.isLoaded || opts?.forceReload) return this.#loadPromise ??= this.entity.em.populate(this.entity, { hint: this.loadHint }).then(() => {
|
|
41
|
+
this.#loadPromise = void 0;
|
|
42
|
+
this.#isLoaded = true;
|
|
43
|
+
getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
44
|
+
this.resetCacheUnlessFactoryPinned();
|
|
45
|
+
return this.get;
|
|
46
|
+
});
|
|
47
|
+
this.resetCacheUnlessFactoryPinned();
|
|
48
|
+
return this.get;
|
|
49
|
+
}
|
|
50
|
+
/** Returns either the latest calculated value (if loaded) or the previously-calculated value (if not loaded). */
|
|
51
|
+
get get() {
|
|
52
|
+
const { fn } = this;
|
|
53
|
+
if (this.#isCached) return this.fieldValue;
|
|
54
|
+
if (this.isLoaded) {
|
|
55
|
+
const newValue = fn(this.entity);
|
|
56
|
+
if (!getEmInternalApi(this.entity.em).isValidating) {
|
|
57
|
+
setField(this.entity, this.fieldName, newValue);
|
|
58
|
+
this.#isCached = true;
|
|
59
|
+
getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
60
|
+
}
|
|
61
|
+
return newValue;
|
|
62
|
+
} else if (this.isSet) {
|
|
63
|
+
this.#isCached = true;
|
|
64
|
+
getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
65
|
+
return this.fieldValue;
|
|
66
|
+
} else throw new Error(`${this.fieldName} has not been derived yet`);
|
|
67
|
+
}
|
|
68
|
+
get fieldName() {
|
|
69
|
+
return this.#field.fieldName;
|
|
70
|
+
}
|
|
71
|
+
get reactiveHint() {
|
|
72
|
+
return this.#reactiveHint;
|
|
73
|
+
}
|
|
74
|
+
get fieldValue() {
|
|
75
|
+
return getField(this.entity, this.fieldName);
|
|
76
|
+
}
|
|
77
|
+
get isSet() {
|
|
78
|
+
return isFieldSet(this.entity, this.fieldName);
|
|
79
|
+
}
|
|
80
|
+
get isLoaded() {
|
|
81
|
+
if (this.#isLoaded !== void 0) return this.#isLoaded;
|
|
82
|
+
this.#isLoaded = isLoaded(this.entity, this.loadHint);
|
|
83
|
+
getEmInternalApi(this.entity.em).isLoadedCache.add(this);
|
|
84
|
+
return this.#isLoaded;
|
|
85
|
+
}
|
|
86
|
+
resetIsLoaded() {
|
|
87
|
+
this.#isLoaded = void 0;
|
|
88
|
+
this.resetCacheUnlessFactoryPinned();
|
|
89
|
+
}
|
|
90
|
+
get loadHint() {
|
|
91
|
+
const meta = getMetadata(this.entity);
|
|
92
|
+
return meta.config.__data.cachedReactiveLoadHints[this.fieldName] ??= convertToLoadHint(meta, this.reactiveHint);
|
|
93
|
+
}
|
|
94
|
+
setFactoryValue(newValue) {
|
|
95
|
+
setField(this.entity, this.fieldName, newValue);
|
|
96
|
+
this.#isCached = "factory-value";
|
|
97
|
+
}
|
|
98
|
+
[PropertyT] = void 0;
|
|
99
|
+
resetCacheUnlessFactoryPinned() {
|
|
100
|
+
if (this.#isCached === "factory-value") return;
|
|
101
|
+
this.#isCached = false;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
140
104
|
/** Type guard utility for determining if an entity field is a ReactiveField. */
|
|
141
105
|
function isReactiveField(maybeReactiveField) {
|
|
142
|
-
|
|
106
|
+
return maybeReactiveField instanceof ReactiveFieldImpl;
|
|
143
107
|
}
|
|
108
|
+
//#endregion
|
|
109
|
+
export { ReactiveFieldImpl, hasReactiveField, isReactiveField };
|
|
110
|
+
|
|
144
111
|
//# sourceMappingURL=ReactiveField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveField.js","sourceRoot":"","sources":["../../src/relations/ReactiveField.ts"],"names":[],"mappings":";;;AAoEA,4CAQC;AAiID,0CAEC;AA9MD,oDAAoD;AACpD,sDAAgE;AAChE,sCAA2D;AAC3D,oCAAoC;AAEpC,4CAAyC;AACzC,oDAA4E;AAC5E,iEAA8D;AAC9D,+CAA0C;AAmD1C;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,IAAO,EACP,EAAgC;IAEhC,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,SAAS,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAmB,CAAC;QACzE,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAa,iBACX,SAAQ,2CAAuB;IAcrB;IAXD,MAAM,CAAiB;IACvB,aAAa,CAAI;IAC1B,YAAY,CAAM;IAClB,iDAAiD;IACjD,SAAS,CAAsB;IAC/B,SAAS,GAA8B,KAAK,CAAC;IAE7C,YACE,MAAS,EACT,KAAqB,EACrB,YAAe,EACP,EAAgC;QAExC,KAAK,CAAC,MAAM,CAAC,CAAC;QAFN,OAAE,GAAF,EAAE,CAA8B;QAGxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAgC;QACzC,6FAA6F;QAC7F,wEAAwE;QACxE,EAAE;QACF,+FAA+F;QAC/F,2GAA2G;QAC3G,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3G,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzD,qGAAqG;gBACrG,qEAAqE;gBACrE,oGAAoG;gBACpG,yHAAyH;gBACzH,8GAA8G;gBAC9G,sDAAsD;gBACtD,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACrC,6EAA6E;gBAC7E,OAAO,IAAI,CAAC,GAAG,CAAC;YAClB,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,iHAAiH;IACjH,IAAI,GAAG;QACL,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACpB,wFAAwF;QACxF,kDAAkD;QAClD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3C,mHAAmH;QACnH,mHAAmH;QACnH,oCAAoC;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,MAAuB,CAAC,CAAC;YAClD,IAAI,CAAC,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnD,6EAA6E;gBAC7E,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,2BAA2B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAA6B,CAAC;IACnD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAA,mBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACV,0EAA0E;QAC1E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,aAAa;QACX,+FAA+F;QAC/F,0FAA0F;QAC1F,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAA,iCAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,eAAe,CAAC,QAAa;QAC3B,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;IACnC,CAAC;IAED,CAAC,uBAAS,CAAC,GAAG,SAAqB,CAAC;IAE5B,6BAA6B;QACnC,yEAAyE;QACzE,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe;YAAE,OAAO;QAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;CACF;AA5HD,8CA4HC;AAED,gFAAgF;AAChF,SAAgB,eAAe,CAAC,kBAAuB;IACrD,OAAO,kBAAkB,YAAY,iBAAiB,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"ReactiveField.js","names":["#field","#reactiveHint","#loadPromise","#isLoaded","#isCached"],"sources":["../../src/relations/ReactiveField.ts"],"sourcesContent":["import { type Entity } from \"src/Entity.ts\";\nimport { getEmInternalApi } from \"src/EntityManager.ts\";\nimport { type PrimitiveField, getMetadata } from \"src/EntityMetadata.ts\";\nimport { getField, isFieldSet, setField } from \"src/fields.ts\";\nimport { isLoaded } from \"src/index.ts\";\nimport type { IsLoadedCachable } from \"src/loading/IsLoadedCache.ts\";\nimport { lazyField } from \"src/newEntity.ts\";\nimport { type Reacted, type ReactiveHint, convertToLoadHint } from \"src/reactivity/reactiveHints.ts\";\nimport { AbstractPropertyImpl } from \"src/relations/AbstractPropertyImpl.ts\";\nimport { PropertyT } from \"src/relations/PropertySymbols.ts\";\n\n/**\n * A `ReactiveField` is a value that is derived from other entities/values,\n * similar to a `Property`, but it is also persisted in the database.\n *\n * This allows callers (or SQL queries) to access the value without first calling\n * `await load()` on the property.\n *\n * So, unlike `Property`, `.get` is always available; if the property is unloaded,\n * then `.get` will return the last-calculated value, but if the property is loaded,\n * then it will go ahead and invoke function to calculate the latest value (i.e. so\n * that you can observe the latest & greatest value w/o waiting for `em.flush` to\n * re-calc the value while persisting to the database.\n */\nexport interface ReactiveField<T extends Entity, V> {\n [PropertyT]: T;\n isLoaded: boolean;\n isSet: boolean;\n\n /**\n * Calculates the latest derived value.\n *\n * Users are not required to call this method explicitly, as Joist will keep the\n * persisted value automatically in-sync, but if for some reason (code changes,\n * bug fixes, etc.) you need to trigger an explicit recalc, you can call `.load()`,\n * any dependent data will be loaded from the database, and the latest value\n * returned, and then later stored to the database on `em.flush`.\n *\n * Note that persisted properties used in load hints, i.e. `em.populate`s that\n * accidentally list reactive fields (instead of just relations) will not have\n * `.load()` invoked, and will instead use the previously-calculated value.\n * The rationale is that one persisted property should be able to declare its\n * dependency on another persisted property (for its reactive field-level hint)\n * without causing that dependent property's populate hint to itself be loaded.\n */\n load(opts?: { forceReload?: boolean }): Promise<V>;\n\n /** If loaded, returns the latest derived value, or if unload returns the previously-calculated value. */\n get: V;\n\n /**\n * Returns the as-of-last-flush previously-calculated value.\n *\n * This is useful if you have to purposefully avoid using the lambda to calc the latest value,\n * i.e. if you're in a test and want to watch a calculated value change from some dummy value\n * to the new derived value.\n * */\n fieldValue: V;\n}\n\n/**\n * Creates a calculated derived value from a load hint + lambda.\n *\n * The property can be accessed by default as a promise, with `someProperty.load()`.\n *\n * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,\n * with `someProperty.get`.\n */\nexport function hasReactiveField<T extends Entity, const H extends ReactiveHint<T>, V>(\n hint: H,\n fn: (entity: Reacted<T, H>) => V,\n): ReactiveField<T, V> {\n return lazyField((entity: T, fieldName) => {\n const field = getMetadata(entity).allFields[fieldName] as PrimitiveField;\n return new ReactiveFieldImpl(entity, field, hint, fn);\n });\n}\n\nexport class ReactiveFieldImpl<T extends Entity, H extends ReactiveHint<T>, V>\n extends AbstractPropertyImpl<T>\n implements ReactiveField<T, V>, IsLoadedCachable\n{\n readonly #field: PrimitiveField;\n readonly #reactiveHint: H;\n #loadPromise: any;\n // Initially undefined, then cached as true/false\n #isLoaded: boolean | undefined;\n #isCached: boolean | \"factory-value\" = false;\n\n constructor(\n entity: T,\n field: PrimitiveField,\n reactiveHint: H,\n private fn: (entity: Reacted<T, H>) => V,\n ) {\n super(entity);\n this.#field = field;\n this.#reactiveHint = reactiveHint;\n }\n\n async load(opts?: { forceReload?: boolean }): Promise<V> {\n // Even without `forceReload=true`, any explicit calls to `.load()` ==> ensure a fresh value,\n // because `.get` may have cached the stale/previously-calculated value.\n //\n // (Currently `em.populate` / `populateDataLoader` has a hack/escape hatch that ignores calling\n // RF.load(), to avoid pulling in the RF subgraph over using the materialized value, which ideally would be\n // replaced with us learning to do the maybeDirty approach.)\n if (!this.isLoaded || opts?.forceReload) {\n return (this.#loadPromise ??= this.entity.em.populate(this.entity, { hint: this.loadHint } as any).then(() => {\n this.#loadPromise = undefined;\n this.#isLoaded = true;\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n // Wait and reset `#isCached` until inside this `then`, so that we don't have a race condition where:\n // - two relations (us and someone else) are both passed to `em.calc`\n // - their load hint is simpler, so their promises resolves first, and their `.get` calls our `.get`\n // - our `.get` sees we're not loaded, but calls `fieldValue` for the existing value, and dutifully sets `#isCached=true`\n // - finally our promise runs, and if we didn't immediately set `#isCached=false` here, our `.get` would again\n // early return and keep using the stale fieldValue.\n this.resetCacheUnlessFactoryPinned();\n // Go through `this.get` so that `setField` is called to set our latest value\n return this.get;\n }));\n }\n this.resetCacheUnlessFactoryPinned();\n return this.get;\n }\n\n /** Returns either the latest calculated value (if loaded) or the previously-calculated value (if not loaded). */\n get get(): V {\n const { fn } = this;\n // Some ReactiveFields can have surprisingly expensive calculations, especially in loops\n // or those that invoke loops, so cache the value.\n if (this.#isCached) return this.fieldValue;\n // isLoaded will watch for our previously-loaded subgraph being mutated (isLoaded is locally cached but hooked into\n // our IsLoadedCache cache that is immediately invalidated on write-path), and if we've drifted to not-loaded, it's\n // better to fail and tell the user.\n if (this.isLoaded) {\n const newValue = fn(this.entity as Reacted<T, H>);\n if (!getEmInternalApi(this.entity.em).isValidating) {\n // setField will immediately invalidate downstream #isLoaded/#isCached values\n setField(this.entity, this.fieldName, newValue);\n this.#isCached = true;\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n }\n return newValue;\n } else if (this.isSet) {\n this.#isCached = true;\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n return this.fieldValue;\n } else {\n throw new Error(`${this.fieldName} has not been derived yet`);\n }\n }\n\n get fieldName(): keyof T & string {\n return this.#field.fieldName as keyof T & string;\n }\n\n get reactiveHint(): H {\n return this.#reactiveHint;\n }\n\n get fieldValue(): V {\n return getField(this.entity, this.fieldName);\n }\n\n get isSet() {\n return isFieldSet(this.entity, this.fieldName);\n }\n\n get isLoaded() {\n // Skip an expensive isLoaded(subgraph) call if no mutations have happened\n if (this.#isLoaded !== undefined) return this.#isLoaded;\n this.#isLoaded = isLoaded(this.entity, this.loadHint);\n getEmInternalApi(this.entity.em).isLoadedCache.add(this);\n return this.#isLoaded;\n }\n\n resetIsLoaded(): void {\n // Even though we reset this on every mutation, `isLoaded` will still realize when the subgraph\n // is still loaded (as it did before we added caching), so users won't see false positive.\n this.#isLoaded = undefined;\n this.resetCacheUnlessFactoryPinned();\n }\n\n get loadHint(): any {\n const meta = getMetadata(this.entity);\n return (meta.config.__data.cachedReactiveLoadHints[this.fieldName] ??= convertToLoadHint(meta, this.reactiveHint));\n }\n\n setFactoryValue(newValue: any): void {\n setField(this.entity, this.fieldName, newValue);\n this.#isCached = \"factory-value\";\n }\n\n [PropertyT] = undefined as any as T;\n\n private resetCacheUnlessFactoryPinned(): void {\n // If factories asked for a hard-coded value, don't reset the cached flag\n if (this.#isCached === \"factory-value\") return;\n this.#isCached = false;\n }\n}\n\n/** Type guard utility for determining if an entity field is a ReactiveField. */\nexport function isReactiveField(maybeReactiveField: any): maybeReactiveField is ReactiveField<any, any> {\n return maybeReactiveField instanceof ReactiveFieldImpl;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoEA,SAAgB,iBACd,MACA,IACqB;CACrB,OAAO,WAAW,QAAW,cAAc;EACzC,MAAM,QAAQ,YAAY,MAAM,CAAC,CAAC,UAAU;EAC5C,OAAO,IAAI,kBAAkB,QAAQ,OAAO,MAAM,EAAE;CACtD,CAAC;AACH;AAEA,IAAa,oBAAb,cACU,qBAEV;CAYY;CAXV;CACA;CACA;CAEA;CACA,YAAuC;CAEvC,YACE,QACA,OACA,cACA,IACA;EACA,MAAM,MAAM;EAFJ,KAAA,KAAA;EAGR,KAAKA,SAAS;EACd,KAAKC,gBAAgB;CACvB;CAEA,MAAM,KAAK,MAA8C;EAOvD,IAAI,CAAC,KAAK,YAAY,MAAM,aAC1B,OAAQ,KAAKC,iBAAiB,KAAK,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAQ,CAAC,CAAC,WAAW;GAC5G,KAAKA,eAAe,KAAA;GACpB,KAAKC,YAAY;GACjB,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;GAOvD,KAAK,8BAA8B;GAEnC,OAAO,KAAK;EACd,CAAC;EAEH,KAAK,8BAA8B;EACnC,OAAO,KAAK;CACd;;CAGA,IAAI,MAAS;EACX,MAAM,EAAE,OAAO;EAGf,IAAI,KAAKC,WAAW,OAAO,KAAK;EAIhC,IAAI,KAAK,UAAU;GACjB,MAAM,WAAW,GAAG,KAAK,MAAuB;GAChD,IAAI,CAAC,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc;IAElD,SAAS,KAAK,QAAQ,KAAK,WAAW,QAAQ;IAC9C,KAAKA,YAAY;IACjB,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;GACzD;GACA,OAAO;EACT,OAAO,IAAI,KAAK,OAAO;GACrB,KAAKA,YAAY;GACjB,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;GACvD,OAAO,KAAK;EACd,OACE,MAAM,IAAI,MAAM,GAAG,KAAK,UAAU,0BAA0B;CAEhE;CAEA,IAAI,YAA8B;EAChC,OAAO,KAAKJ,OAAO;CACrB;CAEA,IAAI,eAAkB;EACpB,OAAO,KAAKC;CACd;CAEA,IAAI,aAAgB;EAClB,OAAO,SAAS,KAAK,QAAQ,KAAK,SAAS;CAC7C;CAEA,IAAI,QAAQ;EACV,OAAO,WAAW,KAAK,QAAQ,KAAK,SAAS;CAC/C;CAEA,IAAI,WAAW;EAEb,IAAI,KAAKE,cAAc,KAAA,GAAW,OAAO,KAAKA;EAC9C,KAAKA,YAAY,SAAS,KAAK,QAAQ,KAAK,QAAQ;EACpD,iBAAiB,KAAK,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;EACvD,OAAO,KAAKA;CACd;CAEA,gBAAsB;EAGpB,KAAKA,YAAY,KAAA;EACjB,KAAK,8BAA8B;CACrC;CAEA,IAAI,WAAgB;EAClB,MAAM,OAAO,YAAY,KAAK,MAAM;EACpC,OAAQ,KAAK,OAAO,OAAO,wBAAwB,KAAK,eAAe,kBAAkB,MAAM,KAAK,YAAY;CAClH;CAEA,gBAAgB,UAAqB;EACnC,SAAS,KAAK,QAAQ,KAAK,WAAW,QAAQ;EAC9C,KAAKC,YAAY;CACnB;CAEA,CAAC,aAAa,KAAA;CAEd,gCAA8C;EAE5C,IAAI,KAAKA,cAAc,iBAAiB;EACxC,KAAKA,YAAY;CACnB;AACF;;AAGA,SAAgB,gBAAgB,oBAAwE;CACtG,OAAO,8BAA8B;AACvC"}
|