taon-typeorm 18.0.23 → 19.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.
Files changed (1216) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/package.json +1 -1
  3. package/tmp-environment.json +24 -3
  4. package/browser/esm2022/lib/index.mjs +0 -4
  5. package/browser/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
  6. package/browser/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
  7. package/browser/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
  8. package/browser/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
  9. package/browser/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
  10. package/browser/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
  11. package/browser/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
  12. package/browser/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
  13. package/browser/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
  14. package/browser/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
  15. package/browser/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
  16. package/browser/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
  17. package/browser/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
  18. package/browser/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
  19. package/browser/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
  20. package/browser/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
  21. package/browser/esm2022/lib/typeorm/constants.mjs +0 -4
  22. package/browser/esm2022/lib/typeorm/container.mjs +0 -57
  23. package/browser/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
  24. package/browser/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
  25. package/browser/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
  26. package/browser/esm2022/lib/typeorm/data-source/index.mjs +0 -4
  27. package/browser/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
  28. package/browser/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
  29. package/browser/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
  30. package/browser/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
  31. package/browser/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
  32. package/browser/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
  33. package/browser/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
  34. package/browser/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
  35. package/browser/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
  36. package/browser/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
  37. package/browser/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
  38. package/browser/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
  39. package/browser/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
  40. package/browser/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
  41. package/browser/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
  42. package/browser/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
  43. package/browser/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
  44. package/browser/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
  45. package/browser/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
  46. package/browser/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
  47. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
  48. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
  49. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
  50. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
  51. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
  52. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
  53. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
  54. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
  55. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
  56. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
  57. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
  58. package/browser/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
  59. package/browser/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
  60. package/browser/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
  61. package/browser/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
  62. package/browser/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
  63. package/browser/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
  64. package/browser/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
  65. package/browser/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
  66. package/browser/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
  67. package/browser/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
  68. package/browser/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
  69. package/browser/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
  70. package/browser/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
  71. package/browser/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
  72. package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
  73. package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
  74. package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
  75. package/browser/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
  76. package/browser/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
  77. package/browser/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
  78. package/browser/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
  79. package/browser/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
  80. package/browser/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
  81. package/browser/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
  82. package/browser/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
  83. package/browser/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
  84. package/browser/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
  85. package/browser/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
  86. package/browser/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
  87. package/browser/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
  88. package/browser/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
  89. package/browser/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
  90. package/browser/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
  91. package/browser/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
  92. package/browser/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
  93. package/browser/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
  94. package/browser/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
  95. package/browser/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
  96. package/browser/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
  97. package/browser/esm2022/lib/typeorm/driver/Query.mjs +0 -13
  98. package/browser/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
  99. package/browser/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
  100. package/browser/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
  101. package/browser/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
  102. package/browser/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
  103. package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
  104. package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
  105. package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
  106. package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
  107. package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
  108. package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
  109. package/browser/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
  110. package/browser/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
  111. package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
  112. package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
  113. package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
  114. package/browser/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
  115. package/browser/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
  116. package/browser/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
  117. package/browser/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
  118. package/browser/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
  119. package/browser/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
  120. package/browser/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
  121. package/browser/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
  122. package/browser/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
  123. package/browser/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
  124. package/browser/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
  125. package/browser/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
  126. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
  127. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
  128. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
  129. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
  130. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
  131. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
  132. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
  133. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
  134. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
  135. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
  136. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
  137. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
  138. package/browser/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
  139. package/browser/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
  140. package/browser/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
  141. package/browser/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
  142. package/browser/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
  143. package/browser/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
  144. package/browser/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
  145. package/browser/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
  146. package/browser/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
  147. package/browser/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
  148. package/browser/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
  149. package/browser/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
  150. package/browser/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
  151. package/browser/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
  152. package/browser/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
  153. package/browser/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
  154. package/browser/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
  155. package/browser/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
  156. package/browser/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
  157. package/browser/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
  158. package/browser/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
  159. package/browser/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
  160. package/browser/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
  161. package/browser/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
  162. package/browser/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
  163. package/browser/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
  164. package/browser/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
  165. package/browser/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
  166. package/browser/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
  167. package/browser/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
  168. package/browser/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
  169. package/browser/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
  170. package/browser/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
  171. package/browser/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
  172. package/browser/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
  173. package/browser/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
  174. package/browser/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
  175. package/browser/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
  176. package/browser/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
  177. package/browser/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
  178. package/browser/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
  179. package/browser/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
  180. package/browser/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
  181. package/browser/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
  182. package/browser/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
  183. package/browser/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
  184. package/browser/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
  185. package/browser/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
  186. package/browser/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
  187. package/browser/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
  188. package/browser/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
  189. package/browser/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
  190. package/browser/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
  191. package/browser/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
  192. package/browser/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
  193. package/browser/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
  194. package/browser/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
  195. package/browser/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
  196. package/browser/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
  197. package/browser/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
  198. package/browser/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
  199. package/browser/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
  200. package/browser/esm2022/lib/typeorm/error/index.mjs +0 -63
  201. package/browser/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
  202. package/browser/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
  203. package/browser/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
  204. package/browser/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
  205. package/browser/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
  206. package/browser/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
  207. package/browser/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
  208. package/browser/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
  209. package/browser/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
  210. package/browser/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
  211. package/browser/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
  212. package/browser/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
  213. package/browser/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
  214. package/browser/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
  215. package/browser/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
  216. package/browser/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
  217. package/browser/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
  218. package/browser/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
  219. package/browser/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
  220. package/browser/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
  221. package/browser/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
  222. package/browser/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
  223. package/browser/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
  224. package/browser/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
  225. package/browser/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
  226. package/browser/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
  227. package/browser/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
  228. package/browser/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
  229. package/browser/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
  230. package/browser/esm2022/lib/typeorm/globals.mjs +0 -165
  231. package/browser/esm2022/lib/typeorm/index.mjs +0 -157
  232. package/browser/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
  233. package/browser/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
  234. package/browser/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
  235. package/browser/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
  236. package/browser/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
  237. package/browser/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
  238. package/browser/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
  239. package/browser/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
  240. package/browser/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
  241. package/browser/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
  242. package/browser/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
  243. package/browser/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
  244. package/browser/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
  245. package/browser/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
  246. package/browser/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
  247. package/browser/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
  248. package/browser/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
  249. package/browser/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
  250. package/browser/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
  251. package/browser/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
  252. package/browser/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
  253. package/browser/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
  254. package/browser/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
  255. package/browser/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
  256. package/browser/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
  257. package/browser/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
  258. package/browser/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
  259. package/browser/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
  260. package/browser/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
  261. package/browser/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
  262. package/browser/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
  263. package/browser/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
  264. package/browser/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
  265. package/browser/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
  266. package/browser/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
  267. package/browser/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
  268. package/browser/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
  269. package/browser/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
  270. package/browser/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
  271. package/browser/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
  272. package/browser/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
  273. package/browser/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
  274. package/browser/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
  275. package/browser/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
  276. package/browser/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
  277. package/browser/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
  278. package/browser/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
  279. package/browser/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
  280. package/browser/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
  281. package/browser/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
  282. package/browser/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
  283. package/browser/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
  284. package/browser/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
  285. package/browser/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
  286. package/browser/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
  287. package/browser/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
  288. package/browser/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
  289. package/browser/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
  290. package/browser/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
  291. package/browser/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
  292. package/browser/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
  293. package/browser/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
  294. package/browser/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
  295. package/browser/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
  296. package/browser/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
  297. package/browser/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
  298. package/browser/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
  299. package/browser/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
  300. package/browser/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
  301. package/browser/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
  302. package/browser/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
  303. package/browser/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
  304. package/browser/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
  305. package/browser/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
  306. package/browser/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
  307. package/browser/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
  308. package/browser/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
  309. package/browser/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -346
  310. package/browser/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
  311. package/browser/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
  312. package/browser/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
  313. package/browser/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
  314. package/browser/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
  315. package/browser/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
  316. package/browser/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
  317. package/browser/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
  318. package/browser/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
  319. package/browser/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
  320. package/browser/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
  321. package/browser/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
  322. package/browser/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
  323. package/browser/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
  324. package/browser/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
  325. package/browser/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
  326. package/browser/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
  327. package/browser/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
  328. package/browser/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
  329. package/browser/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
  330. package/browser/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
  331. package/browser/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
  332. package/browser/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
  333. package/browser/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
  334. package/browser/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
  335. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
  336. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
  337. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
  338. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
  339. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
  340. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
  341. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
  342. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
  343. package/browser/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
  344. package/browser/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
  345. package/browser/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
  346. package/browser/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
  347. package/browser/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
  348. package/browser/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
  349. package/browser/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
  350. package/browser/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
  351. package/browser/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
  352. package/browser/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
  353. package/browser/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
  354. package/browser/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
  355. package/browser/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
  356. package/browser/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
  357. package/browser/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
  358. package/browser/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
  359. package/browser/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
  360. package/browser/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
  361. package/browser/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
  362. package/browser/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
  363. package/browser/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
  364. package/browser/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
  365. package/browser/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
  366. package/browser/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
  367. package/browser/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
  368. package/browser/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
  369. package/browser/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
  370. package/browser/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
  371. package/browser/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
  372. package/browser/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
  373. package/browser/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
  374. package/browser/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
  375. package/browser/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
  376. package/browser/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
  377. package/browser/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
  378. package/browser/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
  379. package/browser/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
  380. package/browser/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
  381. package/browser/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
  382. package/browser/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
  383. package/browser/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
  384. package/browser/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
  385. package/browser/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
  386. package/browser/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
  387. package/browser/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
  388. package/browser/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
  389. package/browser/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
  390. package/browser/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
  391. package/browser/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
  392. package/browser/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
  393. package/browser/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
  394. package/browser/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
  395. package/browser/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
  396. package/browser/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
  397. package/browser/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
  398. package/browser/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
  399. package/browser/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
  400. package/browser/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
  401. package/browser/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
  402. package/browser/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
  403. package/browser/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
  404. package/browser/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
  405. package/browser/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
  406. package/browser/esm2022/public-api.mjs +0 -2
  407. package/browser/esm2022/taon-typeorm.mjs +0 -5
  408. package/client/esm2022/lib/index.mjs +0 -4
  409. package/client/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
  410. package/client/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
  411. package/client/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
  412. package/client/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
  413. package/client/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
  414. package/client/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
  415. package/client/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
  416. package/client/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
  417. package/client/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
  418. package/client/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
  419. package/client/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
  420. package/client/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
  421. package/client/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
  422. package/client/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
  423. package/client/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
  424. package/client/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
  425. package/client/esm2022/lib/typeorm/constants.mjs +0 -4
  426. package/client/esm2022/lib/typeorm/container.mjs +0 -57
  427. package/client/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
  428. package/client/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
  429. package/client/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
  430. package/client/esm2022/lib/typeorm/data-source/index.mjs +0 -4
  431. package/client/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
  432. package/client/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
  433. package/client/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
  434. package/client/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
  435. package/client/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
  436. package/client/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
  437. package/client/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
  438. package/client/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
  439. package/client/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
  440. package/client/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
  441. package/client/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
  442. package/client/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
  443. package/client/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
  444. package/client/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
  445. package/client/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
  446. package/client/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
  447. package/client/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
  448. package/client/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
  449. package/client/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
  450. package/client/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
  451. package/client/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
  452. package/client/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
  453. package/client/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
  454. package/client/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
  455. package/client/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
  456. package/client/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
  457. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
  458. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
  459. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
  460. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
  461. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
  462. package/client/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
  463. package/client/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
  464. package/client/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
  465. package/client/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
  466. package/client/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
  467. package/client/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
  468. package/client/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
  469. package/client/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
  470. package/client/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
  471. package/client/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
  472. package/client/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
  473. package/client/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
  474. package/client/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
  475. package/client/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
  476. package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
  477. package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
  478. package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
  479. package/client/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
  480. package/client/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
  481. package/client/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
  482. package/client/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
  483. package/client/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
  484. package/client/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
  485. package/client/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
  486. package/client/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
  487. package/client/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
  488. package/client/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
  489. package/client/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
  490. package/client/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
  491. package/client/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
  492. package/client/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
  493. package/client/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
  494. package/client/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
  495. package/client/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
  496. package/client/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
  497. package/client/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
  498. package/client/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
  499. package/client/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
  500. package/client/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
  501. package/client/esm2022/lib/typeorm/driver/Query.mjs +0 -13
  502. package/client/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
  503. package/client/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
  504. package/client/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
  505. package/client/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
  506. package/client/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
  507. package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
  508. package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
  509. package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
  510. package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
  511. package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
  512. package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
  513. package/client/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
  514. package/client/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
  515. package/client/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
  516. package/client/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
  517. package/client/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
  518. package/client/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
  519. package/client/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
  520. package/client/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
  521. package/client/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
  522. package/client/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
  523. package/client/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
  524. package/client/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
  525. package/client/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
  526. package/client/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
  527. package/client/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
  528. package/client/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
  529. package/client/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
  530. package/client/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
  531. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
  532. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
  533. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
  534. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
  535. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
  536. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
  537. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
  538. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
  539. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
  540. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
  541. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
  542. package/client/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
  543. package/client/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
  544. package/client/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
  545. package/client/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
  546. package/client/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
  547. package/client/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
  548. package/client/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
  549. package/client/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
  550. package/client/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
  551. package/client/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
  552. package/client/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
  553. package/client/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
  554. package/client/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
  555. package/client/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
  556. package/client/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
  557. package/client/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
  558. package/client/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
  559. package/client/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
  560. package/client/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
  561. package/client/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
  562. package/client/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
  563. package/client/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
  564. package/client/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
  565. package/client/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
  566. package/client/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
  567. package/client/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
  568. package/client/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
  569. package/client/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
  570. package/client/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
  571. package/client/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
  572. package/client/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
  573. package/client/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
  574. package/client/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
  575. package/client/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
  576. package/client/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
  577. package/client/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
  578. package/client/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
  579. package/client/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
  580. package/client/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
  581. package/client/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
  582. package/client/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
  583. package/client/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
  584. package/client/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
  585. package/client/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
  586. package/client/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
  587. package/client/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
  588. package/client/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
  589. package/client/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
  590. package/client/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
  591. package/client/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
  592. package/client/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
  593. package/client/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
  594. package/client/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
  595. package/client/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
  596. package/client/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
  597. package/client/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
  598. package/client/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
  599. package/client/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
  600. package/client/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
  601. package/client/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
  602. package/client/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
  603. package/client/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
  604. package/client/esm2022/lib/typeorm/error/index.mjs +0 -63
  605. package/client/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
  606. package/client/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
  607. package/client/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
  608. package/client/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
  609. package/client/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
  610. package/client/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
  611. package/client/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
  612. package/client/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
  613. package/client/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
  614. package/client/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
  615. package/client/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
  616. package/client/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
  617. package/client/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
  618. package/client/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
  619. package/client/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
  620. package/client/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
  621. package/client/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
  622. package/client/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
  623. package/client/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
  624. package/client/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
  625. package/client/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
  626. package/client/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
  627. package/client/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
  628. package/client/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
  629. package/client/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
  630. package/client/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
  631. package/client/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
  632. package/client/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
  633. package/client/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
  634. package/client/esm2022/lib/typeorm/globals.mjs +0 -165
  635. package/client/esm2022/lib/typeorm/index.mjs +0 -157
  636. package/client/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
  637. package/client/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
  638. package/client/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
  639. package/client/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
  640. package/client/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
  641. package/client/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
  642. package/client/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
  643. package/client/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
  644. package/client/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
  645. package/client/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
  646. package/client/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
  647. package/client/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
  648. package/client/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
  649. package/client/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
  650. package/client/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
  651. package/client/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
  652. package/client/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
  653. package/client/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
  654. package/client/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
  655. package/client/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
  656. package/client/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
  657. package/client/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
  658. package/client/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
  659. package/client/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
  660. package/client/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
  661. package/client/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
  662. package/client/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
  663. package/client/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
  664. package/client/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
  665. package/client/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
  666. package/client/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
  667. package/client/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
  668. package/client/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
  669. package/client/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
  670. package/client/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
  671. package/client/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
  672. package/client/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
  673. package/client/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
  674. package/client/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
  675. package/client/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
  676. package/client/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
  677. package/client/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
  678. package/client/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
  679. package/client/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
  680. package/client/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
  681. package/client/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
  682. package/client/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
  683. package/client/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
  684. package/client/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
  685. package/client/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
  686. package/client/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
  687. package/client/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
  688. package/client/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
  689. package/client/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
  690. package/client/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
  691. package/client/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
  692. package/client/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
  693. package/client/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
  694. package/client/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
  695. package/client/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
  696. package/client/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
  697. package/client/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
  698. package/client/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
  699. package/client/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
  700. package/client/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
  701. package/client/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
  702. package/client/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
  703. package/client/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
  704. package/client/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
  705. package/client/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
  706. package/client/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
  707. package/client/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
  708. package/client/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
  709. package/client/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
  710. package/client/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
  711. package/client/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
  712. package/client/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
  713. package/client/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -346
  714. package/client/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
  715. package/client/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
  716. package/client/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
  717. package/client/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
  718. package/client/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
  719. package/client/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
  720. package/client/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
  721. package/client/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
  722. package/client/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
  723. package/client/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
  724. package/client/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
  725. package/client/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
  726. package/client/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
  727. package/client/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
  728. package/client/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
  729. package/client/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
  730. package/client/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
  731. package/client/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
  732. package/client/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
  733. package/client/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
  734. package/client/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
  735. package/client/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
  736. package/client/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
  737. package/client/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
  738. package/client/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
  739. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
  740. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
  741. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
  742. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
  743. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
  744. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
  745. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
  746. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
  747. package/client/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
  748. package/client/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
  749. package/client/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
  750. package/client/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
  751. package/client/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
  752. package/client/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
  753. package/client/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
  754. package/client/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
  755. package/client/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
  756. package/client/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
  757. package/client/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
  758. package/client/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
  759. package/client/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
  760. package/client/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
  761. package/client/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
  762. package/client/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
  763. package/client/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
  764. package/client/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
  765. package/client/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
  766. package/client/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
  767. package/client/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
  768. package/client/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
  769. package/client/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
  770. package/client/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
  771. package/client/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
  772. package/client/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
  773. package/client/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
  774. package/client/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
  775. package/client/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
  776. package/client/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
  777. package/client/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
  778. package/client/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
  779. package/client/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
  780. package/client/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
  781. package/client/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
  782. package/client/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
  783. package/client/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
  784. package/client/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
  785. package/client/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
  786. package/client/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
  787. package/client/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
  788. package/client/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
  789. package/client/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
  790. package/client/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
  791. package/client/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
  792. package/client/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
  793. package/client/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
  794. package/client/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
  795. package/client/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
  796. package/client/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
  797. package/client/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
  798. package/client/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
  799. package/client/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
  800. package/client/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
  801. package/client/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
  802. package/client/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
  803. package/client/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
  804. package/client/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
  805. package/client/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
  806. package/client/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
  807. package/client/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
  808. package/client/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
  809. package/client/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
  810. package/client/esm2022/public-api.mjs +0 -2
  811. package/client/esm2022/taon-typeorm.mjs +0 -5
  812. package/taon.jsonc +0 -8
  813. package/websql/esm2022/lib/index.mjs +0 -4
  814. package/websql/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
  815. package/websql/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
  816. package/websql/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
  817. package/websql/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
  818. package/websql/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
  819. package/websql/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
  820. package/websql/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
  821. package/websql/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
  822. package/websql/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
  823. package/websql/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
  824. package/websql/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
  825. package/websql/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
  826. package/websql/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
  827. package/websql/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
  828. package/websql/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
  829. package/websql/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
  830. package/websql/esm2022/lib/typeorm/constants.mjs +0 -4
  831. package/websql/esm2022/lib/typeorm/container.mjs +0 -57
  832. package/websql/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
  833. package/websql/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
  834. package/websql/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
  835. package/websql/esm2022/lib/typeorm/data-source/index.mjs +0 -4
  836. package/websql/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
  837. package/websql/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
  838. package/websql/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
  839. package/websql/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
  840. package/websql/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
  841. package/websql/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
  842. package/websql/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
  843. package/websql/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
  844. package/websql/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
  845. package/websql/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
  846. package/websql/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
  847. package/websql/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
  848. package/websql/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
  849. package/websql/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
  850. package/websql/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
  851. package/websql/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
  852. package/websql/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
  853. package/websql/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
  854. package/websql/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
  855. package/websql/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
  856. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
  857. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
  858. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
  859. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
  860. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
  861. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
  862. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
  863. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
  864. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
  865. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
  866. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
  867. package/websql/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
  868. package/websql/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
  869. package/websql/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
  870. package/websql/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
  871. package/websql/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
  872. package/websql/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
  873. package/websql/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
  874. package/websql/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
  875. package/websql/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
  876. package/websql/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
  877. package/websql/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
  878. package/websql/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
  879. package/websql/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
  880. package/websql/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
  881. package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
  882. package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
  883. package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
  884. package/websql/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
  885. package/websql/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
  886. package/websql/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
  887. package/websql/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
  888. package/websql/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
  889. package/websql/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
  890. package/websql/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
  891. package/websql/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
  892. package/websql/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
  893. package/websql/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
  894. package/websql/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
  895. package/websql/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
  896. package/websql/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
  897. package/websql/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
  898. package/websql/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
  899. package/websql/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
  900. package/websql/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
  901. package/websql/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
  902. package/websql/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
  903. package/websql/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
  904. package/websql/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
  905. package/websql/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
  906. package/websql/esm2022/lib/typeorm/driver/Query.mjs +0 -13
  907. package/websql/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
  908. package/websql/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
  909. package/websql/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
  910. package/websql/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
  911. package/websql/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
  912. package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
  913. package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
  914. package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
  915. package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
  916. package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
  917. package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
  918. package/websql/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
  919. package/websql/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
  920. package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
  921. package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
  922. package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
  923. package/websql/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
  924. package/websql/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
  925. package/websql/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
  926. package/websql/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
  927. package/websql/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
  928. package/websql/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
  929. package/websql/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
  930. package/websql/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
  931. package/websql/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
  932. package/websql/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
  933. package/websql/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
  934. package/websql/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
  935. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
  936. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
  937. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
  938. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
  939. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
  940. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
  941. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
  942. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
  943. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
  944. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
  945. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
  946. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
  947. package/websql/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
  948. package/websql/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
  949. package/websql/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
  950. package/websql/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
  951. package/websql/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
  952. package/websql/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
  953. package/websql/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
  954. package/websql/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
  955. package/websql/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
  956. package/websql/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
  957. package/websql/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
  958. package/websql/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
  959. package/websql/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
  960. package/websql/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
  961. package/websql/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
  962. package/websql/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
  963. package/websql/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
  964. package/websql/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
  965. package/websql/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
  966. package/websql/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
  967. package/websql/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
  968. package/websql/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
  969. package/websql/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
  970. package/websql/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
  971. package/websql/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
  972. package/websql/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
  973. package/websql/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
  974. package/websql/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
  975. package/websql/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
  976. package/websql/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
  977. package/websql/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
  978. package/websql/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
  979. package/websql/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
  980. package/websql/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
  981. package/websql/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
  982. package/websql/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
  983. package/websql/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
  984. package/websql/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
  985. package/websql/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
  986. package/websql/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
  987. package/websql/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
  988. package/websql/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
  989. package/websql/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
  990. package/websql/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
  991. package/websql/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
  992. package/websql/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
  993. package/websql/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
  994. package/websql/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
  995. package/websql/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
  996. package/websql/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
  997. package/websql/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
  998. package/websql/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
  999. package/websql/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
  1000. package/websql/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
  1001. package/websql/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
  1002. package/websql/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
  1003. package/websql/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
  1004. package/websql/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
  1005. package/websql/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
  1006. package/websql/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
  1007. package/websql/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
  1008. package/websql/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
  1009. package/websql/esm2022/lib/typeorm/error/index.mjs +0 -63
  1010. package/websql/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
  1011. package/websql/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
  1012. package/websql/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
  1013. package/websql/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
  1014. package/websql/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
  1015. package/websql/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
  1016. package/websql/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
  1017. package/websql/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
  1018. package/websql/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
  1019. package/websql/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
  1020. package/websql/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
  1021. package/websql/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
  1022. package/websql/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
  1023. package/websql/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
  1024. package/websql/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
  1025. package/websql/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
  1026. package/websql/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
  1027. package/websql/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
  1028. package/websql/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
  1029. package/websql/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
  1030. package/websql/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
  1031. package/websql/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
  1032. package/websql/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
  1033. package/websql/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
  1034. package/websql/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
  1035. package/websql/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
  1036. package/websql/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
  1037. package/websql/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
  1038. package/websql/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
  1039. package/websql/esm2022/lib/typeorm/globals.mjs +0 -165
  1040. package/websql/esm2022/lib/typeorm/index.mjs +0 -157
  1041. package/websql/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
  1042. package/websql/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
  1043. package/websql/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
  1044. package/websql/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
  1045. package/websql/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
  1046. package/websql/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
  1047. package/websql/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
  1048. package/websql/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
  1049. package/websql/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
  1050. package/websql/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
  1051. package/websql/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
  1052. package/websql/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
  1053. package/websql/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
  1054. package/websql/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
  1055. package/websql/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
  1056. package/websql/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
  1057. package/websql/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
  1058. package/websql/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
  1059. package/websql/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
  1060. package/websql/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
  1061. package/websql/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
  1062. package/websql/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
  1063. package/websql/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
  1064. package/websql/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
  1065. package/websql/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
  1066. package/websql/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
  1067. package/websql/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
  1068. package/websql/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
  1069. package/websql/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
  1070. package/websql/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
  1071. package/websql/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
  1072. package/websql/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
  1073. package/websql/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
  1074. package/websql/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
  1075. package/websql/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
  1076. package/websql/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
  1077. package/websql/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
  1078. package/websql/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
  1079. package/websql/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
  1080. package/websql/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
  1081. package/websql/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
  1082. package/websql/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
  1083. package/websql/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
  1084. package/websql/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
  1085. package/websql/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
  1086. package/websql/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
  1087. package/websql/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
  1088. package/websql/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
  1089. package/websql/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
  1090. package/websql/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
  1091. package/websql/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
  1092. package/websql/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
  1093. package/websql/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
  1094. package/websql/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
  1095. package/websql/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
  1096. package/websql/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
  1097. package/websql/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
  1098. package/websql/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
  1099. package/websql/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
  1100. package/websql/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
  1101. package/websql/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
  1102. package/websql/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
  1103. package/websql/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
  1104. package/websql/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
  1105. package/websql/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
  1106. package/websql/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
  1107. package/websql/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
  1108. package/websql/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
  1109. package/websql/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
  1110. package/websql/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
  1111. package/websql/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
  1112. package/websql/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
  1113. package/websql/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
  1114. package/websql/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
  1115. package/websql/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
  1116. package/websql/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
  1117. package/websql/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
  1118. package/websql/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -331
  1119. package/websql/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
  1120. package/websql/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
  1121. package/websql/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
  1122. package/websql/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
  1123. package/websql/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
  1124. package/websql/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
  1125. package/websql/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
  1126. package/websql/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
  1127. package/websql/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
  1128. package/websql/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
  1129. package/websql/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
  1130. package/websql/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
  1131. package/websql/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
  1132. package/websql/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
  1133. package/websql/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
  1134. package/websql/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
  1135. package/websql/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
  1136. package/websql/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
  1137. package/websql/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
  1138. package/websql/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
  1139. package/websql/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
  1140. package/websql/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
  1141. package/websql/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
  1142. package/websql/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
  1143. package/websql/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
  1144. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
  1145. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
  1146. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
  1147. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
  1148. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
  1149. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
  1150. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
  1151. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
  1152. package/websql/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
  1153. package/websql/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
  1154. package/websql/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
  1155. package/websql/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
  1156. package/websql/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
  1157. package/websql/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
  1158. package/websql/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
  1159. package/websql/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
  1160. package/websql/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
  1161. package/websql/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
  1162. package/websql/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
  1163. package/websql/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
  1164. package/websql/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
  1165. package/websql/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
  1166. package/websql/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
  1167. package/websql/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
  1168. package/websql/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
  1169. package/websql/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
  1170. package/websql/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
  1171. package/websql/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
  1172. package/websql/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
  1173. package/websql/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
  1174. package/websql/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
  1175. package/websql/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
  1176. package/websql/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
  1177. package/websql/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
  1178. package/websql/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
  1179. package/websql/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
  1180. package/websql/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
  1181. package/websql/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
  1182. package/websql/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
  1183. package/websql/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
  1184. package/websql/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
  1185. package/websql/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
  1186. package/websql/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
  1187. package/websql/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
  1188. package/websql/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
  1189. package/websql/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
  1190. package/websql/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
  1191. package/websql/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
  1192. package/websql/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
  1193. package/websql/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
  1194. package/websql/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
  1195. package/websql/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
  1196. package/websql/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
  1197. package/websql/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
  1198. package/websql/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
  1199. package/websql/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
  1200. package/websql/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
  1201. package/websql/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
  1202. package/websql/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
  1203. package/websql/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
  1204. package/websql/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
  1205. package/websql/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
  1206. package/websql/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
  1207. package/websql/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
  1208. package/websql/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
  1209. package/websql/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
  1210. package/websql/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
  1211. package/websql/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
  1212. package/websql/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
  1213. package/websql/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
  1214. package/websql/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
  1215. package/websql/esm2022/public-api.mjs +0 -2
  1216. package/websql/esm2022/taon-typeorm.mjs +0 -5
@@ -1,721 +0,0 @@
1
- import { SubjectTopoligicalSorter } from "./SubjectTopoligicalSorter";
2
- import { SubjectChangedColumnsComputer } from "./SubjectChangedColumnsComputer";
3
- import { SubjectWithoutIdentifierError } from "../error/SubjectWithoutIdentifierError";
4
- import { SubjectRemovedAndUpdatedError } from "../error/SubjectRemovedAndUpdatedError";
5
- import { BroadcasterResult } from "../subscriber/BroadcasterResult";
6
- import { NestedSetSubjectExecutor } from "./tree/NestedSetSubjectExecutor";
7
- import { ClosureSubjectExecutor } from "./tree/ClosureSubjectExecutor";
8
- import { MaterializedPathSubjectExecutor } from "./tree/MaterializedPathSubjectExecutor";
9
- import { OrmUtils } from "../util/OrmUtils";
10
- import { ObjectUtils } from "../util/ObjectUtils";
11
- /**
12
- * Executes all database operations (inserts, updated, deletes) that must be executed
13
- * with given persistence subjects.
14
- */
15
- export class SubjectExecutor {
16
- constructor(queryRunner, subjects, options) {
17
- /**
18
- * Indicates if executor has any operations to execute (e.g. has insert / update / delete operations to be executed).
19
- */
20
- this.hasExecutableOperations = false;
21
- /**
22
- * Subjects that must be inserted.
23
- */
24
- this.insertSubjects = [];
25
- /**
26
- * Subjects that must be updated.
27
- */
28
- this.updateSubjects = [];
29
- /**
30
- * Subjects that must be removed.
31
- */
32
- this.removeSubjects = [];
33
- /**
34
- * Subjects that must be soft-removed.
35
- */
36
- this.softRemoveSubjects = [];
37
- /**
38
- * Subjects that must be recovered.
39
- */
40
- this.recoverSubjects = [];
41
- this.queryRunner = queryRunner;
42
- this.allSubjects = subjects;
43
- this.options = options;
44
- this.validate();
45
- this.recompute();
46
- }
47
- /**
48
- * Executes all operations over given array of subjects.
49
- * Executes queries using given query runner.
50
- */
51
- async execute() {
52
- let broadcasterResult = undefined;
53
- if (!this.options || this.options.listeners !== false) {
54
- broadcasterResult = this.broadcastBeforeEventsForAll();
55
- if (broadcasterResult.promises.length > 0)
56
- await Promise.all(broadcasterResult.promises);
57
- }
58
- if (broadcasterResult && broadcasterResult.count > 0) {
59
- this.insertSubjects.forEach((subject) => subject.recompute());
60
- this.updateSubjects.forEach((subject) => subject.recompute());
61
- this.removeSubjects.forEach((subject) => subject.recompute());
62
- this.softRemoveSubjects.forEach((subject) => subject.recompute());
63
- this.recoverSubjects.forEach((subject) => subject.recompute());
64
- this.recompute();
65
- }
66
- this.insertSubjects = new SubjectTopoligicalSorter(this.insertSubjects).sort("insert");
67
- await this.executeInsertOperations();
68
- this.updateSubjects = this.allSubjects.filter((subject) => subject.mustBeUpdated);
69
- await this.executeUpdateOperations();
70
- this.removeSubjects = new SubjectTopoligicalSorter(this.removeSubjects).sort("delete");
71
- await this.executeRemoveOperations();
72
- this.softRemoveSubjects = this.allSubjects.filter((subject) => subject.mustBeSoftRemoved);
73
- await this.executeSoftRemoveOperations();
74
- this.recoverSubjects = this.allSubjects.filter((subject) => subject.mustBeRecovered);
75
- await this.executeRecoverOperations();
76
- await this.updateSpecialColumnsInPersistedEntities();
77
- if (!this.options || this.options.listeners !== false) {
78
- broadcasterResult = this.broadcastAfterEventsForAll();
79
- if (broadcasterResult.promises.length > 0)
80
- await Promise.all(broadcasterResult.promises);
81
- }
82
- }
83
- /**
84
- * Validates all given subjects.
85
- */
86
- validate() {
87
- this.allSubjects.forEach((subject) => {
88
- if (subject.mustBeUpdated && subject.mustBeRemoved)
89
- throw new SubjectRemovedAndUpdatedError(subject);
90
- });
91
- }
92
- /**
93
- * Performs entity re-computations - finds changed columns, re-builds insert/update/remove subjects.
94
- */
95
- recompute() {
96
- new SubjectChangedColumnsComputer().compute(this.allSubjects);
97
- this.insertSubjects = this.allSubjects.filter((subject) => subject.mustBeInserted);
98
- this.updateSubjects = this.allSubjects.filter((subject) => subject.mustBeUpdated);
99
- this.removeSubjects = this.allSubjects.filter((subject) => subject.mustBeRemoved);
100
- this.softRemoveSubjects = this.allSubjects.filter((subject) => subject.mustBeSoftRemoved);
101
- this.recoverSubjects = this.allSubjects.filter((subject) => subject.mustBeRecovered);
102
- this.hasExecutableOperations =
103
- this.insertSubjects.length > 0 ||
104
- this.updateSubjects.length > 0 ||
105
- this.removeSubjects.length > 0 ||
106
- this.softRemoveSubjects.length > 0 ||
107
- this.recoverSubjects.length > 0;
108
- }
109
- /**
110
- * Broadcasts "BEFORE_INSERT", "BEFORE_UPDATE", "BEFORE_REMOVE", "BEFORE_SOFT_REMOVE", "BEFORE_RECOVER" events for all given subjects.
111
- */
112
- broadcastBeforeEventsForAll() {
113
- const result = new BroadcasterResult();
114
- if (this.insertSubjects.length)
115
- this.insertSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastBeforeInsertEvent(result, subject.metadata, subject.entity));
116
- if (this.updateSubjects.length)
117
- this.updateSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations));
118
- if (this.removeSubjects.length)
119
- this.removeSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastBeforeRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity));
120
- if (this.softRemoveSubjects.length)
121
- this.softRemoveSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastBeforeSoftRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity));
122
- if (this.recoverSubjects.length)
123
- this.recoverSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastBeforeRecoverEvent(result, subject.metadata, subject.entity, subject.databaseEntity));
124
- return result;
125
- }
126
- /**
127
- * Broadcasts "AFTER_INSERT", "AFTER_UPDATE", "AFTER_REMOVE", "AFTER_SOFT_REMOVE", "AFTER_RECOVER" events for all given subjects.
128
- * Returns void if there wasn't any listener or subscriber executed.
129
- * Note: this method has a performance-optimized code organization.
130
- */
131
- broadcastAfterEventsForAll() {
132
- const result = new BroadcasterResult();
133
- if (this.insertSubjects.length)
134
- this.insertSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastAfterInsertEvent(result, subject.metadata, subject.entity));
135
- if (this.updateSubjects.length)
136
- this.updateSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations));
137
- if (this.removeSubjects.length)
138
- this.removeSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastAfterRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity));
139
- if (this.softRemoveSubjects.length)
140
- this.softRemoveSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastAfterSoftRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity));
141
- if (this.recoverSubjects.length)
142
- this.recoverSubjects.forEach((subject) => this.queryRunner.broadcaster.broadcastAfterRecoverEvent(result, subject.metadata, subject.entity, subject.databaseEntity));
143
- return result;
144
- }
145
- /**
146
- * Executes insert operations.
147
- */
148
- async executeInsertOperations() {
149
- const [groupedInsertSubjects, groupedInsertSubjectKeys] = this.groupBulkSubjects(this.insertSubjects, "insert");
150
- for (const groupName of groupedInsertSubjectKeys) {
151
- const subjects = groupedInsertSubjects[groupName];
152
- const bulkInsertMaps = [];
153
- const bulkInsertSubjects = [];
154
- const singleInsertSubjects = [];
155
- if (this.queryRunner.connection.driver.options.type === "mongodb") {
156
- subjects.forEach((subject) => {
157
- if (subject.metadata.createDateColumn && subject.entity) {
158
- subject.entity[subject.metadata.createDateColumn.databaseName] = new Date();
159
- }
160
- if (subject.metadata.updateDateColumn && subject.entity) {
161
- subject.entity[subject.metadata.updateDateColumn.databaseName] = new Date();
162
- }
163
- subject.createValueSetAndPopChangeMap();
164
- bulkInsertSubjects.push(subject);
165
- bulkInsertMaps.push(subject.entity);
166
- });
167
- }
168
- else if (this.queryRunner.connection.driver.options.type === "oracle") {
169
- subjects.forEach((subject) => {
170
- singleInsertSubjects.push(subject);
171
- });
172
- }
173
- else {
174
- subjects.forEach((subject) => {
175
- if (subject.changeMaps.length === 0 ||
176
- subject.metadata.treeType ||
177
- this.queryRunner.connection.driver.options.type ===
178
- "oracle" ||
179
- this.queryRunner.connection.driver.options.type ===
180
- "sap") {
181
- singleInsertSubjects.push(subject);
182
- }
183
- else {
184
- bulkInsertSubjects.push(subject);
185
- bulkInsertMaps.push(subject.createValueSetAndPopChangeMap());
186
- }
187
- });
188
- }
189
- if (
190
- /* */
191
- /* */
192
- /* */
193
- /* */
194
- false) {
195
- /* */
196
- /* */
197
- /* */
198
- /* */
199
- /* */
200
- /* */
201
- /* */
202
- /* */
203
- /* */
204
- /* */
205
- }
206
- else {
207
- if (bulkInsertMaps.length > 0) {
208
- const insertResult = await this.queryRunner.manager
209
- .createQueryBuilder()
210
- .insert()
211
- .into(subjects[0].metadata.target)
212
- .values(bulkInsertMaps)
213
- .updateEntity(this.options && this.options.reload === false
214
- ? false
215
- : true)
216
- .callListeners(false)
217
- .execute();
218
- bulkInsertSubjects.forEach((subject, index) => {
219
- subject.identifier = insertResult.identifiers[index];
220
- subject.generatedMap = insertResult.generatedMaps[index];
221
- subject.insertedValueSet = bulkInsertMaps[index];
222
- });
223
- }
224
- if (singleInsertSubjects.length > 0) {
225
- for (const subject of singleInsertSubjects) {
226
- subject.insertedValueSet =
227
- subject.createValueSetAndPopChangeMap(); // important to have because query builder sets inserted values into it
228
- if (subject.metadata.treeType === "nested-set")
229
- await new NestedSetSubjectExecutor(this.queryRunner).insert(subject);
230
- await this.queryRunner.manager
231
- .createQueryBuilder()
232
- .insert()
233
- .into(subject.metadata.target)
234
- .values(subject.insertedValueSet)
235
- .updateEntity(this.options && this.options.reload === false
236
- ? false
237
- : true)
238
- .callListeners(false)
239
- .execute()
240
- .then((insertResult) => {
241
- subject.identifier = insertResult.identifiers[0];
242
- subject.generatedMap =
243
- insertResult.generatedMaps[0];
244
- });
245
- if (subject.metadata.treeType === "closure-table") {
246
- await new ClosureSubjectExecutor(this.queryRunner).insert(subject);
247
- }
248
- else if (subject.metadata.treeType === "materialized-path") {
249
- await new MaterializedPathSubjectExecutor(this.queryRunner).insert(subject);
250
- }
251
- }
252
- }
253
- }
254
- subjects.forEach((subject) => {
255
- if (subject.generatedMap) {
256
- subject.metadata.columns.forEach((column) => {
257
- const value = column.getEntityValue(subject.generatedMap);
258
- if (value !== undefined && value !== null) {
259
- const preparedValue = this.queryRunner.connection.driver.prepareHydratedValue(value, column);
260
- column.setEntityValue(subject.generatedMap, preparedValue);
261
- }
262
- });
263
- }
264
- });
265
- }
266
- }
267
- /**
268
- * Updates all given subjects in the database.
269
- */
270
- async executeUpdateOperations() {
271
- const updateSubject = async (subject) => {
272
- if (!subject.identifier)
273
- throw new SubjectWithoutIdentifierError(subject);
274
- if (
275
- /* */
276
- /* */
277
- /* */
278
- /* */
279
- false) {
280
- /* */
281
- /* */
282
- /* */
283
- /* */
284
- /* */
285
- /* */
286
- /* */
287
- /* */
288
- /* */
289
- /* */
290
- /* */
291
- /* */
292
- /* */
293
- /* */
294
- /* */
295
- /* */
296
- /* */
297
- /* */
298
- /* */
299
- /* */
300
- /* */
301
- /* */
302
- /* */
303
- /* */
304
- /* */
305
- /* */
306
- /* */
307
- /* */
308
- /* */
309
- /* */
310
- /* */
311
- /* */
312
- /* */
313
- /* */
314
- /* */
315
- /* */
316
- }
317
- else {
318
- const updateMap = subject.createValueSetAndPopChangeMap();
319
- switch (subject.metadata.treeType) {
320
- case "nested-set":
321
- await new NestedSetSubjectExecutor(this.queryRunner).update(subject);
322
- break;
323
- case "closure-table":
324
- await new ClosureSubjectExecutor(this.queryRunner).update(subject);
325
- break;
326
- case "materialized-path":
327
- await new MaterializedPathSubjectExecutor(this.queryRunner).update(subject);
328
- break;
329
- }
330
- const updateQueryBuilder = this.queryRunner.manager
331
- .createQueryBuilder()
332
- .update(subject.metadata.target)
333
- .set(updateMap)
334
- .updateEntity(this.options && this.options.reload === false
335
- ? false
336
- : true)
337
- .callListeners(false);
338
- if (subject.entity) {
339
- updateQueryBuilder.whereEntity(subject.identifier);
340
- }
341
- else {
342
- updateQueryBuilder.where(subject.identifier);
343
- }
344
- const updateResult = await updateQueryBuilder.execute();
345
- let updateGeneratedMap = updateResult.generatedMaps[0];
346
- if (updateGeneratedMap) {
347
- subject.metadata.columns.forEach((column) => {
348
- const value = column.getEntityValue(updateGeneratedMap);
349
- if (value !== undefined && value !== null) {
350
- const preparedValue = this.queryRunner.connection.driver.prepareHydratedValue(value, column);
351
- column.setEntityValue(updateGeneratedMap, preparedValue);
352
- }
353
- });
354
- if (!subject.generatedMap) {
355
- subject.generatedMap = {};
356
- }
357
- Object.assign(subject.generatedMap, updateGeneratedMap);
358
- }
359
- }
360
- };
361
- const nestedSetSubjects = [];
362
- const remainingSubjects = [];
363
- for (const subject of this.updateSubjects) {
364
- if (subject.metadata.treeType === "nested-set") {
365
- nestedSetSubjects.push(subject);
366
- }
367
- else {
368
- remainingSubjects.push(subject);
369
- }
370
- }
371
- const nestedSetPromise = new Promise(async (ok, fail) => {
372
- for (const subject of nestedSetSubjects) {
373
- try {
374
- await updateSubject(subject);
375
- }
376
- catch (error) {
377
- fail(error);
378
- }
379
- }
380
- ok();
381
- });
382
- await Promise.all([
383
- ...remainingSubjects.map(updateSubject),
384
- nestedSetPromise,
385
- ]);
386
- }
387
- /**
388
- * Removes all given subjects from the database.
389
- *
390
- * todo: we need to apply topological sort here as well
391
- */
392
- async executeRemoveOperations() {
393
- const [groupedRemoveSubjects, groupedRemoveSubjectKeys] = this.groupBulkSubjects(this.removeSubjects, "delete");
394
- for (const groupName of groupedRemoveSubjectKeys) {
395
- const subjects = groupedRemoveSubjects[groupName];
396
- const deleteMaps = subjects.map((subject) => {
397
- if (!subject.identifier)
398
- throw new SubjectWithoutIdentifierError(subject);
399
- return subject.identifier;
400
- });
401
- if (
402
- /* */
403
- /* */
404
- /* */
405
- /* */
406
- false) {
407
- /* */
408
- /* */
409
- /* */
410
- }
411
- else {
412
- switch (subjects[0].metadata.treeType) {
413
- case "nested-set":
414
- await new NestedSetSubjectExecutor(this.queryRunner).remove(subjects);
415
- break;
416
- case "closure-table":
417
- await new ClosureSubjectExecutor(this.queryRunner).remove(subjects);
418
- break;
419
- }
420
- await this.queryRunner.manager
421
- .createQueryBuilder()
422
- .delete()
423
- .from(subjects[0].metadata.target)
424
- .where(deleteMaps)
425
- .callListeners(false)
426
- .execute();
427
- }
428
- }
429
- }
430
- cloneMongoSubjectEntity(subject) {
431
- const target = {};
432
- if (subject.entity) {
433
- for (const column of subject.metadata.columns) {
434
- OrmUtils.mergeDeep(target, column.getEntityValueMap(subject.entity));
435
- }
436
- }
437
- return target;
438
- }
439
- /**
440
- * Soft-removes all given subjects in the database.
441
- */
442
- async executeSoftRemoveOperations() {
443
- await Promise.all(this.softRemoveSubjects.map(async (subject) => {
444
- if (!subject.identifier)
445
- throw new SubjectWithoutIdentifierError(subject);
446
- let updateResult;
447
- if (
448
- /* */
449
- /* */
450
- /* */
451
- /* */
452
- /* */
453
- /* */
454
- false) {
455
- const partialEntity = this.cloneMongoSubjectEntity(subject);
456
- if (subject.metadata.objectIdColumn &&
457
- subject.metadata.objectIdColumn.propertyName) {
458
- delete partialEntity[subject.metadata.objectIdColumn.propertyName];
459
- }
460
- if (subject.metadata.createDateColumn &&
461
- subject.metadata.createDateColumn.propertyName) {
462
- delete partialEntity[subject.metadata.createDateColumn.propertyName];
463
- }
464
- if (subject.metadata.updateDateColumn &&
465
- subject.metadata.updateDateColumn.propertyName) {
466
- partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date();
467
- }
468
- if (subject.metadata.deleteDateColumn &&
469
- subject.metadata.deleteDateColumn.propertyName) {
470
- partialEntity[subject.metadata.deleteDateColumn.propertyName] = new Date();
471
- }
472
- let manager;
473
- /* */
474
- /* */
475
- manager = this.queryRunner.manager;
476
- updateResult = await manager.update(subject.metadata.target, subject.identifier, partialEntity);
477
- }
478
- else {
479
- const softDeleteQueryBuilder = this.queryRunner.manager
480
- .createQueryBuilder()
481
- .softDelete()
482
- .from(subject.metadata.target)
483
- .updateEntity(this.options && this.options.reload === false
484
- ? false
485
- : true)
486
- .callListeners(false);
487
- if (subject.entity) {
488
- softDeleteQueryBuilder.whereEntity(subject.identifier);
489
- }
490
- else {
491
- softDeleteQueryBuilder.where(subject.identifier);
492
- }
493
- updateResult = await softDeleteQueryBuilder.execute();
494
- }
495
- subject.generatedMap = updateResult.generatedMaps[0];
496
- if (subject.generatedMap) {
497
- subject.metadata.columns.forEach((column) => {
498
- const value = column.getEntityValue(subject.generatedMap);
499
- if (value !== undefined && value !== null) {
500
- const preparedValue = this.queryRunner.connection.driver.prepareHydratedValue(value, column);
501
- column.setEntityValue(subject.generatedMap, preparedValue);
502
- }
503
- });
504
- }
505
- //
506
- }));
507
- }
508
- /**
509
- * Recovers all given subjects in the database.
510
- */
511
- async executeRecoverOperations() {
512
- await Promise.all(this.recoverSubjects.map(async (subject) => {
513
- if (!subject.identifier)
514
- throw new SubjectWithoutIdentifierError(subject);
515
- let updateResult;
516
- if (
517
- /* */
518
- /* */
519
- /* */
520
- /* */
521
- /* */
522
- /* */
523
- false) {
524
- /* */
525
- /* */
526
- /* */
527
- /* */
528
- /* */
529
- /* */
530
- /* */
531
- /* */
532
- /* */
533
- /* */
534
- /* */
535
- /* */
536
- /* */
537
- /* */
538
- /* */
539
- /* */
540
- /* */
541
- /* */
542
- /* */
543
- /* */
544
- /* */
545
- /* */
546
- /* */
547
- /* */
548
- /* */
549
- /* */
550
- /* */
551
- /* */
552
- /* */
553
- /* */
554
- /* */
555
- /* */
556
- /* */
557
- /* */
558
- /* */
559
- /* */
560
- /* */
561
- /* */
562
- /* */
563
- /* */
564
- /* */
565
- /* */
566
- /* */
567
- /* */
568
- /* */
569
- /* */
570
- }
571
- else {
572
- const softDeleteQueryBuilder = this.queryRunner.manager
573
- .createQueryBuilder()
574
- .restore()
575
- .from(subject.metadata.target)
576
- .updateEntity(this.options && this.options.reload === false
577
- ? false
578
- : true)
579
- .callListeners(false);
580
- if (subject.entity) {
581
- softDeleteQueryBuilder.whereEntity(subject.identifier);
582
- }
583
- else {
584
- softDeleteQueryBuilder.where(subject.identifier);
585
- }
586
- updateResult = await softDeleteQueryBuilder.execute();
587
- }
588
- subject.generatedMap = updateResult.generatedMaps[0];
589
- if (subject.generatedMap) {
590
- subject.metadata.columns.forEach((column) => {
591
- const value = column.getEntityValue(subject.generatedMap);
592
- if (value !== undefined && value !== null) {
593
- const preparedValue = this.queryRunner.connection.driver.prepareHydratedValue(value, column);
594
- column.setEntityValue(subject.generatedMap, preparedValue);
595
- }
596
- });
597
- }
598
- //
599
- }));
600
- }
601
- /**
602
- * Updates all special columns of the saving entities (create date, update date, version, etc.).
603
- * Also updates nullable columns and columns with default values.
604
- */
605
- updateSpecialColumnsInPersistedEntities() {
606
- if (this.insertSubjects.length)
607
- this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.insertSubjects);
608
- if (this.updateSubjects.length)
609
- this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.updateSubjects);
610
- if (this.softRemoveSubjects.length)
611
- this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.softRemoveSubjects);
612
- if (this.recoverSubjects.length)
613
- this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.recoverSubjects);
614
- if (this.removeSubjects.length) {
615
- this.removeSubjects.forEach((subject) => {
616
- if (!subject.entity)
617
- return;
618
- subject.metadata.primaryColumns.forEach((primaryColumn) => {
619
- primaryColumn.setEntityValue(subject.entity, undefined);
620
- });
621
- });
622
- }
623
- this.allSubjects.forEach((subject) => {
624
- if (!subject.entity)
625
- return;
626
- subject.metadata.relationIds.forEach((relationId) => {
627
- relationId.setValue(subject.entity);
628
- });
629
- /* */
630
- /* */
631
- /* */
632
- /* */
633
- /* */
634
- /* */
635
- /* */
636
- /* */
637
- /* */
638
- /* */
639
- /* */
640
- /* */
641
- /* */
642
- /* */
643
- /* */
644
- /* */
645
- });
646
- }
647
- /**
648
- * Updates all special columns of the saving entities (create date, update date, version, etc.).
649
- * Also updates nullable columns and columns with default values.
650
- */
651
- updateSpecialColumnsInInsertedAndUpdatedEntities(subjects) {
652
- subjects.forEach((subject) => {
653
- if (!subject.entity)
654
- return;
655
- subject.metadata.columns.forEach((column) => {
656
- if (subject.metadata.childEntityMetadatas.length > 0 &&
657
- subject.metadata.childEntityMetadatas
658
- .map((metadata) => metadata.target)
659
- .indexOf(column.target) !== -1)
660
- return;
661
- if (column.isVirtual)
662
- return;
663
- if (column.isNullable) {
664
- const columnValue = column.getEntityValue(subject.entity);
665
- if (columnValue === undefined)
666
- column.setEntityValue(subject.entity, null);
667
- }
668
- if (subject.updatedRelationMaps.length > 0) {
669
- subject.updatedRelationMaps.forEach((updatedRelationMap) => {
670
- updatedRelationMap.relation.joinColumns.forEach((column) => {
671
- if (column.isVirtual === true)
672
- return;
673
- column.setEntityValue(subject.entity, ObjectUtils.isObject(updatedRelationMap.value)
674
- ? column.referencedColumn.getEntityValue(updatedRelationMap.value)
675
- : updatedRelationMap.value);
676
- });
677
- });
678
- }
679
- });
680
- if (subject.generatedMap)
681
- this.queryRunner.manager.merge(subject.metadata.target, subject.entity, subject.generatedMap);
682
- });
683
- }
684
- /**
685
- * Groups subjects by metadata names (by tables) to make bulk insertions and deletions possible.
686
- * However there are some limitations with bulk insertions of data into tables with generated (increment) columns
687
- * in some drivers. Some drivers like mysql and sqlite does not support returning multiple generated columns
688
- * after insertion and can only return a single generated column value, that's why its not possible to do bulk insertion,
689
- * because it breaks insertion result's generatedMap and leads to problems when this subject is used in other subjects saves.
690
- * That's why we only support bulking in junction tables for those drivers.
691
- *
692
- * Other drivers like postgres and sql server support RETURNING / OUTPUT statement which allows to return generated
693
- * id for each inserted row, that's why bulk insertion is not limited to junction tables in there.
694
- */
695
- groupBulkSubjects(subjects, type) {
696
- const group = {};
697
- const keys = [];
698
- const hasReturningDependColumns = subjects.some((subject) => {
699
- return subject.metadata.getInsertionReturningColumns().length > 0;
700
- });
701
- const groupingAllowed = type === "delete" ||
702
- this.queryRunner.connection.driver.isReturningSqlSupported("insert") ||
703
- hasReturningDependColumns === false;
704
- subjects.forEach((subject, index) => {
705
- const key = groupingAllowed || subject.metadata.isJunction
706
- ? subject.metadata.name
707
- : subject.metadata.name + "_" + index;
708
- if (!group[key]) {
709
- group[key] = [subject];
710
- keys.push(key);
711
- }
712
- else {
713
- group[key].push(subject);
714
- }
715
- });
716
- return [group, keys];
717
- }
718
- }
719
- ;
720
- ({}); // @--end-of-file-for-module=taon-typeorm lib/typeorm/persistence/SubjectExecutor.ts
721
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3ViamVjdEV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24tdHlwZW9ybS9wcm9qZWN0cy90YW9uLXR5cGVvcm0vc3JjL2xpYi90eXBlb3JtL3BlcnNpc3RlbmNlL1N1YmplY3RFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN0RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQU90RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBR2pEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBMER4QixZQUNJLFdBQXdCLEVBQ3hCLFFBQW1CLEVBQ25CLE9BQXFDO1FBeER6Qzs7V0FFRztRQUNILDRCQUF1QixHQUFZLEtBQUssQ0FBQTtRQXFCeEM7O1dBRUc7UUFDTyxtQkFBYyxHQUFjLEVBQUUsQ0FBQTtRQUV4Qzs7V0FFRztRQUNPLG1CQUFjLEdBQWMsRUFBRSxDQUFBO1FBRXhDOztXQUVHO1FBQ08sbUJBQWMsR0FBYyxFQUFFLENBQUE7UUFFeEM7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QUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2xCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzVCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDeEIsQ0FBQztDQUNKO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvRkFBb0YiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tIFwiLi4vcXVlcnktcnVubmVyL1F1ZXJ5UnVubmVyXCJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwiLi9TdWJqZWN0XCJcbmltcG9ydCB7IFN1YmplY3RUb3BvbGlnaWNhbFNvcnRlciB9IGZyb20gXCIuL1N1YmplY3RUb3BvbGlnaWNhbFNvcnRlclwiXG5pbXBvcnQgeyBTdWJqZWN0Q2hhbmdlZENvbHVtbnNDb21wdXRlciB9IGZyb20gXCIuL1N1YmplY3RDaGFuZ2VkQ29sdW1uc0NvbXB1dGVyXCJcbmltcG9ydCB7IFN1YmplY3RXaXRob3V0SWRlbnRpZmllckVycm9yIH0gZnJvbSBcIi4uL2Vycm9yL1N1YmplY3RXaXRob3V0SWRlbnRpZmllckVycm9yXCJcbmltcG9ydCB7IFN1YmplY3RSZW1vdmVkQW5kVXBkYXRlZEVycm9yIH0gZnJvbSBcIi4uL2Vycm9yL1N1YmplY3RSZW1vdmVkQW5kVXBkYXRlZEVycm9yXCJcbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IE9iamVjdExpdGVyYWwgfSBmcm9tIFwiLi4vY29tbW9uL09iamVjdExpdGVyYWxcIlxuaW1wb3J0IHsgU2F2ZU9wdGlvbnMgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9TYXZlT3B0aW9uc1wiXG5pbXBvcnQgeyBSZW1vdmVPcHRpb25zIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvUmVtb3ZlT3B0aW9uc1wiXG5pbXBvcnQgeyBCcm9hZGNhc3RlclJlc3VsdCB9IGZyb20gXCIuLi9zdWJzY3JpYmVyL0Jyb2FkY2FzdGVyUmVzdWx0XCJcbmltcG9ydCB7IE5lc3RlZFNldFN1YmplY3RFeGVjdXRvciB9IGZyb20gXCIuL3RyZWUvTmVzdGVkU2V0U3ViamVjdEV4ZWN1dG9yXCJcbmltcG9ydCB7IENsb3N1cmVTdWJqZWN0RXhlY3V0b3IgfSBmcm9tIFwiLi90cmVlL0Nsb3N1cmVTdWJqZWN0RXhlY3V0b3JcIlxuaW1wb3J0IHsgTWF0ZXJpYWxpemVkUGF0aFN1YmplY3RFeGVjdXRvciB9IGZyb20gXCIuL3RyZWUvTWF0ZXJpYWxpemVkUGF0aFN1YmplY3RFeGVjdXRvclwiXG5pbXBvcnQgeyBPcm1VdGlscyB9IGZyb20gXCIuLi91dGlsL09ybVV0aWxzXCJcbmltcG9ydCB7IFVwZGF0ZVJlc3VsdCB9IGZyb20gXCIuLi9xdWVyeS1idWlsZGVyL3Jlc3VsdC9VcGRhdGVSZXN1bHRcIlxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tIFwiLi4vdXRpbC9PYmplY3RVdGlsc1wiXG5pbXBvcnQgeyBJbnN0YW5jZUNoZWNrZXIgfSBmcm9tIFwiLi4vdXRpbC9JbnN0YW5jZUNoZWNrZXJcIlxuXG4vKipcbiAqIEV4ZWN1dGVzIGFsbCBkYXRhYmFzZSBvcGVyYXRpb25zIChpbnNlcnRzLCB1cGRhdGVkLCBkZWxldGVzKSB0aGF0IG11c3QgYmUgZXhlY3V0ZWRcbiAqIHdpdGggZ2l2ZW4gcGVyc2lzdGVuY2Ugc3ViamVjdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdWJqZWN0RXhlY3V0b3Ige1xuXG5cblxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIGV4ZWN1dG9yIGhhcyBhbnkgb3BlcmF0aW9ucyB0byBleGVjdXRlIChlLmcuIGhhcyBpbnNlcnQgLyB1cGRhdGUgLyBkZWxldGUgb3BlcmF0aW9ucyB0byBiZSBleGVjdXRlZCkuXG4gICAgICovXG4gICAgaGFzRXhlY3V0YWJsZU9wZXJhdGlvbnM6IGJvb2xlYW4gPSBmYWxzZVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBRdWVyeVJ1bm5lciB1c2VkIHRvIGV4ZWN1dGUgYWxsIHF1ZXJpZXMgd2l0aCBhIGdpdmVuIHN1YmplY3RzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXJcblxuICAgIC8qKlxuICAgICAqIFBlcnNpc3RlbmNlIG9wdGlvbnMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM/OiBTYXZlT3B0aW9ucyAmIFJlbW92ZU9wdGlvbnNcblxuICAgIC8qKlxuICAgICAqIEFsbCBzdWJqZWN0cyB0aGF0IG5lZWRzIHRvIGJlIG9wZXJhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhbGxTdWJqZWN0czogU3ViamVjdFtdXG5cbiAgICAvKipcbiAgICAgKiBTdWJqZWN0cyB0aGF0IG11c3QgYmUgaW5zZXJ0ZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluc2VydFN1YmplY3RzOiBTdWJqZWN0W10gPSBbXVxuXG4gICAgLyoqXG4gICAgICogU3ViamVjdHMgdGhhdCBtdXN0IGJlIHVwZGF0ZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVN1YmplY3RzOiBTdWJqZWN0W10gPSBbXVxuXG4gICAgLyoqXG4gICAgICogU3ViamVjdHMgdGhhdCBtdXN0IGJlIHJlbW92ZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVN1YmplY3RzOiBTdWJqZWN0W10gPSBbXVxuXG4gICAgLyoqXG4gICAgICogU3ViamVjdHMgdGhhdCBtdXN0IGJlIHNvZnQtcmVtb3ZlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc29mdFJlbW92ZVN1YmplY3RzOiBTdWJqZWN0W10gPSBbXVxuXG4gICAgLyoqXG4gICAgICogU3ViamVjdHMgdGhhdCBtdXN0IGJlIHJlY292ZXJlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVjb3ZlclN1YmplY3RzOiBTdWJqZWN0W10gPSBbXVxuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLFxuICAgICAgICBzdWJqZWN0czogU3ViamVjdFtdLFxuICAgICAgICBvcHRpb25zPzogU2F2ZU9wdGlvbnMgJiBSZW1vdmVPcHRpb25zLFxuICAgICkge1xuICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyID0gcXVlcnlSdW5uZXJcbiAgICAgICAgdGhpcy5hbGxTdWJqZWN0cyA9IHN1YmplY3RzXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpXG4gICAgICAgIHRoaXMucmVjb21wdXRlKClcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGFsbCBvcGVyYXRpb25zIG92ZXIgZ2l2ZW4gYXJyYXkgb2Ygc3ViamVjdHMuXG4gICAgICogRXhlY3V0ZXMgcXVlcmllcyB1c2luZyBnaXZlbiBxdWVyeSBydW5uZXIuXG4gICAgICovXG4gICAgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcblxuXG5cbiAgICAgICAgbGV0IGJyb2FkY2FzdGVyUmVzdWx0OiBCcm9hZGNhc3RlclJlc3VsdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucyB8fCB0aGlzLm9wdGlvbnMubGlzdGVuZXJzICE9PSBmYWxzZSkge1xuXG4gICAgICAgICAgICBicm9hZGNhc3RlclJlc3VsdCA9IHRoaXMuYnJvYWRjYXN0QmVmb3JlRXZlbnRzRm9yQWxsKClcbiAgICAgICAgICAgIGlmIChicm9hZGNhc3RlclJlc3VsdC5wcm9taXNlcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGJyb2FkY2FzdGVyUmVzdWx0LnByb21pc2VzKVxuXG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgaWYgKGJyb2FkY2FzdGVyUmVzdWx0ICYmIGJyb2FkY2FzdGVyUmVzdWx0LmNvdW50ID4gMCkge1xuXG4gICAgICAgICAgICB0aGlzLmluc2VydFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QucmVjb21wdXRlKCkpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QucmVjb21wdXRlKCkpXG4gICAgICAgICAgICB0aGlzLnJlbW92ZVN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QucmVjb21wdXRlKCkpXG4gICAgICAgICAgICB0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiBzdWJqZWN0LnJlY29tcHV0ZSgpKVxuICAgICAgICAgICAgdGhpcy5yZWNvdmVyU3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCkgPT4gc3ViamVjdC5yZWNvbXB1dGUoKSlcbiAgICAgICAgICAgIHRoaXMucmVjb21wdXRlKClcblxuICAgICAgICB9XG5cblxuXG5cblxuXG5cbiAgICAgICAgdGhpcy5pbnNlcnRTdWJqZWN0cyA9IG5ldyBTdWJqZWN0VG9wb2xpZ2ljYWxTb3J0ZXIoXG4gICAgICAgICAgICB0aGlzLmluc2VydFN1YmplY3RzLFxuICAgICAgICApLnNvcnQoXCJpbnNlcnRcIilcbiAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlSW5zZXJ0T3BlcmF0aW9ucygpXG5cblxuXG5cbiAgICAgICAgdGhpcy51cGRhdGVTdWJqZWN0cyA9IHRoaXMuYWxsU3ViamVjdHMuZmlsdGVyKFxuICAgICAgICAgICAgKHN1YmplY3QpID0+IHN1YmplY3QubXVzdEJlVXBkYXRlZCxcbiAgICAgICAgKVxuXG5cblxuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVVcGRhdGVPcGVyYXRpb25zKClcblxuXG5cblxuICAgICAgICB0aGlzLnJlbW92ZVN1YmplY3RzID0gbmV3IFN1YmplY3RUb3BvbGlnaWNhbFNvcnRlcihcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU3ViamVjdHMsXG4gICAgICAgICkuc29ydChcImRlbGV0ZVwiKVxuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVSZW1vdmVPcGVyYXRpb25zKClcblxuXG5cbiAgICAgICAgdGhpcy5zb2Z0UmVtb3ZlU3ViamVjdHMgPSB0aGlzLmFsbFN1YmplY3RzLmZpbHRlcihcbiAgICAgICAgICAgIChzdWJqZWN0KSA9PiBzdWJqZWN0Lm11c3RCZVNvZnRSZW1vdmVkLFxuICAgICAgICApXG5cblxuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVTb2Z0UmVtb3ZlT3BlcmF0aW9ucygpXG5cblxuICAgICAgICB0aGlzLnJlY292ZXJTdWJqZWN0cyA9IHRoaXMuYWxsU3ViamVjdHMuZmlsdGVyKFxuICAgICAgICAgICAgKHN1YmplY3QpID0+IHN1YmplY3QubXVzdEJlUmVjb3ZlcmVkLFxuICAgICAgICApXG5cblxuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVSZWNvdmVyT3BlcmF0aW9ucygpXG5cblxuXG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlU3BlY2lhbENvbHVtbnNJblBlcnNpc3RlZEVudGl0aWVzKClcblxuXG5cbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMgfHwgdGhpcy5vcHRpb25zLmxpc3RlbmVycyAhPT0gZmFsc2UpIHtcblxuICAgICAgICAgICAgYnJvYWRjYXN0ZXJSZXN1bHQgPSB0aGlzLmJyb2FkY2FzdEFmdGVyRXZlbnRzRm9yQWxsKClcbiAgICAgICAgICAgIGlmIChicm9hZGNhc3RlclJlc3VsdC5wcm9taXNlcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGJyb2FkY2FzdGVyUmVzdWx0LnByb21pc2VzKVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuXG5cblxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGFsbCBnaXZlbiBzdWJqZWN0cy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGUoKSB7XG4gICAgICAgIHRoaXMuYWxsU3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN1YmplY3QubXVzdEJlVXBkYXRlZCAmJiBzdWJqZWN0Lm11c3RCZVJlbW92ZWQpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN1YmplY3RSZW1vdmVkQW5kVXBkYXRlZEVycm9yKHN1YmplY3QpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgZW50aXR5IHJlLWNvbXB1dGF0aW9ucyAtIGZpbmRzIGNoYW5nZWQgY29sdW1ucywgcmUtYnVpbGRzIGluc2VydC91cGRhdGUvcmVtb3ZlIHN1YmplY3RzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWNvbXB1dGUoKTogdm9pZCB7XG4gICAgICAgIG5ldyBTdWJqZWN0Q2hhbmdlZENvbHVtbnNDb21wdXRlcigpLmNvbXB1dGUodGhpcy5hbGxTdWJqZWN0cylcbiAgICAgICAgdGhpcy5pbnNlcnRTdWJqZWN0cyA9IHRoaXMuYWxsU3ViamVjdHMuZmlsdGVyKFxuICAgICAgICAgICAgKHN1YmplY3QpID0+IHN1YmplY3QubXVzdEJlSW5zZXJ0ZWQsXG4gICAgICAgIClcbiAgICAgICAgdGhpcy51cGRhdGVTdWJqZWN0cyA9IHRoaXMuYWxsU3ViamVjdHMuZmlsdGVyKFxuICAgICAgICAgICAgKHN1YmplY3QpID0+IHN1YmplY3QubXVzdEJlVXBkYXRlZCxcbiAgICAgICAgKVxuICAgICAgICB0aGlzLnJlbW92ZVN1YmplY3RzID0gdGhpcy5hbGxTdWJqZWN0cy5maWx0ZXIoXG4gICAgICAgICAgICAoc3ViamVjdCkgPT4gc3ViamVjdC5tdXN0QmVSZW1vdmVkLFxuICAgICAgICApXG4gICAgICAgIHRoaXMuc29mdFJlbW92ZVN1YmplY3RzID0gdGhpcy5hbGxTdWJqZWN0cy5maWx0ZXIoXG4gICAgICAgICAgICAoc3ViamVjdCkgPT4gc3ViamVjdC5tdXN0QmVTb2Z0UmVtb3ZlZCxcbiAgICAgICAgKVxuICAgICAgICB0aGlzLnJlY292ZXJTdWJqZWN0cyA9IHRoaXMuYWxsU3ViamVjdHMuZmlsdGVyKFxuICAgICAgICAgICAgKHN1YmplY3QpID0+IHN1YmplY3QubXVzdEJlUmVjb3ZlcmVkLFxuICAgICAgICApXG4gICAgICAgIHRoaXMuaGFzRXhlY3V0YWJsZU9wZXJhdGlvbnMgPVxuICAgICAgICAgICAgdGhpcy5pbnNlcnRTdWJqZWN0cy5sZW5ndGggPiAwIHx8XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN1YmplY3RzLmxlbmd0aCA+IDAgfHxcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU3ViamVjdHMubGVuZ3RoID4gMCB8fFxuICAgICAgICAgICAgdGhpcy5zb2Z0UmVtb3ZlU3ViamVjdHMubGVuZ3RoID4gMCB8fFxuICAgICAgICAgICAgdGhpcy5yZWNvdmVyU3ViamVjdHMubGVuZ3RoID4gMFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJyb2FkY2FzdHMgXCJCRUZPUkVfSU5TRVJUXCIsIFwiQkVGT1JFX1VQREFURVwiLCBcIkJFRk9SRV9SRU1PVkVcIiwgXCJCRUZPUkVfU09GVF9SRU1PVkVcIiwgXCJCRUZPUkVfUkVDT1ZFUlwiIGV2ZW50cyBmb3IgYWxsIGdpdmVuIHN1YmplY3RzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBicm9hZGNhc3RCZWZvcmVFdmVudHNGb3JBbGwoKTogQnJvYWRjYXN0ZXJSZXN1bHQge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQnJvYWRjYXN0ZXJSZXN1bHQoKVxuICAgICAgICBpZiAodGhpcy5pbnNlcnRTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLmluc2VydFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lci5icm9hZGNhc3Rlci5icm9hZGNhc3RCZWZvcmVJbnNlcnRFdmVudChcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmVudGl0eSEsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgaWYgKHRoaXMudXBkYXRlU3ViamVjdHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy51cGRhdGVTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuYnJvYWRjYXN0ZXIuYnJvYWRjYXN0QmVmb3JlVXBkYXRlRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHkhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRhdGFiYXNlRW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRpZmZDb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRpZmZSZWxhdGlvbnMsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgaWYgKHRoaXMucmVtb3ZlU3ViamVjdHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuYnJvYWRjYXN0ZXIuYnJvYWRjYXN0QmVmb3JlUmVtb3ZlRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHkhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRhdGFiYXNlRW50aXR5LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgIGlmICh0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuYnJvYWRjYXN0ZXIuYnJvYWRjYXN0QmVmb3JlU29mdFJlbW92ZUV2ZW50KFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZW50aXR5ISxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5kYXRhYmFzZUVudGl0eSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICBpZiAodGhpcy5yZWNvdmVyU3ViamVjdHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy5yZWNvdmVyU3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLmJyb2FkY2FzdGVyLmJyb2FkY2FzdEJlZm9yZVJlY292ZXJFdmVudChcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmVudGl0eSEsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZGF0YWJhc2VFbnRpdHksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJyb2FkY2FzdHMgXCJBRlRFUl9JTlNFUlRcIiwgXCJBRlRFUl9VUERBVEVcIiwgXCJBRlRFUl9SRU1PVkVcIiwgXCJBRlRFUl9TT0ZUX1JFTU9WRVwiLCBcIkFGVEVSX1JFQ09WRVJcIiBldmVudHMgZm9yIGFsbCBnaXZlbiBzdWJqZWN0cy5cbiAgICAgKiBSZXR1cm5zIHZvaWQgaWYgdGhlcmUgd2Fzbid0IGFueSBsaXN0ZW5lciBvciBzdWJzY3JpYmVyIGV4ZWN1dGVkLlxuICAgICAqIE5vdGU6IHRoaXMgbWV0aG9kIGhhcyBhIHBlcmZvcm1hbmNlLW9wdGltaXplZCBjb2RlIG9yZ2FuaXphdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYnJvYWRjYXN0QWZ0ZXJFdmVudHNGb3JBbGwoKTogQnJvYWRjYXN0ZXJSZXN1bHQge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQnJvYWRjYXN0ZXJSZXN1bHQoKVxuICAgICAgICBpZiAodGhpcy5pbnNlcnRTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLmluc2VydFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lci5icm9hZGNhc3Rlci5icm9hZGNhc3RBZnRlckluc2VydEV2ZW50KFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZW50aXR5ISxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICBpZiAodGhpcy51cGRhdGVTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lci5icm9hZGNhc3Rlci5icm9hZGNhc3RBZnRlclVwZGF0ZUV2ZW50KFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZW50aXR5ISxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5kYXRhYmFzZUVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5kaWZmQ29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5kaWZmUmVsYXRpb25zLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgIGlmICh0aGlzLnJlbW92ZVN1YmplY3RzLmxlbmd0aClcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLmJyb2FkY2FzdGVyLmJyb2FkY2FzdEFmdGVyUmVtb3ZlRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHkhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRhdGFiYXNlRW50aXR5LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgIGlmICh0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuYnJvYWRjYXN0ZXIuYnJvYWRjYXN0QWZ0ZXJTb2Z0UmVtb3ZlRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHkhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRhdGFiYXNlRW50aXR5LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgIGlmICh0aGlzLnJlY292ZXJTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnJlY292ZXJTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuYnJvYWRjYXN0ZXIuYnJvYWRjYXN0QWZ0ZXJSZWNvdmVyRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHkhLFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmRhdGFiYXNlRW50aXR5LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBpbnNlcnQgb3BlcmF0aW9ucy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZUluc2VydE9wZXJhdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAgICAgY29uc3QgW2dyb3VwZWRJbnNlcnRTdWJqZWN0cywgZ3JvdXBlZEluc2VydFN1YmplY3RLZXlzXSA9XG4gICAgICAgICAgICB0aGlzLmdyb3VwQnVsa1N1YmplY3RzKHRoaXMuaW5zZXJ0U3ViamVjdHMsIFwiaW5zZXJ0XCIpXG5cblxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwTmFtZSBvZiBncm91cGVkSW5zZXJ0U3ViamVjdEtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YmplY3RzID0gZ3JvdXBlZEluc2VydFN1YmplY3RzW2dyb3VwTmFtZV1cblxuXG5cbiAgICAgICAgICAgIGNvbnN0IGJ1bGtJbnNlcnRNYXBzOiBPYmplY3RMaXRlcmFsW10gPSBbXVxuICAgICAgICAgICAgY29uc3QgYnVsa0luc2VydFN1YmplY3RzOiBTdWJqZWN0W10gPSBbXVxuICAgICAgICAgICAgY29uc3Qgc2luZ2xlSW5zZXJ0U3ViamVjdHM6IFN1YmplY3RbXSA9IFtdXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVJ1bm5lci5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwibW9uZ29kYlwiKSB7XG4gICAgICAgICAgICAgICAgc3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3ViamVjdC5tZXRhZGF0YS5jcmVhdGVEYXRlQ29sdW1uICYmIHN1YmplY3QuZW50aXR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmVudGl0eVtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLmNyZWF0ZURhdGVDb2x1bW4uZGF0YWJhc2VOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBdID0gbmV3IERhdGUoKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YmplY3QubWV0YWRhdGEudXBkYXRlRGF0ZUNvbHVtbiAmJiBzdWJqZWN0LmVudGl0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHlbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YS51cGRhdGVEYXRlQ29sdW1uLmRhdGFiYXNlTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgXSA9IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QuY3JlYXRlVmFsdWVTZXRBbmRQb3BDaGFuZ2VNYXAoKVxuXG4gICAgICAgICAgICAgICAgICAgIGJ1bGtJbnNlcnRTdWJqZWN0cy5wdXNoKHN1YmplY3QpXG4gICAgICAgICAgICAgICAgICAgIGJ1bGtJbnNlcnRNYXBzLnB1c2goc3ViamVjdC5lbnRpdHkhKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcIm9yYWNsZVwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNpbmdsZUluc2VydFN1YmplY3RzLnB1c2goc3ViamVjdClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiB7XG5cblxuXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5jaGFuZ2VNYXBzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YS50cmVlVHlwZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lci5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmFjbGVcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lci5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzYXBcIlxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZUluc2VydFN1YmplY3RzLnB1c2goc3ViamVjdClcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGtJbnNlcnRTdWJqZWN0cy5wdXNoKHN1YmplY3QpXG4gICAgICAgICAgICAgICAgICAgICAgICBidWxrSW5zZXJ0TWFwcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuY3JlYXRlVmFsdWVTZXRBbmRQb3BDaGFuZ2VNYXAoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgaWYgKFxuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICAgICAgICAgICAgZmFsc2VcblxuICAgICAgICAgICAgKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuXG5cbiAgICAgICAgICAgICAgICBpZiAoYnVsa0luc2VydE1hcHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRSZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLm1hbmFnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmluc2VydCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW50byhzdWJqZWN0c1swXS5tZXRhZGF0YS50YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVzKGJ1bGtJbnNlcnRNYXBzKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnVwZGF0ZUVudGl0eShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnJlbG9hZCA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FsbExpc3RlbmVycyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5leGVjdXRlKClcblxuICAgICAgICAgICAgICAgICAgICBidWxrSW5zZXJ0U3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuaWRlbnRpZmllciA9IGluc2VydFJlc3VsdC5pZGVudGlmaWVyc1tpbmRleF1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZ2VuZXJhdGVkTWFwID0gaW5zZXJ0UmVzdWx0LmdlbmVyYXRlZE1hcHNbaW5kZXhdXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lmluc2VydGVkVmFsdWVTZXQgPSBidWxrSW5zZXJ0TWFwc1tpbmRleF1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIGlmIChzaW5nbGVJbnNlcnRTdWJqZWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3ViamVjdCBvZiBzaW5nbGVJbnNlcnRTdWJqZWN0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5pbnNlcnRlZFZhbHVlU2V0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmNyZWF0ZVZhbHVlU2V0QW5kUG9wQ2hhbmdlTWFwKCkgLy8gaW1wb3J0YW50IHRvIGhhdmUgYmVjYXVzZSBxdWVyeSBidWlsZGVyIHNldHMgaW5zZXJ0ZWQgdmFsdWVzIGludG8gaXRcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ViamVjdC5tZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJuZXN0ZWQtc2V0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IE5lc3RlZFNldFN1YmplY3RFeGVjdXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmluc2VydChzdWJqZWN0KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLm1hbmFnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5zZXJ0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW50byhzdWJqZWN0Lm1ldGFkYXRhLnRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVzKHN1YmplY3QuaW5zZXJ0ZWRWYWx1ZVNldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlRW50aXR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnJlbG9hZCA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhbGxMaXN0ZW5lcnMoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChpbnNlcnRSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5pZGVudGlmaWVyID0gaW5zZXJ0UmVzdWx0LmlkZW50aWZpZXJzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZ2VuZXJhdGVkTWFwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydFJlc3VsdC5nZW5lcmF0ZWRNYXBzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ViamVjdC5tZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJjbG9zdXJlLXRhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgQ2xvc3VyZVN1YmplY3RFeGVjdXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmluc2VydChzdWJqZWN0KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLnRyZWVUeXBlID09PSBcIm1hdGVyaWFsaXplZC1wYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBNYXRlcmlhbGl6ZWRQYXRoU3ViamVjdEV4ZWN1dG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuaW5zZXJ0KHN1YmplY3QpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3ViamVjdC5nZW5lcmF0ZWRNYXApIHtcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb2x1bW4uZ2V0RW50aXR5VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5nZW5lcmF0ZWRNYXAhLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmVwYXJlZFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lci5jb25uZWN0aW9uLmRyaXZlci5wcmVwYXJlSHlkcmF0ZWRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnNldEVudGl0eVZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmdlbmVyYXRlZE1hcCEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXBhcmVkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGFsbCBnaXZlbiBzdWJqZWN0cyBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVVcGRhdGVPcGVyYXRpb25zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB1cGRhdGVTdWJqZWN0ID0gYXN5bmMgKHN1YmplY3Q6IFN1YmplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghc3ViamVjdC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdWJqZWN0V2l0aG91dElkZW50aWZpZXJFcnJvcihzdWJqZWN0KVxuXG5cbiAgICAgICAgICAgIGlmIChcbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4gIFxuICAgICAgICAgICAgICAgIGZhbHNlXG5cbiAgICAgICAgICAgICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlTWFwOiBPYmplY3RMaXRlcmFsID1cbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5jcmVhdGVWYWx1ZVNldEFuZFBvcENoYW5nZU1hcCgpXG5cblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3ViamVjdC5tZXRhZGF0YS50cmVlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwibmVzdGVkLXNldFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IE5lc3RlZFNldFN1YmplY3RFeGVjdXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgKS51cGRhdGUoc3ViamVjdClcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImNsb3N1cmUtdGFibGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBDbG9zdXJlU3ViamVjdEV4ZWN1dG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICApLnVwZGF0ZShzdWJqZWN0KVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwibWF0ZXJpYWxpemVkLXBhdGhcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBNYXRlcmlhbGl6ZWRQYXRoU3ViamVjdEV4ZWN1dG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICApLnVwZGF0ZShzdWJqZWN0KVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVF1ZXJ5QnVpbGRlciA9IHRoaXMucXVlcnlSdW5uZXIubWFuYWdlclxuICAgICAgICAgICAgICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgICAgICAgICAgICAgLnVwZGF0ZShzdWJqZWN0Lm1ldGFkYXRhLnRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgLnNldCh1cGRhdGVNYXApXG4gICAgICAgICAgICAgICAgICAgIC51cGRhdGVFbnRpdHkoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnJlbG9hZCA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5jYWxsTGlzdGVuZXJzKGZhbHNlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHN1YmplY3QuZW50aXR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVF1ZXJ5QnVpbGRlci53aGVyZUVudGl0eShzdWJqZWN0LmlkZW50aWZpZXIpXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVRdWVyeUJ1aWxkZXIud2hlcmUoc3ViamVjdC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHVwZGF0ZVF1ZXJ5QnVpbGRlci5leGVjdXRlKClcbiAgICAgICAgICAgICAgICBsZXQgdXBkYXRlR2VuZXJhdGVkTWFwID0gdXBkYXRlUmVzdWx0LmdlbmVyYXRlZE1hcHNbMF1cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlR2VuZXJhdGVkTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uLmdldEVudGl0eVZhbHVlKHVwZGF0ZUdlbmVyYXRlZE1hcCEpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXBhcmVkVmFsdWUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLmNvbm5lY3Rpb24uZHJpdmVyLnByZXBhcmVIeWRyYXRlZFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uc2V0RW50aXR5VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUdlbmVyYXRlZE1hcCEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXBhcmVkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN1YmplY3QuZ2VuZXJhdGVkTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmdlbmVyYXRlZE1hcCA9IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihzdWJqZWN0LmdlbmVyYXRlZE1hcCwgdXBkYXRlR2VuZXJhdGVkTWFwKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblxuICAgICAgICBjb25zdCBuZXN0ZWRTZXRTdWJqZWN0czogU3ViamVjdFtdID0gW11cbiAgICAgICAgY29uc3QgcmVtYWluaW5nU3ViamVjdHM6IFN1YmplY3RbXSA9IFtdXG5cbiAgICAgICAgZm9yIChjb25zdCBzdWJqZWN0IG9mIHRoaXMudXBkYXRlU3ViamVjdHMpIHtcbiAgICAgICAgICAgIGlmIChzdWJqZWN0Lm1ldGFkYXRhLnRyZWVUeXBlID09PSBcIm5lc3RlZC1zZXRcIikge1xuICAgICAgICAgICAgICAgIG5lc3RlZFNldFN1YmplY3RzLnB1c2goc3ViamVjdClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVtYWluaW5nU3ViamVjdHMucHVzaChzdWJqZWN0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBjb25zdCBuZXN0ZWRTZXRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oYXN5bmMgKG9rLCBmYWlsKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YmplY3Qgb2YgbmVzdGVkU2V0U3ViamVjdHMpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB1cGRhdGVTdWJqZWN0KHN1YmplY3QpXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgZmFpbChlcnJvcilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvaygpXG4gICAgICAgIH0pXG5cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAuLi5yZW1haW5pbmdTdWJqZWN0cy5tYXAodXBkYXRlU3ViamVjdCksXG4gICAgICAgICAgICBuZXN0ZWRTZXRQcm9taXNlLFxuICAgICAgICBdKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGdpdmVuIHN1YmplY3RzIGZyb20gdGhlIGRhdGFiYXNlLlxuICAgICAqXG4gICAgICogdG9kbzogd2UgbmVlZCB0byBhcHBseSB0b3BvbG9naWNhbCBzb3J0IGhlcmUgYXMgd2VsbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBleGVjdXRlUmVtb3ZlT3BlcmF0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgICAgICBjb25zdCBbZ3JvdXBlZFJlbW92ZVN1YmplY3RzLCBncm91cGVkUmVtb3ZlU3ViamVjdEtleXNdID1cbiAgICAgICAgICAgIHRoaXMuZ3JvdXBCdWxrU3ViamVjdHModGhpcy5yZW1vdmVTdWJqZWN0cywgXCJkZWxldGVcIilcblxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwTmFtZSBvZiBncm91cGVkUmVtb3ZlU3ViamVjdEtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YmplY3RzID0gZ3JvdXBlZFJlbW92ZVN1YmplY3RzW2dyb3VwTmFtZV1cbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZU1hcHMgPSBzdWJqZWN0cy5tYXAoKHN1YmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN1YmplY3QuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN1YmplY3RXaXRob3V0SWRlbnRpZmllckVycm9yKHN1YmplY3QpXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gc3ViamVjdC5pZGVudGlmaWVyXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgICAgIGlmIChcbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4gIFxuICAgICAgICAgICAgICAgIGZhbHNlXG5cbiAgICAgICAgICAgICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN1YmplY3RzWzBdLm1ldGFkYXRhLnRyZWVUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJuZXN0ZWQtc2V0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgTmVzdGVkU2V0U3ViamVjdEV4ZWN1dG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICApLnJlbW92ZShzdWJqZWN0cylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImNsb3N1cmUtdGFibGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBDbG9zdXJlU3ViamVjdEV4ZWN1dG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICApLnJlbW92ZShzdWJqZWN0cylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG5cblxuXG5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLm1hbmFnZXJcbiAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgICAgICAgICAgICAgIC5kZWxldGUoKVxuICAgICAgICAgICAgICAgICAgICAuZnJvbShzdWJqZWN0c1swXS5tZXRhZGF0YS50YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgIC53aGVyZShkZWxldGVNYXBzKVxuICAgICAgICAgICAgICAgICAgICAuY2FsbExpc3RlbmVycyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9uZU1vbmdvU3ViamVjdEVudGl0eShzdWJqZWN0OiBTdWJqZWN0KTogT2JqZWN0TGl0ZXJhbCB7XG4gICAgICAgIGNvbnN0IHRhcmdldDogT2JqZWN0TGl0ZXJhbCA9IHt9XG5cbiAgICAgICAgaWYgKHN1YmplY3QuZW50aXR5KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBzdWJqZWN0Lm1ldGFkYXRhLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBPcm1VdGlscy5tZXJnZURlZXAoXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLmdldEVudGl0eVZhbHVlTWFwKHN1YmplY3QuZW50aXR5KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFyZ2V0XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU29mdC1yZW1vdmVzIGFsbCBnaXZlbiBzdWJqZWN0cyBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVTb2Z0UmVtb3ZlT3BlcmF0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICB0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5tYXAoYXN5bmMgKHN1YmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN1YmplY3QuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN1YmplY3RXaXRob3V0SWRlbnRpZmllckVycm9yKHN1YmplY3QpXG5cbiAgICAgICAgICAgICAgICBsZXQgdXBkYXRlUmVzdWx0OiBVcGRhdGVSZXN1bHRcblxuXG4gICAgICAgICAgICAgICAgaWYgKFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgICAgICAgICAgICAgZmFsc2VcblxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJ0aWFsRW50aXR5ID0gdGhpcy5jbG9uZU1vbmdvU3ViamVjdEVudGl0eShzdWJqZWN0KVxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLm9iamVjdElkQ29sdW1uICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLm9iamVjdElkQ29sdW1uLnByb3BlcnR5TmFtZVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWFsRW50aXR5W1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEub2JqZWN0SWRDb2x1bW4ucHJvcGVydHlOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLmNyZWF0ZURhdGVDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuY3JlYXRlRGF0ZUNvbHVtbi5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGFydGlhbEVudGl0eVtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLmNyZWF0ZURhdGVDb2x1bW4ucHJvcGVydHlOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLnVwZGF0ZURhdGVDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEudXBkYXRlRGF0ZUNvbHVtbi5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWFsRW50aXR5W1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEudXBkYXRlRGF0ZUNvbHVtbi5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIF0gPSBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLmRlbGV0ZURhdGVDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuZGVsZXRlRGF0ZUNvbHVtbi5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWFsRW50aXR5W1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuZGVsZXRlRGF0ZUNvbHVtbi5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIF0gPSBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgIGxldCBtYW5hZ2VyXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlciA9IHRoaXMucXVlcnlSdW5uZXIubWFuYWdlclxuXG5cbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlUmVzdWx0ID0gYXdhaXQgbWFuYWdlci51cGRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuaWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxFbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG5cblxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvZnREZWxldGVRdWVyeUJ1aWxkZXIgPSB0aGlzLnF1ZXJ5UnVubmVyLm1hbmFnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNvZnREZWxldGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZyb20oc3ViamVjdC5tZXRhZGF0YS50YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlRW50aXR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMucmVsb2FkID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYWxsTGlzdGVuZXJzKGZhbHNlKVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJqZWN0LmVudGl0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc29mdERlbGV0ZVF1ZXJ5QnVpbGRlci53aGVyZUVudGl0eShzdWJqZWN0LmlkZW50aWZpZXIpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNvZnREZWxldGVRdWVyeUJ1aWxkZXIud2hlcmUoc3ViamVjdC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlUmVzdWx0ID0gYXdhaXQgc29mdERlbGV0ZVF1ZXJ5QnVpbGRlci5leGVjdXRlKClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdWJqZWN0LmdlbmVyYXRlZE1hcCA9IHVwZGF0ZVJlc3VsdC5nZW5lcmF0ZWRNYXBzWzBdXG4gICAgICAgICAgICAgICAgaWYgKHN1YmplY3QuZ2VuZXJhdGVkTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uLmdldEVudGl0eVZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZ2VuZXJhdGVkTWFwISxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlcGFyZWRWYWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuY29ubmVjdGlvbi5kcml2ZXIucHJlcGFyZUh5ZHJhdGVkVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5zZXRFbnRpdHlWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5nZW5lcmF0ZWRNYXAhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cblxuXG5cblxuXG4gICAgICAgICAgICAgICAgLy9cblxuXG5cblxuXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlY292ZXJzIGFsbCBnaXZlbiBzdWJqZWN0cyBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVSZWNvdmVyT3BlcmF0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICB0aGlzLnJlY292ZXJTdWJqZWN0cy5tYXAoYXN5bmMgKHN1YmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN1YmplY3QuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN1YmplY3RXaXRob3V0SWRlbnRpZmllckVycm9yKHN1YmplY3QpXG5cbiAgICAgICAgICAgICAgICBsZXQgdXBkYXRlUmVzdWx0OiBVcGRhdGVSZXN1bHRcblxuXG4gICAgICAgICAgICAgICAgaWYgKFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuXG4gICAgICAgICAgICAgICAgKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG5cblxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvZnREZWxldGVRdWVyeUJ1aWxkZXIgPSB0aGlzLnF1ZXJ5UnVubmVyLm1hbmFnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlc3RvcmUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZyb20oc3ViamVjdC5tZXRhZGF0YS50YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlRW50aXR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMucmVsb2FkID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYWxsTGlzdGVuZXJzKGZhbHNlKVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJqZWN0LmVudGl0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc29mdERlbGV0ZVF1ZXJ5QnVpbGRlci53aGVyZUVudGl0eShzdWJqZWN0LmlkZW50aWZpZXIpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNvZnREZWxldGVRdWVyeUJ1aWxkZXIud2hlcmUoc3ViamVjdC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlUmVzdWx0ID0gYXdhaXQgc29mdERlbGV0ZVF1ZXJ5QnVpbGRlci5leGVjdXRlKClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdWJqZWN0LmdlbmVyYXRlZE1hcCA9IHVwZGF0ZVJlc3VsdC5nZW5lcmF0ZWRNYXBzWzBdXG4gICAgICAgICAgICAgICAgaWYgKHN1YmplY3QuZ2VuZXJhdGVkTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uLmdldEVudGl0eVZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZ2VuZXJhdGVkTWFwISxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlcGFyZWRWYWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuY29ubmVjdGlvbi5kcml2ZXIucHJlcGFyZUh5ZHJhdGVkVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5zZXRFbnRpdHlWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5nZW5lcmF0ZWRNYXAhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cblxuXG5cblxuXG4gICAgICAgICAgICAgICAgLy9cblxuXG5cblxuXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYWxsIHNwZWNpYWwgY29sdW1ucyBvZiB0aGUgc2F2aW5nIGVudGl0aWVzIChjcmVhdGUgZGF0ZSwgdXBkYXRlIGRhdGUsIHZlcnNpb24sIGV0Yy4pLlxuICAgICAqIEFsc28gdXBkYXRlcyBudWxsYWJsZSBjb2x1bW5zIGFuZCBjb2x1bW5zIHdpdGggZGVmYXVsdCB2YWx1ZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVNwZWNpYWxDb2x1bW5zSW5QZXJzaXN0ZWRFbnRpdGllcygpOiB2b2lkIHtcblxuICAgICAgICBpZiAodGhpcy5pbnNlcnRTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNwZWNpYWxDb2x1bW5zSW5JbnNlcnRlZEFuZFVwZGF0ZWRFbnRpdGllcyhcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydFN1YmplY3RzLFxuICAgICAgICAgICAgKVxuXG5cbiAgICAgICAgaWYgKHRoaXMudXBkYXRlU3ViamVjdHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy51cGRhdGVTcGVjaWFsQ29sdW1uc0luSW5zZXJ0ZWRBbmRVcGRhdGVkRW50aXRpZXMoXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdWJqZWN0cyxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGlmICh0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNwZWNpYWxDb2x1bW5zSW5JbnNlcnRlZEFuZFVwZGF0ZWRFbnRpdGllcyhcbiAgICAgICAgICAgICAgICB0aGlzLnNvZnRSZW1vdmVTdWJqZWN0cyxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGlmICh0aGlzLnJlY292ZXJTdWJqZWN0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNwZWNpYWxDb2x1bW5zSW5JbnNlcnRlZEFuZFVwZGF0ZWRFbnRpdGllcyhcbiAgICAgICAgICAgICAgICB0aGlzLnJlY292ZXJTdWJqZWN0cyxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGlmICh0aGlzLnJlbW92ZVN1YmplY3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdWJqZWN0LmVudGl0eSkgcmV0dXJuXG5cbiAgICAgICAgICAgICAgICBzdWJqZWN0Lm1ldGFkYXRhLnByaW1hcnlDb2x1bW5zLmZvckVhY2goKHByaW1hcnlDb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbWFyeUNvbHVtbi5zZXRFbnRpdHlWYWx1ZShzdWJqZWN0LmVudGl0eSEsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy5hbGxTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXN1YmplY3QuZW50aXR5KSByZXR1cm5cblxuICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YS5yZWxhdGlvbklkcy5mb3JFYWNoKChyZWxhdGlvbklkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb25JZC5zZXRWYWx1ZShzdWJqZWN0LmVudGl0eSEpXG4gICAgICAgICAgICB9KVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGFsbCBzcGVjaWFsIGNvbHVtbnMgb2YgdGhlIHNhdmluZyBlbnRpdGllcyAoY3JlYXRlIGRhdGUsIHVwZGF0ZSBkYXRlLCB2ZXJzaW9uLCBldGMuKS5cbiAgICAgKiBBbHNvIHVwZGF0ZXMgbnVsbGFibGUgY29sdW1ucyBhbmQgY29sdW1ucyB3aXRoIGRlZmF1bHQgdmFsdWVzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVTcGVjaWFsQ29sdW1uc0luSW5zZXJ0ZWRBbmRVcGRhdGVkRW50aXRpZXMoXG4gICAgICAgIHN1YmplY3RzOiBTdWJqZWN0W10sXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghc3ViamVjdC5lbnRpdHkpIHJldHVyblxuXG5cbiAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YS5jaGlsZEVudGl0eU1ldGFkYXRhcy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubWV0YWRhdGEuY2hpbGRFbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS50YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXhPZihjb2x1bW4udGFyZ2V0KSAhPT0gLTFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuXG5cbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uLmlzVmlydHVhbCkgcmV0dXJuXG5cblxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uaXNOdWxsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZSA9IGNvbHVtbi5nZXRFbnRpdHlWYWx1ZShzdWJqZWN0LmVudGl0eSEpXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5WYWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnNldEVudGl0eVZhbHVlKHN1YmplY3QuZW50aXR5ISwgbnVsbClcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIGlmIChzdWJqZWN0LnVwZGF0ZWRSZWxhdGlvbk1hcHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LnVwZGF0ZWRSZWxhdGlvbk1hcHMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICh1cGRhdGVkUmVsYXRpb25NYXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkUmVsYXRpb25NYXAucmVsYXRpb24uam9pbkNvbHVtbnMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbi5pc1ZpcnR1YWwgPT09IHRydWUpIHJldHVyblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uc2V0RW50aXR5VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5lbnRpdHkhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFV0aWxzLmlzT2JqZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkUmVsYXRpb25NYXAudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbHVtbi5yZWZlcmVuY2VkQ29sdW1uIS5nZXRFbnRpdHlWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZFJlbGF0aW9uTWFwLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1cGRhdGVkUmVsYXRpb25NYXAudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cblxuICAgICAgICAgICAgaWYgKHN1YmplY3QuZ2VuZXJhdGVkTWFwKVxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIubWFuYWdlci5tZXJnZShcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5tZXRhZGF0YS50YXJnZXQgYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdC5nZW5lcmF0ZWRNYXAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdyb3VwcyBzdWJqZWN0cyBieSBtZXRhZGF0YSBuYW1lcyAoYnkgdGFibGVzKSB0byBtYWtlIGJ1bGsgaW5zZXJ0aW9ucyBhbmQgZGVsZXRpb25zIHBvc3NpYmxlLlxuICAgICAqIEhvd2V2ZXIgdGhlcmUgYXJlIHNvbWUgbGltaXRhdGlvbnMgd2l0aCBidWxrIGluc2VydGlvbnMgb2YgZGF0YSBpbnRvIHRhYmxlcyB3aXRoIGdlbmVyYXRlZCAoaW5jcmVtZW50KSBjb2x1bW5zXG4gICAgICogaW4gc29tZSBkcml2ZXJzLiBTb21lIGRyaXZlcnMgbGlrZSBteXNxbCBhbmQgc3FsaXRlIGRvZXMgbm90IHN1cHBvcnQgcmV0dXJuaW5nIG11bHRpcGxlIGdlbmVyYXRlZCBjb2x1bW5zXG4gICAgICogYWZ0ZXIgaW5zZXJ0aW9uIGFuZCBjYW4gb25seSByZXR1cm4gYSBzaW5nbGUgZ2VuZXJhdGVkIGNvbHVtbiB2YWx1ZSwgdGhhdCdzIHdoeSBpdHMgbm90IHBvc3NpYmxlIHRvIGRvIGJ1bGsgaW5zZXJ0aW9uLFxuICAgICAqIGJlY2F1c2UgaXQgYnJlYWtzIGluc2VydGlvbiByZXN1bHQncyBnZW5lcmF0ZWRNYXAgYW5kIGxlYWRzIHRvIHByb2JsZW1zIHdoZW4gdGhpcyBzdWJqZWN0IGlzIHVzZWQgaW4gb3RoZXIgc3ViamVjdHMgc2F2ZXMuXG4gICAgICogVGhhdCdzIHdoeSB3ZSBvbmx5IHN1cHBvcnQgYnVsa2luZyBpbiBqdW5jdGlvbiB0YWJsZXMgZm9yIHRob3NlIGRyaXZlcnMuXG4gICAgICpcbiAgICAgKiBPdGhlciBkcml2ZXJzIGxpa2UgcG9zdGdyZXMgYW5kIHNxbCBzZXJ2ZXIgc3VwcG9ydCBSRVRVUk5JTkcgLyBPVVRQVVQgc3RhdGVtZW50IHdoaWNoIGFsbG93cyB0byByZXR1cm4gZ2VuZXJhdGVkXG4gICAgICogaWQgZm9yIGVhY2ggaW5zZXJ0ZWQgcm93LCB0aGF0J3Mgd2h5IGJ1bGsgaW5zZXJ0aW9uIGlzIG5vdCBsaW1pdGVkIHRvIGp1bmN0aW9uIHRhYmxlcyBpbiB0aGVyZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBCdWxrU3ViamVjdHMoXG4gICAgICAgIHN1YmplY3RzOiBTdWJqZWN0W10sXG4gICAgICAgIHR5cGU6IFwiaW5zZXJ0XCIgfCBcImRlbGV0ZVwiLFxuICAgICk6IFt7IFtrZXk6IHN0cmluZ106IFN1YmplY3RbXSB9LCBzdHJpbmdbXV0ge1xuICAgICAgICBjb25zdCBncm91cDogeyBba2V5OiBzdHJpbmddOiBTdWJqZWN0W10gfSA9IHt9XG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW11cbiAgICAgICAgY29uc3QgaGFzUmV0dXJuaW5nRGVwZW5kQ29sdW1ucyA9IHN1YmplY3RzLnNvbWUoKHN1YmplY3QpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdWJqZWN0Lm1ldGFkYXRhLmdldEluc2VydGlvblJldHVybmluZ0NvbHVtbnMoKS5sZW5ndGggPiAwXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGdyb3VwaW5nQWxsb3dlZCA9XG4gICAgICAgICAgICB0eXBlID09PSBcImRlbGV0ZVwiIHx8XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLmNvbm5lY3Rpb24uZHJpdmVyLmlzUmV0dXJuaW5nU3FsU3VwcG9ydGVkKFxuICAgICAgICAgICAgICAgIFwiaW5zZXJ0XCIsXG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICBoYXNSZXR1cm5pbmdEZXBlbmRDb2x1bW5zID09PSBmYWxzZVxuXG4gICAgICAgIHN1YmplY3RzLmZvckVhY2goKHN1YmplY3QsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPVxuICAgICAgICAgICAgICAgIGdyb3VwaW5nQWxsb3dlZCB8fCBzdWJqZWN0Lm1ldGFkYXRhLmlzSnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgPyBzdWJqZWN0Lm1ldGFkYXRhLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgOiBzdWJqZWN0Lm1ldGFkYXRhLm5hbWUgKyBcIl9cIiArIGluZGV4XG4gICAgICAgICAgICBpZiAoIWdyb3VwW2tleV0pIHtcbiAgICAgICAgICAgICAgICBncm91cFtrZXldID0gW3N1YmplY3RdXG4gICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBba2V5XS5wdXNoKHN1YmplY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIFtncm91cCwga2V5c11cbiAgICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGVvcm0gbGliL3R5cGVvcm0vcGVyc2lzdGVuY2UvU3ViamVjdEV4ZWN1dG9yLnRzIl19