joist-orm 1.294.0 → 2.0.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/{drivers/PostgresDriver.d.ts → PostgresDriver.d.ts} +1 -4
- package/build/PostgresDriver.d.ts.map +1 -0
- package/build/{drivers/PostgresDriver.js → PostgresDriver.js} +49 -58
- package/build/PostgresDriver.js.map +1 -0
- package/build/codegen.d.ts +2 -0
- package/build/codegen.d.ts.map +1 -0
- package/build/codegen.js +29 -0
- package/build/codegen.js.map +1 -0
- package/build/graphql-codegen-export.d.ts +2 -0
- package/build/graphql-codegen-export.d.ts.map +1 -0
- package/build/{drivers/index.js → graphql-codegen-export.js} +3 -5
- package/build/graphql-codegen-export.js.map +1 -0
- package/build/graphql-export.d.ts +2 -0
- package/build/graphql-export.d.ts.map +1 -0
- package/build/graphql-export.js +19 -0
- package/build/graphql-export.js.map +1 -0
- package/build/index.d.ts +3 -128
- package/build/index.d.ts.map +1 -1
- package/build/index.js +8 -284
- package/build/index.js.map +1 -1
- package/build/knex-export.d.ts +2 -0
- package/build/knex-export.d.ts.map +1 -0
- package/build/knex-export.js +19 -0
- package/build/knex-export.js.map +1 -0
- package/build/pg-migrate.d.ts +2 -0
- package/build/pg-migrate.d.ts.map +1 -0
- package/build/pg-migrate.js +30 -0
- package/build/pg-migrate.js.map +1 -0
- package/build/postgres-driver.d.ts +2 -0
- package/build/postgres-driver.d.ts.map +1 -0
- package/build/postgres-driver.js +7 -0
- package/build/postgres-driver.js.map +1 -0
- package/build/tests-export.d.ts +2 -0
- package/build/tests-export.d.ts.map +1 -0
- package/build/tests-export.js +19 -0
- package/build/tests-export.js.map +1 -0
- package/package.json +85 -16
- package/build/AliasAssigner.d.ts +0 -7
- package/build/AliasAssigner.d.ts.map +0 -1
- package/build/AliasAssigner.js +0 -30
- package/build/AliasAssigner.js.map +0 -1
- package/build/Aliases.d.ts +0 -110
- package/build/Aliases.d.ts.map +0 -1
- package/build/Aliases.js +0 -456
- package/build/Aliases.js.map +0 -1
- package/build/BaseEntity.d.ts +0 -66
- package/build/BaseEntity.d.ts.map +0 -1
- package/build/BaseEntity.js +0 -120
- package/build/BaseEntity.js.map +0 -1
- package/build/ConditionBuilder.d.ts +0 -50
- package/build/ConditionBuilder.d.ts.map +0 -1
- package/build/ConditionBuilder.js +0 -178
- package/build/ConditionBuilder.js.map +0 -1
- package/build/Entity.d.ts +0 -38
- package/build/Entity.d.ts.map +0 -1
- package/build/Entity.js +0 -8
- package/build/Entity.js.map +0 -1
- package/build/EntityFields.d.ts +0 -37
- package/build/EntityFields.d.ts.map +0 -1
- package/build/EntityFields.js +0 -3
- package/build/EntityFields.js.map +0 -1
- package/build/EntityFilter.d.ts +0 -113
- package/build/EntityFilter.d.ts.map +0 -1
- package/build/EntityFilter.js +0 -3
- package/build/EntityFilter.js.map +0 -1
- package/build/EntityGraphQLFilter.d.ts +0 -51
- package/build/EntityGraphQLFilter.d.ts.map +0 -1
- package/build/EntityGraphQLFilter.js +0 -54
- package/build/EntityGraphQLFilter.js.map +0 -1
- package/build/EntityManager.d.ts +0 -734
- package/build/EntityManager.d.ts.map +0 -1
- package/build/EntityManager.js +0 -2075
- package/build/EntityManager.js.map +0 -1
- package/build/EntityMetadata.d.ts +0 -185
- package/build/EntityMetadata.d.ts.map +0 -1
- package/build/EntityMetadata.js +0 -61
- package/build/EntityMetadata.js.map +0 -1
- package/build/EnumMetadata.d.ts +0 -15
- package/build/EnumMetadata.d.ts.map +0 -1
- package/build/EnumMetadata.js +0 -3
- 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 -30
- package/build/IndexManager.d.ts.map +0 -1
- package/build/IndexManager.js +0 -206
- package/build/IndexManager.js.map +0 -1
- package/build/InstanceData.d.ts +0 -59
- package/build/InstanceData.d.ts.map +0 -1
- package/build/InstanceData.js +0 -162
- package/build/InstanceData.js.map +0 -1
- package/build/IsLoadedCache.d.ts +0 -32
- package/build/IsLoadedCache.d.ts.map +0 -1
- package/build/IsLoadedCache.js +0 -80
- package/build/IsLoadedCache.js.map +0 -1
- package/build/JoinRows.d.ts +0 -75
- package/build/JoinRows.d.ts.map +0 -1
- package/build/JoinRows.js +0 -246
- package/build/JoinRows.js.map +0 -1
- package/build/PluginManager.d.ts +0 -90
- package/build/PluginManager.d.ts.map +0 -1
- package/build/PluginManager.js +0 -97
- package/build/PluginManager.js.map +0 -1
- package/build/QueryParser.d.ts +0 -271
- package/build/QueryParser.d.ts.map +0 -1
- package/build/QueryParser.js +0 -853
- package/build/QueryParser.js.map +0 -1
- package/build/QueryParser.pruning.d.ts +0 -5
- package/build/QueryParser.pruning.d.ts.map +0 -1
- package/build/QueryParser.pruning.js +0 -118
- package/build/QueryParser.pruning.js.map +0 -1
- package/build/QueryVisitor.d.ts +0 -19
- package/build/QueryVisitor.d.ts.map +0 -1
- package/build/QueryVisitor.js +0 -84
- package/build/QueryVisitor.js.map +0 -1
- package/build/ReactionsManager.d.ts +0 -84
- package/build/ReactionsManager.d.ts.map +0 -1
- package/build/ReactionsManager.js +0 -308
- package/build/ReactionsManager.js.map +0 -1
- package/build/Todo.d.ts +0 -31
- package/build/Todo.d.ts.map +0 -1
- package/build/Todo.js +0 -73
- package/build/Todo.js.map +0 -1
- package/build/caches.d.ts +0 -6
- package/build/caches.d.ts.map +0 -1
- package/build/caches.js +0 -42
- package/build/caches.js.map +0 -1
- package/build/changes.d.ts +0 -79
- package/build/changes.d.ts.map +0 -1
- package/build/changes.js +0 -251
- package/build/changes.js.map +0 -1
- package/build/config.d.ts +0 -237
- package/build/config.d.ts.map +0 -1
- package/build/config.js +0 -298
- package/build/config.js.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 -13
- package/build/configure.d.ts.map +0 -1
- package/build/configure.js +0 -329
- package/build/configure.js.map +0 -1
- package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
- package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findByUniqueDataLoader.js +0 -47
- package/build/dataloaders/findByUniqueDataLoader.js.map +0 -1
- package/build/dataloaders/findCountDataLoader.d.ts +0 -7
- package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findCountDataLoader.js +0 -74
- package/build/dataloaders/findCountDataLoader.js.map +0 -1
- package/build/dataloaders/findDataLoader.d.ts +0 -37
- package/build/dataloaders/findDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findDataLoader.js +0 -337
- package/build/dataloaders/findDataLoader.js.map +0 -1
- package/build/dataloaders/findIdsDataLoader.d.ts +0 -7
- package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findIdsDataLoader.js +0 -74
- package/build/dataloaders/findIdsDataLoader.js.map +0 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findOrCreateDataLoader.js +0 -174
- package/build/dataloaders/findOrCreateDataLoader.js.map +0 -1
- package/build/dataloaders/lensDataLoader.d.ts +0 -12
- package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
- package/build/dataloaders/lensDataLoader.js +0 -180
- package/build/dataloaders/lensDataLoader.js.map +0 -1
- package/build/dataloaders/loadDataLoader.d.ts +0 -11
- package/build/dataloaders/loadDataLoader.d.ts.map +0 -1
- package/build/dataloaders/loadDataLoader.js +0 -54
- package/build/dataloaders/loadDataLoader.js.map +0 -1
- package/build/dataloaders/manyToManyDataLoader.d.ts +0 -8
- package/build/dataloaders/manyToManyDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyDataLoader.js +0 -74
- package/build/dataloaders/manyToManyDataLoader.js.map +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
- package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.js +0 -70
- package/build/dataloaders/manyToManyFindDataLoader.js.map +0 -1
- package/build/dataloaders/oneToManyDataLoader.d.ts +0 -7
- package/build/dataloaders/oneToManyDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyDataLoader.js +0 -60
- package/build/dataloaders/oneToManyDataLoader.js.map +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
- package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.js +0 -71
- package/build/dataloaders/oneToManyFindDataLoader.js.map +0 -1
- package/build/dataloaders/oneToOneDataLoader.d.ts +0 -7
- package/build/dataloaders/oneToOneDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToOneDataLoader.js +0 -59
- package/build/dataloaders/oneToOneDataLoader.js.map +0 -1
- package/build/dataloaders/populateDataLoader.d.ts +0 -13
- package/build/dataloaders/populateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/populateDataLoader.js +0 -148
- package/build/dataloaders/populateDataLoader.js.map +0 -1
- package/build/dataloaders/recursiveChildrenDataLoader.d.ts +0 -7
- package/build/dataloaders/recursiveChildrenDataLoader.d.ts.map +0 -1
- package/build/dataloaders/recursiveChildrenDataLoader.js +0 -77
- package/build/dataloaders/recursiveChildrenDataLoader.js.map +0 -1
- package/build/dataloaders/recursiveParentsDataLoader.d.ts +0 -7
- package/build/dataloaders/recursiveParentsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/recursiveParentsDataLoader.js +0 -59
- package/build/dataloaders/recursiveParentsDataLoader.js.map +0 -1
- package/build/defaults.d.ts +0 -54
- package/build/defaults.d.ts.map +0 -1
- package/build/defaults.js +0 -282
- package/build/defaults.js.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 +0 -3
- 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/EntityWriter.js +0 -237
- package/build/drivers/EntityWriter.js.map +0 -1
- package/build/drivers/IdAssigner.d.ts +0 -50
- package/build/drivers/IdAssigner.d.ts.map +0 -1
- package/build/drivers/IdAssigner.js +0 -133
- package/build/drivers/IdAssigner.js.map +0 -1
- package/build/drivers/PostgresDriver.d.ts.map +0 -1
- package/build/drivers/PostgresDriver.js.map +0 -1
- package/build/drivers/buildRawQuery.d.ts +0 -20
- package/build/drivers/buildRawQuery.d.ts.map +0 -1
- package/build/drivers/buildRawQuery.js +0 -148
- package/build/drivers/buildRawQuery.js.map +0 -1
- package/build/drivers/buildUtils.d.ts +0 -4
- package/build/drivers/buildUtils.d.ts.map +0 -1
- package/build/drivers/buildUtils.js +0 -79
- package/build/drivers/buildUtils.js.map +0 -1
- package/build/drivers/index.d.ts +0 -5
- package/build/drivers/index.d.ts.map +0 -1
- package/build/drivers/index.js.map +0 -1
- package/build/fields.d.ts +0 -24
- package/build/fields.d.ts.map +0 -1
- package/build/fields.js +0 -162
- package/build/fields.js.map +0 -1
- package/build/getProperties.d.ts +0 -28
- package/build/getProperties.d.ts.map +0 -1
- package/build/getProperties.js +0 -141
- package/build/getProperties.js.map +0 -1
- package/build/json.d.ts +0 -77
- package/build/json.d.ts.map +0 -1
- package/build/json.js +0 -116
- package/build/json.js.map +0 -1
- package/build/k.d.ts +0 -2
- package/build/k.d.ts.map +0 -1
- package/build/k.js +0 -9
- package/build/k.js.map +0 -1
- package/build/keys.d.ts +0 -49
- package/build/keys.d.ts.map +0 -1
- package/build/keys.js +0 -195
- package/build/keys.js.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 -112
- package/build/loadHints.d.ts.map +0 -1
- package/build/loadHints.js +0 -75
- package/build/loadHints.js.map +0 -1
- package/build/loadLens.d.ts +0 -66
- package/build/loadLens.d.ts.map +0 -1
- package/build/loadLens.js +0 -287
- 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/FactoryLogger.js +0 -77
- package/build/logging/FactoryLogger.js.map +0 -1
- package/build/logging/FieldLogger.d.ts +0 -27
- package/build/logging/FieldLogger.d.ts.map +0 -1
- package/build/logging/FieldLogger.js +0 -69
- package/build/logging/FieldLogger.js.map +0 -1
- package/build/logging/ReactionLogger.d.ts +0 -23
- package/build/logging/ReactionLogger.d.ts.map +0 -1
- package/build/logging/ReactionLogger.js +0 -65
- package/build/logging/ReactionLogger.js.map +0 -1
- package/build/newEntity.d.ts +0 -45
- package/build/newEntity.d.ts.map +0 -1
- package/build/newEntity.js +0 -106
- package/build/newEntity.js.map +0 -1
- package/build/newTestInstance.d.ts +0 -193
- package/build/newTestInstance.d.ts.map +0 -1
- package/build/newTestInstance.js +0 -738
- package/build/newTestInstance.js.map +0 -1
- package/build/normalizeHints.d.ts +0 -16
- package/build/normalizeHints.d.ts.map +0 -1
- package/build/normalizeHints.js +0 -31
- package/build/normalizeHints.js.map +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
- package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.js +0 -21
- package/build/plugins/ImmutableEntitiesPlugin.js.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 +0 -3
- 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/JsonAggregatePreloader.js +0 -238
- package/build/preloading/JsonAggregatePreloader.js.map +0 -1
- package/build/preloading/canPreload.d.ts +0 -3
- package/build/preloading/canPreload.d.ts.map +0 -1
- package/build/preloading/canPreload.js +0 -21
- package/build/preloading/canPreload.js.map +0 -1
- package/build/preloading/partitionHint.d.ts +0 -5
- package/build/preloading/partitionHint.d.ts.map +0 -1
- package/build/preloading/partitionHint.js +0 -56
- package/build/preloading/partitionHint.js.map +0 -1
- package/build/reactiveHints.d.ts +0 -129
- package/build/reactiveHints.d.ts.map +0 -1
- package/build/reactiveHints.js +0 -458
- 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/AbstractPropertyImpl.js +0 -15
- package/build/relations/AbstractPropertyImpl.js.map +0 -1
- package/build/relations/AbstractRelationImpl.d.ts +0 -36
- package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
- package/build/relations/AbstractRelationImpl.js +0 -19
- package/build/relations/AbstractRelationImpl.js.map +0 -1
- package/build/relations/Collection.d.ts +0 -28
- package/build/relations/Collection.d.ts.map +0 -1
- package/build/relations/Collection.js +0 -18
- package/build/relations/Collection.js.map +0 -1
- package/build/relations/CustomCollection.d.ts +0 -69
- package/build/relations/CustomCollection.d.ts.map +0 -1
- package/build/relations/CustomCollection.js +0 -166
- package/build/relations/CustomCollection.js.map +0 -1
- package/build/relations/CustomReference.d.ts +0 -71
- package/build/relations/CustomReference.d.ts.map +0 -1
- package/build/relations/CustomReference.js +0 -152
- package/build/relations/CustomReference.js.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 +0 -3
- package/build/relations/LargeCollection.js.map +0 -1
- package/build/relations/ManyToManyCollection.d.ts +0 -44
- package/build/relations/ManyToManyCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyCollection.js +0 -268
- package/build/relations/ManyToManyCollection.js.map +0 -1
- package/build/relations/ManyToManyLargeCollection.d.ts +0 -30
- package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyLargeCollection.js +0 -119
- package/build/relations/ManyToManyLargeCollection.js.map +0 -1
- package/build/relations/ManyToOneReference.d.ts +0 -121
- package/build/relations/ManyToOneReference.d.ts.map +0 -1
- package/build/relations/ManyToOneReference.js +0 -389
- package/build/relations/ManyToOneReference.js.map +0 -1
- package/build/relations/OneToManyCollection.d.ts +0 -58
- package/build/relations/OneToManyCollection.d.ts.map +0 -1
- package/build/relations/OneToManyCollection.js +0 -347
- package/build/relations/OneToManyCollection.js.map +0 -1
- package/build/relations/OneToManyLargeCollection.d.ts +0 -26
- package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/OneToManyLargeCollection.js +0 -102
- package/build/relations/OneToManyLargeCollection.js.map +0 -1
- package/build/relations/OneToOneReference.d.ts +0 -93
- package/build/relations/OneToOneReference.d.ts.map +0 -1
- package/build/relations/OneToOneReference.js +0 -228
- package/build/relations/OneToOneReference.js.map +0 -1
- package/build/relations/PolymorphicReference.d.ts +0 -89
- package/build/relations/PolymorphicReference.d.ts.map +0 -1
- package/build/relations/PolymorphicReference.js +0 -244
- package/build/relations/PolymorphicReference.js.map +0 -1
- package/build/relations/ReactiveField.d.ts +0 -87
- package/build/relations/ReactiveField.d.ts.map +0 -1
- package/build/relations/ReactiveField.js +0 -149
- package/build/relations/ReactiveField.js.map +0 -1
- package/build/relations/ReactiveGetter.d.ts +0 -30
- package/build/relations/ReactiveGetter.d.ts.map +0 -1
- package/build/relations/ReactiveGetter.js +0 -38
- package/build/relations/ReactiveGetter.js.map +0 -1
- package/build/relations/ReactiveManyToMany.d.ts +0 -56
- package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
- package/build/relations/ReactiveManyToMany.js +0 -243
- package/build/relations/ReactiveManyToMany.js.map +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -47
- package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.js +0 -155
- package/build/relations/ReactiveManyToManyOtherSide.js.map +0 -1
- package/build/relations/ReactiveQueryField.d.ts +0 -41
- package/build/relations/ReactiveQueryField.d.ts.map +0 -1
- package/build/relations/ReactiveQueryField.js +0 -125
- package/build/relations/ReactiveQueryField.js.map +0 -1
- package/build/relations/ReactiveReference.d.ts +0 -119
- package/build/relations/ReactiveReference.d.ts.map +0 -1
- package/build/relations/ReactiveReference.js +0 -333
- package/build/relations/ReactiveReference.js.map +0 -1
- package/build/relations/ReadOnlyCollection.d.ts +0 -19
- package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
- package/build/relations/ReadOnlyCollection.js +0 -15
- package/build/relations/ReadOnlyCollection.js.map +0 -1
- package/build/relations/RecursiveCollection.d.ts +0 -84
- package/build/relations/RecursiveCollection.d.ts.map +0 -1
- package/build/relations/RecursiveCollection.js +0 -296
- package/build/relations/RecursiveCollection.js.map +0 -1
- package/build/relations/Reference.d.ts +0 -35
- package/build/relations/Reference.d.ts.map +0 -1
- package/build/relations/Reference.js +0 -21
- package/build/relations/Reference.js.map +0 -1
- package/build/relations/Relation.d.ts +0 -14
- package/build/relations/Relation.d.ts.map +0 -1
- package/build/relations/Relation.js +0 -12
- package/build/relations/Relation.js.map +0 -1
- package/build/relations/hasAsyncMethod.d.ts +0 -27
- package/build/relations/hasAsyncMethod.d.ts.map +0 -1
- package/build/relations/hasAsyncMethod.js +0 -47
- package/build/relations/hasAsyncMethod.js.map +0 -1
- package/build/relations/hasAsyncProperty.d.ts +0 -49
- package/build/relations/hasAsyncProperty.d.ts.map +0 -1
- package/build/relations/hasAsyncProperty.js +0 -98
- package/build/relations/hasAsyncProperty.js.map +0 -1
- package/build/relations/hasManyDerived.d.ts +0 -22
- package/build/relations/hasManyDerived.d.ts.map +0 -1
- package/build/relations/hasManyDerived.js +0 -32
- package/build/relations/hasManyDerived.js.map +0 -1
- package/build/relations/hasManyThrough.d.ts +0 -10
- package/build/relations/hasManyThrough.d.ts.map +0 -1
- package/build/relations/hasManyThrough.js +0 -24
- package/build/relations/hasManyThrough.js.map +0 -1
- package/build/relations/hasOneDerived.d.ts +0 -12
- package/build/relations/hasOneDerived.d.ts.map +0 -1
- package/build/relations/hasOneDerived.js +0 -24
- package/build/relations/hasOneDerived.js.map +0 -1
- package/build/relations/hasOneThrough.d.ts +0 -10
- package/build/relations/hasOneThrough.d.ts.map +0 -1
- package/build/relations/hasOneThrough.js +0 -24
- package/build/relations/hasOneThrough.js.map +0 -1
- package/build/relations/index.d.ts +0 -28
- package/build/relations/index.d.ts.map +0 -1
- package/build/relations/index.js +0 -88
- package/build/relations/index.js.map +0 -1
- package/build/rules.d.ts +0 -123
- package/build/rules.d.ts.map +0 -1
- package/build/rules.js +0 -231
- package/build/rules.js.map +0 -1
- package/build/runtimeConfig.d.ts +0 -17
- package/build/runtimeConfig.d.ts.map +0 -1
- package/build/runtimeConfig.js +0 -18
- package/build/runtimeConfig.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 -16
- package/build/temporal.d.ts.map +0 -1
- package/build/temporal.js +0 -48
- 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/typeMap.d.ts +0 -68
- package/build/typeMap.d.ts.map +0 -1
- package/build/typeMap.js +0 -3
- 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/upsert.js +0 -265
- package/build/upsert.js.map +0 -1
- package/build/utils.d.ts +0 -58
- package/build/utils.d.ts.map +0 -1
- package/build/utils.js +0 -236
- package/build/utils.js.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
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OneToOneReferenceImpl = void 0;
|
|
4
|
-
exports.hasOneToOne = hasOneToOne;
|
|
5
|
-
exports.isOneToOneReference = isOneToOneReference;
|
|
6
|
-
exports.isLoadedOneToOneReference = isLoadedOneToOneReference;
|
|
7
|
-
const __1 = require("../");
|
|
8
|
-
const oneToOneDataLoader_1 = require("../dataloaders/oneToOneDataLoader");
|
|
9
|
-
const fields_1 = require("../fields");
|
|
10
|
-
const newEntity_1 = require("../newEntity");
|
|
11
|
-
const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
|
|
12
|
-
const ManyToOneReference_1 = require("./ManyToOneReference");
|
|
13
|
-
const ReactiveReference_1 = require("./ReactiveReference");
|
|
14
|
-
const Reference_1 = require("./Reference");
|
|
15
|
-
const Relation_1 = require("./Relation");
|
|
16
|
-
const OneToOne = Symbol();
|
|
17
|
-
/** An alias for creating `OneToOneReference`s. */
|
|
18
|
-
function hasOneToOne() {
|
|
19
|
-
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
20
|
-
const o2o = (0, __1.getMetadata)(entity).allFields[fieldName];
|
|
21
|
-
return new OneToOneReferenceImpl(entity, o2o);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
/** Type guard utility for determining if an entity field is a Reference. */
|
|
25
|
-
function isOneToOneReference(maybeReference) {
|
|
26
|
-
return maybeReference instanceof OneToOneReferenceImpl;
|
|
27
|
-
}
|
|
28
|
-
/** Type guard utility for determining if an entity field is a loaded Reference. */
|
|
29
|
-
function isLoadedOneToOneReference(maybeReference) {
|
|
30
|
-
return isOneToOneReference(maybeReference) && maybeReference.isLoaded;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Represents the "many" side of a one-to-one relationship.
|
|
34
|
-
*
|
|
35
|
-
* I.e. in a one-to-many from Book -> Reviews, there is a review.book_id that can have many books.
|
|
36
|
-
*
|
|
37
|
-
* This class is for when that `review.book_id` column is itself unique, i.e. like `image.book_id`, and
|
|
38
|
-
* so instead of `Book.images: OneToManyCollection` we have a `Book.image: OneToOneReference`.
|
|
39
|
-
*
|
|
40
|
-
* This class implements `Reference` because it is essentially like "one entity pointing/refereing to another",
|
|
41
|
-
* however because we require a `.load` call to lazily know the value of other side (unlike ManyToOneReference
|
|
42
|
-
* which has it's `book_id` column immediately available in the entity `data` hash), there is some wonkiness
|
|
43
|
-
* around methods like `Reference.id` that are usually callable without `load`/`populate`, that for this
|
|
44
|
-
* class can actually only be called post `load`/`populate`.
|
|
45
|
-
*
|
|
46
|
-
* Currently we enforce this with a runtime check, which is not great, but the trade-off of implementing
|
|
47
|
-
* `Reference` seemed worth the downside of a un-type-safe `.id` property.
|
|
48
|
-
*/
|
|
49
|
-
class OneToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
50
|
-
#field;
|
|
51
|
-
loaded;
|
|
52
|
-
_isLoaded = false;
|
|
53
|
-
#hasBeenSet = false;
|
|
54
|
-
constructor(entity, field) {
|
|
55
|
-
super(entity);
|
|
56
|
-
this.#field = field;
|
|
57
|
-
if ((0, __1.getInstanceData)(entity).isOrWasNew) {
|
|
58
|
-
this._isLoaded = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// These are public to our internal implementation but not exposed in the Collection API
|
|
62
|
-
get fieldName() {
|
|
63
|
-
return this.#field.fieldName;
|
|
64
|
-
}
|
|
65
|
-
get otherFieldName() {
|
|
66
|
-
return this.#field.otherFieldName;
|
|
67
|
-
}
|
|
68
|
-
get id() {
|
|
69
|
-
return this.idMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.loaded);
|
|
70
|
-
}
|
|
71
|
-
get idIfSet() {
|
|
72
|
-
if (this._isLoaded) {
|
|
73
|
-
return this.idMaybe || (0, ManyToOneReference_1.failIfNewEntity)(this.entity, this.fieldName, this.loaded);
|
|
74
|
-
}
|
|
75
|
-
throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
|
|
76
|
-
}
|
|
77
|
-
get idUntagged() {
|
|
78
|
-
return this.idUntaggedMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.loaded);
|
|
79
|
-
}
|
|
80
|
-
get idUntaggedIfSet() {
|
|
81
|
-
return this.idUntaggedMaybe || (0, ManyToOneReference_1.failIfNewEntity)(this.entity, this.fieldName, this.loaded);
|
|
82
|
-
}
|
|
83
|
-
get idMaybe() {
|
|
84
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
85
|
-
if (this._isLoaded) {
|
|
86
|
-
return this.loaded?.idMaybe;
|
|
87
|
-
}
|
|
88
|
-
throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
|
|
89
|
-
}
|
|
90
|
-
get idTaggedMaybe() {
|
|
91
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
92
|
-
if (this._isLoaded) {
|
|
93
|
-
return this.loaded?.idTaggedMaybe;
|
|
94
|
-
}
|
|
95
|
-
throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
|
|
96
|
-
}
|
|
97
|
-
get idUntaggedMaybe() {
|
|
98
|
-
return (0, __1.deTagId)(this.otherMeta, this.idMaybe);
|
|
99
|
-
}
|
|
100
|
-
get isSet() {
|
|
101
|
-
if (this._isLoaded) {
|
|
102
|
-
return this.loaded !== undefined;
|
|
103
|
-
}
|
|
104
|
-
throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
|
|
105
|
-
}
|
|
106
|
-
// opts is an internal parameter
|
|
107
|
-
async load(opts = {}) {
|
|
108
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
109
|
-
if (!this._isLoaded || opts.forceReload) {
|
|
110
|
-
if (!this.entity.isNewEntity) {
|
|
111
|
-
const joinLoaded = this.getPreloaded();
|
|
112
|
-
this.loaded = joinLoaded
|
|
113
|
-
? joinLoaded[0]
|
|
114
|
-
: await (0, oneToOneDataLoader_1.oneToOneDataLoader)(this.entity.em, this)
|
|
115
|
-
.load(this.entity.idTagged)
|
|
116
|
-
.catch(function load(err) {
|
|
117
|
-
throw (0, __1.appendStack)(err, new Error());
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
this._isLoaded = true;
|
|
121
|
-
}
|
|
122
|
-
return this.filterDeleted(this.loaded, opts);
|
|
123
|
-
}
|
|
124
|
-
set(other, opts = {}) {
|
|
125
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
126
|
-
this.#hasBeenSet = true;
|
|
127
|
-
if (other === this.loaded) {
|
|
128
|
-
this._isLoaded = true;
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (this._isLoaded) {
|
|
132
|
-
if (this.loaded && !opts.percolating) {
|
|
133
|
-
this.getOtherRelation(this.loaded).set(undefined);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const { fieldLogger } = (0, __1.getEmInternalApi)(this.entity.em);
|
|
137
|
-
fieldLogger?.logSet(this.entity, this.fieldName, other);
|
|
138
|
-
this.loaded = other;
|
|
139
|
-
this._isLoaded = true;
|
|
140
|
-
// This will no-op and mark other dirty if necessary
|
|
141
|
-
if (other && !opts.percolating) {
|
|
142
|
-
this.getOtherRelation(other).set(this.entity);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
get isLoaded() {
|
|
146
|
-
return this._isLoaded;
|
|
147
|
-
}
|
|
148
|
-
get isPreloaded() {
|
|
149
|
-
return !!this.getPreloaded();
|
|
150
|
-
}
|
|
151
|
-
preload() {
|
|
152
|
-
this.loaded = this.getPreloaded()?.[0];
|
|
153
|
-
this._isLoaded = true;
|
|
154
|
-
}
|
|
155
|
-
import(other, findEntity) {
|
|
156
|
-
this.loaded = other.loaded ? findEntity(other.loaded) : undefined;
|
|
157
|
-
this._isLoaded = true;
|
|
158
|
-
}
|
|
159
|
-
get getWithDeleted() {
|
|
160
|
-
return this.filterDeleted(this.doGet(), { withDeleted: true });
|
|
161
|
-
}
|
|
162
|
-
get get() {
|
|
163
|
-
return this.filterDeleted(this.doGet(), { withDeleted: false });
|
|
164
|
-
}
|
|
165
|
-
get otherMeta() {
|
|
166
|
-
return this.#field.otherMetadata();
|
|
167
|
-
}
|
|
168
|
-
doGet() {
|
|
169
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
170
|
-
if (!this._isLoaded) {
|
|
171
|
-
// This should only be callable in the type system if we've already resolved this to an instance
|
|
172
|
-
throw new Error("get was called when not loaded");
|
|
173
|
-
}
|
|
174
|
-
return this.loaded;
|
|
175
|
-
}
|
|
176
|
-
// internal impl
|
|
177
|
-
setFromOpts(other) {
|
|
178
|
-
this.set(other);
|
|
179
|
-
}
|
|
180
|
-
maybeCascadeDelete() {
|
|
181
|
-
if (this.isCascadeDelete && this.loaded) {
|
|
182
|
-
this.entity.em.delete(this.loaded);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
async cleanupOnEntityDeleted() {
|
|
186
|
-
// if we are going to delete this relation as well, then we don't need to clean it up
|
|
187
|
-
if (this.isCascadeDelete)
|
|
188
|
-
return;
|
|
189
|
-
const current = await this.load({ withDeleted: true });
|
|
190
|
-
if (current !== undefined) {
|
|
191
|
-
const otherSide = this.getOtherRelation(current);
|
|
192
|
-
// Don't call `ReactiveReference.set` because it'll blow up
|
|
193
|
-
if (!(0, ReactiveReference_1.isReactiveReference)(otherSide)) {
|
|
194
|
-
otherSide.set(undefined);
|
|
195
|
-
}
|
|
196
|
-
(0, fields_1.setField)(current, this.otherFieldName, undefined);
|
|
197
|
-
}
|
|
198
|
-
this.loaded = undefined;
|
|
199
|
-
this._isLoaded = true;
|
|
200
|
-
}
|
|
201
|
-
get hasBeenSet() {
|
|
202
|
-
return this.#hasBeenSet;
|
|
203
|
-
}
|
|
204
|
-
toString() {
|
|
205
|
-
return `OneToOneReference(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.otherMeta.type}, otherFieldName: ${this.otherFieldName})`;
|
|
206
|
-
}
|
|
207
|
-
filterDeleted(entity, opts) {
|
|
208
|
-
return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
|
|
209
|
-
}
|
|
210
|
-
/** Returns the other relation that points back at us, i.e. we're `Author.image` and this is `Image.author_id`. */
|
|
211
|
-
getOtherRelation(other) {
|
|
212
|
-
return other[this.otherFieldName];
|
|
213
|
-
}
|
|
214
|
-
getPreloaded() {
|
|
215
|
-
if (this.entity.isNewEntity)
|
|
216
|
-
return undefined;
|
|
217
|
-
return (0, __1.getEmInternalApi)(this.entity.em).getPreloadedRelation(this.entity.idTagged, this.fieldName);
|
|
218
|
-
}
|
|
219
|
-
get isCascadeDelete() {
|
|
220
|
-
return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.fieldName);
|
|
221
|
-
}
|
|
222
|
-
[Relation_1.RelationT] = null;
|
|
223
|
-
[Relation_1.RelationU] = null;
|
|
224
|
-
[Reference_1.ReferenceN] = null;
|
|
225
|
-
[OneToOne] = null;
|
|
226
|
-
}
|
|
227
|
-
exports.OneToOneReferenceImpl = OneToOneReferenceImpl;
|
|
228
|
-
//# sourceMappingURL=OneToOneReference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OneToOneReference.js","sourceRoot":"","sources":["../../src/relations/OneToOneReference.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf, TaggedId } from "../EntityManager";
|
|
3
|
-
import { Reference } from "../index";
|
|
4
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
5
|
-
import { ReferenceN } from "./Reference";
|
|
6
|
-
import { RelationT, RelationU } from "./Relation";
|
|
7
|
-
export declare function hasOnePolymorphic<T extends Entity, U extends Entity, N extends never | undefined>(): PolymorphicReference<T, U, N>;
|
|
8
|
-
/** Type guard utility for determining if an entity field is a PolymorphicReference. */
|
|
9
|
-
export declare function isPolymorphicReference(maybeReference: any): maybeReference is PolymorphicReference<any, any, any>;
|
|
10
|
-
/**
|
|
11
|
-
* A reference that can be assigned to multiple different entity types.
|
|
12
|
-
*
|
|
13
|
-
* I.e. a `Comment.parent` reference that can be an `Author` or `Book`.
|
|
14
|
-
*
|
|
15
|
-
* The `U` generic will be the type union of `Author | Book`.
|
|
16
|
-
*/
|
|
17
|
-
export interface PolymorphicReference<T extends Entity, U extends Entity, N extends never | undefined> extends Reference<T, U, N> {
|
|
18
|
-
/** Returns the id of the current assigned entity, or a runtime error if either 1) unset or 2) set to a new entity that doesn't have an `id` yet. */
|
|
19
|
-
id: IdOf<U>;
|
|
20
|
-
/** Returns the id of the current assigned entity, undefined if unset, or a runtime error if set to a new entity. */
|
|
21
|
-
idIfSet: IdOf<U> | undefined;
|
|
22
|
-
/** Returns the id of the current assigned entity, undefined if unset, or undefined if set to a new entity. */
|
|
23
|
-
idMaybe: IdOf<U> | undefined;
|
|
24
|
-
idTagged: string;
|
|
25
|
-
/** Returns `true` if this relation is currently set (i.e. regardless of whether it's loaded, or if it is set but the assigned entity doesn't have an id saved. */
|
|
26
|
-
readonly isSet: boolean;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Manages a set of foreign keys from one entity to another, i.e. `Comment.parent --> Book | BookReview`.
|
|
30
|
-
*
|
|
31
|
-
* We keep the current `parent` / `parent.id` value in the `__orm.data` hash, where the
|
|
32
|
-
* current value could be either the `comments.parent_book_id` / `comments.parent_book_review_id` id (as a tagged string)
|
|
33
|
-
* from the database, or an entity `Book` / `BookReview` that the user has set.
|
|
34
|
-
*
|
|
35
|
-
* Note that if any of our columns (eg `comments.parent_book_review_id`) is unique, this `PolymorphicReference` will
|
|
36
|
-
* essentially be half of a one-to-one relationship, but we'll keep using this reference on the "owning" side; the other
|
|
37
|
-
* side, i.e. `BookReview.comment` will use a `OneToOneReference` to point back to us.
|
|
38
|
-
*/
|
|
39
|
-
export declare class PolymorphicReferenceImpl<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<T, U> implements PolymorphicReference<T, U, N> {
|
|
40
|
-
#private;
|
|
41
|
-
fieldName: keyof T & string;
|
|
42
|
-
private loaded;
|
|
43
|
-
private _isLoaded;
|
|
44
|
-
private field;
|
|
45
|
-
constructor(entity: T, fieldName: keyof T & string);
|
|
46
|
-
private get currentComponent();
|
|
47
|
-
private get isCascadeDelete();
|
|
48
|
-
load(opts?: {
|
|
49
|
-
withDeleted?: boolean;
|
|
50
|
-
forceReload?: boolean;
|
|
51
|
-
}): Promise<U | N>;
|
|
52
|
-
set(other: U | N): void;
|
|
53
|
-
get isSet(): boolean;
|
|
54
|
-
get isLoaded(): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Looks for an entity in `EntityManager`, b/c we may have it in memory even if
|
|
57
|
-
* our reference is not specifically loaded.
|
|
58
|
-
*/
|
|
59
|
-
maybeFindEntity(): U | undefined;
|
|
60
|
-
get isPreloaded(): boolean;
|
|
61
|
-
preload(): void;
|
|
62
|
-
private unload;
|
|
63
|
-
import(other: PolymorphicReferenceImpl<T, U, N>, findEntity: (e: U) => U): void;
|
|
64
|
-
private doGet;
|
|
65
|
-
get getWithDeleted(): U | N;
|
|
66
|
-
get get(): U | N;
|
|
67
|
-
get id(): IdOf<U>;
|
|
68
|
-
get idMaybe(): IdOf<U> | undefined;
|
|
69
|
-
get idIfSet(): IdOf<U> | N | undefined;
|
|
70
|
-
get idTagged(): string;
|
|
71
|
-
get idTaggedMaybe(): string | undefined;
|
|
72
|
-
get hasBeenSet(): boolean;
|
|
73
|
-
setFromOpts(other: U): void;
|
|
74
|
-
maybeCascadeDelete(): void;
|
|
75
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
76
|
-
setImpl(other: U | N): void;
|
|
77
|
-
current(opts?: {
|
|
78
|
-
withDeleted?: boolean;
|
|
79
|
-
}): U | TaggedId | N;
|
|
80
|
-
toString(): string;
|
|
81
|
-
private filterDeleted;
|
|
82
|
-
/** Returns the other relation that points back at us, i.e. we're `comment.parent_book_id` and this is `Book.comments`. */
|
|
83
|
-
private getOtherRelation;
|
|
84
|
-
private maybeFindExisting;
|
|
85
|
-
[RelationT]: T;
|
|
86
|
-
[RelationU]: U;
|
|
87
|
-
[ReferenceN]: N;
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=PolymorphicReference.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PolymorphicReference.d.ts","sourceRoot":"","sources":["../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PolymorphicReferenceImpl = void 0;
|
|
4
|
-
exports.hasOnePolymorphic = hasOnePolymorphic;
|
|
5
|
-
exports.isPolymorphicReference = isPolymorphicReference;
|
|
6
|
-
const Entity_1 = require("../Entity");
|
|
7
|
-
const EntityManager_1 = require("../EntityManager");
|
|
8
|
-
const EntityMetadata_1 = require("../EntityMetadata");
|
|
9
|
-
const configure_1 = require("../configure");
|
|
10
|
-
const fields_1 = require("../fields");
|
|
11
|
-
const index_1 = require("../index");
|
|
12
|
-
const newEntity_1 = require("../newEntity");
|
|
13
|
-
const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
|
|
14
|
-
const ManyToOneReference_1 = require("./ManyToOneReference");
|
|
15
|
-
const OneToManyCollection_1 = require("./OneToManyCollection");
|
|
16
|
-
const Reference_1 = require("./Reference");
|
|
17
|
-
const Relation_1 = require("./Relation");
|
|
18
|
-
function hasOnePolymorphic() {
|
|
19
|
-
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
20
|
-
return new PolymorphicReferenceImpl(entity, fieldName);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
/** Type guard utility for determining if an entity field is a PolymorphicReference. */
|
|
24
|
-
function isPolymorphicReference(maybeReference) {
|
|
25
|
-
return maybeReference instanceof PolymorphicReferenceImpl;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Manages a set of foreign keys from one entity to another, i.e. `Comment.parent --> Book | BookReview`.
|
|
29
|
-
*
|
|
30
|
-
* We keep the current `parent` / `parent.id` value in the `__orm.data` hash, where the
|
|
31
|
-
* current value could be either the `comments.parent_book_id` / `comments.parent_book_review_id` id (as a tagged string)
|
|
32
|
-
* from the database, or an entity `Book` / `BookReview` that the user has set.
|
|
33
|
-
*
|
|
34
|
-
* Note that if any of our columns (eg `comments.parent_book_review_id`) is unique, this `PolymorphicReference` will
|
|
35
|
-
* essentially be half of a one-to-one relationship, but we'll keep using this reference on the "owning" side; the other
|
|
36
|
-
* side, i.e. `BookReview.comment` will use a `OneToOneReference` to point back to us.
|
|
37
|
-
*/
|
|
38
|
-
class PolymorphicReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
39
|
-
fieldName;
|
|
40
|
-
loaded;
|
|
41
|
-
// We need a separate boolean to b/c loaded == undefined can still mean "_isLoaded" for nullable fks.
|
|
42
|
-
_isLoaded = false;
|
|
43
|
-
field;
|
|
44
|
-
#hasBeenSet = false;
|
|
45
|
-
constructor(entity, fieldName) {
|
|
46
|
-
super(entity);
|
|
47
|
-
this.fieldName = fieldName;
|
|
48
|
-
this.field = (0, EntityMetadata_1.getMetadata)(entity).allFields[this.fieldName];
|
|
49
|
-
if ((0, index_1.getInstanceData)(entity).isOrWasNew) {
|
|
50
|
-
this._isLoaded = true;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
get currentComponent() {
|
|
54
|
-
const cstr = (0, configure_1.maybeGetConstructorFromReference)(this.current());
|
|
55
|
-
return this.field.components.find((c) => c.otherMetadata().cstr === cstr);
|
|
56
|
-
}
|
|
57
|
-
get isCascadeDelete() {
|
|
58
|
-
return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.fieldName);
|
|
59
|
-
}
|
|
60
|
-
async load(opts = {}) {
|
|
61
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
62
|
-
const current = this.current();
|
|
63
|
-
// Resolve the id to an entity
|
|
64
|
-
if (!(0, Entity_1.isEntity)(current) && current !== undefined && (!this._isLoaded || opts.forceReload)) {
|
|
65
|
-
this.loaded = (await this.entity.em.load((0, index_1.getConstructorFromTaggedId)(current), current));
|
|
66
|
-
}
|
|
67
|
-
this._isLoaded = true;
|
|
68
|
-
return this.filterDeleted(this.loaded, opts);
|
|
69
|
-
}
|
|
70
|
-
set(other) {
|
|
71
|
-
this.setImpl(other);
|
|
72
|
-
}
|
|
73
|
-
get isSet() {
|
|
74
|
-
return this.current() !== undefined;
|
|
75
|
-
}
|
|
76
|
-
get isLoaded() {
|
|
77
|
-
return this._isLoaded;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Looks for an entity in `EntityManager`, b/c we may have it in memory even if
|
|
81
|
-
* our reference is not specifically loaded.
|
|
82
|
-
*/
|
|
83
|
-
maybeFindEntity() {
|
|
84
|
-
// Check this.loaded first b/c a new entity won't have an id yet
|
|
85
|
-
const { idTaggedMaybe } = this;
|
|
86
|
-
return this.loaded ?? (idTaggedMaybe !== undefined ? this.entity.em.getEntity(idTaggedMaybe) : undefined);
|
|
87
|
-
}
|
|
88
|
-
get isPreloaded() {
|
|
89
|
-
return !!this.maybeFindEntity();
|
|
90
|
-
}
|
|
91
|
-
preload() {
|
|
92
|
-
this.loaded = this.maybeFindEntity();
|
|
93
|
-
this._isLoaded = true;
|
|
94
|
-
}
|
|
95
|
-
unload() {
|
|
96
|
-
this.loaded = undefined;
|
|
97
|
-
this._isLoaded = false;
|
|
98
|
-
}
|
|
99
|
-
import(other, findEntity) {
|
|
100
|
-
this.loaded = other.loaded ? findEntity(other.loaded) : undefined;
|
|
101
|
-
this._isLoaded = true;
|
|
102
|
-
}
|
|
103
|
-
doGet(opts) {
|
|
104
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
105
|
-
// This should only be callable in the type system if we've already resolved this to an instance,
|
|
106
|
-
// but, just in case we somehow got here in an unloaded state, check to see if we're already in the UoW
|
|
107
|
-
if (!this._isLoaded) {
|
|
108
|
-
const existing = this.maybeFindExisting();
|
|
109
|
-
if (existing === undefined) {
|
|
110
|
-
throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
|
|
111
|
-
}
|
|
112
|
-
this.loaded = existing;
|
|
113
|
-
this._isLoaded = true;
|
|
114
|
-
}
|
|
115
|
-
return this.filterDeleted(this.loaded, opts);
|
|
116
|
-
}
|
|
117
|
-
get getWithDeleted() {
|
|
118
|
-
return this.doGet({ withDeleted: true });
|
|
119
|
-
}
|
|
120
|
-
get get() {
|
|
121
|
-
return this.doGet({ withDeleted: false });
|
|
122
|
-
}
|
|
123
|
-
get id() {
|
|
124
|
-
return this.idMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.current());
|
|
125
|
-
}
|
|
126
|
-
get idMaybe() {
|
|
127
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
128
|
-
return (0, index_1.maybeResolveReferenceToId)(this.current());
|
|
129
|
-
}
|
|
130
|
-
get idIfSet() {
|
|
131
|
-
return this.idMaybe || (0, ManyToOneReference_1.failIfNewEntity)(this.entity, this.fieldName, this.current());
|
|
132
|
-
}
|
|
133
|
-
get idTagged() {
|
|
134
|
-
return this.idTaggedMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.current());
|
|
135
|
-
}
|
|
136
|
-
get idTaggedMaybe() {
|
|
137
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
138
|
-
return (0, index_1.maybeResolveReferenceToId)(this.current());
|
|
139
|
-
}
|
|
140
|
-
get hasBeenSet() {
|
|
141
|
-
return this.#hasBeenSet;
|
|
142
|
-
}
|
|
143
|
-
// private impl
|
|
144
|
-
setFromOpts(other) {
|
|
145
|
-
this.setImpl(other);
|
|
146
|
-
}
|
|
147
|
-
maybeCascadeDelete() {
|
|
148
|
-
if (this.isCascadeDelete) {
|
|
149
|
-
const current = this.current({ withDeleted: true });
|
|
150
|
-
if (current !== undefined && typeof current !== "string") {
|
|
151
|
-
this.entity.em.delete(current);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
async cleanupOnEntityDeleted() {
|
|
156
|
-
// if we are going to delete this relation as well, then we don't need to clean it up
|
|
157
|
-
if (this.isCascadeDelete)
|
|
158
|
-
return;
|
|
159
|
-
const current = await this.load({ withDeleted: true });
|
|
160
|
-
if (current !== undefined) {
|
|
161
|
-
const o2m = this.getOtherRelation(current);
|
|
162
|
-
if (o2m instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
163
|
-
o2m.remove(this.entity, { requireLoaded: false });
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
o2m.set(undefined);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
(0, fields_1.setField)(this.entity, this.fieldName, undefined);
|
|
170
|
-
this.loaded = undefined;
|
|
171
|
-
this._isLoaded = true;
|
|
172
|
-
}
|
|
173
|
-
// Internal method used by PolymorphicReference
|
|
174
|
-
setImpl(other) {
|
|
175
|
-
this.#hasBeenSet = true;
|
|
176
|
-
if ((0, EntityManager_1.sameEntity)(other, this.current({ withDeleted: true }))) {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
if (other !== undefined &&
|
|
180
|
-
!this.field.components.some((c) => other instanceof c.otherMetadata().cstr ||
|
|
181
|
-
(typeof other === "string" && (0, index_1.getConstructorFromTaggedId)(other) === c.otherMetadata().cstr))) {
|
|
182
|
-
(0, index_1.fail)(`${other} cannot be set as '${this.field.fieldName}' on ${this.entity}`);
|
|
183
|
-
}
|
|
184
|
-
// we may not be loaded yet, but our previous entity might already be in the UoW
|
|
185
|
-
const previousLoaded = this.loaded ?? this.maybeFindExisting();
|
|
186
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
187
|
-
// Prefer to keep the id in our data hash, but if this is a new entity w/o an id, use the entity itself
|
|
188
|
-
const changed = (0, fields_1.setField)(this.entity, this.fieldName, (0, Entity_1.isEntity)(other) ? (other?.idTaggedMaybe ?? other) : other);
|
|
189
|
-
if (typeof other === "string") {
|
|
190
|
-
this.loaded = undefined;
|
|
191
|
-
this._isLoaded = false;
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
this.loaded = other;
|
|
195
|
-
this._isLoaded = true;
|
|
196
|
-
}
|
|
197
|
-
// If had an existing value, remove us from its collection
|
|
198
|
-
if (previousLoaded) {
|
|
199
|
-
const prevRelation = this.getOtherRelation(previousLoaded);
|
|
200
|
-
if (prevRelation instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
201
|
-
prevRelation.removeIfLoaded(this.entity);
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
prevRelation.set(undefined);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (other !== undefined && (0, Entity_1.isEntity)(other)) {
|
|
208
|
-
const newRelation = this.getOtherRelation(other);
|
|
209
|
-
if (newRelation instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
210
|
-
newRelation.add(this.entity);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
newRelation.set(this.entity);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
// We need to keep U in data[fieldName] to handle entities without an id assigned yet.
|
|
218
|
-
current(opts) {
|
|
219
|
-
const current = (0, fields_1.getField)(this.entity, this.fieldName);
|
|
220
|
-
if (current !== undefined && (0, Entity_1.isEntity)(current)) {
|
|
221
|
-
return this.filterDeleted(current, opts);
|
|
222
|
-
}
|
|
223
|
-
return current;
|
|
224
|
-
}
|
|
225
|
-
toString() {
|
|
226
|
-
return `PolymorphicReference(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.currentComponent?.otherMetadata().type}, otherFieldName: ${this.currentComponent?.otherFieldName}, id: ${this.id})`;
|
|
227
|
-
}
|
|
228
|
-
filterDeleted(entity, opts) {
|
|
229
|
-
return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
|
|
230
|
-
}
|
|
231
|
-
/** Returns the other relation that points back at us, i.e. we're `comment.parent_book_id` and this is `Book.comments`. */
|
|
232
|
-
getOtherRelation(other) {
|
|
233
|
-
const component = this.field.components.find((c) => other instanceof c.otherMetadata().cstr);
|
|
234
|
-
return other[component?.otherFieldName];
|
|
235
|
-
}
|
|
236
|
-
maybeFindExisting() {
|
|
237
|
-
return this.idTaggedMaybe !== undefined ? this.entity.em.getEntity(this.idTagged) : undefined;
|
|
238
|
-
}
|
|
239
|
-
[Relation_1.RelationT] = null;
|
|
240
|
-
[Relation_1.RelationU] = null;
|
|
241
|
-
[Reference_1.ReferenceN] = null;
|
|
242
|
-
}
|
|
243
|
-
exports.PolymorphicReferenceImpl = PolymorphicReferenceImpl;
|
|
244
|
-
//# sourceMappingURL=PolymorphicReference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PolymorphicReference.js","sourceRoot":"","sources":["../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":";;;AAsBA,8CAQC;AAGD,wDAEC;AAnCD,sCAA6C;AAC7C,oDAA8D;AAC9D,sDAA2E;AAC3E,4CAAgE;AAChE,sCAA+C;AAC/C,oCASkB;AAClB,4CAAyC;AACzC,iEAA+E;AAC/E,6DAAiE;AACjE,+DAA4D;AAC5D,2CAAyC;AACzC,yCAAkD;AAElD,SAAgB,iBAAiB;IAK/B,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,SAAS,EAAE,EAAE;QACxC,OAAO,IAAI,wBAAwB,CAAU,MAAM,EAAE,SAA6B,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uFAAuF;AACvF,SAAgB,sBAAsB,CAAC,cAAmB;IACxD,OAAO,cAAc,YAAY,wBAAwB,CAAC;AAC5D,CAAC;AA0BD;;;;;;;;;;GAUG;AACH,MAAa,wBACX,SAAQ,2CAA0B;IAWzB;IARD,MAAM,CAAoB;IAClC,qGAAqG;IAC7F,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,CAAmB;IAChC,WAAW,GAAG,KAAK,CAAC;IAEpB,YACE,MAAS,EACF,SAA2B;QAElC,KAAK,CAAC,MAAM,CAAC,CAAC;QAFP,cAAS,GAAT,SAAS,CAAkB;QAGlC,IAAI,CAAC,KAAK,GAAG,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAqB,CAAC;QAC/E,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAY,gBAAgB;QAC1B,MAAM,IAAI,GAAG,IAAA,4CAAgC,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK,IAAI,CAAQ,CAAC;IACnF,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAA,sCAAe,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAyD,EAAE;QACpE,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,8BAA8B;QAC9B,IAAI,CAAC,IAAA,iBAAQ,EAAC,OAAO,CAAC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAA,kCAA0B,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAa,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAO,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,KAAY;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,gEAAgE;QAChE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,UAAuB;QACtE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,IAAgC;QAC5C,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,iGAAiG;QACjG,uGAAuG;QACvG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,iBAAiB,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAO,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAA,6BAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,OAAO;QACT,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,OAAO,IAAA,iCAAyB,EAAC,IAAI,CAAC,OAAO,EAAE,CAAwB,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,IAAI,IAAA,oCAAe,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,IAAI,IAAA,6BAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,aAAa;QACf,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,OAAO,IAAA,iCAAyB,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe;IAEf,WAAW,CAAC,KAAQ;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAY,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,qFAAqF;QACrF,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,GAAG,YAAY,yCAAmB,EAAE,CAAC;gBACvC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,SAAgB,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,+CAA+C;IAC/C,OAAO,CAAC,KAAY;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,IAAA,0BAAU,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IACE,KAAK,KAAK,SAAS;YACnB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI;gBACvC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,kCAA0B,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAC9F,EACD,CAAC;YACD,IAAA,YAAI,EAAC,GAAG,KAAK,sBAAsB,IAAI,CAAC,KAAK,CAAC,SAAS,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,gFAAgF;QAChF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/D,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEzC,uGAAuG;QACvG,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEjH,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,0DAA0D;QAC1D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAC3D,IAAI,YAAY,YAAY,yCAAmB,EAAE,CAAC;gBAChD,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,WAAW,YAAY,yCAAmB,EAAE,CAAC;gBAC/C,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,OAAO,CAAC,IAAgC;QACtC,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,SAAS,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,OAAY,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,QAAQ;QACb,OAAO,gCAAgC,IAAI,CAAC,MAAM,gBAChD,IAAI,CAAC,SACP,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC,IAAI,qBACzD,IAAI,CAAC,gBAAgB,EAAE,cACzB,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,MAAa,EAAE,IAAgC;QACnE,OAAO,IAAI,EAAE,WAAW,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,SAAe,CAAC;IACnH,CAAC;IAED,0HAA0H;IAClH,gBAAgB,CAAC,KAAQ;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAQ,CAAC;QACpG,OAAQ,KAAW,CAAC,SAAS,EAAE,cAAyB,CAAQ,CAAC;IACnE,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,CAAC;IAED,CAAC,oBAAS,CAAC,GAAM,IAAK,CAAC;IACvB,CAAC,oBAAS,CAAC,GAAM,IAAK,CAAC;IACvB,CAAC,sBAAU,CAAC,GAAM,IAAK,CAAC;CACzB;AA5PD,4DA4PC"}
|