@entity-access/entity-access 1.0.6 → 1.0.8

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 (351) 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
@@ -0,0 +1,161 @@
1
+ import { NotSupportedError } from "../parser/NotSupportedError.js";
2
+ export default class Visitor {
3
+ visit(e1) {
4
+ const e = e1;
5
+ switch (e.type) {
6
+ case "InsertStatement":
7
+ return this.visitInsertStatement(e);
8
+ case "Constant":
9
+ return this.visitConstant(e);
10
+ case "ExpressionAs":
11
+ return this.visitExpressionAs(e);
12
+ case "QuotedLiteral":
13
+ return this.visitQuotedLiteral(e);
14
+ case "SelectStatement":
15
+ return this.visitSelectStatement(e);
16
+ case "TableLiteral":
17
+ return this.visitTableLiteral(e);
18
+ case "ValuesStatement":
19
+ return this.visitValuesStatement(e);
20
+ case "BinaryExpression":
21
+ return this.visitBinaryExpression(e);
22
+ case "UpdateStatement":
23
+ return this.visitUpdateStatement(e);
24
+ case "DeleteStatement":
25
+ return this.visitDeleteStatement(e);
26
+ case "ReturnUpdated":
27
+ return this.visitReturnUpdated(e);
28
+ case "OrderByExpression":
29
+ return this.visitOrderByExpression(e);
30
+ case "JoinExpression":
31
+ return this.visitJoinExpression(e);
32
+ case "NullExpression":
33
+ return this.visitNullExpression(e);
34
+ case "BigIntLiteral":
35
+ return this.visitBigIntLiteral(e);
36
+ case "BooleanLiteral":
37
+ return this.visitBooleanLiteral(e);
38
+ case "NumberLiteral":
39
+ return this.visitNumberLiteral(e);
40
+ case "StringLiteral":
41
+ return this.visitStringLiteral(e);
42
+ case "TemplateLiteral":
43
+ return this.visitTemplateLiteral(e);
44
+ case "MemberExpression":
45
+ return this.visitMemberExpression(e);
46
+ case "CallExpression":
47
+ return this.visitCallExpression(e);
48
+ case "Identifier":
49
+ return this.visitIdentifier(e);
50
+ case "CoalesceExpression":
51
+ return this.visitCoalesceExpression(e);
52
+ case "ExistsExpression":
53
+ return this.visitExistsExpression(e);
54
+ case "ArrowFunctionExpression":
55
+ return this.visitArrowFunctionExpression(e);
56
+ case "ConditionalExpression":
57
+ return this.visitConditionalExpression(e);
58
+ case "NewObjectExpression":
59
+ return this.visitNewObjectExpression(e);
60
+ case "TemplateElement":
61
+ return this.visitTemplateElement(e);
62
+ case "ParameterExpression":
63
+ return this.visitParameterExpression(e);
64
+ case "ArrayExpression":
65
+ return this.visitArrayExpression(e);
66
+ }
67
+ const c = e;
68
+ throw new Error(`${e1.type} Not implemented`);
69
+ }
70
+ visitArrayExpression(e) {
71
+ throw new NotSupportedError("Array Expression");
72
+ }
73
+ visitParameterExpression(e) {
74
+ return;
75
+ }
76
+ visitTemplateElement(e) {
77
+ return;
78
+ }
79
+ visitNewObjectExpression(e) {
80
+ return;
81
+ }
82
+ visitConditionalExpression(e) {
83
+ return;
84
+ }
85
+ visitArrowFunctionExpression(e) {
86
+ return;
87
+ }
88
+ visitExistsExpression(e) {
89
+ return;
90
+ }
91
+ visitCoalesceExpression(e) {
92
+ return;
93
+ }
94
+ visitIdentifier(e) {
95
+ return;
96
+ }
97
+ visitCallExpression(e) {
98
+ return;
99
+ }
100
+ visitMemberExpression(e) {
101
+ return;
102
+ }
103
+ visitTemplateLiteral(e) {
104
+ return;
105
+ }
106
+ visitStringLiteral(e) {
107
+ return;
108
+ }
109
+ visitNumberLiteral(e) {
110
+ return;
111
+ }
112
+ visitBooleanLiteral(e) {
113
+ return;
114
+ }
115
+ visitBigIntLiteral(e) {
116
+ return;
117
+ }
118
+ visitNullExpression(e) {
119
+ return;
120
+ }
121
+ visitJoinExpression(e) {
122
+ return;
123
+ }
124
+ visitOrderByExpression(e) {
125
+ return;
126
+ }
127
+ visitReturnUpdated(e) {
128
+ return;
129
+ }
130
+ visitDeleteStatement(e) {
131
+ return;
132
+ }
133
+ visitUpdateStatement(e) {
134
+ return;
135
+ }
136
+ visitBinaryExpression(e) {
137
+ return;
138
+ }
139
+ visitValuesStatement(e) {
140
+ return;
141
+ }
142
+ visitTableLiteral(e) {
143
+ return;
144
+ }
145
+ visitSelectStatement(e) {
146
+ return;
147
+ }
148
+ visitQuotedLiteral(e) {
149
+ return;
150
+ }
151
+ visitExpressionAs(e) {
152
+ return;
153
+ }
154
+ visitConstant(e) {
155
+ return;
156
+ }
157
+ visitInsertStatement(e) {
158
+ return;
159
+ }
160
+ }
161
+ //# sourceMappingURL=Visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../../src/query/ast/Visitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import EntityType from "../../entity-query/EntityType.js";
2
+ import EntityContext from "../../model/EntityContext.js";
3
+ import { ExpressionType, SelectStatement } from "../ast/Expressions.js";
4
+ export declare class QueryExpander {
5
+ private context;
6
+ private select;
7
+ static expand(context: EntityContext, select: SelectStatement, p: any): SelectStatement;
8
+ constructor(context: EntityContext, select: SelectStatement);
9
+ expandNode(parent: SelectStatement, model: EntityType, node: ExpressionType): [SelectStatement, EntityType];
10
+ }
11
+ //# sourceMappingURL=QueryExpander.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryExpander.d.ts","sourceRoot":"","sources":["../../../src/query/expander/QueryExpander.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAyD,cAAc,EAAuC,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAIjL,qBAAa,aAAa;IASlB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IATlB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,KAAA;gBAQpD,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,eAAe;IAKnC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC;CA4H9G"}
@@ -0,0 +1,103 @@
1
+ import { ExistsExpression, Expression, JoinExpression } from "../ast/Expressions.js";
2
+ import ArrowToExpression from "../parser/ArrowToExpression.js";
3
+ import { NotSupportedError } from "../parser/NotSupportedError.js";
4
+ export class QueryExpander {
5
+ context;
6
+ select;
7
+ static expand(context, select, p) {
8
+ const qe = new QueryExpander(context, select);
9
+ const expression = ArrowToExpression.transform(`(_____________________x) => ${p}`);
10
+ qe.expandNode(select, select.model, expression.body);
11
+ return select;
12
+ }
13
+ constructor(context, select) {
14
+ this.context = context;
15
+ this.select = select;
16
+ }
17
+ expandNode(parent, model, node) {
18
+ if (node.type === "ArrayExpression") {
19
+ for (const iterator of node.elements) {
20
+ this.expandNode(parent, model, iterator);
21
+ }
22
+ return;
23
+ }
24
+ if (node.type === "CallExpression") {
25
+ const callee = node.callee;
26
+ if (callee.type !== "MemberExpression") {
27
+ throw new NotSupportedError(callee.type);
28
+ }
29
+ const property = callee.property;
30
+ if (property.type !== "Identifier") {
31
+ throw new NotSupportedError(property.type);
32
+ }
33
+ if (property.value !== "forEach") {
34
+ throw new NotSupportedError(property.value);
35
+ }
36
+ const [expandedSelect, expandedType] = this.expandNode(parent, model, callee.target);
37
+ const arrow = node.arguments[0];
38
+ if (!arrow || arrow.type !== "ArrowFunctionExpression") {
39
+ throw new NotSupportedError(arrow?.type ?? "Empty Expression");
40
+ }
41
+ this.expandNode(expandedSelect, expandedType, arrow.body);
42
+ return [expandedSelect, expandedType];
43
+ }
44
+ if (node.type !== "MemberExpression") {
45
+ throw new NotSupportedError(node.type);
46
+ }
47
+ const p = node.property;
48
+ if (p.type !== "Identifier") {
49
+ throw new NotSupportedError(p.type);
50
+ }
51
+ const target = node.target;
52
+ if (target.type === "MemberExpression") {
53
+ const [mepSelect, mepType] = this.expandNode(parent, model, target);
54
+ parent = mepSelect;
55
+ model = mepType;
56
+ }
57
+ const mp = model.getProperty(p.value);
58
+ if (!mp.relation) {
59
+ throw new NotSupportedError(`No relation found ${p.value} in ${model.name}`);
60
+ }
61
+ const { relation } = mp;
62
+ const { relatedTypeClass: propertyType } = relation;
63
+ let query = this.context.query(propertyType);
64
+ const events = this.context.eventsFor(propertyType, false);
65
+ if (events) {
66
+ query = events.includeFilter(query, model, p.value) ?? query;
67
+ }
68
+ const select = { ...query.selectStatement };
69
+ let where;
70
+ let joinWhere;
71
+ const fk = relation.fkColumn ?? relation.relatedRelation.fkColumn;
72
+ if (relation.isInverseRelation) {
73
+ joinWhere = Expression.equal(Expression.member(parent.as, Expression.quotedLiteral(fk.columnName)), Expression.member(select.as, Expression.quotedLiteral(model.keys[0].columnName)));
74
+ // load parent..
75
+ where = parent.where
76
+ ? Expression.logicalAnd(joinWhere, parent.where)
77
+ : joinWhere;
78
+ const joins = (select.joins ??= []);
79
+ joins.push(JoinExpression.create({
80
+ source: parent.source,
81
+ as: parent.as,
82
+ model,
83
+ where
84
+ }));
85
+ (this.select.include ??= []).push(select);
86
+ return [select, relation.relatedEntity];
87
+ }
88
+ joinWhere = Expression.equal(Expression.member(parent.as, Expression.quotedLiteral(fk.columnName)), Expression.member(select.as, Expression.quotedLiteral(relation.relatedEntity.keys[0].columnName)));
89
+ parent = { ...parent };
90
+ parent.where = parent.where
91
+ ? Expression.logicalAnd(parent.where, joinWhere)
92
+ : joinWhere;
93
+ const existsWhere = ExistsExpression.create({
94
+ target: parent
95
+ });
96
+ select.where = select.where
97
+ ? Expression.logicalAnd(select.where, existsWhere)
98
+ : existsWhere;
99
+ (this.select.include ??= []).push(select);
100
+ return [select, relation.relatedEntity];
101
+ }
102
+ }
103
+ //# sourceMappingURL=QueryExpander.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryExpander.js","sourceRoot":"","sources":["../../../src/query/expander/QueryExpander.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { BinaryExpression, CallExpression, Constant, Expression, MemberExpression, NullExpression, NumberLiteral, ParameterExpression, StringLiteral, TemplateLiteral } from "../ast/Expressions.js";
2
+ import { BabelVisitor } from "./BabelVisitor.js";
3
+ import * as bpe from "@babel/types";
4
+ export default class ArrowToExpression extends BabelVisitor<Expression> {
5
+ params: ParameterExpression[];
6
+ target: ParameterExpression;
7
+ static transform(fx: (p: any) => (x: any) => any, target?: ParameterExpression): {
8
+ params: ParameterExpression[];
9
+ target: ParameterExpression;
10
+ body: Expression;
11
+ };
12
+ private static transformUncached;
13
+ readonly leftJoins: string[];
14
+ private targetStack;
15
+ protected constructor(params: ParameterExpression[], target: ParameterExpression, targetName: string);
16
+ visitBigIntLiteral({ value }: bpe.BigIntLiteral): Constant;
17
+ visitBooleanLiteral({ value }: bpe.BooleanLiteral): Constant;
18
+ visitDecimalLiteral({ value }: bpe.DecimalLiteral): Constant;
19
+ visitNullLiteral(node: bpe.NullLiteral): NullExpression;
20
+ visitStringLiteral({ value }: bpe.StringLiteral): StringLiteral;
21
+ visitNumericLiteral({ value }: bpe.NumericLiteral): NumberLiteral;
22
+ visitTemplateLiteral(node: bpe.TemplateLiteral): TemplateLiteral;
23
+ visitTemplateElement(node: bpe.TemplateElement): Expression;
24
+ visitLogicalExpression(node: bpe.LogicalExpression): Expression;
25
+ visitArrayExpression(node: bpe.ArrayExpression): Expression;
26
+ visitBinaryExpression(node: bpe.BinaryExpression): BinaryExpression;
27
+ visitCallExpression({ callee, arguments: args }: bpe.CallExpression): CallExpression;
28
+ visitIdentifier({ name: value }: bpe.Identifier): Expression;
29
+ visitMemberExpression({ object, property: key, computed }: bpe.MemberExpression): MemberExpression;
30
+ visitArrowFunctionExpression(node: bpe.ArrowFunctionExpression): Expression;
31
+ visitObjectExpression(node: bpe.ObjectExpression): Expression;
32
+ visitConditionalExpression(node: bpe.ConditionalExpression): Expression;
33
+ private sanitize;
34
+ }
35
+ //# sourceMappingURL=ArrowToExpression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowToExpression.d.ts","sourceRoot":"","sources":["../../../src/query/parser/ArrowToExpression.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,gBAAgB,EAAE,cAAc,EAA6C,QAAQ,EAAE,UAAU,EAA4B,gBAAgB,EAAuB,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAiB,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvU,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AASpC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,YAAY,CAAC,UAAU,CAAC;IAqDxD,MAAM,EAAE,mBAAmB,EAAE;IAC7B,MAAM,EAAE,mBAAmB;WApDxB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE,mBAAmB;;;;;IASrF,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqChC,SAAgB,SAAS,EAAE,MAAM,EAAE,CAAM;IAEzC,OAAO,CAAC,WAAW,CAA2B;IAE9C,SAAS,aACE,MAAM,EAAE,mBAAmB,EAAE,EAC7B,MAAM,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM;IAetB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,aAAa;IAI/C,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,cAAc;IAIjD,mBAAmB,CAAE,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,cAAc;IAIlD,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW;IAItC,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,aAAa;IAI/C,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,cAAc;IAIjD,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe;IAe9C,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,UAAU;IAI3D,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB,GAAG,UAAU;IAiB/D,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,UAAU;IAI3D,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB;IA6BhD,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,cAAc;IAWnE,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,UAAU,GAAG,UAAU;IAQ5D,qBAAqB,CAAC,EAAE,MAAM,EAAG,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,gBAAgB;IAShF,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,uBAAuB,GAAG,UAAU;IAsB3E,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB,GAAG,UAAU;IAyB7D,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,qBAAqB,GAAG,UAAU;IAQvE,OAAO,CAAC,QAAQ;CAgBnB"}
@@ -0,0 +1,237 @@
1
+ import { parseExpression } from "@babel/parser";
2
+ import { ArrowFunctionExpression, BinaryExpression, CallExpression, CoalesceExpression, ConditionalExpression, Constant, Expression, ExpressionAs, Identifier, MemberExpression, NewObjectExpression, NullExpression, NumberLiteral, ParameterExpression, QuotedLiteral, StringLiteral, TemplateLiteral } from "../ast/Expressions.js";
3
+ import { BabelVisitor } from "./BabelVisitor.js";
4
+ import Restructure from "./Restructure.js";
5
+ import { NotSupportedError } from "./NotSupportedError.js";
6
+ import TimedCache from "../../common/cache/TimedCache.js";
7
+ const parsedCache = new TimedCache();
8
+ export default class ArrowToExpression extends BabelVisitor {
9
+ params;
10
+ target;
11
+ static transform(fx, target) {
12
+ const key = fx.toString();
13
+ const node = parsedCache.getOrCreate(key, fx, (k, f) => {
14
+ const rs = new Restructure();
15
+ return rs.visit(parseExpression(f.toString()));
16
+ });
17
+ return this.transformUncached(node, target);
18
+ }
19
+ static transformUncached(node, target) {
20
+ if (node.type !== "ArrowFunctionExpression") {
21
+ throw new Error("Expecting an arrow function");
22
+ }
23
+ const params = [];
24
+ for (const iterator of node.params) {
25
+ if (iterator.type !== "Identifier") {
26
+ throw new Error("Expecting an identifier");
27
+ }
28
+ params.push(ParameterExpression.create({ name: iterator.name }));
29
+ }
30
+ let body = node.body;
31
+ if (body.type !== "ArrowFunctionExpression") {
32
+ throw new Error("Expecting an arrow function");
33
+ }
34
+ const firstTarget = body.params[0];
35
+ if (firstTarget.type !== "Identifier") {
36
+ throw new Error("Expecting an identifier");
37
+ }
38
+ target ??= ParameterExpression.create({ name: firstTarget.name });
39
+ body = body.body;
40
+ const visitor = new this(params, target, firstTarget.name);
41
+ return {
42
+ params,
43
+ target,
44
+ body: visitor.visit(body)
45
+ };
46
+ }
47
+ leftJoins = [];
48
+ targetStack = new Map();
49
+ constructor(params, target, targetName) {
50
+ super();
51
+ this.params = params;
52
+ this.target = target;
53
+ this.targetStack.set("Sql", "Sql");
54
+ for (const iterator of params) {
55
+ this.targetStack.set(iterator.name, iterator);
56
+ }
57
+ if (targetName) {
58
+ this.targetStack.set(targetName, target);
59
+ }
60
+ if (target?.name) {
61
+ this.targetStack.set(target.name, target);
62
+ }
63
+ }
64
+ visitBigIntLiteral({ value }) {
65
+ return Constant.create({ value });
66
+ }
67
+ visitBooleanLiteral({ value }) {
68
+ return Constant.create({ value });
69
+ }
70
+ visitDecimalLiteral({ value }) {
71
+ return Constant.create({ value });
72
+ }
73
+ visitNullLiteral(node) {
74
+ return NullExpression.create({});
75
+ }
76
+ visitStringLiteral({ value }) {
77
+ return StringLiteral.create({ value });
78
+ }
79
+ visitNumericLiteral({ value }) {
80
+ return NumberLiteral.create({ value });
81
+ }
82
+ visitTemplateLiteral(node) {
83
+ // const value = node.expressions.map((x) => this.visit(x));
84
+ const value = [];
85
+ for (let index = 0; index < node.quasis.length; index++) {
86
+ const { value: { cooked } } = node.quasis[index];
87
+ if (cooked) {
88
+ value.push(StringLiteral.create({ value: cooked }));
89
+ }
90
+ if (index < node.expressions.length) {
91
+ value.push(this.visit(node.expressions[index]));
92
+ }
93
+ }
94
+ return TemplateLiteral.create({ value });
95
+ }
96
+ visitTemplateElement(node) {
97
+ throw new NotSupportedError();
98
+ }
99
+ visitLogicalExpression(node) {
100
+ const left = this.visit(node.left);
101
+ const right = this.visit(node.right);
102
+ let operator = node.operator;
103
+ switch (node.operator) {
104
+ case "&&":
105
+ operator = "AND";
106
+ break;
107
+ case "||":
108
+ operator = "OR";
109
+ break;
110
+ case "??":
111
+ return CoalesceExpression.create({ left, right });
112
+ }
113
+ return BinaryExpression.create({ left, operator, right });
114
+ }
115
+ visitArrayExpression(node) {
116
+ return Expression.array(node.elements.map((e) => this.visit(e)));
117
+ }
118
+ visitBinaryExpression(node) {
119
+ let operator = node.operator;
120
+ switch (node.operator) {
121
+ case "!=":
122
+ case "!==":
123
+ operator = "<>";
124
+ break;
125
+ case "<":
126
+ case ">":
127
+ case "*":
128
+ case "%":
129
+ case "/":
130
+ case "+":
131
+ case "-":
132
+ case ">=":
133
+ case "<=":
134
+ break;
135
+ case "==":
136
+ case "===":
137
+ operator = "=";
138
+ break;
139
+ default:
140
+ throw new NotSupportedError(`Operator ${operator}`);
141
+ }
142
+ const left = this.visit(node.left);
143
+ const right = this.visit(node.right);
144
+ return BinaryExpression.create({ left, operator, right });
145
+ }
146
+ visitCallExpression({ callee, arguments: args }) {
147
+ // we need to sanitize callee
148
+ this.sanitize(callee);
149
+ return CallExpression.create({
150
+ callee: callee ? this.visit(callee) : void 0,
151
+ arguments: args ? args.map((x) => this.visit(x)) : []
152
+ });
153
+ }
154
+ visitIdentifier({ name: value }) {
155
+ const scopedName = this.targetStack.get(value);
156
+ if (typeof scopedName === "object") {
157
+ return scopedName;
158
+ }
159
+ return Identifier.create({ value });
160
+ }
161
+ visitMemberExpression({ object, property: key, computed }) {
162
+ const property = this.visit(key);
163
+ return MemberExpression.create({
164
+ target: this.visit(object),
165
+ property,
166
+ computed
167
+ });
168
+ }
169
+ visitArrowFunctionExpression(node) {
170
+ const params = [];
171
+ const names = [];
172
+ for (const iterator of node.params) {
173
+ if (iterator.type !== "Identifier") {
174
+ throw new NotSupportedError();
175
+ }
176
+ names.push(iterator.name);
177
+ const p = ParameterExpression.create({ name: iterator.name });
178
+ this.targetStack.set(iterator.name, p);
179
+ params.push(p);
180
+ }
181
+ const body = this.visit(node.body);
182
+ for (const name of names) {
183
+ this.targetStack.delete(name);
184
+ }
185
+ return ArrowFunctionExpression.create({
186
+ params,
187
+ body
188
+ });
189
+ }
190
+ visitObjectExpression(node) {
191
+ const properties = [];
192
+ for (const iterator of node.properties) {
193
+ switch (iterator.type) {
194
+ case "ObjectProperty":
195
+ switch (iterator.key.type) {
196
+ case "Identifier":
197
+ properties.push(ExpressionAs.create({
198
+ alias: QuotedLiteral.create({ literal: iterator.key.name }),
199
+ expression: this.visit(iterator.value)
200
+ }));
201
+ break;
202
+ default:
203
+ throw new NotSupportedError();
204
+ }
205
+ continue;
206
+ default:
207
+ throw new NotSupportedError();
208
+ }
209
+ }
210
+ return NewObjectExpression.create({
211
+ properties
212
+ });
213
+ }
214
+ visitConditionalExpression(node) {
215
+ return ConditionalExpression.create({
216
+ test: this.visit(node.test),
217
+ consequent: this.visit(node.consequent),
218
+ alternate: this.visit(node.alternate)
219
+ });
220
+ }
221
+ sanitize(node) {
222
+ switch (node.type) {
223
+ case "Identifier":
224
+ const name = node.name;
225
+ const scopedName = this.targetStack.get(name);
226
+ if (scopedName === null || scopedName === void 0) {
227
+ throw new Error(`Unknown identifier ${name}`);
228
+ }
229
+ return;
230
+ case "MemberExpression":
231
+ case "OptionalMemberExpression":
232
+ return this.sanitize(node.object);
233
+ }
234
+ throw new Error(`Unexpected expression type ${node.type}`);
235
+ }
236
+ }
237
+ //# sourceMappingURL=ArrowToExpression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowToExpression.js","sourceRoot":"","sources":["../../../src/query/parser/ArrowToExpression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import * as bpe from "@babel/types";
2
+ export declare abstract class BabelVisitor<T> {
3
+ visit(node: bpe.Expression | bpe.Node): T;
4
+ visitArrayExpression(node: bpe.ArrayExpression): T;
5
+ abstract visitTemplateElement(node: bpe.TemplateElement): T;
6
+ visitObjectProperty(node: bpe.ObjectProperty): T;
7
+ abstract visitObjectExpression(node: bpe.ObjectExpression): T;
8
+ abstract visitMemberExpression(node: bpe.MemberExpression): T;
9
+ abstract visitLogicalExpression(node: bpe.LogicalExpression): T;
10
+ abstract visitIdentifier(node: bpe.Identifier): T;
11
+ abstract visitTemplateLiteral(node: bpe.TemplateLiteral): T;
12
+ abstract visitNumericLiteral(node: bpe.NumericLiteral): T;
13
+ abstract visitDecimalLiteral(node: bpe.DecimalLiteral): T;
14
+ abstract visitBooleanLiteral(node: bpe.BooleanLiteral): T;
15
+ abstract visitBigIntLiteral(node: bpe.BigIntLiteral): T;
16
+ abstract visitStringLiteral(node: bpe.StringLiteral): T;
17
+ abstract visitNullLiteral(node: bpe.NullLiteral): T;
18
+ abstract visitConditionalExpression(node: bpe.ConditionalExpression): T;
19
+ abstract visitArrowFunctionExpression(node: bpe.ArrowFunctionExpression): T;
20
+ abstract visitCallExpression(node: bpe.CallExpression): T;
21
+ abstract visitBinaryExpression(node: bpe.BinaryExpression): T;
22
+ }
23
+ //# sourceMappingURL=BabelVisitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BabelVisitor.d.ts","sourceRoot":"","sources":["../../../src/query/parser/BabelVisitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,8BAAsB,YAAY,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;IA4CzC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,CAAC;IAGlD,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,CAAC;IAC3D,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,CAAC;IAGhD,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB,GAAG,CAAC;IAC7D,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB,GAAG,CAAC;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB,GAAG,CAAC;IAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC;IACjD,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,CAAC;IAC3D,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,CAAC;IACzD,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,CAAC;IACzD,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,CAAC;IACzD,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC;IACvD,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,GAAG,CAAC;IACnD,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,qBAAqB,GAAG,CAAC;IAEvE,QAAQ,CAAC,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,uBAAuB,GAAG,CAAC;IAE3E,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,CAAC;IAEzD,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB,GAAG,CAAC;CAChE"}