typeorm 0.3.21 → 0.3.22-dev.04ca83a

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 (1026) hide show
  1. package/README.md +1315 -1315
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/cache/QueryResultCache.js.map +1 -1
  4. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  5. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  6. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  7. package/browser/cli-ts-node-commonjs.js.map +1 -1
  8. package/browser/cli-ts-node-esm.js.map +1 -1
  9. package/browser/common/DeepPartial.js.map +1 -1
  10. package/browser/common/EntityTarget.js.map +1 -1
  11. package/browser/common/MixedList.js.map +1 -1
  12. package/browser/common/NonNever.js.map +1 -1
  13. package/browser/common/ObjectLiteral.js.map +1 -1
  14. package/browser/common/ObjectType.js.map +1 -1
  15. package/browser/common/PickKeysByType.js.map +1 -1
  16. package/browser/common/RelationType.js.map +1 -1
  17. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  18. package/browser/connection/Connection.js.map +1 -1
  19. package/browser/connection/ConnectionManager.js.map +1 -1
  20. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  21. package/browser/connection/ConnectionOptions.js.map +1 -1
  22. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  24. package/browser/container.js.map +1 -1
  25. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  26. package/browser/data-source/DataSource.js.map +1 -1
  27. package/browser/data-source/DataSourceOptions.js.map +1 -1
  28. package/browser/data-source/index.js.map +1 -1
  29. package/browser/decorator/Check.js.map +1 -1
  30. package/browser/decorator/EntityRepository.js.map +1 -1
  31. package/browser/decorator/Exclusion.js.map +1 -1
  32. package/browser/decorator/Generated.js.map +1 -1
  33. package/browser/decorator/Index.js.map +1 -1
  34. package/browser/decorator/Unique.js.map +1 -1
  35. package/browser/decorator/columns/Column.js.map +1 -1
  36. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  37. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  38. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  39. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  40. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  41. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  42. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  43. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  44. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  45. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  46. package/browser/decorator/entity/Entity.js.map +1 -1
  47. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  48. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  49. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  50. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  51. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  52. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  53. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  54. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  55. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  56. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  57. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  58. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  59. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  60. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  61. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  62. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  63. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  64. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  65. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  66. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  67. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  68. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  69. package/browser/decorator/options/EntityOptions.js.map +1 -1
  70. package/browser/decorator/options/IndexOptions.js.map +1 -1
  71. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  72. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  73. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  74. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  75. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  76. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  77. package/browser/decorator/options/RelationOptions.js.map +1 -1
  78. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  79. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  80. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  81. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  82. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  83. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  84. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  85. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  86. package/browser/decorator/relations/JoinTable.js.map +1 -1
  87. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  88. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  89. package/browser/decorator/relations/OneToMany.js.map +1 -1
  90. package/browser/decorator/relations/OneToOne.js.map +1 -1
  91. package/browser/decorator/relations/RelationCount.js.map +1 -1
  92. package/browser/decorator/relations/RelationId.js.map +1 -1
  93. package/browser/decorator/tree/Tree.js.map +1 -1
  94. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  95. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  96. package/browser/decorator/tree/TreeParent.js.map +1 -1
  97. package/browser/driver/Driver.js.map +1 -1
  98. package/browser/driver/DriverFactory.js.map +1 -1
  99. package/browser/driver/DriverUtils.js.map +1 -1
  100. package/browser/driver/Query.js.map +1 -1
  101. package/browser/driver/SqlInMemory.js.map +1 -1
  102. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  103. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  104. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  105. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  106. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
  107. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  108. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  109. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  110. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  111. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  112. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  113. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  114. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  115. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  116. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  117. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  118. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  119. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  120. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  121. package/browser/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  122. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  123. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  124. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  125. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  126. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  127. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  128. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  129. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  130. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  131. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  132. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  133. package/browser/driver/mongodb/typings.js.map +1 -1
  134. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  135. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  136. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  137. package/browser/driver/mysql/MysqlQueryRunner.js +77 -80
  138. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  139. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  140. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  141. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  142. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  143. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  144. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  145. package/browser/driver/oracle/OracleQueryRunner.js +4 -6
  146. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  147. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  148. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  149. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  150. package/browser/driver/postgres/PostgresQueryRunner.js +6 -9
  151. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  152. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  153. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  154. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  155. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  156. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  157. package/browser/driver/sap/SapDriver.js +2 -0
  158. package/browser/driver/sap/SapDriver.js.map +1 -1
  159. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  160. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  161. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  162. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  163. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  164. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  165. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  166. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  167. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  168. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
  169. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  170. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  171. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  172. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  173. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  174. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  175. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  176. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  177. package/browser/driver/sqlserver/SqlServerQueryRunner.js +31 -32
  178. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  179. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  180. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  181. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  182. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  183. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  184. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  185. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  186. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  187. package/browser/driver/types/ColumnTypes.js.map +1 -1
  188. package/browser/driver/types/CteCapabilities.js.map +1 -1
  189. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  190. package/browser/driver/types/DatabaseType.js.map +1 -1
  191. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  192. package/browser/driver/types/IsolationLevel.js.map +1 -1
  193. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  194. package/browser/driver/types/MetadataTableType.js.map +1 -1
  195. package/browser/driver/types/ReplicationMode.js.map +1 -1
  196. package/browser/driver/types/UpsertType.js.map +1 -1
  197. package/browser/entity-manager/EntityManager.js.map +1 -1
  198. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  199. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  200. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  201. package/browser/entity-schema/EntitySchema.js.map +1 -1
  202. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  203. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  204. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  205. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  206. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  207. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  208. package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  209. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  210. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  211. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  212. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  213. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  214. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  215. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  216. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  217. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  218. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  219. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  220. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  221. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  222. package/browser/error/CircularRelationsError.js.map +1 -1
  223. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  224. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  225. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  226. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  227. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  228. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  229. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  230. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  231. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  232. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  233. package/browser/error/EntityNotFoundError.js.map +1 -1
  234. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  235. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  236. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  237. package/browser/error/InitializedRelationError.js.map +1 -1
  238. package/browser/error/InsertValuesMissingError.js.map +1 -1
  239. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  240. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  241. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  242. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  243. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  244. package/browser/error/MissingDriverError.js.map +1 -1
  245. package/browser/error/MissingJoinColumnError.js.map +1 -1
  246. package/browser/error/MissingJoinTableError.js.map +1 -1
  247. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  248. package/browser/error/MustBeEntityError.js.map +1 -1
  249. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  250. package/browser/error/NestedSetMultipleRootError.js.map +1 -1
  251. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  252. package/browser/error/NoConnectionOptionError.js.map +1 -1
  253. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  254. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  255. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  256. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  257. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  258. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  259. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  260. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  261. package/browser/error/QueryFailedError.js.map +1 -1
  262. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  263. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  264. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  265. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  266. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  267. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  268. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  269. package/browser/error/TransactionNotStartedError.js.map +1 -1
  270. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  271. package/browser/error/TypeORMError.js.map +1 -1
  272. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  273. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  274. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  275. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  276. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  277. package/browser/error/index.js.map +1 -1
  278. package/browser/find-options/EqualOperator.js.map +1 -1
  279. package/browser/find-options/FindManyOptions.js.map +1 -1
  280. package/browser/find-options/FindOneOptions.js.map +1 -1
  281. package/browser/find-options/FindOperator.js.map +1 -1
  282. package/browser/find-options/FindOperatorType.js.map +1 -1
  283. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  284. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  285. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  286. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  287. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  288. package/browser/find-options/FindTreeOptions.js.map +1 -1
  289. package/browser/find-options/JoinOptions.js.map +1 -1
  290. package/browser/find-options/OrderByCondition.js.map +1 -1
  291. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  292. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  293. package/browser/find-options/operator/And.js.map +1 -1
  294. package/browser/find-options/operator/Any.js.map +1 -1
  295. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  296. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  297. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  298. package/browser/find-options/operator/Between.js.map +1 -1
  299. package/browser/find-options/operator/Equal.js.map +1 -1
  300. package/browser/find-options/operator/ILike.js.map +1 -1
  301. package/browser/find-options/operator/In.js.map +1 -1
  302. package/browser/find-options/operator/IsNull.js.map +1 -1
  303. package/browser/find-options/operator/JsonContains.js.map +1 -1
  304. package/browser/find-options/operator/LessThan.js.map +1 -1
  305. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  306. package/browser/find-options/operator/Like.js.map +1 -1
  307. package/browser/find-options/operator/MoreThan.js.map +1 -1
  308. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  309. package/browser/find-options/operator/Not.js.map +1 -1
  310. package/browser/find-options/operator/Or.js.map +1 -1
  311. package/browser/find-options/operator/Raw.js.map +1 -1
  312. package/browser/globals.js.map +1 -1
  313. package/browser/index.js.map +1 -1
  314. package/browser/logger/AbstractLogger.js.map +1 -1
  315. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  316. package/browser/logger/DebugLogger.js.map +1 -1
  317. package/browser/logger/FileLogger.js.map +1 -1
  318. package/browser/logger/Logger.js.map +1 -1
  319. package/browser/logger/LoggerFactory.js.map +1 -1
  320. package/browser/logger/LoggerOptions.js.map +1 -1
  321. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  322. package/browser/metadata/CheckMetadata.js.map +1 -1
  323. package/browser/metadata/ColumnMetadata.js.map +1 -1
  324. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  325. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  326. package/browser/metadata/EntityMetadata.js.map +1 -1
  327. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  328. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  329. package/browser/metadata/IndexMetadata.js.map +1 -1
  330. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  331. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  332. package/browser/metadata/RelationMetadata.js.map +1 -1
  333. package/browser/metadata/UniqueMetadata.js.map +1 -1
  334. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  335. package/browser/metadata/types/DeferrableType.js.map +1 -1
  336. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  337. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  338. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  339. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  340. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  341. package/browser/metadata/types/RelationTypes.js.map +1 -1
  342. package/browser/metadata/types/TableTypes.js.map +1 -1
  343. package/browser/metadata/types/TreeTypes.js.map +1 -1
  344. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  345. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  346. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  347. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  348. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  349. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  350. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  351. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  352. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  353. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  354. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  355. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  356. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  357. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  358. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  359. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  360. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  361. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  362. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  363. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  364. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  365. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  366. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  367. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  368. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  369. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  370. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  371. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  372. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  373. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  374. package/browser/migration/Migration.js.map +1 -1
  375. package/browser/migration/MigrationExecutor.js.map +1 -1
  376. package/browser/migration/MigrationInterface.js.map +1 -1
  377. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  378. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  379. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  380. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  381. package/browser/persistence/Subject.js.map +1 -1
  382. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  383. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  384. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  385. package/browser/persistence/SubjectExecutor.js.map +1 -1
  386. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  387. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  388. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  389. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  390. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  391. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  392. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  393. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  394. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
  395. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
  396. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  397. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
  398. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  399. package/browser/platform/PlatformTools.js.map +1 -1
  400. package/browser/query-builder/Alias.js.map +1 -1
  401. package/browser/query-builder/Brackets.js.map +1 -1
  402. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  403. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  404. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  405. package/browser/query-builder/JoinAttribute.js.map +1 -1
  406. package/browser/query-builder/JoinOptions.js.map +1 -1
  407. package/browser/query-builder/NotBrackets.js.map +1 -1
  408. package/browser/query-builder/QueryBuilder.js.map +1 -1
  409. package/browser/query-builder/QueryBuilderCte.js.map +1 -1
  410. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  411. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  412. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  413. package/browser/query-builder/RelationIdLoader.js +3 -2
  414. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  415. package/browser/query-builder/RelationLoader.js.map +1 -1
  416. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  417. package/browser/query-builder/RelationRemover.js.map +1 -1
  418. package/browser/query-builder/RelationUpdater.js.map +1 -1
  419. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  420. package/browser/query-builder/SelectQuery.js.map +1 -1
  421. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  422. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  423. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  424. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  425. package/browser/query-builder/WhereClause.js.map +1 -1
  426. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  427. package/browser/query-builder/index.js.map +1 -1
  428. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  429. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  430. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  431. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  432. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  433. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  434. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  435. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  436. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  437. package/browser/query-builder/result/InsertResult.js.map +1 -1
  438. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  439. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  440. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  441. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  442. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  443. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  444. package/browser/query-runner/QueryLock.js.map +1 -1
  445. package/browser/query-runner/QueryResult.js.map +1 -1
  446. package/browser/query-runner/QueryRunner.js.map +1 -1
  447. package/browser/repository/AbstractRepository.js.map +1 -1
  448. package/browser/repository/BaseEntity.js.map +1 -1
  449. package/browser/repository/EntityId.js.map +1 -1
  450. package/browser/repository/FindTreesOptions.js.map +1 -1
  451. package/browser/repository/MongoRepository.js.map +1 -1
  452. package/browser/repository/RemoveOptions.js.map +1 -1
  453. package/browser/repository/Repository.js.map +1 -1
  454. package/browser/repository/SaveOptions.js.map +1 -1
  455. package/browser/repository/TreeRepository.js.map +1 -1
  456. package/browser/repository/UpsertOptions.js.map +1 -1
  457. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  458. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  459. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  460. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  461. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  462. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  463. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  464. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  465. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  466. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  467. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  468. package/browser/schema-builder/table/Table.js.map +1 -1
  469. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  470. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  471. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  472. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  473. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  474. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  475. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  476. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  477. package/browser/schema-builder/view/View.js.map +1 -1
  478. package/browser/subscriber/Broadcaster.js.map +1 -1
  479. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  480. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  481. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  482. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  483. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  484. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  485. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  486. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  487. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  488. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  489. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  490. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  491. package/browser/util/ApplyValueTransformers.js.map +1 -1
  492. package/browser/util/DateUtils.js.map +1 -1
  493. package/browser/util/DepGraph.js.map +1 -1
  494. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  495. package/browser/util/ImportUtils.js.map +1 -1
  496. package/browser/util/InstanceChecker.js.map +1 -1
  497. package/browser/util/ObjectUtils.js.map +1 -1
  498. package/browser/util/OrmUtils.js.map +1 -1
  499. package/browser/util/PathUtils.js.map +1 -1
  500. package/browser/util/RandomGenerator.js.map +1 -1
  501. package/browser/util/StringUtils.js.map +1 -1
  502. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  503. package/browser/util/VersionUtils.js.map +1 -1
  504. package/browser/util/escapeRegExp.js.map +1 -1
  505. package/cache/DbQueryResultCache.js.map +1 -1
  506. package/cache/QueryResultCache.js.map +1 -1
  507. package/cache/QueryResultCacheFactory.js.map +1 -1
  508. package/cache/QueryResultCacheOptions.js.map +1 -1
  509. package/cache/RedisQueryResultCache.js.map +1 -1
  510. package/cli-ts-node-commonjs.js.map +1 -1
  511. package/cli-ts-node-esm.js.map +1 -1
  512. package/cli.js.map +1 -1
  513. package/commands/CacheClearCommand.js.map +1 -1
  514. package/commands/CommandUtils.js.map +1 -1
  515. package/commands/EntityCreateCommand.js +6 -6
  516. package/commands/EntityCreateCommand.js.map +1 -1
  517. package/commands/InitCommand.js +294 -302
  518. package/commands/InitCommand.js.map +1 -1
  519. package/commands/MigrationCreateCommand.js +22 -22
  520. package/commands/MigrationCreateCommand.js.map +1 -1
  521. package/commands/MigrationGenerateCommand.js +31 -31
  522. package/commands/MigrationGenerateCommand.js.map +1 -1
  523. package/commands/MigrationRevertCommand.js.map +1 -1
  524. package/commands/MigrationRunCommand.js.map +1 -1
  525. package/commands/MigrationShowCommand.js.map +1 -1
  526. package/commands/QueryCommand.js.map +1 -1
  527. package/commands/SchemaDropCommand.js.map +1 -1
  528. package/commands/SchemaLogCommand.js.map +1 -1
  529. package/commands/SchemaSyncCommand.js.map +1 -1
  530. package/commands/SubscriberCreateCommand.js +6 -6
  531. package/commands/SubscriberCreateCommand.js.map +1 -1
  532. package/commands/VersionCommand.js.map +1 -1
  533. package/common/DeepPartial.js.map +1 -1
  534. package/common/EntityTarget.js.map +1 -1
  535. package/common/MixedList.js.map +1 -1
  536. package/common/NonNever.js.map +1 -1
  537. package/common/ObjectLiteral.js.map +1 -1
  538. package/common/ObjectType.js.map +1 -1
  539. package/common/PickKeysByType.js.map +1 -1
  540. package/common/RelationType.js.map +1 -1
  541. package/connection/BaseConnectionOptions.js.map +1 -1
  542. package/connection/Connection.js.map +1 -1
  543. package/connection/ConnectionManager.js.map +1 -1
  544. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  545. package/connection/ConnectionOptions.js.map +1 -1
  546. package/connection/ConnectionOptionsReader.js.map +1 -1
  547. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  548. package/container.js.map +1 -1
  549. package/data-source/BaseDataSourceOptions.js.map +1 -1
  550. package/data-source/DataSource.js.map +1 -1
  551. package/data-source/DataSourceOptions.js.map +1 -1
  552. package/data-source/index.js.map +1 -1
  553. package/decorator/Check.js.map +1 -1
  554. package/decorator/EntityRepository.js.map +1 -1
  555. package/decorator/Exclusion.js.map +1 -1
  556. package/decorator/Generated.js.map +1 -1
  557. package/decorator/Index.js.map +1 -1
  558. package/decorator/Unique.js.map +1 -1
  559. package/decorator/columns/Column.js.map +1 -1
  560. package/decorator/columns/CreateDateColumn.js.map +1 -1
  561. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  562. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  563. package/decorator/columns/PrimaryColumn.js.map +1 -1
  564. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  565. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  566. package/decorator/columns/VersionColumn.js.map +1 -1
  567. package/decorator/columns/ViewColumn.js.map +1 -1
  568. package/decorator/columns/VirtualColumn.js.map +1 -1
  569. package/decorator/entity/ChildEntity.js.map +1 -1
  570. package/decorator/entity/Entity.js.map +1 -1
  571. package/decorator/entity/TableInheritance.js.map +1 -1
  572. package/decorator/entity-view/ViewEntity.js.map +1 -1
  573. package/decorator/listeners/AfterInsert.js.map +1 -1
  574. package/decorator/listeners/AfterLoad.js.map +1 -1
  575. package/decorator/listeners/AfterRecover.js.map +1 -1
  576. package/decorator/listeners/AfterRemove.js.map +1 -1
  577. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  578. package/decorator/listeners/AfterUpdate.js.map +1 -1
  579. package/decorator/listeners/BeforeInsert.js.map +1 -1
  580. package/decorator/listeners/BeforeRecover.js.map +1 -1
  581. package/decorator/listeners/BeforeRemove.js.map +1 -1
  582. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  583. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  584. package/decorator/listeners/EventSubscriber.js.map +1 -1
  585. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  586. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  587. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  588. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  589. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  590. package/decorator/options/ColumnOptions.js.map +1 -1
  591. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  592. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  593. package/decorator/options/EntityOptions.js.map +1 -1
  594. package/decorator/options/IndexOptions.js.map +1 -1
  595. package/decorator/options/JoinColumnOptions.js.map +1 -1
  596. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  597. package/decorator/options/JoinTableOptions.js.map +1 -1
  598. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  599. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  600. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  601. package/decorator/options/RelationOptions.js.map +1 -1
  602. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  603. package/decorator/options/TransactionOptions.js.map +1 -1
  604. package/decorator/options/UniqueOptions.js.map +1 -1
  605. package/decorator/options/ValueTransformer.js.map +1 -1
  606. package/decorator/options/ViewColumnOptions.js.map +1 -1
  607. package/decorator/options/ViewEntityOptions.js.map +1 -1
  608. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  609. package/decorator/relations/JoinColumn.js.map +1 -1
  610. package/decorator/relations/JoinTable.js.map +1 -1
  611. package/decorator/relations/ManyToMany.js.map +1 -1
  612. package/decorator/relations/ManyToOne.js.map +1 -1
  613. package/decorator/relations/OneToMany.js.map +1 -1
  614. package/decorator/relations/OneToOne.js.map +1 -1
  615. package/decorator/relations/RelationCount.js.map +1 -1
  616. package/decorator/relations/RelationId.js.map +1 -1
  617. package/decorator/tree/Tree.js.map +1 -1
  618. package/decorator/tree/TreeChildren.js.map +1 -1
  619. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  620. package/decorator/tree/TreeParent.js.map +1 -1
  621. package/driver/Driver.js.map +1 -1
  622. package/driver/DriverFactory.js.map +1 -1
  623. package/driver/DriverUtils.js.map +1 -1
  624. package/driver/Query.js.map +1 -1
  625. package/driver/SqlInMemory.js.map +1 -1
  626. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  627. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  628. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  629. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  630. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
  631. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  632. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  633. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  634. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  635. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  636. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  637. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  638. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  639. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  640. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  641. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  642. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  643. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  644. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  645. package/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  646. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  647. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  648. package/driver/cordova/CordovaDriver.js.map +1 -1
  649. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  650. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  651. package/driver/expo/ExpoDriver.js.map +1 -1
  652. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  653. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  654. package/driver/mongodb/MongoDriver.js.map +1 -1
  655. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  656. package/driver/mongodb/bson.typings.js.map +1 -1
  657. package/driver/mongodb/typings.js.map +1 -1
  658. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  659. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  660. package/driver/mysql/MysqlDriver.js.map +1 -1
  661. package/driver/mysql/MysqlQueryRunner.js +77 -80
  662. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  663. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  664. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  665. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  666. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  667. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  668. package/driver/oracle/OracleDriver.js.map +1 -1
  669. package/driver/oracle/OracleQueryRunner.js +4 -6
  670. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  671. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  672. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  673. package/driver/postgres/PostgresDriver.js.map +1 -1
  674. package/driver/postgres/PostgresQueryRunner.js +6 -9
  675. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  676. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  677. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  678. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  679. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  680. package/driver/sap/SapConnectionOptions.js.map +1 -1
  681. package/driver/sap/SapDriver.js +2 -0
  682. package/driver/sap/SapDriver.js.map +1 -1
  683. package/driver/sap/SapQueryRunner.js.map +1 -1
  684. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  685. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  686. package/driver/spanner/SpannerDriver.js.map +1 -1
  687. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  688. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  689. package/driver/sqlite/SqliteDriver.js.map +1 -1
  690. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  691. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  692. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
  693. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  694. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  695. package/driver/sqljs/SqljsDriver.js.map +1 -1
  696. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  697. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  698. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  699. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  700. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  701. package/driver/sqlserver/SqlServerQueryRunner.js +31 -32
  702. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  703. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  704. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  705. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  706. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  707. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  708. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  709. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  710. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  711. package/driver/types/ColumnTypes.js.map +1 -1
  712. package/driver/types/CteCapabilities.js.map +1 -1
  713. package/driver/types/DataTypeDefaults.js.map +1 -1
  714. package/driver/types/DatabaseType.js.map +1 -1
  715. package/driver/types/GeoJsonTypes.js.map +1 -1
  716. package/driver/types/IsolationLevel.js.map +1 -1
  717. package/driver/types/MappedColumnTypes.js.map +1 -1
  718. package/driver/types/MetadataTableType.js.map +1 -1
  719. package/driver/types/ReplicationMode.js.map +1 -1
  720. package/driver/types/UpsertType.js.map +1 -1
  721. package/entity-manager/EntityManager.js.map +1 -1
  722. package/entity-manager/EntityManagerFactory.js.map +1 -1
  723. package/entity-manager/MongoEntityManager.js.map +1 -1
  724. package/entity-manager/SqljsEntityManager.js.map +1 -1
  725. package/entity-schema/EntitySchema.js.map +1 -1
  726. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  727. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  728. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  729. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  730. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  731. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  732. package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  733. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  734. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  735. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  736. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  737. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  738. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  739. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  740. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  741. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  742. package/error/CannotDetermineEntityError.js.map +1 -1
  743. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  744. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  745. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  746. package/error/CircularRelationsError.js.map +1 -1
  747. package/error/ColumnTypeUndefinedError.js.map +1 -1
  748. package/error/ConnectionIsNotSetError.js.map +1 -1
  749. package/error/ConnectionNotFoundError.js.map +1 -1
  750. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  751. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  752. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  753. package/error/DataTypeNotSupportedError.js.map +1 -1
  754. package/error/DriverOptionNotSetError.js.map +1 -1
  755. package/error/DriverPackageNotInstalledError.js.map +1 -1
  756. package/error/EntityMetadataNotFoundError.js.map +1 -1
  757. package/error/EntityNotFoundError.js.map +1 -1
  758. package/error/EntityPropertyNotFoundError.js.map +1 -1
  759. package/error/FindRelationsNotFoundError.js.map +1 -1
  760. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  761. package/error/InitializedRelationError.js.map +1 -1
  762. package/error/InsertValuesMissingError.js.map +1 -1
  763. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  764. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  765. package/error/MetadataAlreadyExistsError.js.map +1 -1
  766. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  767. package/error/MissingDeleteDateColumnError.js.map +1 -1
  768. package/error/MissingDriverError.js.map +1 -1
  769. package/error/MissingJoinColumnError.js.map +1 -1
  770. package/error/MissingJoinTableError.js.map +1 -1
  771. package/error/MissingPrimaryColumnError.js.map +1 -1
  772. package/error/MustBeEntityError.js.map +1 -1
  773. package/error/NamingStrategyNotFoundError.js.map +1 -1
  774. package/error/NestedSetMultipleRootError.js.map +1 -1
  775. package/error/NoConnectionForRepositoryError.js.map +1 -1
  776. package/error/NoConnectionOptionError.js.map +1 -1
  777. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  778. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  779. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  780. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  781. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  782. package/error/PersistedEntityNotFoundError.js.map +1 -1
  783. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  784. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  785. package/error/QueryFailedError.js.map +1 -1
  786. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  787. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  788. package/error/RepositoryNotTreeError.js.map +1 -1
  789. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  790. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  791. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  792. package/error/TransactionAlreadyStartedError.js.map +1 -1
  793. package/error/TransactionNotStartedError.js.map +1 -1
  794. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  795. package/error/TypeORMError.js.map +1 -1
  796. package/error/UpdateValuesMissingError.js.map +1 -1
  797. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  798. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  799. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  800. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  801. package/error/index.js.map +1 -1
  802. package/find-options/EqualOperator.js.map +1 -1
  803. package/find-options/FindManyOptions.js.map +1 -1
  804. package/find-options/FindOneOptions.js.map +1 -1
  805. package/find-options/FindOperator.js.map +1 -1
  806. package/find-options/FindOperatorType.js.map +1 -1
  807. package/find-options/FindOptionsOrder.js.map +1 -1
  808. package/find-options/FindOptionsRelations.js.map +1 -1
  809. package/find-options/FindOptionsSelect.js.map +1 -1
  810. package/find-options/FindOptionsUtils.js.map +1 -1
  811. package/find-options/FindOptionsWhere.js.map +1 -1
  812. package/find-options/FindTreeOptions.js.map +1 -1
  813. package/find-options/JoinOptions.js.map +1 -1
  814. package/find-options/OrderByCondition.js.map +1 -1
  815. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  816. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  817. package/find-options/operator/And.js.map +1 -1
  818. package/find-options/operator/Any.js.map +1 -1
  819. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  820. package/find-options/operator/ArrayContains.js.map +1 -1
  821. package/find-options/operator/ArrayOverlap.js.map +1 -1
  822. package/find-options/operator/Between.js.map +1 -1
  823. package/find-options/operator/Equal.js.map +1 -1
  824. package/find-options/operator/ILike.js.map +1 -1
  825. package/find-options/operator/In.js.map +1 -1
  826. package/find-options/operator/IsNull.js.map +1 -1
  827. package/find-options/operator/JsonContains.js.map +1 -1
  828. package/find-options/operator/LessThan.js.map +1 -1
  829. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  830. package/find-options/operator/Like.js.map +1 -1
  831. package/find-options/operator/MoreThan.js.map +1 -1
  832. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  833. package/find-options/operator/Not.js.map +1 -1
  834. package/find-options/operator/Or.js.map +1 -1
  835. package/find-options/operator/Raw.js.map +1 -1
  836. package/globals.js.map +1 -1
  837. package/index.js.map +1 -1
  838. package/logger/AbstractLogger.js.map +1 -1
  839. package/logger/AdvancedConsoleLogger.js.map +1 -1
  840. package/logger/DebugLogger.js.map +1 -1
  841. package/logger/FileLogger.js.map +1 -1
  842. package/logger/Logger.js.map +1 -1
  843. package/logger/LoggerFactory.js.map +1 -1
  844. package/logger/LoggerOptions.js.map +1 -1
  845. package/logger/SimpleConsoleLogger.js.map +1 -1
  846. package/metadata/CheckMetadata.js.map +1 -1
  847. package/metadata/ColumnMetadata.js.map +1 -1
  848. package/metadata/EmbeddedMetadata.js.map +1 -1
  849. package/metadata/EntityListenerMetadata.js.map +1 -1
  850. package/metadata/EntityMetadata.js.map +1 -1
  851. package/metadata/ExclusionMetadata.js.map +1 -1
  852. package/metadata/ForeignKeyMetadata.js.map +1 -1
  853. package/metadata/IndexMetadata.js.map +1 -1
  854. package/metadata/RelationCountMetadata.js.map +1 -1
  855. package/metadata/RelationIdMetadata.js.map +1 -1
  856. package/metadata/RelationMetadata.js.map +1 -1
  857. package/metadata/UniqueMetadata.js.map +1 -1
  858. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  859. package/metadata/types/DeferrableType.js.map +1 -1
  860. package/metadata/types/EventListenerTypes.js.map +1 -1
  861. package/metadata/types/OnDeleteType.js.map +1 -1
  862. package/metadata/types/OnUpdateType.js.map +1 -1
  863. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  864. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  865. package/metadata/types/RelationTypes.js.map +1 -1
  866. package/metadata/types/TableTypes.js.map +1 -1
  867. package/metadata/types/TreeTypes.js.map +1 -1
  868. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  869. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  870. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  871. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  872. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  873. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  874. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  875. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  876. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  877. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  878. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  879. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  880. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  881. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  882. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  883. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  884. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  885. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  886. package/metadata-args/TableMetadataArgs.js.map +1 -1
  887. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  888. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  889. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  890. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  891. package/metadata-args/types/ColumnMode.js.map +1 -1
  892. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  893. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  894. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  895. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  896. package/metadata-builder/MetadataUtils.js.map +1 -1
  897. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  898. package/migration/Migration.js.map +1 -1
  899. package/migration/MigrationExecutor.js.map +1 -1
  900. package/migration/MigrationInterface.js.map +1 -1
  901. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  902. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  903. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  904. package/package.json +1 -260
  905. package/persistence/EntityPersistExecutor.js.map +1 -1
  906. package/persistence/Subject.js.map +1 -1
  907. package/persistence/SubjectChangeMap.js.map +1 -1
  908. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  909. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  910. package/persistence/SubjectExecutor.js.map +1 -1
  911. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  912. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  913. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  914. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  915. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  916. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  917. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  918. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  919. package/platform/PlatformTools.js.map +1 -1
  920. package/query-builder/Alias.js.map +1 -1
  921. package/query-builder/Brackets.js.map +1 -1
  922. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  923. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  924. package/query-builder/InsertQueryBuilder.js.map +1 -1
  925. package/query-builder/JoinAttribute.js.map +1 -1
  926. package/query-builder/JoinOptions.js.map +1 -1
  927. package/query-builder/NotBrackets.js.map +1 -1
  928. package/query-builder/QueryBuilder.js.map +1 -1
  929. package/query-builder/QueryBuilderCte.js.map +1 -1
  930. package/query-builder/QueryBuilderUtils.js.map +1 -1
  931. package/query-builder/QueryExpressionMap.js.map +1 -1
  932. package/query-builder/QueryPartialEntity.js.map +1 -1
  933. package/query-builder/RelationIdLoader.js +3 -2
  934. package/query-builder/RelationIdLoader.js.map +1 -1
  935. package/query-builder/RelationLoader.js.map +1 -1
  936. package/query-builder/RelationQueryBuilder.js.map +1 -1
  937. package/query-builder/RelationRemover.js.map +1 -1
  938. package/query-builder/RelationUpdater.js.map +1 -1
  939. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  940. package/query-builder/SelectQuery.js.map +1 -1
  941. package/query-builder/SelectQueryBuilder.js.map +1 -1
  942. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  943. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  944. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  945. package/query-builder/WhereClause.js.map +1 -1
  946. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  947. package/query-builder/index.js.map +1 -1
  948. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  949. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  950. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  951. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  952. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  953. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  954. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  955. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  956. package/query-builder/result/DeleteResult.js.map +1 -1
  957. package/query-builder/result/InsertResult.js.map +1 -1
  958. package/query-builder/result/UpdateResult.js.map +1 -1
  959. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  960. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  961. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  963. package/query-runner/BaseQueryRunner.js.map +1 -1
  964. package/query-runner/QueryLock.js.map +1 -1
  965. package/query-runner/QueryResult.js.map +1 -1
  966. package/query-runner/QueryRunner.js.map +1 -1
  967. package/repository/AbstractRepository.js.map +1 -1
  968. package/repository/BaseEntity.js.map +1 -1
  969. package/repository/EntityId.js.map +1 -1
  970. package/repository/FindTreesOptions.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/RemoveOptions.js.map +1 -1
  973. package/repository/Repository.js.map +1 -1
  974. package/repository/SaveOptions.js.map +1 -1
  975. package/repository/TreeRepository.js.map +1 -1
  976. package/repository/UpsertOptions.js.map +1 -1
  977. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  978. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  979. package/schema-builder/SchemaBuilder.js.map +1 -1
  980. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  981. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  982. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  983. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  984. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  985. package/schema-builder/options/TableOptions.js.map +1 -1
  986. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  987. package/schema-builder/options/ViewOptions.js.map +1 -1
  988. package/schema-builder/table/Table.js.map +1 -1
  989. package/schema-builder/table/TableCheck.js.map +1 -1
  990. package/schema-builder/table/TableColumn.js.map +1 -1
  991. package/schema-builder/table/TableExclusion.js.map +1 -1
  992. package/schema-builder/table/TableForeignKey.js.map +1 -1
  993. package/schema-builder/table/TableIndex.js.map +1 -1
  994. package/schema-builder/table/TableUnique.js.map +1 -1
  995. package/schema-builder/util/TableUtils.js.map +1 -1
  996. package/schema-builder/util/ViewUtils.js.map +1 -1
  997. package/schema-builder/view/View.js.map +1 -1
  998. package/subscriber/Broadcaster.js.map +1 -1
  999. package/subscriber/BroadcasterResult.js.map +1 -1
  1000. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1001. package/subscriber/event/InsertEvent.js.map +1 -1
  1002. package/subscriber/event/LoadEvent.js.map +1 -1
  1003. package/subscriber/event/QueryEvent.js.map +1 -1
  1004. package/subscriber/event/RecoverEvent.js.map +1 -1
  1005. package/subscriber/event/RemoveEvent.js.map +1 -1
  1006. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1007. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1008. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1009. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  1010. package/subscriber/event/UpdateEvent.js.map +1 -1
  1011. package/typeorm-class-transformer-shim.js +271 -271
  1012. package/typeorm-model-shim.js +295 -295
  1013. package/util/ApplyValueTransformers.js.map +1 -1
  1014. package/util/DateUtils.js.map +1 -1
  1015. package/util/DepGraph.js.map +1 -1
  1016. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1017. package/util/ImportUtils.js.map +1 -1
  1018. package/util/InstanceChecker.js.map +1 -1
  1019. package/util/ObjectUtils.js.map +1 -1
  1020. package/util/OrmUtils.js.map +1 -1
  1021. package/util/PathUtils.js.map +1 -1
  1022. package/util/RandomGenerator.js.map +1 -1
  1023. package/util/StringUtils.js.map +1 -1
  1024. package/util/TreeRepositoryUtils.js.map +1 -1
  1025. package/util/VersionUtils.js.map +1 -1
  1026. package/util/escapeRegExp.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/DbQueryResultCache.ts"],"names":[],"mappings":"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","file":"DbQueryResultCache.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { MssqlParameter } from \"../driver/sqlserver/MssqlParameter\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\nimport { Table } from \"../schema-builder/table/Table\"\r\nimport { QueryResultCache } from \"./QueryResultCache\"\r\nimport { QueryResultCacheOptions } from \"./QueryResultCacheOptions\"\r\nimport { v4 as uuidv4 } from \"uuid\"\r\n\r\n/**\r\n * Caches query result into current database, into separate table called \"query-result-cache\".\r\n */\r\nexport class DbQueryResultCache implements QueryResultCache {\r\n // -------------------------------------------------------------------------\r\n // Private properties\r\n // -------------------------------------------------------------------------\r\n\r\n private queryResultCacheTable: string\r\n\r\n private queryResultCacheDatabase?: string\r\n\r\n private queryResultCacheSchema?: string\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(protected connection: DataSource) {\r\n const { schema } = this.connection.driver.options as any\r\n const database = this.connection.driver.database\r\n const cacheOptions =\r\n typeof this.connection.options.cache === \"object\"\r\n ? this.connection.options.cache\r\n : {}\r\n const cacheTableName = cacheOptions.tableName || \"query-result-cache\"\r\n\r\n this.queryResultCacheDatabase = database\r\n this.queryResultCacheSchema = schema\r\n this.queryResultCacheTable = this.connection.driver.buildTableName(\r\n cacheTableName,\r\n schema,\r\n database,\r\n )\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates a connection with given cache provider.\r\n */\r\n async connect(): Promise<void> {}\r\n\r\n /**\r\n * Disconnects with given cache provider.\r\n */\r\n async disconnect(): Promise<void> {}\r\n\r\n /**\r\n * Creates table for storing cache if it does not exist yet.\r\n */\r\n async synchronize(queryRunner?: QueryRunner): Promise<void> {\r\n queryRunner = this.getQueryRunner(queryRunner)\r\n const driver = this.connection.driver\r\n const tableExist = await queryRunner.hasTable(\r\n this.queryResultCacheTable,\r\n ) // todo: table name should be configurable\r\n if (tableExist) return\r\n\r\n await queryRunner.createTable(\r\n new Table({\r\n database: this.queryResultCacheDatabase,\r\n schema: this.queryResultCacheSchema,\r\n name: this.queryResultCacheTable,\r\n columns: [\r\n {\r\n name: \"id\",\r\n isPrimary: true,\r\n isNullable: false,\r\n type: driver.normalizeType({\r\n type: driver.mappedDataTypes.cacheId,\r\n }),\r\n generationStrategy:\r\n driver.options.type === \"spanner\"\r\n ? \"uuid\"\r\n : \"increment\",\r\n isGenerated: true,\r\n },\r\n {\r\n name: \"identifier\",\r\n type: driver.normalizeType({\r\n type: driver.mappedDataTypes.cacheIdentifier,\r\n }),\r\n isNullable: true,\r\n },\r\n {\r\n name: \"time\",\r\n type: driver.normalizeType({\r\n type: driver.mappedDataTypes.cacheTime,\r\n }),\r\n isPrimary: false,\r\n isNullable: false,\r\n },\r\n {\r\n name: \"duration\",\r\n type: driver.normalizeType({\r\n type: driver.mappedDataTypes.cacheDuration,\r\n }),\r\n isPrimary: false,\r\n isNullable: false,\r\n },\r\n {\r\n name: \"query\",\r\n type: driver.normalizeType({\r\n type: driver.mappedDataTypes.cacheQuery,\r\n }),\r\n isPrimary: false,\r\n isNullable: false,\r\n },\r\n {\r\n name: \"result\",\r\n type: driver.normalizeType({\r\n type: driver.mappedDataTypes.cacheResult,\r\n }),\r\n isNullable: false,\r\n },\r\n ],\r\n }),\r\n )\r\n }\r\n\r\n /**\r\n * Get data from cache.\r\n * Returns cache result if found.\r\n * Returns undefined if result is not cached.\r\n */\r\n getFromCache(\r\n options: QueryResultCacheOptions,\r\n queryRunner?: QueryRunner,\r\n ): Promise<QueryResultCacheOptions | undefined> {\r\n queryRunner = this.getQueryRunner(queryRunner)\r\n const qb = this.connection\r\n .createQueryBuilder(queryRunner)\r\n .select()\r\n .from(this.queryResultCacheTable, \"cache\")\r\n\r\n if (options.identifier) {\r\n return qb\r\n .where(\r\n `${qb.escape(\"cache\")}.${qb.escape(\r\n \"identifier\",\r\n )} = :identifier`,\r\n )\r\n .setParameters({\r\n identifier:\r\n this.connection.driver.options.type === \"mssql\"\r\n ? new MssqlParameter(options.identifier, \"nvarchar\")\r\n : options.identifier,\r\n })\r\n .cache(false) // disable cache to avoid infinite loops when cache is alwaysEnable\r\n .getRawOne()\r\n } else if (options.query) {\r\n if (this.connection.driver.options.type === \"oracle\") {\r\n return qb\r\n .where(\r\n `dbms_lob.compare(${qb.escape(\"cache\")}.${qb.escape(\r\n \"query\",\r\n )}, :query) = 0`,\r\n { query: options.query },\r\n )\r\n .cache(false) // disable cache to avoid infinite loops when cache is alwaysEnable\r\n .getRawOne()\r\n }\r\n\r\n return qb\r\n .where(`${qb.escape(\"cache\")}.${qb.escape(\"query\")} = :query`)\r\n .setParameters({\r\n query:\r\n this.connection.driver.options.type === \"mssql\"\r\n ? new MssqlParameter(options.query, \"nvarchar\")\r\n : options.query,\r\n })\r\n .cache(false) // disable cache to avoid infinite loops when cache is alwaysEnable\r\n .getRawOne()\r\n }\r\n\r\n return Promise.resolve(undefined)\r\n }\r\n\r\n /**\r\n * Checks if cache is expired or not.\r\n */\r\n isExpired(savedCache: QueryResultCacheOptions): boolean {\r\n const duration =\r\n typeof savedCache.duration === \"string\"\r\n ? parseInt(savedCache.duration)\r\n : savedCache.duration\r\n return (\r\n (typeof savedCache.time === \"string\"\r\n ? parseInt(savedCache.time as any)\r\n : savedCache.time)! +\r\n duration <\r\n new Date().getTime()\r\n )\r\n }\r\n\r\n /**\r\n * Stores given query result in the cache.\r\n */\r\n async storeInCache(\r\n options: QueryResultCacheOptions,\r\n savedCache: QueryResultCacheOptions | undefined,\r\n queryRunner?: QueryRunner,\r\n ): Promise<void> {\r\n const shouldCreateQueryRunner =\r\n queryRunner === undefined ||\r\n queryRunner?.getReplicationMode() === \"slave\"\r\n\r\n if (queryRunner === undefined || shouldCreateQueryRunner) {\r\n queryRunner = this.connection.createQueryRunner(\"master\")\r\n }\r\n\r\n let insertedValues: ObjectLiteral = options\r\n if (this.connection.driver.options.type === \"mssql\") {\r\n // todo: bad abstraction, re-implement this part, probably better if we create an entity metadata for cache table\r\n insertedValues = {\r\n identifier: new MssqlParameter(options.identifier, \"nvarchar\"),\r\n time: new MssqlParameter(options.time, \"bigint\"),\r\n duration: new MssqlParameter(options.duration, \"int\"),\r\n query: new MssqlParameter(options.query, \"nvarchar\"),\r\n result: new MssqlParameter(options.result, \"nvarchar\"),\r\n }\r\n }\r\n\r\n if (savedCache && savedCache.identifier) {\r\n // if exist then update\r\n const qb = queryRunner.manager\r\n .createQueryBuilder()\r\n .update(this.queryResultCacheTable)\r\n .set(insertedValues)\r\n\r\n qb.where(`${qb.escape(\"identifier\")} = :condition`, {\r\n condition: insertedValues.identifier,\r\n })\r\n await qb.execute()\r\n } else if (savedCache && savedCache.query) {\r\n // if exist then update\r\n const qb = queryRunner.manager\r\n .createQueryBuilder()\r\n .update(this.queryResultCacheTable)\r\n .set(insertedValues)\r\n\r\n if (this.connection.driver.options.type === \"oracle\") {\r\n qb.where(`dbms_lob.compare(\"query\", :condition) = 0`, {\r\n condition: insertedValues.query,\r\n })\r\n } else {\r\n qb.where(`${qb.escape(\"query\")} = :condition`, {\r\n condition: insertedValues.query,\r\n })\r\n }\r\n\r\n await qb.execute()\r\n } else {\r\n // Spanner does not support auto-generated columns\r\n if (\r\n this.connection.driver.options.type === \"spanner\" &&\r\n !insertedValues.id\r\n ) {\r\n insertedValues.id = uuidv4()\r\n }\r\n\r\n // otherwise insert\r\n await queryRunner.manager\r\n .createQueryBuilder()\r\n .insert()\r\n .into(this.queryResultCacheTable)\r\n .values(insertedValues)\r\n .execute()\r\n }\r\n\r\n if (shouldCreateQueryRunner) {\r\n await queryRunner.release()\r\n }\r\n }\r\n\r\n /**\r\n * Clears everything stored in the cache.\r\n */\r\n async clear(queryRunner: QueryRunner): Promise<void> {\r\n return this.getQueryRunner(queryRunner).clearTable(\r\n this.queryResultCacheTable,\r\n )\r\n }\r\n\r\n /**\r\n * Removes all cached results by given identifiers from cache.\r\n */\r\n async remove(\r\n identifiers: string[],\r\n queryRunner?: QueryRunner,\r\n ): Promise<void> {\r\n let _queryRunner: QueryRunner = queryRunner || this.getQueryRunner()\r\n await Promise.all(\r\n identifiers.map((identifier) => {\r\n const qb = _queryRunner.manager.createQueryBuilder()\r\n return qb\r\n .delete()\r\n .from(this.queryResultCacheTable)\r\n .where(`${qb.escape(\"identifier\")} = :identifier`, {\r\n identifier,\r\n })\r\n .execute()\r\n }),\r\n )\r\n\r\n if (!queryRunner) {\r\n await _queryRunner.release()\r\n }\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets a query runner to work with.\r\n */\r\n protected getQueryRunner(queryRunner?: QueryRunner): QueryRunner {\r\n if (queryRunner) return queryRunner\r\n\r\n return this.connection.createQueryRunner()\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/DbQueryResultCache.ts"],"names":[],"mappings":";;;AAEA,uEAAmE;AAEnE,yDAAqD;AAGrD,+BAAmC;AAEnC;;GAEG;AACH,MAAa,kBAAkB;IAW3B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAsB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACxC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAc,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;QAChD,MAAM,YAAY,GACd,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ;YAC7C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;YAC/B,CAAC,CAAC,EAAE,CAAA;QACZ,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,IAAI,oBAAoB,CAAA;QAErE,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAA;QACxC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAA;QACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAC9D,cAAc,EACd,MAAM,EACN,QAAQ,CACX,CAAA;IACL,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,OAAO,KAAmB,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,UAAU,KAAmB,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,WAAyB;QACvC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;QACrC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,QAAQ,CACzC,IAAI,CAAC,qBAAqB,CAC7B,CAAA,CAAC,0CAA0C;QAC5C,IAAI,UAAU;YAAE,OAAM;QAEtB,MAAM,WAAW,CAAC,WAAW,CACzB,IAAI,aAAK,CAAC;YACN,QAAQ,EAAE,IAAI,CAAC,wBAAwB;YACvC,MAAM,EAAE,IAAI,CAAC,sBAAsB;YACnC,IAAI,EAAE,IAAI,CAAC,qBAAqB;YAChC,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,KAAK;oBACjB,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO;qBACvC,CAAC;oBACF,kBAAkB,EACd,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;wBAC7B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,WAAW;oBACrB,WAAW,EAAE,IAAI;iBACpB;gBACD;oBACI,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,eAAe;qBAC/C,CAAC;oBACF,UAAU,EAAE,IAAI;iBACnB;gBACD;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,SAAS;qBACzC,CAAC;oBACF,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa;qBAC7C,CAAC;oBACF,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,UAAU;qBAC1C,CAAC;oBACF,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW;qBAC3C,CAAC;oBACF,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,YAAY,CACR,OAAgC,EAChC,WAAyB;QAEzB,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU;aACrB,kBAAkB,CAAC,WAAW,CAAC;aAC/B,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;QAE9C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE;iBACJ,KAAK,CACF,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAC9B,YAAY,CACf,gBAAgB,CACpB;iBACA,aAAa,CAAC;gBACX,UAAU,EACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;oBAC3C,CAAC,CAAC,IAAI,+BAAc,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;oBACpD,CAAC,CAAC,OAAO,CAAC,UAAU;aAC/B,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,CAAC,mEAAmE;iBAChF,SAAS,EAAE,CAAA;QACpB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,OAAO,EAAE;qBACJ,KAAK,CACF,oBAAoB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAC/C,OAAO,CACV,eAAe,EAChB,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAC3B;qBACA,KAAK,CAAC,KAAK,CAAC,CAAC,mEAAmE;qBAChF,SAAS,EAAE,CAAA;YACpB,CAAC;YAED,OAAO,EAAE;iBACJ,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;iBAC7D,aAAa,CAAC;gBACX,KAAK,EACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;oBAC3C,CAAC,CAAC,IAAI,+BAAc,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC;oBAC/C,CAAC,CAAC,OAAO,CAAC,KAAK;aAC1B,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,CAAC,mEAAmE;iBAChF,SAAS,EAAE,CAAA;QACpB,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAmC;QACzC,MAAM,QAAQ,GACV,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ;YACnC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/B,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;QAC7B,OAAO,CACH,CAAC,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;YAChC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAW,CAAC;YAClC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAE;YACnB,QAAQ;YACZ,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CACvB,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACd,OAAgC,EAChC,UAA+C,EAC/C,WAAyB;QAEzB,MAAM,uBAAuB,GACzB,WAAW,KAAK,SAAS;YACzB,WAAW,EAAE,kBAAkB,EAAE,KAAK,OAAO,CAAA;QAEjD,IAAI,WAAW,KAAK,SAAS,IAAI,uBAAuB,EAAE,CAAC;YACvD,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAC7D,CAAC;QAED,IAAI,cAAc,GAAkB,OAAO,CAAA;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClD,iHAAiH;YACjH,cAAc,GAAG;gBACb,UAAU,EAAE,IAAI,+BAAc,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;gBAC9D,IAAI,EAAE,IAAI,+BAAc,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAChD,QAAQ,EAAE,IAAI,+BAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACrD,KAAK,EAAE,IAAI,+BAAc,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC;gBACpD,MAAM,EAAE,IAAI,+BAAc,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;aACzD,CAAA;QACL,CAAC;QAED,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YACtC,uBAAuB;YACvB,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO;iBACzB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;iBAClC,GAAG,CAAC,cAAc,CAAC,CAAA;YAExB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;gBAChD,SAAS,EAAE,cAAc,CAAC,UAAU;aACvC,CAAC,CAAA;YACF,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC;aAAM,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACxC,uBAAuB;YACvB,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO;iBACzB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;iBAClC,GAAG,CAAC,cAAc,CAAC,CAAA;YAExB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,EAAE,CAAC,KAAK,CAAC,2CAA2C,EAAE;oBAClD,SAAS,EAAE,cAAc,CAAC,KAAK;iBAClC,CAAC,CAAA;YACN,CAAC;iBAAM,CAAC;gBACJ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;oBAC3C,SAAS,EAAE,cAAc,CAAC,KAAK;iBAClC,CAAC,CAAA;YACN,CAAC;YAED,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC;aAAM,CAAC;YACJ,kDAAkD;YAClD,IACI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;gBACjD,CAAC,cAAc,CAAC,EAAE,EACpB,CAAC;gBACC,cAAc,CAAC,EAAE,GAAG,IAAA,SAAM,GAAE,CAAA;YAChC,CAAC;YAED,mBAAmB;YACnB,MAAM,WAAW,CAAC,OAAO;iBACpB,kBAAkB,EAAE;iBACpB,MAAM,EAAE;iBACR,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;iBAChC,MAAM,CAAC,cAAc,CAAC;iBACtB,OAAO,EAAE,CAAA;QAClB,CAAC;QAED,IAAI,uBAAuB,EAAE,CAAC;YAC1B,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;QAC/B,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,WAAwB;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAC9C,IAAI,CAAC,qBAAqB,CAC7B,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,WAAqB,EACrB,WAAyB;QAEzB,IAAI,YAAY,GAAgB,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAA;QACpE,MAAM,OAAO,CAAC,GAAG,CACb,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC3B,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAA;YACpD,OAAO,EAAE;iBACJ,MAAM,EAAE;iBACR,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;iBAChC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;gBAC/C,UAAU;aACb,CAAC;iBACD,OAAO,EAAE,CAAA;QAClB,CAAC,CAAC,CACL,CAAA;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAChC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,cAAc,CAAC,WAAyB;QAC9C,IAAI,WAAW;YAAE,OAAO,WAAW,CAAA;QAEnC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAA;IAC9C,CAAC;CACJ;AAlUD,gDAkUC","file":"DbQueryResultCache.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { MssqlParameter } from \"../driver/sqlserver/MssqlParameter\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { Table } from \"../schema-builder/table/Table\"\nimport { QueryResultCache } from \"./QueryResultCache\"\nimport { QueryResultCacheOptions } from \"./QueryResultCacheOptions\"\nimport { v4 as uuidv4 } from \"uuid\"\n\n/**\n * Caches query result into current database, into separate table called \"query-result-cache\".\n */\nexport class DbQueryResultCache implements QueryResultCache {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n\n private queryResultCacheTable: string\n\n private queryResultCacheDatabase?: string\n\n private queryResultCacheSchema?: string\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {\n const { schema } = this.connection.driver.options as any\n const database = this.connection.driver.database\n const cacheOptions =\n typeof this.connection.options.cache === \"object\"\n ? this.connection.options.cache\n : {}\n const cacheTableName = cacheOptions.tableName || \"query-result-cache\"\n\n this.queryResultCacheDatabase = database\n this.queryResultCacheSchema = schema\n this.queryResultCacheTable = this.connection.driver.buildTableName(\n cacheTableName,\n schema,\n database,\n )\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a connection with given cache provider.\n */\n async connect(): Promise<void> {}\n\n /**\n * Disconnects with given cache provider.\n */\n async disconnect(): Promise<void> {}\n\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n async synchronize(queryRunner?: QueryRunner): Promise<void> {\n queryRunner = this.getQueryRunner(queryRunner)\n const driver = this.connection.driver\n const tableExist = await queryRunner.hasTable(\n this.queryResultCacheTable,\n ) // todo: table name should be configurable\n if (tableExist) return\n\n await queryRunner.createTable(\n new Table({\n database: this.queryResultCacheDatabase,\n schema: this.queryResultCacheSchema,\n name: this.queryResultCacheTable,\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n isNullable: false,\n type: driver.normalizeType({\n type: driver.mappedDataTypes.cacheId,\n }),\n generationStrategy:\n driver.options.type === \"spanner\"\n ? \"uuid\"\n : \"increment\",\n isGenerated: true,\n },\n {\n name: \"identifier\",\n type: driver.normalizeType({\n type: driver.mappedDataTypes.cacheIdentifier,\n }),\n isNullable: true,\n },\n {\n name: \"time\",\n type: driver.normalizeType({\n type: driver.mappedDataTypes.cacheTime,\n }),\n isPrimary: false,\n isNullable: false,\n },\n {\n name: \"duration\",\n type: driver.normalizeType({\n type: driver.mappedDataTypes.cacheDuration,\n }),\n isPrimary: false,\n isNullable: false,\n },\n {\n name: \"query\",\n type: driver.normalizeType({\n type: driver.mappedDataTypes.cacheQuery,\n }),\n isPrimary: false,\n isNullable: false,\n },\n {\n name: \"result\",\n type: driver.normalizeType({\n type: driver.mappedDataTypes.cacheResult,\n }),\n isNullable: false,\n },\n ],\n }),\n )\n }\n\n /**\n * Get data from cache.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(\n options: QueryResultCacheOptions,\n queryRunner?: QueryRunner,\n ): Promise<QueryResultCacheOptions | undefined> {\n queryRunner = this.getQueryRunner(queryRunner)\n const qb = this.connection\n .createQueryBuilder(queryRunner)\n .select()\n .from(this.queryResultCacheTable, \"cache\")\n\n if (options.identifier) {\n return qb\n .where(\n `${qb.escape(\"cache\")}.${qb.escape(\n \"identifier\",\n )} = :identifier`,\n )\n .setParameters({\n identifier:\n this.connection.driver.options.type === \"mssql\"\n ? new MssqlParameter(options.identifier, \"nvarchar\")\n : options.identifier,\n })\n .cache(false) // disable cache to avoid infinite loops when cache is alwaysEnable\n .getRawOne()\n } else if (options.query) {\n if (this.connection.driver.options.type === \"oracle\") {\n return qb\n .where(\n `dbms_lob.compare(${qb.escape(\"cache\")}.${qb.escape(\n \"query\",\n )}, :query) = 0`,\n { query: options.query },\n )\n .cache(false) // disable cache to avoid infinite loops when cache is alwaysEnable\n .getRawOne()\n }\n\n return qb\n .where(`${qb.escape(\"cache\")}.${qb.escape(\"query\")} = :query`)\n .setParameters({\n query:\n this.connection.driver.options.type === \"mssql\"\n ? new MssqlParameter(options.query, \"nvarchar\")\n : options.query,\n })\n .cache(false) // disable cache to avoid infinite loops when cache is alwaysEnable\n .getRawOne()\n }\n\n return Promise.resolve(undefined)\n }\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean {\n const duration =\n typeof savedCache.duration === \"string\"\n ? parseInt(savedCache.duration)\n : savedCache.duration\n return (\n (typeof savedCache.time === \"string\"\n ? parseInt(savedCache.time as any)\n : savedCache.time)! +\n duration <\n new Date().getTime()\n )\n }\n\n /**\n * Stores given query result in the cache.\n */\n async storeInCache(\n options: QueryResultCacheOptions,\n savedCache: QueryResultCacheOptions | undefined,\n queryRunner?: QueryRunner,\n ): Promise<void> {\n const shouldCreateQueryRunner =\n queryRunner === undefined ||\n queryRunner?.getReplicationMode() === \"slave\"\n\n if (queryRunner === undefined || shouldCreateQueryRunner) {\n queryRunner = this.connection.createQueryRunner(\"master\")\n }\n\n let insertedValues: ObjectLiteral = options\n if (this.connection.driver.options.type === \"mssql\") {\n // todo: bad abstraction, re-implement this part, probably better if we create an entity metadata for cache table\n insertedValues = {\n identifier: new MssqlParameter(options.identifier, \"nvarchar\"),\n time: new MssqlParameter(options.time, \"bigint\"),\n duration: new MssqlParameter(options.duration, \"int\"),\n query: new MssqlParameter(options.query, \"nvarchar\"),\n result: new MssqlParameter(options.result, \"nvarchar\"),\n }\n }\n\n if (savedCache && savedCache.identifier) {\n // if exist then update\n const qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues)\n\n qb.where(`${qb.escape(\"identifier\")} = :condition`, {\n condition: insertedValues.identifier,\n })\n await qb.execute()\n } else if (savedCache && savedCache.query) {\n // if exist then update\n const qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues)\n\n if (this.connection.driver.options.type === \"oracle\") {\n qb.where(`dbms_lob.compare(\"query\", :condition) = 0`, {\n condition: insertedValues.query,\n })\n } else {\n qb.where(`${qb.escape(\"query\")} = :condition`, {\n condition: insertedValues.query,\n })\n }\n\n await qb.execute()\n } else {\n // Spanner does not support auto-generated columns\n if (\n this.connection.driver.options.type === \"spanner\" &&\n !insertedValues.id\n ) {\n insertedValues.id = uuidv4()\n }\n\n // otherwise insert\n await queryRunner.manager\n .createQueryBuilder()\n .insert()\n .into(this.queryResultCacheTable)\n .values(insertedValues)\n .execute()\n }\n\n if (shouldCreateQueryRunner) {\n await queryRunner.release()\n }\n }\n\n /**\n * Clears everything stored in the cache.\n */\n async clear(queryRunner: QueryRunner): Promise<void> {\n return this.getQueryRunner(queryRunner).clearTable(\n this.queryResultCacheTable,\n )\n }\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n async remove(\n identifiers: string[],\n queryRunner?: QueryRunner,\n ): Promise<void> {\n let _queryRunner: QueryRunner = queryRunner || this.getQueryRunner()\n await Promise.all(\n identifiers.map((identifier) => {\n const qb = _queryRunner.manager.createQueryBuilder()\n return qb\n .delete()\n .from(this.queryResultCacheTable)\n .where(`${qb.escape(\"identifier\")} = :identifier`, {\n identifier,\n })\n .execute()\n }),\n )\n\n if (!queryRunner) {\n await _queryRunner.release()\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets a query runner to work with.\n */\n protected getQueryRunner(queryRunner?: QueryRunner): QueryRunner {\n if (queryRunner) return queryRunner\n\n return this.connection.createQueryRunner()\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/QueryResultCache.ts"],"names":[],"mappings":"","file":"QueryResultCache.js","sourcesContent":["import { QueryResultCacheOptions } from \"./QueryResultCacheOptions\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\n\r\n/**\r\n * Implementations of this interface provide different strategies to cache query builder results.\r\n */\r\nexport interface QueryResultCache {\r\n /**\r\n * Creates a connection with given cache provider.\r\n */\r\n connect(): Promise<void>\r\n\r\n /**\r\n * Closes a connection with given cache provider.\r\n */\r\n disconnect(): Promise<void>\r\n\r\n /**\r\n * Perform operations during schema synchronization.\r\n */\r\n synchronize(queryRunner?: QueryRunner): Promise<void>\r\n\r\n /**\r\n * Get data from cache.\r\n * Returns cache result if found.\r\n * Returns undefined if result is not cached.\r\n */\r\n getFromCache(\r\n options: QueryResultCacheOptions,\r\n queryRunner?: QueryRunner,\r\n ): Promise<QueryResultCacheOptions | undefined>\r\n\r\n /**\r\n * Stores given query result in the cache.\r\n */\r\n storeInCache(\r\n options: QueryResultCacheOptions,\r\n savedCache: QueryResultCacheOptions | undefined,\r\n queryRunner?: QueryRunner,\r\n ): Promise<void>\r\n\r\n /**\r\n * Checks if cache is expired or not.\r\n */\r\n isExpired(savedCache: QueryResultCacheOptions): boolean\r\n\r\n /**\r\n * Clears everything stored in the cache.\r\n */\r\n clear(queryRunner?: QueryRunner): Promise<void>\r\n\r\n /**\r\n * Removes all cached results by given identifiers from cache.\r\n */\r\n remove(identifiers: string[], queryRunner?: QueryRunner): Promise<void>\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/QueryResultCache.ts"],"names":[],"mappings":"","file":"QueryResultCache.js","sourcesContent":["import { QueryResultCacheOptions } from \"./QueryResultCacheOptions\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\n\n/**\n * Implementations of this interface provide different strategies to cache query builder results.\n */\nexport interface QueryResultCache {\n /**\n * Creates a connection with given cache provider.\n */\n connect(): Promise<void>\n\n /**\n * Closes a connection with given cache provider.\n */\n disconnect(): Promise<void>\n\n /**\n * Perform operations during schema synchronization.\n */\n synchronize(queryRunner?: QueryRunner): Promise<void>\n\n /**\n * Get data from cache.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(\n options: QueryResultCacheOptions,\n queryRunner?: QueryRunner,\n ): Promise<QueryResultCacheOptions | undefined>\n\n /**\n * Stores given query result in the cache.\n */\n storeInCache(\n options: QueryResultCacheOptions,\n savedCache: QueryResultCacheOptions | undefined,\n queryRunner?: QueryRunner,\n ): Promise<void>\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean\n\n /**\n * Clears everything stored in the cache.\n */\n clear(queryRunner?: QueryRunner): Promise<void>\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n remove(identifiers: string[], queryRunner?: QueryRunner): Promise<void>\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/QueryResultCacheFactory.ts"],"names":[],"mappings":";;;AAAA,mEAA+D;AAC/D,6DAAyD;AAGzD,wDAAoD;AAEpD;;GAEG;AACH,MAAa,uBAAuB;IAChC,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAsB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEhD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;YAC9B,MAAM,IAAI,2BAAY,CAClB,uKAAuK,CAC1K,CAAA;QAEL,MAAM,KAAK,GAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAA;QAEhD,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,CAAC;QAED,IACI,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAClC,CAAC;YACC,OAAO,IAAI,6CAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,uCAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;IACL,CAAC;CACJ;AApCD,0DAoCC","file":"QueryResultCacheFactory.js","sourcesContent":["import { RedisQueryResultCache } from \"./RedisQueryResultCache\"\r\nimport { DbQueryResultCache } from \"./DbQueryResultCache\"\r\nimport { QueryResultCache } from \"./QueryResultCache\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { TypeORMError } from \"../error/TypeORMError\"\r\n\r\n/**\r\n * Caches query result into Redis database.\r\n */\r\nexport class QueryResultCacheFactory {\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(protected connection: DataSource) {}\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates a new query result cache based on connection options.\r\n */\r\n create(): QueryResultCache {\r\n if (!this.connection.options.cache)\r\n throw new TypeORMError(\r\n `To use cache you need to enable it in connection options by setting cache: true or providing some caching options. Example: { host: ..., username: ..., cache: true }`,\r\n )\r\n\r\n const cache: any = this.connection.options.cache\r\n\r\n if (cache.provider && typeof cache.provider === \"function\") {\r\n return cache.provider(this.connection)\r\n }\r\n\r\n if (\r\n cache.type === \"redis\" ||\r\n cache.type === \"ioredis\" ||\r\n cache.type === \"ioredis/cluster\"\r\n ) {\r\n return new RedisQueryResultCache(this.connection, cache.type)\r\n } else {\r\n return new DbQueryResultCache(this.connection)\r\n }\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/QueryResultCacheFactory.ts"],"names":[],"mappings":";;;AAAA,mEAA+D;AAC/D,6DAAyD;AAGzD,wDAAoD;AAEpD;;GAEG;AACH,MAAa,uBAAuB;IAChC,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAsB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEhD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;YAC9B,MAAM,IAAI,2BAAY,CAClB,uKAAuK,CAC1K,CAAA;QAEL,MAAM,KAAK,GAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAA;QAEhD,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,CAAC;QAED,IACI,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAClC,CAAC;YACC,OAAO,IAAI,6CAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,uCAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;IACL,CAAC;CACJ;AApCD,0DAoCC","file":"QueryResultCacheFactory.js","sourcesContent":["import { RedisQueryResultCache } from \"./RedisQueryResultCache\"\nimport { DbQueryResultCache } from \"./DbQueryResultCache\"\nimport { QueryResultCache } from \"./QueryResultCache\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { TypeORMError } from \"../error/TypeORMError\"\n\n/**\n * Caches query result into Redis database.\n */\nexport class QueryResultCacheFactory {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new query result cache based on connection options.\n */\n create(): QueryResultCache {\n if (!this.connection.options.cache)\n throw new TypeORMError(\n `To use cache you need to enable it in connection options by setting cache: true or providing some caching options. Example: { host: ..., username: ..., cache: true }`,\n )\n\n const cache: any = this.connection.options.cache\n\n if (cache.provider && typeof cache.provider === \"function\") {\n return cache.provider(this.connection)\n }\n\n if (\n cache.type === \"redis\" ||\n cache.type === \"ioredis\" ||\n cache.type === \"ioredis/cluster\"\n ) {\n return new RedisQueryResultCache(this.connection, cache.type)\n } else {\n return new DbQueryResultCache(this.connection)\n }\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/QueryResultCacheOptions.ts"],"names":[],"mappings":"","file":"QueryResultCacheOptions.js","sourcesContent":["/**\r\n * Options passed to QueryResultCache class.\r\n */\r\nexport interface QueryResultCacheOptions {\r\n /**\r\n * Cache identifier set by user.\r\n * Can be empty.\r\n */\r\n identifier?: string\r\n\r\n /**\r\n * Time, when cache was created.\r\n */\r\n time?: number\r\n\r\n /**\r\n * Duration in milliseconds during which results will be returned from cache.\r\n */\r\n duration: number\r\n\r\n /**\r\n * Cached query.\r\n */\r\n query?: string\r\n\r\n /**\r\n * Query result that will be cached.\r\n */\r\n result?: any\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/QueryResultCacheOptions.ts"],"names":[],"mappings":"","file":"QueryResultCacheOptions.js","sourcesContent":["/**\n * Options passed to QueryResultCache class.\n */\nexport interface QueryResultCacheOptions {\n /**\n * Cache identifier set by user.\n * Can be empty.\n */\n identifier?: string\n\n /**\n * Time, when cache was created.\n */\n time?: number\n\n /**\n * Duration in milliseconds during which results will be returned from cache.\n */\n duration: number\n\n /**\n * Cached query.\n */\n query?: string\n\n /**\n * Query result that will be cached.\n */\n result?: any\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/RedisQueryResultCache.ts"],"names":[],"mappings":"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","file":"RedisQueryResultCache.js","sourcesContent":["import { QueryResultCache } from \"./QueryResultCache\"\r\nimport { QueryResultCacheOptions } from \"./QueryResultCacheOptions\"\r\nimport { PlatformTools } from \"../platform/PlatformTools\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\nimport { TypeORMError } from \"../error/TypeORMError\"\r\n\r\n/**\r\n * Caches query result into Redis database.\r\n */\r\nexport class RedisQueryResultCache implements QueryResultCache {\r\n // -------------------------------------------------------------------------\r\n // Protected Properties\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Redis module instance loaded dynamically.\r\n */\r\n protected redis: any\r\n\r\n /**\r\n * Connected redis client.\r\n */\r\n protected client: any\r\n\r\n /**\r\n * Type of the Redis Client (redis or ioredis).\r\n */\r\n protected clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\"\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n protected connection: DataSource,\r\n clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\",\r\n ) {\r\n this.clientType = clientType\r\n this.redis = this.loadRedis()\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates a connection with given cache provider.\r\n */\r\n async connect(): Promise<void> {\r\n const cacheOptions: any = this.connection.options.cache\r\n if (this.clientType === \"redis\") {\r\n this.client = this.redis.createClient({\r\n ...cacheOptions?.options,\r\n legacyMode: true,\r\n })\r\n if (\r\n typeof this.connection.options.cache === \"object\" &&\r\n this.connection.options.cache.ignoreErrors\r\n ) {\r\n this.client.on(\"error\", (err: any) => {\r\n this.connection.logger.log(\"warn\", err)\r\n })\r\n }\r\n if (\"connect\" in this.client) {\r\n await this.client.connect()\r\n }\r\n } else if (this.clientType === \"ioredis\") {\r\n if (cacheOptions && cacheOptions.port) {\r\n if (cacheOptions.options) {\r\n this.client = new this.redis(\r\n cacheOptions.port,\r\n cacheOptions.options,\r\n )\r\n } else {\r\n this.client = new this.redis(cacheOptions.port)\r\n }\r\n } else if (cacheOptions && cacheOptions.options) {\r\n this.client = new this.redis(cacheOptions.options)\r\n } else {\r\n this.client = new this.redis()\r\n }\r\n } else if (this.clientType === \"ioredis/cluster\") {\r\n if (\r\n cacheOptions &&\r\n cacheOptions.options &&\r\n Array.isArray(cacheOptions.options)\r\n ) {\r\n this.client = new this.redis.Cluster(cacheOptions.options)\r\n } else if (\r\n cacheOptions &&\r\n cacheOptions.options &&\r\n cacheOptions.options.startupNodes\r\n ) {\r\n this.client = new this.redis.Cluster(\r\n cacheOptions.options.startupNodes,\r\n cacheOptions.options.options,\r\n )\r\n } else {\r\n throw new TypeORMError(\r\n `options.startupNodes required for ${this.clientType}.`,\r\n )\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Disconnects the connection\r\n */\r\n async disconnect(): Promise<void> {\r\n return new Promise<void>((ok, fail) => {\r\n this.client.quit((err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok()\r\n this.client = undefined\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * Creates table for storing cache if it does not exist yet.\r\n */\r\n async synchronize(queryRunner: QueryRunner): Promise<void> {}\r\n\r\n /**\r\n * Get data from cache.\r\n * Returns cache result if found.\r\n * Returns undefined if result is not cached.\r\n */\r\n getFromCache(\r\n options: QueryResultCacheOptions,\r\n queryRunner?: QueryRunner,\r\n ): Promise<QueryResultCacheOptions | undefined> {\r\n return new Promise<QueryResultCacheOptions | undefined>((ok, fail) => {\r\n if (options.identifier) {\r\n this.client.get(options.identifier, (err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok(JSON.parse(result))\r\n })\r\n } else if (options.query) {\r\n this.client.get(options.query, (err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok(JSON.parse(result))\r\n })\r\n } else {\r\n ok(undefined)\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Checks if cache is expired or not.\r\n */\r\n isExpired(savedCache: QueryResultCacheOptions): boolean {\r\n return savedCache.time! + savedCache.duration < new Date().getTime()\r\n }\r\n\r\n /**\r\n * Stores given query result in the cache.\r\n */\r\n async storeInCache(\r\n options: QueryResultCacheOptions,\r\n savedCache: QueryResultCacheOptions,\r\n queryRunner?: QueryRunner,\r\n ): Promise<void> {\r\n return new Promise<void>((ok, fail) => {\r\n if (options.identifier) {\r\n this.client.set(\r\n options.identifier,\r\n JSON.stringify(options),\r\n \"PX\",\r\n options.duration,\r\n (err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok()\r\n },\r\n )\r\n } else if (options.query) {\r\n this.client.set(\r\n options.query,\r\n JSON.stringify(options),\r\n \"PX\",\r\n options.duration,\r\n (err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok()\r\n },\r\n )\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Clears everything stored in the cache.\r\n */\r\n async clear(queryRunner?: QueryRunner): Promise<void> {\r\n return new Promise<void>((ok, fail) => {\r\n this.client.flushdb((err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok()\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * Removes all cached results by given identifiers from cache.\r\n */\r\n async remove(\r\n identifiers: string[],\r\n queryRunner?: QueryRunner,\r\n ): Promise<void> {\r\n await Promise.all(\r\n identifiers.map((identifier) => {\r\n return this.deleteKey(identifier)\r\n }),\r\n )\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Removes a single key from redis database.\r\n */\r\n protected deleteKey(key: string): Promise<void> {\r\n return new Promise<void>((ok, fail) => {\r\n this.client.del(key, (err: any, result: any) => {\r\n if (err) return fail(err)\r\n ok()\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * Loads redis dependency.\r\n */\r\n protected loadRedis(): any {\r\n try {\r\n if (this.clientType === \"ioredis/cluster\") {\r\n return PlatformTools.load(\"ioredis\")\r\n } else {\r\n return PlatformTools.load(this.clientType)\r\n }\r\n } catch (e) {\r\n throw new TypeORMError(\r\n `Cannot use cache because ${this.clientType} is not installed. Please run \"npm i ${this.clientType} --save\".`,\r\n )\r\n }\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/RedisQueryResultCache.ts"],"names":[],"mappings":";;;AAEA,6DAAyD;AAGzD,wDAAoD;AAEpD;;GAEG;AACH,MAAa,qBAAqB;IAoB9B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YACc,UAAsB,EAChC,UAAmD;QADzC,eAAU,GAAV,UAAU,CAAY;QAGhC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;IACjC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,OAAO;QACT,MAAM,YAAY,GAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAA;QACvD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAClC,GAAG,YAAY,EAAE,OAAO;gBACxB,UAAU,EAAE,IAAI;aACnB,CAAC,CAAA;YACF,IACI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ;gBACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAC5C,CAAC;gBACC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAC3C,CAAC,CAAC,CAAA;YACN,CAAC;YACD,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;YAC/B,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CACxB,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,OAAO,CACvB,CAAA;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACnD,CAAC;YACL,CAAC;iBAAM,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;YAClC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;YAC/C,IACI,YAAY;gBACZ,YAAY,CAAC,OAAO;gBACpB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EACrC,CAAC;gBACC,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAC9D,CAAC;iBAAM,IACH,YAAY;gBACZ,YAAY,CAAC,OAAO;gBACpB,YAAY,CAAC,OAAO,CAAC,YAAY,EACnC,CAAC;gBACC,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAChC,YAAY,CAAC,OAAO,CAAC,YAAY,EACjC,YAAY,CAAC,OAAO,CAAC,OAAO,CAC/B,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,2BAAY,CAClB,qCAAqC,IAAI,CAAC,UAAU,GAAG,CAC1D,CAAA;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACZ,OAAO,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;gBACvC,IAAI,GAAG;oBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzB,EAAE,EAAE,CAAA;gBACJ,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;YAC3B,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,WAAwB,IAAkB,CAAC;IAE7D;;;;OAIG;IACH,YAAY,CACR,OAAgC,EAChC,WAAyB;QAEzB,OAAO,IAAI,OAAO,CAAsC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACjE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;oBAC1D,IAAI,GAAG;wBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;oBACzB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC1B,CAAC,CAAC,CAAA;YACN,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;oBACrD,IAAI,GAAG;wBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;oBACzB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC1B,CAAC,CAAC,CAAA;YACN,CAAC;iBAAM,CAAC;gBACJ,EAAE,CAAC,SAAS,CAAC,CAAA;YACjB,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAmC;QACzC,OAAO,UAAU,CAAC,IAAK,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACd,OAAgC,EAChC,UAAmC,EACnC,WAAyB;QAEzB,OAAO,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,IAAI,EACJ,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;oBACtB,IAAI,GAAG;wBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;oBACzB,EAAE,EAAE,CAAA;gBACR,CAAC,CACJ,CAAA;YACL,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,IAAI,EACJ,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;oBACtB,IAAI,GAAG;wBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;oBACzB,EAAE,EAAE,CAAA;gBACR,CAAC,CACJ,CAAA;YACL,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,WAAyB;QACjC,OAAO,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;gBAC1C,IAAI,GAAG;oBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzB,EAAE,EAAE,CAAA;YACR,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,WAAqB,EACrB,WAAyB;QAEzB,MAAM,OAAO,CAAC,GAAG,CACb,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACrC,CAAC,CAAC,CACL,CAAA;IACL,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,SAAS,CAAC,GAAW;QAC3B,OAAO,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;gBAC3C,IAAI,GAAG;oBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzB,EAAE,EAAE,CAAA;YACR,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACO,SAAS;QACf,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;gBACxC,OAAO,6BAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACxC,CAAC;iBAAM,CAAC;gBACJ,OAAO,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9C,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,2BAAY,CAClB,4BAA4B,IAAI,CAAC,UAAU,wCAAwC,IAAI,CAAC,UAAU,WAAW,CAChH,CAAA;QACL,CAAC;IACL,CAAC;CACJ;AAhPD,sDAgPC","file":"RedisQueryResultCache.js","sourcesContent":["import { QueryResultCache } from \"./QueryResultCache\"\nimport { QueryResultCacheOptions } from \"./QueryResultCacheOptions\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { TypeORMError } from \"../error/TypeORMError\"\n\n/**\n * Caches query result into Redis database.\n */\nexport class RedisQueryResultCache implements QueryResultCache {\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Redis module instance loaded dynamically.\n */\n protected redis: any\n\n /**\n * Connected redis client.\n */\n protected client: any\n\n /**\n * Type of the Redis Client (redis or ioredis).\n */\n protected clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\"\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n protected connection: DataSource,\n clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\",\n ) {\n this.clientType = clientType\n this.redis = this.loadRedis()\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a connection with given cache provider.\n */\n async connect(): Promise<void> {\n const cacheOptions: any = this.connection.options.cache\n if (this.clientType === \"redis\") {\n this.client = this.redis.createClient({\n ...cacheOptions?.options,\n legacyMode: true,\n })\n if (\n typeof this.connection.options.cache === \"object\" &&\n this.connection.options.cache.ignoreErrors\n ) {\n this.client.on(\"error\", (err: any) => {\n this.connection.logger.log(\"warn\", err)\n })\n }\n if (\"connect\" in this.client) {\n await this.client.connect()\n }\n } else if (this.clientType === \"ioredis\") {\n if (cacheOptions && cacheOptions.port) {\n if (cacheOptions.options) {\n this.client = new this.redis(\n cacheOptions.port,\n cacheOptions.options,\n )\n } else {\n this.client = new this.redis(cacheOptions.port)\n }\n } else if (cacheOptions && cacheOptions.options) {\n this.client = new this.redis(cacheOptions.options)\n } else {\n this.client = new this.redis()\n }\n } else if (this.clientType === \"ioredis/cluster\") {\n if (\n cacheOptions &&\n cacheOptions.options &&\n Array.isArray(cacheOptions.options)\n ) {\n this.client = new this.redis.Cluster(cacheOptions.options)\n } else if (\n cacheOptions &&\n cacheOptions.options &&\n cacheOptions.options.startupNodes\n ) {\n this.client = new this.redis.Cluster(\n cacheOptions.options.startupNodes,\n cacheOptions.options.options,\n )\n } else {\n throw new TypeORMError(\n `options.startupNodes required for ${this.clientType}.`,\n )\n }\n }\n }\n\n /**\n * Disconnects the connection\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.quit((err: any, result: any) => {\n if (err) return fail(err)\n ok()\n this.client = undefined\n })\n })\n }\n\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n async synchronize(queryRunner: QueryRunner): Promise<void> {}\n\n /**\n * Get data from cache.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(\n options: QueryResultCacheOptions,\n queryRunner?: QueryRunner,\n ): Promise<QueryResultCacheOptions | undefined> {\n return new Promise<QueryResultCacheOptions | undefined>((ok, fail) => {\n if (options.identifier) {\n this.client.get(options.identifier, (err: any, result: any) => {\n if (err) return fail(err)\n ok(JSON.parse(result))\n })\n } else if (options.query) {\n this.client.get(options.query, (err: any, result: any) => {\n if (err) return fail(err)\n ok(JSON.parse(result))\n })\n } else {\n ok(undefined)\n }\n })\n }\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean {\n return savedCache.time! + savedCache.duration < new Date().getTime()\n }\n\n /**\n * Stores given query result in the cache.\n */\n async storeInCache(\n options: QueryResultCacheOptions,\n savedCache: QueryResultCacheOptions,\n queryRunner?: QueryRunner,\n ): Promise<void> {\n return new Promise<void>((ok, fail) => {\n if (options.identifier) {\n this.client.set(\n options.identifier,\n JSON.stringify(options),\n \"PX\",\n options.duration,\n (err: any, result: any) => {\n if (err) return fail(err)\n ok()\n },\n )\n } else if (options.query) {\n this.client.set(\n options.query,\n JSON.stringify(options),\n \"PX\",\n options.duration,\n (err: any, result: any) => {\n if (err) return fail(err)\n ok()\n },\n )\n }\n })\n }\n\n /**\n * Clears everything stored in the cache.\n */\n async clear(queryRunner?: QueryRunner): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.flushdb((err: any, result: any) => {\n if (err) return fail(err)\n ok()\n })\n })\n }\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n async remove(\n identifiers: string[],\n queryRunner?: QueryRunner,\n ): Promise<void> {\n await Promise.all(\n identifiers.map((identifier) => {\n return this.deleteKey(identifier)\n }),\n )\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes a single key from redis database.\n */\n protected deleteKey(key: string): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.del(key, (err: any, result: any) => {\n if (err) return fail(err)\n ok()\n })\n })\n }\n\n /**\n * Loads redis dependency.\n */\n protected loadRedis(): any {\n try {\n if (this.clientType === \"ioredis/cluster\") {\n return PlatformTools.load(\"ioredis\")\n } else {\n return PlatformTools.load(this.clientType)\n }\n } catch (e) {\n throw new TypeORMError(\n `Cannot use cache because ${this.clientType} is not installed. Please run \"npm i ${this.clientType} --save\".`,\n )\n }\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli-ts-node-commonjs.ts"],"names":[],"mappings":";;;AACA,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7B,iBAAc","file":"cli-ts-node-commonjs.js","sourcesContent":["#!/usr/bin/env node\r\nrequire(\"ts-node\").register()\r\nimport \"./cli\"\r\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../src/cli-ts-node-commonjs.ts"],"names":[],"mappings":";;;AACA,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7B,iBAAc","file":"cli-ts-node-commonjs.js","sourcesContent":["#!/usr/bin/env node\nrequire(\"ts-node\").register()\nimport \"./cli\"\n"],"sourceRoot":"."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli-ts-node-esm.ts"],"names":[],"mappings":";;;AACA,iDAAyC;AAEzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,OAAO,CAAC,CAAA;KACf,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,yBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACnE,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACD,GAAG,OAAO,CAAC,GAAG;YACd,YAAY,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC3B,sBAAsB;gBACtB,eAAe;aAClB;iBACI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACxB,IAAI,CAAC,GAAG,CAAC;SACjB;QACD,WAAW,EAAE,IAAI;KACpB,CAAC,CAAA;IAEF,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;AAC1C,CAAC","file":"cli-ts-node-esm.js","sourcesContent":["#!/usr/bin/env node\r\nimport { spawnSync } from \"child_process\"\r\n\r\nif ((process.env[\"NODE_OPTIONS\"] || \"\").includes(\"--loader ts-node\"))\r\n require(\"./cli\")\r\nelse {\r\n const childProcess = spawnSync(process.argv[0], process.argv.slice(1), {\r\n stdio: \"inherit\",\r\n env: {\r\n ...process.env,\r\n NODE_OPTIONS: [\r\n process.env[\"NODE_OPTIONS\"],\r\n \"--loader ts-node/esm\",\r\n \"--no-warnings\",\r\n ]\r\n .filter((item) => !!item)\r\n .join(\" \"),\r\n },\r\n windowsHide: true,\r\n })\r\n\r\n process.exit(childProcess.status || 0)\r\n}\r\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../src/cli-ts-node-esm.ts"],"names":[],"mappings":";;;AACA,iDAAyC;AAEzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,OAAO,CAAC,CAAA;KACf,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,yBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACnE,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACD,GAAG,OAAO,CAAC,GAAG;YACd,YAAY,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC3B,sBAAsB;gBACtB,eAAe;aAClB;iBACI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACxB,IAAI,CAAC,GAAG,CAAC;SACjB;QACD,WAAW,EAAE,IAAI;KACpB,CAAC,CAAA;IAEF,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;AAC1C,CAAC","file":"cli-ts-node-esm.js","sourcesContent":["#!/usr/bin/env node\nimport { spawnSync } from \"child_process\"\n\nif ((process.env[\"NODE_OPTIONS\"] || \"\").includes(\"--loader ts-node\"))\n require(\"./cli\")\nelse {\n const childProcess = spawnSync(process.argv[0], process.argv.slice(1), {\n stdio: \"inherit\",\n env: {\n ...process.env,\n NODE_OPTIONS: [\n process.env[\"NODE_OPTIONS\"],\n \"--loader ts-node/esm\",\n \"--no-warnings\",\n ]\n .filter((item) => !!item)\n .join(\" \"),\n },\n windowsHide: true,\n })\n\n process.exit(childProcess.status || 0)\n}\n"],"sourceRoot":"."}
package/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli.ts"],"names":[],"mappings":";;;;AACA,4BAAyB;AACzB,0DAAyB;AACzB,oEAAgE;AAChE,oEAAgE;AAChE,0DAAsD;AACtD,wEAAoE;AACpE,8EAA0E;AAC1E,wEAAoE;AACpE,8EAA0E;AAC1E,0EAAsE;AACtE,gFAA4E;AAC5E,kEAA8D;AAC9D,kFAA8E;AAC9E,8DAA0D;AAC1D,wDAAoD;AACpD,oEAAgE;AAEhE,eAAK;KACA,KAAK,CAAC,+BAA+B,CAAC;KACtC,OAAO,CAAC,IAAI,qCAAiB,EAAE,CAAC;KAChC,OAAO,CAAC,IAAI,mCAAgB,EAAE,CAAC;KAC/B,OAAO,CAAC,IAAI,qCAAiB,EAAE,CAAC;KAChC,OAAO,CAAC,IAAI,2BAAY,EAAE,CAAC;KAC3B,OAAO,CAAC,IAAI,yCAAmB,EAAE,CAAC;KAClC,OAAO,CAAC,IAAI,iDAAuB,EAAE,CAAC;KACtC,OAAO,CAAC,IAAI,+CAAsB,EAAE,CAAC;KACrC,OAAO,CAAC,IAAI,mDAAwB,EAAE,CAAC;KACvC,OAAO,CAAC,IAAI,yCAAmB,EAAE,CAAC;KAClC,OAAO,CAAC,IAAI,2CAAoB,EAAE,CAAC;KACnC,OAAO,CAAC,IAAI,+CAAsB,EAAE,CAAC;KACrC,OAAO,CAAC,IAAI,+BAAc,EAAE,CAAC;KAC7B,OAAO,CAAC,IAAI,qCAAiB,EAAE,CAAC;KAChC,OAAO,CAAC,IAAI,yBAAW,EAAE,CAAC;KAC1B,iBAAiB,EAAE;KACnB,aAAa,CAAC,CAAC,CAAC;KAChB,MAAM,EAAE;KACR,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KACrB,IAAI,CAAC,GAAG,CAAC;KACT,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAA","file":"cli.js","sourcesContent":["#!/usr/bin/env node\r\nimport \"reflect-metadata\"\r\nimport yargs from \"yargs\"\r\nimport { SchemaSyncCommand } from \"./commands/SchemaSyncCommand\"\r\nimport { SchemaDropCommand } from \"./commands/SchemaDropCommand\"\r\nimport { QueryCommand } from \"./commands/QueryCommand\"\r\nimport { EntityCreateCommand } from \"./commands/EntityCreateCommand\"\r\nimport { MigrationCreateCommand } from \"./commands/MigrationCreateCommand\"\r\nimport { MigrationRunCommand } from \"./commands/MigrationRunCommand\"\r\nimport { MigrationRevertCommand } from \"./commands/MigrationRevertCommand\"\r\nimport { MigrationShowCommand } from \"./commands/MigrationShowCommand\"\r\nimport { SubscriberCreateCommand } from \"./commands/SubscriberCreateCommand\"\r\nimport { SchemaLogCommand } from \"./commands/SchemaLogCommand\"\r\nimport { MigrationGenerateCommand } from \"./commands/MigrationGenerateCommand\"\r\nimport { VersionCommand } from \"./commands/VersionCommand\"\r\nimport { InitCommand } from \"./commands/InitCommand\"\r\nimport { CacheClearCommand } from \"./commands/CacheClearCommand\"\r\n\r\nyargs\r\n .usage(\"Usage: $0 <command> [options]\")\r\n .command(new SchemaSyncCommand())\r\n .command(new SchemaLogCommand())\r\n .command(new SchemaDropCommand())\r\n .command(new QueryCommand())\r\n .command(new EntityCreateCommand())\r\n .command(new SubscriberCreateCommand())\r\n .command(new MigrationCreateCommand())\r\n .command(new MigrationGenerateCommand())\r\n .command(new MigrationRunCommand())\r\n .command(new MigrationShowCommand())\r\n .command(new MigrationRevertCommand())\r\n .command(new VersionCommand())\r\n .command(new CacheClearCommand())\r\n .command(new InitCommand())\r\n .recommendCommands()\r\n .demandCommand(1)\r\n .strict()\r\n .alias(\"v\", \"version\")\r\n .help(\"h\")\r\n .alias(\"h\", \"help\").argv\r\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../src/cli.ts"],"names":[],"mappings":";;;;AACA,4BAAyB;AACzB,0DAAyB;AACzB,oEAAgE;AAChE,oEAAgE;AAChE,0DAAsD;AACtD,wEAAoE;AACpE,8EAA0E;AAC1E,wEAAoE;AACpE,8EAA0E;AAC1E,0EAAsE;AACtE,gFAA4E;AAC5E,kEAA8D;AAC9D,kFAA8E;AAC9E,8DAA0D;AAC1D,wDAAoD;AACpD,oEAAgE;AAEhE,eAAK;KACA,KAAK,CAAC,+BAA+B,CAAC;KACtC,OAAO,CAAC,IAAI,qCAAiB,EAAE,CAAC;KAChC,OAAO,CAAC,IAAI,mCAAgB,EAAE,CAAC;KAC/B,OAAO,CAAC,IAAI,qCAAiB,EAAE,CAAC;KAChC,OAAO,CAAC,IAAI,2BAAY,EAAE,CAAC;KAC3B,OAAO,CAAC,IAAI,yCAAmB,EAAE,CAAC;KAClC,OAAO,CAAC,IAAI,iDAAuB,EAAE,CAAC;KACtC,OAAO,CAAC,IAAI,+CAAsB,EAAE,CAAC;KACrC,OAAO,CAAC,IAAI,mDAAwB,EAAE,CAAC;KACvC,OAAO,CAAC,IAAI,yCAAmB,EAAE,CAAC;KAClC,OAAO,CAAC,IAAI,2CAAoB,EAAE,CAAC;KACnC,OAAO,CAAC,IAAI,+CAAsB,EAAE,CAAC;KACrC,OAAO,CAAC,IAAI,+BAAc,EAAE,CAAC;KAC7B,OAAO,CAAC,IAAI,qCAAiB,EAAE,CAAC;KAChC,OAAO,CAAC,IAAI,yBAAW,EAAE,CAAC;KAC1B,iBAAiB,EAAE;KACnB,aAAa,CAAC,CAAC,CAAC;KAChB,MAAM,EAAE;KACR,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KACrB,IAAI,CAAC,GAAG,CAAC;KACT,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAA","file":"cli.js","sourcesContent":["#!/usr/bin/env node\nimport \"reflect-metadata\"\nimport yargs from \"yargs\"\nimport { SchemaSyncCommand } from \"./commands/SchemaSyncCommand\"\nimport { SchemaDropCommand } from \"./commands/SchemaDropCommand\"\nimport { QueryCommand } from \"./commands/QueryCommand\"\nimport { EntityCreateCommand } from \"./commands/EntityCreateCommand\"\nimport { MigrationCreateCommand } from \"./commands/MigrationCreateCommand\"\nimport { MigrationRunCommand } from \"./commands/MigrationRunCommand\"\nimport { MigrationRevertCommand } from \"./commands/MigrationRevertCommand\"\nimport { MigrationShowCommand } from \"./commands/MigrationShowCommand\"\nimport { SubscriberCreateCommand } from \"./commands/SubscriberCreateCommand\"\nimport { SchemaLogCommand } from \"./commands/SchemaLogCommand\"\nimport { MigrationGenerateCommand } from \"./commands/MigrationGenerateCommand\"\nimport { VersionCommand } from \"./commands/VersionCommand\"\nimport { InitCommand } from \"./commands/InitCommand\"\nimport { CacheClearCommand } from \"./commands/CacheClearCommand\"\n\nyargs\n .usage(\"Usage: $0 <command> [options]\")\n .command(new SchemaSyncCommand())\n .command(new SchemaLogCommand())\n .command(new SchemaDropCommand())\n .command(new QueryCommand())\n .command(new EntityCreateCommand())\n .command(new SubscriberCreateCommand())\n .command(new MigrationCreateCommand())\n .command(new MigrationGenerateCommand())\n .command(new MigrationRunCommand())\n .command(new MigrationShowCommand())\n .command(new MigrationRevertCommand())\n .command(new VersionCommand())\n .command(new CacheClearCommand())\n .command(new InitCommand())\n .recommendCommands()\n .demandCommand(1)\n .strict()\n .alias(\"v\", \"version\")\n .help(\"h\")\n .alias(\"h\", \"help\").argv\n"],"sourceRoot":"."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/CacheClearCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AACvB,8DAA6B;AAG7B,6DAAyD;AACzD,iDAA6C;AAE7C;;GAEG;AACH,MAAa,iBAAiB;IAA9B;QACI,YAAO,GAAG,aAAa,CAAA;QACvB,aAAQ,GAAG,+CAA+C,CAAA;IA8C9D,CAAC;IA5CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7B,KAAK,EAAE,GAAG;YACV,QAAQ,EACJ,6DAA6D;YACjE,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,UAAU,GAA2B,SAAS,CAAA;QAClD,IAAI,CAAC;YACD,UAAU,GAAG,MAAM,2BAAY,CAAC,cAAc,CAC1C,cAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAoB,CAAC,CACzD,CAAA;YACD,UAAU,CAAC,UAAU,CAAC;gBAClB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC,CAAA;YACF,MAAM,UAAU,CAAC,UAAU,EAAE,CAAA;YAE7B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,6BAAa,CAAC,SAAS,CACnB,2EAA2E,CAC9E,CAAA;gBACD,OAAM;YACV,CAAC;YAED,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;YACzC,OAAO,CAAC,GAAG,CAAC,eAAI,CAAC,KAAK,CAAA,gCAAgC,CAAC,CAAA;YAEvD,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAEzD,IAAI,UAAU,IAAI,UAAU,CAAC,aAAa;gBACtC,MAAO,UAAyB,CAAC,OAAO,EAAE,CAAA;YAE9C,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AAhDD,8CAgDC","file":"CacheClearCommand.js","sourcesContent":["import ansi from \"ansis\"\r\nimport path from \"path\"\r\nimport process from \"process\"\r\nimport yargs from \"yargs\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { PlatformTools } from \"../platform/PlatformTools\"\r\nimport { CommandUtils } from \"./CommandUtils\"\r\n\r\n/**\r\n * Clear cache command.\r\n */\r\nexport class CacheClearCommand implements yargs.CommandModule {\r\n command = \"cache:clear\"\r\n describe = \"Clears all data stored in query runner cache.\"\r\n\r\n builder(args: yargs.Argv) {\r\n return args.option(\"dataSource\", {\r\n alias: \"d\",\r\n describe:\r\n \"Path to the file where your DataSource instance is defined.\",\r\n demandOption: true,\r\n })\r\n }\r\n\r\n async handler(args: yargs.Arguments) {\r\n let dataSource: DataSource | undefined = undefined\r\n try {\r\n dataSource = await CommandUtils.loadDataSource(\r\n path.resolve(process.cwd(), args.dataSource as string),\r\n )\r\n dataSource.setOptions({\r\n subscribers: [],\r\n synchronize: false,\r\n migrationsRun: false,\r\n dropSchema: false,\r\n logging: [\"schema\"],\r\n })\r\n await dataSource.initialize()\r\n\r\n if (!dataSource.queryResultCache) {\r\n PlatformTools.logCmdErr(\r\n \"Cache is not enabled. To use cache enable it in connection configuration.\",\r\n )\r\n return\r\n }\r\n\r\n await dataSource.queryResultCache.clear()\r\n console.log(ansi.green`Cache was successfully cleared`)\r\n\r\n await dataSource.destroy()\r\n } catch (err) {\r\n PlatformTools.logCmdErr(\"Error during cache clear.\", err)\r\n\r\n if (dataSource && dataSource.isInitialized)\r\n await (dataSource as DataSource).destroy()\r\n\r\n process.exit(1)\r\n }\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/CacheClearCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AACvB,8DAA6B;AAG7B,6DAAyD;AACzD,iDAA6C;AAE7C;;GAEG;AACH,MAAa,iBAAiB;IAA9B;QACI,YAAO,GAAG,aAAa,CAAA;QACvB,aAAQ,GAAG,+CAA+C,CAAA;IA8C9D,CAAC;IA5CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7B,KAAK,EAAE,GAAG;YACV,QAAQ,EACJ,6DAA6D;YACjE,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,UAAU,GAA2B,SAAS,CAAA;QAClD,IAAI,CAAC;YACD,UAAU,GAAG,MAAM,2BAAY,CAAC,cAAc,CAC1C,cAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAoB,CAAC,CACzD,CAAA;YACD,UAAU,CAAC,UAAU,CAAC;gBAClB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC,CAAA;YACF,MAAM,UAAU,CAAC,UAAU,EAAE,CAAA;YAE7B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,6BAAa,CAAC,SAAS,CACnB,2EAA2E,CAC9E,CAAA;gBACD,OAAM;YACV,CAAC;YAED,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;YACzC,OAAO,CAAC,GAAG,CAAC,eAAI,CAAC,KAAK,CAAA,gCAAgC,CAAC,CAAA;YAEvD,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,6BAAa,CAAC,SAAS,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAEzD,IAAI,UAAU,IAAI,UAAU,CAAC,aAAa;gBACtC,MAAO,UAAyB,CAAC,OAAO,EAAE,CAAA;YAE9C,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AAhDD,8CAgDC","file":"CacheClearCommand.js","sourcesContent":["import ansi from \"ansis\"\nimport path from \"path\"\nimport process from \"process\"\nimport yargs from \"yargs\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Clear cache command.\n */\nexport class CacheClearCommand implements yargs.CommandModule {\n command = \"cache:clear\"\n describe = \"Clears all data stored in query runner cache.\"\n\n builder(args: yargs.Argv) {\n return args.option(\"dataSource\", {\n alias: \"d\",\n describe:\n \"Path to the file where your DataSource instance is defined.\",\n demandOption: true,\n })\n }\n\n async handler(args: yargs.Arguments) {\n let dataSource: DataSource | undefined = undefined\n try {\n dataSource = await CommandUtils.loadDataSource(\n path.resolve(process.cwd(), args.dataSource as string),\n )\n dataSource.setOptions({\n subscribers: [],\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: [\"schema\"],\n })\n await dataSource.initialize()\n\n if (!dataSource.queryResultCache) {\n PlatformTools.logCmdErr(\n \"Cache is not enabled. To use cache enable it in connection configuration.\",\n )\n return\n }\n\n await dataSource.queryResultCache.clear()\n console.log(ansi.green`Cache was successfully cleared`)\n\n await dataSource.destroy()\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during cache clear.\", err)\n\n if (dataSource && dataSource.isInitialized)\n await (dataSource as DataSource).destroy()\n\n process.exit(1)\n }\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":"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","file":"CommandUtils.js","sourcesContent":["import fs from \"fs/promises\"\r\nimport path from \"path\"\r\nimport { TypeORMError } from \"../error\"\r\nimport { DataSource } from \"../data-source\"\r\nimport { InstanceChecker } from \"../util/InstanceChecker\"\r\nimport { importOrRequireFile } from \"../util/ImportUtils\"\r\n\r\n/**\r\n * Command line utils functions.\r\n */\r\nexport class CommandUtils {\r\n static async loadDataSource(\r\n dataSourceFilePath: string,\r\n ): Promise<DataSource> {\r\n let dataSourceFileExports\r\n try {\r\n [dataSourceFileExports] = await importOrRequireFile(\r\n dataSourceFilePath,\r\n )\r\n } catch (err) {\r\n throw new Error(\r\n `Unable to open file: \"${dataSourceFilePath}\". ${err.message}`,\r\n )\r\n }\r\n\r\n if (\r\n !dataSourceFileExports ||\r\n typeof dataSourceFileExports !== \"object\"\r\n ) {\r\n throw new Error(\r\n `Given data source file must contain export of a DataSource instance`,\r\n )\r\n }\r\n\r\n if (InstanceChecker.isDataSource(dataSourceFileExports)) {\r\n return dataSourceFileExports\r\n }\r\n\r\n const dataSourceExports = []\r\n for (const fileExportKey in dataSourceFileExports) {\r\n const fileExport = dataSourceFileExports[fileExportKey]\r\n // It is necessary to await here in case of the exported async value (Promise<DataSource>).\r\n // e.g. the DataSource is instantiated with an async factory in the source file\r\n // It is safe to await regardless of the export being async or not due to `awaits` definition:\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#return_value\r\n const awaitedFileExport = await fileExport\r\n if (InstanceChecker.isDataSource(awaitedFileExport)) {\r\n dataSourceExports.push(awaitedFileExport)\r\n }\r\n }\r\n\r\n if (dataSourceExports.length === 0) {\r\n throw new Error(\r\n `Given data source file must contain export of a DataSource instance`,\r\n )\r\n }\r\n if (dataSourceExports.length > 1) {\r\n throw new Error(\r\n `Given data source file must contain only one export of DataSource instance`,\r\n )\r\n }\r\n return dataSourceExports[0]\r\n }\r\n\r\n /**\r\n * Creates directories recursively.\r\n */\r\n static async createDirectories(directory: string): Promise<void> {\r\n await fs.mkdir(directory, { recursive: true })\r\n }\r\n\r\n /**\r\n * Creates a file with the given content in the given path.\r\n */\r\n static async createFile(\r\n filePath: string,\r\n content: string,\r\n override: boolean = true,\r\n ): Promise<void> {\r\n await CommandUtils.createDirectories(path.dirname(filePath))\r\n if (override === false && (await CommandUtils.fileExists(filePath))) {\r\n return\r\n }\r\n await fs.writeFile(filePath, content)\r\n }\r\n\r\n /**\r\n * Reads everything from a given file and returns its content as a string.\r\n */\r\n static async readFile(filePath: string): Promise<string> {\r\n const file = await fs.readFile(filePath)\r\n\r\n return file.toString()\r\n }\r\n\r\n static async fileExists(filePath: string) {\r\n try {\r\n await fs.access(filePath, fs.constants.F_OK)\r\n return true\r\n } catch {\r\n return false\r\n }\r\n }\r\n\r\n /**\r\n * Gets migration timestamp and validates argument (if sent)\r\n */\r\n static getTimestamp(timestampOptionArgument: any): number {\r\n if (\r\n timestampOptionArgument &&\r\n (isNaN(timestampOptionArgument) || timestampOptionArgument < 0)\r\n ) {\r\n throw new TypeORMError(\r\n `timestamp option should be a non-negative number. received: ${timestampOptionArgument}`,\r\n )\r\n }\r\n return timestampOptionArgument\r\n ? new Date(Number(timestampOptionArgument)).getTime()\r\n : Date.now()\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":";;;;AAAA,mEAA4B;AAC5B,wDAAuB;AACvB,oCAAuC;AAEvC,6DAAyD;AACzD,qDAAyD;AAEzD;;GAEG;AACH,MAAa,YAAY;IACrB,MAAM,CAAC,KAAK,CAAC,cAAc,CACvB,kBAA0B;QAE1B,IAAI,qBAAqB,CAAA;QACzB,IAAI,CAAC;YACD,CAAC,qBAAqB,CAAC,GAAG,MAAM,IAAA,iCAAmB,EAC/C,kBAAkB,CACrB,CAAA;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACX,yBAAyB,kBAAkB,MAAM,GAAG,CAAC,OAAO,EAAE,CACjE,CAAA;QACL,CAAC;QAED,IACI,CAAC,qBAAqB;YACtB,OAAO,qBAAqB,KAAK,QAAQ,EAC3C,CAAC;YACC,MAAM,IAAI,KAAK,CACX,qEAAqE,CACxE,CAAA;QACL,CAAC;QAED,IAAI,iCAAe,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACtD,OAAO,qBAAqB,CAAA;QAChC,CAAC;QAED,MAAM,iBAAiB,GAAG,EAAE,CAAA;QAC5B,KAAK,MAAM,aAAa,IAAI,qBAAqB,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAA;YACvD,2FAA2F;YAC3F,+EAA+E;YAC/E,8FAA8F;YAC9F,iGAAiG;YACjG,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAA;YAC1C,IAAI,iCAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAClD,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC7C,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACX,qEAAqE,CACxE,CAAA;QACL,CAAC;QACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACX,4EAA4E,CAC/E,CAAA;QACL,CAAC;QACD,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC5C,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CACnB,QAAgB,EAChB,OAAe,EACf,WAAoB,IAAI;QAExB,MAAM,YAAY,CAAC,iBAAiB,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAClE,OAAM;QACV,CAAC;QACD,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAClC,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAExC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB;QACpC,IAAI,CAAC;YACD,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,uBAA4B;QAC5C,IACI,uBAAuB;YACvB,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,uBAAuB,GAAG,CAAC,CAAC,EACjE,CAAC;YACC,MAAM,IAAI,oBAAY,CAClB,+DAA+D,uBAAuB,EAAE,CAC3F,CAAA;QACL,CAAC;QACD,OAAO,uBAAuB;YAC1B,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,EAAE;YACrD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;IACpB,CAAC;CACJ;AA9GD,oCA8GC","file":"CommandUtils.js","sourcesContent":["import fs from \"fs/promises\"\nimport path from \"path\"\nimport { TypeORMError } from \"../error\"\nimport { DataSource } from \"../data-source\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\nimport { importOrRequireFile } from \"../util/ImportUtils\"\n\n/**\n * Command line utils functions.\n */\nexport class CommandUtils {\n static async loadDataSource(\n dataSourceFilePath: string,\n ): Promise<DataSource> {\n let dataSourceFileExports\n try {\n [dataSourceFileExports] = await importOrRequireFile(\n dataSourceFilePath,\n )\n } catch (err) {\n throw new Error(\n `Unable to open file: \"${dataSourceFilePath}\". ${err.message}`,\n )\n }\n\n if (\n !dataSourceFileExports ||\n typeof dataSourceFileExports !== \"object\"\n ) {\n throw new Error(\n `Given data source file must contain export of a DataSource instance`,\n )\n }\n\n if (InstanceChecker.isDataSource(dataSourceFileExports)) {\n return dataSourceFileExports\n }\n\n const dataSourceExports = []\n for (const fileExportKey in dataSourceFileExports) {\n const fileExport = dataSourceFileExports[fileExportKey]\n // It is necessary to await here in case of the exported async value (Promise<DataSource>).\n // e.g. the DataSource is instantiated with an async factory in the source file\n // It is safe to await regardless of the export being async or not due to `awaits` definition:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#return_value\n const awaitedFileExport = await fileExport\n if (InstanceChecker.isDataSource(awaitedFileExport)) {\n dataSourceExports.push(awaitedFileExport)\n }\n }\n\n if (dataSourceExports.length === 0) {\n throw new Error(\n `Given data source file must contain export of a DataSource instance`,\n )\n }\n if (dataSourceExports.length > 1) {\n throw new Error(\n `Given data source file must contain only one export of DataSource instance`,\n )\n }\n return dataSourceExports[0]\n }\n\n /**\n * Creates directories recursively.\n */\n static async createDirectories(directory: string): Promise<void> {\n await fs.mkdir(directory, { recursive: true })\n }\n\n /**\n * Creates a file with the given content in the given path.\n */\n static async createFile(\n filePath: string,\n content: string,\n override: boolean = true,\n ): Promise<void> {\n await CommandUtils.createDirectories(path.dirname(filePath))\n if (override === false && (await CommandUtils.fileExists(filePath))) {\n return\n }\n await fs.writeFile(filePath, content)\n }\n\n /**\n * Reads everything from a given file and returns its content as a string.\n */\n static async readFile(filePath: string): Promise<string> {\n const file = await fs.readFile(filePath)\n\n return file.toString()\n }\n\n static async fileExists(filePath: string) {\n try {\n await fs.access(filePath, fs.constants.F_OK)\n return true\n } catch {\n return false\n }\n }\n\n /**\n * Gets migration timestamp and validates argument (if sent)\n */\n static getTimestamp(timestampOptionArgument: any): number {\n if (\n timestampOptionArgument &&\n (isNaN(timestampOptionArgument) || timestampOptionArgument < 0)\n ) {\n throw new TypeORMError(\n `timestamp option should be a non-negative number. received: ${timestampOptionArgument}`,\n )\n }\n return timestampOptionArgument\n ? new Date(Number(timestampOptionArgument)).getTime()\n : Date.now()\n }\n}\n"],"sourceRoot":".."}
@@ -47,12 +47,12 @@ class EntityCreateCommand {
47
47
  * Gets contents of the entity file.
48
48
  */
49
49
  static getTemplate(name) {
50
- return `import { Entity } from "typeorm"
51
-
52
- @Entity()
53
- export class ${name} {
54
-
55
- }
50
+ return `import { Entity } from "typeorm"
51
+
52
+ @Entity()
53
+ export class ${name} {
54
+
55
+ }
56
56
  `;
57
57
  }
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AAEvB,6DAAyD;AACzD,iDAA6C;AAE7C;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QACI,YAAO,GAAG,sBAAsB,CAAA;QAChC,aAAQ,GAAG,yBAAyB,CAAA;IA+CxC,CAAC;IA7CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,yBAAyB;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,CAAC,UAAU,CAAC,GAAG,CAAC;gBAClD,CAAC,CAAE,IAAI,CAAC,IAAe;gBACvB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAc,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC7D,MAAM,UAAU,GAAG,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA;YAClE,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,qBAAqB,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,EAAE,WAAW,CAAC,CAAA;YAC5D,OAAO,CAAC,GAAG,CACP,eAAI,CAAC,KAAK,CAAA,UAAU,eAAI,CAAC,IAAI,CAAA,GAAG,QAAQ,KAAK,iCAAiC,CACjF,CAAA;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,6BAAa,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACO,MAAM,CAAC,WAAW,CAAC,IAAY;QACrC,OAAO;;;eAGA,IAAI;;;CAGlB,CAAA;IACG,CAAC;CACJ;AAjDD,kDAiDC","file":"EntityCreateCommand.js","sourcesContent":["import ansi from \"ansis\"\r\nimport path from \"path\"\r\nimport yargs from \"yargs\"\r\nimport { PlatformTools } from \"../platform/PlatformTools\"\r\nimport { CommandUtils } from \"./CommandUtils\"\r\n\r\n/**\r\n * Generates a new entity.\r\n */\r\nexport class EntityCreateCommand implements yargs.CommandModule {\r\n command = \"entity:create <path>\"\r\n describe = \"Generates a new entity.\"\r\n\r\n builder(args: yargs.Argv) {\r\n return args.positional(\"path\", {\r\n type: \"string\",\r\n describe: \"Path of the entity file\",\r\n demandOption: true,\r\n })\r\n }\r\n\r\n async handler(args: yargs.Arguments) {\r\n try {\r\n const fullPath = (args.path as string).startsWith(\"/\")\r\n ? (args.path as string)\r\n : path.resolve(process.cwd(), args.path as string)\r\n const filename = path.basename(fullPath)\r\n const fileContent = EntityCreateCommand.getTemplate(filename)\r\n const fileExists = await CommandUtils.fileExists(fullPath + \".ts\")\r\n if (fileExists) {\r\n throw new Error(`File \"${fullPath}.ts\" already exists`)\r\n }\r\n await CommandUtils.createFile(fullPath + \".ts\", fileContent)\r\n console.log(\r\n ansi.green`Entity ${ansi.blue`${fullPath}.ts`} has been created successfully.`,\r\n )\r\n } catch (error) {\r\n PlatformTools.logCmdErr(\"Error during entity creation:\", error)\r\n process.exit(1)\r\n }\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Static Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets contents of the entity file.\r\n */\r\n protected static getTemplate(name: string): string {\r\n return `import { Entity } from \"typeorm\"\r\n\r\n@Entity()\r\nexport class ${name} {\r\n\r\n}\r\n`\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":";;;;AAAA,0DAAwB;AACxB,wDAAuB;AAEvB,6DAAyD;AACzD,iDAA6C;AAE7C;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QACI,YAAO,GAAG,sBAAsB,CAAA;QAChC,aAAQ,GAAG,yBAAyB,CAAA;IA+CxC,CAAC;IA7CG,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,yBAAyB;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,CAAC,UAAU,CAAC,GAAG,CAAC;gBAClD,CAAC,CAAE,IAAI,CAAC,IAAe;gBACvB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAc,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC7D,MAAM,UAAU,GAAG,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA;YAClE,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,qBAAqB,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,2BAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,EAAE,WAAW,CAAC,CAAA;YAC5D,OAAO,CAAC,GAAG,CACP,eAAI,CAAC,KAAK,CAAA,UAAU,eAAI,CAAC,IAAI,CAAA,GAAG,QAAQ,KAAK,iCAAiC,CACjF,CAAA;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,6BAAa,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACO,MAAM,CAAC,WAAW,CAAC,IAAY;QACrC,OAAO;;;eAGA,IAAI;;;CAGlB,CAAA;IACG,CAAC;CACJ;AAjDD,kDAiDC","file":"EntityCreateCommand.js","sourcesContent":["import ansi from \"ansis\"\nimport path from \"path\"\nimport yargs from \"yargs\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create <path>\"\n describe = \"Generates a new entity.\"\n\n builder(args: yargs.Argv) {\n return args.positional(\"path\", {\n type: \"string\",\n describe: \"Path of the entity file\",\n demandOption: true,\n })\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fullPath = (args.path as string).startsWith(\"/\")\n ? (args.path as string)\n : path.resolve(process.cwd(), args.path as string)\n const filename = path.basename(fullPath)\n const fileContent = EntityCreateCommand.getTemplate(filename)\n const fileExists = await CommandUtils.fileExists(fullPath + \".ts\")\n if (fileExists) {\n throw new Error(`File \"${fullPath}.ts\" already exists`)\n }\n await CommandUtils.createFile(fullPath + \".ts\", fileContent)\n console.log(\n ansi.green`Entity ${ansi.blue`${fullPath}.ts`} has been created successfully.`,\n )\n } catch (error) {\n PlatformTools.logCmdErr(\"Error during entity creation:\", error)\n process.exit(1)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the entity file.\n */\n protected static getTemplate(name: string): string {\n return `import { Entity } from \"typeorm\"\n\n@Entity()\nexport class ${name} {\n\n}\n`\n }\n}\n"],"sourceRoot":".."}