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,201 @@
|
|
|
1
|
+
import { AbstractRelationImpl } from "../relations/AbstractRelationImpl.js";
|
|
2
|
+
import { isProperty } from "../relations/hasProperty.js";
|
|
3
|
+
import "../relations/index.js";
|
|
4
|
+
import { getMetadata } from "../EntityMetadata.js";
|
|
5
|
+
import { lensDataLoader } from "../dataloaders/lensDataLoader.js";
|
|
6
|
+
import { appendStack } from "../EntityManager.js";
|
|
7
|
+
import { isEntity } from "../Entity.js";
|
|
8
|
+
//#region src/loading/loadLens.ts
|
|
9
|
+
/**
|
|
10
|
+
* Allows declaratively loading/traversing several layers of references at once.
|
|
11
|
+
*
|
|
12
|
+
* I.e.:
|
|
13
|
+
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const publisher = await book.load(b => b.author.publisher);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
async function loadLens(start, fn, opts = {}) {
|
|
19
|
+
return loadLensPath(start, collectPaths(fn), opts);
|
|
20
|
+
}
|
|
21
|
+
/** Loads a precomputed lens path, avoiding repeated lambda/proxy evaluation for long-lived relation declarations. */
|
|
22
|
+
function loadLensPath(start, paths, opts = {}) {
|
|
23
|
+
const meta = Array.isArray(start) ? isEntity(start[0]) && getMetadata(start[0]) : isEntity(start) && getMetadata(start);
|
|
24
|
+
if (!meta) return [];
|
|
25
|
+
if (!opts.forceReload && isLensLoadedPath(start, paths)) return getLensPath(meta, start, paths);
|
|
26
|
+
return loadLensPathAsync(meta, start, paths, opts);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Loads an unloaded lens path, keeping the already-loaded shortcut in `loadLensPath` synchronous.
|
|
30
|
+
*
|
|
31
|
+
* I.e. this avoids adding an extra promise turn for already-loaded paths during concurrent hooks.
|
|
32
|
+
*/
|
|
33
|
+
async function loadLensPathAsync(meta, start, paths, opts) {
|
|
34
|
+
if (opts.sql) {
|
|
35
|
+
if (!isAllSqlPaths(meta, paths)) throw new Error("Cannot use loadLens opts.sql with non-SQL paths");
|
|
36
|
+
if (paths.length > 1) {
|
|
37
|
+
if (isReadOnlyArray(start)) {
|
|
38
|
+
const em = start[0].em;
|
|
39
|
+
return await lensDataLoader(em, meta.cstr, true, paths).loadMany(start.map((e) => e.idTagged)).catch(function loadLens(err) {
|
|
40
|
+
throw appendStack(err, /* @__PURE__ */ new Error());
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
const em = start.em;
|
|
44
|
+
return await lensDataLoader(em, meta.cstr, false, paths).load(start.idTagged).catch(function loadLens(err) {
|
|
45
|
+
throw appendStack(err, /* @__PURE__ */ new Error());
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
let current = start;
|
|
51
|
+
let currentMeta = meta;
|
|
52
|
+
let seenSoftDeleted = false;
|
|
53
|
+
for (const path of paths) {
|
|
54
|
+
const field = currentMeta?.allFields[path];
|
|
55
|
+
if (Array.isArray(current)) {
|
|
56
|
+
current = (await Promise.all(current.map((c) => maybeLoad(c, path, opts)))).flat();
|
|
57
|
+
current = [...new Set(current.filter((c) => c !== void 0 && !c.isSoftDeletedEntity))];
|
|
58
|
+
if (current.length === 0) return current;
|
|
59
|
+
} else if (current) {
|
|
60
|
+
current = await maybeLoad(current, path, opts);
|
|
61
|
+
seenSoftDeleted ||= current?.isSoftDeletedEntity;
|
|
62
|
+
if (Array.isArray(current) && seenSoftDeleted) return [];
|
|
63
|
+
} else if (field?.kind === "o2m" || field?.kind === "m2m") return [];
|
|
64
|
+
currentMeta = nextMeta(current, field);
|
|
65
|
+
}
|
|
66
|
+
return current;
|
|
67
|
+
}
|
|
68
|
+
function isAllSqlPaths(meta, paths) {
|
|
69
|
+
for (let i = 0, current = meta; i < paths.length; i++) {
|
|
70
|
+
const next = current.allFields[paths[i]];
|
|
71
|
+
if (next && (next.kind === "m2o" || next.kind === "m2m" || next.kind === "o2m" || next.kind === "o2o")) current = next.otherMetadata();
|
|
72
|
+
else return false;
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
function mapPathsToTarget(source, paths) {
|
|
77
|
+
let other = source;
|
|
78
|
+
let fields = [];
|
|
79
|
+
for (let i = 0; i < paths.length; i++) {
|
|
80
|
+
const next = other.allFields[paths[i]];
|
|
81
|
+
if (next && (next.kind === "m2o" || next.kind === "m2m" || next.kind === "o2m" || next.kind === "o2o")) {
|
|
82
|
+
other = next.otherMetadata();
|
|
83
|
+
fields.push([other, other.allFields[next.otherFieldName]]);
|
|
84
|
+
} else throw new Error("Either not an all-SQL path or not supported yet");
|
|
85
|
+
}
|
|
86
|
+
return [other, fields.reverse()];
|
|
87
|
+
}
|
|
88
|
+
function maybeLoad(object, path, opts) {
|
|
89
|
+
if (object === void 0 || object === null) return;
|
|
90
|
+
const value = object[path];
|
|
91
|
+
if (value && typeof value === "object" && "load" in value) return value.load(opts);
|
|
92
|
+
else if (value && typeof value === "function") return value.apply(object);
|
|
93
|
+
else return value;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The synchronous version of `loadLens`.
|
|
97
|
+
*
|
|
98
|
+
* This assumes you've first evaluated the lens with `loadLens` and now can access it synchronously.
|
|
99
|
+
*/
|
|
100
|
+
function getLens(startMeta, start, fn) {
|
|
101
|
+
return getLensPath(startMeta, start, collectPaths(fn));
|
|
102
|
+
}
|
|
103
|
+
/** Synchronously traverses a precomputed lens path. */
|
|
104
|
+
function getLensPath(startMeta, start, paths) {
|
|
105
|
+
let currentMeta = startMeta;
|
|
106
|
+
let current = start;
|
|
107
|
+
let seenSoftDeleted = false;
|
|
108
|
+
for (const path of paths) {
|
|
109
|
+
const field = currentMeta?.allFields[path];
|
|
110
|
+
if (Array.isArray(current)) {
|
|
111
|
+
const next = /* @__PURE__ */ new Set();
|
|
112
|
+
for (const c of current) {
|
|
113
|
+
const value = maybeGet(c, path);
|
|
114
|
+
if (Array.isArray(value)) for (const v of value) maybeAdd(next, v);
|
|
115
|
+
else maybeAdd(next, value);
|
|
116
|
+
}
|
|
117
|
+
current = [...next];
|
|
118
|
+
} else if (current) {
|
|
119
|
+
current = maybeGet(current, path);
|
|
120
|
+
seenSoftDeleted ||= current?.isSoftDeletedEntity;
|
|
121
|
+
if (Array.isArray(current) && seenSoftDeleted) return [];
|
|
122
|
+
} else if (field?.kind === "o2m" || field?.kind === "m2m") return [];
|
|
123
|
+
currentMeta = nextMeta(current, field);
|
|
124
|
+
}
|
|
125
|
+
return current;
|
|
126
|
+
}
|
|
127
|
+
/** Returns the next runtime metadata, preserving subtype-specific fields after base-typed traversals. */
|
|
128
|
+
function nextMeta(current, field) {
|
|
129
|
+
const entity = Array.isArray(current) ? current[0] : current;
|
|
130
|
+
if (isEntity(entity)) return getMetadata(entity);
|
|
131
|
+
return field && "otherMetadata" in field ? field.otherMetadata() : void 0;
|
|
132
|
+
}
|
|
133
|
+
function maybeAdd(set, value) {
|
|
134
|
+
if (value !== void 0 && !value.isSoftDeletedEntity) set.add(value);
|
|
135
|
+
}
|
|
136
|
+
/** Returns whether a lens is loaded; primarily for deeply loaded instances in tests. */
|
|
137
|
+
function isLensLoaded(start, fn) {
|
|
138
|
+
return isLensLoadedPath(start, collectPaths(fn));
|
|
139
|
+
}
|
|
140
|
+
/** Returns whether a precomputed lens path is loaded; primarily for deeply loaded instances in tests. */
|
|
141
|
+
function isLensLoadedPath(start, paths) {
|
|
142
|
+
let current = start;
|
|
143
|
+
let seenSoftDeleted = false;
|
|
144
|
+
for (const path of paths) if (Array.isArray(current)) {
|
|
145
|
+
const next = /* @__PURE__ */ new Set();
|
|
146
|
+
for (const c of current) {
|
|
147
|
+
if (isNotLoaded(c, path)) return false;
|
|
148
|
+
const value = maybeGet(c, path);
|
|
149
|
+
if (Array.isArray(value)) for (const v of value) maybeAdd(next, v);
|
|
150
|
+
else maybeAdd(next, value);
|
|
151
|
+
}
|
|
152
|
+
current = [...next];
|
|
153
|
+
} else {
|
|
154
|
+
if (isNotLoaded(current, path)) return false;
|
|
155
|
+
current = maybeGet(current, path);
|
|
156
|
+
seenSoftDeleted ||= current?.isSoftDeletedEntity;
|
|
157
|
+
if (Array.isArray(current) && seenSoftDeleted) return true;
|
|
158
|
+
}
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
/** Accepts a lens like `a => a.books.reviews` and returns a hint like `{ books: { reviews: {} } }`. */
|
|
162
|
+
function lensToLoadHint(fn) {
|
|
163
|
+
return lensPathToLoadHint(collectPaths(fn));
|
|
164
|
+
}
|
|
165
|
+
/** Accepts lens paths like `[books, reviews]` and returns a hint like `{ books: { reviews: {} } }`. */
|
|
166
|
+
function lensPathToLoadHint(paths) {
|
|
167
|
+
let current = {};
|
|
168
|
+
for (let i = paths.length - 1; i >= 0; i--) current = { [paths[i]]: current };
|
|
169
|
+
return current;
|
|
170
|
+
}
|
|
171
|
+
/** Accepts a lens like `a => a.books.reviews` and returns the paths like `[books, reviews]`. */
|
|
172
|
+
function lensToPath(fn) {
|
|
173
|
+
return [...collectPaths(fn)];
|
|
174
|
+
}
|
|
175
|
+
function isNotLoaded(object, path) {
|
|
176
|
+
const value = object && object[path];
|
|
177
|
+
if (value instanceof AbstractRelationImpl || isProperty(value)) return !value.isLoaded;
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
function maybeGet(object, path) {
|
|
181
|
+
if (object === void 0 || object === null) return;
|
|
182
|
+
const value = object[path];
|
|
183
|
+
if (typeof value === "object" && "get" in value) return value.get;
|
|
184
|
+
else if (value && typeof value === "function") return value.apply(object);
|
|
185
|
+
else return value;
|
|
186
|
+
}
|
|
187
|
+
function collectPaths(fn) {
|
|
188
|
+
const paths = [];
|
|
189
|
+
fn(new Proxy({}, { get(_, property, receiver) {
|
|
190
|
+
paths.push(String(property));
|
|
191
|
+
return receiver;
|
|
192
|
+
} }));
|
|
193
|
+
return paths;
|
|
194
|
+
}
|
|
195
|
+
function isReadOnlyArray(value) {
|
|
196
|
+
return Array.isArray(value);
|
|
197
|
+
}
|
|
198
|
+
//#endregion
|
|
199
|
+
export { getLens, getLensPath, isAllSqlPaths, isLensLoaded, isLensLoadedPath, lensPathToLoadHint, lensToLoadHint, lensToPath, loadLens, loadLensPath, mapPathsToTarget };
|
|
200
|
+
|
|
201
|
+
//# sourceMappingURL=loadLens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadLens.js","names":[],"sources":["../../src/loading/loadLens.ts"],"sourcesContent":["import { lensDataLoader } from \"src/dataloaders/lensDataLoader.ts\";\nimport { type Entity, isEntity } from \"src/Entity.ts\";\nimport { appendStack } from \"src/EntityManager.ts\";\nimport {\n type EntityMetadata,\n type Field,\n type ManyToManyField,\n type ManyToOneField,\n type OneToManyField,\n type OneToOneField,\n type PrimitiveField,\n getMetadata,\n} from \"src/EntityMetadata.ts\";\nimport type { LoadHint } from \"src/loading/loadHints.ts\";\nimport { AbstractRelationImpl } from \"src/relations/AbstractRelationImpl.ts\";\nimport { isProperty } from \"src/relations/index.ts\";\n\n/** Generically matches on a Reference/Collection's load method. */\ntype LoadLike<U> = { load(): Promise<U> };\n\n/** Generically matches a property or zero-arg method that returns a promise. */\ntype PromiseFnLike<U> = () => PromiseLike<U>;\n\n/**\n * Given a parent type `R` (that is our current lens \"return type\", i.e. `Author` or `Author | undefined` or `Author[]`),\n * and the type `V` of the \"next step\" of the traversal (i.e. itself `Book` or `Book | undefined` or `Book[]`, depending\n * on the relation being traversed), returns `V` mapped to \"the right format\" based on `R`.\n *\n * I.e.:\n *\n * - `Author | undefined` that navigates a `Book` will become `Book | undefined`\n * - `Author` that navigates a `Book | undefined` will also become `Book | undefined`\n * - `Author[]` that navigates a `Book | undefined` will become a `Book[]`\n * - `Author | undefined` that navigates a `Book[]` will become a `Book[]`\n */\n// The extra `[]` around `V` and `ReadonlyArray<any>` are to keep the type as `Array<Foo | undefined>`\n// instead of `Foo[] | undefined[]`.\n// When `P extends ReadonlyArray, i.e. we're in flatMap mode, we're also in filter undefined mode.\ntype MaybeArray<R, V> =\n R extends ReadonlyArray<any>\n ? [V] extends [ReadonlyArray<infer U>]\n ? DropUndefined<U>[]\n : DropUndefined<V>[]\n : V extends ReadonlyArray<any>\n ? V\n : [R] extends [undefined]\n ? V | undefined\n : V;\n\n// ([R] extends [undefined]) ? (V) : V;\n\n/** Given a type T that we come across in the path, de-array it to continue our flatMap-ish semantics. */\ntype MaybeDropArray<T> = T extends ReadonlyArray<infer U> ? U : T;\n\ntype DropUndefined<T> = Exclude<T, undefined>;\n\n/**\n * A type for declaratively walking the object graph.\n *\n * This is not technically a Lens that can `get/set`, but the idea is generally the same.\n *\n * `T` is the type we're on, i.e. when `T = Author` we can do `.firstName` or `.lastName.\n * `R` is either a `T` or `T[]` or `T | undefined` and just captures whether we've hit a\n * list at any point in the lens navigation path.\n */\nexport type Lens<T, R = T> = {\n [P in keyof T]: T[P] extends LoadLike<infer U>\n ? Lens<MaybeDropArray<DropUndefined<U>>, MaybeArray<R, U>>\n : T[P] extends PromiseFnLike<infer U>\n ? Lens<MaybeDropArray<DropUndefined<U>>, MaybeArray<R, U>>\n : Lens<MaybeDropArray<DropUndefined<T[P]>>, MaybeArray<R, T[P]>>;\n};\n\n/**\n * Allows declaratively loading/traversing several layers of references at once.\n *\n * I.e.:\n *\n * ```typescript\n * const publisher = await book.load(b => b.author.publisher);\n * ```\n */\n// For some reason accepting Lens<this, this> does not work when called from within the entity\n// subclass itself, so we use the codegen hammer in our subclass to force the right Lens type\n// in a .load stub that just calls us for the implementation.\nexport async function loadLens<T extends Entity, U, V>(\n start: T | readonly T[],\n fn: (lens: Lens<T>) => Lens<U, V>,\n opts: { forceReload?: boolean; sql?: boolean } = {},\n): Promise<V> {\n return loadLensPath(start, collectPaths(fn), opts);\n}\n\n/** Loads a precomputed lens path, avoiding repeated lambda/proxy evaluation for long-lived relation declarations. */\nexport function loadLensPath<T extends Entity, V>(\n start: T | readonly T[],\n paths: string[],\n opts: { forceReload?: boolean; sql?: boolean } = {},\n): Promise<V> {\n // Probe for the meta, so we can track when/if it needs to flip to a collection (even after hitting undefined)\n const meta = Array.isArray(start)\n ? isEntity(start[0]) && getMetadata(start[0])\n : isEntity(start) && getMetadata(start);\n // This should only happen for `start=[]`, which we know should return `[]`\n if (!meta) return [] as unknown as Promise<V>;\n\n // If we're already loaded, just return\n if (!opts.forceReload && isLensLoadedPath(start, paths)) {\n // Keep this synchronous to avoid adding a promise turn; this preserves nuanced hook timing in production code.\n return getLensPath(meta, start, paths) as Promise<V>;\n }\n\n return loadLensPathAsync(meta, start, paths, opts);\n}\n\n/**\n * Loads an unloaded lens path, keeping the already-loaded shortcut in `loadLensPath` synchronous.\n *\n * I.e. this avoids adding an extra promise turn for already-loaded paths during concurrent hooks.\n */\nasync function loadLensPathAsync<T extends Entity, V>(\n meta: EntityMetadata,\n start: T | readonly T[],\n paths: string[],\n opts: { forceReload?: boolean; sql?: boolean },\n): Promise<V> {\n // See if we can load this via SQL\n if (opts.sql) {\n // Are all paths SQL query-able?\n if (!isAllSqlPaths(meta, paths)) {\n throw new Error(\"Cannot use loadLens opts.sql with non-SQL paths\");\n }\n // If there is only 1 path, don't both with the fancy join\n if (paths.length > 1) {\n // TODO We can only do this is _none_ of the paths are loaded, otherwise we'll miss WIP mutations\n if (isReadOnlyArray(start)) {\n const em = start[0].em;\n return (await lensDataLoader(em, meta.cstr, true, paths)\n .loadMany(start.map((e) => e.idTagged))\n .catch(function loadLens(err) {\n throw appendStack(err, new Error());\n })) as V;\n } else {\n const em = start.em;\n return (await lensDataLoader(em, meta.cstr, false, paths)\n .load(start.idTagged)\n .catch(function loadLens(err) {\n throw appendStack(err, new Error());\n })) as V;\n }\n }\n }\n\n // This could be `Entity | Entity[] | undefined` as we keep walking\n let current: any = start;\n let currentMeta: EntityMetadata | undefined = meta;\n let seenSoftDeleted = false;\n // Now evaluate each step of the path\n for (const path of paths) {\n const field = currentMeta?.allFields[path] as\n | ManyToOneField\n | ManyToManyField\n | OneToManyField\n | OneToOneField\n | PrimitiveField\n | undefined;\n if (Array.isArray(current)) {\n current = (await Promise.all(current.map((c) => maybeLoad(c, path, opts)))).flat();\n current = [...new Set(current.filter((c: any) => c !== undefined && !c.isSoftDeletedEntity))];\n // As soon as we hit `current=[]`, we can early return (...`current=undefined` cannot b/c the next path might flip to a list)\n if (current.length === 0) return current!;\n } else if (current) {\n current = await maybeLoad(current, path, opts);\n seenSoftDeleted ||= (current as any)?.isSoftDeletedEntity;\n // If we had been traversing m2o -> m2o (i.e. book -> author) and just hit an o2m/m2m (i.e.\n // book -> author -> comments), and any of our prior m2os like `author` had been soft deleted,\n // just filter everything out.\n //\n // Otherwise, we keep `book -> author`, even if author is soft-deleted, b/c it changes the return\n // type from \"author\" to \"author | undefined\".\n if (Array.isArray(current) && seenSoftDeleted) {\n return [] as any;\n }\n } else {\n // current is undefined; see if we should flip to a list ... which means we can early return\n if (field?.kind === \"o2m\" || field?.kind === \"m2m\") return [] as any;\n }\n currentMeta = nextMeta(current, field);\n }\n return current!;\n}\n\nexport function isAllSqlPaths(meta: EntityMetadata, paths: string[]): boolean {\n for (let i = 0, current = meta; i < paths.length; i++) {\n const next = current.allFields[paths[i]];\n if (next && (next.kind === \"m2o\" || next.kind === \"m2m\" || next.kind === \"o2m\" || next.kind === \"o2o\")) {\n current = next.otherMetadata();\n } else {\n return false;\n }\n }\n return true;\n}\n\n// Given BookReview+[book, author] return [Author, books+bookReviews]\nexport function mapPathsToTarget(source: EntityMetadata, paths: string[]): [EntityMetadata, [EntityMetadata, Field][]] {\n let other = source;\n let fields: [EntityMetadata, Field][] = [];\n for (let i = 0; i < paths.length; i++) {\n const next = other.allFields[paths[i]];\n if (next && (next.kind === \"m2o\" || next.kind === \"m2m\" || next.kind === \"o2m\" || next.kind === \"o2o\")) {\n other = next.otherMetadata();\n fields.push([other, other.allFields[next.otherFieldName]]);\n } else {\n throw new Error(\"Either not an all-SQL path or not supported yet\");\n }\n }\n return [other, fields.reverse()];\n}\n\nfunction maybeLoad(object: any, path: string, opts: { forceReload?: boolean }): unknown {\n if (object === undefined || object === null) {\n return undefined;\n }\n const value = object[path];\n if (value && typeof value === \"object\" && \"load\" in value) {\n return value.load(opts);\n } else if (value && typeof value === \"function\") {\n return value.apply(object);\n } else {\n return value;\n }\n}\n\n/**\n * The synchronous version of `loadLens`.\n *\n * This assumes you've first evaluated the lens with `loadLens` and now can access it synchronously.\n */\nexport function getLens<T, U, V>(\n startMeta: EntityMetadata,\n start: T | readonly T[],\n fn: (lens: Lens<T>) => Lens<U, V>,\n): V {\n return getLensPath(startMeta, start, collectPaths(fn));\n}\n\n/** Synchronously traverses a precomputed lens path. */\nexport function getLensPath<T, V>(startMeta: EntityMetadata, start: T | readonly T[], paths: string[]): V {\n let currentMeta: EntityMetadata | undefined = startMeta;\n let current: any = start;\n let seenSoftDeleted = false;\n // Now evaluate each step of the path\n for (const path of paths) {\n // We might navigate into properties, at which point we won't know the currentMeta\n const field = currentMeta?.allFields[path] as\n | ManyToOneField\n | ManyToManyField\n | OneToManyField\n | OneToOneField\n | PrimitiveField\n | undefined;\n if (Array.isArray(current)) {\n // Use a set to dedup as we go\n const next = new Set();\n // This can be a hot path, so avoid `map` and `flat` and just loop\n for (const c of current) {\n const value = maybeGet(c, path);\n if (Array.isArray(value)) for (const v of value) maybeAdd(next, v);\n else maybeAdd(next, value);\n }\n current = [...next];\n } else if (current) {\n current = maybeGet(current, path);\n seenSoftDeleted ||= (current as any)?.isSoftDeletedEntity;\n // If we had been traversing m2o -> m2o and just hit an o2m/m2m, and any of our\n // prior m2os had been soft-deleted, just filter everything out.\n if (Array.isArray(current) && seenSoftDeleted) {\n return [] as any;\n }\n } else {\n // current is undefined; see if we should flip to a list ... which means we can early return\n if (field?.kind === \"o2m\" || field?.kind === \"m2m\") return [] as any;\n }\n currentMeta = nextMeta(current, field);\n }\n return current!;\n}\n\n/** Returns the next runtime metadata, preserving subtype-specific fields after base-typed traversals. */\nfunction nextMeta(current: unknown, field: Field | undefined): EntityMetadata | undefined {\n const entity = Array.isArray(current) ? current[0] : current;\n if (isEntity(entity)) return getMetadata(entity);\n return field && \"otherMetadata\" in field ? field.otherMetadata() : undefined;\n}\n\nfunction maybeAdd(set: Set<any>, value: any) {\n if (value !== undefined && !value.isSoftDeletedEntity) set.add(value);\n}\n\n/** Returns whether a lens is loaded; primarily for deeply loaded instances in tests. */\nexport function isLensLoaded<T, U, V>(start: T | readonly T[], fn: (lens: Lens<T>) => Lens<U, V>): boolean {\n return isLensLoadedPath(start, collectPaths(fn));\n}\n\n/** Returns whether a precomputed lens path is loaded; primarily for deeply loaded instances in tests. */\nexport function isLensLoadedPath<T>(start: T | readonly T[], paths: string[]): boolean {\n // This is a huge copy/paste of `getLens` but we check `isNotLoaded` and early return\n // as soon as we find any not-loaded relation\n let current: any = start;\n let seenSoftDeleted = false;\n // Now evaluate each step of the path\n for (const path of paths) {\n if (Array.isArray(current)) {\n // Use a set to dedup as we go\n const next = new Set();\n for (const c of current) {\n if (isNotLoaded(c, path)) return false;\n const value = maybeGet(c, path);\n if (Array.isArray(value)) for (const v of value) maybeAdd(next, v);\n else maybeAdd(next, value);\n }\n current = [...next];\n } else {\n if (isNotLoaded(current, path)) return false;\n current = maybeGet(current, path);\n seenSoftDeleted ||= (current as any)?.isSoftDeletedEntity;\n // If we had been traversing m2o -> m2o and just hit an o2m/m2m, and any of our\n // prior m2os had been soft deleted, just filter everything out.\n if (Array.isArray(current) && seenSoftDeleted) {\n return true;\n }\n }\n }\n return true;\n}\n\n/** Accepts a lens like `a => a.books.reviews` and returns a hint like `{ books: { reviews: {} } }`. */\nexport function lensToLoadHint<T extends Entity, U, V>(fn: (lens: Lens<T>) => Lens<U, V>): LoadHint<T> {\n return lensPathToLoadHint(collectPaths(fn));\n}\n\n/** Accepts lens paths like `[books, reviews]` and returns a hint like `{ books: { reviews: {} } }`. */\nexport function lensPathToLoadHint<T extends Entity>(paths: string[]): LoadHint<T> {\n let current = {};\n for (let i = paths.length - 1; i >= 0; i--) {\n const path = paths[i];\n current = { [path]: current };\n }\n return current as LoadHint<T>;\n}\n\n/** Accepts a lens like `a => a.books.reviews` and returns the paths like `[books, reviews]`. */\nexport function lensToPath<T extends Entity, U, V>(fn: (lens: Lens<T>) => Lens<U, V>): string[] {\n return [...collectPaths(fn)];\n}\n\nfunction isNotLoaded(object: any, path: string): boolean {\n const value = object && object[path];\n if (value instanceof AbstractRelationImpl || isProperty(value)) {\n return !value.isLoaded;\n }\n return false;\n}\n\nfunction maybeGet(object: any, path: string): unknown {\n if (object === undefined || object === null) {\n return undefined;\n }\n const value = object[path];\n if (typeof value === \"object\" && \"get\" in value) {\n return value.get;\n } else if (value && typeof value === \"function\") {\n return value.apply(object);\n } else {\n return value;\n }\n}\n\nfunction collectPaths(fn: Function): string[] {\n const paths: string[] = [];\n // The proxy collects the path navigations that the user's `fn` lambda invokes.\n const proxy = new Proxy(\n {},\n {\n get(_, property, receiver) {\n paths.push(String(property));\n return receiver;\n },\n },\n );\n // Invoke the lens function to record the navigation path on our proxy\n fn(proxy as any);\n return paths;\n}\n\n// Work around https://github.com/microsoft/TypeScript/issues/17002\nfunction isReadOnlyArray<T>(value: T | readonly T[]): value is readonly T[] {\n return Array.isArray(value);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqFA,eAAsB,SACpB,OACA,IACA,OAAiD,CAAC,GACtC;CACZ,OAAO,aAAa,OAAO,aAAa,EAAE,GAAG,IAAI;AACnD;;AAGA,SAAgB,aACd,OACA,OACA,OAAiD,CAAC,GACtC;CAEZ,MAAM,OAAO,MAAM,QAAQ,KAAK,IAC5B,SAAS,MAAM,EAAE,KAAK,YAAY,MAAM,EAAE,IAC1C,SAAS,KAAK,KAAK,YAAY,KAAK;CAExC,IAAI,CAAC,MAAM,OAAO,CAAC;CAGnB,IAAI,CAAC,KAAK,eAAe,iBAAiB,OAAO,KAAK,GAEpD,OAAO,YAAY,MAAM,OAAO,KAAK;CAGvC,OAAO,kBAAkB,MAAM,OAAO,OAAO,IAAI;AACnD;;;;;;AAOA,eAAe,kBACb,MACA,OACA,OACA,MACY;CAEZ,IAAI,KAAK,KAAK;EAEZ,IAAI,CAAC,cAAc,MAAM,KAAK,GAC5B,MAAM,IAAI,MAAM,iDAAiD;EAGnE,IAAI,MAAM,SAAS,GAAG;GAEpB,IAAI,gBAAgB,KAAK,GAAG;IAC1B,MAAM,KAAK,MAAM,EAAE,CAAC;IACpB,OAAQ,MAAM,eAAe,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC,CACrD,SAAS,MAAM,KAAK,MAAM,EAAE,QAAQ,CAAC,CAAC,CACtC,MAAM,SAAS,SAAS,KAAK;KAC5B,MAAM,YAAY,qBAAK,IAAI,MAAM,CAAC;IACpC,CAAC;GACL,OAAO;IACL,MAAM,KAAK,MAAM;IACjB,OAAQ,MAAM,eAAe,IAAI,KAAK,MAAM,OAAO,KAAK,CAAC,CACtD,KAAK,MAAM,QAAQ,CAAC,CACpB,MAAM,SAAS,SAAS,KAAK;KAC5B,MAAM,YAAY,qBAAK,IAAI,MAAM,CAAC;IACpC,CAAC;GACL;EACF;CACF;CAGA,IAAI,UAAe;CACnB,IAAI,cAA0C;CAC9C,IAAI,kBAAkB;CAEtB,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,QAAQ,aAAa,UAAU;EAOrC,IAAI,MAAM,QAAQ,OAAO,GAAG;GAC1B,WAAW,MAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,CAAC,EAAA,CAAG,KAAK;GACjF,UAAU,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,MAAW,MAAM,KAAA,KAAa,CAAC,EAAE,mBAAmB,CAAC,CAAC;GAE5F,IAAI,QAAQ,WAAW,GAAG,OAAO;EACnC,OAAO,IAAI,SAAS;GAClB,UAAU,MAAM,UAAU,SAAS,MAAM,IAAI;GAC7C,oBAAqB,SAAiB;GAOtC,IAAI,MAAM,QAAQ,OAAO,KAAK,iBAC5B,OAAO,CAAC;EAEZ,OAEE,IAAI,OAAO,SAAS,SAAS,OAAO,SAAS,OAAO,OAAO,CAAC;EAE9D,cAAc,SAAS,SAAS,KAAK;CACvC;CACA,OAAO;AACT;AAEA,SAAgB,cAAc,MAAsB,OAA0B;CAC5E,KAAK,IAAI,IAAI,GAAG,UAAU,MAAM,IAAI,MAAM,QAAQ,KAAK;EACrD,MAAM,OAAO,QAAQ,UAAU,MAAM;EACrC,IAAI,SAAS,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK,SAAS,QAC9F,UAAU,KAAK,cAAc;OAE7B,OAAO;CAEX;CACA,OAAO;AACT;AAGA,SAAgB,iBAAiB,QAAwB,OAA8D;CACrH,IAAI,QAAQ;CACZ,IAAI,SAAoC,CAAC;CACzC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,MAAM,UAAU,MAAM;EACnC,IAAI,SAAS,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK,SAAS,QAAQ;GACtG,QAAQ,KAAK,cAAc;GAC3B,OAAO,KAAK,CAAC,OAAO,MAAM,UAAU,KAAK,eAAe,CAAC;EAC3D,OACE,MAAM,IAAI,MAAM,iDAAiD;CAErE;CACA,OAAO,CAAC,OAAO,OAAO,QAAQ,CAAC;AACjC;AAEA,SAAS,UAAU,QAAa,MAAc,MAA0C;CACtF,IAAI,WAAW,KAAA,KAAa,WAAW,MACrC;CAEF,MAAM,QAAQ,OAAO;CACrB,IAAI,SAAS,OAAO,UAAU,YAAY,UAAU,OAClD,OAAO,MAAM,KAAK,IAAI;MACjB,IAAI,SAAS,OAAO,UAAU,YACnC,OAAO,MAAM,MAAM,MAAM;MAEzB,OAAO;AAEX;;;;;;AAOA,SAAgB,QACd,WACA,OACA,IACG;CACH,OAAO,YAAY,WAAW,OAAO,aAAa,EAAE,CAAC;AACvD;;AAGA,SAAgB,YAAkB,WAA2B,OAAyB,OAAoB;CACxG,IAAI,cAA0C;CAC9C,IAAI,UAAe;CACnB,IAAI,kBAAkB;CAEtB,KAAK,MAAM,QAAQ,OAAO;EAExB,MAAM,QAAQ,aAAa,UAAU;EAOrC,IAAI,MAAM,QAAQ,OAAO,GAAG;GAE1B,MAAM,uBAAO,IAAI,IAAI;GAErB,KAAK,MAAM,KAAK,SAAS;IACvB,MAAM,QAAQ,SAAS,GAAG,IAAI;IAC9B,IAAI,MAAM,QAAQ,KAAK,GAAG,KAAK,MAAM,KAAK,OAAO,SAAS,MAAM,CAAC;SAC5D,SAAS,MAAM,KAAK;GAC3B;GACA,UAAU,CAAC,GAAG,IAAI;EACpB,OAAO,IAAI,SAAS;GAClB,UAAU,SAAS,SAAS,IAAI;GAChC,oBAAqB,SAAiB;GAGtC,IAAI,MAAM,QAAQ,OAAO,KAAK,iBAC5B,OAAO,CAAC;EAEZ,OAEE,IAAI,OAAO,SAAS,SAAS,OAAO,SAAS,OAAO,OAAO,CAAC;EAE9D,cAAc,SAAS,SAAS,KAAK;CACvC;CACA,OAAO;AACT;;AAGA,SAAS,SAAS,SAAkB,OAAsD;CACxF,MAAM,SAAS,MAAM,QAAQ,OAAO,IAAI,QAAQ,KAAK;CACrD,IAAI,SAAS,MAAM,GAAG,OAAO,YAAY,MAAM;CAC/C,OAAO,SAAS,mBAAmB,QAAQ,MAAM,cAAc,IAAI,KAAA;AACrE;AAEA,SAAS,SAAS,KAAe,OAAY;CAC3C,IAAI,UAAU,KAAA,KAAa,CAAC,MAAM,qBAAqB,IAAI,IAAI,KAAK;AACtE;;AAGA,SAAgB,aAAsB,OAAyB,IAA4C;CACzG,OAAO,iBAAiB,OAAO,aAAa,EAAE,CAAC;AACjD;;AAGA,SAAgB,iBAAoB,OAAyB,OAA0B;CAGrF,IAAI,UAAe;CACnB,IAAI,kBAAkB;CAEtB,KAAK,MAAM,QAAQ,OACjB,IAAI,MAAM,QAAQ,OAAO,GAAG;EAE1B,MAAM,uBAAO,IAAI,IAAI;EACrB,KAAK,MAAM,KAAK,SAAS;GACvB,IAAI,YAAY,GAAG,IAAI,GAAG,OAAO;GACjC,MAAM,QAAQ,SAAS,GAAG,IAAI;GAC9B,IAAI,MAAM,QAAQ,KAAK,GAAG,KAAK,MAAM,KAAK,OAAO,SAAS,MAAM,CAAC;QAC5D,SAAS,MAAM,KAAK;EAC3B;EACA,UAAU,CAAC,GAAG,IAAI;CACpB,OAAO;EACL,IAAI,YAAY,SAAS,IAAI,GAAG,OAAO;EACvC,UAAU,SAAS,SAAS,IAAI;EAChC,oBAAqB,SAAiB;EAGtC,IAAI,MAAM,QAAQ,OAAO,KAAK,iBAC5B,OAAO;CAEX;CAEF,OAAO;AACT;;AAGA,SAAgB,eAAuC,IAAgD;CACrG,OAAO,mBAAmB,aAAa,EAAE,CAAC;AAC5C;;AAGA,SAAgB,mBAAqC,OAA8B;CACjF,IAAI,UAAU,CAAC;CACf,KAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAErC,UAAU,GADG,MAAM,KACC,QAAQ;CAE9B,OAAO;AACT;;AAGA,SAAgB,WAAmC,IAA6C;CAC9F,OAAO,CAAC,GAAG,aAAa,EAAE,CAAC;AAC7B;AAEA,SAAS,YAAY,QAAa,MAAuB;CACvD,MAAM,QAAQ,UAAU,OAAO;CAC/B,IAAI,iBAAiB,wBAAwB,WAAW,KAAK,GAC3D,OAAO,CAAC,MAAM;CAEhB,OAAO;AACT;AAEA,SAAS,SAAS,QAAa,MAAuB;CACpD,IAAI,WAAW,KAAA,KAAa,WAAW,MACrC;CAEF,MAAM,QAAQ,OAAO;CACrB,IAAI,OAAO,UAAU,YAAY,SAAS,OACxC,OAAO,MAAM;MACR,IAAI,SAAS,OAAO,UAAU,YACnC,OAAO,MAAM,MAAM,MAAM;MAEzB,OAAO;AAEX;AAEA,SAAS,aAAa,IAAwB;CAC5C,MAAM,QAAkB,CAAC;CAYzB,GAAG,IAVe,MAChB,CAAC,GACD,EACE,IAAI,GAAG,UAAU,UAAU;EACzB,MAAM,KAAK,OAAO,QAAQ,CAAC;EAC3B,OAAO;CACT,EACF,CAGK,CAAQ;CACf,OAAO;AACT;AAGA,SAAS,gBAAmB,OAAgD;CAC1E,OAAO,MAAM,QAAQ,KAAK;AAC5B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_relations_Collection = require("../relations/Collection.cjs");
|
|
3
|
+
const require_relations_ReactiveGetter = require("../relations/ReactiveGetter.cjs");
|
|
4
|
+
const require_relations_Relation = require("../relations/Relation.cjs");
|
|
5
|
+
const require_loading_loadHints = require("./loadHints.cjs");
|
|
6
|
+
const require_relations_hasProperty = require("../relations/hasProperty.cjs");
|
|
7
|
+
const require_relations_Reference = require("../relations/Reference.cjs");
|
|
8
|
+
const require_relations_ReactiveField = require("../relations/ReactiveField.cjs");
|
|
9
|
+
const require_relations_AsyncReactiveField = require("../relations/AsyncReactiveField.cjs");
|
|
10
|
+
require("../relations/index.cjs");
|
|
11
|
+
const require_utils = require("../utils.cjs");
|
|
12
|
+
//#region src/loading/withLoaded.ts
|
|
13
|
+
function withLoaded(loadedOrPromise) {
|
|
14
|
+
return require_utils.maybePromiseThen(loadedOrPromise, (loaded) => new Proxy(loaded, { get: (target, prop) => {
|
|
15
|
+
const value = target[prop];
|
|
16
|
+
if (require_relations_Relation.isRelation(value) || require_relations_hasProperty.isProperty(value) || require_relations_ReactiveField.isReactiveField(value) || require_relations_ReactiveGetter.isReactiveGetter(value) || require_relations_AsyncReactiveField.isAsyncReactiveField(value)) return require_relations_Reference.isLoadedReference(value) || require_relations_Collection.isLoadedCollection(value) || require_relations_hasProperty.isLoadedProperty(value) || require_relations_ReactiveField.isReactiveField(value) || require_relations_AsyncReactiveField.isLoadedAsyncReactiveField(value) || require_relations_ReactiveGetter.isReactiveGetter(value) ? value.get : require_utils.fail(`${target}.${String(prop)} is not loaded`);
|
|
17
|
+
else if (value instanceof StubbedRelation) return value.get;
|
|
18
|
+
else return value;
|
|
19
|
+
} }));
|
|
20
|
+
}
|
|
21
|
+
function ensureWithLoaded(entity, hint) {
|
|
22
|
+
require_loading_loadHints.assertLoaded(entity, hint);
|
|
23
|
+
return withLoaded(entity);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Allow stubbing of relations with dummy values.
|
|
27
|
+
*
|
|
28
|
+
* In very advanced use cases (ideally only useful in tests, similar to mocking), it can be helpful
|
|
29
|
+
* to have a relation returned a hard-coded value that doesn't go through the normal o2m/m2m
|
|
30
|
+
* .load/.isLoaded/.get code paths.
|
|
31
|
+
*
|
|
32
|
+
* We'd originally done some of this by poking relation internal implementation details, but
|
|
33
|
+
* using private fields like `#loaded` breaks that, and it was brittle anyway.
|
|
34
|
+
*
|
|
35
|
+
* So StubbedRelation provides a semi-blessed way of doing this, i.e. with code like:
|
|
36
|
+
*
|
|
37
|
+
* ```
|
|
38
|
+
* // Force `author.books` to always be `[]` and never load.
|
|
39
|
+
* Object.defineProperty(author, "books", {
|
|
40
|
+
* get: () => new StubbedRelation([]),
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
var StubbedRelation = class {
|
|
45
|
+
value;
|
|
46
|
+
constructor(value) {
|
|
47
|
+
this.value = value;
|
|
48
|
+
}
|
|
49
|
+
get get() {
|
|
50
|
+
return this.value;
|
|
51
|
+
}
|
|
52
|
+
get isLoaded() {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
load() {
|
|
56
|
+
return this.get;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
exports.StubbedRelation = StubbedRelation;
|
|
61
|
+
exports.ensureWithLoaded = ensureWithLoaded;
|
|
62
|
+
exports.withLoaded = withLoaded;
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=withLoaded.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withLoaded.cjs","names":["maybePromiseThen","isRelation","isProperty","isReactiveField","isReactiveGetter","isAsyncReactiveField","isLoadedReference","isLoadedCollection","isLoadedProperty","isLoadedAsyncReactiveField","fail"],"sources":["../../src/loading/withLoaded.ts"],"sourcesContent":["import type { Entity } from \"src/Entity.ts\";\nimport { type LoadHint, type Loaded, assertLoaded } from \"src/loading/loadHints.ts\";\nimport { isLoadedAsyncReactiveField } from \"src/relations/AsyncReactiveField.ts\";\nimport {\n type LoadedCollection,\n type LoadedProperty,\n type LoadedReadOnlyCollection,\n type LoadedReference,\n type PolymorphicReference,\n type Property,\n type Relation,\n isAsyncReactiveField,\n isLoadedCollection,\n isLoadedProperty,\n isLoadedReference,\n isProperty,\n isReactiveField,\n isReactiveGetter,\n isRelation,\n} from \"src/relations/index.ts\";\nimport { type MaybePromise, fail, maybePromiseThen } from \"src/utils.ts\";\n\n// This type seems is overly complex for references, but it's necessary in order to ensure that potential\n// undefined references are properly propagated and that polymorphic references don't overwhelm the type system.\nexport type WithLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>> = {\n [\n K in keyof L as L[K] extends { get: unknown } ? K : L[K] extends Relation<any, any> | Property<any, any> ? never : K\n ]: L[K] extends PolymorphicReference<T, infer U, infer N>\n ? L[K] extends LoadedReference<T, U, N>\n ? U | N\n : L[K]\n : L[K] extends LoadedReference<T, infer U, never>\n ? U\n : L[K] extends LoadedReference<T, infer U, undefined>\n ? U | undefined\n : L[K] extends LoadedCollection<T, infer U>\n ? U[]\n : L[K] extends LoadedReadOnlyCollection<T, infer U>\n ? // leaving out `readonly U[]` until we're ready to switch\n U[]\n : L[K] extends LoadedProperty<T, infer V>\n ? V\n : L[K];\n};\n\n/**\n * Allows destructuring against entities to more succinctly access loaded relations.\n *\n * ```typescript\n * // Instead of\n * const author = book.author.get;\n * // Use withLoaded\n * const { author } = withLoaded(book);\n * ```\n *\n * Granted, when accessing one property, this is not a win, but if you're accessing\n * ~3-4 separate loaded properties, then it can be more succinct than using `get`s\n * for each one.\n *\n * This function returns a proxy to an entity, instead of a real entity, and as such its return\n * value should only be used as part of a destructure and never directly assigned to a variable.\n *\n * This is also why the function is not recursive, as returning nested proxies could result in\n * them inadvertently being stored and passed to code that expects a real entity.\n */\nexport function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(\n promise: Promise<L>,\n): Promise<WithLoaded<T, H, L>>;\nexport function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(\n loaded: L,\n): WithLoaded<T, H, L>;\nexport function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(\n loadedOrPromise: MaybePromise<L> | L,\n): MaybePromise<WithLoaded<T, H, L>> {\n return maybePromiseThen(\n loadedOrPromise,\n (loaded) =>\n new Proxy(loaded, {\n get: (target, prop) => {\n const value: any = (target as any)[prop];\n if (\n isRelation(value) ||\n isProperty(value) ||\n isReactiveField(value) ||\n isReactiveGetter(value) ||\n isAsyncReactiveField(value)\n ) {\n return isLoadedReference(value) ||\n isLoadedCollection(value) ||\n isLoadedProperty(value) ||\n isReactiveField(value) ||\n isLoadedAsyncReactiveField(value) ||\n isReactiveGetter(value)\n ? value.get\n : fail(`${target}.${String(prop)} is not loaded`);\n } else if (value instanceof StubbedRelation) {\n return value.get;\n } else {\n return value;\n }\n },\n }) as WithLoaded<T, H, L>,\n );\n}\n\nexport function ensureWithLoaded<T extends Entity, const H extends LoadHint<T>>(\n entity: T,\n hint: H,\n): WithLoaded<T, H, Loaded<T, H>> {\n assertLoaded<T, H>(entity, hint);\n return withLoaded(entity);\n}\n\n/**\n * Allow stubbing of relations with dummy values.\n *\n * In very advanced use cases (ideally only useful in tests, similar to mocking), it can be helpful\n * to have a relation returned a hard-coded value that doesn't go through the normal o2m/m2m\n * .load/.isLoaded/.get code paths.\n *\n * We'd originally done some of this by poking relation internal implementation details, but\n * using private fields like `#loaded` breaks that, and it was brittle anyway.\n *\n * So StubbedRelation provides a semi-blessed way of doing this, i.e. with code like:\n *\n * ```\n * // Force `author.books` to always be `[]` and never load.\n * Object.defineProperty(author, \"books\", {\n * get: () => new StubbedRelation([]),\n * });\n * ```\n */\nexport class StubbedRelation {\n constructor(private value: any) {}\n\n get get() {\n return this.value;\n }\n\n get isLoaded() {\n return true;\n }\n\n load() {\n return this.get;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAuEA,SAAgB,WACd,iBACmC;CACnC,OAAOA,cAAAA,iBACL,kBACC,WACC,IAAI,MAAM,QAAQ,EAChB,MAAM,QAAQ,SAAS;EACrB,MAAM,QAAc,OAAe;EACnC,IACEC,2BAAAA,WAAW,KAAK,KAChBC,8BAAAA,WAAW,KAAK,KAChBC,gCAAAA,gBAAgB,KAAK,KACrBC,iCAAAA,iBAAiB,KAAK,KACtBC,qCAAAA,qBAAqB,KAAK,GAE1B,OAAOC,4BAAAA,kBAAkB,KAAK,KAC5BC,6BAAAA,mBAAmB,KAAK,KACxBC,8BAAAA,iBAAiB,KAAK,KACtBL,gCAAAA,gBAAgB,KAAK,KACrBM,qCAAAA,2BAA2B,KAAK,KAChCL,iCAAAA,iBAAiB,KAAK,IACpB,MAAM,MACNM,cAAAA,KAAK,GAAG,OAAO,GAAG,OAAO,IAAI,EAAE,eAAe;OAC7C,IAAI,iBAAiB,iBAC1B,OAAO,MAAM;OAEb,OAAO;CAEX,EACF,CAAC,CACL;AACF;AAEA,SAAgB,iBACd,QACA,MACgC;CAChC,0BAAA,aAAmB,QAAQ,IAAI;CAC/B,OAAO,WAAW,MAAM;AAC1B;;;;;;;;;;;;;;;;;;;;AAqBA,IAAa,kBAAb,MAA6B;CACP;CAApB,YAAY,OAAoB;EAAZ,KAAA,QAAA;CAAa;CAEjC,IAAI,MAAM;EACR,OAAO,KAAK;CACd;CAEA,IAAI,WAAW;EACb,OAAO;CACT;CAEA,OAAO;EACL,OAAO,KAAK;CACd;AACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { LoadedCollection } from "../relations/Collection.cjs";
|
|
2
|
+
import { LoadedProperty, Property } from "../relations/hasProperty.cjs";
|
|
3
|
+
import { LoadedReference } from "../relations/Reference.cjs";
|
|
4
|
+
import { Relation } from "../relations/Relation.cjs";
|
|
5
|
+
import { PolymorphicReference } from "../relations/PolymorphicReference.cjs";
|
|
6
|
+
import { LoadedReadOnlyCollection } from "../relations/ReadOnlyCollection.cjs";
|
|
7
|
+
import "../relations/index.cjs";
|
|
8
|
+
import { LoadHint, Loaded } from "./loadHints.cjs";
|
|
9
|
+
import { Entity } from "../Entity.cjs";
|
|
10
|
+
//#region src/loading/withLoaded.d.ts
|
|
11
|
+
type WithLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>> = { [K in keyof L as L[K] extends {
|
|
12
|
+
get: unknown;
|
|
13
|
+
} ? K : L[K] extends Relation<any, any> | Property<any, any> ? never : K]: L[K] extends PolymorphicReference<T, infer U, infer N> ? L[K] extends LoadedReference<T, U, N> ? U | N : L[K] : L[K] extends LoadedReference<T, infer U, never> ? U : L[K] extends LoadedReference<T, infer U, undefined> ? U | undefined : L[K] extends LoadedCollection<T, infer U> ? U[] : L[K] extends LoadedReadOnlyCollection<T, infer U> ? U[] : L[K] extends LoadedProperty<T, infer V> ? V : L[K]; };
|
|
14
|
+
/**
|
|
15
|
+
* Allows destructuring against entities to more succinctly access loaded relations.
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Instead of
|
|
19
|
+
* const author = book.author.get;
|
|
20
|
+
* // Use withLoaded
|
|
21
|
+
* const { author } = withLoaded(book);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Granted, when accessing one property, this is not a win, but if you're accessing
|
|
25
|
+
* ~3-4 separate loaded properties, then it can be more succinct than using `get`s
|
|
26
|
+
* for each one.
|
|
27
|
+
*
|
|
28
|
+
* This function returns a proxy to an entity, instead of a real entity, and as such its return
|
|
29
|
+
* value should only be used as part of a destructure and never directly assigned to a variable.
|
|
30
|
+
*
|
|
31
|
+
* This is also why the function is not recursive, as returning nested proxies could result in
|
|
32
|
+
* them inadvertently being stored and passed to code that expects a real entity.
|
|
33
|
+
*/
|
|
34
|
+
declare function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(promise: Promise<L>): Promise<WithLoaded<T, H, L>>;
|
|
35
|
+
declare function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(loaded: L): WithLoaded<T, H, L>;
|
|
36
|
+
declare function ensureWithLoaded<T extends Entity, const H extends LoadHint<T>>(entity: T, hint: H): WithLoaded<T, H, Loaded<T, H>>;
|
|
37
|
+
/**
|
|
38
|
+
* Allow stubbing of relations with dummy values.
|
|
39
|
+
*
|
|
40
|
+
* In very advanced use cases (ideally only useful in tests, similar to mocking), it can be helpful
|
|
41
|
+
* to have a relation returned a hard-coded value that doesn't go through the normal o2m/m2m
|
|
42
|
+
* .load/.isLoaded/.get code paths.
|
|
43
|
+
*
|
|
44
|
+
* We'd originally done some of this by poking relation internal implementation details, but
|
|
45
|
+
* using private fields like `#loaded` breaks that, and it was brittle anyway.
|
|
46
|
+
*
|
|
47
|
+
* So StubbedRelation provides a semi-blessed way of doing this, i.e. with code like:
|
|
48
|
+
*
|
|
49
|
+
* ```
|
|
50
|
+
* // Force `author.books` to always be `[]` and never load.
|
|
51
|
+
* Object.defineProperty(author, "books", {
|
|
52
|
+
* get: () => new StubbedRelation([]),
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare class StubbedRelation {
|
|
57
|
+
private value;
|
|
58
|
+
constructor(value: any);
|
|
59
|
+
get get(): any;
|
|
60
|
+
get isLoaded(): boolean;
|
|
61
|
+
load(): any;
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { StubbedRelation, WithLoaded, ensureWithLoaded, withLoaded };
|
|
65
|
+
//# sourceMappingURL=withLoaded.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withLoaded.d.cts","names":[],"sources":["../../src/loading/withLoaded.ts"],"mappings":";;;;;;;;;;KAwBY,WAAW,UAAU,QAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,SAEhF,WAAW,KAAK,EAAE;EAAa;IAAiB,IAAI,EAAE,WAAW,qBAAqB,6BAA6B,IAClH,EAAE,WAAW,qBAAqB,SAAS,SAAS,KACnD,EAAE,WAAW,gBAAgB,GAAG,GAAG,KACjC,IAAI,IACJ,EAAE,KACJ,EAAE,WAAW,gBAAgB,SAAS,YACpC,IACA,EAAE,WAAW,gBAAgB,SAAS,gBACpC,gBACA,EAAE,WAAW,iBAAiB,SAAS,KACrC,MACA,EAAE,WAAW,yBAAyB,SAAS,KAE7C,MACA,EAAE,WAAW,eAAe,SAAS,KACnC,IACA,EAAE;;;;;;;;;;;;;;;;;;;;;iBAuBF,WAAW,UAAU,QAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,IACtF,SAAS,QAAQ,KAChB,QAAQ,WAAW,GAAG,GAAG;iBACZ,WAAW,UAAU,QAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,IACtF,QAAQ,IACP,WAAW,GAAG,GAAG;iBAmCJ,iBAAiB,UAAU,cAAc,UAAU,SAAS,IAC1E,QAAQ,GACR,MAAM,IACL,WAAW,GAAG,GAAG,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;cAwBjB;UACS;EAApB,YAAoB;MAEhB;MAIA;EAIJ"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { LoadedCollection } from "../relations/Collection.mjs";
|
|
2
|
+
import { LoadedProperty, Property } from "../relations/hasProperty.mjs";
|
|
3
|
+
import { LoadedReference } from "../relations/Reference.mjs";
|
|
4
|
+
import { Relation } from "../relations/Relation.mjs";
|
|
5
|
+
import { PolymorphicReference } from "../relations/PolymorphicReference.mjs";
|
|
6
|
+
import { LoadedReadOnlyCollection } from "../relations/ReadOnlyCollection.mjs";
|
|
7
|
+
import "../relations/index.mjs";
|
|
8
|
+
import { LoadHint, Loaded } from "./loadHints.mjs";
|
|
9
|
+
import { Entity } from "../Entity.mjs";
|
|
10
|
+
//#region src/loading/withLoaded.d.ts
|
|
11
|
+
type WithLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>> = { [K in keyof L as L[K] extends {
|
|
12
|
+
get: unknown;
|
|
13
|
+
} ? K : L[K] extends Relation<any, any> | Property<any, any> ? never : K]: L[K] extends PolymorphicReference<T, infer U, infer N> ? L[K] extends LoadedReference<T, U, N> ? U | N : L[K] : L[K] extends LoadedReference<T, infer U, never> ? U : L[K] extends LoadedReference<T, infer U, undefined> ? U | undefined : L[K] extends LoadedCollection<T, infer U> ? U[] : L[K] extends LoadedReadOnlyCollection<T, infer U> ? U[] : L[K] extends LoadedProperty<T, infer V> ? V : L[K]; };
|
|
14
|
+
/**
|
|
15
|
+
* Allows destructuring against entities to more succinctly access loaded relations.
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Instead of
|
|
19
|
+
* const author = book.author.get;
|
|
20
|
+
* // Use withLoaded
|
|
21
|
+
* const { author } = withLoaded(book);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Granted, when accessing one property, this is not a win, but if you're accessing
|
|
25
|
+
* ~3-4 separate loaded properties, then it can be more succinct than using `get`s
|
|
26
|
+
* for each one.
|
|
27
|
+
*
|
|
28
|
+
* This function returns a proxy to an entity, instead of a real entity, and as such its return
|
|
29
|
+
* value should only be used as part of a destructure and never directly assigned to a variable.
|
|
30
|
+
*
|
|
31
|
+
* This is also why the function is not recursive, as returning nested proxies could result in
|
|
32
|
+
* them inadvertently being stored and passed to code that expects a real entity.
|
|
33
|
+
*/
|
|
34
|
+
declare function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(promise: Promise<L>): Promise<WithLoaded<T, H, L>>;
|
|
35
|
+
declare function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(loaded: L): WithLoaded<T, H, L>;
|
|
36
|
+
declare function ensureWithLoaded<T extends Entity, const H extends LoadHint<T>>(entity: T, hint: H): WithLoaded<T, H, Loaded<T, H>>;
|
|
37
|
+
/**
|
|
38
|
+
* Allow stubbing of relations with dummy values.
|
|
39
|
+
*
|
|
40
|
+
* In very advanced use cases (ideally only useful in tests, similar to mocking), it can be helpful
|
|
41
|
+
* to have a relation returned a hard-coded value that doesn't go through the normal o2m/m2m
|
|
42
|
+
* .load/.isLoaded/.get code paths.
|
|
43
|
+
*
|
|
44
|
+
* We'd originally done some of this by poking relation internal implementation details, but
|
|
45
|
+
* using private fields like `#loaded` breaks that, and it was brittle anyway.
|
|
46
|
+
*
|
|
47
|
+
* So StubbedRelation provides a semi-blessed way of doing this, i.e. with code like:
|
|
48
|
+
*
|
|
49
|
+
* ```
|
|
50
|
+
* // Force `author.books` to always be `[]` and never load.
|
|
51
|
+
* Object.defineProperty(author, "books", {
|
|
52
|
+
* get: () => new StubbedRelation([]),
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare class StubbedRelation {
|
|
57
|
+
private value;
|
|
58
|
+
constructor(value: any);
|
|
59
|
+
get get(): any;
|
|
60
|
+
get isLoaded(): boolean;
|
|
61
|
+
load(): any;
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { StubbedRelation, WithLoaded, ensureWithLoaded, withLoaded };
|
|
65
|
+
//# sourceMappingURL=withLoaded.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withLoaded.d.mts","names":[],"sources":["../../src/loading/withLoaded.ts"],"mappings":";;;;;;;;;;KAwBY,WAAW,UAAU,QAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,SAEhF,WAAW,KAAK,EAAE;EAAa;IAAiB,IAAI,EAAE,WAAW,qBAAqB,6BAA6B,IAClH,EAAE,WAAW,qBAAqB,SAAS,SAAS,KACnD,EAAE,WAAW,gBAAgB,GAAG,GAAG,KACjC,IAAI,IACJ,EAAE,KACJ,EAAE,WAAW,gBAAgB,SAAS,YACpC,IACA,EAAE,WAAW,gBAAgB,SAAS,gBACpC,gBACA,EAAE,WAAW,iBAAiB,SAAS,KACrC,MACA,EAAE,WAAW,yBAAyB,SAAS,KAE7C,MACA,EAAE,WAAW,eAAe,SAAS,KACnC,IACA,EAAE;;;;;;;;;;;;;;;;;;;;;iBAuBF,WAAW,UAAU,QAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,IACtF,SAAS,QAAQ,KAChB,QAAQ,WAAW,GAAG,GAAG;iBACZ,WAAW,UAAU,QAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,IACtF,QAAQ,IACP,WAAW,GAAG,GAAG;iBAmCJ,iBAAiB,UAAU,cAAc,UAAU,SAAS,IAC1E,QAAQ,GACR,MAAM,IACL,WAAW,GAAG,GAAG,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;cAwBjB;UACS;EAApB,YAAoB;MAEhB;MAIA;EAIJ"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { isLoadedCollection } from "../relations/Collection.js";
|
|
2
|
+
import { isReactiveGetter } from "../relations/ReactiveGetter.js";
|
|
3
|
+
import { isRelation } from "../relations/Relation.js";
|
|
4
|
+
import { assertLoaded } from "./loadHints.js";
|
|
5
|
+
import { isLoadedProperty, isProperty } from "../relations/hasProperty.js";
|
|
6
|
+
import { isLoadedReference } from "../relations/Reference.js";
|
|
7
|
+
import { isReactiveField } from "../relations/ReactiveField.js";
|
|
8
|
+
import { isAsyncReactiveField, isLoadedAsyncReactiveField } from "../relations/AsyncReactiveField.js";
|
|
9
|
+
import "../relations/index.js";
|
|
10
|
+
import { fail, maybePromiseThen } from "../utils.js";
|
|
11
|
+
//#region src/loading/withLoaded.ts
|
|
12
|
+
function withLoaded(loadedOrPromise) {
|
|
13
|
+
return maybePromiseThen(loadedOrPromise, (loaded) => new Proxy(loaded, { get: (target, prop) => {
|
|
14
|
+
const value = target[prop];
|
|
15
|
+
if (isRelation(value) || isProperty(value) || isReactiveField(value) || isReactiveGetter(value) || isAsyncReactiveField(value)) return isLoadedReference(value) || isLoadedCollection(value) || isLoadedProperty(value) || isReactiveField(value) || isLoadedAsyncReactiveField(value) || isReactiveGetter(value) ? value.get : fail(`${target}.${String(prop)} is not loaded`);
|
|
16
|
+
else if (value instanceof StubbedRelation) return value.get;
|
|
17
|
+
else return value;
|
|
18
|
+
} }));
|
|
19
|
+
}
|
|
20
|
+
function ensureWithLoaded(entity, hint) {
|
|
21
|
+
assertLoaded(entity, hint);
|
|
22
|
+
return withLoaded(entity);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Allow stubbing of relations with dummy values.
|
|
26
|
+
*
|
|
27
|
+
* In very advanced use cases (ideally only useful in tests, similar to mocking), it can be helpful
|
|
28
|
+
* to have a relation returned a hard-coded value that doesn't go through the normal o2m/m2m
|
|
29
|
+
* .load/.isLoaded/.get code paths.
|
|
30
|
+
*
|
|
31
|
+
* We'd originally done some of this by poking relation internal implementation details, but
|
|
32
|
+
* using private fields like `#loaded` breaks that, and it was brittle anyway.
|
|
33
|
+
*
|
|
34
|
+
* So StubbedRelation provides a semi-blessed way of doing this, i.e. with code like:
|
|
35
|
+
*
|
|
36
|
+
* ```
|
|
37
|
+
* // Force `author.books` to always be `[]` and never load.
|
|
38
|
+
* Object.defineProperty(author, "books", {
|
|
39
|
+
* get: () => new StubbedRelation([]),
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
var StubbedRelation = class {
|
|
44
|
+
value;
|
|
45
|
+
constructor(value) {
|
|
46
|
+
this.value = value;
|
|
47
|
+
}
|
|
48
|
+
get get() {
|
|
49
|
+
return this.value;
|
|
50
|
+
}
|
|
51
|
+
get isLoaded() {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
load() {
|
|
55
|
+
return this.get;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
//#endregion
|
|
59
|
+
export { StubbedRelation, ensureWithLoaded, withLoaded };
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=withLoaded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withLoaded.js","names":[],"sources":["../../src/loading/withLoaded.ts"],"sourcesContent":["import type { Entity } from \"src/Entity.ts\";\nimport { type LoadHint, type Loaded, assertLoaded } from \"src/loading/loadHints.ts\";\nimport { isLoadedAsyncReactiveField } from \"src/relations/AsyncReactiveField.ts\";\nimport {\n type LoadedCollection,\n type LoadedProperty,\n type LoadedReadOnlyCollection,\n type LoadedReference,\n type PolymorphicReference,\n type Property,\n type Relation,\n isAsyncReactiveField,\n isLoadedCollection,\n isLoadedProperty,\n isLoadedReference,\n isProperty,\n isReactiveField,\n isReactiveGetter,\n isRelation,\n} from \"src/relations/index.ts\";\nimport { type MaybePromise, fail, maybePromiseThen } from \"src/utils.ts\";\n\n// This type seems is overly complex for references, but it's necessary in order to ensure that potential\n// undefined references are properly propagated and that polymorphic references don't overwhelm the type system.\nexport type WithLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>> = {\n [\n K in keyof L as L[K] extends { get: unknown } ? K : L[K] extends Relation<any, any> | Property<any, any> ? never : K\n ]: L[K] extends PolymorphicReference<T, infer U, infer N>\n ? L[K] extends LoadedReference<T, U, N>\n ? U | N\n : L[K]\n : L[K] extends LoadedReference<T, infer U, never>\n ? U\n : L[K] extends LoadedReference<T, infer U, undefined>\n ? U | undefined\n : L[K] extends LoadedCollection<T, infer U>\n ? U[]\n : L[K] extends LoadedReadOnlyCollection<T, infer U>\n ? // leaving out `readonly U[]` until we're ready to switch\n U[]\n : L[K] extends LoadedProperty<T, infer V>\n ? V\n : L[K];\n};\n\n/**\n * Allows destructuring against entities to more succinctly access loaded relations.\n *\n * ```typescript\n * // Instead of\n * const author = book.author.get;\n * // Use withLoaded\n * const { author } = withLoaded(book);\n * ```\n *\n * Granted, when accessing one property, this is not a win, but if you're accessing\n * ~3-4 separate loaded properties, then it can be more succinct than using `get`s\n * for each one.\n *\n * This function returns a proxy to an entity, instead of a real entity, and as such its return\n * value should only be used as part of a destructure and never directly assigned to a variable.\n *\n * This is also why the function is not recursive, as returning nested proxies could result in\n * them inadvertently being stored and passed to code that expects a real entity.\n */\nexport function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(\n promise: Promise<L>,\n): Promise<WithLoaded<T, H, L>>;\nexport function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(\n loaded: L,\n): WithLoaded<T, H, L>;\nexport function withLoaded<T extends Entity, H extends LoadHint<T>, L extends Loaded<T, H>>(\n loadedOrPromise: MaybePromise<L> | L,\n): MaybePromise<WithLoaded<T, H, L>> {\n return maybePromiseThen(\n loadedOrPromise,\n (loaded) =>\n new Proxy(loaded, {\n get: (target, prop) => {\n const value: any = (target as any)[prop];\n if (\n isRelation(value) ||\n isProperty(value) ||\n isReactiveField(value) ||\n isReactiveGetter(value) ||\n isAsyncReactiveField(value)\n ) {\n return isLoadedReference(value) ||\n isLoadedCollection(value) ||\n isLoadedProperty(value) ||\n isReactiveField(value) ||\n isLoadedAsyncReactiveField(value) ||\n isReactiveGetter(value)\n ? value.get\n : fail(`${target}.${String(prop)} is not loaded`);\n } else if (value instanceof StubbedRelation) {\n return value.get;\n } else {\n return value;\n }\n },\n }) as WithLoaded<T, H, L>,\n );\n}\n\nexport function ensureWithLoaded<T extends Entity, const H extends LoadHint<T>>(\n entity: T,\n hint: H,\n): WithLoaded<T, H, Loaded<T, H>> {\n assertLoaded<T, H>(entity, hint);\n return withLoaded(entity);\n}\n\n/**\n * Allow stubbing of relations with dummy values.\n *\n * In very advanced use cases (ideally only useful in tests, similar to mocking), it can be helpful\n * to have a relation returned a hard-coded value that doesn't go through the normal o2m/m2m\n * .load/.isLoaded/.get code paths.\n *\n * We'd originally done some of this by poking relation internal implementation details, but\n * using private fields like `#loaded` breaks that, and it was brittle anyway.\n *\n * So StubbedRelation provides a semi-blessed way of doing this, i.e. with code like:\n *\n * ```\n * // Force `author.books` to always be `[]` and never load.\n * Object.defineProperty(author, \"books\", {\n * get: () => new StubbedRelation([]),\n * });\n * ```\n */\nexport class StubbedRelation {\n constructor(private value: any) {}\n\n get get() {\n return this.value;\n }\n\n get isLoaded() {\n return true;\n }\n\n load() {\n return this.get;\n }\n}\n"],"mappings":";;;;;;;;;;;AAuEA,SAAgB,WACd,iBACmC;CACnC,OAAO,iBACL,kBACC,WACC,IAAI,MAAM,QAAQ,EAChB,MAAM,QAAQ,SAAS;EACrB,MAAM,QAAc,OAAe;EACnC,IACE,WAAW,KAAK,KAChB,WAAW,KAAK,KAChB,gBAAgB,KAAK,KACrB,iBAAiB,KAAK,KACtB,qBAAqB,KAAK,GAE1B,OAAO,kBAAkB,KAAK,KAC5B,mBAAmB,KAAK,KACxB,iBAAiB,KAAK,KACtB,gBAAgB,KAAK,KACrB,2BAA2B,KAAK,KAChC,iBAAiB,KAAK,IACpB,MAAM,MACN,KAAK,GAAG,OAAO,GAAG,OAAO,IAAI,EAAE,eAAe;OAC7C,IAAI,iBAAiB,iBAC1B,OAAO,MAAM;OAEb,OAAO;CAEX,EACF,CAAC,CACL;AACF;AAEA,SAAgB,iBACd,QACA,MACgC;CAChC,aAAmB,QAAQ,IAAI;CAC/B,OAAO,WAAW,MAAM;AAC1B;;;;;;;;;;;;;;;;;;;;AAqBA,IAAa,kBAAb,MAA6B;CACP;CAApB,YAAY,OAAoB;EAAZ,KAAA,QAAA;CAAa;CAEjC,IAAI,MAAM;EACR,OAAO,KAAK;CACd;CAEA,IAAI,WAAW;EACb,OAAO;CACT;CAEA,OAAO;EACL,OAAO,KAAK;CACd;AACF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_config = require("../config.cjs");
|
|
4
|
+
require("../EntityMetadata.cjs");
|
|
5
|
+
require("../newTestInstance.cjs");
|
|
6
|
+
require("../Entity.cjs");
|
|
7
|
+
let ansis = require("ansis");
|
|
8
|
+
ansis = require_runtime.__toESM(ansis, 1);
|
|
9
|
+
//#region src/logging/FactoryLogger.ts
|
|
10
|
+
let writer = void 0;
|
|
11
|
+
const { gray, green, yellow } = ansis.default;
|
|
12
|
+
var FactoryLogger = class {
|
|
13
|
+
level = 0;
|
|
14
|
+
writeFn;
|
|
15
|
+
skipNextLogCreating = false;
|
|
16
|
+
constructor() {
|
|
17
|
+
this.writeFn = writer ?? process.stdout.write.bind(process.stdout);
|
|
18
|
+
}
|
|
19
|
+
logCreating(cstr) {
|
|
20
|
+
if (this.skipNextLogCreating) this.skipNextLogCreating = false;
|
|
21
|
+
else this.write("Creating", green.bold(`new ${cstr.name}`), gray(`at ${require_config.getCallerName(2)}`));
|
|
22
|
+
}
|
|
23
|
+
logAddToUseMap(e, source) {
|
|
24
|
+
if (source === "sameBranch" || source === "diffBranch") this.write(`${gray(`created`)} ${e.toString()} ${gray("added to scope")}`);
|
|
25
|
+
else this.write(`${gray(`...adding`)} ${e.toString()} ${gray("opt to scope")}`);
|
|
26
|
+
}
|
|
27
|
+
logCreated(e) {
|
|
28
|
+
this.write(`${gray(`created`)} ${e.toString()}`);
|
|
29
|
+
}
|
|
30
|
+
logFoundExisting(e) {
|
|
31
|
+
this.write(`${yellow(`using existing`)} ${e.toString()}`);
|
|
32
|
+
}
|
|
33
|
+
logFoundOpt(fieldName, e) {
|
|
34
|
+
this.write(`${gray(`${fieldName} =`)} ${e.toString()} ${gray("from opt")}`);
|
|
35
|
+
}
|
|
36
|
+
logNotFoundAndCreating(fieldName, meta) {
|
|
37
|
+
this.write(`${gray(`${fieldName} =`)} creating ${green.bold(`new ${meta.type}`)}`);
|
|
38
|
+
this.skipNextLogCreating = true;
|
|
39
|
+
}
|
|
40
|
+
logFoundInUseMap(fieldName, e) {
|
|
41
|
+
this.write(`${gray(`${fieldName} =`)} ${e.toString()} ${gray("from scope")}`);
|
|
42
|
+
}
|
|
43
|
+
logFoundSingleEntity(fieldName, e) {
|
|
44
|
+
this.write(`${gray(`${fieldName} =`)} ${e.toString()} ${gray("from em")}`);
|
|
45
|
+
}
|
|
46
|
+
indent() {
|
|
47
|
+
this.level++;
|
|
48
|
+
}
|
|
49
|
+
dedent() {
|
|
50
|
+
this.level--;
|
|
51
|
+
}
|
|
52
|
+
write(...line) {
|
|
53
|
+
this.writeFn(this.prefix() + line.join(" ") + "\n");
|
|
54
|
+
}
|
|
55
|
+
prefix() {
|
|
56
|
+
return " ".repeat(this.level);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
function setFactoryWriter(write) {
|
|
60
|
+
writer = write;
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
exports.FactoryLogger = FactoryLogger;
|
|
64
|
+
exports.setFactoryWriter = setFactoryWriter;
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=FactoryLogger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FactoryLogger.cjs","names":["getCallerName"],"sources":["../../src/logging/FactoryLogger.ts"],"sourcesContent":["import ansis from \"ansis\";\nimport { getCallerName } from \"src/config.ts\";\nimport { type Entity } from \"src/Entity.ts\";\nimport { type EntityMetadata } from \"src/EntityMetadata.ts\";\nimport { type UseMapSource } from \"src/newTestInstance.ts\";\n\nlet writer: WriteFn | undefined = undefined;\nexport type WriteFn = (line: string) => void;\n\nconst { gray, green, yellow } = ansis;\n\nexport class FactoryLogger {\n private level = 0;\n private writeFn: WriteFn;\n private skipNextLogCreating = false;\n\n // We default to process.stdout.write to side-step around Jest's console.log instrumentation\n // adding \"...at...\" stack traces to our output.\n constructor() {\n this.writeFn = writer ?? process.stdout.write.bind(process.stdout);\n }\n\n logCreating(cstr: any): void {\n // This was already logged by the parent `field = creating new`\n if (this.skipNextLogCreating) {\n this.skipNextLogCreating = false;\n } else {\n this.write(\"Creating\", green.bold(`new ${cstr.name}`), gray(`at ${getCallerName(2)}`));\n }\n }\n\n logAddToUseMap(e: Entity, source: UseMapSource): void {\n if (source === \"sameBranch\" || source === \"diffBranch\") {\n this.write(`${gray(`created`)} ${e.toString()} ${gray(\"added to scope\")}`);\n } else {\n this.write(`${gray(`...adding`)} ${e.toString()} ${gray(\"opt to scope\")}`);\n }\n }\n\n logCreated(e: Entity): void {\n // This matches the `logAddToUseMap` but for entities not going into scope\n this.write(`${gray(`created`)} ${e.toString()}`);\n }\n\n logFoundExisting(e: Entity): void {\n // Make this yellow because it reverses the \"new Entity\" we thought we were going to do\n this.write(`${yellow(`using existing`)} ${e.toString()}`);\n }\n\n logFoundOpt(fieldName: string, e: Entity): void {\n this.write(`${gray(`${fieldName} =`)} ${e.toString()} ${gray(\"from opt\")}`);\n }\n\n logNotFoundAndCreating(fieldName: string, meta: EntityMetadata): void {\n this.write(`${gray(`${fieldName} =`)} creating ${green.bold(`new ${meta.type}`)}`);\n this.skipNextLogCreating = true;\n }\n\n logFoundInUseMap(fieldName: string, e: Entity): void {\n this.write(`${gray(`${fieldName} =`)} ${e.toString()} ${gray(\"from scope\")}`);\n }\n\n logFoundSingleEntity(fieldName: string, e: Entity): void {\n this.write(`${gray(`${fieldName} =`)} ${e.toString()} ${gray(\"from em\")}`);\n }\n\n indent() {\n this.level++;\n }\n\n dedent() {\n this.level--;\n }\n\n private write(...line: string[]): void {\n this.writeFn(this.prefix() + line.join(\" \") + \"\\n\");\n }\n\n private prefix() {\n return \" \".repeat(this.level);\n }\n}\n\n// Allow our test suite observe the logger behavior\nexport function setFactoryWriter(write: WriteFn | undefined): void {\n writer = write;\n}\n"],"mappings":";;;;;;;;;AAMA,IAAI,SAA8B,KAAA;AAGlC,MAAM,EAAE,MAAM,OAAO,WAAW,MAAA;AAEhC,IAAa,gBAAb,MAA2B;CACzB,QAAgB;CAChB;CACA,sBAA8B;CAI9B,cAAc;EACZ,KAAK,UAAU,UAAU,QAAQ,OAAO,MAAM,KAAK,QAAQ,MAAM;CACnE;CAEA,YAAY,MAAiB;EAE3B,IAAI,KAAK,qBACP,KAAK,sBAAsB;OAE3B,KAAK,MAAM,YAAY,MAAM,KAAK,OAAO,KAAK,MAAM,GAAG,KAAK,MAAMA,eAAAA,cAAc,CAAC,GAAG,CAAC;CAEzF;CAEA,eAAe,GAAW,QAA4B;EACpD,IAAI,WAAW,gBAAgB,WAAW,cACxC,KAAK,MAAM,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,gBAAgB,GAAG;OAEzE,KAAK,MAAM,GAAG,KAAK,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,cAAc,GAAG;CAE7E;CAEA,WAAW,GAAiB;EAE1B,KAAK,MAAM,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG;CACjD;CAEA,iBAAiB,GAAiB;EAEhC,KAAK,MAAM,GAAG,OAAO,gBAAgB,EAAE,GAAG,EAAE,SAAS,GAAG;CAC1D;CAEA,YAAY,WAAmB,GAAiB;EAC9C,KAAK,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,UAAU,GAAG;CAC5E;CAEA,uBAAuB,WAAmB,MAA4B;EACpE,KAAK,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE,YAAY,MAAM,KAAK,OAAO,KAAK,MAAM,GAAG;EACjF,KAAK,sBAAsB;CAC7B;CAEA,iBAAiB,WAAmB,GAAiB;EACnD,KAAK,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,YAAY,GAAG;CAC9E;CAEA,qBAAqB,WAAmB,GAAiB;EACvD,KAAK,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,SAAS,GAAG;CAC3E;CAEA,SAAS;EACP,KAAK;CACP;CAEA,SAAS;EACP,KAAK;CACP;CAEA,MAAc,GAAG,MAAsB;EACrC,KAAK,QAAQ,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI;CACpD;CAEA,SAAiB;EACf,OAAO,KAAK,OAAO,KAAK,KAAK;CAC/B;AACF;AAGA,SAAgB,iBAAiB,OAAkC;CACjE,SAAS;AACX"}
|