typeorm 0.3.22-dev.b0ea913 → 0.3.22-dev.bcaa0bf

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 (277) hide show
  1. package/browser/cache/DbQueryResultCache.js +1 -1
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/connection/ConnectionOptionsReader.js +5 -9
  4. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  5. package/browser/data-source/DataSource.js +2 -2
  6. package/browser/data-source/DataSource.js.map +1 -1
  7. package/browser/driver/DriverUtils.js +4 -5
  8. package/browser/driver/DriverUtils.js.map +1 -1
  9. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +3 -3
  10. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1 -1
  12. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  13. package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
  14. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  15. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  16. package/browser/driver/cockroachdb/CockroachQueryRunner.js +6 -3
  17. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  18. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  19. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  20. package/browser/driver/expo/ExpoQueryRunner.js +1 -1
  21. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  22. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +111 -142
  23. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  24. package/browser/driver/mongodb/MongoDriver.d.ts +2 -3
  25. package/browser/driver/mongodb/MongoDriver.js +57 -65
  26. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  27. package/browser/driver/mysql/MysqlDriver.js +10 -12
  28. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  29. package/browser/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  30. package/browser/driver/mysql/MysqlQueryRunner.js +9 -3
  31. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  32. package/browser/driver/oracle/OracleDriver.js +3 -3
  33. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  34. package/browser/driver/oracle/OracleQueryRunner.js +2 -2
  35. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  36. package/browser/driver/postgres/PostgresDriver.d.ts +2 -1
  37. package/browser/driver/postgres/PostgresDriver.js +11 -15
  38. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  39. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  40. package/browser/driver/postgres/PostgresQueryRunner.js +8 -7
  41. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  42. package/browser/driver/react-native/ReactNativeDriver.js +1 -1
  43. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  44. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  45. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  46. package/browser/driver/sap/SapDriver.d.ts +4 -0
  47. package/browser/driver/sap/SapDriver.js +10 -12
  48. package/browser/driver/sap/SapDriver.js.map +1 -1
  49. package/browser/driver/sap/SapQueryRunner.d.ts +7 -0
  50. package/browser/driver/sap/SapQueryRunner.js +18 -11
  51. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  52. package/browser/driver/spanner/SpannerDriver.js +3 -3
  53. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  54. package/browser/driver/spanner/SpannerQueryRunner.js +7 -7
  55. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  56. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  57. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  58. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +7 -7
  59. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  60. package/browser/driver/sqljs/SqljsDriver.js +1 -1
  61. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  62. package/browser/driver/sqlserver/SqlServerDriver.js +3 -3
  63. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  64. package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -4
  65. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  66. package/browser/entity-manager/EntityManager.js.map +1 -1
  67. package/browser/entity-manager/MongoEntityManager.js +1 -1
  68. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  69. package/browser/find-options/FindOptionsSelect.d.ts +1 -1
  70. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  71. package/browser/find-options/FindOptionsUtils.js +1 -1
  72. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  73. package/browser/index.d.ts +1 -0
  74. package/browser/index.js +1 -0
  75. package/browser/index.js.map +1 -1
  76. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  77. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  78. package/browser/logger/DebugLogger.js +1 -1
  79. package/browser/logger/DebugLogger.js.map +1 -1
  80. package/browser/logger/FileLogger.js +1 -1
  81. package/browser/logger/FileLogger.js.map +1 -1
  82. package/browser/logger/SimpleConsoleLogger.js +1 -1
  83. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  84. package/browser/metadata/ColumnMetadata.js +1 -1
  85. package/browser/metadata/ColumnMetadata.js.map +1 -1
  86. package/browser/metadata/EmbeddedMetadata.js +1 -1
  87. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  88. package/browser/migration/MigrationExecutor.js +2 -2
  89. package/browser/migration/MigrationExecutor.js.map +1 -1
  90. package/browser/persistence/EntityPersistExecutor.js +2 -2
  91. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  92. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  93. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  94. package/browser/persistence/SubjectExecutor.js +1 -1
  95. package/browser/persistence/SubjectExecutor.js.map +1 -1
  96. package/browser/persistence/SubjectTopologicalSorter.js +5 -5
  97. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  98. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  99. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  100. package/browser/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  101. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  102. package/browser/query-builder/InsertQueryBuilder.js +2 -1
  103. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  104. package/browser/query-builder/JoinAttribute.js +2 -2
  105. package/browser/query-builder/JoinAttribute.js.map +1 -1
  106. package/browser/query-builder/QueryBuilder.js +2 -2
  107. package/browser/query-builder/QueryBuilder.js.map +1 -1
  108. package/browser/query-builder/RelationIdLoader.js +2 -2
  109. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  110. package/browser/query-builder/SelectQueryBuilder.js +18 -3
  111. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  112. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  113. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  114. package/browser/query-builder/UpdateQueryBuilder.js +3 -3
  115. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  116. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -1
  117. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  118. package/browser/repository/Repository.js.map +1 -1
  119. package/browser/subscriber/event/QueryEvent.d.ts +1 -1
  120. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  121. package/browser/util/DepGraph.js +13 -13
  122. package/browser/util/DepGraph.js.map +1 -1
  123. package/browser/util/DirectoryExportedClassesLoader.js +2 -2
  124. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  125. package/browser/util/InstanceChecker.js.map +1 -1
  126. package/browser/util/ObjectUtils.d.ts +2 -2
  127. package/browser/util/ObjectUtils.js.map +1 -1
  128. package/browser/util/OrmUtils.js +4 -4
  129. package/browser/util/OrmUtils.js.map +1 -1
  130. package/browser/util/RandomGenerator.js +6 -6
  131. package/browser/util/RandomGenerator.js.map +1 -1
  132. package/browser/util/VersionUtils.d.ts +1 -2
  133. package/browser/util/VersionUtils.js +14 -7
  134. package/browser/util/VersionUtils.js.map +1 -1
  135. package/browser/util/escapeRegExp.d.ts +1 -1
  136. package/browser/util/escapeRegExp.js.map +1 -1
  137. package/cache/DbQueryResultCache.js +1 -1
  138. package/cache/DbQueryResultCache.js.map +1 -1
  139. package/commands/CommandUtils.js +1 -0
  140. package/commands/CommandUtils.js.map +1 -1
  141. package/commands/InitCommand.js +29 -27
  142. package/commands/InitCommand.js.map +1 -1
  143. package/connection/ConnectionOptionsReader.js +5 -9
  144. package/connection/ConnectionOptionsReader.js.map +1 -1
  145. package/data-source/DataSource.js +2 -2
  146. package/data-source/DataSource.js.map +1 -1
  147. package/driver/DriverUtils.js +4 -5
  148. package/driver/DriverUtils.js.map +1 -1
  149. package/driver/aurora-mysql/AuroraMysqlDriver.js +3 -3
  150. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  151. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1 -1
  152. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  153. package/driver/cockroachdb/CockroachDriver.js +3 -3
  154. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  155. package/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  156. package/driver/cockroachdb/CockroachQueryRunner.js +6 -3
  157. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  158. package/driver/cordova/CordovaQueryRunner.js +1 -1
  159. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  160. package/driver/expo/ExpoQueryRunner.js +1 -1
  161. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  162. package/driver/mongodb/MongoConnectionOptions.d.ts +111 -142
  163. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  164. package/driver/mongodb/MongoDriver.d.ts +2 -3
  165. package/driver/mongodb/MongoDriver.js +57 -65
  166. package/driver/mongodb/MongoDriver.js.map +1 -1
  167. package/driver/mysql/MysqlDriver.js +10 -12
  168. package/driver/mysql/MysqlDriver.js.map +1 -1
  169. package/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  170. package/driver/mysql/MysqlQueryRunner.js +9 -3
  171. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  172. package/driver/oracle/OracleDriver.js +3 -3
  173. package/driver/oracle/OracleDriver.js.map +1 -1
  174. package/driver/oracle/OracleQueryRunner.js +2 -2
  175. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  176. package/driver/postgres/PostgresDriver.d.ts +2 -1
  177. package/driver/postgres/PostgresDriver.js +11 -15
  178. package/driver/postgres/PostgresDriver.js.map +1 -1
  179. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  180. package/driver/postgres/PostgresQueryRunner.js +8 -7
  181. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  182. package/driver/react-native/ReactNativeDriver.js +1 -1
  183. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  184. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  185. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  186. package/driver/sap/SapDriver.d.ts +4 -0
  187. package/driver/sap/SapDriver.js +10 -12
  188. package/driver/sap/SapDriver.js.map +1 -1
  189. package/driver/sap/SapQueryRunner.d.ts +7 -0
  190. package/driver/sap/SapQueryRunner.js +18 -11
  191. package/driver/sap/SapQueryRunner.js.map +1 -1
  192. package/driver/spanner/SpannerDriver.js +3 -3
  193. package/driver/spanner/SpannerDriver.js.map +1 -1
  194. package/driver/spanner/SpannerQueryRunner.js +7 -7
  195. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  196. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  197. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  198. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +7 -7
  199. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  200. package/driver/sqljs/SqljsDriver.js +1 -1
  201. package/driver/sqljs/SqljsDriver.js.map +1 -1
  202. package/driver/sqlserver/SqlServerDriver.js +3 -3
  203. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  204. package/driver/sqlserver/SqlServerQueryRunner.js +4 -4
  205. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  206. package/entity-manager/EntityManager.js.map +1 -1
  207. package/entity-manager/MongoEntityManager.js +1 -1
  208. package/entity-manager/MongoEntityManager.js.map +1 -1
  209. package/find-options/FindOptionsSelect.d.ts +1 -1
  210. package/find-options/FindOptionsSelect.js.map +1 -1
  211. package/find-options/FindOptionsUtils.js +1 -1
  212. package/find-options/FindOptionsUtils.js.map +1 -1
  213. package/index.d.ts +1 -0
  214. package/index.js +1 -0
  215. package/index.js.map +1 -1
  216. package/logger/AdvancedConsoleLogger.js +1 -1
  217. package/logger/AdvancedConsoleLogger.js.map +1 -1
  218. package/logger/DebugLogger.js +1 -1
  219. package/logger/DebugLogger.js.map +1 -1
  220. package/logger/FileLogger.js +1 -1
  221. package/logger/FileLogger.js.map +1 -1
  222. package/logger/SimpleConsoleLogger.js +1 -1
  223. package/logger/SimpleConsoleLogger.js.map +1 -1
  224. package/metadata/ColumnMetadata.js +1 -1
  225. package/metadata/ColumnMetadata.js.map +1 -1
  226. package/metadata/EmbeddedMetadata.js +1 -1
  227. package/metadata/EmbeddedMetadata.js.map +1 -1
  228. package/migration/MigrationExecutor.js +2 -2
  229. package/migration/MigrationExecutor.js.map +1 -1
  230. package/package.json +1 -1
  231. package/persistence/EntityPersistExecutor.js +2 -2
  232. package/persistence/EntityPersistExecutor.js.map +1 -1
  233. package/persistence/SubjectDatabaseEntityLoader.js +1 -1
  234. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  235. package/persistence/SubjectExecutor.js +1 -1
  236. package/persistence/SubjectExecutor.js.map +1 -1
  237. package/persistence/SubjectTopologicalSorter.js +5 -5
  238. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  239. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  240. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  241. package/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  242. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  243. package/query-builder/InsertQueryBuilder.js +2 -1
  244. package/query-builder/InsertQueryBuilder.js.map +1 -1
  245. package/query-builder/JoinAttribute.js +2 -2
  246. package/query-builder/JoinAttribute.js.map +1 -1
  247. package/query-builder/QueryBuilder.js +2 -2
  248. package/query-builder/QueryBuilder.js.map +1 -1
  249. package/query-builder/RelationIdLoader.js +2 -2
  250. package/query-builder/RelationIdLoader.js.map +1 -1
  251. package/query-builder/SelectQueryBuilder.js +18 -3
  252. package/query-builder/SelectQueryBuilder.js.map +1 -1
  253. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  254. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  255. package/query-builder/UpdateQueryBuilder.js +3 -3
  256. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  257. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -1
  258. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  259. package/repository/Repository.js.map +1 -1
  260. package/subscriber/event/QueryEvent.d.ts +1 -1
  261. package/subscriber/event/QueryEvent.js.map +1 -1
  262. package/util/DepGraph.js +13 -13
  263. package/util/DepGraph.js.map +1 -1
  264. package/util/DirectoryExportedClassesLoader.js +2 -2
  265. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  266. package/util/InstanceChecker.js.map +1 -1
  267. package/util/ObjectUtils.d.ts +2 -2
  268. package/util/ObjectUtils.js.map +1 -1
  269. package/util/OrmUtils.js +4 -4
  270. package/util/OrmUtils.js.map +1 -1
  271. package/util/RandomGenerator.js +6 -6
  272. package/util/RandomGenerator.js.map +1 -1
  273. package/util/VersionUtils.d.ts +1 -2
  274. package/util/VersionUtils.js +14 -7
  275. package/util/VersionUtils.js.map +1 -1
  276. package/util/escapeRegExp.d.ts +1 -1
  277. package/util/escapeRegExp.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/InstanceChecker.ts"],"names":[],"mappings":"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","file":"InstanceChecker.js","sourcesContent":["import type { MongoEntityManager } from \"../entity-manager/MongoEntityManager\"\nimport type { SqljsEntityManager } from \"../entity-manager/SqljsEntityManager\"\nimport type { EntitySchema } from \"../entity-schema/EntitySchema\"\nimport type { FindOperator } from \"../find-options/FindOperator\"\nimport type { EqualOperator } from \"../find-options/EqualOperator\"\nimport type { Query } from \"../driver/Query\"\nimport type { RdbmsSchemaBuilder } from \"../schema-builder/RdbmsSchemaBuilder\"\nimport type { Subject } from \"../persistence/Subject\"\nimport type { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\nimport type { UpdateQueryBuilder } from \"../query-builder/UpdateQueryBuilder\"\nimport type { DeleteQueryBuilder } from \"../query-builder/DeleteQueryBuilder\"\nimport type { SoftDeleteQueryBuilder } from \"../query-builder/SoftDeleteQueryBuilder\"\nimport type { InsertQueryBuilder } from \"../query-builder/InsertQueryBuilder\"\nimport type { RelationQueryBuilder } from \"../query-builder/RelationQueryBuilder\"\nimport type { Brackets } from \"../query-builder/Brackets\"\nimport type { Table } from \"../schema-builder/table/Table\"\nimport type { TableCheck } from \"../schema-builder/table/TableCheck\"\nimport type { TableColumn } from \"../schema-builder/table/TableColumn\"\nimport type { TableExclusion } from \"../schema-builder/table/TableExclusion\"\nimport type { TableForeignKey } from \"../schema-builder/table/TableForeignKey\"\nimport type { TableIndex } from \"../schema-builder/table/TableIndex\"\nimport type { TableUnique } from \"../schema-builder/table/TableUnique\"\nimport type { View } from \"../schema-builder/view/View\"\nimport type { NotBrackets } from \"../query-builder/NotBrackets\"\nimport type { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport type { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport type { MssqlParameter } from \"../driver/sqlserver/MssqlParameter\"\nimport { DataSource } from \"../data-source\"\nimport { BaseEntity } from \"../repository/BaseEntity\"\n\nexport class InstanceChecker {\n static isMssqlParameter(obj: unknown): obj is MssqlParameter {\n return this.check(obj, \"MssqlParameter\")\n }\n static isEntityMetadata(obj: unknown): obj is EntityMetadata {\n return this.check(obj, \"EntityMetadata\")\n }\n static isColumnMetadata(obj: unknown): obj is ColumnMetadata {\n return this.check(obj, \"ColumnMetadata\")\n }\n static isSelectQueryBuilder(obj: unknown): obj is SelectQueryBuilder<any> {\n return this.check(obj, \"SelectQueryBuilder\")\n }\n static isInsertQueryBuilder(obj: unknown): obj is InsertQueryBuilder<any> {\n return this.check(obj, \"InsertQueryBuilder\")\n }\n static isDeleteQueryBuilder(obj: unknown): obj is DeleteQueryBuilder<any> {\n return this.check(obj, \"DeleteQueryBuilder\")\n }\n static isUpdateQueryBuilder(obj: unknown): obj is UpdateQueryBuilder<any> {\n return this.check(obj, \"UpdateQueryBuilder\")\n }\n static isSoftDeleteQueryBuilder(\n obj: unknown,\n ): obj is SoftDeleteQueryBuilder<any> {\n return this.check(obj, \"SoftDeleteQueryBuilder\")\n }\n static isRelationQueryBuilder(\n obj: unknown,\n ): obj is RelationQueryBuilder<any> {\n return this.check(obj, \"RelationQueryBuilder\")\n }\n static isBrackets(obj: unknown): obj is Brackets {\n return this.check(obj, \"Brackets\") || this.check(obj, \"NotBrackets\")\n }\n static isNotBrackets(obj: unknown): obj is NotBrackets {\n return this.check(obj, \"NotBrackets\")\n }\n static isSubject(obj: unknown): obj is Subject {\n return this.check(obj, \"Subject\")\n }\n static isRdbmsSchemaBuilder(obj: unknown): obj is RdbmsSchemaBuilder {\n return this.check(obj, \"RdbmsSchemaBuilder\")\n }\n static isMongoEntityManager(obj: unknown): obj is MongoEntityManager {\n return this.check(obj, \"MongoEntityManager\")\n }\n static isSqljsEntityManager(obj: unknown): obj is SqljsEntityManager {\n return this.check(obj, \"SqljsEntityManager\")\n }\n static isEntitySchema(obj: unknown): obj is EntitySchema {\n return this.check(obj, \"EntitySchema\")\n }\n static isBaseEntityConstructor(obj: unknown): obj is typeof BaseEntity {\n return (\n typeof obj === \"function\" &&\n typeof (obj as typeof BaseEntity).hasId === \"function\" &&\n typeof (obj as typeof BaseEntity).save === \"function\" &&\n typeof (obj as typeof BaseEntity).useDataSource === \"function\"\n )\n }\n static isFindOperator(obj: unknown): obj is FindOperator<any> {\n return (\n this.check(obj, \"FindOperator\") || this.check(obj, \"EqualOperator\")\n )\n }\n static isEqualOperator(obj: unknown): obj is EqualOperator<any> {\n return this.check(obj, \"EqualOperator\")\n }\n static isQuery(obj: unknown): obj is Query {\n return this.check(obj, \"Query\")\n }\n static isTable(obj: unknown): obj is Table {\n return this.check(obj, \"Table\")\n }\n static isTableCheck(obj: unknown): obj is TableCheck {\n return this.check(obj, \"TableCheck\")\n }\n static isTableColumn(obj: unknown): obj is TableColumn {\n return this.check(obj, \"TableColumn\")\n }\n static isTableExclusion(obj: unknown): obj is TableExclusion {\n return this.check(obj, \"TableExclusion\")\n }\n static isTableForeignKey(obj: unknown): obj is TableForeignKey {\n return this.check(obj, \"TableForeignKey\")\n }\n static isTableIndex(obj: unknown): obj is TableIndex {\n return this.check(obj, \"TableIndex\")\n }\n static isTableUnique(obj: unknown): obj is TableUnique {\n return this.check(obj, \"TableUnique\")\n }\n static isView(obj: unknown): obj is View {\n return this.check(obj, \"View\")\n }\n static isDataSource(obj: unknown): obj is DataSource {\n return this.check(obj, \"DataSource\")\n }\n\n private static check(obj: unknown, name: string) {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n (obj as { \"@instanceof\": Symbol })[\"@instanceof\"] ===\n Symbol.for(name)\n )\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/InstanceChecker.ts"],"names":[],"mappings":"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","file":"InstanceChecker.js","sourcesContent":["import type { MongoEntityManager } from \"../entity-manager/MongoEntityManager\"\nimport type { SqljsEntityManager } from \"../entity-manager/SqljsEntityManager\"\nimport type { EntitySchema } from \"../entity-schema/EntitySchema\"\nimport type { FindOperator } from \"../find-options/FindOperator\"\nimport type { EqualOperator } from \"../find-options/EqualOperator\"\nimport type { Query } from \"../driver/Query\"\nimport type { RdbmsSchemaBuilder } from \"../schema-builder/RdbmsSchemaBuilder\"\nimport type { Subject } from \"../persistence/Subject\"\nimport type { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\nimport type { UpdateQueryBuilder } from \"../query-builder/UpdateQueryBuilder\"\nimport type { DeleteQueryBuilder } from \"../query-builder/DeleteQueryBuilder\"\nimport type { SoftDeleteQueryBuilder } from \"../query-builder/SoftDeleteQueryBuilder\"\nimport type { InsertQueryBuilder } from \"../query-builder/InsertQueryBuilder\"\nimport type { RelationQueryBuilder } from \"../query-builder/RelationQueryBuilder\"\nimport type { Brackets } from \"../query-builder/Brackets\"\nimport type { Table } from \"../schema-builder/table/Table\"\nimport type { TableCheck } from \"../schema-builder/table/TableCheck\"\nimport type { TableColumn } from \"../schema-builder/table/TableColumn\"\nimport type { TableExclusion } from \"../schema-builder/table/TableExclusion\"\nimport type { TableForeignKey } from \"../schema-builder/table/TableForeignKey\"\nimport type { TableIndex } from \"../schema-builder/table/TableIndex\"\nimport type { TableUnique } from \"../schema-builder/table/TableUnique\"\nimport type { View } from \"../schema-builder/view/View\"\nimport type { NotBrackets } from \"../query-builder/NotBrackets\"\nimport type { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport type { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport type { MssqlParameter } from \"../driver/sqlserver/MssqlParameter\"\nimport { DataSource } from \"../data-source\"\nimport { BaseEntity } from \"../repository/BaseEntity\"\n\nexport class InstanceChecker {\n static isMssqlParameter(obj: unknown): obj is MssqlParameter {\n return this.check(obj, \"MssqlParameter\")\n }\n static isEntityMetadata(obj: unknown): obj is EntityMetadata {\n return this.check(obj, \"EntityMetadata\")\n }\n static isColumnMetadata(obj: unknown): obj is ColumnMetadata {\n return this.check(obj, \"ColumnMetadata\")\n }\n static isSelectQueryBuilder(obj: unknown): obj is SelectQueryBuilder<any> {\n return this.check(obj, \"SelectQueryBuilder\")\n }\n static isInsertQueryBuilder(obj: unknown): obj is InsertQueryBuilder<any> {\n return this.check(obj, \"InsertQueryBuilder\")\n }\n static isDeleteQueryBuilder(obj: unknown): obj is DeleteQueryBuilder<any> {\n return this.check(obj, \"DeleteQueryBuilder\")\n }\n static isUpdateQueryBuilder(obj: unknown): obj is UpdateQueryBuilder<any> {\n return this.check(obj, \"UpdateQueryBuilder\")\n }\n static isSoftDeleteQueryBuilder(\n obj: unknown,\n ): obj is SoftDeleteQueryBuilder<any> {\n return this.check(obj, \"SoftDeleteQueryBuilder\")\n }\n static isRelationQueryBuilder(\n obj: unknown,\n ): obj is RelationQueryBuilder<any> {\n return this.check(obj, \"RelationQueryBuilder\")\n }\n static isBrackets(obj: unknown): obj is Brackets {\n return this.check(obj, \"Brackets\") || this.check(obj, \"NotBrackets\")\n }\n static isNotBrackets(obj: unknown): obj is NotBrackets {\n return this.check(obj, \"NotBrackets\")\n }\n static isSubject(obj: unknown): obj is Subject {\n return this.check(obj, \"Subject\")\n }\n static isRdbmsSchemaBuilder(obj: unknown): obj is RdbmsSchemaBuilder {\n return this.check(obj, \"RdbmsSchemaBuilder\")\n }\n static isMongoEntityManager(obj: unknown): obj is MongoEntityManager {\n return this.check(obj, \"MongoEntityManager\")\n }\n static isSqljsEntityManager(obj: unknown): obj is SqljsEntityManager {\n return this.check(obj, \"SqljsEntityManager\")\n }\n static isEntitySchema(obj: unknown): obj is EntitySchema {\n return this.check(obj, \"EntitySchema\")\n }\n static isBaseEntityConstructor(obj: unknown): obj is typeof BaseEntity {\n return (\n typeof obj === \"function\" &&\n typeof (obj as typeof BaseEntity).hasId === \"function\" &&\n typeof (obj as typeof BaseEntity).save === \"function\" &&\n typeof (obj as typeof BaseEntity).useDataSource === \"function\"\n )\n }\n static isFindOperator(obj: unknown): obj is FindOperator<any> {\n return (\n this.check(obj, \"FindOperator\") || this.check(obj, \"EqualOperator\")\n )\n }\n static isEqualOperator(obj: unknown): obj is EqualOperator<any> {\n return this.check(obj, \"EqualOperator\")\n }\n static isQuery(obj: unknown): obj is Query {\n return this.check(obj, \"Query\")\n }\n static isTable(obj: unknown): obj is Table {\n return this.check(obj, \"Table\")\n }\n static isTableCheck(obj: unknown): obj is TableCheck {\n return this.check(obj, \"TableCheck\")\n }\n static isTableColumn(obj: unknown): obj is TableColumn {\n return this.check(obj, \"TableColumn\")\n }\n static isTableExclusion(obj: unknown): obj is TableExclusion {\n return this.check(obj, \"TableExclusion\")\n }\n static isTableForeignKey(obj: unknown): obj is TableForeignKey {\n return this.check(obj, \"TableForeignKey\")\n }\n static isTableIndex(obj: unknown): obj is TableIndex {\n return this.check(obj, \"TableIndex\")\n }\n static isTableUnique(obj: unknown): obj is TableUnique {\n return this.check(obj, \"TableUnique\")\n }\n static isView(obj: unknown): obj is View {\n return this.check(obj, \"View\")\n }\n static isDataSource(obj: unknown): obj is DataSource {\n return this.check(obj, \"DataSource\")\n }\n\n private static check(obj: unknown, name: string) {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n (obj as { \"@instanceof\": symbol })[\"@instanceof\"] ===\n Symbol.for(name)\n )\n }\n}\n"],"sourceRoot":".."}
@@ -5,13 +5,13 @@ export declare class ObjectUtils {
5
5
  * We cannot use instanceof because it has problems when running on different contexts.
6
6
  * And we don't simply use typeof because typeof null === "object".
7
7
  */
8
- static isObject(val: any): val is Object;
8
+ static isObject(val: any): val is object;
9
9
  /**
10
10
  * Checks if given value is an object.
11
11
  * We cannot use instanceof because it has problems when running on different contexts.
12
12
  * And we don't simply use typeof because typeof null === "object".
13
13
  */
14
- static isObjectWithName(val: any): val is Object & {
14
+ static isObjectWithName(val: any): val is object & {
15
15
  name: string;
16
16
  };
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/ObjectUtils.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACpB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAQ;QACpB,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAA;IAClD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAQ;QAC5B,OAAO,CACH,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CACvE,CAAA;IACL,CAAC;IAkCD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc,EAAE,GAAG,OAAc;QAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,CAAC;gBAAC,MAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YACzC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAI,IAAkB;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CACxB,CAAC,GAAG,EAAE,EAAE,CAAE,IAA6B,CAAC,GAAG,CAAC,CAC/C,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;CACJ","file":"ObjectUtils.js","sourcesContent":["import { MixedList } from \"../common/MixedList\"\n\nexport class ObjectUtils {\n /**\n * Checks if given value is an object.\n * We cannot use instanceof because it has problems when running on different contexts.\n * And we don't simply use typeof because typeof null === \"object\".\n */\n static isObject(val: any): val is Object {\n return val !== null && typeof val === \"object\"\n }\n\n /**\n * Checks if given value is an object.\n * We cannot use instanceof because it has problems when running on different contexts.\n * And we don't simply use typeof because typeof null === \"object\".\n */\n static isObjectWithName(val: any): val is Object & { name: string } {\n return (\n val !== null && typeof val === \"object\" && val[\"name\"] !== undefined\n )\n }\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n static assign<T, U>(target: T, source: U): void\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n static assign<T, U, V>(target: T, source1: U, source2: V): void\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n static assign<T, U, V, W>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n ): void\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n static assign(target: object, ...sources: any[]): void {\n for (const source of sources) {\n for (const prop of Object.getOwnPropertyNames(source)) {\n ;(target as any)[prop] = source[prop]\n }\n }\n }\n\n /**\n * Converts MixedList<T> to strictly an array of its T items.\n */\n static mixedListToArray<T>(list: MixedList<T>): T[] {\n if (list !== null && typeof list === \"object\") {\n return Object.keys(list).map(\n (key) => (list as { [key: string]: T })[key],\n )\n } else {\n return list\n }\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/ObjectUtils.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACpB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAQ;QACpB,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAA;IAClD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAQ;QAC5B,OAAO,CACH,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CACvE,CAAA;IACL,CAAC;IAkCD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc,EAAE,GAAG,OAAc;QAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,CAAC;gBAAC,MAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YACzC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAI,IAAkB;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CACxB,CAAC,GAAG,EAAE,EAAE,CAAE,IAA6B,CAAC,GAAG,CAAC,CAC/C,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;CACJ","file":"ObjectUtils.js","sourcesContent":["import { MixedList } from \"../common/MixedList\"\n\nexport class ObjectUtils {\n /**\n * Checks if given value is an object.\n * We cannot use instanceof because it has problems when running on different contexts.\n * And we don't simply use typeof because typeof null === \"object\".\n */\n static isObject(val: any): val is object {\n return val !== null && typeof val === \"object\"\n }\n\n /**\n * Checks if given value is an object.\n * We cannot use instanceof because it has problems when running on different contexts.\n * And we don't simply use typeof because typeof null === \"object\".\n */\n static isObjectWithName(val: any): val is object & { name: string } {\n return (\n val !== null && typeof val === \"object\" && val[\"name\"] !== undefined\n )\n }\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n static assign<T, U>(target: T, source: U): void\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n static assign<T, U, V>(target: T, source1: U, source2: V): void\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n static assign<T, U, V, W>(\n target: T,\n source1: U,\n source2: V,\n source3: W,\n ): void\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n static assign(target: object, ...sources: any[]): void {\n for (const source of sources) {\n for (const prop of Object.getOwnPropertyNames(source)) {\n ;(target as any)[prop] = source[prop]\n }\n }\n }\n\n /**\n * Converts MixedList<T> to strictly an array of its T items.\n */\n static mixedListToArray<T>(list: MixedList<T>): T[] {\n if (list !== null && typeof list === \"object\") {\n return Object.keys(list).map(\n (key) => (list as { [key: string]: T })[key],\n )\n } else {\n return list\n }\n }\n}\n"],"sourceRoot":".."}
@@ -159,7 +159,7 @@ export class OrmUtils {
159
159
  return obj;
160
160
  }
161
161
  static replaceEmptyObjectsWithBooleans(obj) {
162
- for (let key in obj) {
162
+ for (const key in obj) {
163
163
  if (obj[key] && typeof obj[key] === "object") {
164
164
  if (Object.keys(obj[key]).length === 0) {
165
165
  obj[key] = true;
@@ -171,8 +171,8 @@ export class OrmUtils {
171
171
  }
172
172
  }
173
173
  static propertyPathsToTruthyObject(paths) {
174
- let obj = {};
175
- for (let path of paths) {
174
+ const obj = {};
175
+ for (const path of paths) {
176
176
  const props = path.split(".");
177
177
  if (!props.length)
178
178
  continue;
@@ -180,7 +180,7 @@ export class OrmUtils {
180
180
  obj[props[0]] = {};
181
181
  }
182
182
  let recursiveChild = obj[props[0]];
183
- for (let [key, prop] of props.entries()) {
183
+ for (const [key, prop] of props.entries()) {
184
184
  if (key === 0)
185
185
  continue;
186
186
  if (recursiveChild[prop]) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/OrmUtils.ts"],"names":[],"mappings":"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","file":"OrmUtils.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\n\nexport class OrmUtils {\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Chunks array into pieces.\n */\n static chunk<T>(array: T[], size: number): T[][] {\n return Array.from(Array(Math.ceil(array.length / size)), (_, i) => {\n return array.slice(i * size, i * size + size)\n })\n }\n\n static splitClassesAndStrings<T>(\n classesAndStrings: (string | T)[],\n ): [T[], string[]] {\n return [\n classesAndStrings.filter(\n (cls): cls is T => typeof cls !== \"string\",\n ),\n classesAndStrings.filter(\n (str): str is string => typeof str === \"string\",\n ),\n ]\n }\n\n static groupBy<T, R>(\n array: T[],\n propertyCallback: (item: T) => R,\n ): { id: R; items: T[] }[] {\n return array.reduce((groupedArray, value) => {\n const key = propertyCallback(value)\n let grouped = groupedArray.find((i) => i.id === key)\n if (!grouped) {\n grouped = { id: key, items: [] }\n groupedArray.push(grouped)\n }\n grouped.items.push(value)\n return groupedArray\n }, [] as Array<{ id: R; items: T[] }>)\n }\n\n static uniq<T>(array: T[], criteria?: (item: T) => any): T[]\n static uniq<T, K extends keyof T>(array: T[], property: K): T[]\n static uniq<T, K extends keyof T>(\n array: T[],\n criteriaOrProperty?: ((item: T) => any) | K,\n ): T[] {\n return array.reduce((uniqueArray, item) => {\n let found: boolean = false\n if (typeof criteriaOrProperty === \"function\") {\n const itemValue = criteriaOrProperty(item)\n found = !!uniqueArray.find(\n (uniqueItem) =>\n criteriaOrProperty(uniqueItem) === itemValue,\n )\n } else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(\n (uniqueItem) =>\n uniqueItem[criteriaOrProperty] ===\n item[criteriaOrProperty],\n )\n } else {\n found = uniqueArray.indexOf(item) !== -1\n }\n\n if (!found) uniqueArray.push(item)\n\n return uniqueArray\n }, [] as T[])\n }\n\n // Checks if it's an object made by Object.create(null), {} or new Object()\n private static isPlainObject(item: any) {\n if (item === null || item === undefined) {\n return false\n }\n\n return !item.constructor || item.constructor === Object\n }\n\n private static mergeArrayKey(\n target: any,\n key: number,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n target[key] = memo.get(value)\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n target[key] = value\n return\n }\n\n if (!target[key]) {\n target[key] = Array.isArray(value) ? [] : {}\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static mergeObjectKey(\n target: any,\n key: string,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n Object.assign(target, { [key]: memo.get(value) })\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n Object.assign(target, { [key]: value })\n return\n }\n\n if (!target[key]) {\n Object.assign(target, { [key]: Array.isArray(value) ? [] : {} })\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static merge(\n target: any,\n source: any,\n memo: Map<any, any> = new Map(),\n ): any {\n if (this.isPlainObject(target) && this.isPlainObject(source)) {\n for (const key of Object.keys(source)) {\n if (key === \"__proto__\") continue\n this.mergeObjectKey(target, key, source[key], memo)\n }\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n this.mergeArrayKey(target, key, source[key], memo)\n }\n }\n }\n\n /**\n * Deep Object.assign.\n */\n static mergeDeep(target: any, ...sources: any[]): any {\n if (!sources.length) {\n return target\n }\n\n for (const source of sources) {\n OrmUtils.merge(target, source)\n }\n\n return target\n }\n\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n static deepCompare(...args: any[]): boolean {\n let i: any, l: any, leftChain: any, rightChain: any\n\n if (arguments.length < 1) {\n return true // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n\n for (i = 1, l = arguments.length; i < l; i++) {\n leftChain = [] // Todo: this can be cached\n rightChain = []\n\n if (\n !this.compare2Objects(\n leftChain,\n rightChain,\n arguments[0],\n arguments[i],\n )\n ) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Gets deeper value of object.\n */\n static deepValue(obj: ObjectLiteral, path: string) {\n const segments = path.split(\".\")\n for (let i = 0, len = segments.length; i < len; i++) {\n obj = obj[segments[i]]\n }\n return obj\n }\n\n static replaceEmptyObjectsWithBooleans(obj: any) {\n for (let key in obj) {\n if (obj[key] && typeof obj[key] === \"object\") {\n if (Object.keys(obj[key]).length === 0) {\n obj[key] = true\n } else {\n this.replaceEmptyObjectsWithBooleans(obj[key])\n }\n }\n }\n }\n\n static propertyPathsToTruthyObject(paths: string[]) {\n let obj: any = {}\n for (let path of paths) {\n const props = path.split(\".\")\n if (!props.length) continue\n\n if (!obj[props[0]] || obj[props[0]] === true) {\n obj[props[0]] = {}\n }\n let recursiveChild = obj[props[0]]\n for (let [key, prop] of props.entries()) {\n if (key === 0) continue\n\n if (recursiveChild[prop]) {\n recursiveChild = recursiveChild[prop]\n } else if (key === props.length - 1) {\n recursiveChild[prop] = {}\n recursiveChild = null\n } else {\n recursiveChild[prop] = {}\n recursiveChild = recursiveChild[prop]\n }\n }\n }\n this.replaceEmptyObjectsWithBooleans(obj)\n return obj\n }\n\n /**\n * Check if two entity-id-maps are the same\n */\n static compareIds(\n firstId: ObjectLiteral | undefined,\n secondId: ObjectLiteral | undefined,\n ): boolean {\n if (\n firstId === undefined ||\n firstId === null ||\n secondId === undefined ||\n secondId === null\n )\n return false\n\n // Optimized version for the common case\n if (\n ((typeof firstId.id === \"string\" &&\n typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" &&\n typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1\n ) {\n return firstId.id === secondId.id\n }\n\n return OrmUtils.deepCompare(firstId, secondId)\n }\n\n /**\n * Transforms given value into boolean value.\n */\n static toBoolean(value: any): boolean {\n if (typeof value === \"boolean\") return value\n\n if (typeof value === \"string\") return value === \"true\" || value === \"1\"\n\n if (typeof value === \"number\") return value > 0\n\n return false\n }\n\n /**\n * Composes an object from the given array of keys and values.\n */\n static zipObject(keys: any[], values: any[]): ObjectLiteral {\n return keys.reduce((object, column, index) => {\n object[column] = values[index]\n return object\n }, {} as ObjectLiteral)\n }\n\n /**\n * Compares two arrays.\n */\n static isArraysEqual(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false\n return arr1.every((element) => {\n return arr2.indexOf(element) !== -1\n })\n }\n\n static areMutuallyExclusive<T>(...lists: T[][]): boolean {\n const haveSharedObjects = lists.some((list) => {\n const otherLists = lists.filter((otherList) => otherList !== list)\n return list.some((item) =>\n otherLists.some((otherList) => otherList.includes(item)),\n )\n })\n return !haveSharedObjects\n }\n\n /**\n * Parses the CHECK constraint on the specified column and returns\n * all values allowed by the constraint or undefined if the constraint\n * is not present.\n */\n static parseSqlCheckExpression(\n sql: string,\n columnName: string,\n ): string[] | undefined {\n const enumMatch = sql.match(\n new RegExp(\n `\"${columnName}\" varchar CHECK\\\\s*\\\\(\\\\s*\"${columnName}\"\\\\s+IN\\\\s*`,\n ),\n )\n\n if (enumMatch && enumMatch.index) {\n const afterMatch = sql.substring(\n enumMatch.index + enumMatch[0].length,\n )\n\n // This is an enum\n // all enum values stored as a comma separated list\n const chars = afterMatch\n\n /**\n * * When outside quotes: empty string\n * * When inside single quotes: `'`\n */\n let currentQuotes = \"\"\n let nextValue = \"\"\n const enumValues: string[] = []\n for (let idx = 0; idx < chars.length; idx++) {\n const char = chars[idx]\n switch (char) {\n case \",\":\n if (currentQuotes == \"\") {\n enumValues.push(nextValue)\n nextValue = \"\"\n } else {\n nextValue += char\n }\n break\n case \"'\":\n if (currentQuotes == char) {\n const isNextCharQuote = chars[idx + 1] === char\n if (isNextCharQuote) {\n // double quote in sql should be treated as a\n // single quote that's part of the quoted string\n nextValue += char\n idx += 1 // skip that next quote\n } else {\n currentQuotes = \"\"\n }\n } else {\n currentQuotes = char\n }\n break\n case \")\":\n if (currentQuotes == \"\") {\n enumValues.push(nextValue)\n return enumValues\n } else {\n nextValue += char\n }\n break\n default:\n if (currentQuotes != \"\") {\n nextValue += char\n }\n }\n }\n }\n return undefined\n }\n\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n\n private static compare2Objects(\n leftChain: any,\n rightChain: any,\n x: any,\n y: any,\n ) {\n let p\n\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y)) return true\n\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y) return true\n\n // Unequal, but either is null or undefined (use case: jsonb comparison)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false\n\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if (\n (typeof x.equals === \"function\" ||\n typeof x.equals === \"function\") &&\n x.equals(y)\n )\n return true\n\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if (\n (typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (typeof x === \"string\" && typeof y === \"string\") ||\n (typeof x === \"number\" && typeof y === \"number\")\n )\n return x.toString() === y.toString()\n\n // At last checking prototypes as good as we can\n if (!(typeof x === \"object\" && typeof y === \"object\")) return false\n\n if (\n Object.prototype.isPrototypeOf.call(x, y) ||\n Object.prototype.isPrototypeOf.call(y, x)\n )\n return false\n\n if (x.constructor !== y.constructor) return false\n\n if (x.prototype !== y.prototype) return false\n\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false\n\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n }\n\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n\n switch (typeof x[p]) {\n case \"object\":\n case \"function\":\n leftChain.push(x)\n rightChain.push(y)\n\n if (\n !this.compare2Objects(leftChain, rightChain, x[p], y[p])\n ) {\n return false\n }\n\n leftChain.pop()\n rightChain.pop()\n break\n\n default:\n if (x[p] !== y[p]) {\n return false\n }\n break\n }\n }\n\n return true\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/OrmUtils.ts"],"names":[],"mappings":"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","file":"OrmUtils.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\n\nexport class OrmUtils {\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Chunks array into pieces.\n */\n static chunk<T>(array: T[], size: number): T[][] {\n return Array.from(Array(Math.ceil(array.length / size)), (_, i) => {\n return array.slice(i * size, i * size + size)\n })\n }\n\n static splitClassesAndStrings<T>(\n classesAndStrings: (string | T)[],\n ): [T[], string[]] {\n return [\n classesAndStrings.filter(\n (cls): cls is T => typeof cls !== \"string\",\n ),\n classesAndStrings.filter(\n (str): str is string => typeof str === \"string\",\n ),\n ]\n }\n\n static groupBy<T, R>(\n array: T[],\n propertyCallback: (item: T) => R,\n ): { id: R; items: T[] }[] {\n return array.reduce((groupedArray, value) => {\n const key = propertyCallback(value)\n let grouped = groupedArray.find((i) => i.id === key)\n if (!grouped) {\n grouped = { id: key, items: [] }\n groupedArray.push(grouped)\n }\n grouped.items.push(value)\n return groupedArray\n }, [] as Array<{ id: R; items: T[] }>)\n }\n\n static uniq<T>(array: T[], criteria?: (item: T) => any): T[]\n static uniq<T, K extends keyof T>(array: T[], property: K): T[]\n static uniq<T, K extends keyof T>(\n array: T[],\n criteriaOrProperty?: ((item: T) => any) | K,\n ): T[] {\n return array.reduce((uniqueArray, item) => {\n let found: boolean = false\n if (typeof criteriaOrProperty === \"function\") {\n const itemValue = criteriaOrProperty(item)\n found = !!uniqueArray.find(\n (uniqueItem) =>\n criteriaOrProperty(uniqueItem) === itemValue,\n )\n } else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(\n (uniqueItem) =>\n uniqueItem[criteriaOrProperty] ===\n item[criteriaOrProperty],\n )\n } else {\n found = uniqueArray.indexOf(item) !== -1\n }\n\n if (!found) uniqueArray.push(item)\n\n return uniqueArray\n }, [] as T[])\n }\n\n // Checks if it's an object made by Object.create(null), {} or new Object()\n private static isPlainObject(item: any) {\n if (item === null || item === undefined) {\n return false\n }\n\n return !item.constructor || item.constructor === Object\n }\n\n private static mergeArrayKey(\n target: any,\n key: number,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n target[key] = memo.get(value)\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n target[key] = value\n return\n }\n\n if (!target[key]) {\n target[key] = Array.isArray(value) ? [] : {}\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static mergeObjectKey(\n target: any,\n key: string,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n Object.assign(target, { [key]: memo.get(value) })\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n Object.assign(target, { [key]: value })\n return\n }\n\n if (!target[key]) {\n Object.assign(target, { [key]: Array.isArray(value) ? [] : {} })\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static merge(\n target: any,\n source: any,\n memo: Map<any, any> = new Map(),\n ): any {\n if (this.isPlainObject(target) && this.isPlainObject(source)) {\n for (const key of Object.keys(source)) {\n if (key === \"__proto__\") continue\n this.mergeObjectKey(target, key, source[key], memo)\n }\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n this.mergeArrayKey(target, key, source[key], memo)\n }\n }\n }\n\n /**\n * Deep Object.assign.\n */\n static mergeDeep(target: any, ...sources: any[]): any {\n if (!sources.length) {\n return target\n }\n\n for (const source of sources) {\n OrmUtils.merge(target, source)\n }\n\n return target\n }\n\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n static deepCompare(...args: any[]): boolean {\n let i: any, l: any, leftChain: any, rightChain: any\n\n if (arguments.length < 1) {\n return true // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n\n for (i = 1, l = arguments.length; i < l; i++) {\n leftChain = [] // Todo: this can be cached\n rightChain = []\n\n if (\n !this.compare2Objects(\n leftChain,\n rightChain,\n arguments[0],\n arguments[i],\n )\n ) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Gets deeper value of object.\n */\n static deepValue(obj: ObjectLiteral, path: string) {\n const segments = path.split(\".\")\n for (let i = 0, len = segments.length; i < len; i++) {\n obj = obj[segments[i]]\n }\n return obj\n }\n\n static replaceEmptyObjectsWithBooleans(obj: any) {\n for (const key in obj) {\n if (obj[key] && typeof obj[key] === \"object\") {\n if (Object.keys(obj[key]).length === 0) {\n obj[key] = true\n } else {\n this.replaceEmptyObjectsWithBooleans(obj[key])\n }\n }\n }\n }\n\n static propertyPathsToTruthyObject(paths: string[]) {\n const obj: any = {}\n for (const path of paths) {\n const props = path.split(\".\")\n if (!props.length) continue\n\n if (!obj[props[0]] || obj[props[0]] === true) {\n obj[props[0]] = {}\n }\n let recursiveChild = obj[props[0]]\n for (const [key, prop] of props.entries()) {\n if (key === 0) continue\n\n if (recursiveChild[prop]) {\n recursiveChild = recursiveChild[prop]\n } else if (key === props.length - 1) {\n recursiveChild[prop] = {}\n recursiveChild = null\n } else {\n recursiveChild[prop] = {}\n recursiveChild = recursiveChild[prop]\n }\n }\n }\n this.replaceEmptyObjectsWithBooleans(obj)\n return obj\n }\n\n /**\n * Check if two entity-id-maps are the same\n */\n static compareIds(\n firstId: ObjectLiteral | undefined,\n secondId: ObjectLiteral | undefined,\n ): boolean {\n if (\n firstId === undefined ||\n firstId === null ||\n secondId === undefined ||\n secondId === null\n )\n return false\n\n // Optimized version for the common case\n if (\n ((typeof firstId.id === \"string\" &&\n typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" &&\n typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1\n ) {\n return firstId.id === secondId.id\n }\n\n return OrmUtils.deepCompare(firstId, secondId)\n }\n\n /**\n * Transforms given value into boolean value.\n */\n static toBoolean(value: any): boolean {\n if (typeof value === \"boolean\") return value\n\n if (typeof value === \"string\") return value === \"true\" || value === \"1\"\n\n if (typeof value === \"number\") return value > 0\n\n return false\n }\n\n /**\n * Composes an object from the given array of keys and values.\n */\n static zipObject(keys: any[], values: any[]): ObjectLiteral {\n return keys.reduce((object, column, index) => {\n object[column] = values[index]\n return object\n }, {} as ObjectLiteral)\n }\n\n /**\n * Compares two arrays.\n */\n static isArraysEqual(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false\n return arr1.every((element) => {\n return arr2.indexOf(element) !== -1\n })\n }\n\n static areMutuallyExclusive<T>(...lists: T[][]): boolean {\n const haveSharedObjects = lists.some((list) => {\n const otherLists = lists.filter((otherList) => otherList !== list)\n return list.some((item) =>\n otherLists.some((otherList) => otherList.includes(item)),\n )\n })\n return !haveSharedObjects\n }\n\n /**\n * Parses the CHECK constraint on the specified column and returns\n * all values allowed by the constraint or undefined if the constraint\n * is not present.\n */\n static parseSqlCheckExpression(\n sql: string,\n columnName: string,\n ): string[] | undefined {\n const enumMatch = sql.match(\n new RegExp(\n `\"${columnName}\" varchar CHECK\\\\s*\\\\(\\\\s*\"${columnName}\"\\\\s+IN\\\\s*`,\n ),\n )\n\n if (enumMatch && enumMatch.index) {\n const afterMatch = sql.substring(\n enumMatch.index + enumMatch[0].length,\n )\n\n // This is an enum\n // all enum values stored as a comma separated list\n const chars = afterMatch\n\n /**\n * * When outside quotes: empty string\n * * When inside single quotes: `'`\n */\n let currentQuotes = \"\"\n let nextValue = \"\"\n const enumValues: string[] = []\n for (let idx = 0; idx < chars.length; idx++) {\n const char = chars[idx]\n switch (char) {\n case \",\":\n if (currentQuotes == \"\") {\n enumValues.push(nextValue)\n nextValue = \"\"\n } else {\n nextValue += char\n }\n break\n case \"'\":\n if (currentQuotes == char) {\n const isNextCharQuote = chars[idx + 1] === char\n if (isNextCharQuote) {\n // double quote in sql should be treated as a\n // single quote that's part of the quoted string\n nextValue += char\n idx += 1 // skip that next quote\n } else {\n currentQuotes = \"\"\n }\n } else {\n currentQuotes = char\n }\n break\n case \")\":\n if (currentQuotes == \"\") {\n enumValues.push(nextValue)\n return enumValues\n } else {\n nextValue += char\n }\n break\n default:\n if (currentQuotes != \"\") {\n nextValue += char\n }\n }\n }\n }\n return undefined\n }\n\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n\n private static compare2Objects(\n leftChain: any,\n rightChain: any,\n x: any,\n y: any,\n ) {\n let p\n\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y)) return true\n\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y) return true\n\n // Unequal, but either is null or undefined (use case: jsonb comparison)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false\n\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if (\n (typeof x.equals === \"function\" ||\n typeof x.equals === \"function\") &&\n x.equals(y)\n )\n return true\n\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if (\n (typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (typeof x === \"string\" && typeof y === \"string\") ||\n (typeof x === \"number\" && typeof y === \"number\")\n )\n return x.toString() === y.toString()\n\n // At last checking prototypes as good as we can\n if (!(typeof x === \"object\" && typeof y === \"object\")) return false\n\n if (\n Object.prototype.isPrototypeOf.call(x, y) ||\n Object.prototype.isPrototypeOf.call(y, x)\n )\n return false\n\n if (x.constructor !== y.constructor) return false\n\n if (x.prototype !== y.prototype) return false\n\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false\n\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n }\n\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n\n switch (typeof x[p]) {\n case \"object\":\n case \"function\":\n leftChain.push(x)\n rightChain.push(y)\n\n if (\n !this.compare2Objects(leftChain, rightChain, x[p], y[p])\n ) {\n return false\n }\n\n leftChain.pop()\n rightChain.pop()\n break\n\n default:\n if (x[p] !== y[p]) {\n return false\n }\n break\n }\n }\n\n return true\n }\n}\n"],"sourceRoot":".."}
@@ -12,11 +12,11 @@ export class RandomGenerator {
12
12
  * returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'
13
13
  */
14
14
  static sha1(str) {
15
- let _rotLeft = function (n, s) {
16
- let t4 = (n << s) | (n >>> (32 - s));
15
+ const _rotLeft = function (n, s) {
16
+ const t4 = (n << s) | (n >>> (32 - s));
17
17
  return t4;
18
18
  };
19
- let _cvtHex = function (val) {
19
+ const _cvtHex = function (val) {
20
20
  let str = "";
21
21
  let i;
22
22
  let v;
@@ -28,7 +28,7 @@ export class RandomGenerator {
28
28
  };
29
29
  let blockstart;
30
30
  let i, j;
31
- let W = new Array(80);
31
+ const W = new Array(80);
32
32
  let H0 = 0x67452301;
33
33
  let H1 = 0xefcdab89;
34
34
  let H2 = 0x98badcfe;
@@ -38,8 +38,8 @@ export class RandomGenerator {
38
38
  let temp;
39
39
  // utf8_encode
40
40
  str = /*unescape*/ encodeURIComponent(str);
41
- let strLen = str.length;
42
- let wordArray = [];
41
+ const strLen = str.length;
42
+ const wordArray = [];
43
43
  for (i = 0; i < strLen - 3; i += 4) {
44
44
  j =
45
45
  (str.charCodeAt(i) << 24) |
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/RandomGenerator.ts"],"names":[],"mappings":"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","file":"RandomGenerator.js","sourcesContent":["export class RandomGenerator {\n /**\n * discuss at: http://locutus.io/php/sha1/\n * original by: Webtoolkit.info (http://www.webtoolkit.info/)\n * improved by: Michael White (http://getsprink.com)\n * improved by: Kevin van Zonneveld (http://kvz.io)\n * input by: Brett Zamir (http://brett-zamir.me)\n * note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then\n * note 1: hashed. If available, we'd recommend using Node's native crypto modules directly\n * note 1: in a steaming fashion for faster and more efficient hashing\n * example 1: sha1('Kevin van Zonneveld')\n * returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'\n */\n static sha1(str: string) {\n let _rotLeft = function (n: any, s: any) {\n let t4 = (n << s) | (n >>> (32 - s))\n return t4\n }\n\n let _cvtHex = function (val: any) {\n let str = \"\"\n let i\n let v\n\n for (i = 7; i >= 0; i--) {\n v = (val >>> (i * 4)) & 0x0f\n str += v.toString(16)\n }\n return str\n }\n\n let blockstart\n let i, j\n let W = new Array(80)\n let H0 = 0x67452301\n let H1 = 0xefcdab89\n let H2 = 0x98badcfe\n let H3 = 0x10325476\n let H4 = 0xc3d2e1f0\n let A, B, C, D, E\n let temp\n\n // utf8_encode\n str = /*unescape*/ encodeURIComponent(str)\n let strLen = str.length\n\n let wordArray = []\n for (i = 0; i < strLen - 3; i += 4) {\n j =\n (str.charCodeAt(i) << 24) |\n (str.charCodeAt(i + 1) << 16) |\n (str.charCodeAt(i + 2) << 8) |\n str.charCodeAt(i + 3)\n wordArray.push(j)\n }\n\n switch (strLen % 4) {\n case 0:\n i = 0x080000000\n break\n case 1:\n i = (str.charCodeAt(strLen - 1) << 24) | 0x0800000\n break\n case 2:\n i =\n (str.charCodeAt(strLen - 2) << 24) |\n (str.charCodeAt(strLen - 1) << 16) |\n 0x08000\n break\n case 3:\n i =\n (str.charCodeAt(strLen - 3) << 24) |\n (str.charCodeAt(strLen - 2) << 16) |\n (str.charCodeAt(strLen - 1) << 8) |\n 0x80\n break\n }\n\n wordArray.push(i)\n\n while (wordArray.length % 16 !== 14) {\n wordArray.push(0)\n }\n\n wordArray.push(strLen >>> 29)\n wordArray.push((strLen << 3) & 0x0ffffffff)\n\n for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) {\n for (i = 0; i < 16; i++) {\n W[i] = wordArray[blockstart + i]\n }\n for (i = 16; i <= 79; i++) {\n W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1)\n }\n\n A = H0\n B = H1\n C = H2\n D = H3\n E = H4\n\n for (i = 0; i <= 19; i++) {\n temp =\n (_rotLeft(A, 5) +\n ((B & C) | (~B & D)) +\n E +\n W[i] +\n 0x5a827999) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 20; i <= 39; i++) {\n temp =\n (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ed9eba1) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 40; i <= 59; i++) {\n temp =\n (_rotLeft(A, 5) +\n ((B & C) | (B & D) | (C & D)) +\n E +\n W[i] +\n 0x8f1bbcdc) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 60; i <= 79; i++) {\n temp =\n (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xca62c1d6) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n H0 = (H0 + A) & 0x0ffffffff\n H1 = (H1 + B) & 0x0ffffffff\n H2 = (H2 + C) & 0x0ffffffff\n H3 = (H3 + D) & 0x0ffffffff\n H4 = (H4 + E) & 0x0ffffffff\n }\n\n temp =\n _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4)\n return temp.toLowerCase()\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/RandomGenerator.ts"],"names":[],"mappings":"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","file":"RandomGenerator.js","sourcesContent":["export class RandomGenerator {\n /**\n * discuss at: http://locutus.io/php/sha1/\n * original by: Webtoolkit.info (http://www.webtoolkit.info/)\n * improved by: Michael White (http://getsprink.com)\n * improved by: Kevin van Zonneveld (http://kvz.io)\n * input by: Brett Zamir (http://brett-zamir.me)\n * note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then\n * note 1: hashed. If available, we'd recommend using Node's native crypto modules directly\n * note 1: in a steaming fashion for faster and more efficient hashing\n * example 1: sha1('Kevin van Zonneveld')\n * returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'\n */\n static sha1(str: string) {\n const _rotLeft = function (n: any, s: any) {\n const t4 = (n << s) | (n >>> (32 - s))\n return t4\n }\n\n const _cvtHex = function (val: any) {\n let str = \"\"\n let i\n let v\n\n for (i = 7; i >= 0; i--) {\n v = (val >>> (i * 4)) & 0x0f\n str += v.toString(16)\n }\n return str\n }\n\n let blockstart\n let i, j\n const W = new Array(80)\n let H0 = 0x67452301\n let H1 = 0xefcdab89\n let H2 = 0x98badcfe\n let H3 = 0x10325476\n let H4 = 0xc3d2e1f0\n let A, B, C, D, E\n let temp\n\n // utf8_encode\n str = /*unescape*/ encodeURIComponent(str)\n const strLen = str.length\n\n const wordArray = []\n for (i = 0; i < strLen - 3; i += 4) {\n j =\n (str.charCodeAt(i) << 24) |\n (str.charCodeAt(i + 1) << 16) |\n (str.charCodeAt(i + 2) << 8) |\n str.charCodeAt(i + 3)\n wordArray.push(j)\n }\n\n switch (strLen % 4) {\n case 0:\n i = 0x080000000\n break\n case 1:\n i = (str.charCodeAt(strLen - 1) << 24) | 0x0800000\n break\n case 2:\n i =\n (str.charCodeAt(strLen - 2) << 24) |\n (str.charCodeAt(strLen - 1) << 16) |\n 0x08000\n break\n case 3:\n i =\n (str.charCodeAt(strLen - 3) << 24) |\n (str.charCodeAt(strLen - 2) << 16) |\n (str.charCodeAt(strLen - 1) << 8) |\n 0x80\n break\n }\n\n wordArray.push(i)\n\n while (wordArray.length % 16 !== 14) {\n wordArray.push(0)\n }\n\n wordArray.push(strLen >>> 29)\n wordArray.push((strLen << 3) & 0x0ffffffff)\n\n for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) {\n for (i = 0; i < 16; i++) {\n W[i] = wordArray[blockstart + i]\n }\n for (i = 16; i <= 79; i++) {\n W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1)\n }\n\n A = H0\n B = H1\n C = H2\n D = H3\n E = H4\n\n for (i = 0; i <= 19; i++) {\n temp =\n (_rotLeft(A, 5) +\n ((B & C) | (~B & D)) +\n E +\n W[i] +\n 0x5a827999) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 20; i <= 39; i++) {\n temp =\n (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ed9eba1) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 40; i <= 59; i++) {\n temp =\n (_rotLeft(A, 5) +\n ((B & C) | (B & D) | (C & D)) +\n E +\n W[i] +\n 0x8f1bbcdc) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 60; i <= 79; i++) {\n temp =\n (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xca62c1d6) &\n 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n H0 = (H0 + A) & 0x0ffffffff\n H1 = (H1 + B) & 0x0ffffffff\n H2 = (H2 + C) & 0x0ffffffff\n H3 = (H3 + D) & 0x0ffffffff\n H4 = (H4 + E) & 0x0ffffffff\n }\n\n temp =\n _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4)\n return temp.toLowerCase()\n }\n}\n"],"sourceRoot":".."}
@@ -1,4 +1,3 @@
1
- export type Version = [number, number, number];
2
1
  export declare class VersionUtils {
3
- static isGreaterOrEqual(version: string, targetVersion: string): boolean;
2
+ static isGreaterOrEqual(version: string | undefined, targetVersion: string): boolean;
4
3
  }
@@ -1,16 +1,23 @@
1
1
  export class VersionUtils {
2
2
  static isGreaterOrEqual(version, targetVersion) {
3
+ if (!version) {
4
+ return false;
5
+ }
3
6
  const v1 = parseVersion(version);
4
7
  const v2 = parseVersion(targetVersion);
5
- return (v1[0] > v2[0] ||
6
- (v1[0] === v2[0] && v1[1] > v2[1]) ||
7
- (v1[0] === v2[0] && v1[1] === v2[1] && v1[2] >= v2[2]));
8
+ for (let i = 0; i < v1.length && i < v2.length; i++) {
9
+ if (v1[i] > v2[i]) {
10
+ return true;
11
+ }
12
+ else if (v1[i] < v2[i]) {
13
+ return false;
14
+ }
15
+ }
16
+ return true;
8
17
  }
9
18
  }
10
- function parseVersion(version = "") {
11
- const v = [0, 0, 0];
12
- version.split(".").forEach((value, i) => (v[i] = parseInt(value, 10)));
13
- return v;
19
+ function parseVersion(version) {
20
+ return version.split(".").map((value) => parseInt(value, 10));
14
21
  }
15
22
 
16
23
  //# sourceMappingURL=VersionUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/VersionUtils.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACrB,MAAM,CAAC,gBAAgB,CAAC,OAAe,EAAE,aAAqB;QAC1D,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QAEtC,OAAO,CACH,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACb,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CACzD,CAAA;IACL,CAAC;CACJ;AAED,SAAS,YAAY,CAAC,UAAkB,EAAE;IACtC,MAAM,CAAC,GAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAEtE,OAAO,CAAC,CAAA;AACZ,CAAC","file":"VersionUtils.js","sourcesContent":["export type Version = [number, number, number]\n\nexport class VersionUtils {\n static isGreaterOrEqual(version: string, targetVersion: string): boolean {\n const v1 = parseVersion(version)\n const v2 = parseVersion(targetVersion)\n\n return (\n v1[0] > v2[0] ||\n (v1[0] === v2[0] && v1[1] > v2[1]) ||\n (v1[0] === v2[0] && v1[1] === v2[1] && v1[2] >= v2[2])\n )\n }\n}\n\nfunction parseVersion(version: string = \"\"): Version {\n const v: Version = [0, 0, 0]\n\n version.split(\".\").forEach((value, i) => (v[i] = parseInt(value, 10)))\n\n return v\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/VersionUtils.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IACrB,MAAM,CAAC,gBAAgB,CACnB,OAA2B,EAC3B,aAAqB;QAErB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAA;YACf,CAAC;iBAAM,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,SAAS,YAAY,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC","file":"VersionUtils.js","sourcesContent":["export class VersionUtils {\n static isGreaterOrEqual(\n version: string | undefined,\n targetVersion: string,\n ): boolean {\n if (!version) {\n return false\n }\n\n const v1 = parseVersion(version)\n const v2 = parseVersion(targetVersion)\n\n for (let i = 0; i < v1.length && i < v2.length; i++) {\n if (v1[i] > v2[i]) {\n return true\n } else if (v1[i] < v2[i]) {\n return false\n }\n }\n\n return true\n }\n}\n\nfunction parseVersion(version: string): number[] {\n return version.split(\".\").map((value) => parseInt(value, 10))\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- export declare const escapeRegExp: (s: String) => string;
1
+ export declare const escapeRegExp: (s: string) => string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/escapeRegExp.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,iGAAiG;AACjG,MAAM,aAAa,GAAG,uBAAuB,CAAA;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA","file":"escapeRegExp.js","sourcesContent":["// Escape special characters in regular expressions\n// Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\nconst ESCAPE_REGEXP = /[.*+\\-?^${}()|[\\]\\\\]/g\nexport const escapeRegExp = (s: String) => s.replace(ESCAPE_REGEXP, \"\\\\$&\")\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/escapeRegExp.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,iGAAiG;AACjG,MAAM,aAAa,GAAG,uBAAuB,CAAA;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA","file":"escapeRegExp.js","sourcesContent":["// Escape special characters in regular expressions\n// Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\nconst ESCAPE_REGEXP = /[.*+\\-?^${}()|[\\]\\\\]/g\nexport const escapeRegExp = (s: string) => s.replace(ESCAPE_REGEXP, \"\\\\$&\")\n"],"sourceRoot":".."}
@@ -232,7 +232,7 @@ class DbQueryResultCache {
232
232
  * Removes all cached results by given identifiers from cache.
233
233
  */
234
234
  async remove(identifiers, queryRunner) {
235
- let _queryRunner = queryRunner || this.getQueryRunner();
235
+ const _queryRunner = queryRunner || this.getQueryRunner();
236
236
  await Promise.all(identifiers.map((identifier) => {
237
237
  const qb = _queryRunner.manager.createQueryBuilder();
238
238
  return qb
@@ -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\"\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
+ {"version":3,"sources":["../../src/cache/DbQueryResultCache.ts"],"names":[],"mappings":"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","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 const _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":".."}
@@ -14,6 +14,7 @@ class CommandUtils {
14
14
  static async loadDataSource(dataSourceFilePath) {
15
15
  let dataSourceFileExports;
16
16
  try {
17
+ ;
17
18
  [dataSourceFileExports] = await (0, ImportUtils_1.importOrRequireFile)(dataSourceFilePath);
18
19
  }
19
20
  catch (err) {
@@ -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\"\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":".."}
1
+ {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":"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","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":".."}