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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW50aXR5TWV0YWRhdGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24tdHlwZW9ybS9wcm9qZWN0cy90YW9uLXR5cGVvcm0vc3JjL2xpYi90eXBlb3JtL21ldGFkYXRhLWJ1aWxkZXIvRW50aXR5TWV0YWRhdGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUV2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FB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QUMsY0FBYyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNuRCxDQUFBO1lBQ0QsSUFBSSxDQUFDLHFCQUFxQjtnQkFDdEIsTUFBTSxJQUFJLFlBQVksQ0FDbEIsc0JBQXNCO29CQUNsQixjQUFjLENBQUMsSUFBSTtvQkFDbkIsR0FBRztvQkFDSCxRQUFRLENBQUMsWUFBWTtvQkFDckIsaUhBQWlILENBQ3hILENBQUE7WUFFTCxRQUFRLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUE7WUFDdEQsUUFBUSxDQUFDLHVCQUF1QjtnQkFDNUIsUUFBUSxDQUFDLDRCQUE0QixFQUFFLENBQUE7WUFHM0MsUUFBUSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMzRCxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ2QsYUFBYSxDQUFDLFlBQVk7Z0JBQzFCLFFBQVEsQ0FBQyx1QkFBdUIsQ0FDdkMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ08sNkJBQTZCLENBQUMsY0FBOEI7UUFDbEUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3ZCLElBQUksYUFBYSxDQUFDO1lBQ2QsY0FBYyxFQUFFLGNBQWM7WUFDOUIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLG1CQUFvQixDQUFDO1lBQzlDLElBQUksRUFBRTtnQkFDRixNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCO1NBQ0osQ0FBQyxDQUNMLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtGQUErRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FbnRpdHlNZXRhZGF0YVwiXG5pbXBvcnQgeyBDb2x1bW5NZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9Db2x1bW5NZXRhZGF0YVwiXG5pbXBvcnQgeyBJbmRleE1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0luZGV4TWV0YWRhdGFcIlxuaW1wb3J0IHsgUmVsYXRpb25NZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9SZWxhdGlvbk1ldGFkYXRhXCJcbmltcG9ydCB7IEVtYmVkZGVkTWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvRW1iZWRkZWRNZXRhZGF0YVwiXG5pbXBvcnQgeyBNZXRhZGF0YUFyZ3NTdG9yYWdlIH0gZnJvbSBcIi4uL21ldGFkYXRhLWFyZ3MvTWV0YWRhdGFBcmdzU3RvcmFnZVwiXG5pbXBvcnQgeyBFbWJlZGRlZE1ldGFkYXRhQXJncyB9IGZyb20gXCIuLi9tZXRhZGF0YS1hcmdzL0VtYmVkZGVkTWV0YWRhdGFBcmdzXCJcbmltcG9ydCB7IFJlbGF0aW9uSWRNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9SZWxhdGlvbklkTWV0YWRhdGFcIlxuaW1wb3J0IHsgUmVsYXRpb25Db3VudE1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1JlbGF0aW9uQ291bnRNZXRhZGF0YVwiXG5pbXBvcnQgeyBFdmVudExpc3RlbmVyVHlwZXMgfSBmcm9tIFwiLi4vbWV0YWRhdGEvdHlwZXMvRXZlbnRMaXN0ZW5lclR5cGVzXCJcbmltcG9ydCB7IE1ldGFkYXRhVXRpbHMgfSBmcm9tIFwiLi9NZXRhZGF0YVV0aWxzXCJcbmltcG9ydCB7IFRhYmxlTWV0YWRhdGFBcmdzIH0gZnJvbSBcIi4uL21ldGFkYXRhLWFyZ3MvVGFibGVNZXRhZGF0YUFyZ3NcIlxuaW1wb3J0IHsgSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIgfSBmcm9tIFwiLi9KdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclwiXG5pbXBvcnQgeyBDbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIgfSBmcm9tIFwiLi9DbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXJcIlxuaW1wb3J0IHsgUmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlciB9IGZyb20gXCIuL1JlbGF0aW9uSm9pbkNvbHVtbkJ1aWxkZXJcIlxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9kYXRhLXNvdXJjZS9EYXRhU291cmNlXCJcbmltcG9ydCB7IEVudGl0eUxpc3RlbmVyTWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvRW50aXR5TGlzdGVuZXJNZXRhZGF0YVwiXG5pbXBvcnQgeyBVbmlxdWVNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9VbmlxdWVNZXRhZGF0YVwiXG5pbXBvcnQgeyBDaGVja01ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0NoZWNrTWV0YWRhdGFcIlxuaW1wb3J0IHsgRXhjbHVzaW9uTWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvRXhjbHVzaW9uTWV0YWRhdGFcIlxuaW1wb3J0IHsgVHlwZU9STUVycm9yIH0gZnJvbSBcIi4uL2Vycm9yXCJcbmltcG9ydCB7IERyaXZlclV0aWxzIH0gZnJvbSBcIi4uL2RyaXZlci9Ecml2ZXJVdGlsc1wiXG5cbi8qKlxuICogQnVpbGRzIEVudGl0eU1ldGFkYXRhIG9iamVjdHMgYW5kIGFsbCBpdHMgc3ViLW1ldGFkYXRhcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudGl0eU1ldGFkYXRhQnVpbGRlciB7XG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIGJ1aWxkIGVudGl0eSBtZXRhZGF0YXMgb2YgdGhlIGp1bmN0aW9uIGVudGl0aWVzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBqdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlcjogSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXJcblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gYnVpbGQgZW50aXR5IG1ldGFkYXRhcyBvZiB0aGUgY2xvc3VyZSBqdW5jdGlvbiBlbnRpdGllcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyOiBDbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXJcblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gYnVpbGQgam9pbiBjb2x1bW5zIG9mIHRoZSByZWxhdGlvbnMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uSm9pbkNvbHVtbkJ1aWxkZXI6IFJlbGF0aW9uSm9pbkNvbHVtbkJ1aWxkZXJcblxuXG5cblxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29ubmVjdGlvbjogRGF0YVNvdXJjZSxcbiAgICAgICAgcHJpdmF0ZSBtZXRhZGF0YUFyZ3NTdG9yYWdlOiBNZXRhZGF0YUFyZ3NTdG9yYWdlLFxuICAgICkge1xuICAgICAgICB0aGlzLmp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyID0gbmV3IEp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyKFxuICAgICAgICAgICAgY29ubmVjdGlvbixcbiAgICAgICAgKVxuICAgICAgICB0aGlzLmNsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlciA9XG4gICAgICAgICAgICBuZXcgQ2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyKGNvbm5lY3Rpb24pXG4gICAgICAgIHRoaXMucmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlciA9IG5ldyBSZWxhdGlvbkpvaW5Db2x1bW5CdWlsZGVyKFxuICAgICAgICAgICAgY29ubmVjdGlvbixcbiAgICAgICAgKVxuICAgIH1cblxuXG5cblxuXG4gICAgLyoqXG4gICAgICogQnVpbGRzIGEgY29tcGxldGUgZW50aXR5IG1ldGFkYXRhcyBmb3IgdGhlIGdpdmVuIGVudGl0eSBjbGFzc2VzLlxuICAgICAqL1xuICAgIGJ1aWxkKGVudGl0eUNsYXNzZXM/OiBGdW5jdGlvbltdKTogRW50aXR5TWV0YWRhdGFbXSB7XG5cbiAgICAgICAgY29uc3QgYWxsVGFibGVzID0gZW50aXR5Q2xhc3Nlc1xuICAgICAgICAgICAgPyB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmlsdGVyVGFibGVzKGVudGl0eUNsYXNzZXMpXG4gICAgICAgICAgICA6IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS50YWJsZXNcblxuXG4gICAgICAgIGNvbnN0IHJlYWxUYWJsZXMgPSBhbGxUYWJsZXMuZmlsdGVyKFxuICAgICAgICAgICAgKHRhYmxlKSA9PlxuICAgICAgICAgICAgICAgIHRhYmxlLnR5cGUgPT09IFwicmVndWxhclwiIHx8XG4gICAgICAgICAgICAgICAgdGFibGUudHlwZSA9PT0gXCJjbG9zdXJlXCIgfHxcbiAgICAgICAgICAgICAgICB0YWJsZS50eXBlID09PSBcImVudGl0eS1jaGlsZFwiIHx8XG4gICAgICAgICAgICAgICAgdGFibGUudHlwZSA9PT0gXCJ2aWV3XCIsXG4gICAgICAgIClcblxuXG4gICAgICAgIGNvbnN0IGVudGl0eU1ldGFkYXRhcyA9IHJlYWxUYWJsZXMubWFwKCh0YWJsZUFyZ3MpID0+XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUVudGl0eU1ldGFkYXRhKHRhYmxlQXJncyksXG4gICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZVBhcmVudEVudGl0eU1ldGFkYXRhKGVudGl0eU1ldGFkYXRhcywgZW50aXR5TWV0YWRhdGEpLFxuICAgICAgICApXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgIG1ldGFkYXRhLmNoaWxkRW50aXR5TWV0YWRhdGFzID0gZW50aXR5TWV0YWRhdGFzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoY2hpbGRNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIG1ldGFkYXRhLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZXRhZGF0YS50YXJnZXQgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgTWV0YWRhdGFVdGlscy5pc0luaGVyaXRlZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlICE9PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS5idWlsZCgpKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS5idWlsZCgpKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlICE9PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDEoXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcyxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhc1xuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZW50aXR5TWV0YWRhdGEpID0+IGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIixcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAxKFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YXMsXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKSxcbiAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgdGhpcy5jb21wdXRlSW52ZXJzZVByb3BlcnRpZXMoZW50aXR5TWV0YWRhdGEsIGVudGl0eU1ldGFkYXRhcyksXG4gICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhc1xuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZW50aXR5TWV0YWRhdGEpID0+IGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSAhPT0gXCJlbnRpdHktY2hpbGRcIixcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uaXNPbmVUb09uZSB8fCByZWxhdGlvbi5pc01hbnlUb09uZSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvaW5Db2x1bW5zID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmlsdGVySm9pbkNvbHVtbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZm9yZWlnbktleSwgY29sdW1ucywgdW5pcXVlQ29uc3RyYWludCB9ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aW9uSm9pbkNvbHVtbkJ1aWxkZXIuYnVpbGQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvaW5Db2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8vIGNyZWF0ZSBhIGZvcmVpZ24ga2V5IGJhc2VkIG9uIGl0cyBtZXRhZGF0YSBhcmdzXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9yZWlnbktleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnJlZ2lzdGVyRm9yZWlnbktleXMoZm9yZWlnbktleSkgLy8gcHVzaCBpdCB0byB0aGUgcmVsYXRpb24gYW5kIHRodXMgcmVnaXN0ZXIgdGhlcmUgYSBqb2luIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucmVnaXN0ZXJKb2luQ29sdW1ucyhjb2x1bW5zKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuaXF1ZUNvbnN0cmFpbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyaXZlclV0aWxzLmlzTXlTUUxGYW1pbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhdXJvcmEtbXlzcWxcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibXNzcWxcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJzYXBcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3Bhbm5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gbmV3IEluZGV4TWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlQ29uc3RyYWludC5lbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IHVuaXF1ZUNvbnN0cmFpbnQuY29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHVuaXF1ZUNvbnN0cmFpbnQudGFyZ2V0ISxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB1bmlxdWVDb25zdHJhaW50Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibXNzcWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LndoZXJlID0gaW5kZXguY29sdW1uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5jb25uZWN0aW9uLmRyaXZlci5lc2NhcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uZGF0YWJhc2VOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfSBJUyBOT1QgTlVMTGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiIEFORCBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGFubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleC5pc051bGxGaWx0ZXJlZCA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxhdGlvbi5lbWJlZGRlZE1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5lbWJlZGRlZE1ldGFkYXRhLmluZGljZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVudGl0eU1ldGFkYXRhLm93bkluZGljZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxhdGlvbi5lbWJlZGRlZE1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5lbWJlZGRlZE1ldGFkYXRhLnVuaXF1ZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVDb25zdHJhaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW50aXR5TWV0YWRhdGEub3duVW5pcXVlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZUNvbnN0cmFpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMihlbnRpdHlNZXRhZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduS2V5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29ja3JvYWNoZGJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiByZWxhdGlvbi5lbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogZm9yZWlnbktleS5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHJlbGF0aW9uLmVudGl0eU1ldGFkYXRhLnRhcmdldCEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxhdGlvbi5lbWJlZGRlZE1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEuaW5kaWNlcy5wdXNoKGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVudGl0eU1ldGFkYXRhLm93bkluZGljZXMucHVzaChpbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMihlbnRpdHlNZXRhZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcblxuXG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc01hbnlUb01hbnkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9pblRhYmxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZEpvaW5UYWJsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24udGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSFcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgham9pblRhYmxlKSByZXR1cm4gLy8gbm8gam9pbiB0YWJsZSBzZXQgLSBubyBuZWVkIHRvIGRvIGFueXRoaW5nIChpdCBtZWFucyB0aGlzIGlzIG1hbnktdG8tbWFueSBpbnZlcnNlIHNpZGUpXG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganVuY3Rpb25FbnRpdHlNZXRhZGF0YSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5qdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlci5idWlsZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvaW5UYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5yZWdpc3RlckZvcmVpZ25LZXlzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmp1bmN0aW9uRW50aXR5TWV0YWRhdGEuZm9yZWlnbktleXMsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5yZWdpc3RlckpvaW5Db2x1bW5zKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bmN0aW9uRW50aXR5TWV0YWRhdGEub3duSW5kaWNlc1swXS5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bmN0aW9uRW50aXR5TWV0YWRhdGEub3duSW5kaWNlc1sxXS5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucmVnaXN0ZXJKdW5jdGlvbkVudGl0eU1ldGFkYXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bmN0aW9uRW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMihqdW5jdGlvbkVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlSW52ZXJzZVByb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YXMsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YXMucHVzaChqdW5jdGlvbkVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zV2l0aEpvaW5Db2x1bW5zID1cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzV2l0aEpvaW5Db2x1bW4sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuaGFzTm9uTnVsbGFibGVSZWxhdGlvbnMgPVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9uc1dpdGhKb2luQ29sdW1ucy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+ICFyZWxhdGlvbi5pc051bGxhYmxlIHx8IHJlbGF0aW9uLmlzUHJpbWFyeSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJjbG9zdXJlLXRhYmxlXCIpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyLmJ1aWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5jbG9zdXJlSnVuY3Rpb25UYWJsZSA9XG4gICAgICAgICAgICAgICAgICAgIGNsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMihjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YSlcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcyxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGFzLnB1c2goY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChtZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuaW5oZXJpdGFuY2VQYXR0ZXJuID09PSBcIlNUSVwiICYmXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRpc2NyaW1pbmF0b3JDb2x1bW4sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVLZXlzRm9yVGFibGVJbmhlcml0YW5jZShlbnRpdHlNZXRhZGF0YSksXG4gICAgICAgICAgICApXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmluZGljZXMuZm9yRWFjaCgoaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgaW5kZXguYnVpbGQodGhpcy5jb25uZWN0aW9uLm5hbWluZ1N0cmF0ZWd5KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEudW5pcXVlcy5mb3JFYWNoKCh1bmlxdWUpID0+XG4gICAgICAgICAgICAgICAgdW5pcXVlLmJ1aWxkKHRoaXMuY29ubmVjdGlvbi5uYW1pbmdTdHJhdGVneSksXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmNoZWNrcy5mb3JFYWNoKChjaGVjaykgPT5cbiAgICAgICAgICAgICAgICBjaGVjay5idWlsZCh0aGlzLmNvbm5lY3Rpb24ubmFtaW5nU3RyYXRlZ3kpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5leGNsdXNpb25zLmZvckVhY2goKGV4Y2x1c2lvbikgPT5cbiAgICAgICAgICAgICAgICBleGNsdXNpb24uYnVpbGQodGhpcy5jb25uZWN0aW9uLm5hbWluZ1N0cmF0ZWd5KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhc1xuICAgICAgICAgICAgLmZpbHRlcigobWV0YWRhdGEpID0+IHR5cGVvZiBtZXRhZGF0YS50YXJnZXQgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9uc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNMYXp5KVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5yZWxhdGlvbkxvYWRlci5lbmFibGVMYXp5TG9hZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW50aXR5TWV0YWRhdGEudGFyZ2V0IGFzIEZ1bmN0aW9uKS5wcm90b3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGdlbmVyYXRlZCA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maW5kR2VuZXJhdGVkKFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4udGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4ucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc0dlbmVyYXRlZCA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9IGdlbmVyYXRlZC5zdHJhdGVneVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkLnN0cmF0ZWd5ID09PSBcInV1aWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPSBcInV1aWRcIlxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdlbmVyYXRlZC5zdHJhdGVneSA9PT0gXCJyb3dpZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4udHlwZSA9IFwiaW50XCJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi50eXBlID0gY29sdW1uLnR5cGUgfHwgTnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLmJ1aWxkKHRoaXMuY29ubmVjdGlvbilcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMihlbnRpdHlNZXRhZGF0YSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBlbnRpdHlNZXRhZGF0YXNcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgZW50aXR5IG1ldGFkYXRhIGZyb20gdGhlIGdpdmVuIHRhYmxlIGFyZ3MuXG4gICAgICogQ3JlYXRlcyBjb2x1bW4sIHJlbGF0aW9uLCBldGMuIG1ldGFkYXRhcyBmb3IgZXZlcnl0aGluZyB0aGlzIGVudGl0eSBtZXRhZGF0YSBvd25zLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVFbnRpdHlNZXRhZGF0YShcbiAgICAgICAgdGFibGVBcmdzOiBUYWJsZU1ldGFkYXRhQXJncyxcbiAgICApOiBFbnRpdHlNZXRhZGF0YSB7XG5cblxuXG4gICAgICAgIGNvbnN0IGluaGVyaXRhbmNlVHJlZTogYW55W10gPVxuICAgICAgICAgICAgdHlwZW9mIHRhYmxlQXJncy50YXJnZXQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgID8gTWV0YWRhdGFVdGlscy5nZXRJbmhlcml0YW5jZVRyZWUodGFibGVBcmdzLnRhcmdldClcbiAgICAgICAgICAgICAgICA6IFt0YWJsZUFyZ3MudGFyZ2V0XSAvLyB0b2RvOiBpbXBsZW1lbnQgbGF0ZXIgaGVyZSBpbmhlcml0YW5jZSBmb3Igc3RyaW5nLXRhcmdldHNcblxuICAgICAgICBjb25zdCB0YWJsZUluaGVyaXRhbmNlID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmRJbmhlcml0YW5jZVR5cGUoXG4gICAgICAgICAgICB0YWJsZUFyZ3MudGFyZ2V0LFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHRhYmxlVHJlZSA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maW5kVHJlZSh0YWJsZUFyZ3MudGFyZ2V0KVxuXG5cbiAgICAgICAgbGV0IHNpbmdsZVRhYmxlQ2hpbGRyZW5UYXJnZXRzOiBhbnlbXVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGFibGVJbmhlcml0YW5jZSAmJiB0YWJsZUluaGVyaXRhbmNlLnBhdHRlcm4gPT09IFwiU1RJXCIpIHx8XG4gICAgICAgICAgICB0YWJsZUFyZ3MudHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIlxuICAgICAgICApIHtcbiAgICAgICAgICAgIHNpbmdsZVRhYmxlQ2hpbGRyZW5UYXJnZXRzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlclNpbmdsZVRhYmxlQ2hpbGRyZW4odGFibGVBcmdzLnRhcmdldClcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiBhcmdzLnRhcmdldClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YXJnZXQpID0+IHR5cGVvZiB0YXJnZXQgPT09IFwiZnVuY3Rpb25cIilcblxuICAgICAgICAgICAgaW5oZXJpdGFuY2VUcmVlLnB1c2goLi4uc2luZ2xlVGFibGVDaGlsZHJlblRhcmdldHMpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEVudGl0eU1ldGFkYXRhKHtcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgIGFyZ3M6IHRhYmxlQXJncyxcbiAgICAgICAgICAgIGluaGVyaXRhbmNlVHJlZTogaW5oZXJpdGFuY2VUcmVlLFxuICAgICAgICAgICAgdGFibGVUcmVlOiB0YWJsZVRyZWUsXG4gICAgICAgICAgICBpbmhlcml0YW5jZVBhdHRlcm46IHRhYmxlSW5oZXJpdGFuY2VcbiAgICAgICAgICAgICAgICA/IHRhYmxlSW5oZXJpdGFuY2UucGF0dGVyblxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21wdXRlUGFyZW50RW50aXR5TWV0YWRhdGEoXG4gICAgICAgIGFsbEVudGl0eU1ldGFkYXRhczogRW50aXR5TWV0YWRhdGFbXSxcbiAgICAgICAgZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhLFxuICAgICkge1xuXG4gICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIpIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnBhcmVudEVudGl0eU1ldGFkYXRhID0gYWxsRW50aXR5TWV0YWRhdGFzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGFsbEVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxFbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUuaW5kZXhPZihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS50YXJnZXQgYXMgRnVuY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICApICE9PSAtMSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsRW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VQYXR0ZXJuID09PSBcIlNUSVwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKSFcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMShcbiAgICAgICAgYWxsRW50aXR5TWV0YWRhdGFzOiBFbnRpdHlNZXRhZGF0YVtdLFxuICAgICAgICBlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eUluaGVyaXRhbmNlID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmRJbmhlcml0YW5jZVR5cGUoXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS50YXJnZXQsXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWUgPVxuICAgICAgICAgICAgdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmREaXNjcmltaW5hdG9yVmFsdWUoXG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgIGlmICh0eXBlb2YgZGlzY3JpbWluYXRvclZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5kaXNjcmltaW5hdG9yVmFsdWUgPSBkaXNjcmltaW5hdG9yVmFsdWUudmFsdWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmRpc2NyaW1pbmF0b3JWYWx1ZSA9IChcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS50YXJnZXQgYXMgYW55XG4gICAgICAgICAgICApLm5hbWVcbiAgICAgICAgfVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzID0gdGhpcy5jcmVhdGVFbWJlZGRlZHNSZWN1cnNpdmVseShcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbHRlckVtYmVkZGVkcyhcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUsXG4gICAgICAgICAgICApLFxuICAgICAgICApLm1hcCgoZW1iZWRkZWQ6IEVtYmVkZGVkTWV0YWRhdGEpOiBFbWJlZGRlZE1ldGFkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVBhdHRlcm4gPT09IFwiU1RJXCIpIHtcbiAgICAgICAgICAgICAgICBlbWJlZGRlZC5jb2x1bW5zID0gZW1iZWRkZWQuY29sdW1ucy5tYXAoXG4gICAgICAgICAgICAgICAgICAgIChjb2x1bW46IENvbHVtbk1ldGFkYXRhKTogQ29sdW1uTWV0YWRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLmlzTnVsbGFibGUgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVtYmVkZGVkXG4gICAgICAgIH0pXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlckNvbHVtbnMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eU1ldGFkYXRhLnBhcmVudEVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5wcm9wZXJ0eU5hbWUgPT09IGFyZ3MucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICApIVxuXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5JblNpbmdsZVRhYmxlSW5oZXJpdGVkQ2hpbGQgPVxuICAgICAgICAgICAgICAgICAgICBhbGxFbnRpdHlNZXRhZGF0YXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChvdGhlckVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyRW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJFbnRpdHlNZXRhZGF0YS50YXJnZXQgPT09IGFyZ3MudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbkluU2luZ2xlVGFibGVJbmhlcml0ZWRDaGlsZCkgY29sdW1uLmlzTnVsbGFibGUgPSB0cnVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtblxuICAgICAgICAgICAgfSlcblxuXG4gICAgICAgIC8vXG4gICAgICAgIGlmIChlbnRpdHlJbmhlcml0YW5jZSAmJiBlbnRpdHlJbmhlcml0YW5jZS5jb2x1bW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JDb2x1bW5OYW1lID1cbiAgICAgICAgICAgICAgICBlbnRpdHlJbmhlcml0YW5jZS5jb2x1bW4gJiYgZW50aXR5SW5oZXJpdGFuY2UuY29sdW1uLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgPyBlbnRpdHlJbmhlcml0YW5jZS5jb2x1bW4ubmFtZVxuICAgICAgICAgICAgICAgICAgICA6IFwidHlwZVwiXG4gICAgICAgICAgICBsZXQgZGlzY3JpbWluYXRvckNvbHVtbiA9IGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMuZmluZChcbiAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4ucHJvcGVydHlOYW1lID09PSBkaXNjcmltaW5hdG9yQ29sdW1uTmFtZSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICghZGlzY3JpbWluYXRvckNvbHVtbikge1xuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4gPSBuZXcgQ29sdW1uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOiB0aGlzLmNvbm5lY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBlbnRpdHlNZXRhZGF0YS50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBcInZpcnR1YWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZTogZGlzY3JpbWluYXRvckNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBlbnRpdHlJbmhlcml0YW5jZS5jb2x1bW4gfHwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGRpc2NyaW1pbmF0b3JDb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidmFyY2hhclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yQ29sdW1uLmlzVmlydHVhbCA9IHRydWVcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yQ29sdW1uLmlzRGlzY3JpbWluYXRvciA9IHRydWVcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goZGlzY3JpbWluYXRvckNvbHVtbilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvckNvbHVtbi5pc0Rpc2NyaW1pbmF0b3IgPSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIikge1xuICAgICAgICAgICAgY29uc3QgZGlzY3JpbWluYXRvckNvbHVtbiA9XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNEaXNjcmltaW5hdG9yLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yQ29sdW1uICYmXG4gICAgICAgICAgICAgICAgIWVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uID09PSBkaXNjcmltaW5hdG9yQ29sdW1uLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMucHVzaChkaXNjcmltaW5hdG9yQ29sdW1uKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBuYW1pbmdTdHJhdGVneSB9ID0gdGhpcy5jb25uZWN0aW9uXG5cblxuICAgICAgICBpZiAoZW50aXR5TWV0YWRhdGEudHJlZVR5cGUgPT09IFwibWF0ZXJpYWxpemVkLXBhdGhcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb2x1bW5NZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbGl6ZWRQYXRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IFwidmlydHVhbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBcIm1wYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiAvKnRyZWUuY29sdW1uIHx8ICovIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1pbmdTdHJhdGVneS5tYXRlcmlhbGl6ZWRQYXRoQ29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoZW50aXR5TWV0YWRhdGEudHJlZVR5cGUgPT09IFwibmVzdGVkLXNldFwiKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0IH0gPSBuYW1pbmdTdHJhdGVneS5uZXN0ZWRTZXRDb2x1bW5OYW1lc1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb2x1bW5NZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRTZXRMZWZ0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IFwidmlydHVhbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogLyp0cmVlLmNvbHVtbiB8fCAqLyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbGVmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb2x1bW5NZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRTZXRSaWdodDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBlbnRpdHlNZXRhZGF0YS50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBcInZpcnR1YWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiAvKnRyZWUuY29sdW1uIHx8ICovIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiByaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duUmVsYXRpb25zID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25zKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVsYXRpb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEub3duUmVsYXRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5wcm9wZXJ0eU5hbWUgPT09IGFyZ3MucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSFcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgYXJncy50eXBlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChhcmdzLnR5cGUgYXMgKCkgPT4gYW55KSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcmdzLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudFJlbGF0aW9uLnR5cGUgIT09IHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lID0gT2JqZWN0LmNyZWF0ZShwYXJlbnRSZWxhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lLnR5cGUgPSB0eXBlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xvbmVcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnRSZWxhdGlvblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVsYXRpb25NZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbklkcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9uSWRzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5yZWxhdGlvbklkcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uSWQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25JZC5wcm9wZXJ0eU5hbWUgPT09IGFyZ3MucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICApIVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbklkTWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25Db3VudHMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgIC5maWx0ZXJSZWxhdGlvbkNvdW50cyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEucmVsYXRpb25Db3VudHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbkNvdW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uQ291bnQucHJvcGVydHlOYW1lID09PSBhcmdzLnByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgKSFcblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVsYXRpb25Db3VudE1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkxpc3RlbmVycyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlckxpc3RlbmVycyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFbnRpdHlMaXN0ZW5lck1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5jaGVja3MgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgIC5maWx0ZXJDaGVja3MoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2hlY2tNZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcInBvc3RncmVzXCIpIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmV4Y2x1c2lvbnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyRXhjbHVzaW9ucyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEV4Y2x1c2lvbk1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcImNvY2tyb2FjaGRiXCIpIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkluZGljZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVySW5kaWNlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYXJncykgPT4gIWFyZ3MudW5pcXVlKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbmRleE1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCB1bmlxdWVzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckluZGljZXMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGFyZ3MpID0+IGFyZ3MudW5pcXVlKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmlxdWVNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBhcmdzLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBhcmdzLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogYXJncy5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duVW5pcXVlcy5wdXNoKC4uLnVuaXF1ZXMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckluZGljZXMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbmRleE1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9XG5cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBEcml2ZXJVdGlscy5pc015U1FMRmFtaWx5KHRoaXMuY29ubmVjdGlvbi5kcml2ZXIpIHx8XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJhdXJvcmEtbXlzcWxcIiB8fFxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwic2FwXCIgfHxcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcInNwYW5uZXJcIlxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyVW5pcXVlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEluZGV4TWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogYXJncy50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYXJncy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGFyZ3MuY29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzLnB1c2goLi4uaW5kaWNlcylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyVW5pcXVlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuaXF1ZU1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duVW5pcXVlcy5wdXNoKC4uLnVuaXF1ZXMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGZyb20gdGhlIGdpdmVuIGVtYmVkZGVkIG1ldGFkYXRhIGFyZ3MgcmVhbCBlbWJlZGRlZCBtZXRhZGF0YXMgd2l0aCBpdHMgY29sdW1ucyBhbmQgcmVsYXRpb25zLFxuICAgICAqIGFuZCBkb2VzIHRoZSBzYW1lIGZvciBhbGwgaXRzIHN1Yi1lbWJlZGRlZHMgKGdvZXMgcmVjdXJzaXZlbHkpLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVFbWJlZGRlZHNSZWN1cnNpdmVseShcbiAgICAgICAgZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhLFxuICAgICAgICBlbWJlZGRlZEFyZ3M6IEVtYmVkZGVkTWV0YWRhdGFBcmdzW10sXG4gICAgKTogRW1iZWRkZWRNZXRhZGF0YVtdIHtcbiAgICAgICAgcmV0dXJuIGVtYmVkZGVkQXJncy5tYXAoKGVtYmVkZGVkQXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1iZWRkZWRNZXRhZGF0YSA9IG5ldyBFbWJlZGRlZE1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgYXJnczogZW1iZWRkZWRBcmdzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldHM6IGFueVtdID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgZW1iZWRkZWRNZXRhZGF0YS50eXBlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPyBNZXRhZGF0YVV0aWxzLmdldEluaGVyaXRhbmNlVHJlZShlbWJlZGRlZE1ldGFkYXRhLnR5cGUpXG4gICAgICAgICAgICAgICAgICAgIDogW2VtYmVkZGVkTWV0YWRhdGEudHlwZV0gLy8gdG9kbzogaW1wbGVtZW50IGxhdGVyIGhlcmUgaW5oZXJpdGFuY2UgZm9yIHN0cmluZy10YXJnZXRzXG5cbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEuY29sdW1ucyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJDb2x1bW5zKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEucmVsYXRpb25zID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9ucyh0YXJnZXRzKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEubGlzdGVuZXJzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckxpc3RlbmVycyh0YXJnZXRzKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFbnRpdHlMaXN0ZW5lck1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEuaW5kaWNlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJJbmRpY2VzKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEluZGV4TWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS51bmlxdWVzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlclVuaXF1ZXModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5pcXVlTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5yZWxhdGlvbklkcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJSZWxhdGlvbklkcyh0YXJnZXRzKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbklkTWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLnJlbGF0aW9uQ291bnRzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9uQ291bnRzKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uQ291bnRNZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEuZW1iZWRkZWRzID0gdGhpcy5jcmVhdGVFbWJlZGRlZHNSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmlsdGVyRW1iZWRkZWRzKHRhcmdldHMpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5lbWJlZGRlZHMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoc3ViRW1iZWRkZWQpID0+XG4gICAgICAgICAgICAgICAgICAgIChzdWJFbWJlZGRlZC5wYXJlbnRFbWJlZGRlZE1ldGFkYXRhID0gZW1iZWRkZWRNZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5hbGxFbWJlZGRlZHMucHVzaChlbWJlZGRlZE1ldGFkYXRhKVxuICAgICAgICAgICAgcmV0dXJuIGVtYmVkZGVkTWV0YWRhdGFcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyBhbGwgZW50aXR5IG1ldGFkYXRhJ3MgY29tcHV0ZWQgcHJvcGVydGllcywgYW5kIGFsbCBpdHMgc3ViLW1ldGFkYXRhcyAocmVsYXRpb25zLCBjb2x1bW5zLCBlbWJlZHMsIGV0YykuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YSkge1xuICAgICAgICBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMuZm9yRWFjaCgoZW1iZWRkZWQpID0+XG4gICAgICAgICAgICBlbWJlZGRlZC5idWlsZCh0aGlzLmNvbm5lY3Rpb24pLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmVtYmVkZGVkcy5mb3JFYWNoKChlbWJlZGRlZCkgPT4ge1xuICAgICAgICAgICAgZW1iZWRkZWQuY29sdW1uc0Zyb21UcmVlLmZvckVhY2goKGNvbHVtbikgPT5cbiAgICAgICAgICAgICAgICBjb2x1bW4uYnVpbGQodGhpcy5jb25uZWN0aW9uKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGVtYmVkZGVkLnJlbGF0aW9uc0Zyb21UcmVlLmZvckVhY2goKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5idWlsZCgpKVxuICAgICAgICB9KVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT5cbiAgICAgICAgICAgIGNvbHVtbi5idWlsZCh0aGlzLmNvbm5lY3Rpb24pLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm93blJlbGF0aW9ucy5mb3JFYWNoKChyZWxhdGlvbikgPT4gcmVsYXRpb24uYnVpbGQoKSlcbiAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zID0gZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLnJlZHVjZShcbiAgICAgICAgICAgIChyZWxhdGlvbnMsIGVtYmVkZGVkKSA9PlxuICAgICAgICAgICAgICAgIHJlbGF0aW9ucy5jb25jYXQoZW1iZWRkZWQucmVsYXRpb25zRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duUmVsYXRpb25zLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmVhZ2VyUmVsYXRpb25zID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNFYWdlcixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5sYXp5UmVsYXRpb25zID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNMYXp5LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm9uZVRvT25lUmVsYXRpb25zID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNPbmVUb09uZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vbmVUb01hbnlSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc09uZVRvTWFueSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5tYW55VG9PbmVSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc01hbnlUb09uZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5tYW55VG9NYW55UmVsYXRpb25zID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNNYW55VG9NYW55LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm93bmVyT25lVG9PbmVSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc09uZVRvT25lT3duZXIsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duZXJNYW55VG9NYW55UmVsYXRpb25zID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc01hbnlUb01hbnlPd25lcixcbiAgICAgICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEudHJlZVBhcmVudFJlbGF0aW9uID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbmQoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzVHJlZVBhcmVudCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS50cmVlQ2hpbGRyZW5SZWxhdGlvbiA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maW5kKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc1RyZWVDaGlsZHJlbixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zID0gZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLnJlZHVjZShcbiAgICAgICAgICAgIChjb2x1bW5zLCBlbWJlZGRlZCkgPT4gY29sdW1ucy5jb25jYXQoZW1iZWRkZWQuY29sdW1uc0Zyb21UcmVlKSxcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLnJlZHVjZShcbiAgICAgICAgICAgIChsaXN0ZW5lcnMsIGVtYmVkZGVkKSA9PlxuICAgICAgICAgICAgICAgIGxpc3RlbmVycy5jb25jYXQoZW1iZWRkZWQubGlzdGVuZXJzRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duTGlzdGVuZXJzLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVyTG9hZExpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5BRlRFUl9MT0FELFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVySW5zZXJ0TGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgIChsaXN0ZW5lcikgPT4gbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkFGVEVSX0lOU0VSVCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5hZnRlclVwZGF0ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5BRlRFUl9VUERBVEUsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJSZW1vdmVMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQUZURVJfUkVNT1ZFLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVyU29mdFJlbW92ZUxpc3RlbmVycyA9XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChsaXN0ZW5lcikgPT5cbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkFGVEVSX1NPRlRfUkVNT1ZFLFxuICAgICAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5hZnRlclJlY292ZXJMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQUZURVJfUkVDT1ZFUixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5iZWZvcmVJbnNlcnRMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQkVGT1JFX0lOU0VSVCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5iZWZvcmVVcGRhdGVMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQkVGT1JFX1VQREFURSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5iZWZvcmVSZW1vdmVMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQkVGT1JFX1JFTU9WRSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5iZWZvcmVTb2Z0UmVtb3ZlTGlzdGVuZXJzID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGxpc3RlbmVyKSA9PlxuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQkVGT1JFX1NPRlRfUkVNT1ZFLFxuICAgICAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5iZWZvcmVSZWNvdmVyTGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgIChsaXN0ZW5lcikgPT4gbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkJFRk9SRV9SRUNPVkVSLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmluZGljZXMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKGluZGljZXMsIGVtYmVkZGVkKSA9PiBpbmRpY2VzLmNvbmNhdChlbWJlZGRlZC5pbmRpY2VzRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcyxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS51bmlxdWVzID0gZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLnJlZHVjZShcbiAgICAgICAgICAgICh1bmlxdWVzLCBlbWJlZGRlZCkgPT4gdW5pcXVlcy5jb25jYXQoZW1iZWRkZWQudW5pcXVlc0Zyb21UcmVlKSxcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93blVuaXF1ZXMsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEucHJpbWFyeUNvbHVtbnMgPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc1ByaW1hcnksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubm9uVmlydHVhbENvbHVtbnMgPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIChjb2x1bW4pID0+ICFjb2x1bW4uaXNWaXJ0dWFsLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFuY2VzdG9yQ29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmNsb3N1cmVUeXBlID09PSBcImFuY2VzdG9yXCIsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZGVzY2VuZGFudENvbHVtbnMgPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5jbG9zdXJlVHlwZSA9PT0gXCJkZXNjZW5kYW50XCIsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuaGFzTXVsdGlwbGVQcmltYXJ5S2V5cyA9XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5wcmltYXJ5Q29sdW1ucy5sZW5ndGggPiAxXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMgPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc0dlbmVyYXRlZCB8fCBjb2x1bW4uaXNPYmplY3RJZCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5oYXNVVUlER2VuZXJhdGVkQ29sdW1ucyA9XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoY29sdW1uKSA9PlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uaXNHZW5lcmF0ZWQgfHwgY29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJ1dWlkXCIsXG4gICAgICAgICAgICApLmxlbmd0aCA+IDBcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuY3JlYXRlRGF0ZUNvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc0NyZWF0ZURhdGUsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEudXBkYXRlRGF0ZUNvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc1VwZGF0ZURhdGUsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZGVsZXRlRGF0ZUNvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc0RlbGV0ZURhdGUsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEudmVyc2lvbkNvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc1ZlcnNpb24sXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZGlzY3JpbWluYXRvckNvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc0Rpc2NyaW1pbmF0b3IsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEudHJlZUxldmVsQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzVHJlZUxldmVsLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm5lc3RlZFNldExlZnRDb2x1bW4gPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNOZXN0ZWRTZXRMZWZ0LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm5lc3RlZFNldFJpZ2h0Q29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzTmVzdGVkU2V0UmlnaHQsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubWF0ZXJpYWxpemVkUGF0aENvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc01hdGVyaWFsaXplZFBhdGgsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub2JqZWN0SWRDb2x1bW4gPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNPYmplY3RJZCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5mb3JlaWduS2V5cy5mb3JFYWNoKChmb3JlaWduS2V5KSA9PlxuICAgICAgICAgICAgZm9yZWlnbktleS5idWlsZCh0aGlzLmNvbm5lY3Rpb24ubmFtaW5nU3RyYXRlZ3kpLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnByb3BlcnRpZXNNYXAgPSBlbnRpdHlNZXRhZGF0YS5jcmVhdGVQcm9wZXJ0aWVzTWFwKClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25JZHMuZm9yRWFjaCgocmVsYXRpb25JZCkgPT4gcmVsYXRpb25JZC5idWlsZCgpKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbkNvdW50cy5mb3JFYWNoKChyZWxhdGlvbkNvdW50KSA9PlxuICAgICAgICAgICAgcmVsYXRpb25Db3VudC5idWlsZCgpLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmVtYmVkZGVkcy5mb3JFYWNoKChlbWJlZGRlZCkgPT4ge1xuICAgICAgICAgICAgZW1iZWRkZWQucmVsYXRpb25JZHNGcm9tVHJlZS5mb3JFYWNoKChyZWxhdGlvbklkKSA9PlxuICAgICAgICAgICAgICAgIHJlbGF0aW9uSWQuYnVpbGQoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGVtYmVkZGVkLnJlbGF0aW9uQ291bnRzRnJvbVRyZWUuZm9yRWFjaCgocmVsYXRpb25Db3VudCkgPT5cbiAgICAgICAgICAgICAgICByZWxhdGlvbkNvdW50LmJ1aWxkKCksXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgZW50aXR5IG1ldGFkYXRhJ3MgcmVsYXRpb25zIGludmVyc2Ugc2lkZSBwcm9wZXJ0aWVzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb21wdXRlSW52ZXJzZVByb3BlcnRpZXMoXG4gICAgICAgIGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgZW50aXR5TWV0YWRhdGFzOiBFbnRpdHlNZXRhZGF0YVtdLFxuICAgICkge1xuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcblxuICAgICAgICAgICAgY29uc3QgaW52ZXJzZUVudGl0eU1ldGFkYXRhID0gZW50aXR5TWV0YWRhdGFzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG0pID0+XG4gICAgICAgICAgICAgICAgICAgIG0udGFyZ2V0ID09PSByZWxhdGlvbi50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICh0eXBlb2YgcmVsYXRpb24udHlwZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKG0udGFyZ2V0TmFtZSA9PT0gcmVsYXRpb24udHlwZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZ2l2ZW5UYWJsZU5hbWUgPT09IHJlbGF0aW9uLnR5cGUpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICghaW52ZXJzZUVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiRW50aXR5IG1ldGFkYXRhIGZvciBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5uYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiI1wiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnByb3BlcnR5UGF0aCArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiB3YXMgbm90IGZvdW5kLiBDaGVjayBpZiB5b3Ugc3BlY2lmaWVkIGEgY29ycmVjdCBlbnRpdHkgb2JqZWN0IGFuZCBpZiBpdCdzIGNvbm5lY3RlZCBpbiB0aGUgY29ubmVjdGlvbiBvcHRpb25zLlwiLFxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgcmVsYXRpb24uaW52ZXJzZUVudGl0eU1ldGFkYXRhID0gaW52ZXJzZUVudGl0eU1ldGFkYXRhXG4gICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlU2lkZVByb3BlcnR5UGF0aCA9XG4gICAgICAgICAgICAgICAgcmVsYXRpb24uYnVpbGRJbnZlcnNlU2lkZVByb3BlcnR5UGF0aCgpXG5cblxuICAgICAgICAgICAgcmVsYXRpb24uaW52ZXJzZVJlbGF0aW9uID0gaW52ZXJzZUVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChmb3VuZFJlbGF0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgICBmb3VuZFJlbGF0aW9uLnByb3BlcnR5UGF0aCA9PT1cbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uaW52ZXJzZVNpZGVQcm9wZXJ0eVBhdGgsXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBpbmRpY2VzIGZvciB0aGUgdGFibGUgb2Ygc2luZ2xlIHRhYmxlIGluaGVyaXRhbmNlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVLZXlzRm9yVGFibGVJbmhlcml0YW5jZShlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEpIHtcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuaW5kaWNlcy5wdXNoKFxuICAgICAgICAgICAgbmV3IEluZGV4TWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBjb2x1bW5zOiBbZW50aXR5TWV0YWRhdGEuZGlzY3JpbWluYXRvckNvbHVtbiFdLFxuICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBlbnRpdHlNZXRhZGF0YS50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIHVuaXF1ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL21ldGFkYXRhLWJ1aWxkZXIvRW50aXR5TWV0YWRhdGFCdWlsZGVyLnRzIl19