@entity-access/entity-access 1.0.7 → 1.0.9

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 (352) hide show
  1. package/.github/workflows/npm-publish.yml +2 -10
  2. package/dist/TestRunner.d.ts +2 -0
  3. package/dist/TestRunner.d.ts.map +1 -0
  4. package/dist/TestRunner.js +2 -0
  5. package/dist/TestRunner.js.map +1 -0
  6. package/dist/common/EntityAccessError.d.ts +5 -0
  7. package/dist/common/EntityAccessError.d.ts.map +1 -0
  8. package/dist/common/EntityAccessError.js +9 -0
  9. package/dist/common/EntityAccessError.js.map +1 -0
  10. package/dist/common/IDisposable.d.ts +13 -0
  11. package/dist/common/IDisposable.d.ts.map +1 -0
  12. package/dist/common/IDisposable.js +9 -0
  13. package/dist/common/IDisposable.js.map +1 -0
  14. package/dist/common/ImmutableObject.d.ts +5 -0
  15. package/dist/common/ImmutableObject.d.ts.map +1 -0
  16. package/dist/common/ImmutableObject.js +49 -0
  17. package/dist/common/ImmutableObject.js.map +1 -0
  18. package/dist/common/Logger.d.ts +18 -0
  19. package/dist/common/Logger.d.ts.map +1 -0
  20. package/dist/common/Logger.js +60 -0
  21. package/dist/common/Logger.js.map +1 -0
  22. package/dist/common/TypeInfo.d.ts +4 -0
  23. package/dist/common/TypeInfo.d.ts.map +1 -0
  24. package/dist/common/TypeInfo.js +4 -0
  25. package/dist/common/TypeInfo.js.map +1 -0
  26. package/dist/common/cache/InstanceCache.d.ts +2 -0
  27. package/dist/common/cache/InstanceCache.d.ts.map +1 -0
  28. package/dist/common/cache/InstanceCache.js +13 -0
  29. package/dist/common/cache/InstanceCache.js.map +1 -0
  30. package/dist/common/cache/TimedCache.d.ts +10 -0
  31. package/dist/common/cache/TimedCache.d.ts.map +1 -0
  32. package/dist/common/cache/TimedCache.js +67 -0
  33. package/dist/common/cache/TimedCache.js.map +1 -0
  34. package/dist/common/symbols/symbols.d.ts +3 -0
  35. package/dist/common/symbols/symbols.d.ts.map +1 -0
  36. package/dist/common/symbols/symbols.js +3 -0
  37. package/dist/common/symbols/symbols.js.map +1 -0
  38. package/dist/common/usingAsync.d.ts +13 -0
  39. package/dist/common/usingAsync.d.ts.map +1 -0
  40. package/dist/common/usingAsync.js +44 -0
  41. package/dist/common/usingAsync.js.map +1 -0
  42. package/dist/compiler/ISqlHelpers.d.ts +10 -0
  43. package/dist/compiler/ISqlHelpers.d.ts.map +1 -0
  44. package/dist/compiler/ISqlHelpers.js +17 -0
  45. package/dist/compiler/ISqlHelpers.js.map +1 -0
  46. package/dist/compiler/QueryCompiler.d.ts +36 -0
  47. package/dist/compiler/QueryCompiler.d.ts.map +1 -0
  48. package/dist/compiler/QueryCompiler.js +65 -0
  49. package/dist/compiler/QueryCompiler.js.map +1 -0
  50. package/dist/compiler/postgres/PostgreSqlMethodTransformer.d.ts +4 -0
  51. package/dist/compiler/postgres/PostgreSqlMethodTransformer.d.ts.map +1 -0
  52. package/dist/compiler/postgres/PostgreSqlMethodTransformer.js +103 -0
  53. package/dist/compiler/postgres/PostgreSqlMethodTransformer.js.map +1 -0
  54. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.d.ts +4 -0
  55. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.d.ts.map +1 -0
  56. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.js +103 -0
  57. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.js.map +1 -0
  58. package/dist/decorators/Column.d.ts +4 -0
  59. package/dist/decorators/Column.d.ts.map +1 -0
  60. package/dist/decorators/Column.js +39 -0
  61. package/dist/decorators/Column.js.map +1 -0
  62. package/dist/decorators/ForeignKey.d.ts +9 -0
  63. package/dist/decorators/ForeignKey.d.ts.map +1 -0
  64. package/dist/decorators/ForeignKey.js +18 -0
  65. package/dist/decorators/ForeignKey.js.map +1 -0
  66. package/dist/decorators/IClassOf.d.ts +3 -0
  67. package/dist/decorators/IClassOf.d.ts.map +1 -0
  68. package/dist/decorators/IClassOf.js +2 -0
  69. package/dist/decorators/IClassOf.js.map +1 -0
  70. package/dist/decorators/IColumn.d.ts +49 -0
  71. package/dist/decorators/IColumn.d.ts.map +1 -0
  72. package/dist/decorators/IColumn.js +2 -0
  73. package/dist/decorators/IColumn.js.map +1 -0
  74. package/dist/decorators/ISqlType.d.ts +58 -0
  75. package/dist/decorators/ISqlType.d.ts.map +1 -0
  76. package/dist/decorators/ISqlType.js +2 -0
  77. package/dist/decorators/ISqlType.js.map +1 -0
  78. package/dist/decorators/SchemaRegistry.d.ts +6 -0
  79. package/dist/decorators/SchemaRegistry.d.ts.map +1 -0
  80. package/dist/decorators/SchemaRegistry.js +15 -0
  81. package/dist/decorators/SchemaRegistry.js.map +1 -0
  82. package/dist/decorators/Table.d.ts +6 -0
  83. package/dist/decorators/Table.d.ts.map +1 -0
  84. package/dist/decorators/Table.js +11 -0
  85. package/dist/decorators/Table.js.map +1 -0
  86. package/dist/decorators/parser/NameParser.d.ts +4 -0
  87. package/dist/decorators/parser/NameParser.d.ts.map +1 -0
  88. package/dist/decorators/parser/NameParser.js +14 -0
  89. package/dist/decorators/parser/NameParser.js.map +1 -0
  90. package/dist/di/di.d.ts +41 -0
  91. package/dist/di/di.d.ts.map +1 -0
  92. package/dist/di/di.js +174 -0
  93. package/dist/di/di.js.map +1 -0
  94. package/dist/drivers/base/BaseDriver.d.ts +60 -0
  95. package/dist/drivers/base/BaseDriver.d.ts.map +1 -0
  96. package/dist/drivers/base/BaseDriver.js +97 -0
  97. package/dist/drivers/base/BaseDriver.js.map +1 -0
  98. package/dist/drivers/postgres/PostgreSqlDriver.d.ts +35 -0
  99. package/dist/drivers/postgres/PostgreSqlDriver.d.ts.map +1 -0
  100. package/dist/drivers/postgres/PostgreSqlDriver.js +152 -0
  101. package/dist/drivers/postgres/PostgreSqlDriver.js.map +1 -0
  102. package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts +10 -0
  103. package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts.map +1 -0
  104. package/dist/drivers/sql-server/ExpressionToSqlServer.js +87 -0
  105. package/dist/drivers/sql-server/ExpressionToSqlServer.js.map +1 -0
  106. package/dist/drivers/sql-server/SqlServerDriver.d.ts +21 -0
  107. package/dist/drivers/sql-server/SqlServerDriver.d.ts.map +1 -0
  108. package/dist/drivers/sql-server/SqlServerDriver.js +179 -0
  109. package/dist/drivers/sql-server/SqlServerDriver.js.map +1 -0
  110. package/dist/drivers/sql-server/SqlServerLiteral.d.ts +5 -0
  111. package/dist/drivers/sql-server/SqlServerLiteral.d.ts.map +1 -0
  112. package/dist/drivers/sql-server/SqlServerLiteral.js +10 -0
  113. package/dist/drivers/sql-server/SqlServerLiteral.js.map +1 -0
  114. package/dist/drivers/sql-server/SqlServerQueryCompiler.d.ts +5 -0
  115. package/dist/drivers/sql-server/SqlServerQueryCompiler.d.ts.map +1 -0
  116. package/dist/drivers/sql-server/SqlServerQueryCompiler.js +17 -0
  117. package/dist/drivers/sql-server/SqlServerQueryCompiler.js.map +1 -0
  118. package/dist/entity-query/EntityType.d.ts +56 -0
  119. package/dist/entity-query/EntityType.d.ts.map +1 -0
  120. package/dist/entity-query/EntityType.js +145 -0
  121. package/dist/entity-query/EntityType.js.map +1 -0
  122. package/dist/migrations/Migrations.d.ts +7 -0
  123. package/dist/migrations/Migrations.d.ts.map +1 -0
  124. package/dist/migrations/Migrations.js +10 -0
  125. package/dist/migrations/Migrations.js.map +1 -0
  126. package/dist/migrations/postgres/PostgresAutomaticMigrations.d.ts +12 -0
  127. package/dist/migrations/postgres/PostgresAutomaticMigrations.d.ts.map +1 -0
  128. package/dist/migrations/postgres/PostgresAutomaticMigrations.js +68 -0
  129. package/dist/migrations/postgres/PostgresAutomaticMigrations.js.map +1 -0
  130. package/dist/migrations/postgres/PostgresMigrations.d.ts +7 -0
  131. package/dist/migrations/postgres/PostgresMigrations.d.ts.map +1 -0
  132. package/dist/migrations/postgres/PostgresMigrations.js +53 -0
  133. package/dist/migrations/postgres/PostgresMigrations.js.map +1 -0
  134. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.d.ts +12 -0
  135. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.d.ts.map +1 -0
  136. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.js +74 -0
  137. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.js.map +1 -0
  138. package/dist/migrations/sql-server/SqlServerMigrations.d.ts +7 -0
  139. package/dist/migrations/sql-server/SqlServerMigrations.d.ts.map +1 -0
  140. package/dist/migrations/sql-server/SqlServerMigrations.js +57 -0
  141. package/dist/migrations/sql-server/SqlServerMigrations.js.map +1 -0
  142. package/dist/model/EntityContext.d.ts +28 -0
  143. package/dist/model/EntityContext.d.ts.map +1 -0
  144. package/dist/model/EntityContext.js +181 -0
  145. package/dist/model/EntityContext.js.map +1 -0
  146. package/dist/model/EntityModel.d.ts +10 -0
  147. package/dist/model/EntityModel.d.ts.map +1 -0
  148. package/dist/model/EntityModel.js +19 -0
  149. package/dist/model/EntityModel.js.map +1 -0
  150. package/dist/model/EntityQuery.d.ts +37 -0
  151. package/dist/model/EntityQuery.d.ts.map +1 -0
  152. package/dist/model/EntityQuery.js +183 -0
  153. package/dist/model/EntityQuery.js.map +1 -0
  154. package/dist/model/EntitySource.d.ts +27 -0
  155. package/dist/model/EntitySource.d.ts.map +1 -0
  156. package/dist/model/EntitySource.js +74 -0
  157. package/dist/model/EntitySource.js.map +1 -0
  158. package/dist/model/IFilterWithParameter.d.ts +32 -0
  159. package/dist/model/IFilterWithParameter.d.ts.map +1 -0
  160. package/dist/model/IFilterWithParameter.js +2 -0
  161. package/dist/model/IFilterWithParameter.js.map +1 -0
  162. package/dist/model/SourceExpression.d.ts +23 -0
  163. package/dist/model/SourceExpression.d.ts.map +1 -0
  164. package/dist/model/SourceExpression.js +109 -0
  165. package/dist/model/SourceExpression.js.map +1 -0
  166. package/dist/model/changes/ChangeEntry.d.ts +32 -0
  167. package/dist/model/changes/ChangeEntry.d.ts.map +1 -0
  168. package/dist/model/changes/ChangeEntry.js +136 -0
  169. package/dist/model/changes/ChangeEntry.js.map +1 -0
  170. package/dist/model/changes/ChangeSet.d.ts +23 -0
  171. package/dist/model/changes/ChangeSet.d.ts.map +1 -0
  172. package/dist/model/changes/ChangeSet.js +79 -0
  173. package/dist/model/changes/ChangeSet.js.map +1 -0
  174. package/dist/model/events/ContextEvents.d.ts +8 -0
  175. package/dist/model/events/ContextEvents.d.ts.map +1 -0
  176. package/dist/model/events/ContextEvents.js +18 -0
  177. package/dist/model/events/ContextEvents.js.map +1 -0
  178. package/dist/model/events/EntityEvents.d.ts +34 -0
  179. package/dist/model/events/EntityEvents.d.ts.map +1 -0
  180. package/dist/model/events/EntityEvents.js +67 -0
  181. package/dist/model/events/EntityEvents.js.map +1 -0
  182. package/dist/model/identity/IdentityService.d.ts +7 -0
  183. package/dist/model/identity/IdentityService.d.ts.map +1 -0
  184. package/dist/model/identity/IdentityService.js +25 -0
  185. package/dist/model/identity/IdentityService.js.map +1 -0
  186. package/dist/model/identity/RelationMapper.d.ts +11 -0
  187. package/dist/model/identity/RelationMapper.d.ts.map +1 -0
  188. package/dist/model/identity/RelationMapper.js +61 -0
  189. package/dist/model/identity/RelationMapper.js.map +1 -0
  190. package/dist/model/symbols.d.ts +2 -0
  191. package/dist/model/symbols.d.ts.map +1 -0
  192. package/dist/model/symbols.js +2 -0
  193. package/dist/model/symbols.js.map +1 -0
  194. package/dist/model/verification/VerificationSession.d.ts +20 -0
  195. package/dist/model/verification/VerificationSession.d.ts.map +1 -0
  196. package/dist/model/verification/VerificationSession.js +145 -0
  197. package/dist/model/verification/VerificationSession.js.map +1 -0
  198. package/dist/query/Query.d.ts +29 -0
  199. package/dist/query/Query.d.ts.map +1 -0
  200. package/dist/query/Query.js +132 -0
  201. package/dist/query/Query.js.map +1 -0
  202. package/dist/query/ast/DebugStringVisitor.d.ts +36 -0
  203. package/dist/query/ast/DebugStringVisitor.d.ts.map +1 -0
  204. package/dist/query/ast/DebugStringVisitor.js +143 -0
  205. package/dist/query/ast/DebugStringVisitor.js.map +1 -0
  206. package/dist/query/ast/ExpressionToSql.d.ts +58 -0
  207. package/dist/query/ast/ExpressionToSql.d.ts.map +1 -0
  208. package/dist/query/ast/ExpressionToSql.js +410 -0
  209. package/dist/query/ast/ExpressionToSql.js.map +1 -0
  210. package/dist/query/ast/Expressions.d.ts +212 -0
  211. package/dist/query/ast/Expressions.d.ts.map +1 -0
  212. package/dist/query/ast/Expressions.js +289 -0
  213. package/dist/query/ast/Expressions.js.map +1 -0
  214. package/dist/query/ast/IStringTransformer.d.ts +17 -0
  215. package/dist/query/ast/IStringTransformer.d.ts.map +1 -0
  216. package/dist/query/ast/IStringTransformer.js +79 -0
  217. package/dist/query/ast/IStringTransformer.js.map +1 -0
  218. package/dist/query/ast/ParameterScope.d.ts +25 -0
  219. package/dist/query/ast/ParameterScope.d.ts.map +1 -0
  220. package/dist/query/ast/ParameterScope.js +71 -0
  221. package/dist/query/ast/ParameterScope.js.map +1 -0
  222. package/dist/query/ast/ReplaceParameter.d.ts +5 -0
  223. package/dist/query/ast/ReplaceParameter.d.ts.map +1 -0
  224. package/dist/query/ast/ReplaceParameter.js +37 -0
  225. package/dist/query/ast/ReplaceParameter.js.map +1 -0
  226. package/dist/query/ast/SqlLiteral.d.ts +4 -0
  227. package/dist/query/ast/SqlLiteral.d.ts.map +1 -0
  228. package/dist/query/ast/SqlLiteral.js +24 -0
  229. package/dist/query/ast/SqlLiteral.js.map +1 -0
  230. package/dist/query/ast/Types.d.ts +2 -0
  231. package/dist/query/ast/Types.d.ts.map +1 -0
  232. package/dist/query/ast/Types.js +2 -0
  233. package/dist/query/ast/Types.js.map +1 -0
  234. package/dist/query/ast/Visitor.d.ts +35 -0
  235. package/dist/query/ast/Visitor.d.ts.map +1 -0
  236. package/dist/query/ast/Visitor.js +161 -0
  237. package/dist/query/ast/Visitor.js.map +1 -0
  238. package/dist/query/expander/QueryExpander.d.ts +11 -0
  239. package/dist/query/expander/QueryExpander.d.ts.map +1 -0
  240. package/dist/query/expander/QueryExpander.js +103 -0
  241. package/dist/query/expander/QueryExpander.js.map +1 -0
  242. package/dist/query/parser/ArrowToExpression.d.ts +35 -0
  243. package/dist/query/parser/ArrowToExpression.d.ts.map +1 -0
  244. package/dist/query/parser/ArrowToExpression.js +237 -0
  245. package/dist/query/parser/ArrowToExpression.js.map +1 -0
  246. package/dist/query/parser/BabelVisitor.d.ts +23 -0
  247. package/dist/query/parser/BabelVisitor.d.ts.map +1 -0
  248. package/dist/query/parser/BabelVisitor.js +53 -0
  249. package/dist/query/parser/BabelVisitor.js.map +1 -0
  250. package/dist/query/parser/NotSupportedError.d.ts +4 -0
  251. package/dist/query/parser/NotSupportedError.d.ts.map +1 -0
  252. package/dist/query/parser/NotSupportedError.js +6 -0
  253. package/dist/query/parser/NotSupportedError.js.map +1 -0
  254. package/dist/query/parser/Restructure.d.ts +11 -0
  255. package/dist/query/parser/Restructure.d.ts.map +1 -0
  256. package/dist/query/parser/Restructure.js +54 -0
  257. package/dist/query/parser/Restructure.js.map +1 -0
  258. package/dist/query/parser/TransformVisitor.d.ts +23 -0
  259. package/dist/query/parser/TransformVisitor.d.ts.map +1 -0
  260. package/dist/query/parser/TransformVisitor.js +70 -0
  261. package/dist/query/parser/TransformVisitor.js.map +1 -0
  262. package/dist/sql/ISql.d.ts +37 -0
  263. package/dist/sql/ISql.d.ts.map +1 -0
  264. package/dist/sql/ISql.js +2 -0
  265. package/dist/sql/ISql.js.map +1 -0
  266. package/dist/sql/Sql.d.ts +4 -0
  267. package/dist/sql/Sql.d.ts.map +1 -0
  268. package/dist/sql/Sql.js +3 -0
  269. package/dist/sql/Sql.js.map +1 -0
  270. package/dist/tests/TestConfig.d.ts +6 -0
  271. package/dist/tests/TestConfig.d.ts.map +1 -0
  272. package/dist/tests/TestConfig.js +5 -0
  273. package/dist/tests/TestConfig.js.map +1 -0
  274. package/dist/tests/db-tests/tests/select-items.d.ts +3 -0
  275. package/dist/tests/db-tests/tests/select-items.d.ts.map +1 -0
  276. package/dist/tests/db-tests/tests/select-items.js +30 -0
  277. package/dist/tests/db-tests/tests/select-items.js.map +1 -0
  278. package/dist/tests/db-tests/tests/update-items.d.ts +3 -0
  279. package/dist/tests/db-tests/tests/update-items.d.ts.map +1 -0
  280. package/dist/tests/db-tests/tests/update-items.js +11 -0
  281. package/dist/tests/db-tests/tests/update-items.js.map +1 -0
  282. package/dist/tests/drivers/postgres/connection-test.d.ts +3 -0
  283. package/dist/tests/drivers/postgres/connection-test.d.ts.map +1 -0
  284. package/dist/tests/drivers/postgres/connection-test.js +20 -0
  285. package/dist/tests/drivers/postgres/connection-test.js.map +1 -0
  286. package/dist/tests/drivers/sql-server/sql-server-test.d.ts +2 -0
  287. package/dist/tests/drivers/sql-server/sql-server-test.d.ts.map +1 -0
  288. package/dist/tests/drivers/sql-server/sql-server-test.js +6 -0
  289. package/dist/tests/drivers/sql-server/sql-server-test.js.map +1 -0
  290. package/dist/tests/expressions/left-joins/child-joins.d.ts +2 -0
  291. package/dist/tests/expressions/left-joins/child-joins.d.ts.map +1 -0
  292. package/dist/tests/expressions/left-joins/child-joins.js +77 -0
  293. package/dist/tests/expressions/left-joins/child-joins.js.map +1 -0
  294. package/dist/tests/expressions/sanitize/sanitize-test.d.ts +2 -0
  295. package/dist/tests/expressions/sanitize/sanitize-test.d.ts.map +1 -0
  296. package/dist/tests/expressions/sanitize/sanitize-test.js +8 -0
  297. package/dist/tests/expressions/sanitize/sanitize-test.js.map +1 -0
  298. package/dist/tests/expressions/select/select.d.ts +2 -0
  299. package/dist/tests/expressions/select/select.d.ts.map +1 -0
  300. package/dist/tests/expressions/select/select.js +11 -0
  301. package/dist/tests/expressions/select/select.js.map +1 -0
  302. package/dist/tests/expressions/simple/parse-arrow.d.ts +2 -0
  303. package/dist/tests/expressions/simple/parse-arrow.d.ts.map +1 -0
  304. package/dist/tests/expressions/simple/parse-arrow.js +30 -0
  305. package/dist/tests/expressions/simple/parse-arrow.js.map +1 -0
  306. package/dist/tests/expressions/trimInternal.d.ts +3 -0
  307. package/dist/tests/expressions/trimInternal.d.ts.map +1 -0
  308. package/dist/tests/expressions/trimInternal.js +22 -0
  309. package/dist/tests/expressions/trimInternal.js.map +1 -0
  310. package/dist/tests/model/ShoppingContext.d.ts +67 -0
  311. package/dist/tests/model/ShoppingContext.d.ts.map +1 -0
  312. package/dist/tests/model/ShoppingContext.js +264 -0
  313. package/dist/tests/model/ShoppingContext.js.map +1 -0
  314. package/dist/tests/model/createContext.d.ts +5 -0
  315. package/dist/tests/model/createContext.d.ts.map +1 -0
  316. package/dist/tests/model/createContext.js +307 -0
  317. package/dist/tests/model/createContext.js.map +1 -0
  318. package/dist/tests/query/combine.d.ts +2 -0
  319. package/dist/tests/query/combine.d.ts.map +1 -0
  320. package/dist/tests/query/combine.js +20 -0
  321. package/dist/tests/query/combine.js.map +1 -0
  322. package/dist/tests/security/ShoppingContextEvents.d.ts +5 -0
  323. package/dist/tests/security/ShoppingContextEvents.d.ts.map +1 -0
  324. package/dist/tests/security/ShoppingContextEvents.js +17 -0
  325. package/dist/tests/security/ShoppingContextEvents.js.map +1 -0
  326. package/dist/tests/security/events/OrderEvents.d.ts +17 -0
  327. package/dist/tests/security/events/OrderEvents.d.ts.map +1 -0
  328. package/dist/tests/security/events/OrderEvents.js +72 -0
  329. package/dist/tests/security/events/OrderEvents.js.map +1 -0
  330. package/dist/tests/security/events/ProductEvents.d.ts +20 -0
  331. package/dist/tests/security/events/ProductEvents.d.ts.map +1 -0
  332. package/dist/tests/security/events/ProductEvents.js +83 -0
  333. package/dist/tests/security/events/ProductEvents.js.map +1 -0
  334. package/dist/tests/security/events/UserEvents.d.ts +10 -0
  335. package/dist/tests/security/events/UserEvents.d.ts.map +1 -0
  336. package/dist/tests/security/events/UserEvents.js +35 -0
  337. package/dist/tests/security/events/UserEvents.js.map +1 -0
  338. package/dist/tests/security/events/UserInfo.d.ts +5 -0
  339. package/dist/tests/security/events/UserInfo.d.ts.map +1 -0
  340. package/dist/tests/security/events/UserInfo.js +15 -0
  341. package/dist/tests/security/events/UserInfo.js.map +1 -0
  342. package/dist/tests/security/tests/include-items.d.ts +3 -0
  343. package/dist/tests/security/tests/include-items.d.ts.map +1 -0
  344. package/dist/tests/security/tests/include-items.js +14 -0
  345. package/dist/tests/security/tests/include-items.js.map +1 -0
  346. package/dist/tests/security/tests/place-order.d.ts +3 -0
  347. package/dist/tests/security/tests/place-order.d.ts.map +1 -0
  348. package/dist/tests/security/tests/place-order.js +86 -0
  349. package/dist/tests/security/tests/place-order.js.map +1 -0
  350. package/dist/tsconfig.tsbuildinfo +1 -0
  351. package/package.json +3 -2
  352. package/src/di/di.ts +1 -1
@@ -0,0 +1,145 @@
1
+ import EntityAccessError from "../../common/EntityAccessError.js";
2
+ import Logger from "../../common/Logger.js";
3
+ import { TypeInfo } from "../../common/TypeInfo.js";
4
+ import { ServiceProvider } from "../../di/di.js";
5
+ import { ConditionalExpression, ExistsExpression, Expression, Identifier, ParameterExpression, QuotedLiteral, SelectStatement, ValuesStatement } from "../../query/ast/Expressions.js";
6
+ import { ForeignKeyFilter } from "../events/EntityEvents.js";
7
+ export default class VerificationSession {
8
+ context;
9
+ select;
10
+ field;
11
+ constructor(context) {
12
+ this.context = context;
13
+ this.select = SelectStatement.create({});
14
+ }
15
+ queueVerification(change, events) {
16
+ const { type, entity } = change;
17
+ if (change.status !== "inserted") {
18
+ // verify access to the entity
19
+ const keys = [];
20
+ for (const iterator of type.keys) {
21
+ const key = entity[iterator.name];
22
+ if (key === void 0) {
23
+ break;
24
+ }
25
+ keys.push([iterator.columnName, key]);
26
+ }
27
+ if (keys.length === type.keys.length) {
28
+ this.queueEntityKey(change, keys, events);
29
+ }
30
+ }
31
+ if (change.status === "deleted") {
32
+ return;
33
+ }
34
+ // for modified or inserted
35
+ // we need to verify access to each foreign key
36
+ for (const relation of type.relations) {
37
+ if (relation.isInverseRelation) {
38
+ continue;
39
+ }
40
+ const fk = relation.fkColumn;
41
+ if (!fk) {
42
+ continue;
43
+ }
44
+ const fkValue = entity[fk.name];
45
+ if (fkValue === void 0) {
46
+ // not set... ignore..
47
+ continue;
48
+ }
49
+ this.queueEntityForeignKey(change, relation, fkValue);
50
+ }
51
+ }
52
+ queueEntityForeignKey(change, relation, value) {
53
+ const relatedModel = relation.relatedEntity;
54
+ const type = relation.relatedEntity.typeClass;
55
+ const events = this.context.eventsFor(change.type.typeClass);
56
+ const relatedEvents = this.context.eventsFor(relation.relatedEntity.typeClass);
57
+ const context = this.context;
58
+ const fk = new ForeignKeyFilter({
59
+ context,
60
+ events: relatedEvents,
61
+ type: relatedModel,
62
+ name: relation.name,
63
+ fkName: relation.fkColumn.name
64
+ });
65
+ let query = events.onForeignKeyFilter(fk);
66
+ if (query === void 0) {
67
+ query = fk.modify();
68
+ }
69
+ if (query === null) {
70
+ return;
71
+ }
72
+ const eq = query;
73
+ const compare = Expression.equal(Expression.member(eq.selectStatement.as, relatedModel.keys[0].columnName), Expression.constant(value));
74
+ const typeName = TypeInfo.nameOfType(type);
75
+ this.addError(query, compare, `Unable to access entity ${typeName} through foreign key ${TypeInfo.nameOfType(change.type)}.${relation.name}.\n`);
76
+ }
77
+ queueEntityKey(change, keys, events) {
78
+ const type = change.type.typeClass;
79
+ let query = this.context.query(type);
80
+ query = change.status === "modified" ? events.modify(query) : events.delete(query);
81
+ if (!query) {
82
+ return;
83
+ }
84
+ let compare;
85
+ const eq = query;
86
+ for (const [key, value] of keys) {
87
+ const test = Expression.equal(Expression.member(eq.selectStatement.as, Expression.quotedLiteral(key)), Expression.constant(value));
88
+ compare = compare
89
+ ? Expression.logicalAnd(compare, test)
90
+ : test;
91
+ }
92
+ const typeName = TypeInfo.nameOfType(type);
93
+ this.addError(query, compare, `Unable to access entity ${typeName}.\n`);
94
+ }
95
+ async verifyAsync() {
96
+ if (!this.field?.length) {
97
+ return;
98
+ }
99
+ this.select.fields = [
100
+ Expression.as(Expression.templateLiteral(this.field), "error")
101
+ ];
102
+ this.select.as = ParameterExpression.create({ name: "x" });
103
+ const source = ValuesStatement.create({
104
+ values: [
105
+ [Identifier.create({ value: "1" })]
106
+ ],
107
+ as: QuotedLiteral.create({ literal: "a" }),
108
+ fields: [QuotedLiteral.create({ literal: "a" })]
109
+ });
110
+ this.select.source = source;
111
+ const compiler = this.context.driver.compiler;
112
+ const query = compiler.compileExpression(null, this.select);
113
+ const logger = ServiceProvider.resolve(this.context, Logger);
114
+ const session = logger.newSession();
115
+ try {
116
+ const { rows: [{ error }] } = await this.context.driver.executeQuery(query);
117
+ if (error) {
118
+ session.error(`Failed executing ${query.text}\n[${query.values.join(",")}]\n${error?.stack ?? error}`);
119
+ EntityAccessError.throw(error);
120
+ }
121
+ }
122
+ finally {
123
+ session.dispose();
124
+ }
125
+ }
126
+ addError(query, compare, error) {
127
+ const select = { ...query.selectStatement };
128
+ select.fields = [
129
+ Expression.identifier("1")
130
+ ];
131
+ const where = select.where
132
+ ? Expression.logicalAnd(select.where, compare)
133
+ : compare;
134
+ select.where = where;
135
+ const text = ConditionalExpression.create({
136
+ test: ExistsExpression.create({
137
+ target: select
138
+ }),
139
+ consequent: Expression.constant(""),
140
+ alternate: Expression.constant(error),
141
+ });
142
+ (this.field ??= []).push(text);
143
+ }
144
+ }
145
+ //# sourceMappingURL=VerificationSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerificationSession.js","sourceRoot":"","sources":["../../../src/model/verification/VerificationSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export declare const queryItem: unique symbol;
2
+ export declare class QueryPart {
3
+ static from(a: Partial<QueryPart>): QueryPart;
4
+ name: string;
5
+ literal: boolean;
6
+ quoted: boolean;
7
+ value: any;
8
+ toString(): string;
9
+ }
10
+ export type IQuery = string | QueryPart;
11
+ export declare class Query {
12
+ readonly parts: IQuery[];
13
+ static empty: Query;
14
+ static literal: (name: any) => QueryPart;
15
+ static quotedLiteral: (...names: string[]) => QueryPart[];
16
+ static join(queries: Query[], separator?: string): Query;
17
+ static create(t: TemplateStringsArray, ...a: any[]): Query;
18
+ constructor(parts?: IQuery[]);
19
+ append(t: TemplateStringsArray, ...a: []): Query;
20
+ appendLiteral(text: any): Query;
21
+ appendQuotedLiteral(text: any): Query;
22
+ appendParameter(value: any, name?: any): Query;
23
+ toString(): string;
24
+ toQuery(naming?: (name: string, index: number) => string, quote?: (name: string) => string): {
25
+ text: string;
26
+ values: any[];
27
+ };
28
+ }
29
+ //# sourceMappingURL=Query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/query/Query.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,eAAsB,CAAC;AAE7C,qBAAa,SAAS;WAEJ,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAKjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IAEX,QAAQ;CAOlB;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAExC,qBAAa,KAAK;aAiFc,KAAK,EAAE,MAAM,EAAE;IA/E3C,OAAc,KAAK,QAAiB;IAEpC,OAAc,OAAO,iBAAW,SAAS,CAA4C;IAErF,OAAc,aAAa,aAAe,MAAM,EAAG,KAAG,SAAS,EAAE,CAA+E;WAElI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,GAAE,MAAa;WAW/C,MAAM,CAAC,CAAC,EAAE,oBAAoB,EAAE,GAAI,CAAC,EAAE,GAAG,EAAE;gBA8D9B,KAAK,GAAE,MAAM,EAAO;IAIhD,MAAM,CAAC,CAAC,EAAE,oBAAoB,EAAE,GAAI,CAAC,EAAE,EAAE;IAIzC,aAAa,CAAC,IAAI,KAAA;IAIlB,mBAAmB,CAAC,IAAI,KAAA;IAIxB,eAAe,CAAC,KAAK,KAAA,EAAE,IAAI,CAAC,KAAA;IAK5B,QAAQ;IAIR,OAAO,CACH,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAA6B,EACtE,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuC;;;;CAwBvE"}
@@ -0,0 +1,132 @@
1
+ export const queryItem = Symbol("queryItem");
2
+ export class QueryPart {
3
+ static from(a) {
4
+ Object.setPrototypeOf(a, QueryPart.prototype);
5
+ return a;
6
+ }
7
+ name;
8
+ literal;
9
+ quoted;
10
+ value;
11
+ toString() {
12
+ if (this.quoted) {
13
+ return JSON.stringify(this.name);
14
+ }
15
+ return this.name;
16
+ }
17
+ }
18
+ export class Query {
19
+ parts;
20
+ static empty = new Query([]);
21
+ static literal = (name) => QueryPart.from({ name, literal: true });
22
+ static quotedLiteral = (...names) => names.map((name) => QueryPart.from({ name, literal: true, quoted: true }));
23
+ static join(queries, separator = ", ") {
24
+ const r = [];
25
+ for (const iterator of queries) {
26
+ if (r.length > 0) {
27
+ r.push(separator);
28
+ }
29
+ r.push(...iterator.parts);
30
+ }
31
+ return new Query(r);
32
+ }
33
+ static create(t, ...a) {
34
+ const r = [];
35
+ let pi = 0;
36
+ for (let index = 0; index < t.length; index++) {
37
+ const element = t[index];
38
+ r.push(element);
39
+ let name;
40
+ if (index < a.length) {
41
+ const value = a[index];
42
+ if (value === void 0) {
43
+ continue;
44
+ }
45
+ if (Array.isArray(value)) {
46
+ for (const iterator of value) {
47
+ if (iterator instanceof QueryPart) {
48
+ if (iterator.literal) {
49
+ r.push(iterator);
50
+ continue;
51
+ }
52
+ }
53
+ name = "@p" + pi++;
54
+ r.push(QueryPart.from({ name, value }));
55
+ }
56
+ continue;
57
+ }
58
+ if (value !== null && typeof value === "object") {
59
+ if (value instanceof QueryPart) {
60
+ if (value.literal) {
61
+ r.push(value);
62
+ continue;
63
+ }
64
+ }
65
+ if (value instanceof Query) {
66
+ for (const iterator of value.parts) {
67
+ if (typeof iterator === "string") {
68
+ r.push(iterator);
69
+ continue;
70
+ }
71
+ if (iterator instanceof QueryPart) {
72
+ if (iterator.literal) {
73
+ r.push(iterator);
74
+ continue;
75
+ }
76
+ }
77
+ name = "@p" + pi++;
78
+ r.push(QueryPart.from({ name, value }));
79
+ }
80
+ continue;
81
+ }
82
+ }
83
+ name = "@p" + pi++;
84
+ r.push(QueryPart.from({ name, value }));
85
+ }
86
+ }
87
+ return new Query(r);
88
+ }
89
+ constructor(parts = []) {
90
+ this.parts = parts;
91
+ }
92
+ append(t, ...a) {
93
+ return new Query(this.parts.concat(...Query.create(t, ...a).parts));
94
+ }
95
+ appendLiteral(text) {
96
+ return new Query(this.parts.concat([Query.literal(text)]));
97
+ }
98
+ appendQuotedLiteral(text) {
99
+ return new Query(this.parts.concat(Query.quotedLiteral(text)));
100
+ }
101
+ appendParameter(value, name) {
102
+ name ??= "@p" + Date.now();
103
+ return new Query(this.parts.concat(QueryPart.from({ name, value })));
104
+ }
105
+ toString() {
106
+ return this.parts.join("");
107
+ }
108
+ toQuery(naming = (name, i) => `$${i}`, quote = (name) => JSON.stringify(name)) {
109
+ let text = "";
110
+ const values = [];
111
+ for (const iterator of this.parts) {
112
+ if (typeof iterator === "string") {
113
+ text += iterator;
114
+ continue;
115
+ }
116
+ if (iterator instanceof QueryPart) {
117
+ if (iterator.literal) {
118
+ if (iterator.quoted) {
119
+ text += quote(iterator.name);
120
+ continue;
121
+ }
122
+ text += iterator.name;
123
+ continue;
124
+ }
125
+ text += naming(iterator.name, values.length + 1);
126
+ values.push(iterator.value);
127
+ }
128
+ }
129
+ return { text, values };
130
+ }
131
+ }
132
+ //# sourceMappingURL=Query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../../src/query/Query.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7C,MAAM,OAAO,SAAS;IAEX,MAAM,CAAC,IAAI,CAAC,CAAqB;QACpC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAc,CAAC;IAC1B,CAAC;IAEM,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,KAAK,CAAM;IAEX,QAAQ;QACX,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CAEJ;AAID,MAAM,OAAO,KAAK;IAiFc;IA/ErB,MAAM,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7B,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,EAAa,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9E,MAAM,CAAC,aAAa,GAAG,CAAC,GAAI,KAAgB,EAAe,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEzI,MAAM,CAAC,IAAI,CAAC,OAAgB,EAAE,YAAoB,IAAI;QACzD,MAAM,CAAC,GAAa,EAAE,CAAC;QACvB,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACd,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrB;YACD,CAAC,CAAC,IAAI,CAAC,GAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9B;QACD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,CAAuB,EAAE,GAAI,CAAQ;QACtD,MAAM,CAAC,GAAa,EAAE,CAAC;QAEvB,IAAI,EAAE,GAAG,CAAC,CAAC;QAEX,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChB,IAAI,IAAY,CAAC;YACjB,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE;gBAClB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAQ,CAAC;gBAC9B,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;oBAClB,SAAS;iBACZ;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACtB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;wBAC1B,IAAI,QAAQ,YAAY,SAAS,EAAE;4BAC/B,IAAG,QAAQ,CAAC,OAAO,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCACjB,SAAS;6BACZ;yBACJ;wBACD,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;wBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;qBAC3C;oBACD,SAAS;iBACZ;gBACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAE7C,IAAI,KAAK,YAAY,SAAS,EAAE;wBAC5B,IAAI,KAAK,CAAC,OAAO,EAAE;4BACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACd,SAAS;yBACZ;qBACJ;oBAED,IAAI,KAAK,YAAY,KAAK,EAAE;wBACxB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE;4BAChC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gCAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCACjB,SAAS;6BACZ;4BACD,IAAI,QAAQ,YAAY,SAAS,EAAE;gCAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE;oCAClB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oCACjB,SAAS;iCACZ;6BACJ;4BACD,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;4BACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;yBAC3C;wBACD,SAAS;qBACZ;iBACJ;gBACD,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;gBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,YAA4B,QAAkB,EAAE;QAApB,UAAK,GAAL,KAAK,CAAe;IAEhD,CAAC;IAED,MAAM,CAAC,CAAuB,EAAE,GAAI,CAAK;QACrC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa,CAAC,IAAI;QACd,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,mBAAmB,CAAC,IAAI;QACpB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,eAAe,CAAC,KAAK,EAAE,IAAK;QACxB,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CACH,SAAkD,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EACtE,QAAkC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAEhE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBAC9B,IAAI,IAAI,QAAQ,CAAC;gBACjB,SAAS;aACZ;YACD,IAAI,QAAQ,YAAY,SAAS,EAAE;gBAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE;oBAClB,IAAI,QAAQ,CAAC,MAAM,EAAE;wBACjB,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC7B,SAAS;qBACZ;oBACD,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;oBACtB,SAAS;iBACZ;gBACD,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC/B;SACJ;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { ArrowFunctionExpression, BigIntLiteral, BinaryExpression, BooleanLiteral, CallExpression, CoalesceExpression, ConditionalExpression, Constant, DeleteStatement, ExistsExpression, Expression, ExpressionAs, Identifier, InsertStatement, JoinExpression, MemberExpression, NewObjectExpression, NullExpression, NumberLiteral, OrderByExpression, ParameterExpression, QuotedLiteral, ReturnUpdated, SelectStatement, StringLiteral, TableLiteral, TemplateElement, TemplateLiteral, UpdateStatement, ValuesStatement } from "./Expressions.js";
2
+ import Visitor from "./Visitor.js";
3
+ export default class DebugStringVisitor extends Visitor<string> {
4
+ static expressionToString(e: Expression): string;
5
+ visitArrowFunctionExpression(e: ArrowFunctionExpression): string;
6
+ visitBigIntLiteral(e: BigIntLiteral): string;
7
+ visitBinaryExpression(e: BinaryExpression): string;
8
+ visitBooleanLiteral(e: BooleanLiteral): string;
9
+ visitCallExpression(e: CallExpression): string;
10
+ visitCoalesceExpression(e: CoalesceExpression): string;
11
+ visitConditionalExpression(e: ConditionalExpression): string;
12
+ visitConstant(e: Constant): string;
13
+ visitExpressionAs(e: ExpressionAs): string;
14
+ visitIdentifier(e: Identifier): string;
15
+ visitMemberExpression(e: MemberExpression): string;
16
+ visitTableLiteral(e: TableLiteral): string;
17
+ visitNewObjectExpression(e: NewObjectExpression): string;
18
+ visitNullExpression(e: NullExpression): string;
19
+ visitNumberLiteral(e: NumberLiteral): string;
20
+ visitParameterExpression(e: ParameterExpression): string;
21
+ visitQuotedLiteral(e: QuotedLiteral): string;
22
+ visitStringLiteral(e: StringLiteral): string;
23
+ visitTemplateElement(e: TemplateElement): string;
24
+ visitTemplateLiteral(e: TemplateLiteral): string;
25
+ visitDeleteStatement(e: DeleteStatement): string;
26
+ visitExistsExpression(e: ExistsExpression): string;
27
+ visitInsertStatement(e: InsertStatement): string;
28
+ visitJoinExpression(e: JoinExpression): string;
29
+ visitOrderByExpression(e: OrderByExpression): string;
30
+ visitReturnUpdated(e: ReturnUpdated): string;
31
+ visitValuesStatement(e: ValuesStatement): string;
32
+ visitSelectStatement(e: SelectStatement): string;
33
+ visitUpdateStatement(e: UpdateStatement): string;
34
+ private visitArray;
35
+ }
36
+ //# sourceMappingURL=DebugStringVisitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugStringVisitor.d.ts","sourceRoot":"","sources":["../../../src/query/ast/DebugStringVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzhB,OAAO,OAAO,MAAM,cAAc,CAAC;AAInC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO,CAAC,MAAM,CAAC;IAE3D,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU;IAKvC,4BAA4B,CAAC,CAAC,EAAE,uBAAuB;IAIvD,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAUlD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,uBAAuB,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAUtD,0BAA0B,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM;IAI5D,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIlC,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM;IAI1C,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM;IAItC,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAIlD,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM;IAO1C,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIxD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIxD,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAIhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAqBhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAOhD,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAIlD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAIhD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAIpD,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAKhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAWhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAIhD,OAAO,CAAC,UAAU;CAGrB"}
@@ -0,0 +1,143 @@
1
+ import Visitor from "./Visitor.js";
2
+ const isBinary = (type) => /^(BinaryExpression|CoalesceExpression)$/.test(type);
3
+ export default class DebugStringVisitor extends Visitor {
4
+ static expressionToString(e) {
5
+ const dsv = new DebugStringVisitor();
6
+ return dsv.visit(e);
7
+ }
8
+ visitArrowFunctionExpression(e) {
9
+ return `(${this.visitArray(e.params)}) => ${this.visit(e.body)}`;
10
+ }
11
+ visitBigIntLiteral(e) {
12
+ return e.value.toString() + "n";
13
+ }
14
+ visitBinaryExpression(e) {
15
+ const left = isBinary(e.left.type)
16
+ ? `(${this.visit(e.left)})`
17
+ : this.visit(e.left);
18
+ const right = isBinary(e.right.type)
19
+ ? `(${this.visit(e.right)})`
20
+ : this.visit(e.right);
21
+ return `${left} ${e.operator} ${right}`;
22
+ }
23
+ visitBooleanLiteral(e) {
24
+ return String(e.value);
25
+ }
26
+ visitCallExpression(e) {
27
+ return `${this.visit(e.callee)}(${this.visitArray(e.arguments)})`;
28
+ }
29
+ visitCoalesceExpression(e) {
30
+ const left = isBinary(e.left.type)
31
+ ? `(${this.visit(e.left)})`
32
+ : this.visit(e.left);
33
+ const right = isBinary(e.right.type)
34
+ ? `(${this.visit(e.right)})`
35
+ : this.visit(e.right);
36
+ return `${left} ?? ${right}`;
37
+ }
38
+ visitConditionalExpression(e) {
39
+ return `${this.visit(e.test)} ? ${this.visit(e.consequent)} : ${this.visit(e.alternate)}`;
40
+ }
41
+ visitConstant(e) {
42
+ return `"Constant:${e.value}"`;
43
+ }
44
+ visitExpressionAs(e) {
45
+ return `${this.visit(e.expression)} as ${this.visit(e.alias)}`;
46
+ }
47
+ visitIdentifier(e) {
48
+ return e.value;
49
+ }
50
+ visitMemberExpression(e) {
51
+ return `${this.visit(e.target)}.${this.visit(e.property)}`;
52
+ }
53
+ visitTableLiteral(e) {
54
+ if (!e.schema) {
55
+ return this.visit(e.name);
56
+ }
57
+ return `${this.visit(e.schema)}.${this.visit(e.name)}`;
58
+ }
59
+ visitNewObjectExpression(e) {
60
+ return `({${this.visitArray(e.properties)}})`;
61
+ }
62
+ visitNullExpression(e) {
63
+ return "null";
64
+ }
65
+ visitNumberLiteral(e) {
66
+ return e.value.toString();
67
+ }
68
+ visitParameterExpression(e) {
69
+ return e.name;
70
+ }
71
+ visitQuotedLiteral(e) {
72
+ return `"${e.literal}"`;
73
+ }
74
+ visitStringLiteral(e) {
75
+ return `'${e.value}'`;
76
+ }
77
+ visitTemplateElement(e) {
78
+ return `${e.value.cooked}`;
79
+ }
80
+ visitTemplateLiteral(e) {
81
+ const items = [];
82
+ if (e.quasis?.length) {
83
+ for (let i = 0; i < e.quasis.length; i++) {
84
+ items.push(this.visit(e.quasis[i]));
85
+ if (i < e.value.length) {
86
+ items.push("${" + this.visit(e.value[i]) + "}");
87
+ }
88
+ }
89
+ }
90
+ else {
91
+ for (const iterator of e.value) {
92
+ if (iterator.type === "StringLiteral") {
93
+ items.push(iterator.value);
94
+ continue;
95
+ }
96
+ items.push("${" + this.visit(iterator) + "}");
97
+ }
98
+ }
99
+ return "`" + items.join("") + "`";
100
+ }
101
+ visitDeleteStatement(e) {
102
+ if (e.where) {
103
+ return `DELETE FROM ${this.visit(e.table)} WHERE ${this.visit(e.where)}`;
104
+ }
105
+ return `DELETE FROM ${this.visit(e.table)}`;
106
+ }
107
+ visitExistsExpression(e) {
108
+ return `EXISTS (${this.visit(e.target)})`;
109
+ }
110
+ visitInsertStatement(e) {
111
+ return `INSERT INTO ${this.visit(e.table)} ${e.values} ${this.visit(e.returnValues)}`;
112
+ }
113
+ visitJoinExpression(e) {
114
+ return `\n${e.joinType} JOIN ${this.visit(e.source)}\n\t\tON ${this.visit(e.where)}\n`;
115
+ }
116
+ visitOrderByExpression(e) {
117
+ return `${e.target} ${e.descending ? "DESC" : "ASC"}`;
118
+ }
119
+ visitReturnUpdated(e) {
120
+ return `\nRETURNING ${this.visitArray(e.fields)}`;
121
+ }
122
+ visitValuesStatement(e) {
123
+ const rows = e.values.map((x) => `(${this.visit(x[0])})`).join(",\n\t");
124
+ return `(VALUES ${rows}) as ${this.visit(e.as)})`;
125
+ }
126
+ visitSelectStatement(e) {
127
+ const select = `SELECT\n\t${this.visitArray(e.fields, ",\n\t")}\n\tFROM ${this.visit(e.source)}`;
128
+ const as = e.as ? this.visit(e.as) : "";
129
+ const joins = e.joins?.length > 0 ? this.visitArray(e.joins, "\n\t") : "";
130
+ const where = e.where ? `\n\tWHERE ${this.visit(e.where)}` : "";
131
+ const orderBy = e.orderBy ? `\n\tORDER BY ${this.visitArray(e.orderBy, "\n\t\tTHEN BY")}` : "";
132
+ const limit = e.limit > 0 ? `\n\tLIMIT ${e.limit}` : "";
133
+ const offset = e.offset > 0 ? `\n\OFFSET ${e.offset}` : "";
134
+ return `${select}${as}${joins}${where}${orderBy}${limit}${offset}`;
135
+ }
136
+ visitUpdateStatement(e) {
137
+ return "UPDATE";
138
+ }
139
+ visitArray(e, separator = ", ") {
140
+ return e.map((x) => this.visit(x)).join(separator);
141
+ }
142
+ }
143
+ //# sourceMappingURL=DebugStringVisitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugStringVisitor.js","sourceRoot":"","sources":["../../../src/query/ast/DebugStringVisitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import QueryCompiler from "../../compiler/QueryCompiler.js";
2
+ import EntityType from "../../entity-query/EntityType.js";
3
+ import EntityQuery from "../../model/EntityQuery.js";
4
+ import { BigIntLiteral, BinaryExpression, BooleanLiteral, CallExpression, CoalesceExpression, ConditionalExpression, Constant, DeleteStatement, ExistsExpression, Expression, ExpressionAs, Identifier, InsertStatement, JoinExpression, MemberExpression, NewObjectExpression, NullExpression, NumberLiteral, OrderByExpression, ParameterExpression, QuotedLiteral, ReturnUpdated, SelectStatement, StringLiteral, TableLiteral, TemplateLiteral, UpdateStatement, ValuesStatement } from "./Expressions.js";
5
+ import { ITextQuery } from "./IStringTransformer.js";
6
+ import ParameterScope from "./ParameterScope.js";
7
+ import Visitor from "./Visitor.js";
8
+ export interface IMappingModel {
9
+ parameter: ParameterExpression;
10
+ model?: EntityType;
11
+ selectStatement?: SelectStatement;
12
+ name: string;
13
+ }
14
+ export default class ExpressionToSql extends Visitor<ITextQuery> {
15
+ private source;
16
+ root: ParameterExpression;
17
+ target: ParameterExpression;
18
+ private compiler;
19
+ protected readonly scope: ParameterScope;
20
+ constructor(source: EntityQuery, root: ParameterExpression, target: ParameterExpression, compiler: QueryCompiler);
21
+ visitArray(e: Expression[], sep?: string): ITextQuery;
22
+ visitValuesStatement(e: ValuesStatement): ITextQuery;
23
+ visitTableLiteral(e: TableLiteral): ITextQuery;
24
+ visitSelectStatement(e: SelectStatement): ITextQuery;
25
+ prepareStatement(e: SelectStatement): void;
26
+ visitQuotedLiteral(e: QuotedLiteral): ITextQuery;
27
+ visitExpressionAs(e: ExpressionAs): ITextQuery;
28
+ visitConstant({ value }: Constant): ITextQuery;
29
+ visitBigIntLiteral({ value }: BigIntLiteral): ITextQuery;
30
+ visitNumberLiteral({ value }: NumberLiteral): ITextQuery;
31
+ visitStringLiteral({ value }: StringLiteral): ITextQuery;
32
+ visitBooleanLiteral({ value }: BooleanLiteral): ITextQuery;
33
+ visitTemplateLiteral(e: TemplateLiteral): ITextQuery;
34
+ visitCallExpression(e: CallExpression): ITextQuery;
35
+ visitIdentifier(e: Identifier): ITextQuery;
36
+ visitParameterExpression(pe: ParameterExpression): ITextQuery;
37
+ visitMemberExpression(me: MemberExpression): ITextQuery;
38
+ visitNullExpression(e: NullExpression): ITextQuery;
39
+ visitBinaryExpression(e: BinaryExpression): ITextQuery;
40
+ visitConditionalExpression(e: ConditionalExpression): ITextQuery;
41
+ visitCoalesceExpression(e: CoalesceExpression): ITextQuery;
42
+ visitReturnUpdated(e: ReturnUpdated): ITextQuery;
43
+ visitInsertStatement(e: InsertStatement): ITextQuery;
44
+ visitUpdateStatement(e: UpdateStatement): ITextQuery;
45
+ visitNewObjectExpression(e: NewObjectExpression): ITextQuery;
46
+ visitDeleteStatement(e: DeleteStatement): ITextQuery;
47
+ visitJoinExpression(e: JoinExpression): ITextQuery;
48
+ visitOrderByExpression(e: OrderByExpression): ITextQuery;
49
+ visitExistsExpression(e: ExistsExpression): ITextQuery;
50
+ /**
51
+ * This will also create and replace joins if query is provided.
52
+ * @param x MemberExpression
53
+ * @returns Property Chain
54
+ */
55
+ private getPropertyChain;
56
+ private flatten;
57
+ }
58
+ //# sourceMappingURL=ExpressionToSql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpressionToSql.d.ts","sourceRoot":"","sources":["../../../src/query/ast/ExpressionToSql.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAkB,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/f,OAAO,EAAE,UAAU,EAAwC,MAAM,yBAAyB,CAAC;AAC3F,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,OAAO,MAAM,cAAc,CAAC;AAQnC,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO,CAAC,UAAU,CAAC;IAKxD,OAAO,CAAC,MAAM;IACP,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,mBAAmB;IAClC,OAAO,CAAC,QAAQ;IANpB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAwB;gBAGpD,MAAM,EAAE,WAAW,EACpB,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,aAAa;IAanC,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,SAAM,GAAG,UAAU;IAMlD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IASpD,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU;IAO9C,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAkBpD,gBAAgB,CAAC,CAAC,EAAE,eAAe;IAmBnC,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,UAAU;IAIhD,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU;IAI9C,aAAa,CAAC,EAAC,KAAK,EAAC,EAAE,QAAQ,GAAG,UAAU;IAI5C,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,UAAU;IAIxD,kBAAkB,CAAE,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,UAAU;IAIzD,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,UAAU;IAKxD,mBAAmB,CAAE,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,UAAU;IAI3D,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAKpD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,UAAU;IA2GlD,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAK1C,wBAAwB,CAAC,EAAE,EAAE,mBAAmB,GAAG,UAAU;IAU7D,qBAAqB,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU;IA4BvD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,UAAU;IAIlD,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,UAAU;IAUtD,0BAA0B,CAAC,CAAC,EAAE,qBAAqB,GAAG,UAAU;IAQhE,uBAAuB,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU;IAM1D,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,UAAU;IAWhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAuBpD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAWpD,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU;IAI5D,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAMpD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,UAAU;IAYlD,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,GAAG,UAAU;IAUxD,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,UAAU;IAItD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,OAAO;CAuElB"}