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,770 +0,0 @@
1
- import { Table } from "./table/Table";
2
- import { TableColumn } from "./table/TableColumn";
3
- import { TableForeignKey } from "./table/TableForeignKey";
4
- import { TableIndex } from "./table/TableIndex";
5
- import { TableUtils } from "./util/TableUtils";
6
- import { TableUnique } from "./table/TableUnique";
7
- import { TableCheck } from "./table/TableCheck";
8
- import { TableExclusion } from "./table/TableExclusion";
9
- import { View } from "./view/View";
10
- import { ViewUtils } from "./util/ViewUtils";
11
- import { DriverUtils } from "../driver/DriverUtils";
12
- /**
13
- * Creates complete tables schemas in the database based on the entity metadatas.
14
- *
15
- * Steps how schema is being built:
16
- * 1. load list of all tables with complete column and keys information from the db
17
- * 2. drop all (old) foreign keys that exist in the table, but does not exist in the metadata
18
- * 3. create new tables that does not exist in the db, but exist in the metadata
19
- * 4. drop all columns exist (left old) in the db table, but does not exist in the metadata
20
- * 5. add columns from metadata which does not exist in the table
21
- * 6. update all exist columns which metadata has changed
22
- * 7. update primary keys - update old and create new primary key from changed columns
23
- * 8. create foreign keys which does not exist in the table yet
24
- * 9. create indices which are missing in db yet, and drops indices which exist in the db, but does not exist in the metadata anymore
25
- */
26
- export class RdbmsSchemaBuilder {
27
- constructor(connection) {
28
- this.connection = connection;
29
- this["@instanceof"] = Symbol.for("RdbmsSchemaBuilder");
30
- }
31
- /**
32
- * Creates complete schemas for the given entity metadatas.
33
- */
34
- async build() {
35
- this.queryRunner = this.connection.createQueryRunner();
36
- this.currentDatabase = this.connection.driver.database;
37
- this.currentSchema = this.connection.driver.schema;
38
- const isUsingTransactions = !(this.connection.driver.options.type === "cockroachdb") &&
39
- !(this.connection.driver.options.type === "spanner") &&
40
- this.connection.options.migrationsTransactionMode !== "none";
41
- await this.queryRunner.beforeMigration();
42
- if (isUsingTransactions) {
43
- await this.queryRunner.startTransaction();
44
- }
45
- try {
46
- await this.createMetadataTableIfNecessary(this.queryRunner);
47
- const tablePaths = this.entityToSyncMetadatas.map((metadata) => this.getTablePath(metadata));
48
- await this.queryRunner.getTables(tablePaths);
49
- await this.queryRunner.getViews([]);
50
- await this.executeSchemaSyncOperationsInProperOrder();
51
- if (this.connection.queryResultCache)
52
- await this.connection.queryResultCache.synchronize(this.queryRunner);
53
- if (isUsingTransactions) {
54
- await this.queryRunner.commitTransaction();
55
- }
56
- }
57
- catch (error) {
58
- try {
59
- if (isUsingTransactions) {
60
- await this.queryRunner.rollbackTransaction();
61
- }
62
- }
63
- catch (rollbackError) { }
64
- throw error;
65
- }
66
- finally {
67
- await this.queryRunner.afterMigration();
68
- await this.queryRunner.release();
69
- }
70
- }
71
- /**
72
- * Create the typeorm_metadata table if necessary.
73
- */
74
- async createMetadataTableIfNecessary(queryRunner) {
75
- if (this.viewEntityToSyncMetadatas.length > 0 ||
76
- this.hasGeneratedColumns()) {
77
- await this.createTypeormMetadataTable(queryRunner);
78
- }
79
- }
80
- /**
81
- * Returns sql queries to be executed by schema builder.
82
- */
83
- async log() {
84
- this.queryRunner = this.connection.createQueryRunner();
85
- try {
86
- const tablePaths = this.entityToSyncMetadatas.map((metadata) => this.getTablePath(metadata));
87
- await this.queryRunner.getTables(tablePaths);
88
- await this.queryRunner.getViews([]);
89
- this.queryRunner.enableSqlMemory();
90
- await this.executeSchemaSyncOperationsInProperOrder();
91
- if (this.connection.queryResultCache)
92
- await this.connection.queryResultCache.synchronize(this.queryRunner);
93
- return this.queryRunner.getMemorySql();
94
- }
95
- finally {
96
- this.queryRunner.disableSqlMemory();
97
- await this.queryRunner.release();
98
- }
99
- }
100
- /**
101
- * Returns only entities that should be synced in the database.
102
- */
103
- get entityToSyncMetadatas() {
104
- return this.connection.entityMetadatas.filter((metadata) => metadata.synchronize &&
105
- metadata.tableType !== "entity-child" &&
106
- metadata.tableType !== "view");
107
- }
108
- /**
109
- * Returns only entities that should be synced in the database.
110
- */
111
- get viewEntityToSyncMetadatas() {
112
- return (this.connection.entityMetadatas
113
- .filter((metadata) => metadata.tableType === "view" && metadata.synchronize)
114
- .sort(ViewUtils.viewMetadataCmp));
115
- }
116
- /**
117
- * Checks if there are at least one generated column.
118
- */
119
- hasGeneratedColumns() {
120
- return this.connection.entityMetadatas.some((entityMetadata) => {
121
- return entityMetadata.columns.some((column) => column.generatedType);
122
- });
123
- }
124
- /**
125
- * Executes schema sync operations in a proper order.
126
- * Order of operations matter here.
127
- */
128
- async executeSchemaSyncOperationsInProperOrder() {
129
- await this.dropOldViews();
130
- await this.dropOldForeignKeys();
131
- await this.dropOldIndices();
132
- await this.dropOldChecks();
133
- await this.dropOldExclusions();
134
- await this.dropCompositeUniqueConstraints();
135
- await this.renameColumns();
136
- await this.createNewTables();
137
- await this.dropRemovedColumns();
138
- await this.addNewColumns();
139
- await this.updatePrimaryKeys();
140
- await this.updateExistColumns();
141
- await this.createNewIndices();
142
- await this.createNewChecks();
143
- await this.createNewExclusions();
144
- await this.createCompositeUniqueConstraints();
145
- await this.createForeignKeys();
146
- await this.createViews();
147
- }
148
- getTablePath(target) {
149
- const parsed = this.connection.driver.parseTableName(target);
150
- return this.connection.driver.buildTableName(parsed.tableName, parsed.schema || this.currentSchema, parsed.database || this.currentDatabase);
151
- }
152
- /**
153
- * Drops all (old) foreign keys that exist in the tables, but do not exist in the entity metadata.
154
- */
155
- async dropOldForeignKeys() {
156
- for (const metadata of this.entityToSyncMetadatas) {
157
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
158
- if (!table)
159
- continue;
160
- const tableForeignKeysToDrop = table.foreignKeys.filter((tableForeignKey) => {
161
- const metadataFK = metadata.foreignKeys.find((metadataForeignKey) => tableForeignKey.name === metadataForeignKey.name &&
162
- this.getTablePath(tableForeignKey) ===
163
- this.getTablePath(metadataForeignKey.referencedEntityMetadata));
164
- return (!metadataFK ||
165
- (metadataFK.onDelete &&
166
- metadataFK.onDelete !== tableForeignKey.onDelete) ||
167
- (metadataFK.onUpdate &&
168
- metadataFK.onUpdate !== tableForeignKey.onUpdate));
169
- });
170
- if (tableForeignKeysToDrop.length === 0)
171
- continue;
172
- this.connection.logger.logSchemaBuild(`dropping old foreign keys of ${table.name}: ${tableForeignKeysToDrop
173
- .map((dbForeignKey) => dbForeignKey.name)
174
- .join(", ")}`);
175
- await this.queryRunner.dropForeignKeys(table, tableForeignKeysToDrop);
176
- }
177
- }
178
- /**
179
- * Rename tables
180
- */
181
- async renameTables() {
182
- }
183
- /**
184
- * Renames columns.
185
- * Works if only one column per table was changed.
186
- * Changes only column name. If something besides name was changed, these changes will be ignored.
187
- */
188
- async renameColumns() {
189
- for (const metadata of this.entityToSyncMetadatas) {
190
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
191
- if (!table)
192
- continue;
193
- if (metadata.columns.length !== table.columns.length)
194
- continue;
195
- const renamedMetadataColumns = metadata.columns
196
- .filter((c) => !c.isVirtualProperty)
197
- .filter((column) => {
198
- return !table.columns.find((tableColumn) => {
199
- return (tableColumn.name === column.databaseName &&
200
- tableColumn.type ===
201
- this.connection.driver.normalizeType(column) &&
202
- tableColumn.isNullable === column.isNullable &&
203
- tableColumn.isUnique ===
204
- this.connection.driver.normalizeIsUnique(column));
205
- });
206
- });
207
- if (renamedMetadataColumns.length === 0 ||
208
- renamedMetadataColumns.length > 1)
209
- continue;
210
- const renamedTableColumns = table.columns.filter((tableColumn) => {
211
- return !metadata.columns.find((column) => {
212
- return (!column.isVirtualProperty &&
213
- column.databaseName === tableColumn.name &&
214
- this.connection.driver.normalizeType(column) ===
215
- tableColumn.type &&
216
- column.isNullable === tableColumn.isNullable &&
217
- this.connection.driver.normalizeIsUnique(column) ===
218
- tableColumn.isUnique);
219
- });
220
- });
221
- if (renamedTableColumns.length === 0 ||
222
- renamedTableColumns.length > 1)
223
- continue;
224
- const renamedColumn = renamedTableColumns[0].clone();
225
- renamedColumn.name = renamedMetadataColumns[0].databaseName;
226
- this.connection.logger.logSchemaBuild(`renaming column "${renamedTableColumns[0].name}" in to "${renamedColumn.name}"`);
227
- await this.queryRunner.renameColumn(table, renamedTableColumns[0], renamedColumn);
228
- }
229
- }
230
- async dropOldIndices() {
231
- for (const metadata of this.entityToSyncMetadatas) {
232
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
233
- if (!table)
234
- continue;
235
- const dropQueries = table.indices
236
- .filter((tableIndex) => {
237
- const indexMetadata = metadata.indices.find((index) => index.name === tableIndex.name);
238
- if (indexMetadata) {
239
- if (indexMetadata.synchronize === false)
240
- return false;
241
- if (indexMetadata.isUnique !== tableIndex.isUnique)
242
- return true;
243
- if (indexMetadata.isSpatial !== tableIndex.isSpatial)
244
- return true;
245
- if (this.connection.driver.isFullTextColumnTypeSupported() &&
246
- indexMetadata.isFulltext !== tableIndex.isFulltext)
247
- return true;
248
- if (indexMetadata.columns.length !==
249
- tableIndex.columnNames.length)
250
- return true;
251
- return !indexMetadata.columns.every((column) => tableIndex.columnNames.indexOf(column.databaseName) !== -1);
252
- }
253
- return true;
254
- })
255
- .map(async (tableIndex) => {
256
- this.connection.logger.logSchemaBuild(`dropping an index: "${tableIndex.name}" from table ${table.name}`);
257
- await this.queryRunner.dropIndex(table, tableIndex);
258
- });
259
- await Promise.all(dropQueries);
260
- }
261
- }
262
- async dropOldChecks() {
263
- if (DriverUtils.isMySQLFamily(this.connection.driver) ||
264
- this.connection.driver.options.type === "aurora-mysql")
265
- return;
266
- for (const metadata of this.entityToSyncMetadatas) {
267
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
268
- if (!table)
269
- continue;
270
- const oldChecks = table.checks.filter((tableCheck) => {
271
- return !metadata.checks.find((checkMetadata) => checkMetadata.name === tableCheck.name);
272
- });
273
- if (oldChecks.length === 0)
274
- continue;
275
- this.connection.logger.logSchemaBuild(`dropping old check constraint: ${oldChecks
276
- .map((check) => `"${check.name}"`)
277
- .join(", ")} from table "${table.name}"`);
278
- await this.queryRunner.dropCheckConstraints(table, oldChecks);
279
- }
280
- }
281
- async dropCompositeUniqueConstraints() {
282
- for (const metadata of this.entityToSyncMetadatas) {
283
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
284
- if (!table)
285
- continue;
286
- const compositeUniques = table.uniques.filter((tableUnique) => {
287
- return (tableUnique.columnNames.length > 1 &&
288
- !metadata.uniques.find((uniqueMetadata) => uniqueMetadata.name === tableUnique.name));
289
- });
290
- if (compositeUniques.length === 0)
291
- continue;
292
- this.connection.logger.logSchemaBuild(`dropping old unique constraint: ${compositeUniques
293
- .map((unique) => `"${unique.name}"`)
294
- .join(", ")} from table "${table.name}"`);
295
- await this.queryRunner.dropUniqueConstraints(table, compositeUniques);
296
- }
297
- }
298
- async dropOldExclusions() {
299
- if (!(this.connection.driver.options.type === "postgres"))
300
- return;
301
- for (const metadata of this.entityToSyncMetadatas) {
302
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
303
- if (!table)
304
- continue;
305
- const oldExclusions = table.exclusions.filter((tableExclusion) => {
306
- return !metadata.exclusions.find((exclusionMetadata) => exclusionMetadata.name === tableExclusion.name);
307
- });
308
- if (oldExclusions.length === 0)
309
- continue;
310
- this.connection.logger.logSchemaBuild(`dropping old exclusion constraint: ${oldExclusions
311
- .map((exclusion) => `"${exclusion.name}"`)
312
- .join(", ")} from table "${table.name}"`);
313
- await this.queryRunner.dropExclusionConstraints(table, oldExclusions);
314
- }
315
- }
316
- /**
317
- * Creates tables that do not exist in the database yet.
318
- * New tables are created without foreign and primary keys.
319
- * Primary key only can be created in conclusion with auto generated column.
320
- */
321
- async createNewTables() {
322
- for (const metadata of this.entityToSyncMetadatas) {
323
- const existTable = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
324
- if (existTable)
325
- continue;
326
- this.connection.logger.logSchemaBuild(`creating a new table: ${this.getTablePath(metadata)}`);
327
- const table = Table.create(metadata, this.connection.driver);
328
- await this.queryRunner.createTable(table, false, false);
329
- this.queryRunner.loadedTables.push(table);
330
- }
331
- }
332
- async createViews() {
333
- for (const metadata of this.viewEntityToSyncMetadatas) {
334
- const existView = this.queryRunner.loadedViews.find((view) => {
335
- const viewExpression = typeof view.expression === "string"
336
- ? view.expression.trim()
337
- : view.expression(this.connection).getQuery();
338
- const metadataExpression = typeof metadata.expression === "string"
339
- ? metadata.expression.trim()
340
- : metadata.expression(this.connection).getQuery();
341
- return (this.getTablePath(view) === this.getTablePath(metadata) &&
342
- viewExpression === metadataExpression);
343
- });
344
- if (existView)
345
- continue;
346
- this.connection.logger.logSchemaBuild(`creating a new view: ${this.getTablePath(metadata)}`);
347
- const view = View.create(metadata, this.connection.driver);
348
- await this.queryRunner.createView(view, true);
349
- this.queryRunner.loadedViews.push(view);
350
- }
351
- }
352
- async dropOldViews() {
353
- const droppedViews = [];
354
- const viewEntityToSyncMetadatas = this.viewEntityToSyncMetadatas;
355
- const viewToMetadata = new Map();
356
- for (const view of this.queryRunner.loadedViews) {
357
- const viewMetadata = viewEntityToSyncMetadatas.find((metadata) => {
358
- return this.getTablePath(view) === this.getTablePath(metadata);
359
- });
360
- if (viewMetadata) {
361
- viewToMetadata.set(view, viewMetadata);
362
- }
363
- }
364
- for (const view of this.queryRunner.loadedViews) {
365
- const viewMetadata = viewToMetadata.get(view);
366
- if (!viewMetadata) {
367
- continue;
368
- }
369
- const viewExpression = typeof view.expression === "string"
370
- ? view.expression.trim()
371
- : view.expression(this.connection).getQuery();
372
- const metadataExpression = typeof viewMetadata.expression === "string"
373
- ? viewMetadata.expression.trim()
374
- : viewMetadata.expression(this.connection).getQuery();
375
- if (viewExpression === metadataExpression)
376
- continue;
377
- this.connection.logger.logSchemaBuild(`dropping an old view: ${view.name}`);
378
- droppedViews.push(view);
379
- }
380
- const viewDependencyChain = (view) => {
381
- const viewMetadata = viewToMetadata.get(view);
382
- let viewWithDependencies = [view];
383
- if (!viewMetadata) {
384
- return viewWithDependencies;
385
- }
386
- for (const [currentView, currentMetadata,] of viewToMetadata.entries()) {
387
- if (currentView === view) {
388
- continue;
389
- }
390
- if (currentMetadata.dependsOn &&
391
- (currentMetadata.dependsOn.has(viewMetadata.target) ||
392
- currentMetadata.dependsOn.has(viewMetadata.name))) {
393
- viewWithDependencies = viewWithDependencies.concat(viewDependencyChain(currentView));
394
- }
395
- }
396
- return viewWithDependencies;
397
- };
398
- const droppedViewsWithDependencies = new Set(droppedViews
399
- .map((view) => viewDependencyChain(view))
400
- .reduce((all, segment) => {
401
- return all.concat(segment);
402
- }, [])
403
- .sort((a, b) => {
404
- return ViewUtils.viewMetadataCmp(viewToMetadata.get(a), viewToMetadata.get(b));
405
- })
406
- .reverse());
407
- for (const view of droppedViewsWithDependencies) {
408
- await this.queryRunner.dropView(view);
409
- }
410
- this.queryRunner.loadedViews = this.queryRunner.loadedViews.filter((view) => !droppedViewsWithDependencies.has(view));
411
- }
412
- /**
413
- * Drops all columns that exist in the table, but does not exist in the metadata (left old).
414
- * We drop their keys too, since it should be safe.
415
- */
416
- async dropRemovedColumns() {
417
- for (const metadata of this.entityToSyncMetadatas) {
418
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
419
- if (!table)
420
- continue;
421
- const droppedTableColumns = table.columns.filter((tableColumn) => {
422
- return !metadata.columns.find((columnMetadata) => columnMetadata.isVirtualProperty ||
423
- columnMetadata.databaseName === tableColumn.name);
424
- });
425
- if (droppedTableColumns.length === 0)
426
- continue;
427
- this.connection.logger.logSchemaBuild(`columns dropped in ${table.name}: ` +
428
- droppedTableColumns.map((column) => column.name).join(", "));
429
- await this.queryRunner.dropColumns(table, droppedTableColumns);
430
- }
431
- }
432
- /**
433
- * Adds columns from metadata which does not exist in the table.
434
- * Columns are created without keys.
435
- */
436
- async addNewColumns() {
437
- for (const metadata of this.entityToSyncMetadatas) {
438
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
439
- if (!table)
440
- continue;
441
- const newColumnMetadatas = metadata.columns.filter((columnMetadata) => {
442
- return (!columnMetadata.isVirtualProperty &&
443
- !table.columns.find((tableColumn) => tableColumn.name ===
444
- columnMetadata.databaseName));
445
- });
446
- if (newColumnMetadatas.length === 0)
447
- continue;
448
- const newTableColumnOptions = this.metadataColumnsToTableColumnOptions(newColumnMetadatas);
449
- const newTableColumns = newTableColumnOptions.map((option) => new TableColumn(option));
450
- if (newTableColumns.length === 0)
451
- continue;
452
- this.connection.logger.logSchemaBuild(`new columns added: ` +
453
- newColumnMetadatas
454
- .map((column) => column.databaseName)
455
- .join(", "));
456
- await this.queryRunner.addColumns(table, newTableColumns);
457
- }
458
- }
459
- /**
460
- * Updates composite primary keys.
461
- */
462
- async updatePrimaryKeys() {
463
- for (const metadata of this.entityToSyncMetadatas) {
464
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
465
- if (!table)
466
- continue;
467
- const primaryMetadataColumns = metadata.columns.filter((column) => column.isPrimary);
468
- const primaryTableColumns = table.columns.filter((column) => column.isPrimary);
469
- if (primaryTableColumns.length !== primaryMetadataColumns.length &&
470
- primaryMetadataColumns.length > 1) {
471
- const changedPrimaryColumns = primaryMetadataColumns.map((primaryMetadataColumn) => {
472
- return new TableColumn(TableUtils.createTableColumnOptions(primaryMetadataColumn, this.connection.driver));
473
- });
474
- await this.queryRunner.updatePrimaryKeys(table, changedPrimaryColumns);
475
- }
476
- }
477
- }
478
- /**
479
- * Update all exist columns which metadata has changed.
480
- * Still don't create keys. Also we don't touch foreign keys of the changed columns.
481
- */
482
- async updateExistColumns() {
483
- for (const metadata of this.entityToSyncMetadatas) {
484
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
485
- if (!table)
486
- continue;
487
- const changedColumns = this.connection.driver.findChangedColumns(table.columns, metadata.columns);
488
- if (changedColumns.length === 0)
489
- continue;
490
- for (const changedColumn of changedColumns) {
491
- await this.dropColumnReferencedForeignKeys(this.getTablePath(metadata), changedColumn.databaseName);
492
- }
493
- for (const changedColumn of changedColumns) {
494
- await this.dropColumnCompositeIndices(this.getTablePath(metadata), changedColumn.databaseName);
495
- }
496
- if (!(DriverUtils.isMySQLFamily(this.connection.driver) ||
497
- this.connection.driver.options.type === "aurora-mysql" ||
498
- this.connection.driver.options.type === "spanner")) {
499
- for (const changedColumn of changedColumns) {
500
- await this.dropColumnCompositeUniques(this.getTablePath(metadata), changedColumn.databaseName);
501
- }
502
- }
503
- const newAndOldTableColumns = changedColumns.map((changedColumn) => {
504
- const oldTableColumn = table.columns.find((column) => column.name === changedColumn.databaseName);
505
- const newTableColumnOptions = TableUtils.createTableColumnOptions(changedColumn, this.connection.driver);
506
- const newTableColumn = new TableColumn(newTableColumnOptions);
507
- return {
508
- oldColumn: oldTableColumn,
509
- newColumn: newTableColumn,
510
- };
511
- });
512
- if (newAndOldTableColumns.length === 0)
513
- continue;
514
- this.connection.logger.logSchemaBuild(`columns changed in "${table.name}". updating: ` +
515
- changedColumns
516
- .map((column) => column.databaseName)
517
- .join(", "));
518
- await this.queryRunner.changeColumns(table, newAndOldTableColumns);
519
- }
520
- }
521
- /**
522
- * Creates composite indices which are missing in db yet.
523
- */
524
- async createNewIndices() {
525
- for (const metadata of this.entityToSyncMetadatas) {
526
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
527
- if (!table)
528
- continue;
529
- const newIndices = metadata.indices
530
- .filter((indexMetadata) => !table.indices.find((tableIndex) => tableIndex.name === indexMetadata.name) && indexMetadata.synchronize === true)
531
- .map((indexMetadata) => TableIndex.create(indexMetadata));
532
- if (newIndices.length === 0)
533
- continue;
534
- this.connection.logger.logSchemaBuild(`adding new indices ${newIndices
535
- .map((index) => `"${index.name}"`)
536
- .join(", ")} in table "${table.name}"`);
537
- await this.queryRunner.createIndices(table, newIndices);
538
- }
539
- }
540
- async createNewChecks() {
541
- if (DriverUtils.isMySQLFamily(this.connection.driver) ||
542
- this.connection.driver.options.type === "aurora-mysql")
543
- return;
544
- for (const metadata of this.entityToSyncMetadatas) {
545
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
546
- if (!table)
547
- continue;
548
- const newChecks = metadata.checks
549
- .filter((checkMetadata) => !table.checks.find((tableCheck) => tableCheck.name === checkMetadata.name))
550
- .map((checkMetadata) => TableCheck.create(checkMetadata));
551
- if (newChecks.length === 0)
552
- continue;
553
- this.connection.logger.logSchemaBuild(`adding new check constraints: ${newChecks
554
- .map((index) => `"${index.name}"`)
555
- .join(", ")} in table "${table.name}"`);
556
- await this.queryRunner.createCheckConstraints(table, newChecks);
557
- }
558
- }
559
- /**
560
- * Creates composite uniques which are missing in db yet.
561
- */
562
- async createCompositeUniqueConstraints() {
563
- for (const metadata of this.entityToSyncMetadatas) {
564
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
565
- if (!table)
566
- continue;
567
- const compositeUniques = metadata.uniques
568
- .filter((uniqueMetadata) => uniqueMetadata.columns.length > 1 &&
569
- !table.uniques.find((tableUnique) => tableUnique.name === uniqueMetadata.name))
570
- .map((uniqueMetadata) => TableUnique.create(uniqueMetadata));
571
- if (compositeUniques.length === 0)
572
- continue;
573
- this.connection.logger.logSchemaBuild(`adding new unique constraints: ${compositeUniques
574
- .map((unique) => `"${unique.name}"`)
575
- .join(", ")} in table "${table.name}"`);
576
- await this.queryRunner.createUniqueConstraints(table, compositeUniques);
577
- }
578
- }
579
- /**
580
- * Creates exclusions which are missing in db yet.
581
- */
582
- async createNewExclusions() {
583
- if (!(this.connection.driver.options.type === "postgres"))
584
- return;
585
- for (const metadata of this.entityToSyncMetadatas) {
586
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
587
- if (!table)
588
- continue;
589
- const newExclusions = metadata.exclusions
590
- .filter((exclusionMetadata) => !table.exclusions.find((tableExclusion) => tableExclusion.name === exclusionMetadata.name))
591
- .map((exclusionMetadata) => TableExclusion.create(exclusionMetadata));
592
- if (newExclusions.length === 0)
593
- continue;
594
- this.connection.logger.logSchemaBuild(`adding new exclusion constraints: ${newExclusions
595
- .map((exclusion) => `"${exclusion.name}"`)
596
- .join(", ")} in table "${table.name}"`);
597
- await this.queryRunner.createExclusionConstraints(table, newExclusions);
598
- }
599
- }
600
- /**
601
- * Creates foreign keys which does not exist in the table yet.
602
- */
603
- async createForeignKeys() {
604
- for (const metadata of this.entityToSyncMetadatas) {
605
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === this.getTablePath(metadata));
606
- if (!table)
607
- continue;
608
- const newKeys = metadata.foreignKeys.filter((foreignKey) => {
609
- return !table.foreignKeys.find((dbForeignKey) => dbForeignKey.name === foreignKey.name &&
610
- this.getTablePath(dbForeignKey) ===
611
- this.getTablePath(foreignKey.referencedEntityMetadata));
612
- });
613
- if (newKeys.length === 0)
614
- continue;
615
- const dbForeignKeys = newKeys.map((foreignKeyMetadata) => TableForeignKey.create(foreignKeyMetadata, this.connection.driver));
616
- this.connection.logger.logSchemaBuild(`creating a foreign keys: ${newKeys
617
- .map((key) => key.name)
618
- .join(", ")} on table "${table.name}"`);
619
- await this.queryRunner.createForeignKeys(table, dbForeignKeys);
620
- }
621
- }
622
- /**
623
- * Drops all foreign keys where given column of the given table is being used.
624
- */
625
- async dropColumnReferencedForeignKeys(tablePath, columnName) {
626
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === tablePath);
627
- if (!table)
628
- return;
629
- const tablesWithFK = [];
630
- const columnForeignKey = table.foreignKeys.find((foreignKey) => foreignKey.columnNames.indexOf(columnName) !== -1);
631
- if (columnForeignKey) {
632
- const clonedTable = table.clone();
633
- clonedTable.foreignKeys = [columnForeignKey];
634
- tablesWithFK.push(clonedTable);
635
- table.removeForeignKey(columnForeignKey);
636
- }
637
- for (const loadedTable of this.queryRunner.loadedTables) {
638
- const dependForeignKeys = loadedTable.foreignKeys.filter((foreignKey) => {
639
- return (this.getTablePath(foreignKey) === tablePath &&
640
- foreignKey.referencedColumnNames.indexOf(columnName) !==
641
- -1);
642
- });
643
- if (dependForeignKeys.length > 0) {
644
- const clonedTable = loadedTable.clone();
645
- clonedTable.foreignKeys = dependForeignKeys;
646
- tablesWithFK.push(clonedTable);
647
- dependForeignKeys.forEach((dependForeignKey) => loadedTable.removeForeignKey(dependForeignKey));
648
- }
649
- }
650
- if (tablesWithFK.length > 0) {
651
- for (const tableWithFK of tablesWithFK) {
652
- this.connection.logger.logSchemaBuild(`dropping related foreign keys of ${tableWithFK.name}: ${tableWithFK.foreignKeys
653
- .map((foreignKey) => foreignKey.name)
654
- .join(", ")}`);
655
- await this.queryRunner.dropForeignKeys(tableWithFK, tableWithFK.foreignKeys);
656
- }
657
- }
658
- }
659
- /**
660
- * Drops all composite indices, related to given column.
661
- */
662
- async dropColumnCompositeIndices(tablePath, columnName) {
663
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === tablePath);
664
- if (!table)
665
- return;
666
- const relatedIndices = table.indices.filter((index) => index.columnNames.length > 1 &&
667
- index.columnNames.indexOf(columnName) !== -1);
668
- if (relatedIndices.length === 0)
669
- return;
670
- this.connection.logger.logSchemaBuild(`dropping related indices of "${tablePath}"."${columnName}": ${relatedIndices
671
- .map((index) => index.name)
672
- .join(", ")}`);
673
- await this.queryRunner.dropIndices(table, relatedIndices);
674
- }
675
- /**
676
- * Drops all composite uniques, related to given column.
677
- */
678
- async dropColumnCompositeUniques(tablePath, columnName) {
679
- const table = this.queryRunner.loadedTables.find((table) => this.getTablePath(table) === tablePath);
680
- if (!table)
681
- return;
682
- const relatedUniques = table.uniques.filter((unique) => unique.columnNames.length > 1 &&
683
- unique.columnNames.indexOf(columnName) !== -1);
684
- if (relatedUniques.length === 0)
685
- return;
686
- this.connection.logger.logSchemaBuild(`dropping related unique constraints of "${tablePath}"."${columnName}": ${relatedUniques
687
- .map((unique) => unique.name)
688
- .join(", ")}`);
689
- await this.queryRunner.dropUniqueConstraints(table, relatedUniques);
690
- }
691
- /**
692
- * Creates new columns from the given column metadatas.
693
- */
694
- metadataColumnsToTableColumnOptions(columns) {
695
- return columns.map((columnMetadata) => TableUtils.createTableColumnOptions(columnMetadata, this.connection.driver));
696
- }
697
- /**
698
- * Creates typeorm service table for storing user defined Views and generate columns.
699
- */
700
- async createTypeormMetadataTable(queryRunner) {
701
- const schema = this.currentSchema;
702
- const database = this.currentDatabase;
703
- const typeormMetadataTable = this.connection.driver.buildTableName(this.connection.metadataTableName, schema, database);
704
- const isPrimary = this.connection.driver.options.type === "spanner";
705
- await queryRunner.createTable(new Table({
706
- database: database,
707
- schema: schema,
708
- name: typeormMetadataTable,
709
- columns: [
710
- {
711
- name: "type",
712
- type: this.connection.driver.normalizeType({
713
- type: this.connection.driver.mappedDataTypes
714
- .metadataType,
715
- }),
716
- isNullable: false,
717
- isPrimary,
718
- },
719
- {
720
- name: "database",
721
- type: this.connection.driver.normalizeType({
722
- type: this.connection.driver.mappedDataTypes
723
- .metadataDatabase,
724
- }),
725
- isNullable: true,
726
- isPrimary,
727
- },
728
- {
729
- name: "schema",
730
- type: this.connection.driver.normalizeType({
731
- type: this.connection.driver.mappedDataTypes
732
- .metadataSchema,
733
- }),
734
- isNullable: true,
735
- isPrimary,
736
- },
737
- {
738
- name: "table",
739
- type: this.connection.driver.normalizeType({
740
- type: this.connection.driver.mappedDataTypes
741
- .metadataTable,
742
- }),
743
- isNullable: true,
744
- isPrimary,
745
- },
746
- {
747
- name: "name",
748
- type: this.connection.driver.normalizeType({
749
- type: this.connection.driver.mappedDataTypes
750
- .metadataName,
751
- }),
752
- isNullable: true,
753
- isPrimary,
754
- },
755
- {
756
- name: "value",
757
- type: this.connection.driver.normalizeType({
758
- type: this.connection.driver.mappedDataTypes
759
- .metadataValue,
760
- }),
761
- isNullable: true,
762
- isPrimary,
763
- },
764
- ],
765
- }), true);
766
- }
767
- }
768
- ;
769
- ({}); // @--end-of-file-for-module=taon-typeorm lib/typeorm/schema-builder/RdbmsSchemaBuilder.ts
770
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmRibXNTY2hlbWFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vc2NoZW1hLWJ1aWxkZXIvUmRibXNTY2hlbWFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFPL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUVuRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQWdCM0IsWUFBc0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWZuQyxtQkFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQWVWLENBQUM7SUFNaEQ7O09BRUc7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcs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LGNBQWM7cUJBQ3RCLENBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVM7aUJBQ1o7Z0JBQ0Q7b0JBQ0ksSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQzt3QkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWU7NkJBQ3ZDLGFBQWE7cUJBQ3JCLENBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVM7aUJBQ1o7Z0JBQ0Q7b0JBQ0ksSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQzt3QkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWU7NkJBQ3ZDLFlBQVk7cUJBQ3BCLENBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVM7aUJBQ1o7Z0JBQ0Q7b0JBQ0ksSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQzt3QkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWU7NkJBQ3ZDLGFBQWE7cUJBQ3JCLENBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVM7aUJBQ1o7YUFDSjtTQUNKLENBQUMsRUFDRixJQUFJLENBQ1AsQ0FBQTtJQUNMLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEZBQTBGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcIi4vdGFibGUvVGFibGVcIlxuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tIFwiLi90YWJsZS9UYWJsZUNvbHVtblwiXG5pbXBvcnQgeyBUYWJsZUZvcmVpZ25LZXkgfSBmcm9tIFwiLi90YWJsZS9UYWJsZUZvcmVpZ25LZXlcIlxuaW1wb3J0IHsgVGFibGVJbmRleCB9IGZyb20gXCIuL3RhYmxlL1RhYmxlSW5kZXhcIlxuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tIFwiLi4vcXVlcnktcnVubmVyL1F1ZXJ5UnVubmVyXCJcbmltcG9ydCB7IENvbHVtbk1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0NvbHVtbk1ldGFkYXRhXCJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0VudGl0eU1ldGFkYXRhXCJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vZGF0YS1zb3VyY2UvRGF0YVNvdXJjZVwiXG5pbXBvcnQgeyBTY2hlbWFCdWlsZGVyIH0gZnJvbSBcIi4vU2NoZW1hQnVpbGRlclwiXG5pbXBvcnQgeyBTcWxJbk1lbW9yeSB9IGZyb20gXCIuLi9kcml2ZXIvU3FsSW5NZW1vcnlcIlxuaW1wb3J0IHsgVGFibGVVdGlscyB9IGZyb20gXCIuL3V0aWwvVGFibGVVdGlsc1wiXG5pbXBvcnQgeyBUYWJsZUNvbHVtbk9wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zL1RhYmxlQ29sdW1uT3B0aW9uc1wiXG5pbXBvcnQgeyBUYWJsZVVuaXF1ZSB9IGZyb20gXCIuL3RhYmxlL1RhYmxlVW5pcXVlXCJcbmltcG9ydCB7IFRhYmxlQ2hlY2sgfSBmcm9tIFwiLi90YWJsZS9UYWJsZUNoZWNrXCJcbmltcG9ydCB7IFRhYmxlRXhjbHVzaW9uIH0gZnJvbSBcIi4vdGFibGUvVGFibGVFeGNsdXNpb25cIlxuaW1wb3J0IHsgVmlldyB9IGZyb20gXCIuL3ZpZXcvVmlld1wiXG5pbXBvcnQgeyBWaWV3VXRpbHMgfSBmcm9tIFwiLi91dGlsL1ZpZXdVdGlsc1wiXG5pbXBvcnQgeyBEcml2ZXJVdGlscyB9IGZyb20gXCIuLi9kcml2ZXIvRHJpdmVyVXRpbHNcIlxuXG4vKipcbiAqIENyZWF0ZXMgY29tcGxldGUgdGFibGVzIHNjaGVtYXMgaW4gdGhlIGRhdGFiYXNlIGJhc2VkIG9uIHRoZSBlbnRpdHkgbWV0YWRhdGFzLlxuICpcbiAqIFN0ZXBzIGhvdyBzY2hlbWEgaXMgYmVpbmcgYnVpbHQ6XG4gKiAxLiBsb2FkIGxpc3Qgb2YgYWxsIHRhYmxlcyB3aXRoIGNvbXBsZXRlIGNvbHVtbiBhbmQga2V5cyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYlxuICogMi4gZHJvcCBhbGwgKG9sZCkgZm9yZWlnbiBrZXlzIHRoYXQgZXhpc3QgaW4gdGhlIHRhYmxlLCBidXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1ldGFkYXRhXG4gKiAzLiBjcmVhdGUgbmV3IHRhYmxlcyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYiwgYnV0IGV4aXN0IGluIHRoZSBtZXRhZGF0YVxuICogNC4gZHJvcCBhbGwgY29sdW1ucyBleGlzdCAobGVmdCBvbGQpIGluIHRoZSBkYiB0YWJsZSwgYnV0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBtZXRhZGF0YVxuICogNS4gYWRkIGNvbHVtbnMgZnJvbSBtZXRhZGF0YSB3aGljaCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgdGFibGVcbiAqIDYuIHVwZGF0ZSBhbGwgZXhpc3QgY29sdW1ucyB3aGljaCBtZXRhZGF0YSBoYXMgY2hhbmdlZFxuICogNy4gdXBkYXRlIHByaW1hcnkga2V5cyAtIHVwZGF0ZSBvbGQgYW5kIGNyZWF0ZSBuZXcgcHJpbWFyeSBrZXkgZnJvbSBjaGFuZ2VkIGNvbHVtbnNcbiAqIDguIGNyZWF0ZSBmb3JlaWduIGtleXMgd2hpY2ggZG9lcyBub3QgZXhpc3QgaW4gdGhlIHRhYmxlIHlldFxuICogOS4gY3JlYXRlIGluZGljZXMgd2hpY2ggYXJlIG1pc3NpbmcgaW4gZGIgeWV0LCBhbmQgZHJvcHMgaW5kaWNlcyB3aGljaCBleGlzdCBpbiB0aGUgZGIsIGJ1dCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWV0YWRhdGEgYW55bW9yZVxuICovXG5leHBvcnQgY2xhc3MgUmRibXNTY2hlbWFCdWlsZGVyIGltcGxlbWVudHMgU2NoZW1hQnVpbGRlciB7XG4gICAgcmVhZG9ubHkgXCJAaW5zdGFuY2VvZlwiID0gU3ltYm9sLmZvcihcIlJkYm1zU2NoZW1hQnVpbGRlclwiKVxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBleGVjdXRlIHNjaGVtYSBjcmVhdGlvbiBxdWVyaWVzIGluIGEgc2luZ2xlIGNvbm5lY3Rpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lclxuXG4gICAgcHJpdmF0ZSBjdXJyZW50RGF0YWJhc2U/OiBzdHJpbmdcblxuICAgIHByaXZhdGUgY3VycmVudFNjaGVtYT86IHN0cmluZ1xuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY29ubmVjdGlvbjogRGF0YVNvdXJjZSkge31cblxuXG5cblxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBjb21wbGV0ZSBzY2hlbWFzIGZvciB0aGUgZ2l2ZW4gZW50aXR5IG1ldGFkYXRhcy5cbiAgICAgKi9cbiAgICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5xdWVyeVJ1bm5lciA9IHRoaXMuY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpXG5cblxuICAgICAgICB0aGlzLmN1cnJlbnREYXRhYmFzZSA9IHRoaXMuY29ubmVjdGlvbi5kcml2ZXIuZGF0YWJhc2VcbiAgICAgICAgdGhpcy5jdXJyZW50U2NoZW1hID0gdGhpcy5jb25uZWN0aW9uLmRyaXZlci5zY2hlbWFcblxuXG5cblxuXG4gICAgICAgIGNvbnN0IGlzVXNpbmdUcmFuc2FjdGlvbnMgPVxuICAgICAgICAgICAgISh0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJjb2Nrcm9hY2hkYlwiKSAmJlxuICAgICAgICAgICAgISh0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJzcGFubmVyXCIpICYmXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ub3B0aW9ucy5taWdyYXRpb25zVHJhbnNhY3Rpb25Nb2RlICE9PSBcIm5vbmVcIlxuXG4gICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuYmVmb3JlTWlncmF0aW9uKClcblxuICAgICAgICBpZiAoaXNVc2luZ1RyYW5zYWN0aW9ucykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKClcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZU1ldGFkYXRhVGFibGVJZk5lY2Vzc2FyeSh0aGlzLnF1ZXJ5UnVubmVyKVxuXG4gICAgICAgICAgICBjb25zdCB0YWJsZVBhdGhzID0gdGhpcy5lbnRpdHlUb1N5bmNNZXRhZGF0YXMubWFwKChtZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZ2V0VGFibGVzKHRhYmxlUGF0aHMpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLmdldFZpZXdzKFtdKVxuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVTY2hlbWFTeW5jT3BlcmF0aW9uc0luUHJvcGVyT3JkZXIoKVxuXG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24ucXVlcnlSZXN1bHRDYWNoZSlcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24ucXVlcnlSZXN1bHRDYWNoZS5zeW5jaHJvbml6ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeVJ1bm5lcixcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGlmIChpc1VzaW5nVHJhbnNhY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzVXNpbmdUcmFuc2FjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChyb2xsYmFja0Vycm9yKSB7fVxuICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuYWZ0ZXJNaWdyYXRpb24oKVxuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLnJlbGVhc2UoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHRoZSB0eXBlb3JtX21ldGFkYXRhIHRhYmxlIGlmIG5lY2Vzc2FyeS5cbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVNZXRhZGF0YVRhYmxlSWZOZWNlc3NhcnkoXG4gICAgICAgIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcixcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy52aWV3RW50aXR5VG9TeW5jTWV0YWRhdGFzLmxlbmd0aCA+IDAgfHxcbiAgICAgICAgICAgIHRoaXMuaGFzR2VuZXJhdGVkQ29sdW1ucygpXG4gICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVUeXBlb3JtTWV0YWRhdGFUYWJsZShxdWVyeVJ1bm5lcilcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgc3FsIHF1ZXJpZXMgdG8gYmUgZXhlY3V0ZWQgYnkgc2NoZW1hIGJ1aWxkZXIuXG4gICAgICovXG4gICAgYXN5bmMgbG9nKCk6IFByb21pc2U8U3FsSW5NZW1vcnk+IHtcbiAgICAgICAgdGhpcy5xdWVyeVJ1bm5lciA9IHRoaXMuY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpXG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHRhYmxlUGF0aHMgPSB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcy5tYXAoKG1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZ2V0VGFibGVzKHRhYmxlUGF0aHMpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLmdldFZpZXdzKFtdKVxuXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLmVuYWJsZVNxbE1lbW9yeSgpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVTY2hlbWFTeW5jT3BlcmF0aW9uc0luUHJvcGVyT3JkZXIoKVxuXG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24ucXVlcnlSZXN1bHRDYWNoZSlcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5xdWVyeVJlc3VsdENhY2hlLnN5bmNocm9uaXplKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UnVubmVyLFxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlSdW5uZXIuZ2V0TWVtb3J5U3FsKClcbiAgICAgICAgfSBmaW5hbGx5IHtcblxuXG5cbiAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIuZGlzYWJsZVNxbE1lbW9yeSgpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLnJlbGVhc2UoKVxuICAgICAgICB9XG4gICAgfVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG9ubHkgZW50aXRpZXMgdGhhdCBzaG91bGQgYmUgc3luY2VkIGluIHRoZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGVudGl0eVRvU3luY01ldGFkYXRhcygpOiBFbnRpdHlNZXRhZGF0YVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5lbnRpdHlNZXRhZGF0YXMuZmlsdGVyKFxuICAgICAgICAgICAgKG1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgIG1ldGFkYXRhLnN5bmNocm9uaXplICYmXG4gICAgICAgICAgICAgICAgbWV0YWRhdGEudGFibGVUeXBlICE9PSBcImVudGl0eS1jaGlsZFwiICYmXG4gICAgICAgICAgICAgICAgbWV0YWRhdGEudGFibGVUeXBlICE9PSBcInZpZXdcIixcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb25seSBlbnRpdGllcyB0aGF0IHNob3VsZCBiZSBzeW5jZWQgaW4gdGhlIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgdmlld0VudGl0eVRvU3luY01ldGFkYXRhcygpOiBFbnRpdHlNZXRhZGF0YVtdIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5lbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAobWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS50YWJsZVR5cGUgPT09IFwidmlld1wiICYmIG1ldGFkYXRhLnN5bmNocm9uaXplLFxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgIC5zb3J0KFZpZXdVdGlscy52aWV3TWV0YWRhdGFDbXApXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IG9uZSBnZW5lcmF0ZWQgY29sdW1uLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYXNHZW5lcmF0ZWRDb2x1bW5zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLmVudGl0eU1ldGFkYXRhcy5zb21lKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4uZ2VuZXJhdGVkVHlwZSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBzY2hlbWEgc3luYyBvcGVyYXRpb25zIGluIGEgcHJvcGVyIG9yZGVyLlxuICAgICAqIE9yZGVyIG9mIG9wZXJhdGlvbnMgbWF0dGVyIGhlcmUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVTY2hlbWFTeW5jT3BlcmF0aW9uc0luUHJvcGVyT3JkZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZHJvcE9sZFZpZXdzKClcbiAgICAgICAgYXdhaXQgdGhpcy5kcm9wT2xkRm9yZWlnbktleXMoKVxuICAgICAgICBhd2FpdCB0aGlzLmRyb3BPbGRJbmRpY2VzKClcbiAgICAgICAgYXdhaXQgdGhpcy5kcm9wT2xkQ2hlY2tzKClcbiAgICAgICAgYXdhaXQgdGhpcy5kcm9wT2xkRXhjbHVzaW9ucygpXG4gICAgICAgIGF3YWl0IHRoaXMuZHJvcENvbXBvc2l0ZVVuaXF1ZUNvbnN0cmFpbnRzKClcblxuICAgICAgICBhd2FpdCB0aGlzLnJlbmFtZUNvbHVtbnMoKVxuICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZU5ld1RhYmxlcygpXG4gICAgICAgIGF3YWl0IHRoaXMuZHJvcFJlbW92ZWRDb2x1bW5zKClcbiAgICAgICAgYXdhaXQgdGhpcy5hZGROZXdDb2x1bW5zKClcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVQcmltYXJ5S2V5cygpXG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRXhpc3RDb2x1bW5zKClcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVOZXdJbmRpY2VzKClcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVOZXdDaGVja3MoKVxuICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZU5ld0V4Y2x1c2lvbnMoKVxuICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZUNvbXBvc2l0ZVVuaXF1ZUNvbnN0cmFpbnRzKClcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVGb3JlaWduS2V5cygpXG4gICAgICAgIGF3YWl0IHRoaXMuY3JlYXRlVmlld3MoKVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFibGVQYXRoKFxuICAgICAgICB0YXJnZXQ6IEVudGl0eU1ldGFkYXRhIHwgVGFibGUgfCBWaWV3IHwgVGFibGVGb3JlaWduS2V5IHwgc3RyaW5nLFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMuY29ubmVjdGlvbi5kcml2ZXIucGFyc2VUYWJsZU5hbWUodGFyZ2V0KVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLmJ1aWxkVGFibGVOYW1lKFxuICAgICAgICAgICAgcGFyc2VkLnRhYmxlTmFtZSxcbiAgICAgICAgICAgIHBhcnNlZC5zY2hlbWEgfHwgdGhpcy5jdXJyZW50U2NoZW1hLFxuICAgICAgICAgICAgcGFyc2VkLmRhdGFiYXNlIHx8IHRoaXMuY3VycmVudERhdGFiYXNlLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRHJvcHMgYWxsIChvbGQpIGZvcmVpZ24ga2V5cyB0aGF0IGV4aXN0IGluIHRoZSB0YWJsZXMsIGJ1dCBkbyBub3QgZXhpc3QgaW4gdGhlIGVudGl0eSBtZXRhZGF0YS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgZHJvcE9sZEZvcmVpZ25LZXlzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuZW50aXR5VG9TeW5jTWV0YWRhdGFzKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHRhYmxlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aCh0YWJsZSkgPT09IHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICghdGFibGUpIGNvbnRpbnVlXG5cblxuICAgICAgICAgICAgY29uc3QgdGFibGVGb3JlaWduS2V5c1RvRHJvcCA9IHRhYmxlLmZvcmVpZ25LZXlzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAodGFibGVGb3JlaWduS2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGFkYXRhRksgPSBtZXRhZGF0YS5mb3JlaWduS2V5cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1ldGFkYXRhRm9yZWlnbktleSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZUZvcmVpZ25LZXkubmFtZSA9PT0gbWV0YWRhdGFGb3JlaWduS2V5Lm5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aCh0YWJsZUZvcmVpZ25LZXkpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhRm9yZWlnbktleS5yZWZlcmVuY2VkRW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICFtZXRhZGF0YUZLIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobWV0YWRhdGFGSy5vbkRlbGV0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhRksub25EZWxldGUgIT09IHRhYmxlRm9yZWlnbktleS5vbkRlbGV0ZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChtZXRhZGF0YUZLLm9uVXBkYXRlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFGSy5vblVwZGF0ZSAhPT0gdGFibGVGb3JlaWduS2V5Lm9uVXBkYXRlKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICh0YWJsZUZvcmVpZ25LZXlzVG9Ecm9wLmxlbmd0aCA9PT0gMCkgY29udGludWVcblxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICBgZHJvcHBpbmcgb2xkIGZvcmVpZ24ga2V5cyBvZiAke1xuICAgICAgICAgICAgICAgICAgICB0YWJsZS5uYW1lXG4gICAgICAgICAgICAgICAgfTogJHt0YWJsZUZvcmVpZ25LZXlzVG9Ecm9wXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGRiRm9yZWlnbktleSkgPT4gZGJGb3JlaWduS2V5Lm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9YCxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLmRyb3BGb3JlaWduS2V5cyhcbiAgICAgICAgICAgICAgICB0YWJsZSxcbiAgICAgICAgICAgICAgICB0YWJsZUZvcmVpZ25LZXlzVG9Ecm9wLFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIHRhYmxlc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyByZW5hbWVUYWJsZXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cblxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuYW1lcyBjb2x1bW5zLlxuICAgICAqIFdvcmtzIGlmIG9ubHkgb25lIGNvbHVtbiBwZXIgdGFibGUgd2FzIGNoYW5nZWQuXG4gICAgICogQ2hhbmdlcyBvbmx5IGNvbHVtbiBuYW1lLiBJZiBzb21ldGhpbmcgYmVzaWRlcyBuYW1lIHdhcyBjaGFuZ2VkLCB0aGVzZSBjaGFuZ2VzIHdpbGwgYmUgaWdub3JlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgcmVuYW1lQ29sdW1ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBpZiAobWV0YWRhdGEuY29sdW1ucy5sZW5ndGggIT09IHRhYmxlLmNvbHVtbnMubGVuZ3RoKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCByZW5hbWVkTWV0YWRhdGFDb2x1bW5zID0gbWV0YWRhdGEuY29sdW1uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLmlzVmlydHVhbFByb3BlcnR5KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXRhYmxlLmNvbHVtbnMuZmluZCgodGFibGVDb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVDb2x1bW4ubmFtZSA9PT0gY29sdW1uLmRhdGFiYXNlTmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlQ29sdW1uLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIubm9ybWFsaXplVHlwZShjb2x1bW4pICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVDb2x1bW4uaXNOdWxsYWJsZSA9PT0gY29sdW1uLmlzTnVsbGFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZUNvbHVtbi5pc1VuaXF1ZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5ub3JtYWxpemVJc1VuaXF1ZShjb2x1bW4pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHJlbmFtZWRNZXRhZGF0YUNvbHVtbnMubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgICAgICAgcmVuYW1lZE1ldGFkYXRhQ29sdW1ucy5sZW5ndGggPiAxXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY29udGludWVcblxuICAgICAgICAgICAgY29uc3QgcmVuYW1lZFRhYmxlQ29sdW1ucyA9IHRhYmxlLmNvbHVtbnMuZmlsdGVyKCh0YWJsZUNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhbWV0YWRhdGEuY29sdW1ucy5maW5kKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2x1bW4uaXNWaXJ0dWFsUHJvcGVydHkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5kYXRhYmFzZU5hbWUgPT09IHRhYmxlQ29sdW1uLm5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIubm9ybWFsaXplVHlwZShjb2x1bW4pID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlQ29sdW1uLnR5cGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc051bGxhYmxlID09PSB0YWJsZUNvbHVtbi5pc051bGxhYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm5vcm1hbGl6ZUlzVW5pcXVlKGNvbHVtbikgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVDb2x1bW4uaXNVbmlxdWVcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcmVuYW1lZFRhYmxlQ29sdW1ucy5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgICByZW5hbWVkVGFibGVDb2x1bW5zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCByZW5hbWVkQ29sdW1uID0gcmVuYW1lZFRhYmxlQ29sdW1uc1swXS5jbG9uZSgpXG4gICAgICAgICAgICByZW5hbWVkQ29sdW1uLm5hbWUgPSByZW5hbWVkTWV0YWRhdGFDb2x1bW5zWzBdLmRhdGFiYXNlTmFtZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGByZW5hbWluZyBjb2x1bW4gXCIke3JlbmFtZWRUYWJsZUNvbHVtbnNbMF0ubmFtZX1cIiBpbiB0byBcIiR7cmVuYW1lZENvbHVtbi5uYW1lfVwiYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIucmVuYW1lQ29sdW1uKFxuICAgICAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgICAgIHJlbmFtZWRUYWJsZUNvbHVtbnNbMF0sXG4gICAgICAgICAgICAgICAgcmVuYW1lZENvbHVtbixcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBkcm9wT2xkSW5kaWNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBkcm9wUXVlcmllcyA9IHRhYmxlLmluZGljZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YWJsZUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4TWV0YWRhdGEgPSBtZXRhZGF0YS5pbmRpY2VzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5kZXgpID0+IGluZGV4Lm5hbWUgPT09IHRhYmxlSW5kZXgubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXhNZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4TWV0YWRhdGEuc3luY2hyb25pemUgPT09IGZhbHNlKSByZXR1cm4gZmFsc2VcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4TWV0YWRhdGEuaXNVbmlxdWUgIT09IHRhYmxlSW5kZXguaXNVbmlxdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4TWV0YWRhdGEuaXNTcGF0aWFsICE9PSB0YWJsZUluZGV4LmlzU3BhdGlhbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5pc0Z1bGxUZXh0Q29sdW1uVHlwZVN1cHBvcnRlZCgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhNZXRhZGF0YS5pc0Z1bGx0ZXh0ICE9PSB0YWJsZUluZGV4LmlzRnVsbHRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhNZXRhZGF0YS5jb2x1bW5zLmxlbmd0aCAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZUluZGV4LmNvbHVtbk5hbWVzLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhaW5kZXhNZXRhZGF0YS5jb2x1bW5zLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2x1bW4pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlSW5kZXguY29sdW1uTmFtZXMuaW5kZXhPZihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5kYXRhYmFzZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgIT09IC0xLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoYXN5bmMgKHRhYmxlSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICAgICAgICAgIGBkcm9wcGluZyBhbiBpbmRleDogXCIke3RhYmxlSW5kZXgubmFtZX1cIiBmcm9tIHRhYmxlICR7dGFibGUubmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZHJvcEluZGV4KHRhYmxlLCB0YWJsZUluZGV4KVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGRyb3BRdWVyaWVzKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGRyb3BPbGRDaGVja3MoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgRHJpdmVyVXRpbHMuaXNNeVNRTEZhbWlseSh0aGlzLmNvbm5lY3Rpb24uZHJpdmVyKSB8fFxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwiYXVyb3JhLW15c3FsXCJcbiAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuXG5cbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBvbGRDaGVja3MgPSB0YWJsZS5jaGVja3MuZmlsdGVyKCh0YWJsZUNoZWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFtZXRhZGF0YS5jaGVja3MuZmluZChcbiAgICAgICAgICAgICAgICAgICAgKGNoZWNrTWV0YWRhdGEpID0+IGNoZWNrTWV0YWRhdGEubmFtZSA9PT0gdGFibGVDaGVjay5uYW1lLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChvbGRDaGVja3MubGVuZ3RoID09PSAwKSBjb250aW51ZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGBkcm9wcGluZyBvbGQgY2hlY2sgY29uc3RyYWludDogJHtvbGRDaGVja3NcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoY2hlY2spID0+IGBcIiR7Y2hlY2submFtZX1cImApXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9IGZyb20gdGFibGUgXCIke3RhYmxlLm5hbWV9XCJgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5kcm9wQ2hlY2tDb25zdHJhaW50cyh0YWJsZSwgb2xkQ2hlY2tzKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGRyb3BDb21wb3NpdGVVbmlxdWVDb25zdHJhaW50cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBjb21wb3NpdGVVbmlxdWVzID0gdGFibGUudW5pcXVlcy5maWx0ZXIoKHRhYmxlVW5pcXVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGFibGVVbmlxdWUuY29sdW1uTmFtZXMubGVuZ3RoID4gMSAmJlxuICAgICAgICAgICAgICAgICAgICAhbWV0YWRhdGEudW5pcXVlcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHVuaXF1ZU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZU1ldGFkYXRhLm5hbWUgPT09IHRhYmxlVW5pcXVlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAoY29tcG9zaXRlVW5pcXVlcy5sZW5ndGggPT09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nU2NoZW1hQnVpbGQoXG4gICAgICAgICAgICAgICAgYGRyb3BwaW5nIG9sZCB1bmlxdWUgY29uc3RyYWludDogJHtjb21wb3NpdGVVbmlxdWVzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHVuaXF1ZSkgPT4gYFwiJHt1bmlxdWUubmFtZX1cImApXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9IGZyb20gdGFibGUgXCIke3RhYmxlLm5hbWV9XCJgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5kcm9wVW5pcXVlQ29uc3RyYWludHMoXG4gICAgICAgICAgICAgICAgdGFibGUsXG4gICAgICAgICAgICAgICAgY29tcG9zaXRlVW5pcXVlcyxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBkcm9wT2xkRXhjbHVzaW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgICAgICBpZiAoISh0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJwb3N0Z3Jlc1wiKSkgcmV0dXJuXG5cbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBvbGRFeGNsdXNpb25zID0gdGFibGUuZXhjbHVzaW9ucy5maWx0ZXIoKHRhYmxlRXhjbHVzaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFtZXRhZGF0YS5leGNsdXNpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChleGNsdXNpb25NZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2lvbk1ldGFkYXRhLm5hbWUgPT09IHRhYmxlRXhjbHVzaW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKG9sZEV4Y2x1c2lvbnMubGVuZ3RoID09PSAwKSBjb250aW51ZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGBkcm9wcGluZyBvbGQgZXhjbHVzaW9uIGNvbnN0cmFpbnQ6ICR7b2xkRXhjbHVzaW9uc1xuICAgICAgICAgICAgICAgICAgICAubWFwKChleGNsdXNpb24pID0+IGBcIiR7ZXhjbHVzaW9uLm5hbWV9XCJgKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfSBmcm9tIHRhYmxlIFwiJHt0YWJsZS5uYW1lfVwiYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZHJvcEV4Y2x1c2lvbkNvbnN0cmFpbnRzKFxuICAgICAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgICAgIG9sZEV4Y2x1c2lvbnMsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRhYmxlcyB0aGF0IGRvIG5vdCBleGlzdCBpbiB0aGUgZGF0YWJhc2UgeWV0LlxuICAgICAqIE5ldyB0YWJsZXMgYXJlIGNyZWF0ZWQgd2l0aG91dCBmb3JlaWduIGFuZCBwcmltYXJ5IGtleXMuXG4gICAgICogUHJpbWFyeSBrZXkgb25seSBjYW4gYmUgY3JlYXRlZCBpbiBjb25jbHVzaW9uIHdpdGggYXV0byBnZW5lcmF0ZWQgY29sdW1uLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVOZXdUYWJsZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5lbnRpdHlUb1N5bmNNZXRhZGF0YXMpIHtcblxuICAgICAgICAgICAgY29uc3QgZXhpc3RUYWJsZSA9IHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHRhYmxlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aCh0YWJsZSkgPT09IHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChleGlzdFRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGBjcmVhdGluZyBhIG5ldyB0YWJsZTogJHt0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSl9YCxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IFRhYmxlLmNyZWF0ZShtZXRhZGF0YSwgdGhpcy5jb25uZWN0aW9uLmRyaXZlcilcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuY3JlYXRlVGFibGUodGFibGUsIGZhbHNlLCBmYWxzZSlcbiAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzLnB1c2godGFibGUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlVmlld3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy52aWV3RW50aXR5VG9TeW5jTWV0YWRhdGFzKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGV4aXN0VmlldyA9IHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVmlld3MuZmluZCgodmlldykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdFeHByZXNzaW9uID1cbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHZpZXcuZXhwcmVzc2lvbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyB2aWV3LmV4cHJlc3Npb24udHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZpZXcuZXhwcmVzc2lvbih0aGlzLmNvbm5lY3Rpb24pLmdldFF1ZXJ5KClcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRhZGF0YUV4cHJlc3Npb24gPVxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgbWV0YWRhdGEuZXhwcmVzc2lvbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZXRhZGF0YS5leHByZXNzaW9uLnRyaW0oKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBtZXRhZGF0YS5leHByZXNzaW9uISh0aGlzLmNvbm5lY3Rpb24pLmdldFF1ZXJ5KClcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aCh2aWV3KSA9PT0gdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpICYmXG4gICAgICAgICAgICAgICAgICAgIHZpZXdFeHByZXNzaW9uID09PSBtZXRhZGF0YUV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgaWYgKGV4aXN0VmlldykgY29udGludWVcblxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICBgY3JlYXRpbmcgYSBuZXcgdmlldzogJHt0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSl9YCxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gVmlldy5jcmVhdGUobWV0YWRhdGEsIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLmNyZWF0ZVZpZXcodmlldywgdHJ1ZSlcbiAgICAgICAgICAgIHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVmlld3MucHVzaCh2aWV3KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGRyb3BPbGRWaWV3cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZHJvcHBlZFZpZXdzOiBBcnJheTxWaWV3PiA9IFtdXG4gICAgICAgIGNvbnN0IHZpZXdFbnRpdHlUb1N5bmNNZXRhZGF0YXMgPSB0aGlzLnZpZXdFbnRpdHlUb1N5bmNNZXRhZGF0YXNcblxuICAgICAgICBjb25zdCB2aWV3VG9NZXRhZGF0YSA9IG5ldyBNYXA8VmlldywgRW50aXR5TWV0YWRhdGE+KClcbiAgICAgICAgZm9yIChjb25zdCB2aWV3IG9mIHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVmlld3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdNZXRhZGF0YSA9IHZpZXdFbnRpdHlUb1N5bmNNZXRhZGF0YXMuZmluZCgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUYWJsZVBhdGgodmlldykgPT09IHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGlmICh2aWV3TWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICB2aWV3VG9NZXRhZGF0YS5zZXQodmlldywgdmlld01ldGFkYXRhKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB2aWV3IG9mIHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVmlld3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdNZXRhZGF0YSA9IHZpZXdUb01ldGFkYXRhLmdldCh2aWV3KVxuICAgICAgICAgICAgaWYgKCF2aWV3TWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgdmlld0V4cHJlc3Npb24gPVxuICAgICAgICAgICAgICAgIHR5cGVvZiB2aWV3LmV4cHJlc3Npb24gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyB2aWV3LmV4cHJlc3Npb24udHJpbSgpXG4gICAgICAgICAgICAgICAgICAgIDogdmlldy5leHByZXNzaW9uKHRoaXMuY29ubmVjdGlvbikuZ2V0UXVlcnkoKVxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGFFeHByZXNzaW9uID1cbiAgICAgICAgICAgICAgICB0eXBlb2Ygdmlld01ldGFkYXRhLmV4cHJlc3Npb24gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyB2aWV3TWV0YWRhdGEuZXhwcmVzc2lvbi50cmltKClcbiAgICAgICAgICAgICAgICAgICAgOiB2aWV3TWV0YWRhdGEuZXhwcmVzc2lvbiEodGhpcy5jb25uZWN0aW9uKS5nZXRRdWVyeSgpXG5cbiAgICAgICAgICAgIGlmICh2aWV3RXhwcmVzc2lvbiA9PT0gbWV0YWRhdGFFeHByZXNzaW9uKSBjb250aW51ZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGBkcm9wcGluZyBhbiBvbGQgdmlldzogJHt2aWV3Lm5hbWV9YCxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgICAgICBkcm9wcGVkVmlld3MucHVzaCh2aWV3KVxuICAgICAgICB9XG5cblxuICAgICAgICBjb25zdCB2aWV3RGVwZW5kZW5jeUNoYWluID0gKHZpZXc6IFZpZXcpOiBWaWV3W10gPT4ge1xuXG4gICAgICAgICAgICBjb25zdCB2aWV3TWV0YWRhdGEgPSB2aWV3VG9NZXRhZGF0YS5nZXQodmlldylcbiAgICAgICAgICAgIGxldCB2aWV3V2l0aERlcGVuZGVuY2llcyA9IFt2aWV3XVxuXG4gICAgICAgICAgICBpZiAoIXZpZXdNZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aWV3V2l0aERlcGVuZGVuY2llc1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtcbiAgICAgICAgICAgICAgICBjdXJyZW50VmlldyxcbiAgICAgICAgICAgICAgICBjdXJyZW50TWV0YWRhdGEsXG4gICAgICAgICAgICBdIG9mIHZpZXdUb01ldGFkYXRhLmVudHJpZXMoKSkge1xuXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWaWV3ID09PSB2aWV3KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TWV0YWRhdGEuZGVwZW5kc09uICYmXG4gICAgICAgICAgICAgICAgICAgIChjdXJyZW50TWV0YWRhdGEuZGVwZW5kc09uLmhhcyh2aWV3TWV0YWRhdGEudGFyZ2V0KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1ldGFkYXRhLmRlcGVuZHNPbi5oYXModmlld01ldGFkYXRhLm5hbWUpKVxuICAgICAgICAgICAgICAgICkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZpZXdXaXRoRGVwZW5kZW5jaWVzID0gdmlld1dpdGhEZXBlbmRlbmNpZXMuY29uY2F0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0RlcGVuZGVuY3lDaGFpbihjdXJyZW50VmlldyksXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2aWV3V2l0aERlcGVuZGVuY2llc1xuICAgICAgICB9XG5cblxuICAgICAgICBjb25zdCBkcm9wcGVkVmlld3NXaXRoRGVwZW5kZW5jaWVzOiBTZXQ8Vmlldz4gPSBuZXcgU2V0KFxuXG4gICAgICAgICAgICBkcm9wcGVkVmlld3NcbiAgICAgICAgICAgICAgICAubWFwKCh2aWV3KSA9PiB2aWV3RGVwZW5kZW5jeUNoYWluKHZpZXcpKVxuXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoYWxsLCBzZWdtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGwuY29uY2F0KHNlZ21lbnQpXG4gICAgICAgICAgICAgICAgfSwgW10pXG5cbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlld1V0aWxzLnZpZXdNZXRhZGF0YUNtcChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdUb01ldGFkYXRhLmdldChhKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdUb01ldGFkYXRhLmdldChiKSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAucmV2ZXJzZSgpLFxuICAgICAgICApXG5cblxuICAgICAgICBmb3IgKGNvbnN0IHZpZXcgb2YgZHJvcHBlZFZpZXdzV2l0aERlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5kcm9wVmlldyh2aWV3KVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVmlld3MgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFZpZXdzLmZpbHRlcihcbiAgICAgICAgICAgICh2aWV3KSA9PiAhZHJvcHBlZFZpZXdzV2l0aERlcGVuZGVuY2llcy5oYXModmlldyksXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEcm9wcyBhbGwgY29sdW1ucyB0aGF0IGV4aXN0IGluIHRoZSB0YWJsZSwgYnV0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBtZXRhZGF0YSAobGVmdCBvbGQpLlxuICAgICAqIFdlIGRyb3AgdGhlaXIga2V5cyB0b28sIHNpbmNlIGl0IHNob3VsZCBiZSBzYWZlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBkcm9wUmVtb3ZlZENvbHVtbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5lbnRpdHlUb1N5bmNNZXRhZGF0YXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5xdWVyeVJ1bm5lci5sb2FkZWRUYWJsZXMuZmluZChcbiAgICAgICAgICAgICAgICAodGFibGUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKHRhYmxlKSA9PT0gdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCF0YWJsZSkgY29udGludWVcblxuXG4gICAgICAgICAgICBjb25zdCBkcm9wcGVkVGFibGVDb2x1bW5zID0gdGFibGUuY29sdW1ucy5maWx0ZXIoKHRhYmxlQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFtZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChjb2x1bW5NZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk1ldGFkYXRhLmlzVmlydHVhbFByb3BlcnR5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5NZXRhZGF0YS5kYXRhYmFzZU5hbWUgPT09IHRhYmxlQ29sdW1uLm5hbWUsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGlmIChkcm9wcGVkVGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMCkgY29udGludWVcblxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICBgY29sdW1ucyBkcm9wcGVkIGluICR7dGFibGUubmFtZX06IGAgK1xuICAgICAgICAgICAgICAgICAgICBkcm9wcGVkVGFibGVDb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4ubmFtZSkuam9pbihcIiwgXCIpLFxuICAgICAgICAgICAgKVxuXG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZHJvcENvbHVtbnModGFibGUsIGRyb3BwZWRUYWJsZUNvbHVtbnMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGNvbHVtbnMgZnJvbSBtZXRhZGF0YSB3aGljaCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgdGFibGUuXG4gICAgICogQ29sdW1ucyBhcmUgY3JlYXRlZCB3aXRob3V0IGtleXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGFkZE5ld0NvbHVtbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5lbnRpdHlUb1N5bmNNZXRhZGF0YXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5xdWVyeVJ1bm5lci5sb2FkZWRUYWJsZXMuZmluZChcbiAgICAgICAgICAgICAgICAodGFibGUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKHRhYmxlKSA9PT0gdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCF0YWJsZSkgY29udGludWVcblxuXG4gICAgICAgICAgICBjb25zdCBuZXdDb2x1bW5NZXRhZGF0YXMgPSBtZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoY29sdW1uTWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2x1bW5NZXRhZGF0YS5pc1ZpcnR1YWxQcm9wZXJ0eSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRhYmxlLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGVDb2x1bW4pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlQ29sdW1uLm5hbWUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk1ldGFkYXRhLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAobmV3Q29sdW1uTWV0YWRhdGFzLmxlbmd0aCA9PT0gMCkgY29udGludWVcblxuXG4gICAgICAgICAgICBjb25zdCBuZXdUYWJsZUNvbHVtbk9wdGlvbnMgPVxuICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFDb2x1bW5zVG9UYWJsZUNvbHVtbk9wdGlvbnMobmV3Q29sdW1uTWV0YWRhdGFzKVxuICAgICAgICAgICAgY29uc3QgbmV3VGFibGVDb2x1bW5zID0gbmV3VGFibGVDb2x1bW5PcHRpb25zLm1hcChcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBuZXcgVGFibGVDb2x1bW4ob3B0aW9uKSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKG5ld1RhYmxlQ29sdW1ucy5sZW5ndGggPT09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nU2NoZW1hQnVpbGQoXG4gICAgICAgICAgICAgICAgYG5ldyBjb2x1bW5zIGFkZGVkOiBgICtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sdW1uTWV0YWRhdGFzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChjb2x1bW4pID0+IGNvbHVtbi5kYXRhYmFzZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5hZGRDb2x1bW5zKHRhYmxlLCBuZXdUYWJsZUNvbHVtbnMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGNvbXBvc2l0ZSBwcmltYXJ5IGtleXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVByaW1hcnlLZXlzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuZW50aXR5VG9TeW5jTWV0YWRhdGFzKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHRhYmxlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aCh0YWJsZSkgPT09IHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICghdGFibGUpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IHByaW1hcnlNZXRhZGF0YUNvbHVtbnMgPSBtZXRhZGF0YS5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNQcmltYXJ5LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgcHJpbWFyeVRhYmxlQ29sdW1ucyA9IHRhYmxlLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc1ByaW1hcnksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcHJpbWFyeVRhYmxlQ29sdW1ucy5sZW5ndGggIT09IHByaW1hcnlNZXRhZGF0YUNvbHVtbnMubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgcHJpbWFyeU1ldGFkYXRhQ29sdW1ucy5sZW5ndGggPiAxXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkUHJpbWFyeUNvbHVtbnMgPSBwcmltYXJ5TWV0YWRhdGFDb2x1bW5zLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKHByaW1hcnlNZXRhZGF0YUNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUNvbHVtbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZVV0aWxzLmNyZWF0ZVRhYmxlQ29sdW1uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeU1ldGFkYXRhQ29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIudXBkYXRlUHJpbWFyeUtleXMoXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkUHJpbWFyeUNvbHVtbnMsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGFsbCBleGlzdCBjb2x1bW5zIHdoaWNoIG1ldGFkYXRhIGhhcyBjaGFuZ2VkLlxuICAgICAqIFN0aWxsIGRvbid0IGNyZWF0ZSBrZXlzLiBBbHNvIHdlIGRvbid0IHRvdWNoIGZvcmVpZ24ga2V5cyBvZiB0aGUgY2hhbmdlZCBjb2x1bW5zLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyB1cGRhdGVFeGlzdENvbHVtbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5lbnRpdHlUb1N5bmNNZXRhZGF0YXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5xdWVyeVJ1bm5lci5sb2FkZWRUYWJsZXMuZmluZChcbiAgICAgICAgICAgICAgICAodGFibGUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKHRhYmxlKSA9PT0gdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCF0YWJsZSkgY29udGludWVcblxuICAgICAgICAgICAgY29uc3QgY2hhbmdlZENvbHVtbnMgPSB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLmZpbmRDaGFuZ2VkQ29sdW1ucyhcbiAgICAgICAgICAgICAgICB0YWJsZS5jb2x1bW5zLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhLmNvbHVtbnMsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoY2hhbmdlZENvbHVtbnMubGVuZ3RoID09PSAwKSBjb250aW51ZVxuXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hhbmdlZENvbHVtbiBvZiBjaGFuZ2VkQ29sdW1ucykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJvcENvbHVtblJlZmVyZW5jZWRGb3JlaWduS2V5cyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpLFxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkQ29sdW1uLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgZm9yIChjb25zdCBjaGFuZ2VkQ29sdW1uIG9mIGNoYW5nZWRDb2x1bW5zKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kcm9wQ29sdW1uQ29tcG9zaXRlSW5kaWNlcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpLFxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkQ29sdW1uLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cblxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgRHJpdmVyVXRpbHMuaXNNeVNRTEZhbWlseSh0aGlzLmNvbm5lY3Rpb24uZHJpdmVyKSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJhdXJvcmEtbXlzcWxcIiB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJzcGFubmVyXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZWRDb2x1bW4gb2YgY2hhbmdlZENvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kcm9wQ29sdW1uQ29tcG9zaXRlVW5pcXVlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWRDb2x1bW4uZGF0YWJhc2VOYW1lLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld0FuZE9sZFRhYmxlQ29sdW1ucyA9IGNoYW5nZWRDb2x1bW5zLm1hcChcbiAgICAgICAgICAgICAgICAoY2hhbmdlZENvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvbGRUYWJsZUNvbHVtbiA9IHRhYmxlLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5uYW1lID09PSBjaGFuZ2VkQ29sdW1uLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgKSFcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VGFibGVDb2x1bW5PcHRpb25zID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlVXRpbHMuY3JlYXRlVGFibGVDb2x1bW5PcHRpb25zKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWRDb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VGFibGVDb2x1bW4gPSBuZXcgVGFibGVDb2x1bW4oXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdUYWJsZUNvbHVtbk9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkQ29sdW1uOiBvbGRUYWJsZUNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NvbHVtbjogbmV3VGFibGVDb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAobmV3QW5kT2xkVGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMCkgY29udGludWVcblxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICBgY29sdW1ucyBjaGFuZ2VkIGluIFwiJHt0YWJsZS5uYW1lfVwiLiB1cGRhdGluZzogYCArXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWRDb2x1bW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChjb2x1bW4pID0+IGNvbHVtbi5kYXRhYmFzZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5jaGFuZ2VDb2x1bW5zKHRhYmxlLCBuZXdBbmRPbGRUYWJsZUNvbHVtbnMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGNvbXBvc2l0ZSBpbmRpY2VzIHdoaWNoIGFyZSBtaXNzaW5nIGluIGRiIHlldC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlTmV3SW5kaWNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBuZXdJbmRpY2VzID0gbWV0YWRhdGEuaW5kaWNlc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpbmRleE1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRhYmxlLmluZGljZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGVJbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVJbmRleC5uYW1lID09PSBpbmRleE1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApICYmIGluZGV4TWV0YWRhdGEuc3luY2hyb25pemUgPT09IHRydWUsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5tYXAoKGluZGV4TWV0YWRhdGEpID0+IFRhYmxlSW5kZXguY3JlYXRlKGluZGV4TWV0YWRhdGEpKVxuXG4gICAgICAgICAgICBpZiAobmV3SW5kaWNlcy5sZW5ndGggPT09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nU2NoZW1hQnVpbGQoXG4gICAgICAgICAgICAgICAgYGFkZGluZyBuZXcgaW5kaWNlcyAke25ld0luZGljZXNcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoaW5kZXgpID0+IGBcIiR7aW5kZXgubmFtZX1cImApXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9IGluIHRhYmxlIFwiJHt0YWJsZS5uYW1lfVwiYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuY3JlYXRlSW5kaWNlcyh0YWJsZSwgbmV3SW5kaWNlcylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVOZXdDaGVja3MoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgRHJpdmVyVXRpbHMuaXNNeVNRTEZhbWlseSh0aGlzLmNvbm5lY3Rpb24uZHJpdmVyKSB8fFxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwiYXVyb3JhLW15c3FsXCJcbiAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuXG5cbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBuZXdDaGVja3MgPSBtZXRhZGF0YS5jaGVja3NcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoY2hlY2tNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICF0YWJsZS5jaGVja3MuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGVDaGVjaykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVDaGVjay5uYW1lID09PSBjaGVja01ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAubWFwKChjaGVja01ldGFkYXRhKSA9PiBUYWJsZUNoZWNrLmNyZWF0ZShjaGVja01ldGFkYXRhKSlcblxuICAgICAgICAgICAgaWYgKG5ld0NoZWNrcy5sZW5ndGggPT09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nU2NoZW1hQnVpbGQoXG4gICAgICAgICAgICAgICAgYGFkZGluZyBuZXcgY2hlY2sgY29uc3RyYWludHM6ICR7bmV3Q2hlY2tzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGluZGV4KSA9PiBgXCIke2luZGV4Lm5hbWV9XCJgKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfSBpbiB0YWJsZSBcIiR7dGFibGUubmFtZX1cImAsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLmNyZWF0ZUNoZWNrQ29uc3RyYWludHModGFibGUsIG5ld0NoZWNrcylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29tcG9zaXRlIHVuaXF1ZXMgd2hpY2ggYXJlIG1pc3NpbmcgaW4gZGIgeWV0LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVDb21wb3NpdGVVbmlxdWVDb25zdHJhaW50cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLmVudGl0eVRvU3luY01ldGFkYXRhcykge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgICAgICh0YWJsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0aGlzLmdldFRhYmxlUGF0aChtZXRhZGF0YSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIXRhYmxlKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBjb21wb3NpdGVVbmlxdWVzID0gbWV0YWRhdGEudW5pcXVlc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICh1bmlxdWVNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZU1ldGFkYXRhLmNvbHVtbnMubGVuZ3RoID4gMSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRhYmxlLnVuaXF1ZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGVVbmlxdWUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlVW5pcXVlLm5hbWUgPT09IHVuaXF1ZU1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAubWFwKCh1bmlxdWVNZXRhZGF0YSkgPT4gVGFibGVVbmlxdWUuY3JlYXRlKHVuaXF1ZU1ldGFkYXRhKSlcblxuICAgICAgICAgICAgaWYgKGNvbXBvc2l0ZVVuaXF1ZXMubGVuZ3RoID09PSAwKSBjb250aW51ZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGBhZGRpbmcgbmV3IHVuaXF1ZSBjb25zdHJhaW50czogJHtjb21wb3NpdGVVbmlxdWVzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHVuaXF1ZSkgPT4gYFwiJHt1bmlxdWUubmFtZX1cImApXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9IGluIHRhYmxlIFwiJHt0YWJsZS5uYW1lfVwiYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuY3JlYXRlVW5pcXVlQ29uc3RyYWludHMoXG4gICAgICAgICAgICAgICAgdGFibGUsXG4gICAgICAgICAgICAgICAgY29tcG9zaXRlVW5pcXVlcyxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgZXhjbHVzaW9ucyB3aGljaCBhcmUgbWlzc2luZyBpbiBkYiB5ZXQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZU5ld0V4Y2x1c2lvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAgICAgaWYgKCEodGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwicG9zdGdyZXNcIikpIHJldHVyblxuXG4gICAgICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5lbnRpdHlUb1N5bmNNZXRhZGF0YXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5xdWVyeVJ1bm5lci5sb2FkZWRUYWJsZXMuZmluZChcbiAgICAgICAgICAgICAgICAodGFibGUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKHRhYmxlKSA9PT0gdGhpcy5nZXRUYWJsZVBhdGgobWV0YWRhdGEpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCF0YWJsZSkgY29udGludWVcblxuICAgICAgICAgICAgY29uc3QgbmV3RXhjbHVzaW9ucyA9IG1ldGFkYXRhLmV4Y2x1c2lvbnNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoZXhjbHVzaW9uTWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAhdGFibGUuZXhjbHVzaW9ucy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YWJsZUV4Y2x1c2lvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVFeGNsdXNpb24ubmFtZSA9PT0gZXhjbHVzaW9uTWV0YWRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5tYXAoKGV4Y2x1c2lvbk1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICBUYWJsZUV4Y2x1c2lvbi5jcmVhdGUoZXhjbHVzaW9uTWV0YWRhdGEpLFxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKG5ld0V4Y2x1c2lvbnMubGVuZ3RoID09PSAwKSBjb250aW51ZVxuXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgICAgIGBhZGRpbmcgbmV3IGV4Y2x1c2lvbiBjb25zdHJhaW50czogJHtuZXdFeGNsdXNpb25zXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGV4Y2x1c2lvbikgPT4gYFwiJHtleGNsdXNpb24ubmFtZX1cImApXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9IGluIHRhYmxlIFwiJHt0YWJsZS5uYW1lfVwiYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuY3JlYXRlRXhjbHVzaW9uQ29uc3RyYWludHMoXG4gICAgICAgICAgICAgICAgdGFibGUsXG4gICAgICAgICAgICAgICAgbmV3RXhjbHVzaW9ucyxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgZm9yZWlnbiBrZXlzIHdoaWNoIGRvZXMgbm90IGV4aXN0IGluIHRoZSB0YWJsZSB5ZXQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUZvcmVpZ25LZXlzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuZW50aXR5VG9TeW5jTWV0YWRhdGFzKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHRhYmxlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aCh0YWJsZSkgPT09IHRoaXMuZ2V0VGFibGVQYXRoKG1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICghdGFibGUpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld0tleXMgPSBtZXRhZGF0YS5mb3JlaWduS2V5cy5maWx0ZXIoKGZvcmVpZ25LZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXRhYmxlLmZvcmVpZ25LZXlzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChkYkZvcmVpZ25LZXkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBkYkZvcmVpZ25LZXkubmFtZSA9PT0gZm9yZWlnbktleS5uYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlUGF0aChkYkZvcmVpZ25LZXkpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVQYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduS2V5LnJlZmVyZW5jZWRFbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBpZiAobmV3S2V5cy5sZW5ndGggPT09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IGRiRm9yZWlnbktleXMgPSBuZXdLZXlzLm1hcCgoZm9yZWlnbktleU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgIFRhYmxlRm9yZWlnbktleS5jcmVhdGUoXG4gICAgICAgICAgICAgICAgICAgIGZvcmVpZ25LZXlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlcixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICBgY3JlYXRpbmcgYSBmb3JlaWduIGtleXM6ICR7bmV3S2V5c1xuICAgICAgICAgICAgICAgICAgICAubWFwKChrZXkpID0+IGtleS5uYW1lKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfSBvbiB0YWJsZSBcIiR7dGFibGUubmFtZX1cImAsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnF1ZXJ5UnVubmVyLmNyZWF0ZUZvcmVpZ25LZXlzKHRhYmxlLCBkYkZvcmVpZ25LZXlzKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRHJvcHMgYWxsIGZvcmVpZ24ga2V5cyB3aGVyZSBnaXZlbiBjb2x1bW4gb2YgdGhlIGdpdmVuIHRhYmxlIGlzIGJlaW5nIHVzZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGRyb3BDb2x1bW5SZWZlcmVuY2VkRm9yZWlnbktleXMoXG4gICAgICAgIHRhYmxlUGF0aDogc3RyaW5nLFxuICAgICAgICBjb2x1bW5OYW1lOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5xdWVyeVJ1bm5lci5sb2FkZWRUYWJsZXMuZmluZChcbiAgICAgICAgICAgICh0YWJsZSkgPT4gdGhpcy5nZXRUYWJsZVBhdGgodGFibGUpID09PSB0YWJsZVBhdGgsXG4gICAgICAgIClcbiAgICAgICAgaWYgKCF0YWJsZSkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgdGFibGVzV2l0aEZLOiBUYWJsZVtdID0gW11cbiAgICAgICAgY29uc3QgY29sdW1uRm9yZWlnbktleSA9IHRhYmxlLmZvcmVpZ25LZXlzLmZpbmQoXG4gICAgICAgICAgICAoZm9yZWlnbktleSkgPT4gZm9yZWlnbktleS5jb2x1bW5OYW1lcy5pbmRleE9mKGNvbHVtbk5hbWUpICE9PSAtMSxcbiAgICAgICAgKVxuICAgICAgICBpZiAoY29sdW1uRm9yZWlnbktleSkge1xuICAgICAgICAgICAgY29uc3QgY2xvbmVkVGFibGUgPSB0YWJsZS5jbG9uZSgpXG4gICAgICAgICAgICBjbG9uZWRUYWJsZS5mb3JlaWduS2V5cyA9IFtjb2x1bW5Gb3JlaWduS2V5XVxuICAgICAgICAgICAgdGFibGVzV2l0aEZLLnB1c2goY2xvbmVkVGFibGUpXG4gICAgICAgICAgICB0YWJsZS5yZW1vdmVGb3JlaWduS2V5KGNvbHVtbkZvcmVpZ25LZXkpXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGxvYWRlZFRhYmxlIG9mIHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzKSB7XG4gICAgICAgICAgICBjb25zdCBkZXBlbmRGb3JlaWduS2V5cyA9IGxvYWRlZFRhYmxlLmZvcmVpZ25LZXlzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZm9yZWlnbktleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWJsZVBhdGgoZm9yZWlnbktleSkgPT09IHRhYmxlUGF0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWlnbktleS5yZWZlcmVuY2VkQ29sdW1uTmFtZXMuaW5kZXhPZihjb2x1bW5OYW1lKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKGRlcGVuZEZvcmVpZ25LZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9uZWRUYWJsZSA9IGxvYWRlZFRhYmxlLmNsb25lKClcbiAgICAgICAgICAgICAgICBjbG9uZWRUYWJsZS5mb3JlaWduS2V5cyA9IGRlcGVuZEZvcmVpZ25LZXlzXG4gICAgICAgICAgICAgICAgdGFibGVzV2l0aEZLLnB1c2goY2xvbmVkVGFibGUpXG4gICAgICAgICAgICAgICAgZGVwZW5kRm9yZWlnbktleXMuZm9yRWFjaCgoZGVwZW5kRm9yZWlnbktleSkgPT5cbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkVGFibGUucmVtb3ZlRm9yZWlnbktleShkZXBlbmRGb3JlaWduS2V5KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFibGVzV2l0aEZLLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdGFibGVXaXRoRksgb2YgdGFibGVzV2l0aEZLKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2dlci5sb2dTY2hlbWFCdWlsZChcbiAgICAgICAgICAgICAgICAgICAgYGRyb3BwaW5nIHJlbGF0ZWQgZm9yZWlnbiBrZXlzIG9mICR7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVdpdGhGSy5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH06ICR7dGFibGVXaXRoRksuZm9yZWlnbktleXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGZvcmVpZ25LZXkpID0+IGZvcmVpZ25LZXkubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9YCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5xdWVyeVJ1bm5lci5kcm9wRm9yZWlnbktleXMoXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlV2l0aEZLLFxuICAgICAgICAgICAgICAgICAgICB0YWJsZVdpdGhGSy5mb3JlaWduS2V5cyxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEcm9wcyBhbGwgY29tcG9zaXRlIGluZGljZXMsIHJlbGF0ZWQgdG8gZ2l2ZW4gY29sdW1uLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBkcm9wQ29sdW1uQ29tcG9zaXRlSW5kaWNlcyhcbiAgICAgICAgdGFibGVQYXRoOiBzdHJpbmcsXG4gICAgICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnF1ZXJ5UnVubmVyLmxvYWRlZFRhYmxlcy5maW5kKFxuICAgICAgICAgICAgKHRhYmxlKSA9PiB0aGlzLmdldFRhYmxlUGF0aCh0YWJsZSkgPT09IHRhYmxlUGF0aCxcbiAgICAgICAgKVxuICAgICAgICBpZiAoIXRhYmxlKSByZXR1cm5cblxuICAgICAgICBjb25zdCByZWxhdGVkSW5kaWNlcyA9IHRhYmxlLmluZGljZXMuZmlsdGVyKFxuICAgICAgICAgICAgKGluZGV4KSA9PlxuICAgICAgICAgICAgICAgIGluZGV4LmNvbHVtbk5hbWVzLmxlbmd0aCA+IDEgJiZcbiAgICAgICAgICAgICAgICBpbmRleC5jb2x1bW5OYW1lcy5pbmRleE9mKGNvbHVtbk5hbWUpICE9PSAtMSxcbiAgICAgICAgKVxuICAgICAgICBpZiAocmVsYXRlZEluZGljZXMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1NjaGVtYUJ1aWxkKFxuICAgICAgICAgICAgYGRyb3BwaW5nIHJlbGF0ZWQgaW5kaWNlcyBvZiBcIiR7dGFibGVQYXRofVwiLlwiJHtjb2x1bW5OYW1lfVwiOiAke3JlbGF0ZWRJbmRpY2VzXG4gICAgICAgICAgICAgICAgLm1hcCgoaW5kZXgpID0+IGluZGV4Lm5hbWUpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gLFxuICAgICAgICApXG4gICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZHJvcEluZGljZXModGFibGUsIHJlbGF0ZWRJbmRpY2VzKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERyb3BzIGFsbCBjb21wb3NpdGUgdW5pcXVlcywgcmVsYXRlZCB0byBnaXZlbiBjb2x1bW4uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGRyb3BDb2x1bW5Db21wb3NpdGVVbmlxdWVzKFxuICAgICAgICB0YWJsZVBhdGg6IHN0cmluZyxcbiAgICAgICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0YWJsZSA9IHRoaXMucXVlcnlSdW5uZXIubG9hZGVkVGFibGVzLmZpbmQoXG4gICAgICAgICAgICAodGFibGUpID0+IHRoaXMuZ2V0VGFibGVQYXRoKHRhYmxlKSA9PT0gdGFibGVQYXRoLFxuICAgICAgICApXG4gICAgICAgIGlmICghdGFibGUpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRVbmlxdWVzID0gdGFibGUudW5pcXVlcy5maWx0ZXIoXG4gICAgICAgICAgICAodW5pcXVlKSA9PlxuICAgICAgICAgICAgICAgIHVuaXF1ZS5jb2x1bW5OYW1lcy5sZW5ndGggPiAxICYmXG4gICAgICAgICAgICAgICAgdW5pcXVlLmNvbHVtbk5hbWVzLmluZGV4T2YoY29sdW1uTmFtZSkgIT09IC0xLFxuICAgICAgICApXG4gICAgICAgIGlmIChyZWxhdGVkVW5pcXVlcy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nU2NoZW1hQnVpbGQoXG4gICAgICAgICAgICBgZHJvcHBpbmcgcmVsYXRlZCB1bmlxdWUgY29uc3RyYWludHMgb2YgXCIke3RhYmxlUGF0aH1cIi5cIiR7Y29sdW1uTmFtZX1cIjogJHtyZWxhdGVkVW5pcXVlc1xuICAgICAgICAgICAgICAgIC5tYXAoKHVuaXF1ZSkgPT4gdW5pcXVlLm5hbWUpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gLFxuICAgICAgICApXG4gICAgICAgIGF3YWl0IHRoaXMucXVlcnlSdW5uZXIuZHJvcFVuaXF1ZUNvbnN0cmFpbnRzKHRhYmxlLCByZWxhdGVkVW5pcXVlcylcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG5ldyBjb2x1bW5zIGZyb20gdGhlIGdpdmVuIGNvbHVtbiBtZXRhZGF0YXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG1ldGFkYXRhQ29sdW1uc1RvVGFibGVDb2x1bW5PcHRpb25zKFxuICAgICAgICBjb2x1bW5zOiBDb2x1bW5NZXRhZGF0YVtdLFxuICAgICk6IFRhYmxlQ29sdW1uT3B0aW9uc1tdIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnMubWFwKChjb2x1bW5NZXRhZGF0YSkgPT5cbiAgICAgICAgICAgIFRhYmxlVXRpbHMuY3JlYXRlVGFibGVDb2x1bW5PcHRpb25zKFxuICAgICAgICAgICAgICAgIGNvbHVtbk1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIsXG4gICAgICAgICAgICApLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0eXBlb3JtIHNlcnZpY2UgdGFibGUgZm9yIHN0b3JpbmcgdXNlciBkZWZpbmVkIFZpZXdzIGFuZCBnZW5lcmF0ZSBjb2x1bW5zLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVUeXBlb3JtTWV0YWRhdGFUYWJsZShxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpIHtcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5jdXJyZW50U2NoZW1hXG4gICAgICAgIGNvbnN0IGRhdGFiYXNlID0gdGhpcy5jdXJyZW50RGF0YWJhc2VcbiAgICAgICAgY29uc3QgdHlwZW9ybU1ldGFkYXRhVGFibGUgPSB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLmJ1aWxkVGFibGVOYW1lKFxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLm1ldGFkYXRhVGFibGVOYW1lLFxuICAgICAgICAgICAgc2NoZW1hLFxuICAgICAgICAgICAgZGF0YWJhc2UsXG4gICAgICAgIClcblxuXG5cblxuICAgICAgICBjb25zdCBpc1ByaW1hcnkgPSB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJzcGFubmVyXCJcbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY3JlYXRlVGFibGUoXG4gICAgICAgICAgICBuZXcgVGFibGUoe1xuICAgICAgICAgICAgICAgIGRhdGFiYXNlOiBkYXRhYmFzZSxcbiAgICAgICAgICAgICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgICAgICAgICAgICBuYW1lOiB0eXBlb3JtTWV0YWRhdGFUYWJsZSxcbiAgICAgICAgICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwidHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25uZWN0aW9uLmRyaXZlci5ub3JtYWxpemVUeXBlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm1hcHBlZERhdGFUeXBlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWV0YWRhdGFUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc051bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpbWFyeSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJkYXRhYmFzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25uZWN0aW9uLmRyaXZlci5ub3JtYWxpemVUeXBlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm1hcHBlZERhdGFUeXBlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWV0YWRhdGFEYXRhYmFzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNOdWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpbWFyeSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzY2hlbWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuY29ubmVjdGlvbi5kcml2ZXIubm9ybWFsaXplVHlwZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25uZWN0aW9uLmRyaXZlci5tYXBwZWREYXRhVHlwZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1ldGFkYXRhU2NoZW1hLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc051bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmltYXJ5LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInRhYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm5vcm1hbGl6ZVR5cGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuY29ubmVjdGlvbi5kcml2ZXIubWFwcGVkRGF0YVR5cGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tZXRhZGF0YVRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc051bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmltYXJ5LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuY29ubmVjdGlvbi5kcml2ZXIubm9ybWFsaXplVHlwZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25uZWN0aW9uLmRyaXZlci5tYXBwZWREYXRhVHlwZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1ldGFkYXRhTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNOdWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpbWFyeSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ2YWx1ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25uZWN0aW9uLmRyaXZlci5ub3JtYWxpemVUeXBlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm1hcHBlZERhdGFUeXBlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWV0YWRhdGFWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNOdWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpbWFyeSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICApXG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL3NjaGVtYS1idWlsZGVyL1JkYm1zU2NoZW1hQnVpbGRlci50cyJdfQ==