taon-typeorm 18.0.24 → 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 (1721) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/client/README.md +24 -24
  4. package/index.js.map +1 -1
  5. package/lib/build-info._auto-generated_.js.map +1 -1
  6. package/lib/index._auto-generated_.js.map +1 -1
  7. package/lib/index.js.map +1 -1
  8. package/lib/typeorm/cache/DbQueryResultCache.js.map +1 -1
  9. package/lib/typeorm/cache/QueryResultCache.js.map +1 -1
  10. package/lib/typeorm/cache/QueryResultCacheFactory.js.map +1 -1
  11. package/lib/typeorm/cache/QueryResultCacheOptions.js.map +1 -1
  12. package/lib/typeorm/cache/RedisQueryResultCache.js.map +1 -1
  13. package/lib/typeorm/cli-ts-node-commonjs.js.map +1 -1
  14. package/lib/typeorm/cli-ts-node-esm.js.map +1 -1
  15. package/lib/typeorm/cli.js.map +1 -1
  16. package/lib/typeorm/commands/CacheClearCommand.js.map +1 -1
  17. package/lib/typeorm/commands/CommandUtils.js.map +1 -1
  18. package/lib/typeorm/commands/EntityCreateCommand.js.map +1 -1
  19. package/lib/typeorm/commands/InitCommand.js.map +1 -1
  20. package/lib/typeorm/commands/MigrationCreateCommand.js.map +1 -1
  21. package/lib/typeorm/commands/MigrationGenerateCommand.js.map +1 -1
  22. package/lib/typeorm/commands/MigrationRevertCommand.js.map +1 -1
  23. package/lib/typeorm/commands/MigrationRunCommand.js.map +1 -1
  24. package/lib/typeorm/commands/MigrationShowCommand.js.map +1 -1
  25. package/lib/typeorm/commands/QueryCommand.js.map +1 -1
  26. package/lib/typeorm/commands/SchemaDropCommand.js.map +1 -1
  27. package/lib/typeorm/commands/SchemaLogCommand.js.map +1 -1
  28. package/lib/typeorm/commands/SchemaSyncCommand.js.map +1 -1
  29. package/lib/typeorm/commands/SubscriberCreateCommand.js.map +1 -1
  30. package/lib/typeorm/commands/VersionCommand.js.map +1 -1
  31. package/lib/typeorm/common/DeepPartial.js.map +1 -1
  32. package/lib/typeorm/common/EntityTarget.js.map +1 -1
  33. package/lib/typeorm/common/MixedList.js.map +1 -1
  34. package/lib/typeorm/common/NonNever.js.map +1 -1
  35. package/lib/typeorm/common/ObjectLiteral.js.map +1 -1
  36. package/lib/typeorm/common/ObjectType.js.map +1 -1
  37. package/lib/typeorm/common/RelationType.js.map +1 -1
  38. package/lib/typeorm/connection/BaseConnectionOptions.js.map +1 -1
  39. package/lib/typeorm/connection/Connection.js.map +1 -1
  40. package/lib/typeorm/connection/ConnectionManager.js.map +1 -1
  41. package/lib/typeorm/connection/ConnectionMetadataBuilder.js.map +1 -1
  42. package/lib/typeorm/connection/ConnectionOptions.js.map +1 -1
  43. package/lib/typeorm/connection/ConnectionOptionsReader.js.map +1 -1
  44. package/lib/typeorm/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  45. package/lib/typeorm/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  46. package/lib/typeorm/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  47. package/lib/typeorm/constants.js.map +1 -1
  48. package/lib/typeorm/container.js.map +1 -1
  49. package/lib/typeorm/data-source/BaseDataSourceOptions.js.map +1 -1
  50. package/lib/typeorm/data-source/DataSource.js.map +1 -1
  51. package/lib/typeorm/data-source/DataSourceOptions.js.map +1 -1
  52. package/lib/typeorm/data-source/index.js.map +1 -1
  53. package/lib/typeorm/decorator/Check.js.map +1 -1
  54. package/lib/typeorm/decorator/EntityRepository.js.map +1 -1
  55. package/lib/typeorm/decorator/Exclusion.js.map +1 -1
  56. package/lib/typeorm/decorator/Generated.js.map +1 -1
  57. package/lib/typeorm/decorator/Index.js.map +1 -1
  58. package/lib/typeorm/decorator/Unique.js.map +1 -1
  59. package/lib/typeorm/decorator/columns/Column.js.map +1 -1
  60. package/lib/typeorm/decorator/columns/CreateDateColumn.js.map +1 -1
  61. package/lib/typeorm/decorator/columns/DeleteDateColumn.js.map +1 -1
  62. package/lib/typeorm/decorator/columns/ObjectIdColumn.js.map +1 -1
  63. package/lib/typeorm/decorator/columns/PrimaryColumn.js.map +1 -1
  64. package/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  65. package/lib/typeorm/decorator/columns/UpdateDateColumn.js.map +1 -1
  66. package/lib/typeorm/decorator/columns/VersionColumn.js.map +1 -1
  67. package/lib/typeorm/decorator/columns/ViewColumn.js.map +1 -1
  68. package/lib/typeorm/decorator/columns/VirtualColumn.js.map +1 -1
  69. package/lib/typeorm/decorator/entity/ChildEntity.js.map +1 -1
  70. package/lib/typeorm/decorator/entity/Entity.js.map +1 -1
  71. package/lib/typeorm/decorator/entity/TableInheritance.js.map +1 -1
  72. package/lib/typeorm/decorator/entity-view/ViewEntity.js.map +1 -1
  73. package/lib/typeorm/decorator/listeners/AfterInsert.js.map +1 -1
  74. package/lib/typeorm/decorator/listeners/AfterLoad.js.map +1 -1
  75. package/lib/typeorm/decorator/listeners/AfterRecover.js.map +1 -1
  76. package/lib/typeorm/decorator/listeners/AfterRemove.js.map +1 -1
  77. package/lib/typeorm/decorator/listeners/AfterSoftRemove.js.map +1 -1
  78. package/lib/typeorm/decorator/listeners/AfterUpdate.js.map +1 -1
  79. package/lib/typeorm/decorator/listeners/BeforeInsert.js.map +1 -1
  80. package/lib/typeorm/decorator/listeners/BeforeRecover.js.map +1 -1
  81. package/lib/typeorm/decorator/listeners/BeforeRemove.js.map +1 -1
  82. package/lib/typeorm/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  83. package/lib/typeorm/decorator/listeners/BeforeUpdate.js.map +1 -1
  84. package/lib/typeorm/decorator/listeners/EventSubscriber.js.map +1 -1
  85. package/lib/typeorm/decorator/options/ColumnCommonOptions.js.map +1 -1
  86. package/lib/typeorm/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  87. package/lib/typeorm/decorator/options/ColumnEnumOptions.js.map +1 -1
  88. package/lib/typeorm/decorator/options/ColumnHstoreOptions.js.map +1 -1
  89. package/lib/typeorm/decorator/options/ColumnNumericOptions.js.map +1 -1
  90. package/lib/typeorm/decorator/options/ColumnOptions.js.map +1 -1
  91. package/lib/typeorm/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  92. package/lib/typeorm/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  93. package/lib/typeorm/decorator/options/EntityOptions.js.map +1 -1
  94. package/lib/typeorm/decorator/options/IndexOptions.js.map +1 -1
  95. package/lib/typeorm/decorator/options/JoinColumnOptions.js.map +1 -1
  96. package/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  97. package/lib/typeorm/decorator/options/JoinTableOptions.js.map +1 -1
  98. package/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  99. package/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  100. package/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  101. package/lib/typeorm/decorator/options/RelationOptions.js.map +1 -1
  102. package/lib/typeorm/decorator/options/SpatialColumnOptions.js.map +1 -1
  103. package/lib/typeorm/decorator/options/TransactionOptions.js.map +1 -1
  104. package/lib/typeorm/decorator/options/UniqueOptions.js.map +1 -1
  105. package/lib/typeorm/decorator/options/ValueTransformer.js.map +1 -1
  106. package/lib/typeorm/decorator/options/ViewColumnOptions.js.map +1 -1
  107. package/lib/typeorm/decorator/options/ViewEntityOptions.js.map +1 -1
  108. package/lib/typeorm/decorator/options/VirtualColumnOptions.js.map +1 -1
  109. package/lib/typeorm/decorator/relations/JoinColumn.js.map +1 -1
  110. package/lib/typeorm/decorator/relations/JoinTable.js.map +1 -1
  111. package/lib/typeorm/decorator/relations/ManyToMany.js.map +1 -1
  112. package/lib/typeorm/decorator/relations/ManyToOne.js.map +1 -1
  113. package/lib/typeorm/decorator/relations/OneToMany.js.map +1 -1
  114. package/lib/typeorm/decorator/relations/OneToOne.js.map +1 -1
  115. package/lib/typeorm/decorator/relations/RelationCount.js.map +1 -1
  116. package/lib/typeorm/decorator/relations/RelationId.js.map +1 -1
  117. package/lib/typeorm/decorator/tree/Tree.js.map +1 -1
  118. package/lib/typeorm/decorator/tree/TreeChildren.js.map +1 -1
  119. package/lib/typeorm/decorator/tree/TreeLevelColumn.js.map +1 -1
  120. package/lib/typeorm/decorator/tree/TreeParent.js.map +1 -1
  121. package/lib/typeorm/driver/Driver.js.map +1 -1
  122. package/lib/typeorm/driver/DriverFactory.js.map +1 -1
  123. package/lib/typeorm/driver/DriverUtils.js.map +1 -1
  124. package/lib/typeorm/driver/Query.js.map +1 -1
  125. package/lib/typeorm/driver/SqlInMemory.js.map +1 -1
  126. package/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  127. package/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  128. package/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  129. package/lib/typeorm/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  130. package/lib/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  131. package/lib/typeorm/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  132. package/lib/typeorm/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  133. package/lib/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  134. package/lib/typeorm/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  135. package/lib/typeorm/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  136. package/lib/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  137. package/lib/typeorm/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  138. package/lib/typeorm/driver/capacitor/CapacitorDriver.js.map +1 -1
  139. package/lib/typeorm/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  140. package/lib/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  141. package/lib/typeorm/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  142. package/lib/typeorm/driver/cockroachdb/CockroachDriver.js.map +1 -1
  143. package/lib/typeorm/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  144. package/lib/typeorm/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  145. package/lib/typeorm/driver/cordova/CordovaDriver.js.map +1 -1
  146. package/lib/typeorm/driver/cordova/CordovaQueryRunner.js.map +1 -1
  147. package/lib/typeorm/driver/expo/ExpoConnectionOptions.js.map +1 -1
  148. package/lib/typeorm/driver/expo/ExpoDriver.js.map +1 -1
  149. package/lib/typeorm/driver/expo/ExpoQueryRunner.js.map +1 -1
  150. package/lib/typeorm/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  151. package/lib/typeorm/driver/mongodb/MongoDriver.js.map +1 -1
  152. package/lib/typeorm/driver/mongodb/MongoQueryRunner.js.map +1 -1
  153. package/lib/typeorm/driver/mongodb/typings.js.map +1 -1
  154. package/lib/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  155. package/lib/typeorm/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  156. package/lib/typeorm/driver/mysql/MysqlDriver.js.map +1 -1
  157. package/lib/typeorm/driver/mysql/MysqlQueryRunner.js.map +1 -1
  158. package/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  159. package/lib/typeorm/driver/nativescript/NativescriptDriver.js.map +1 -1
  160. package/lib/typeorm/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  161. package/lib/typeorm/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  162. package/lib/typeorm/driver/oracle/OracleConnectionOptions.js.map +1 -1
  163. package/lib/typeorm/driver/oracle/OracleDriver.js.map +1 -1
  164. package/lib/typeorm/driver/oracle/OracleQueryRunner.js.map +1 -1
  165. package/lib/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  166. package/lib/typeorm/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  167. package/lib/typeorm/driver/postgres/PostgresDriver.js.map +1 -1
  168. package/lib/typeorm/driver/postgres/PostgresQueryRunner.js.map +1 -1
  169. package/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  170. package/lib/typeorm/driver/react-native/ReactNativeDriver.js.map +1 -1
  171. package/lib/typeorm/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  172. package/lib/typeorm/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  173. package/lib/typeorm/driver/sap/SapConnectionOptions.js.map +1 -1
  174. package/lib/typeorm/driver/sap/SapDriver.js.map +1 -1
  175. package/lib/typeorm/driver/sap/SapQueryRunner.js.map +1 -1
  176. package/lib/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  177. package/lib/typeorm/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  178. package/lib/typeorm/driver/spanner/SpannerDriver.js.map +1 -1
  179. package/lib/typeorm/driver/spanner/SpannerQueryRunner.js.map +1 -1
  180. package/lib/typeorm/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  181. package/lib/typeorm/driver/sqlite/SqliteDriver.js.map +1 -1
  182. package/lib/typeorm/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  183. package/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  184. package/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  185. package/lib/typeorm/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  186. package/lib/typeorm/driver/sqljs/SqljsDriver.js.map +1 -1
  187. package/lib/typeorm/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  188. package/lib/typeorm/driver/sqlserver/MssqlParameter.js.map +1 -1
  189. package/lib/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  190. package/lib/typeorm/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  191. package/lib/typeorm/driver/sqlserver/SqlServerDriver.js.map +1 -1
  192. package/lib/typeorm/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  193. package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  194. package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  195. package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  196. package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  197. package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  198. package/lib/typeorm/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  199. package/lib/typeorm/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  200. package/lib/typeorm/driver/types/ColumnTypes.js.map +1 -1
  201. package/lib/typeorm/driver/types/CteCapabilities.js.map +1 -1
  202. package/lib/typeorm/driver/types/DataTypeDefaults.js.map +1 -1
  203. package/lib/typeorm/driver/types/DatabaseType.js.map +1 -1
  204. package/lib/typeorm/driver/types/IsolationLevel.js.map +1 -1
  205. package/lib/typeorm/driver/types/MappedColumnTypes.js.map +1 -1
  206. package/lib/typeorm/driver/types/MetadataTableType.js.map +1 -1
  207. package/lib/typeorm/driver/types/ReplicationMode.js.map +1 -1
  208. package/lib/typeorm/driver/types/UpsertType.js.map +1 -1
  209. package/lib/typeorm/entity-manager/EntityManager.js.map +1 -1
  210. package/lib/typeorm/entity-manager/EntityManagerFactory.js.map +1 -1
  211. package/lib/typeorm/entity-manager/MongoEntityManager.js.map +1 -1
  212. package/lib/typeorm/entity-manager/SqljsEntityManager.js.map +1 -1
  213. package/lib/typeorm/entity-schema/EntitySchema.js.map +1 -1
  214. package/lib/typeorm/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  215. package/lib/typeorm/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  216. package/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  217. package/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  218. package/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  219. package/lib/typeorm/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  220. package/lib/typeorm/entity-schema/EntitySchemaOptions.js.map +1 -1
  221. package/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  222. package/lib/typeorm/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  223. package/lib/typeorm/entity-schema/EntitySchemaTransformer.js.map +1 -1
  224. package/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  225. package/lib/typeorm/error/AlreadyHasActiveConnectionError.js.map +1 -1
  226. package/lib/typeorm/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  227. package/lib/typeorm/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  228. package/lib/typeorm/error/CannotCreateEntityIdMapError.js.map +1 -1
  229. package/lib/typeorm/error/CannotDetermineEntityError.js.map +1 -1
  230. package/lib/typeorm/error/CannotExecuteNotConnectedError.js.map +1 -1
  231. package/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  232. package/lib/typeorm/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  233. package/lib/typeorm/error/CircularRelationsError.js.map +1 -1
  234. package/lib/typeorm/error/ColumnTypeUndefinedError.js.map +1 -1
  235. package/lib/typeorm/error/ConnectionIsNotSetError.js.map +1 -1
  236. package/lib/typeorm/error/ConnectionNotFoundError.js.map +1 -1
  237. package/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  238. package/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  239. package/lib/typeorm/error/CustomRepositoryNotFoundError.js.map +1 -1
  240. package/lib/typeorm/error/DataTypeNotSupportedError.js.map +1 -1
  241. package/lib/typeorm/error/DriverOptionNotSetError.js.map +1 -1
  242. package/lib/typeorm/error/DriverPackageNotInstalledError.js.map +1 -1
  243. package/lib/typeorm/error/EntityMetadataNotFoundError.js.map +1 -1
  244. package/lib/typeorm/error/EntityNotFoundError.js.map +1 -1
  245. package/lib/typeorm/error/EntityPropertyNotFoundError.js.map +1 -1
  246. package/lib/typeorm/error/FindRelationsNotFoundError.js.map +1 -1
  247. package/lib/typeorm/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  248. package/lib/typeorm/error/InitializedRelationError.js.map +1 -1
  249. package/lib/typeorm/error/InsertValuesMissingError.js.map +1 -1
  250. package/lib/typeorm/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  251. package/lib/typeorm/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  252. package/lib/typeorm/error/MetadataAlreadyExistsError.js.map +1 -1
  253. package/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  254. package/lib/typeorm/error/MissingDeleteDateColumnError.js.map +1 -1
  255. package/lib/typeorm/error/MissingDriverError.js.map +1 -1
  256. package/lib/typeorm/error/MissingJoinColumnError.js.map +1 -1
  257. package/lib/typeorm/error/MissingJoinTableError.js.map +1 -1
  258. package/lib/typeorm/error/MissingPrimaryColumnError.js.map +1 -1
  259. package/lib/typeorm/error/MustBeEntityError.js.map +1 -1
  260. package/lib/typeorm/error/NamingStrategyNotFoundError.js.map +1 -1
  261. package/lib/typeorm/error/NestedSetMultipleRootError.js.map +1 -1
  262. package/lib/typeorm/error/NoConnectionForRepositoryError.js.map +1 -1
  263. package/lib/typeorm/error/NoConnectionOptionError.js.map +1 -1
  264. package/lib/typeorm/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  265. package/lib/typeorm/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  266. package/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  267. package/lib/typeorm/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  268. package/lib/typeorm/error/OptimisticLockVersionMismatchError.js.map +1 -1
  269. package/lib/typeorm/error/PersistedEntityNotFoundError.js.map +1 -1
  270. package/lib/typeorm/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  271. package/lib/typeorm/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  272. package/lib/typeorm/error/QueryFailedError.js.map +1 -1
  273. package/lib/typeorm/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  274. package/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  275. package/lib/typeorm/error/RepositoryNotTreeError.js.map +1 -1
  276. package/lib/typeorm/error/ReturningStatementNotSupportedError.js.map +1 -1
  277. package/lib/typeorm/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  278. package/lib/typeorm/error/SubjectWithoutIdentifierError.js.map +1 -1
  279. package/lib/typeorm/error/TransactionAlreadyStartedError.js.map +1 -1
  280. package/lib/typeorm/error/TransactionNotStartedError.js.map +1 -1
  281. package/lib/typeorm/error/TreeRepositoryNotSupportedError.js.map +1 -1
  282. package/lib/typeorm/error/TypeORMError.js.map +1 -1
  283. package/lib/typeorm/error/UpdateValuesMissingError.js.map +1 -1
  284. package/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  285. package/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  286. package/lib/typeorm/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  287. package/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  288. package/lib/typeorm/error/index.js.map +1 -1
  289. package/lib/typeorm/find-options/EqualOperator.js.map +1 -1
  290. package/lib/typeorm/find-options/FindManyOptions.js.map +1 -1
  291. package/lib/typeorm/find-options/FindOneOptions.js.map +1 -1
  292. package/lib/typeorm/find-options/FindOperator.js.map +1 -1
  293. package/lib/typeorm/find-options/FindOperatorType.js.map +1 -1
  294. package/lib/typeorm/find-options/FindOptionsOrder.js.map +1 -1
  295. package/lib/typeorm/find-options/FindOptionsRelations.js.map +1 -1
  296. package/lib/typeorm/find-options/FindOptionsSelect.js.map +1 -1
  297. package/lib/typeorm/find-options/FindOptionsUtils.js.map +1 -1
  298. package/lib/typeorm/find-options/FindOptionsWhere.js.map +1 -1
  299. package/lib/typeorm/find-options/FindTreeOptions.js.map +1 -1
  300. package/lib/typeorm/find-options/JoinOptions.js.map +1 -1
  301. package/lib/typeorm/find-options/OrderByCondition.js.map +1 -1
  302. package/lib/typeorm/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  303. package/lib/typeorm/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  304. package/lib/typeorm/find-options/operator/And.js.map +1 -1
  305. package/lib/typeorm/find-options/operator/Any.js.map +1 -1
  306. package/lib/typeorm/find-options/operator/ArrayContainedBy.js.map +1 -1
  307. package/lib/typeorm/find-options/operator/ArrayContains.js.map +1 -1
  308. package/lib/typeorm/find-options/operator/ArrayOverlap.js.map +1 -1
  309. package/lib/typeorm/find-options/operator/Between.js.map +1 -1
  310. package/lib/typeorm/find-options/operator/Equal.js.map +1 -1
  311. package/lib/typeorm/find-options/operator/ILike.js.map +1 -1
  312. package/lib/typeorm/find-options/operator/In.js.map +1 -1
  313. package/lib/typeorm/find-options/operator/IsNull.js.map +1 -1
  314. package/lib/typeorm/find-options/operator/LessThan.js.map +1 -1
  315. package/lib/typeorm/find-options/operator/LessThanOrEqual.js.map +1 -1
  316. package/lib/typeorm/find-options/operator/Like.js.map +1 -1
  317. package/lib/typeorm/find-options/operator/MoreThan.js.map +1 -1
  318. package/lib/typeorm/find-options/operator/MoreThanOrEqual.js.map +1 -1
  319. package/lib/typeorm/find-options/operator/Not.js.map +1 -1
  320. package/lib/typeorm/find-options/operator/Raw.js.map +1 -1
  321. package/lib/typeorm/globals.js.map +1 -1
  322. package/lib/typeorm/index.js.map +1 -1
  323. package/lib/typeorm/logger/AdvancedConsoleLogger.js.map +1 -1
  324. package/lib/typeorm/logger/DebugLogger.js.map +1 -1
  325. package/lib/typeorm/logger/FileLogger.js.map +1 -1
  326. package/lib/typeorm/logger/Logger.js.map +1 -1
  327. package/lib/typeorm/logger/LoggerFactory.js.map +1 -1
  328. package/lib/typeorm/logger/LoggerOptions.js.map +1 -1
  329. package/lib/typeorm/logger/SimpleConsoleLogger.js.map +1 -1
  330. package/lib/typeorm/metadata/CheckMetadata.js.map +1 -1
  331. package/lib/typeorm/metadata/ColumnMetadata.js.map +1 -1
  332. package/lib/typeorm/metadata/EmbeddedMetadata.js.map +1 -1
  333. package/lib/typeorm/metadata/EntityListenerMetadata.js.map +1 -1
  334. package/lib/typeorm/metadata/EntityMetadata.js.map +1 -1
  335. package/lib/typeorm/metadata/ExclusionMetadata.js.map +1 -1
  336. package/lib/typeorm/metadata/ForeignKeyMetadata.js.map +1 -1
  337. package/lib/typeorm/metadata/IndexMetadata.js.map +1 -1
  338. package/lib/typeorm/metadata/RelationCountMetadata.js.map +1 -1
  339. package/lib/typeorm/metadata/RelationIdMetadata.js.map +1 -1
  340. package/lib/typeorm/metadata/RelationMetadata.js.map +1 -1
  341. package/lib/typeorm/metadata/UniqueMetadata.js.map +1 -1
  342. package/lib/typeorm/metadata/types/ClosureTreeOptions.js.map +1 -1
  343. package/lib/typeorm/metadata/types/DeferrableType.js.map +1 -1
  344. package/lib/typeorm/metadata/types/EventListenerTypes.js.map +1 -1
  345. package/lib/typeorm/metadata/types/OnDeleteType.js.map +1 -1
  346. package/lib/typeorm/metadata/types/OnUpdateType.js.map +1 -1
  347. package/lib/typeorm/metadata/types/PropertyTypeInFunction.js.map +1 -1
  348. package/lib/typeorm/metadata/types/RelationTypeInFunction.js.map +1 -1
  349. package/lib/typeorm/metadata/types/RelationTypes.js.map +1 -1
  350. package/lib/typeorm/metadata/types/TableTypes.js.map +1 -1
  351. package/lib/typeorm/metadata/types/TreeTypes.js.map +1 -1
  352. package/lib/typeorm/metadata-args/CheckMetadataArgs.js.map +1 -1
  353. package/lib/typeorm/metadata-args/ColumnMetadataArgs.js.map +1 -1
  354. package/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  355. package/lib/typeorm/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  356. package/lib/typeorm/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  357. package/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  358. package/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  359. package/lib/typeorm/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  360. package/lib/typeorm/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  361. package/lib/typeorm/metadata-args/IndexMetadataArgs.js.map +1 -1
  362. package/lib/typeorm/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  363. package/lib/typeorm/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  364. package/lib/typeorm/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  365. package/lib/typeorm/metadata-args/MetadataArgsStorage.js.map +1 -1
  366. package/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  367. package/lib/typeorm/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  368. package/lib/typeorm/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  369. package/lib/typeorm/metadata-args/RelationMetadataArgs.js.map +1 -1
  370. package/lib/typeorm/metadata-args/TableMetadataArgs.js.map +1 -1
  371. package/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  372. package/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  373. package/lib/typeorm/metadata-args/TreeMetadataArgs.js.map +1 -1
  374. package/lib/typeorm/metadata-args/UniqueMetadataArgs.js.map +1 -1
  375. package/lib/typeorm/metadata-args/types/ColumnMode.js.map +1 -1
  376. package/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  377. package/lib/typeorm/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  378. package/lib/typeorm/metadata-builder/EntityMetadataValidator.js.map +1 -1
  379. package/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  380. package/lib/typeorm/metadata-builder/MetadataUtils.js.map +1 -1
  381. package/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  382. package/lib/typeorm/migration/Migration.js.map +1 -1
  383. package/lib/typeorm/migration/MigrationExecutor.js.map +1 -1
  384. package/lib/typeorm/migration/MigrationInterface.js.map +1 -1
  385. package/lib/typeorm/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  386. package/lib/typeorm/naming-strategy/NamingStrategyInterface.js.map +1 -1
  387. package/lib/typeorm/persistence/EntityPersistExecutor.js.map +1 -1
  388. package/lib/typeorm/persistence/Subject.js.map +1 -1
  389. package/lib/typeorm/persistence/SubjectChangeMap.js.map +1 -1
  390. package/lib/typeorm/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  391. package/lib/typeorm/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  392. package/lib/typeorm/persistence/SubjectExecutor.js.map +1 -1
  393. package/lib/typeorm/persistence/SubjectTopoligicalSorter.js.map +1 -1
  394. package/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  395. package/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  396. package/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  397. package/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  398. package/lib/typeorm/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  399. package/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  400. package/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  401. package/lib/typeorm/platform/PlatformTools.js.map +1 -1
  402. package/lib/typeorm/query-builder/Alias.js.map +1 -1
  403. package/lib/typeorm/query-builder/Brackets.js.map +1 -1
  404. package/lib/typeorm/query-builder/DeleteQueryBuilder.js.map +1 -1
  405. package/lib/typeorm/query-builder/InsertOrUpdateOptions.js.map +1 -1
  406. package/lib/typeorm/query-builder/InsertQueryBuilder.js.map +1 -1
  407. package/lib/typeorm/query-builder/JoinAttribute.js.map +1 -1
  408. package/lib/typeorm/query-builder/JoinOptions.js.map +1 -1
  409. package/lib/typeorm/query-builder/NotBrackets.js.map +1 -1
  410. package/lib/typeorm/query-builder/QueryBuilder.js.map +1 -1
  411. package/lib/typeorm/query-builder/QueryBuilderCte.js.map +1 -1
  412. package/lib/typeorm/query-builder/QueryBuilderUtils.js.map +1 -1
  413. package/lib/typeorm/query-builder/QueryExpressionMap.js.map +1 -1
  414. package/lib/typeorm/query-builder/QueryPartialEntity.js.map +1 -1
  415. package/lib/typeorm/query-builder/RelationIdLoader.js.map +1 -1
  416. package/lib/typeorm/query-builder/RelationLoader.js.map +1 -1
  417. package/lib/typeorm/query-builder/RelationQueryBuilder.js.map +1 -1
  418. package/lib/typeorm/query-builder/RelationRemover.js.map +1 -1
  419. package/lib/typeorm/query-builder/RelationUpdater.js.map +1 -1
  420. package/lib/typeorm/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  421. package/lib/typeorm/query-builder/SelectQuery.js.map +1 -1
  422. package/lib/typeorm/query-builder/SelectQueryBuilder.js.map +1 -1
  423. package/lib/typeorm/query-builder/SelectQueryBuilderOption.js.map +1 -1
  424. package/lib/typeorm/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  425. package/lib/typeorm/query-builder/UpdateQueryBuilder.js.map +1 -1
  426. package/lib/typeorm/query-builder/WhereClause.js.map +1 -1
  427. package/lib/typeorm/query-builder/WhereExpressionBuilder.js.map +1 -1
  428. package/lib/typeorm/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  429. package/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  430. package/lib/typeorm/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  431. package/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  432. package/lib/typeorm/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  433. package/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  434. package/lib/typeorm/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  435. package/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  436. package/lib/typeorm/query-builder/result/DeleteResult.js.map +1 -1
  437. package/lib/typeorm/query-builder/result/InsertResult.js.map +1 -1
  438. package/lib/typeorm/query-builder/result/UpdateResult.js.map +1 -1
  439. package/lib/typeorm/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  440. package/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  441. package/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  442. package/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  443. package/lib/typeorm/query-runner/BaseQueryRunner.js.map +1 -1
  444. package/lib/typeorm/query-runner/QueryLock.js.map +1 -1
  445. package/lib/typeorm/query-runner/QueryResult.js.map +1 -1
  446. package/lib/typeorm/query-runner/QueryRunner.js.map +1 -1
  447. package/lib/typeorm/repository/AbstractRepository.js.map +1 -1
  448. package/lib/typeorm/repository/BaseEntity.js.map +1 -1
  449. package/lib/typeorm/repository/EntityId.js.map +1 -1
  450. package/lib/typeorm/repository/FindTreesOptions.js.map +1 -1
  451. package/lib/typeorm/repository/MongoRepository.js.map +1 -1
  452. package/lib/typeorm/repository/RemoveOptions.js.map +1 -1
  453. package/lib/typeorm/repository/Repository.js.map +1 -1
  454. package/lib/typeorm/repository/SaveOptions.js.map +1 -1
  455. package/lib/typeorm/repository/TreeRepository.js.map +1 -1
  456. package/lib/typeorm/repository/UpsertOptions.js.map +1 -1
  457. package/lib/typeorm/schema-builder/MongoSchemaBuilder.js.map +1 -1
  458. package/lib/typeorm/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  459. package/lib/typeorm/schema-builder/SchemaBuilder.js.map +1 -1
  460. package/lib/typeorm/schema-builder/options/TableCheckOptions.js.map +1 -1
  461. package/lib/typeorm/schema-builder/options/TableColumnOptions.js.map +1 -1
  462. package/lib/typeorm/schema-builder/options/TableExclusionOptions.js.map +1 -1
  463. package/lib/typeorm/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  464. package/lib/typeorm/schema-builder/options/TableIndexOptions.js.map +1 -1
  465. package/lib/typeorm/schema-builder/options/TableOptions.js.map +1 -1
  466. package/lib/typeorm/schema-builder/options/TableUniqueOptions.js.map +1 -1
  467. package/lib/typeorm/schema-builder/options/ViewOptions.js.map +1 -1
  468. package/lib/typeorm/schema-builder/table/Table.js.map +1 -1
  469. package/lib/typeorm/schema-builder/table/TableCheck.js.map +1 -1
  470. package/lib/typeorm/schema-builder/table/TableColumn.js.map +1 -1
  471. package/lib/typeorm/schema-builder/table/TableExclusion.js.map +1 -1
  472. package/lib/typeorm/schema-builder/table/TableForeignKey.js.map +1 -1
  473. package/lib/typeorm/schema-builder/table/TableIndex.js.map +1 -1
  474. package/lib/typeorm/schema-builder/table/TableUnique.js.map +1 -1
  475. package/lib/typeorm/schema-builder/util/TableUtils.js.map +1 -1
  476. package/lib/typeorm/schema-builder/util/ViewUtils.js.map +1 -1
  477. package/lib/typeorm/schema-builder/view/View.js.map +1 -1
  478. package/lib/typeorm/subscriber/Broadcaster.js.map +1 -1
  479. package/lib/typeorm/subscriber/BroadcasterResult.js.map +1 -1
  480. package/lib/typeorm/subscriber/EntitySubscriberInterface.js.map +1 -1
  481. package/lib/typeorm/subscriber/event/InsertEvent.js.map +1 -1
  482. package/lib/typeorm/subscriber/event/LoadEvent.js.map +1 -1
  483. package/lib/typeorm/subscriber/event/RecoverEvent.js.map +1 -1
  484. package/lib/typeorm/subscriber/event/RemoveEvent.js.map +1 -1
  485. package/lib/typeorm/subscriber/event/SoftRemoveEvent.js.map +1 -1
  486. package/lib/typeorm/subscriber/event/TransactionCommitEvent.js.map +1 -1
  487. package/lib/typeorm/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  488. package/lib/typeorm/subscriber/event/TransactionStartEvent.js.map +1 -1
  489. package/lib/typeorm/subscriber/event/UpdateEvent.js.map +1 -1
  490. package/lib/typeorm/util/ApplyValueTransformers.js.map +1 -1
  491. package/lib/typeorm/util/DateUtils.js.map +1 -1
  492. package/lib/typeorm/util/DepGraph.js.map +1 -1
  493. package/lib/typeorm/util/DirectoryExportedClassesLoader.js.map +1 -1
  494. package/lib/typeorm/util/ImportUtils.js.map +1 -1
  495. package/lib/typeorm/util/InstanceChecker.js.map +1 -1
  496. package/lib/typeorm/util/ObjectUtils.js.map +1 -1
  497. package/lib/typeorm/util/OrmUtils.js.map +1 -1
  498. package/lib/typeorm/util/PathUtils.js.map +1 -1
  499. package/lib/typeorm/util/RandomGenerator.js.map +1 -1
  500. package/lib/typeorm/util/StringUtils.js.map +1 -1
  501. package/lib/typeorm/util/TreeRepositoryUtils.js.map +1 -1
  502. package/lib/typeorm/util/VersionUtils.js.map +1 -1
  503. package/lib/typeorm/util/escapeRegExp.js.map +1 -1
  504. package/migrations/index.js.map +1 -1
  505. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  506. package/package.json +1 -1
  507. package/tmp-environment.json +3 -3
  508. package/websql/README.md +24 -24
  509. package/browser/esm2022/lib/index.mjs +0 -4
  510. package/browser/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
  511. package/browser/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
  512. package/browser/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
  513. package/browser/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
  514. package/browser/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
  515. package/browser/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
  516. package/browser/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
  517. package/browser/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
  518. package/browser/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
  519. package/browser/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
  520. package/browser/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
  521. package/browser/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
  522. package/browser/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
  523. package/browser/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
  524. package/browser/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
  525. package/browser/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
  526. package/browser/esm2022/lib/typeorm/constants.mjs +0 -4
  527. package/browser/esm2022/lib/typeorm/container.mjs +0 -57
  528. package/browser/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
  529. package/browser/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
  530. package/browser/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
  531. package/browser/esm2022/lib/typeorm/data-source/index.mjs +0 -4
  532. package/browser/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
  533. package/browser/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
  534. package/browser/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
  535. package/browser/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
  536. package/browser/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
  537. package/browser/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
  538. package/browser/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
  539. package/browser/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
  540. package/browser/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
  541. package/browser/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
  542. package/browser/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
  543. package/browser/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
  544. package/browser/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
  545. package/browser/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
  546. package/browser/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
  547. package/browser/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
  548. package/browser/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
  549. package/browser/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
  550. package/browser/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
  551. package/browser/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
  552. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
  553. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
  554. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
  555. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
  556. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
  557. package/browser/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
  558. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
  559. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
  560. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
  561. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
  562. package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
  563. package/browser/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
  564. package/browser/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
  565. package/browser/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
  566. package/browser/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
  567. package/browser/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
  568. package/browser/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
  569. package/browser/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
  570. package/browser/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
  571. package/browser/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
  572. package/browser/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
  573. package/browser/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
  574. package/browser/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
  575. package/browser/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
  576. package/browser/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
  577. package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
  578. package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
  579. package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
  580. package/browser/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
  581. package/browser/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
  582. package/browser/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
  583. package/browser/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
  584. package/browser/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
  585. package/browser/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
  586. package/browser/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
  587. package/browser/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
  588. package/browser/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
  589. package/browser/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
  590. package/browser/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
  591. package/browser/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
  592. package/browser/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
  593. package/browser/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
  594. package/browser/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
  595. package/browser/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
  596. package/browser/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
  597. package/browser/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
  598. package/browser/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
  599. package/browser/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
  600. package/browser/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
  601. package/browser/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
  602. package/browser/esm2022/lib/typeorm/driver/Query.mjs +0 -13
  603. package/browser/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
  604. package/browser/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
  605. package/browser/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
  606. package/browser/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
  607. package/browser/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
  608. package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
  609. package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
  610. package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
  611. package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
  612. package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
  613. package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
  614. package/browser/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
  615. package/browser/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
  616. package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
  617. package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
  618. package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
  619. package/browser/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
  620. package/browser/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
  621. package/browser/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
  622. package/browser/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
  623. package/browser/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
  624. package/browser/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
  625. package/browser/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
  626. package/browser/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
  627. package/browser/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
  628. package/browser/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
  629. package/browser/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
  630. package/browser/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
  631. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
  632. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
  633. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
  634. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
  635. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
  636. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
  637. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
  638. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
  639. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
  640. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
  641. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
  642. package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
  643. package/browser/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
  644. package/browser/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
  645. package/browser/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
  646. package/browser/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
  647. package/browser/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
  648. package/browser/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
  649. package/browser/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
  650. package/browser/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
  651. package/browser/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
  652. package/browser/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
  653. package/browser/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
  654. package/browser/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
  655. package/browser/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
  656. package/browser/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
  657. package/browser/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
  658. package/browser/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
  659. package/browser/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
  660. package/browser/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
  661. package/browser/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
  662. package/browser/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
  663. package/browser/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
  664. package/browser/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
  665. package/browser/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
  666. package/browser/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
  667. package/browser/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
  668. package/browser/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
  669. package/browser/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
  670. package/browser/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
  671. package/browser/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
  672. package/browser/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
  673. package/browser/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
  674. package/browser/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
  675. package/browser/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
  676. package/browser/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
  677. package/browser/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
  678. package/browser/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
  679. package/browser/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
  680. package/browser/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
  681. package/browser/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
  682. package/browser/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
  683. package/browser/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
  684. package/browser/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
  685. package/browser/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
  686. package/browser/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
  687. package/browser/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
  688. package/browser/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
  689. package/browser/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
  690. package/browser/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
  691. package/browser/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
  692. package/browser/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
  693. package/browser/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
  694. package/browser/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
  695. package/browser/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
  696. package/browser/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
  697. package/browser/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
  698. package/browser/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
  699. package/browser/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
  700. package/browser/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
  701. package/browser/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
  702. package/browser/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
  703. package/browser/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
  704. package/browser/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
  705. package/browser/esm2022/lib/typeorm/error/index.mjs +0 -63
  706. package/browser/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
  707. package/browser/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
  708. package/browser/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
  709. package/browser/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
  710. package/browser/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
  711. package/browser/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
  712. package/browser/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
  713. package/browser/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
  714. package/browser/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
  715. package/browser/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
  716. package/browser/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
  717. package/browser/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
  718. package/browser/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
  719. package/browser/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
  720. package/browser/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
  721. package/browser/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
  722. package/browser/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
  723. package/browser/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
  724. package/browser/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
  725. package/browser/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
  726. package/browser/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
  727. package/browser/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
  728. package/browser/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
  729. package/browser/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
  730. package/browser/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
  731. package/browser/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
  732. package/browser/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
  733. package/browser/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
  734. package/browser/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
  735. package/browser/esm2022/lib/typeorm/globals.mjs +0 -165
  736. package/browser/esm2022/lib/typeorm/index.mjs +0 -157
  737. package/browser/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
  738. package/browser/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
  739. package/browser/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
  740. package/browser/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
  741. package/browser/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
  742. package/browser/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
  743. package/browser/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
  744. package/browser/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
  745. package/browser/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
  746. package/browser/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
  747. package/browser/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
  748. package/browser/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
  749. package/browser/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
  750. package/browser/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
  751. package/browser/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
  752. package/browser/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
  753. package/browser/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
  754. package/browser/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
  755. package/browser/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
  756. package/browser/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
  757. package/browser/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
  758. package/browser/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
  759. package/browser/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
  760. package/browser/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
  761. package/browser/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
  762. package/browser/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
  763. package/browser/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
  764. package/browser/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
  765. package/browser/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
  766. package/browser/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
  767. package/browser/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
  768. package/browser/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
  769. package/browser/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
  770. package/browser/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
  771. package/browser/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
  772. package/browser/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
  773. package/browser/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
  774. package/browser/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
  775. package/browser/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
  776. package/browser/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
  777. package/browser/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
  778. package/browser/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
  779. package/browser/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
  780. package/browser/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
  781. package/browser/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
  782. package/browser/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
  783. package/browser/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
  784. package/browser/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
  785. package/browser/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
  786. package/browser/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
  787. package/browser/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
  788. package/browser/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
  789. package/browser/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
  790. package/browser/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
  791. package/browser/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
  792. package/browser/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
  793. package/browser/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
  794. package/browser/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
  795. package/browser/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
  796. package/browser/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
  797. package/browser/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
  798. package/browser/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
  799. package/browser/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
  800. package/browser/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
  801. package/browser/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
  802. package/browser/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
  803. package/browser/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
  804. package/browser/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
  805. package/browser/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
  806. package/browser/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
  807. package/browser/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
  808. package/browser/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
  809. package/browser/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
  810. package/browser/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
  811. package/browser/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
  812. package/browser/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
  813. package/browser/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
  814. package/browser/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -346
  815. package/browser/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
  816. package/browser/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
  817. package/browser/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
  818. package/browser/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
  819. package/browser/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
  820. package/browser/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
  821. package/browser/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
  822. package/browser/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
  823. package/browser/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
  824. package/browser/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
  825. package/browser/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
  826. package/browser/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
  827. package/browser/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
  828. package/browser/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
  829. package/browser/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
  830. package/browser/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
  831. package/browser/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
  832. package/browser/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
  833. package/browser/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
  834. package/browser/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
  835. package/browser/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
  836. package/browser/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
  837. package/browser/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
  838. package/browser/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
  839. package/browser/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
  840. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
  841. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
  842. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
  843. package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
  844. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
  845. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
  846. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
  847. package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
  848. package/browser/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
  849. package/browser/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
  850. package/browser/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
  851. package/browser/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
  852. package/browser/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
  853. package/browser/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
  854. package/browser/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
  855. package/browser/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
  856. package/browser/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
  857. package/browser/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
  858. package/browser/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
  859. package/browser/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
  860. package/browser/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
  861. package/browser/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
  862. package/browser/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
  863. package/browser/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
  864. package/browser/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
  865. package/browser/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
  866. package/browser/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
  867. package/browser/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
  868. package/browser/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
  869. package/browser/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
  870. package/browser/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
  871. package/browser/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
  872. package/browser/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
  873. package/browser/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
  874. package/browser/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
  875. package/browser/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
  876. package/browser/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
  877. package/browser/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
  878. package/browser/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
  879. package/browser/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
  880. package/browser/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
  881. package/browser/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
  882. package/browser/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
  883. package/browser/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
  884. package/browser/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
  885. package/browser/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
  886. package/browser/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
  887. package/browser/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
  888. package/browser/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
  889. package/browser/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
  890. package/browser/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
  891. package/browser/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
  892. package/browser/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
  893. package/browser/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
  894. package/browser/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
  895. package/browser/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
  896. package/browser/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
  897. package/browser/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
  898. package/browser/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
  899. package/browser/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
  900. package/browser/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
  901. package/browser/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
  902. package/browser/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
  903. package/browser/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
  904. package/browser/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
  905. package/browser/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
  906. package/browser/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
  907. package/browser/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
  908. package/browser/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
  909. package/browser/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
  910. package/browser/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
  911. package/browser/esm2022/public-api.mjs +0 -2
  912. package/browser/esm2022/taon-typeorm.mjs +0 -5
  913. package/client/esm2022/lib/index.mjs +0 -4
  914. package/client/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
  915. package/client/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
  916. package/client/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
  917. package/client/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
  918. package/client/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
  919. package/client/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
  920. package/client/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
  921. package/client/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
  922. package/client/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
  923. package/client/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
  924. package/client/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
  925. package/client/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
  926. package/client/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
  927. package/client/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
  928. package/client/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
  929. package/client/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
  930. package/client/esm2022/lib/typeorm/constants.mjs +0 -4
  931. package/client/esm2022/lib/typeorm/container.mjs +0 -57
  932. package/client/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
  933. package/client/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
  934. package/client/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
  935. package/client/esm2022/lib/typeorm/data-source/index.mjs +0 -4
  936. package/client/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
  937. package/client/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
  938. package/client/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
  939. package/client/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
  940. package/client/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
  941. package/client/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
  942. package/client/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
  943. package/client/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
  944. package/client/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
  945. package/client/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
  946. package/client/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
  947. package/client/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
  948. package/client/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
  949. package/client/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
  950. package/client/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
  951. package/client/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
  952. package/client/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
  953. package/client/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
  954. package/client/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
  955. package/client/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
  956. package/client/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
  957. package/client/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
  958. package/client/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
  959. package/client/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
  960. package/client/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
  961. package/client/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
  962. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
  963. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
  964. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
  965. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
  966. package/client/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
  967. package/client/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
  968. package/client/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
  969. package/client/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
  970. package/client/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
  971. package/client/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
  972. package/client/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
  973. package/client/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
  974. package/client/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
  975. package/client/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
  976. package/client/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
  977. package/client/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
  978. package/client/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
  979. package/client/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
  980. package/client/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
  981. package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
  982. package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
  983. package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
  984. package/client/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
  985. package/client/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
  986. package/client/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
  987. package/client/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
  988. package/client/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
  989. package/client/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
  990. package/client/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
  991. package/client/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
  992. package/client/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
  993. package/client/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
  994. package/client/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
  995. package/client/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
  996. package/client/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
  997. package/client/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
  998. package/client/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
  999. package/client/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
  1000. package/client/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
  1001. package/client/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
  1002. package/client/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
  1003. package/client/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
  1004. package/client/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
  1005. package/client/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
  1006. package/client/esm2022/lib/typeorm/driver/Query.mjs +0 -13
  1007. package/client/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
  1008. package/client/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
  1009. package/client/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
  1010. package/client/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
  1011. package/client/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
  1012. package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
  1013. package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
  1014. package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
  1015. package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
  1016. package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
  1017. package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
  1018. package/client/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
  1019. package/client/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
  1020. package/client/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
  1021. package/client/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
  1022. package/client/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
  1023. package/client/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
  1024. package/client/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
  1025. package/client/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
  1026. package/client/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
  1027. package/client/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
  1028. package/client/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
  1029. package/client/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
  1030. package/client/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
  1031. package/client/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
  1032. package/client/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
  1033. package/client/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
  1034. package/client/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
  1035. package/client/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
  1036. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
  1037. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
  1038. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
  1039. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
  1040. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
  1041. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
  1042. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
  1043. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
  1044. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
  1045. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
  1046. package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
  1047. package/client/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
  1048. package/client/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
  1049. package/client/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
  1050. package/client/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
  1051. package/client/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
  1052. package/client/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
  1053. package/client/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
  1054. package/client/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
  1055. package/client/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
  1056. package/client/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
  1057. package/client/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
  1058. package/client/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
  1059. package/client/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
  1060. package/client/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
  1061. package/client/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
  1062. package/client/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
  1063. package/client/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
  1064. package/client/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
  1065. package/client/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
  1066. package/client/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
  1067. package/client/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
  1068. package/client/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
  1069. package/client/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
  1070. package/client/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
  1071. package/client/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
  1072. package/client/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
  1073. package/client/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
  1074. package/client/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
  1075. package/client/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
  1076. package/client/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
  1077. package/client/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
  1078. package/client/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
  1079. package/client/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
  1080. package/client/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
  1081. package/client/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
  1082. package/client/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
  1083. package/client/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
  1084. package/client/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
  1085. package/client/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
  1086. package/client/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
  1087. package/client/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
  1088. package/client/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
  1089. package/client/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
  1090. package/client/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
  1091. package/client/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
  1092. package/client/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
  1093. package/client/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
  1094. package/client/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
  1095. package/client/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
  1096. package/client/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
  1097. package/client/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
  1098. package/client/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
  1099. package/client/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
  1100. package/client/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
  1101. package/client/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
  1102. package/client/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
  1103. package/client/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
  1104. package/client/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
  1105. package/client/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
  1106. package/client/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
  1107. package/client/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
  1108. package/client/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
  1109. package/client/esm2022/lib/typeorm/error/index.mjs +0 -63
  1110. package/client/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
  1111. package/client/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
  1112. package/client/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
  1113. package/client/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
  1114. package/client/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
  1115. package/client/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
  1116. package/client/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
  1117. package/client/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
  1118. package/client/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
  1119. package/client/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
  1120. package/client/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
  1121. package/client/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
  1122. package/client/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
  1123. package/client/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
  1124. package/client/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
  1125. package/client/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
  1126. package/client/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
  1127. package/client/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
  1128. package/client/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
  1129. package/client/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
  1130. package/client/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
  1131. package/client/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
  1132. package/client/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
  1133. package/client/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
  1134. package/client/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
  1135. package/client/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
  1136. package/client/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
  1137. package/client/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
  1138. package/client/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
  1139. package/client/esm2022/lib/typeorm/globals.mjs +0 -165
  1140. package/client/esm2022/lib/typeorm/index.mjs +0 -157
  1141. package/client/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
  1142. package/client/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
  1143. package/client/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
  1144. package/client/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
  1145. package/client/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
  1146. package/client/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
  1147. package/client/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
  1148. package/client/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
  1149. package/client/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
  1150. package/client/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
  1151. package/client/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
  1152. package/client/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
  1153. package/client/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
  1154. package/client/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
  1155. package/client/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
  1156. package/client/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
  1157. package/client/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
  1158. package/client/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
  1159. package/client/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
  1160. package/client/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
  1161. package/client/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
  1162. package/client/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
  1163. package/client/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
  1164. package/client/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
  1165. package/client/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
  1166. package/client/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
  1167. package/client/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
  1168. package/client/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
  1169. package/client/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
  1170. package/client/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
  1171. package/client/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
  1172. package/client/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
  1173. package/client/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
  1174. package/client/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
  1175. package/client/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
  1176. package/client/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
  1177. package/client/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
  1178. package/client/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
  1179. package/client/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
  1180. package/client/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
  1181. package/client/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
  1182. package/client/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
  1183. package/client/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
  1184. package/client/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
  1185. package/client/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
  1186. package/client/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
  1187. package/client/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
  1188. package/client/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
  1189. package/client/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
  1190. package/client/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
  1191. package/client/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
  1192. package/client/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
  1193. package/client/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
  1194. package/client/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
  1195. package/client/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
  1196. package/client/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
  1197. package/client/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
  1198. package/client/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
  1199. package/client/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
  1200. package/client/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
  1201. package/client/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
  1202. package/client/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
  1203. package/client/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
  1204. package/client/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
  1205. package/client/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
  1206. package/client/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
  1207. package/client/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
  1208. package/client/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
  1209. package/client/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
  1210. package/client/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
  1211. package/client/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
  1212. package/client/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
  1213. package/client/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
  1214. package/client/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
  1215. package/client/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
  1216. package/client/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
  1217. package/client/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
  1218. package/client/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -346
  1219. package/client/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
  1220. package/client/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
  1221. package/client/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
  1222. package/client/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
  1223. package/client/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
  1224. package/client/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
  1225. package/client/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
  1226. package/client/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
  1227. package/client/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
  1228. package/client/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
  1229. package/client/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
  1230. package/client/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
  1231. package/client/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
  1232. package/client/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
  1233. package/client/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
  1234. package/client/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
  1235. package/client/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
  1236. package/client/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
  1237. package/client/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
  1238. package/client/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
  1239. package/client/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
  1240. package/client/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
  1241. package/client/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
  1242. package/client/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
  1243. package/client/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
  1244. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
  1245. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
  1246. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
  1247. package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
  1248. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
  1249. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
  1250. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
  1251. package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
  1252. package/client/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
  1253. package/client/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
  1254. package/client/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
  1255. package/client/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
  1256. package/client/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
  1257. package/client/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
  1258. package/client/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
  1259. package/client/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
  1260. package/client/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
  1261. package/client/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
  1262. package/client/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
  1263. package/client/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
  1264. package/client/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
  1265. package/client/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
  1266. package/client/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
  1267. package/client/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
  1268. package/client/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
  1269. package/client/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
  1270. package/client/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
  1271. package/client/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
  1272. package/client/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
  1273. package/client/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
  1274. package/client/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
  1275. package/client/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
  1276. package/client/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
  1277. package/client/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
  1278. package/client/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
  1279. package/client/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
  1280. package/client/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
  1281. package/client/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
  1282. package/client/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
  1283. package/client/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
  1284. package/client/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
  1285. package/client/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
  1286. package/client/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
  1287. package/client/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
  1288. package/client/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
  1289. package/client/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
  1290. package/client/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
  1291. package/client/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
  1292. package/client/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
  1293. package/client/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
  1294. package/client/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
  1295. package/client/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
  1296. package/client/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
  1297. package/client/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
  1298. package/client/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
  1299. package/client/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
  1300. package/client/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
  1301. package/client/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
  1302. package/client/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
  1303. package/client/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
  1304. package/client/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
  1305. package/client/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
  1306. package/client/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
  1307. package/client/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
  1308. package/client/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
  1309. package/client/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
  1310. package/client/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
  1311. package/client/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
  1312. package/client/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
  1313. package/client/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
  1314. package/client/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
  1315. package/client/esm2022/public-api.mjs +0 -2
  1316. package/client/esm2022/taon-typeorm.mjs +0 -5
  1317. package/taon.jsonc +0 -10
  1318. package/websql/esm2022/lib/index.mjs +0 -4
  1319. package/websql/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
  1320. package/websql/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
  1321. package/websql/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
  1322. package/websql/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
  1323. package/websql/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
  1324. package/websql/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
  1325. package/websql/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
  1326. package/websql/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
  1327. package/websql/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
  1328. package/websql/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
  1329. package/websql/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
  1330. package/websql/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
  1331. package/websql/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
  1332. package/websql/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
  1333. package/websql/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
  1334. package/websql/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
  1335. package/websql/esm2022/lib/typeorm/constants.mjs +0 -4
  1336. package/websql/esm2022/lib/typeorm/container.mjs +0 -57
  1337. package/websql/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
  1338. package/websql/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
  1339. package/websql/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
  1340. package/websql/esm2022/lib/typeorm/data-source/index.mjs +0 -4
  1341. package/websql/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
  1342. package/websql/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
  1343. package/websql/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
  1344. package/websql/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
  1345. package/websql/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
  1346. package/websql/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
  1347. package/websql/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
  1348. package/websql/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
  1349. package/websql/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
  1350. package/websql/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
  1351. package/websql/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
  1352. package/websql/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
  1353. package/websql/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
  1354. package/websql/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
  1355. package/websql/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
  1356. package/websql/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
  1357. package/websql/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
  1358. package/websql/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
  1359. package/websql/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
  1360. package/websql/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
  1361. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
  1362. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
  1363. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
  1364. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
  1365. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
  1366. package/websql/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
  1367. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
  1368. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
  1369. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
  1370. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
  1371. package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
  1372. package/websql/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
  1373. package/websql/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
  1374. package/websql/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
  1375. package/websql/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
  1376. package/websql/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
  1377. package/websql/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
  1378. package/websql/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
  1379. package/websql/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
  1380. package/websql/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
  1381. package/websql/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
  1382. package/websql/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
  1383. package/websql/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
  1384. package/websql/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
  1385. package/websql/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
  1386. package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
  1387. package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
  1388. package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
  1389. package/websql/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
  1390. package/websql/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
  1391. package/websql/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
  1392. package/websql/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
  1393. package/websql/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
  1394. package/websql/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
  1395. package/websql/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
  1396. package/websql/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
  1397. package/websql/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
  1398. package/websql/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
  1399. package/websql/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
  1400. package/websql/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
  1401. package/websql/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
  1402. package/websql/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
  1403. package/websql/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
  1404. package/websql/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
  1405. package/websql/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
  1406. package/websql/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
  1407. package/websql/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
  1408. package/websql/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
  1409. package/websql/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
  1410. package/websql/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
  1411. package/websql/esm2022/lib/typeorm/driver/Query.mjs +0 -13
  1412. package/websql/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
  1413. package/websql/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
  1414. package/websql/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
  1415. package/websql/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
  1416. package/websql/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
  1417. package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
  1418. package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
  1419. package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
  1420. package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
  1421. package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
  1422. package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
  1423. package/websql/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
  1424. package/websql/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
  1425. package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
  1426. package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
  1427. package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
  1428. package/websql/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
  1429. package/websql/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
  1430. package/websql/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
  1431. package/websql/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
  1432. package/websql/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
  1433. package/websql/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
  1434. package/websql/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
  1435. package/websql/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
  1436. package/websql/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
  1437. package/websql/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
  1438. package/websql/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
  1439. package/websql/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
  1440. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
  1441. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
  1442. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
  1443. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
  1444. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
  1445. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
  1446. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
  1447. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
  1448. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
  1449. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
  1450. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
  1451. package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
  1452. package/websql/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
  1453. package/websql/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
  1454. package/websql/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
  1455. package/websql/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
  1456. package/websql/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
  1457. package/websql/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
  1458. package/websql/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
  1459. package/websql/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
  1460. package/websql/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
  1461. package/websql/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
  1462. package/websql/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
  1463. package/websql/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
  1464. package/websql/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
  1465. package/websql/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
  1466. package/websql/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
  1467. package/websql/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
  1468. package/websql/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
  1469. package/websql/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
  1470. package/websql/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
  1471. package/websql/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
  1472. package/websql/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
  1473. package/websql/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
  1474. package/websql/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
  1475. package/websql/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
  1476. package/websql/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
  1477. package/websql/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
  1478. package/websql/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
  1479. package/websql/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
  1480. package/websql/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
  1481. package/websql/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
  1482. package/websql/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
  1483. package/websql/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
  1484. package/websql/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
  1485. package/websql/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
  1486. package/websql/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
  1487. package/websql/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
  1488. package/websql/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
  1489. package/websql/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
  1490. package/websql/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
  1491. package/websql/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
  1492. package/websql/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
  1493. package/websql/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
  1494. package/websql/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
  1495. package/websql/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
  1496. package/websql/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
  1497. package/websql/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
  1498. package/websql/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
  1499. package/websql/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
  1500. package/websql/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
  1501. package/websql/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
  1502. package/websql/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
  1503. package/websql/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
  1504. package/websql/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
  1505. package/websql/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
  1506. package/websql/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
  1507. package/websql/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
  1508. package/websql/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
  1509. package/websql/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
  1510. package/websql/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
  1511. package/websql/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
  1512. package/websql/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
  1513. package/websql/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
  1514. package/websql/esm2022/lib/typeorm/error/index.mjs +0 -63
  1515. package/websql/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
  1516. package/websql/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
  1517. package/websql/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
  1518. package/websql/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
  1519. package/websql/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
  1520. package/websql/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
  1521. package/websql/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
  1522. package/websql/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
  1523. package/websql/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
  1524. package/websql/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
  1525. package/websql/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
  1526. package/websql/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
  1527. package/websql/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
  1528. package/websql/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
  1529. package/websql/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
  1530. package/websql/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
  1531. package/websql/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
  1532. package/websql/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
  1533. package/websql/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
  1534. package/websql/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
  1535. package/websql/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
  1536. package/websql/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
  1537. package/websql/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
  1538. package/websql/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
  1539. package/websql/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
  1540. package/websql/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
  1541. package/websql/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
  1542. package/websql/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
  1543. package/websql/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
  1544. package/websql/esm2022/lib/typeorm/globals.mjs +0 -165
  1545. package/websql/esm2022/lib/typeorm/index.mjs +0 -157
  1546. package/websql/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
  1547. package/websql/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
  1548. package/websql/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
  1549. package/websql/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
  1550. package/websql/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
  1551. package/websql/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
  1552. package/websql/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
  1553. package/websql/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
  1554. package/websql/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
  1555. package/websql/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
  1556. package/websql/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
  1557. package/websql/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
  1558. package/websql/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
  1559. package/websql/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
  1560. package/websql/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
  1561. package/websql/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
  1562. package/websql/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
  1563. package/websql/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
  1564. package/websql/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
  1565. package/websql/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
  1566. package/websql/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
  1567. package/websql/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
  1568. package/websql/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
  1569. package/websql/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
  1570. package/websql/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
  1571. package/websql/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
  1572. package/websql/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
  1573. package/websql/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
  1574. package/websql/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
  1575. package/websql/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
  1576. package/websql/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
  1577. package/websql/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
  1578. package/websql/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
  1579. package/websql/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
  1580. package/websql/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
  1581. package/websql/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
  1582. package/websql/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
  1583. package/websql/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
  1584. package/websql/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
  1585. package/websql/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
  1586. package/websql/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
  1587. package/websql/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
  1588. package/websql/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
  1589. package/websql/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
  1590. package/websql/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
  1591. package/websql/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
  1592. package/websql/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
  1593. package/websql/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
  1594. package/websql/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
  1595. package/websql/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
  1596. package/websql/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
  1597. package/websql/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
  1598. package/websql/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
  1599. package/websql/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
  1600. package/websql/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
  1601. package/websql/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
  1602. package/websql/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
  1603. package/websql/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
  1604. package/websql/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
  1605. package/websql/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
  1606. package/websql/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
  1607. package/websql/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
  1608. package/websql/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
  1609. package/websql/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
  1610. package/websql/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
  1611. package/websql/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
  1612. package/websql/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
  1613. package/websql/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
  1614. package/websql/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
  1615. package/websql/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
  1616. package/websql/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
  1617. package/websql/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
  1618. package/websql/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
  1619. package/websql/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
  1620. package/websql/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
  1621. package/websql/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
  1622. package/websql/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
  1623. package/websql/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -331
  1624. package/websql/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
  1625. package/websql/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
  1626. package/websql/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
  1627. package/websql/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
  1628. package/websql/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
  1629. package/websql/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
  1630. package/websql/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
  1631. package/websql/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
  1632. package/websql/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
  1633. package/websql/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
  1634. package/websql/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
  1635. package/websql/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
  1636. package/websql/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
  1637. package/websql/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
  1638. package/websql/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
  1639. package/websql/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
  1640. package/websql/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
  1641. package/websql/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
  1642. package/websql/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
  1643. package/websql/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
  1644. package/websql/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
  1645. package/websql/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
  1646. package/websql/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
  1647. package/websql/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
  1648. package/websql/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
  1649. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
  1650. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
  1651. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
  1652. package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
  1653. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
  1654. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
  1655. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
  1656. package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
  1657. package/websql/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
  1658. package/websql/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
  1659. package/websql/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
  1660. package/websql/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
  1661. package/websql/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
  1662. package/websql/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
  1663. package/websql/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
  1664. package/websql/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
  1665. package/websql/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
  1666. package/websql/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
  1667. package/websql/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
  1668. package/websql/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
  1669. package/websql/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
  1670. package/websql/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
  1671. package/websql/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
  1672. package/websql/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
  1673. package/websql/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
  1674. package/websql/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
  1675. package/websql/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
  1676. package/websql/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
  1677. package/websql/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
  1678. package/websql/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
  1679. package/websql/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
  1680. package/websql/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
  1681. package/websql/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
  1682. package/websql/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
  1683. package/websql/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
  1684. package/websql/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
  1685. package/websql/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
  1686. package/websql/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
  1687. package/websql/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
  1688. package/websql/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
  1689. package/websql/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
  1690. package/websql/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
  1691. package/websql/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
  1692. package/websql/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
  1693. package/websql/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
  1694. package/websql/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
  1695. package/websql/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
  1696. package/websql/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
  1697. package/websql/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
  1698. package/websql/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
  1699. package/websql/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
  1700. package/websql/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
  1701. package/websql/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
  1702. package/websql/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
  1703. package/websql/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
  1704. package/websql/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
  1705. package/websql/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
  1706. package/websql/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
  1707. package/websql/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
  1708. package/websql/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
  1709. package/websql/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
  1710. package/websql/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
  1711. package/websql/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
  1712. package/websql/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
  1713. package/websql/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
  1714. package/websql/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
  1715. package/websql/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
  1716. package/websql/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
  1717. package/websql/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
  1718. package/websql/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
  1719. package/websql/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
  1720. package/websql/esm2022/public-api.mjs +0 -2
  1721. package/websql/esm2022/taon-typeorm.mjs +0 -5
@@ -1,678 +0,0 @@
1
- import { EntityMetadata } from "../metadata/EntityMetadata";
2
- import { ColumnMetadata } from "../metadata/ColumnMetadata";
3
- import { IndexMetadata } from "../metadata/IndexMetadata";
4
- import { RelationMetadata } from "../metadata/RelationMetadata";
5
- import { EmbeddedMetadata } from "../metadata/EmbeddedMetadata";
6
- import { RelationIdMetadata } from "../metadata/RelationIdMetadata";
7
- import { RelationCountMetadata } from "../metadata/RelationCountMetadata";
8
- import { EventListenerTypes } from "../metadata/types/EventListenerTypes";
9
- import { MetadataUtils } from "./MetadataUtils";
10
- import { JunctionEntityMetadataBuilder } from "./JunctionEntityMetadataBuilder";
11
- import { ClosureJunctionEntityMetadataBuilder } from "./ClosureJunctionEntityMetadataBuilder";
12
- import { RelationJoinColumnBuilder } from "./RelationJoinColumnBuilder";
13
- import { EntityListenerMetadata } from "../metadata/EntityListenerMetadata";
14
- import { UniqueMetadata } from "../metadata/UniqueMetadata";
15
- import { CheckMetadata } from "../metadata/CheckMetadata";
16
- import { ExclusionMetadata } from "../metadata/ExclusionMetadata";
17
- import { TypeORMError } from "../error";
18
- import { DriverUtils } from "../driver/DriverUtils";
19
- /**
20
- * Builds EntityMetadata objects and all its sub-metadatas.
21
- */
22
- export class EntityMetadataBuilder {
23
- constructor(connection, metadataArgsStorage) {
24
- this.connection = connection;
25
- this.metadataArgsStorage = metadataArgsStorage;
26
- this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder(connection);
27
- this.closureJunctionEntityMetadataBuilder =
28
- new ClosureJunctionEntityMetadataBuilder(connection);
29
- this.relationJoinColumnBuilder = new RelationJoinColumnBuilder(connection);
30
- }
31
- /**
32
- * Builds a complete entity metadatas for the given entity classes.
33
- */
34
- build(entityClasses) {
35
- const allTables = entityClasses
36
- ? this.metadataArgsStorage.filterTables(entityClasses)
37
- : this.metadataArgsStorage.tables;
38
- const realTables = allTables.filter((table) => table.type === "regular" ||
39
- table.type === "closure" ||
40
- table.type === "entity-child" ||
41
- table.type === "view");
42
- const entityMetadatas = realTables.map((tableArgs) => this.createEntityMetadata(tableArgs));
43
- entityMetadatas.forEach((entityMetadata) => this.computeParentEntityMetadata(entityMetadatas, entityMetadata));
44
- entityMetadatas.forEach((metadata) => {
45
- metadata.childEntityMetadatas = entityMetadatas.filter((childMetadata) => {
46
- return (typeof metadata.target === "function" &&
47
- typeof childMetadata.target === "function" &&
48
- MetadataUtils.isInherited(childMetadata.target, metadata.target));
49
- });
50
- });
51
- entityMetadatas
52
- .filter((entityMetadata) => entityMetadata.tableType !== "entity-child")
53
- .forEach((entityMetadata) => entityMetadata.build());
54
- entityMetadatas
55
- .filter((entityMetadata) => entityMetadata.tableType === "entity-child")
56
- .forEach((entityMetadata) => entityMetadata.build());
57
- entityMetadatas
58
- .filter((entityMetadata) => entityMetadata.tableType !== "entity-child")
59
- .forEach((entityMetadata) => this.computeEntityMetadataStep1(entityMetadatas, entityMetadata));
60
- entityMetadatas
61
- .filter((entityMetadata) => entityMetadata.tableType === "entity-child")
62
- .forEach((entityMetadata) => this.computeEntityMetadataStep1(entityMetadatas, entityMetadata));
63
- entityMetadatas.forEach((entityMetadata) => this.computeEntityMetadataStep2(entityMetadata));
64
- entityMetadatas.forEach((entityMetadata) => this.computeInverseProperties(entityMetadata, entityMetadatas));
65
- entityMetadatas
66
- .filter((entityMetadata) => entityMetadata.tableType !== "entity-child")
67
- .forEach((entityMetadata) => {
68
- entityMetadata.relations
69
- .filter((relation) => relation.isOneToOne || relation.isManyToOne)
70
- .forEach((relation) => {
71
- const joinColumns = this.metadataArgsStorage.filterJoinColumns(relation.target, relation.propertyName);
72
- const { foreignKey, columns, uniqueConstraint } = this.relationJoinColumnBuilder.build(joinColumns, relation); // create a foreign key based on its metadata args
73
- if (foreignKey) {
74
- relation.registerForeignKeys(foreignKey); // push it to the relation and thus register there a join column
75
- entityMetadata.foreignKeys.push(foreignKey);
76
- }
77
- if (columns) {
78
- relation.registerJoinColumns(columns);
79
- }
80
- if (uniqueConstraint) {
81
- if (DriverUtils.isMySQLFamily(this.connection.driver) ||
82
- this.connection.driver.options.type ===
83
- "aurora-mysql" ||
84
- this.connection.driver.options.type ===
85
- "mssql" ||
86
- this.connection.driver.options.type === "sap" ||
87
- this.connection.driver.options.type ===
88
- "spanner") {
89
- const index = new IndexMetadata({
90
- entityMetadata: uniqueConstraint.entityMetadata,
91
- columns: uniqueConstraint.columns,
92
- args: {
93
- target: uniqueConstraint.target,
94
- name: uniqueConstraint.name,
95
- unique: true,
96
- synchronize: true,
97
- },
98
- });
99
- if (this.connection.driver.options.type ===
100
- "mssql") {
101
- index.where = index.columns
102
- .map((column) => {
103
- return `${this.connection.driver.escape(column.databaseName)} IS NOT NULL`;
104
- })
105
- .join(" AND ");
106
- }
107
- if (this.connection.driver.options.type ===
108
- "spanner") {
109
- index.isNullFiltered = true;
110
- }
111
- if (relation.embeddedMetadata) {
112
- relation.embeddedMetadata.indices.push(index);
113
- }
114
- else {
115
- relation.entityMetadata.ownIndices.push(index);
116
- }
117
- this.computeEntityMetadataStep2(entityMetadata);
118
- }
119
- else {
120
- if (relation.embeddedMetadata) {
121
- relation.embeddedMetadata.uniques.push(uniqueConstraint);
122
- }
123
- else {
124
- relation.entityMetadata.ownUniques.push(uniqueConstraint);
125
- }
126
- this.computeEntityMetadataStep2(entityMetadata);
127
- }
128
- }
129
- if (foreignKey &&
130
- this.connection.driver.options.type ===
131
- "cockroachdb") {
132
- const index = new IndexMetadata({
133
- entityMetadata: relation.entityMetadata,
134
- columns: foreignKey.columns,
135
- args: {
136
- target: relation.entityMetadata.target,
137
- synchronize: true,
138
- },
139
- });
140
- if (relation.embeddedMetadata) {
141
- relation.embeddedMetadata.indices.push(index);
142
- }
143
- else {
144
- relation.entityMetadata.ownIndices.push(index);
145
- }
146
- this.computeEntityMetadataStep2(entityMetadata);
147
- }
148
- });
149
- entityMetadata.relations
150
- .filter((relation) => relation.isManyToMany)
151
- .forEach((relation) => {
152
- const joinTable = this.metadataArgsStorage.findJoinTable(relation.target, relation.propertyName);
153
- if (!joinTable)
154
- return; // no join table set - no need to do anything (it means this is many-to-many inverse side)
155
- const junctionEntityMetadata = this.junctionEntityMetadataBuilder.build(relation, joinTable);
156
- relation.registerForeignKeys(...junctionEntityMetadata.foreignKeys);
157
- relation.registerJoinColumns(junctionEntityMetadata.ownIndices[0].columns, junctionEntityMetadata.ownIndices[1].columns);
158
- relation.registerJunctionEntityMetadata(junctionEntityMetadata);
159
- this.computeEntityMetadataStep2(junctionEntityMetadata);
160
- this.computeInverseProperties(junctionEntityMetadata, entityMetadatas);
161
- entityMetadatas.push(junctionEntityMetadata);
162
- });
163
- });
164
- entityMetadatas.forEach((entityMetadata) => {
165
- entityMetadata.relationsWithJoinColumns =
166
- entityMetadata.relations.filter((relation) => relation.isWithJoinColumn);
167
- entityMetadata.hasNonNullableRelations =
168
- entityMetadata.relationsWithJoinColumns.some((relation) => !relation.isNullable || relation.isPrimary);
169
- });
170
- entityMetadatas
171
- .filter((metadata) => metadata.treeType === "closure-table")
172
- .forEach((entityMetadata) => {
173
- const closureJunctionEntityMetadata = this.closureJunctionEntityMetadataBuilder.build(entityMetadata);
174
- entityMetadata.closureJunctionTable =
175
- closureJunctionEntityMetadata;
176
- this.computeEntityMetadataStep2(closureJunctionEntityMetadata);
177
- this.computeInverseProperties(closureJunctionEntityMetadata, entityMetadatas);
178
- entityMetadatas.push(closureJunctionEntityMetadata);
179
- });
180
- entityMetadatas
181
- .filter((metadata) => metadata.inheritancePattern === "STI" &&
182
- metadata.discriminatorColumn)
183
- .forEach((entityMetadata) => this.createKeysForTableInheritance(entityMetadata));
184
- entityMetadatas.forEach((entityMetadata) => {
185
- entityMetadata.indices.forEach((index) => index.build(this.connection.namingStrategy));
186
- });
187
- entityMetadatas.forEach((entityMetadata) => {
188
- entityMetadata.uniques.forEach((unique) => unique.build(this.connection.namingStrategy));
189
- });
190
- entityMetadatas.forEach((entityMetadata) => {
191
- entityMetadata.checks.forEach((check) => check.build(this.connection.namingStrategy));
192
- });
193
- entityMetadatas.forEach((entityMetadata) => {
194
- entityMetadata.exclusions.forEach((exclusion) => exclusion.build(this.connection.namingStrategy));
195
- });
196
- entityMetadatas
197
- .filter((metadata) => typeof metadata.target === "function")
198
- .forEach((entityMetadata) => {
199
- entityMetadata.relations
200
- .filter((relation) => relation.isLazy)
201
- .forEach((relation) => {
202
- this.connection.relationLoader.enableLazyLoad(relation, entityMetadata.target.prototype);
203
- });
204
- });
205
- entityMetadatas.forEach((entityMetadata) => {
206
- entityMetadata.columns.forEach((column) => {
207
- const generated = this.metadataArgsStorage.findGenerated(column.target, column.propertyName);
208
- if (generated) {
209
- column.isGenerated = true;
210
- column.generationStrategy = generated.strategy;
211
- if (generated.strategy === "uuid") {
212
- column.type = "uuid";
213
- }
214
- else if (generated.strategy === "rowid") {
215
- column.type = "int";
216
- }
217
- else {
218
- column.type = column.type || Number;
219
- }
220
- column.build(this.connection);
221
- this.computeEntityMetadataStep2(entityMetadata);
222
- }
223
- });
224
- });
225
- return entityMetadatas;
226
- }
227
- /**
228
- * Creates entity metadata from the given table args.
229
- * Creates column, relation, etc. metadatas for everything this entity metadata owns.
230
- */
231
- createEntityMetadata(tableArgs) {
232
- const inheritanceTree = typeof tableArgs.target === "function"
233
- ? MetadataUtils.getInheritanceTree(tableArgs.target)
234
- : [tableArgs.target]; // todo: implement later here inheritance for string-targets
235
- const tableInheritance = this.metadataArgsStorage.findInheritanceType(tableArgs.target);
236
- const tableTree = this.metadataArgsStorage.findTree(tableArgs.target);
237
- let singleTableChildrenTargets;
238
- if ((tableInheritance && tableInheritance.pattern === "STI") ||
239
- tableArgs.type === "entity-child") {
240
- singleTableChildrenTargets = this.metadataArgsStorage
241
- .filterSingleTableChildren(tableArgs.target)
242
- .map((args) => args.target)
243
- .filter((target) => typeof target === "function");
244
- inheritanceTree.push(...singleTableChildrenTargets);
245
- }
246
- return new EntityMetadata({
247
- connection: this.connection,
248
- args: tableArgs,
249
- inheritanceTree: inheritanceTree,
250
- tableTree: tableTree,
251
- inheritancePattern: tableInheritance
252
- ? tableInheritance.pattern
253
- : undefined,
254
- });
255
- }
256
- computeParentEntityMetadata(allEntityMetadatas, entityMetadata) {
257
- if (entityMetadata.tableType === "entity-child") {
258
- entityMetadata.parentEntityMetadata = allEntityMetadatas.find((allEntityMetadata) => {
259
- return (allEntityMetadata.inheritanceTree.indexOf(entityMetadata.target) !== -1 &&
260
- allEntityMetadata.inheritancePattern === "STI");
261
- });
262
- }
263
- }
264
- computeEntityMetadataStep1(allEntityMetadatas, entityMetadata) {
265
- const entityInheritance = this.metadataArgsStorage.findInheritanceType(entityMetadata.target);
266
- const discriminatorValue = this.metadataArgsStorage.findDiscriminatorValue(entityMetadata.target);
267
- if (typeof discriminatorValue !== "undefined") {
268
- entityMetadata.discriminatorValue = discriminatorValue.value;
269
- }
270
- else {
271
- entityMetadata.discriminatorValue = entityMetadata.target.name;
272
- }
273
- entityMetadata.embeddeds = this.createEmbeddedsRecursively(entityMetadata, this.metadataArgsStorage.filterEmbeddeds(entityMetadata.inheritanceTree)).map((embedded) => {
274
- if (entityMetadata.inheritancePattern === "STI") {
275
- embedded.columns = embedded.columns.map((column) => {
276
- column.isNullable = true;
277
- return column;
278
- });
279
- }
280
- return embedded;
281
- });
282
- entityMetadata.ownColumns = this.metadataArgsStorage
283
- .filterColumns(entityMetadata.inheritanceTree)
284
- .map((args) => {
285
- if (entityMetadata.tableType === "entity-child")
286
- return entityMetadata.parentEntityMetadata.ownColumns.find((column) => column.propertyName === args.propertyName);
287
- const column = new ColumnMetadata({
288
- connection: this.connection,
289
- entityMetadata,
290
- args,
291
- });
292
- const columnInSingleTableInheritedChild = allEntityMetadatas.find((otherEntityMetadata) => otherEntityMetadata.tableType === "entity-child" &&
293
- otherEntityMetadata.target === args.target);
294
- if (columnInSingleTableInheritedChild)
295
- column.isNullable = true;
296
- return column;
297
- });
298
- //
299
- if (entityInheritance && entityInheritance.column) {
300
- const discriminatorColumnName = entityInheritance.column && entityInheritance.column.name
301
- ? entityInheritance.column.name
302
- : "type";
303
- let discriminatorColumn = entityMetadata.ownColumns.find((column) => column.propertyName === discriminatorColumnName);
304
- if (!discriminatorColumn) {
305
- discriminatorColumn = new ColumnMetadata({
306
- connection: this.connection,
307
- entityMetadata: entityMetadata,
308
- args: {
309
- target: entityMetadata.target,
310
- mode: "virtual",
311
- propertyName: discriminatorColumnName,
312
- options: entityInheritance.column || {
313
- name: discriminatorColumnName,
314
- type: "varchar",
315
- nullable: false,
316
- },
317
- },
318
- });
319
- discriminatorColumn.isVirtual = true;
320
- discriminatorColumn.isDiscriminator = true;
321
- entityMetadata.ownColumns.push(discriminatorColumn);
322
- }
323
- else {
324
- discriminatorColumn.isDiscriminator = true;
325
- }
326
- }
327
- if (entityMetadata.tableType === "entity-child") {
328
- const discriminatorColumn = entityMetadata.parentEntityMetadata.ownColumns.find((column) => column.isDiscriminator);
329
- if (discriminatorColumn &&
330
- !entityMetadata.ownColumns.find((column) => column === discriminatorColumn)) {
331
- entityMetadata.ownColumns.push(discriminatorColumn);
332
- }
333
- }
334
- const { namingStrategy } = this.connection;
335
- if (entityMetadata.treeType === "materialized-path") {
336
- entityMetadata.ownColumns.push(new ColumnMetadata({
337
- connection: this.connection,
338
- entityMetadata: entityMetadata,
339
- materializedPath: true,
340
- args: {
341
- target: entityMetadata.target,
342
- mode: "virtual",
343
- propertyName: "mpath",
344
- options: /*tree.column || */ {
345
- name: namingStrategy.materializedPathColumnName,
346
- type: String,
347
- nullable: true,
348
- default: "",
349
- },
350
- },
351
- }));
352
- }
353
- else if (entityMetadata.treeType === "nested-set") {
354
- const { left, right } = namingStrategy.nestedSetColumnNames;
355
- entityMetadata.ownColumns.push(new ColumnMetadata({
356
- connection: this.connection,
357
- entityMetadata: entityMetadata,
358
- nestedSetLeft: true,
359
- args: {
360
- target: entityMetadata.target,
361
- mode: "virtual",
362
- propertyName: left,
363
- options: /*tree.column || */ {
364
- name: left,
365
- type: Number,
366
- nullable: false,
367
- default: 1,
368
- },
369
- },
370
- }));
371
- entityMetadata.ownColumns.push(new ColumnMetadata({
372
- connection: this.connection,
373
- entityMetadata: entityMetadata,
374
- nestedSetRight: true,
375
- args: {
376
- target: entityMetadata.target,
377
- mode: "virtual",
378
- propertyName: right,
379
- options: /*tree.column || */ {
380
- name: right,
381
- type: Number,
382
- nullable: false,
383
- default: 2,
384
- },
385
- },
386
- }));
387
- }
388
- entityMetadata.ownRelations = this.metadataArgsStorage
389
- .filterRelations(entityMetadata.inheritanceTree)
390
- .map((args) => {
391
- if (entityMetadata.tableType === "entity-child") {
392
- const parentRelation = entityMetadata.parentEntityMetadata.ownRelations.find((relation) => relation.propertyName === args.propertyName);
393
- const type = typeof args.type === "function"
394
- ? args.type()
395
- : args.type;
396
- if (parentRelation.type !== type) {
397
- const clone = Object.create(parentRelation);
398
- clone.type = type;
399
- return clone;
400
- }
401
- return parentRelation;
402
- }
403
- return new RelationMetadata({ entityMetadata, args });
404
- });
405
- entityMetadata.relationIds = this.metadataArgsStorage
406
- .filterRelationIds(entityMetadata.inheritanceTree)
407
- .map((args) => {
408
- if (entityMetadata.tableType === "entity-child")
409
- return entityMetadata.parentEntityMetadata.relationIds.find((relationId) => relationId.propertyName === args.propertyName);
410
- return new RelationIdMetadata({ entityMetadata, args });
411
- });
412
- entityMetadata.relationCounts = this.metadataArgsStorage
413
- .filterRelationCounts(entityMetadata.inheritanceTree)
414
- .map((args) => {
415
- if (entityMetadata.tableType === "entity-child")
416
- return entityMetadata.parentEntityMetadata.relationCounts.find((relationCount) => relationCount.propertyName === args.propertyName);
417
- return new RelationCountMetadata({ entityMetadata, args });
418
- });
419
- entityMetadata.ownListeners = this.metadataArgsStorage
420
- .filterListeners(entityMetadata.inheritanceTree)
421
- .map((args) => {
422
- return new EntityListenerMetadata({
423
- entityMetadata: entityMetadata,
424
- args: args,
425
- });
426
- });
427
- entityMetadata.checks = this.metadataArgsStorage
428
- .filterChecks(entityMetadata.inheritanceTree)
429
- .map((args) => {
430
- return new CheckMetadata({ entityMetadata, args });
431
- });
432
- if (this.connection.driver.options.type === "postgres") {
433
- entityMetadata.exclusions = this.metadataArgsStorage
434
- .filterExclusions(entityMetadata.inheritanceTree)
435
- .map((args) => {
436
- return new ExclusionMetadata({ entityMetadata, args });
437
- });
438
- }
439
- if (this.connection.driver.options.type === "cockroachdb") {
440
- entityMetadata.ownIndices = this.metadataArgsStorage
441
- .filterIndices(entityMetadata.inheritanceTree)
442
- .filter((args) => !args.unique)
443
- .map((args) => {
444
- return new IndexMetadata({ entityMetadata, args });
445
- });
446
- const uniques = this.metadataArgsStorage
447
- .filterIndices(entityMetadata.inheritanceTree)
448
- .filter((args) => args.unique)
449
- .map((args) => {
450
- return new UniqueMetadata({
451
- entityMetadata: entityMetadata,
452
- args: {
453
- target: args.target,
454
- name: args.name,
455
- columns: args.columns,
456
- },
457
- });
458
- });
459
- entityMetadata.ownUniques.push(...uniques);
460
- }
461
- else {
462
- entityMetadata.ownIndices = this.metadataArgsStorage
463
- .filterIndices(entityMetadata.inheritanceTree)
464
- .map((args) => {
465
- return new IndexMetadata({ entityMetadata, args });
466
- });
467
- }
468
- if (DriverUtils.isMySQLFamily(this.connection.driver) ||
469
- this.connection.driver.options.type === "aurora-mysql" ||
470
- this.connection.driver.options.type === "sap" ||
471
- this.connection.driver.options.type === "spanner") {
472
- const indices = this.metadataArgsStorage
473
- .filterUniques(entityMetadata.inheritanceTree)
474
- .map((args) => {
475
- return new IndexMetadata({
476
- entityMetadata: entityMetadata,
477
- args: {
478
- target: args.target,
479
- name: args.name,
480
- columns: args.columns,
481
- unique: true,
482
- synchronize: true,
483
- },
484
- });
485
- });
486
- entityMetadata.ownIndices.push(...indices);
487
- }
488
- else {
489
- const uniques = this.metadataArgsStorage
490
- .filterUniques(entityMetadata.inheritanceTree)
491
- .map((args) => {
492
- return new UniqueMetadata({ entityMetadata, args });
493
- });
494
- entityMetadata.ownUniques.push(...uniques);
495
- }
496
- }
497
- /**
498
- * Creates from the given embedded metadata args real embedded metadatas with its columns and relations,
499
- * and does the same for all its sub-embeddeds (goes recursively).
500
- */
501
- createEmbeddedsRecursively(entityMetadata, embeddedArgs) {
502
- return embeddedArgs.map((embeddedArgs) => {
503
- const embeddedMetadata = new EmbeddedMetadata({
504
- entityMetadata: entityMetadata,
505
- args: embeddedArgs,
506
- });
507
- const targets = typeof embeddedMetadata.type === "function"
508
- ? MetadataUtils.getInheritanceTree(embeddedMetadata.type)
509
- : [embeddedMetadata.type]; // todo: implement later here inheritance for string-targets
510
- embeddedMetadata.columns = this.metadataArgsStorage
511
- .filterColumns(targets)
512
- .map((args) => {
513
- return new ColumnMetadata({
514
- connection: this.connection,
515
- entityMetadata,
516
- embeddedMetadata,
517
- args,
518
- });
519
- });
520
- embeddedMetadata.relations = this.metadataArgsStorage
521
- .filterRelations(targets)
522
- .map((args) => {
523
- return new RelationMetadata({
524
- entityMetadata,
525
- embeddedMetadata,
526
- args,
527
- });
528
- });
529
- embeddedMetadata.listeners = this.metadataArgsStorage
530
- .filterListeners(targets)
531
- .map((args) => {
532
- return new EntityListenerMetadata({
533
- entityMetadata,
534
- embeddedMetadata,
535
- args,
536
- });
537
- });
538
- embeddedMetadata.indices = this.metadataArgsStorage
539
- .filterIndices(targets)
540
- .map((args) => {
541
- return new IndexMetadata({
542
- entityMetadata,
543
- embeddedMetadata,
544
- args,
545
- });
546
- });
547
- embeddedMetadata.uniques = this.metadataArgsStorage
548
- .filterUniques(targets)
549
- .map((args) => {
550
- return new UniqueMetadata({
551
- entityMetadata,
552
- embeddedMetadata,
553
- args,
554
- });
555
- });
556
- embeddedMetadata.relationIds = this.metadataArgsStorage
557
- .filterRelationIds(targets)
558
- .map((args) => {
559
- return new RelationIdMetadata({ entityMetadata, args });
560
- });
561
- embeddedMetadata.relationCounts = this.metadataArgsStorage
562
- .filterRelationCounts(targets)
563
- .map((args) => {
564
- return new RelationCountMetadata({ entityMetadata, args });
565
- });
566
- embeddedMetadata.embeddeds = this.createEmbeddedsRecursively(entityMetadata, this.metadataArgsStorage.filterEmbeddeds(targets));
567
- embeddedMetadata.embeddeds.forEach((subEmbedded) => (subEmbedded.parentEmbeddedMetadata = embeddedMetadata));
568
- entityMetadata.allEmbeddeds.push(embeddedMetadata);
569
- return embeddedMetadata;
570
- });
571
- }
572
- /**
573
- * Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).
574
- */
575
- computeEntityMetadataStep2(entityMetadata) {
576
- entityMetadata.embeddeds.forEach((embedded) => embedded.build(this.connection));
577
- entityMetadata.embeddeds.forEach((embedded) => {
578
- embedded.columnsFromTree.forEach((column) => column.build(this.connection));
579
- embedded.relationsFromTree.forEach((relation) => relation.build());
580
- });
581
- entityMetadata.ownColumns.forEach((column) => column.build(this.connection));
582
- entityMetadata.ownRelations.forEach((relation) => relation.build());
583
- entityMetadata.relations = entityMetadata.embeddeds.reduce((relations, embedded) => relations.concat(embedded.relationsFromTree), entityMetadata.ownRelations);
584
- entityMetadata.eagerRelations = entityMetadata.relations.filter((relation) => relation.isEager);
585
- entityMetadata.lazyRelations = entityMetadata.relations.filter((relation) => relation.isLazy);
586
- entityMetadata.oneToOneRelations = entityMetadata.relations.filter((relation) => relation.isOneToOne);
587
- entityMetadata.oneToManyRelations = entityMetadata.relations.filter((relation) => relation.isOneToMany);
588
- entityMetadata.manyToOneRelations = entityMetadata.relations.filter((relation) => relation.isManyToOne);
589
- entityMetadata.manyToManyRelations = entityMetadata.relations.filter((relation) => relation.isManyToMany);
590
- entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter((relation) => relation.isOneToOneOwner);
591
- entityMetadata.ownerManyToManyRelations =
592
- entityMetadata.relations.filter((relation) => relation.isManyToManyOwner);
593
- entityMetadata.treeParentRelation = entityMetadata.relations.find((relation) => relation.isTreeParent);
594
- entityMetadata.treeChildrenRelation = entityMetadata.relations.find((relation) => relation.isTreeChildren);
595
- entityMetadata.columns = entityMetadata.embeddeds.reduce((columns, embedded) => columns.concat(embedded.columnsFromTree), entityMetadata.ownColumns);
596
- entityMetadata.listeners = entityMetadata.embeddeds.reduce((listeners, embedded) => listeners.concat(embedded.listenersFromTree), entityMetadata.ownListeners);
597
- entityMetadata.afterLoadListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_LOAD);
598
- entityMetadata.afterInsertListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_INSERT);
599
- entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_UPDATE);
600
- entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_REMOVE);
601
- entityMetadata.afterSoftRemoveListeners =
602
- entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_SOFT_REMOVE);
603
- entityMetadata.afterRecoverListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_RECOVER);
604
- entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_INSERT);
605
- entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_UPDATE);
606
- entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_REMOVE);
607
- entityMetadata.beforeSoftRemoveListeners =
608
- entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_SOFT_REMOVE);
609
- entityMetadata.beforeRecoverListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_RECOVER);
610
- entityMetadata.indices = entityMetadata.embeddeds.reduce((indices, embedded) => indices.concat(embedded.indicesFromTree), entityMetadata.ownIndices);
611
- entityMetadata.uniques = entityMetadata.embeddeds.reduce((uniques, embedded) => uniques.concat(embedded.uniquesFromTree), entityMetadata.ownUniques);
612
- entityMetadata.primaryColumns = entityMetadata.columns.filter((column) => column.isPrimary);
613
- entityMetadata.nonVirtualColumns = entityMetadata.columns.filter((column) => !column.isVirtual);
614
- entityMetadata.ancestorColumns = entityMetadata.columns.filter((column) => column.closureType === "ancestor");
615
- entityMetadata.descendantColumns = entityMetadata.columns.filter((column) => column.closureType === "descendant");
616
- entityMetadata.hasMultiplePrimaryKeys =
617
- entityMetadata.primaryColumns.length > 1;
618
- entityMetadata.generatedColumns = entityMetadata.columns.filter((column) => column.isGenerated || column.isObjectId);
619
- entityMetadata.hasUUIDGeneratedColumns =
620
- entityMetadata.columns.filter((column) => column.isGenerated || column.generationStrategy === "uuid").length > 0;
621
- entityMetadata.createDateColumn = entityMetadata.columns.find((column) => column.isCreateDate);
622
- entityMetadata.updateDateColumn = entityMetadata.columns.find((column) => column.isUpdateDate);
623
- entityMetadata.deleteDateColumn = entityMetadata.columns.find((column) => column.isDeleteDate);
624
- entityMetadata.versionColumn = entityMetadata.columns.find((column) => column.isVersion);
625
- entityMetadata.discriminatorColumn = entityMetadata.columns.find((column) => column.isDiscriminator);
626
- entityMetadata.treeLevelColumn = entityMetadata.columns.find((column) => column.isTreeLevel);
627
- entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find((column) => column.isNestedSetLeft);
628
- entityMetadata.nestedSetRightColumn = entityMetadata.columns.find((column) => column.isNestedSetRight);
629
- entityMetadata.materializedPathColumn = entityMetadata.columns.find((column) => column.isMaterializedPath);
630
- entityMetadata.objectIdColumn = entityMetadata.columns.find((column) => column.isObjectId);
631
- entityMetadata.foreignKeys.forEach((foreignKey) => foreignKey.build(this.connection.namingStrategy));
632
- entityMetadata.propertiesMap = entityMetadata.createPropertiesMap();
633
- entityMetadata.relationIds.forEach((relationId) => relationId.build());
634
- entityMetadata.relationCounts.forEach((relationCount) => relationCount.build());
635
- entityMetadata.embeddeds.forEach((embedded) => {
636
- embedded.relationIdsFromTree.forEach((relationId) => relationId.build());
637
- embedded.relationCountsFromTree.forEach((relationCount) => relationCount.build());
638
- });
639
- }
640
- /**
641
- * Computes entity metadata's relations inverse side properties.
642
- */
643
- computeInverseProperties(entityMetadata, entityMetadatas) {
644
- entityMetadata.relations.forEach((relation) => {
645
- const inverseEntityMetadata = entityMetadatas.find((m) => m.target === relation.type ||
646
- (typeof relation.type === "string" &&
647
- (m.targetName === relation.type ||
648
- m.givenTableName === relation.type)));
649
- if (!inverseEntityMetadata)
650
- throw new TypeORMError("Entity metadata for " +
651
- entityMetadata.name +
652
- "#" +
653
- relation.propertyPath +
654
- " was not found. Check if you specified a correct entity object and if it's connected in the connection options.");
655
- relation.inverseEntityMetadata = inverseEntityMetadata;
656
- relation.inverseSidePropertyPath =
657
- relation.buildInverseSidePropertyPath();
658
- relation.inverseRelation = inverseEntityMetadata.relations.find((foundRelation) => foundRelation.propertyPath ===
659
- relation.inverseSidePropertyPath);
660
- });
661
- }
662
- /**
663
- * Creates indices for the table of single table inheritance.
664
- */
665
- createKeysForTableInheritance(entityMetadata) {
666
- entityMetadata.indices.push(new IndexMetadata({
667
- entityMetadata: entityMetadata,
668
- columns: [entityMetadata.discriminatorColumn],
669
- args: {
670
- target: entityMetadata.target,
671
- unique: false,
672
- },
673
- }));
674
- }
675
- }
676
- ;
677
- ({}); // @--end-of-file-for-module=taon-typeorm lib/typeorm/metadata-builder/EntityMetadataBuilder.ts
678
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW50aXR5TWV0YWRhdGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vbWV0YWRhdGEtYnVpbGRlci9FbnRpdHlNZXRhZGF0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFHL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDekQsT0FB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LEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUE7WUFDRCxJQUFJLENBQUMscUJBQXFCO2dCQUN0QixNQUFNLElBQUksWUFBWSxDQUNsQixzQkFBc0I7b0JBQ2xCLGNBQWMsQ0FBQyxJQUFJO29CQUNuQixHQUFHO29CQUNILFFBQVEsQ0FBQyxZQUFZO29CQUNyQixpSEFBaUgsQ0FDeEgsQ0FBQTtZQUVMLFFBQVEsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtZQUN0RCxRQUFRLENBQUMsdUJBQXVCO2dCQUM1QixRQUFRLENBQUMsNEJBQTRCLEVBQUUsQ0FBQTtZQUczQyxRQUFRLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzNELENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDZCxhQUFhLENBQUMsWUFBWTtnQkFDMUIsUUFBUSxDQUFDLHVCQUF1QixDQUN2QyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDTyw2QkFBNkIsQ0FBQyxjQUE4QjtRQUNsRSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdkIsSUFBSSxhQUFhLENBQUM7WUFDZCxjQUFjLEVBQUUsY0FBYztZQUM5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsbUJBQW9CLENBQUM7WUFDOUMsSUFBSSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTTtnQkFDN0IsTUFBTSxFQUFFLEtBQUs7YUFDaEI7U0FDSixDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0ZBQStGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0VudGl0eU1ldGFkYXRhXCJcbmltcG9ydCB7IENvbHVtbk1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0NvbHVtbk1ldGFkYXRhXCJcbmltcG9ydCB7IEluZGV4TWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvSW5kZXhNZXRhZGF0YVwiXG5pbXBvcnQgeyBSZWxhdGlvbk1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1JlbGF0aW9uTWV0YWRhdGFcIlxuaW1wb3J0IHsgRW1iZWRkZWRNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FbWJlZGRlZE1ldGFkYXRhXCJcbmltcG9ydCB7IE1ldGFkYXRhQXJnc1N0b3JhZ2UgfSBmcm9tIFwiLi4vbWV0YWRhdGEtYXJncy9NZXRhZGF0YUFyZ3NTdG9yYWdlXCJcbmltcG9ydCB7IEVtYmVkZGVkTWV0YWRhdGFBcmdzIH0gZnJvbSBcIi4uL21ldGFkYXRhLWFyZ3MvRW1iZWRkZWRNZXRhZGF0YUFyZ3NcIlxuaW1wb3J0IHsgUmVsYXRpb25JZE1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1JlbGF0aW9uSWRNZXRhZGF0YVwiXG5pbXBvcnQgeyBSZWxhdGlvbkNvdW50TWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvUmVsYXRpb25Db3VudE1ldGFkYXRhXCJcbmltcG9ydCB7IEV2ZW50TGlzdGVuZXJUeXBlcyB9IGZyb20gXCIuLi9tZXRhZGF0YS90eXBlcy9FdmVudExpc3RlbmVyVHlwZXNcIlxuaW1wb3J0IHsgTWV0YWRhdGFVdGlscyB9IGZyb20gXCIuL01ldGFkYXRhVXRpbHNcIlxuaW1wb3J0IHsgVGFibGVNZXRhZGF0YUFyZ3MgfSBmcm9tIFwiLi4vbWV0YWRhdGEtYXJncy9UYWJsZU1ldGFkYXRhQXJnc1wiXG5pbXBvcnQgeyBKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlciB9IGZyb20gXCIuL0p1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyXCJcbmltcG9ydCB7IENsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlciB9IGZyb20gXCIuL0Nsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclwiXG5pbXBvcnQgeyBSZWxhdGlvbkpvaW5Db2x1bW5CdWlsZGVyIH0gZnJvbSBcIi4vUmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlclwiXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uL2RhdGEtc291cmNlL0RhdGFTb3VyY2VcIlxuaW1wb3J0IHsgRW50aXR5TGlzdGVuZXJNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FbnRpdHlMaXN0ZW5lck1ldGFkYXRhXCJcbmltcG9ydCB7IFVuaXF1ZU1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1VuaXF1ZU1ldGFkYXRhXCJcbmltcG9ydCB7IENoZWNrTWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvQ2hlY2tNZXRhZGF0YVwiXG5pbXBvcnQgeyBFeGNsdXNpb25NZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FeGNsdXNpb25NZXRhZGF0YVwiXG5pbXBvcnQgeyBUeXBlT1JNRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JcIlxuaW1wb3J0IHsgRHJpdmVyVXRpbHMgfSBmcm9tIFwiLi4vZHJpdmVyL0RyaXZlclV0aWxzXCJcblxuLyoqXG4gKiBCdWlsZHMgRW50aXR5TWV0YWRhdGEgb2JqZWN0cyBhbmQgYWxsIGl0cyBzdWItbWV0YWRhdGFzLlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5TWV0YWRhdGFCdWlsZGVyIHtcblxuXG5cblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gYnVpbGQgZW50aXR5IG1ldGFkYXRhcyBvZiB0aGUganVuY3Rpb24gZW50aXRpZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyOiBKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBidWlsZCBlbnRpdHkgbWV0YWRhdGFzIG9mIHRoZSBjbG9zdXJlIGp1bmN0aW9uIGVudGl0aWVzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXI6IENsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBidWlsZCBqb2luIGNvbHVtbnMgb2YgdGhlIHJlbGF0aW9ucy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlcjogUmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlclxuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb25uZWN0aW9uOiBEYXRhU291cmNlLFxuICAgICAgICBwcml2YXRlIG1ldGFkYXRhQXJnc1N0b3JhZ2U6IE1ldGFkYXRhQXJnc1N0b3JhZ2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuanVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIgPSBuZXcgSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIoXG4gICAgICAgICAgICBjb25uZWN0aW9uLFxuICAgICAgICApXG4gICAgICAgIHRoaXMuY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyID1cbiAgICAgICAgICAgIG5ldyBDbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIoY29ubmVjdGlvbilcbiAgICAgICAgdGhpcy5yZWxhdGlvbkpvaW5Db2x1bW5CdWlsZGVyID0gbmV3IFJlbGF0aW9uSm9pbkNvbHVtbkJ1aWxkZXIoXG4gICAgICAgICAgICBjb25uZWN0aW9uLFxuICAgICAgICApXG4gICAgfVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBCdWlsZHMgYSBjb21wbGV0ZSBlbnRpdHkgbWV0YWRhdGFzIGZvciB0aGUgZ2l2ZW4gZW50aXR5IGNsYXNzZXMuXG4gICAgICovXG4gICAgYnVpbGQoZW50aXR5Q2xhc3Nlcz86IEZ1bmN0aW9uW10pOiBFbnRpdHlNZXRhZGF0YVtdIHtcblxuICAgICAgICBjb25zdCBhbGxUYWJsZXMgPSBlbnRpdHlDbGFzc2VzXG4gICAgICAgICAgICA/IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maWx0ZXJUYWJsZXMoZW50aXR5Q2xhc3NlcylcbiAgICAgICAgICAgIDogdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLnRhYmxlc1xuXG5cbiAgICAgICAgY29uc3QgcmVhbFRhYmxlcyA9IGFsbFRhYmxlcy5maWx0ZXIoXG4gICAgICAgICAgICAodGFibGUpID0+XG4gICAgICAgICAgICAgICAgdGFibGUudHlwZSA9PT0gXCJyZWd1bGFyXCIgfHxcbiAgICAgICAgICAgICAgICB0YWJsZS50eXBlID09PSBcImNsb3N1cmVcIiB8fFxuICAgICAgICAgICAgICAgIHRhYmxlLnR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIgfHxcbiAgICAgICAgICAgICAgICB0YWJsZS50eXBlID09PSBcInZpZXdcIixcbiAgICAgICAgKVxuXG5cbiAgICAgICAgY29uc3QgZW50aXR5TWV0YWRhdGFzID0gcmVhbFRhYmxlcy5tYXAoKHRhYmxlQXJncykgPT5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRW50aXR5TWV0YWRhdGEodGFibGVBcmdzKSxcbiAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgdGhpcy5jb21wdXRlUGFyZW50RW50aXR5TWV0YWRhdGEoZW50aXR5TWV0YWRhdGFzLCBlbnRpdHlNZXRhZGF0YSksXG4gICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgbWV0YWRhdGEuY2hpbGRFbnRpdHlNZXRhZGF0YXMgPSBlbnRpdHlNZXRhZGF0YXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjaGlsZE1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgbWV0YWRhdGEudGFyZ2V0ID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBjaGlsZE1ldGFkYXRhLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBNZXRhZGF0YVV0aWxzLmlzSW5oZXJpdGVkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkTWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgIT09IFwiZW50aXR5LWNoaWxkXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IGVudGl0eU1ldGFkYXRhLmJ1aWxkKCkpXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IGVudGl0eU1ldGFkYXRhLmJ1aWxkKCkpXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgIT09IFwiZW50aXR5LWNoaWxkXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMShcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGFzLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDEoXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcyxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDIoZW50aXR5TWV0YWRhdGEpLFxuICAgICAgICApXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhlbnRpdHlNZXRhZGF0YSwgZW50aXR5TWV0YWRhdGFzKSxcbiAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlICE9PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5pc09uZVRvT25lIHx8IHJlbGF0aW9uLmlzTWFueVRvT25lLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9pbkNvbHVtbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maWx0ZXJKb2luQ29sdW1ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24udGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmb3JlaWduS2V5LCBjb2x1bW5zLCB1bmlxdWVDb25zdHJhaW50IH0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlci5idWlsZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9pbkNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLy8gY3JlYXRlIGEgZm9yZWlnbiBrZXkgYmFzZWQgb24gaXRzIG1ldGFkYXRhIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JlaWduS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucmVnaXN0ZXJGb3JlaWduS2V5cyhmb3JlaWduS2V5KSAvLyBwdXNoIGl0IHRvIHRoZSByZWxhdGlvbiBhbmQgdGh1cyByZWdpc3RlciB0aGVyZSBhIGpvaW4gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuZm9yZWlnbktleXMucHVzaChmb3JlaWduS2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5yZWdpc3RlckpvaW5Db2x1bW5zKGNvbHVtbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5pcXVlQ29uc3RyYWludCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJpdmVyVXRpbHMuaXNNeVNRTEZhbWlseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImF1cm9yYS1teXNxbFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtc3NxbFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcInNhcFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGFubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVDb25zdHJhaW50LmVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogdW5pcXVlQ29uc3RyYWludC5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogdW5pcXVlQ29uc3RyYWludC50YXJnZXQhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVuaXF1ZUNvbnN0cmFpbnQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtc3NxbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgud2hlcmUgPSBpbmRleC5jb2x1bW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLmVzY2FwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5kYXRhYmFzZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9IElTIE5PVCBOVUxMYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCIgQU5EIFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNwYW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LmlzTnVsbEZpbHRlcmVkID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEuaW5kaWNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDIoZW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEudW5pcXVlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZUNvbnN0cmFpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5lbnRpdHlNZXRhZGF0YS5vd25VbmlxdWVzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlQ29uc3RyYWludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25LZXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb2Nrcm9hY2hkYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IG5ldyBJbmRleE1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IHJlbGF0aW9uLmVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBmb3JlaWduS2V5LmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogcmVsYXRpb24uZW50aXR5TWV0YWRhdGEudGFyZ2V0ISxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW1iZWRkZWRNZXRhZGF0YS5pbmRpY2VzLnB1c2goaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcy5wdXNoKGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzTWFueVRvTWFueSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqb2luVGFibGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maW5kSm9pblRhYmxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqb2luVGFibGUpIHJldHVybiAvLyBubyBqb2luIHRhYmxlIHNldCAtIG5vIG5lZWQgdG8gZG8gYW55dGhpbmcgKGl0IG1lYW5zIHRoaXMgaXMgbWFueS10by1tYW55IGludmVyc2Ugc2lkZSlcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqdW5jdGlvbkVudGl0eU1ldGFkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyLmJ1aWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9pblRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnJlZ2lzdGVyRm9yZWlnbktleXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uanVuY3Rpb25FbnRpdHlNZXRhZGF0YS5mb3JlaWduS2V5cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnJlZ2lzdGVySm9pbkNvbHVtbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzWzBdLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzWzFdLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5yZWdpc3Rlckp1bmN0aW9uRW50aXR5TWV0YWRhdGEoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGp1bmN0aW9uRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW5jdGlvbkVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcy5wdXNoKGp1bmN0aW9uRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnNXaXRoSm9pbkNvbHVtbnMgPVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNXaXRoSm9pbkNvbHVtbixcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5oYXNOb25OdWxsYWJsZVJlbGF0aW9ucyA9XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zV2l0aEpvaW5Db2x1bW5zLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbikgPT4gIXJlbGF0aW9uLmlzTnVsbGFibGUgfHwgcmVsYXRpb24uaXNQcmltYXJ5LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhc1xuICAgICAgICAgICAgLmZpbHRlcigobWV0YWRhdGEpID0+IG1ldGFkYXRhLnRyZWVUeXBlID09PSBcImNsb3N1cmUtdGFibGVcIilcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIuYnVpbGQoXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmNsb3N1cmVKdW5jdGlvblRhYmxlID1cbiAgICAgICAgICAgICAgICAgICAgY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGNsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUludmVyc2VQcm9wZXJ0aWVzKFxuICAgICAgICAgICAgICAgICAgICBjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGFzLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YXMucHVzaChjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YSlcbiAgICAgICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKG1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5pbmhlcml0YW5jZVBhdHRlcm4gPT09IFwiU1RJXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZGlzY3JpbWluYXRvckNvbHVtbixcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUtleXNGb3JUYWJsZUluaGVyaXRhbmNlKGVudGl0eU1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuaW5kaWNlcy5mb3JFYWNoKChpbmRleCkgPT5cbiAgICAgICAgICAgICAgICBpbmRleC5idWlsZCh0aGlzLmNvbm5lY3Rpb24ubmFtaW5nU3RyYXRlZ3kpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS51bmlxdWVzLmZvckVhY2goKHVuaXF1ZSkgPT5cbiAgICAgICAgICAgICAgICB1bmlxdWUuYnVpbGQodGhpcy5jb25uZWN0aW9uLm5hbWluZ1N0cmF0ZWd5KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuY2hlY2tzLmZvckVhY2goKGNoZWNrKSA9PlxuICAgICAgICAgICAgICAgIGNoZWNrLmJ1aWxkKHRoaXMuY29ubmVjdGlvbi5uYW1pbmdTdHJhdGVneSksXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmV4Y2x1c2lvbnMuZm9yRWFjaCgoZXhjbHVzaW9uKSA9PlxuICAgICAgICAgICAgICAgIGV4Y2x1c2lvbi5idWlsZCh0aGlzLmNvbm5lY3Rpb24ubmFtaW5nU3RyYXRlZ3kpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKChtZXRhZGF0YSkgPT4gdHlwZW9mIG1ldGFkYXRhLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc0xhenkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLnJlbGF0aW9uTG9hZGVyLmVuYWJsZUxhenlMb2FkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YS50YXJnZXQgYXMgRnVuY3Rpb24pLnByb3RvdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmRHZW5lcmF0ZWQoXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLmlzR2VuZXJhdGVkID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uZ2VuZXJhdGlvblN0cmF0ZWd5ID0gZ2VuZXJhdGVkLnN0cmF0ZWd5XG4gICAgICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWQuc3RyYXRlZ3kgPT09IFwidXVpZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4udHlwZSA9IFwidXVpZFwiXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2VuZXJhdGVkLnN0cmF0ZWd5ID09PSBcInJvd2lkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi50eXBlID0gXCJpbnRcIlxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPSBjb2x1bW4udHlwZSB8fCBOdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uYnVpbGQodGhpcy5jb25uZWN0aW9uKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIGVudGl0eU1ldGFkYXRhc1xuICAgIH1cblxuXG5cblxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBlbnRpdHkgbWV0YWRhdGEgZnJvbSB0aGUgZ2l2ZW4gdGFibGUgYXJncy5cbiAgICAgKiBDcmVhdGVzIGNvbHVtbiwgcmVsYXRpb24sIGV0Yy4gbWV0YWRhdGFzIGZvciBldmVyeXRoaW5nIHRoaXMgZW50aXR5IG1ldGFkYXRhIG93bnMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUVudGl0eU1ldGFkYXRhKFxuICAgICAgICB0YWJsZUFyZ3M6IFRhYmxlTWV0YWRhdGFBcmdzLFxuICAgICk6IEVudGl0eU1ldGFkYXRhIHtcblxuXG5cbiAgICAgICAgY29uc3QgaW5oZXJpdGFuY2VUcmVlOiBhbnlbXSA9XG4gICAgICAgICAgICB0eXBlb2YgdGFibGVBcmdzLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgPyBNZXRhZGF0YVV0aWxzLmdldEluaGVyaXRhbmNlVHJlZSh0YWJsZUFyZ3MudGFyZ2V0KVxuICAgICAgICAgICAgICAgIDogW3RhYmxlQXJncy50YXJnZXRdIC8vIHRvZG86IGltcGxlbWVudCBsYXRlciBoZXJlIGluaGVyaXRhbmNlIGZvciBzdHJpbmctdGFyZ2V0c1xuXG4gICAgICAgIGNvbnN0IHRhYmxlSW5oZXJpdGFuY2UgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZEluaGVyaXRhbmNlVHlwZShcbiAgICAgICAgICAgIHRhYmxlQXJncy50YXJnZXQsXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgdGFibGVUcmVlID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmRUcmVlKHRhYmxlQXJncy50YXJnZXQpXG5cblxuICAgICAgICBsZXQgc2luZ2xlVGFibGVDaGlsZHJlblRhcmdldHM6IGFueVtdXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0YWJsZUluaGVyaXRhbmNlICYmIHRhYmxlSW5oZXJpdGFuY2UucGF0dGVybiA9PT0gXCJTVElcIikgfHxcbiAgICAgICAgICAgIHRhYmxlQXJncy50eXBlID09PSBcImVudGl0eS1jaGlsZFwiXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2luZ2xlVGFibGVDaGlsZHJlblRhcmdldHMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyU2luZ2xlVGFibGVDaGlsZHJlbih0YWJsZUFyZ3MudGFyZ2V0KVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IGFyZ3MudGFyZ2V0KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHRhcmdldCkgPT4gdHlwZW9mIHRhcmdldCA9PT0gXCJmdW5jdGlvblwiKVxuXG4gICAgICAgICAgICBpbmhlcml0YW5jZVRyZWUucHVzaCguLi5zaW5nbGVUYWJsZUNoaWxkcmVuVGFyZ2V0cylcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgRW50aXR5TWV0YWRhdGEoe1xuICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgYXJnczogdGFibGVBcmdzLFxuICAgICAgICAgICAgaW5oZXJpdGFuY2VUcmVlOiBpbmhlcml0YW5jZVRyZWUsXG4gICAgICAgICAgICB0YWJsZVRyZWU6IHRhYmxlVHJlZSxcbiAgICAgICAgICAgIGluaGVyaXRhbmNlUGF0dGVybjogdGFibGVJbmhlcml0YW5jZVxuICAgICAgICAgICAgICAgID8gdGFibGVJbmhlcml0YW5jZS5wYXR0ZXJuXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVQYXJlbnRFbnRpdHlNZXRhZGF0YShcbiAgICAgICAgYWxsRW50aXR5TWV0YWRhdGFzOiBFbnRpdHlNZXRhZGF0YVtdLFxuICAgICAgICBlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsXG4gICAgKSB7XG5cbiAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEgPSBhbGxFbnRpdHlNZXRhZGF0YXMuZmluZChcbiAgICAgICAgICAgICAgICAoYWxsRW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbEVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZS5pbmRleE9mKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnRhcmdldCBhcyBGdW5jdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICkgIT09IC0xICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxFbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVBhdHRlcm4gPT09IFwiU1RJXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApIVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAxKFxuICAgICAgICBhbGxFbnRpdHlNZXRhZGF0YXM6IEVudGl0eU1ldGFkYXRhW10sXG4gICAgICAgIGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YSxcbiAgICApIHtcbiAgICAgICAgY29uc3QgZW50aXR5SW5oZXJpdGFuY2UgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZEluaGVyaXRhbmNlVHlwZShcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZERpc2NyaW1pbmF0b3JWYWx1ZShcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS50YXJnZXQsXG4gICAgICAgICAgICApXG5cbiAgICAgICAgaWYgKHR5cGVvZiBkaXNjcmltaW5hdG9yVmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmRpc2NyaW1pbmF0b3JWYWx1ZSA9IGRpc2NyaW1pbmF0b3JWYWx1ZS52YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuZGlzY3JpbWluYXRvclZhbHVlID0gKFxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnRhcmdldCBhcyBhbnlcbiAgICAgICAgICAgICkubmFtZVxuICAgICAgICB9XG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMgPSB0aGlzLmNyZWF0ZUVtYmVkZGVkc1JlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmlsdGVyRW1iZWRkZWRzKFxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICkubWFwKChlbWJlZGRlZDogRW1iZWRkZWRNZXRhZGF0YSk6IEVtYmVkZGVkTWV0YWRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlUGF0dGVybiA9PT0gXCJTVElcIikge1xuICAgICAgICAgICAgICAgIGVtYmVkZGVkLmNvbHVtbnMgPSBlbWJlZGRlZC5jb2x1bW5zLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKGNvbHVtbjogQ29sdW1uTWV0YWRhdGEpOiBDb2x1bW5NZXRhZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uaXNOdWxsYWJsZSA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZW1iZWRkZWRcbiAgICAgICAgfSlcblxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyQ29sdW1ucyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLnByb3BlcnR5TmFtZSA9PT0gYXJncy5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICkhXG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOiB0aGlzLmNvbm5lY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgIH0pXG5cblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkluU2luZ2xlVGFibGVJbmhlcml0ZWRDaGlsZCA9XG4gICAgICAgICAgICAgICAgICAgIGFsbEVudGl0eU1ldGFkYXRhcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKG90aGVyRW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJFbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckVudGl0eU1ldGFkYXRhLnRhcmdldCA9PT0gYXJncy50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uSW5TaW5nbGVUYWJsZUluaGVyaXRlZENoaWxkKSBjb2x1bW4uaXNOdWxsYWJsZSA9IHRydWVcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1uXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKGVudGl0eUluaGVyaXRhbmNlICYmIGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbikge1xuICAgICAgICAgICAgY29uc3QgZGlzY3JpbWluYXRvckNvbHVtbk5hbWUgPVxuICAgICAgICAgICAgICAgIGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbiAmJiBlbnRpdHlJbmhlcml0YW5jZS5jb2x1bW4ubmFtZVxuICAgICAgICAgICAgICAgICAgICA/IGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbi5uYW1lXG4gICAgICAgICAgICAgICAgICAgIDogXCJ0eXBlXCJcbiAgICAgICAgICAgIGxldCBkaXNjcmltaW5hdG9yQ29sdW1uID0gZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5wcm9wZXJ0eU5hbWUgPT09IGRpc2NyaW1pbmF0b3JDb2x1bW5OYW1lLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCFkaXNjcmltaW5hdG9yQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvckNvbHVtbiA9IG5ldyBDb2x1bW5NZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IFwidmlydHVhbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBkaXNjcmltaW5hdG9yQ29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbiB8fCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZGlzY3JpbWluYXRvckNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ2YXJjaGFyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4uaXNWaXJ0dWFsID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4uaXNEaXNjcmltaW5hdG9yID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMucHVzaChkaXNjcmltaW5hdG9yQ29sdW1uKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yQ29sdW1uLmlzRGlzY3JpbWluYXRvciA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblxuICAgICAgICBpZiAoZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yQ29sdW1uID1cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc0Rpc2NyaW1pbmF0b3IsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAhZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4gPT09IGRpc2NyaW1pbmF0b3JDb2x1bW4sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5wdXNoKGRpc2NyaW1pbmF0b3JDb2x1bW4pXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IG5hbWluZ1N0cmF0ZWd5IH0gPSB0aGlzLmNvbm5lY3Rpb25cblxuXG4gICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJtYXRlcmlhbGl6ZWQtcGF0aFwiKSB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsaXplZFBhdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogZW50aXR5TWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJ2aXJ0dWFsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IFwibXBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IC8qdHJlZS5jb2x1bW4gfHwgKi8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWluZ1N0cmF0ZWd5Lm1hdGVyaWFsaXplZFBhdGhDb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChlbnRpdHlNZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJuZXN0ZWQtc2V0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGVmdCwgcmlnaHQgfSA9IG5hbWluZ1N0cmF0ZWd5Lm5lc3RlZFNldENvbHVtbk5hbWVzXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5lc3RlZFNldExlZnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogZW50aXR5TWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJ2aXJ0dWFsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGxlZnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiAvKnRyZWUuY29sdW1uIHx8ICovIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5lc3RlZFNldFJpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IFwidmlydHVhbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiByaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IC8qdHJlZS5jb2x1bW4gfHwgKi8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogMixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25SZWxhdGlvbnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgIC5maWx0ZXJSZWxhdGlvbnMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRSZWxhdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5vd25SZWxhdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnByb3BlcnR5TmFtZSA9PT0gYXJncy5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApIVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBhcmdzLnR5cGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGFyZ3MudHlwZSBhcyAoKSA9PiBhbnkpKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFyZ3MudHlwZVxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50UmVsYXRpb24udHlwZSAhPT0gdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmUgPSBPYmplY3QuY3JlYXRlKHBhcmVudFJlbGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmUudHlwZSA9IHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudFJlbGF0aW9uXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbk1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9uSWRzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25JZHMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eU1ldGFkYXRhLnBhcmVudEVudGl0eU1ldGFkYXRhLnJlbGF0aW9uSWRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb25JZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbklkLnByb3BlcnR5TmFtZSA9PT0gYXJncy5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICkhXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uSWRNZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbkNvdW50cyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9uQ291bnRzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5yZWxhdGlvbkNvdW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uQ291bnQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Db3VudC5wcm9wZXJ0eU5hbWUgPT09IGFyZ3MucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICApIVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbkNvdW50TWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duTGlzdGVuZXJzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyTGlzdGVuZXJzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVudGl0eUxpc3RlbmVyTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmNoZWNrcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlckNoZWNrcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDaGVja01ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgIH0pXG5cblxuICAgICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwicG9zdGdyZXNcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuZXhjbHVzaW9ucyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJFeGNsdXNpb25zKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXhjbHVzaW9uTWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwiY29ja3JvYWNoZGJcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJJbmRpY2VzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChhcmdzKSA9PiAhYXJncy51bmlxdWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEluZGV4TWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVySW5kaWNlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYXJncykgPT4gYXJncy51bmlxdWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuaXF1ZU1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGFyZ3MudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGFyZ3MubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBhcmdzLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25VbmlxdWVzLnB1c2goLi4udW5pcXVlcylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkluZGljZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVySW5kaWNlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEluZGV4TWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIERyaXZlclV0aWxzLmlzTXlTUUxGYW1pbHkodGhpcy5jb25uZWN0aW9uLmRyaXZlcikgfHxcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcImF1cm9yYS1teXNxbFwiIHx8XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJzYXBcIiB8fFxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwic3Bhbm5lclwiXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJVbmlxdWVzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBhcmdzLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBhcmdzLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogYXJncy5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkluZGljZXMucHVzaCguLi5pbmRpY2VzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdW5pcXVlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJVbmlxdWVzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5pcXVlTWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25VbmlxdWVzLnB1c2goLi4udW5pcXVlcylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgZnJvbSB0aGUgZ2l2ZW4gZW1iZWRkZWQgbWV0YWRhdGEgYXJncyByZWFsIGVtYmVkZGVkIG1ldGFkYXRhcyB3aXRoIGl0cyBjb2x1bW5zIGFuZCByZWxhdGlvbnMsXG4gICAgICogYW5kIGRvZXMgdGhlIHNhbWUgZm9yIGFsbCBpdHMgc3ViLWVtYmVkZGVkcyAoZ29lcyByZWN1cnNpdmVseSkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUVtYmVkZGVkc1JlY3Vyc2l2ZWx5KFxuICAgICAgICBlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsXG4gICAgICAgIGVtYmVkZGVkQXJnczogRW1iZWRkZWRNZXRhZGF0YUFyZ3NbXSxcbiAgICApOiBFbWJlZGRlZE1ldGFkYXRhW10ge1xuICAgICAgICByZXR1cm4gZW1iZWRkZWRBcmdzLm1hcCgoZW1iZWRkZWRBcmdzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRlZE1ldGFkYXRhID0gbmV3IEVtYmVkZGVkTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBhcmdzOiBlbWJlZGRlZEFyZ3MsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0czogYW55W10gPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBlbWJlZGRlZE1ldGFkYXRhLnR5cGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IE1ldGFkYXRhVXRpbHMuZ2V0SW5oZXJpdGFuY2VUcmVlKGVtYmVkZGVkTWV0YWRhdGEudHlwZSlcbiAgICAgICAgICAgICAgICAgICAgOiBbZW1iZWRkZWRNZXRhZGF0YS50eXBlXSAvLyB0b2RvOiBpbXBsZW1lbnQgbGF0ZXIgaGVyZSBpbmhlcml0YW5jZSBmb3Igc3RyaW5nLXRhcmdldHNcblxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5jb2x1bW5zID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckNvbHVtbnModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ29sdW1uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5yZWxhdGlvbnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25zKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5saXN0ZW5lcnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyTGlzdGVuZXJzKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVudGl0eUxpc3RlbmVyTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5pbmRpY2VzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckluZGljZXModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLnVuaXF1ZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyVW5pcXVlcyh0YXJnZXRzKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmlxdWVNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLnJlbGF0aW9uSWRzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9uSWRzKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uSWRNZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEucmVsYXRpb25Db3VudHMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25Db3VudHModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVsYXRpb25Db3VudE1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5lbWJlZGRlZHMgPSB0aGlzLmNyZWF0ZUVtYmVkZGVkc1JlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maWx0ZXJFbWJlZGRlZHModGFyZ2V0cyksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLmVtYmVkZGVkcy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChzdWJFbWJlZGRlZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKHN1YkVtYmVkZGVkLnBhcmVudEVtYmVkZGVkTWV0YWRhdGEgPSBlbWJlZGRlZE1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmFsbEVtYmVkZGVkcy5wdXNoKGVtYmVkZGVkTWV0YWRhdGEpXG4gICAgICAgICAgICByZXR1cm4gZW1iZWRkZWRNZXRhZGF0YVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGFsbCBlbnRpdHkgbWV0YWRhdGEncyBjb21wdXRlZCBwcm9wZXJ0aWVzLCBhbmQgYWxsIGl0cyBzdWItbWV0YWRhdGFzIChyZWxhdGlvbnMsIGNvbHVtbnMsIGVtYmVkcywgZXRjKS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDIoZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhKSB7XG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmVtYmVkZGVkcy5mb3JFYWNoKChlbWJlZGRlZCkgPT5cbiAgICAgICAgICAgIGVtYmVkZGVkLmJ1aWxkKHRoaXMuY29ubmVjdGlvbiksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLmZvckVhY2goKGVtYmVkZGVkKSA9PiB7XG4gICAgICAgICAgICBlbWJlZGRlZC5jb2x1bW5zRnJvbVRyZWUuZm9yRWFjaCgoY29sdW1uKSA9PlxuICAgICAgICAgICAgICAgIGNvbHVtbi5idWlsZCh0aGlzLmNvbm5lY3Rpb24pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW1iZWRkZWQucmVsYXRpb25zRnJvbVRyZWUuZm9yRWFjaCgocmVsYXRpb24pID0+IHJlbGF0aW9uLmJ1aWxkKCkpXG4gICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PlxuICAgICAgICAgICAgY29sdW1uLmJ1aWxkKHRoaXMuY29ubmVjdGlvbiksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duUmVsYXRpb25zLmZvckVhY2goKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5idWlsZCgpKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgZW1iZWRkZWQpID0+XG4gICAgICAgICAgICAgICAgcmVsYXRpb25zLmNvbmNhdChlbWJlZGRlZC5yZWxhdGlvbnNGcm9tVHJlZSksXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25SZWxhdGlvbnMsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZWFnZXJSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc0VhZ2VyLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmxhenlSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc0xhenksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub25lVG9PbmVSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc09uZVRvT25lLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm9uZVRvTWFueVJlbGF0aW9ucyA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzT25lVG9NYW55LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm1hbnlUb09uZVJlbGF0aW9ucyA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzTWFueVRvT25lLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm1hbnlUb01hbnlSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc01hbnlUb01hbnksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duZXJPbmVUb09uZVJlbGF0aW9ucyA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzT25lVG9PbmVPd25lcixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25lck1hbnlUb01hbnlSZWxhdGlvbnMgPVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzTWFueVRvTWFueU93bmVyLFxuICAgICAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS50cmVlUGFyZW50UmVsYXRpb24gPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmluZChcbiAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNUcmVlUGFyZW50LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnRyZWVDaGlsZHJlblJlbGF0aW9uID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbmQoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzVHJlZUNoaWxkcmVuLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmNvbHVtbnMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKGNvbHVtbnMsIGVtYmVkZGVkKSA9PiBjb2x1bW5zLmNvbmNhdChlbWJlZGRlZC5jb2x1bW5zRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucyxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKGxpc3RlbmVycywgZW1iZWRkZWQpID0+XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzLmNvbmNhdChlbWJlZGRlZC5saXN0ZW5lcnNGcm9tVHJlZSksXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25MaXN0ZW5lcnMsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJMb2FkTGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgIChsaXN0ZW5lcikgPT4gbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkFGVEVSX0xPQUQsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJJbnNlcnRMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQUZURVJfSU5TRVJULFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVyVXBkYXRlTGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgIChsaXN0ZW5lcikgPT4gbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkFGVEVSX1VQREFURSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5hZnRlclJlbW92ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5BRlRFUl9SRU1PVkUsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJTb2Z0UmVtb3ZlTGlzdGVuZXJzID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGxpc3RlbmVyKSA9PlxuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQUZURVJfU09GVF9SRU1PVkUsXG4gICAgICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVyUmVjb3Zlckxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5BRlRFUl9SRUNPVkVSLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZUluc2VydExpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfSU5TRVJULFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVVwZGF0ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfVVBEQVRFLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVJlbW92ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfUkVNT1ZFLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVNvZnRSZW1vdmVMaXN0ZW5lcnMgPVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAobGlzdGVuZXIpID0+XG4gICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfU09GVF9SRU1PVkUsXG4gICAgICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVJlY292ZXJMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQkVGT1JFX1JFQ09WRVIsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuaW5kaWNlcyA9IGVudGl0eU1ldGFkYXRhLmVtYmVkZGVkcy5yZWR1Y2UoXG4gICAgICAgICAgICAoaW5kaWNlcywgZW1iZWRkZWQpID0+IGluZGljZXMuY29uY2F0KGVtYmVkZGVkLmluZGljZXNGcm9tVHJlZSksXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnVuaXF1ZXMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKHVuaXF1ZXMsIGVtYmVkZGVkKSA9PiB1bmlxdWVzLmNvbmNhdChlbWJlZGRlZC51bmlxdWVzRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duVW5pcXVlcyxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5wcmltYXJ5Q29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzUHJpbWFyeSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5ub25WaXJ0dWFsQ29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gIWNvbHVtbi5pc1ZpcnR1YWwsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYW5jZXN0b3JDb2x1bW5zID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maWx0ZXIoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uY2xvc3VyZVR5cGUgPT09IFwiYW5jZXN0b3JcIixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5kZXNjZW5kYW50Q29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmNsb3N1cmVUeXBlID09PSBcImRlc2NlbmRhbnRcIixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5oYXNNdWx0aXBsZVByaW1hcnlLZXlzID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnByaW1hcnlDb2x1bW5zLmxlbmd0aCA+IDFcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZ2VuZXJhdGVkQ29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzR2VuZXJhdGVkIHx8IGNvbHVtbi5pc09iamVjdElkLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmhhc1VVSURHZW5lcmF0ZWRDb2x1bW5zID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc0dlbmVyYXRlZCB8fCBjb2x1bW4uZ2VuZXJhdGlvblN0cmF0ZWd5ID09PSBcInV1aWRcIixcbiAgICAgICAgICAgICkubGVuZ3RoID4gMFxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5jcmVhdGVEYXRlQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzQ3JlYXRlRGF0ZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS51cGRhdGVEYXRlQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzVXBkYXRlRGF0ZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5kZWxldGVEYXRlQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzRGVsZXRlRGF0ZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS52ZXJzaW9uQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzVmVyc2lvbixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5kaXNjcmltaW5hdG9yQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzRGlzY3JpbWluYXRvcixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS50cmVlTGV2ZWxDb2x1bW4gPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNUcmVlTGV2ZWwsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubmVzdGVkU2V0TGVmdENvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc05lc3RlZFNldExlZnQsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubmVzdGVkU2V0UmlnaHRDb2x1bW4gPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNOZXN0ZWRTZXRSaWdodCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5tYXRlcmlhbGl6ZWRQYXRoQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzTWF0ZXJpYWxpemVkUGF0aCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vYmplY3RJZENvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc09iamVjdElkLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmZvcmVpZ25LZXlzLmZvckVhY2goKGZvcmVpZ25LZXkpID0+XG4gICAgICAgICAgICBmb3JlaWduS2V5LmJ1aWxkKHRoaXMuY29ubmVjdGlvbi5uYW1pbmdTdHJhdGVneSksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEucHJvcGVydGllc01hcCA9IGVudGl0eU1ldGFkYXRhLmNyZWF0ZVByb3BlcnRpZXNNYXAoKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbklkcy5mb3JFYWNoKChyZWxhdGlvbklkKSA9PiByZWxhdGlvbklkLmJ1aWxkKCkpXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9uQ291bnRzLmZvckVhY2goKHJlbGF0aW9uQ291bnQpID0+XG4gICAgICAgICAgICByZWxhdGlvbkNvdW50LmJ1aWxkKCksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLmZvckVhY2goKGVtYmVkZGVkKSA9PiB7XG4gICAgICAgICAgICBlbWJlZGRlZC5yZWxhdGlvbklkc0Zyb21UcmVlLmZvckVhY2goKHJlbGF0aW9uSWQpID0+XG4gICAgICAgICAgICAgICAgcmVsYXRpb25JZC5idWlsZCgpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW1iZWRkZWQucmVsYXRpb25Db3VudHNGcm9tVHJlZS5mb3JFYWNoKChyZWxhdGlvbkNvdW50KSA9PlxuICAgICAgICAgICAgICAgIHJlbGF0aW9uQ291bnQuYnVpbGQoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyBlbnRpdHkgbWV0YWRhdGEncyByZWxhdGlvbnMgaW52ZXJzZSBzaWRlIHByb3BlcnRpZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhcbiAgICAgICAgZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhLFxuICAgICAgICBlbnRpdHlNZXRhZGF0YXM6IEVudGl0eU1ldGFkYXRhW10sXG4gICAgKSB7XG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBpbnZlcnNlRW50aXR5TWV0YWRhdGEgPSBlbnRpdHlNZXRhZGF0YXMuZmluZChcbiAgICAgICAgICAgICAgICAobSkgPT5cbiAgICAgICAgICAgICAgICAgICAgbS50YXJnZXQgPT09IHJlbGF0aW9uLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiByZWxhdGlvbi50eXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAobS50YXJnZXROYW1lID09PSByZWxhdGlvbi50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5naXZlblRhYmxlTmFtZSA9PT0gcmVsYXRpb24udHlwZSkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCFpbnZlcnNlRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFbnRpdHkgbWV0YWRhdGEgZm9yIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIjXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucHJvcGVydHlQYXRoICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHdhcyBub3QgZm91bmQuIENoZWNrIGlmIHlvdSBzcGVjaWZpZWQgYSBjb3JyZWN0IGVudGl0eSBvYmplY3QgYW5kIGlmIGl0J3MgY29ubmVjdGVkIGluIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMuXCIsXG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlRW50aXR5TWV0YWRhdGEgPSBpbnZlcnNlRW50aXR5TWV0YWRhdGFcbiAgICAgICAgICAgIHJlbGF0aW9uLmludmVyc2VTaWRlUHJvcGVydHlQYXRoID1cbiAgICAgICAgICAgICAgICByZWxhdGlvbi5idWlsZEludmVyc2VTaWRlUHJvcGVydHlQYXRoKClcblxuXG4gICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlUmVsYXRpb24gPSBpbnZlcnNlRW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKGZvdW5kUmVsYXRpb24pID0+XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kUmVsYXRpb24ucHJvcGVydHlQYXRoID09PVxuICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlU2lkZVByb3BlcnR5UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGluZGljZXMgZm9yIHRoZSB0YWJsZSBvZiBzaW5nbGUgdGFibGUgaW5oZXJpdGFuY2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUtleXNGb3JUYWJsZUluaGVyaXRhbmNlKGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YSkge1xuICAgICAgICBlbnRpdHlNZXRhZGF0YS5pbmRpY2VzLnB1c2goXG4gICAgICAgICAgICBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIGNvbHVtbnM6IFtlbnRpdHlNZXRhZGF0YS5kaXNjcmltaW5hdG9yQ29sdW1uIV0sXG4gICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGVvcm0gbGliL3R5cGVvcm0vbWV0YWRhdGEtYnVpbGRlci9FbnRpdHlNZXRhZGF0YUJ1aWxkZXIudHMiXX0=