@entity-access/entity-access 1.0.7 → 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,136 @@
1
+ import { privateUpdateEntry } from "./ChangeSet.js";
2
+ export default class ChangeEntry {
3
+ type;
4
+ entity;
5
+ order;
6
+ original;
7
+ status;
8
+ modified;
9
+ changeSet;
10
+ pending;
11
+ dependents;
12
+ constructor(p, changeSet) {
13
+ Object.setPrototypeOf(p, ChangeEntry.prototype);
14
+ const ce = p;
15
+ ce.changeSet = changeSet;
16
+ ce.pending = [];
17
+ ce.dependents = [];
18
+ ce.modified = new Map();
19
+ return ce;
20
+ }
21
+ detect() {
22
+ if (this.status === "deleted") {
23
+ return;
24
+ }
25
+ const { type: { columns }, entity, original } = this;
26
+ if (original === void 0) {
27
+ this.status = "inserted";
28
+ this.detectDependencies();
29
+ return;
30
+ }
31
+ this.detectDependencies();
32
+ for (const iterator of columns) {
33
+ const oldValue = original[iterator.columnName];
34
+ const newValue = entity[iterator.name];
35
+ if (entity[iterator.name] !== original[iterator.columnName]) {
36
+ let modifiedEntry = this.modified.get(iterator);
37
+ if (!modifiedEntry) {
38
+ modifiedEntry = { column: iterator, oldValue, newValue };
39
+ this.modified.set(iterator, modifiedEntry);
40
+ }
41
+ }
42
+ }
43
+ if (this.modified.size > 0) {
44
+ this.status = "modified";
45
+ }
46
+ else {
47
+ this.status = "unchanged";
48
+ }
49
+ }
50
+ apply(dbValues) {
51
+ // apply values to main entity
52
+ // set status to unchanged
53
+ if (this.status === "deleted") {
54
+ // remove...
55
+ for (const iterator of this.pending) {
56
+ iterator();
57
+ }
58
+ this.changeSet[privateUpdateEntry](this);
59
+ return;
60
+ }
61
+ // we will only apply the columns defined
62
+ if (dbValues !== void 0) {
63
+ for (const iterator of this.type.columns) {
64
+ const dbValue = dbValues[iterator.columnName];
65
+ if (dbValue !== void 0) {
66
+ this.entity[iterator.name] = dbValues[iterator.columnName];
67
+ }
68
+ }
69
+ }
70
+ for (const iterator of this.pending) {
71
+ iterator();
72
+ }
73
+ // we will set the identity key
74
+ this.changeSet[privateUpdateEntry](this);
75
+ this.pending.length = 0;
76
+ this.original = { ...this.entity };
77
+ this.status = "unchanged";
78
+ this.modified.clear();
79
+ }
80
+ detectDependencies() {
81
+ const { type: { relations }, entity } = this;
82
+ // for parent relations.. check if related key is set or not...
83
+ for (const iterator of relations) {
84
+ if (iterator.isInverseRelation) {
85
+ continue;
86
+ }
87
+ // get related entry..
88
+ const related = entity[iterator.name];
89
+ if (!related) {
90
+ continue;
91
+ }
92
+ // if related has key defined.. set it...
93
+ const rKey = iterator.relatedEntity.keys[0];
94
+ const relatedChanges = this.changeSet.getEntry(related);
95
+ const keyValue = related[rKey.name];
96
+ if (keyValue === void 0) {
97
+ relatedChanges.dependents.push(this);
98
+ this.order++;
99
+ for (const d of this.dependents) {
100
+ d.order++;
101
+ }
102
+ const fk = iterator;
103
+ relatedChanges.pending.push(() => {
104
+ this.entity[fk.fkColumn.name] = related[rKey.name];
105
+ });
106
+ this.modified.set(iterator, { column: iterator.fkColumn, oldValue: void 0, newValue: void 0 });
107
+ continue;
108
+ }
109
+ this.entity[iterator.fkColumn.name] = related[rKey.name];
110
+ }
111
+ }
112
+ setupInverseProperties() {
113
+ const deleted = this.status === "deleted";
114
+ for (const iterator of this.type.relations) {
115
+ if (!iterator.isInverseRelation) {
116
+ continue;
117
+ }
118
+ const { relatedName } = iterator;
119
+ const related = this.entity[iterator.name];
120
+ if (related === void 0) {
121
+ continue;
122
+ }
123
+ if (Array.isArray(related)) {
124
+ for (const r of related) {
125
+ r[iterator.relatedName] = this.entity;
126
+ }
127
+ continue;
128
+ }
129
+ related[relatedName] = this.entity;
130
+ if (deleted) {
131
+ this.pending.push(() => delete related[relatedName]);
132
+ }
133
+ }
134
+ }
135
+ }
136
+ //# sourceMappingURL=ChangeEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangeEntry.js","sourceRoot":"","sources":["../../../src/model/changes/ChangeEntry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import EntityContext from "../EntityContext.js";
2
+ import { identityMapSymbol } from "../identity/IdentityService.js";
3
+ import ChangeEntry from "./ChangeEntry.js";
4
+ export declare const privateUpdateEntry: unique symbol;
5
+ export default class ChangeSet {
6
+ private context;
7
+ readonly entries: ChangeEntry[];
8
+ get [identityMapSymbol](): Map<string, ChangeEntry>;
9
+ private entryMap;
10
+ /**
11
+ * This will provide new entity for same key
12
+ */
13
+ private identityMap;
14
+ private nextId;
15
+ constructor(context: EntityContext);
16
+ [privateUpdateEntry](entry: ChangeEntry): void;
17
+ getEntry(entity: any, original?: any): ChangeEntry;
18
+ /**
19
+ * Detect changes will detect and sort the entries as they should be inserted.
20
+ */
21
+ detectChanges(): void;
22
+ }
23
+ //# sourceMappingURL=ChangeSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangeSet.d.ts","sourceRoot":"","sources":["../../../src/model/changes/ChangeSet.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAwB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,eAAO,MAAM,kBAAkB,eAAwB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,SAAS;IAiBd,OAAO,CAAC,OAAO;IAf3B,SAAgB,OAAO,EAAE,WAAW,EAAE,CAAM;IAE5C,IAAI,CAAC,iBAAiB,CAAC,6BAEtB;IAED,OAAO,CAAC,QAAQ,CAAoC;IAEpD;;OAEG;IACH,OAAO,CAAC,WAAW,CAAsC;IAEzD,OAAO,CAAC,MAAM,CAAK;gBAEC,OAAO,EAAE,aAAa;IAI1C,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,WAAW;IAgBhC,QAAQ,CAAC,MAAM,KAAA,EAAE,QAAQ,MAAS,GAAG,WAAW;IA+BvD;;OAEG;IACI,aAAa;CAcvB"}
@@ -0,0 +1,79 @@
1
+ import SchemaRegistry from "../../decorators/SchemaRegistry.js";
2
+ import IdentityService, { identityMapSymbol } from "../identity/IdentityService.js";
3
+ import ChangeEntry from "./ChangeEntry.js";
4
+ export const privateUpdateEntry = Symbol("updateEntry");
5
+ export default class ChangeSet {
6
+ context;
7
+ entries = [];
8
+ get [identityMapSymbol]() {
9
+ return this.identityMap;
10
+ }
11
+ entryMap = new Map();
12
+ /**
13
+ * This will provide new entity for same key
14
+ */
15
+ identityMap = new Map();
16
+ nextId = 1;
17
+ constructor(context) {
18
+ this.context = context;
19
+ }
20
+ [privateUpdateEntry](entry) {
21
+ const jsonKey = IdentityService.getIdentity(entry.entity);
22
+ if (jsonKey) {
23
+ if (entry.status === "deleted") {
24
+ this.identityMap.delete(jsonKey);
25
+ const index = this.entries.indexOf(entry);
26
+ if (index !== -1) {
27
+ this.entries.splice(index, 1);
28
+ }
29
+ this.entryMap.delete(entry.entity);
30
+ return;
31
+ }
32
+ this.identityMap.set(jsonKey, entry.entity);
33
+ }
34
+ }
35
+ getEntry(entity, original = void 0) {
36
+ let entry = this.entryMap.get(entity);
37
+ if (entry) {
38
+ return entry;
39
+ }
40
+ const type = SchemaRegistry.model(Object.getPrototypeOf(entity).constructor);
41
+ const jsonKey = IdentityService.getIdentity(entity);
42
+ if (jsonKey) {
43
+ const existing = this.identityMap.get(jsonKey);
44
+ if (existing) {
45
+ entity = existing;
46
+ entry = this.entryMap.get(entity);
47
+ if (entry) {
48
+ return entry;
49
+ }
50
+ }
51
+ else {
52
+ this.identityMap.set(jsonKey, entity);
53
+ }
54
+ }
55
+ entry = new ChangeEntry({
56
+ type,
57
+ entity,
58
+ order: 0,
59
+ original: original ? { ...original } : void 0,
60
+ status: "unchanged"
61
+ }, this);
62
+ this.entries.push(entry);
63
+ this.entryMap.set(entity, entry);
64
+ return entry;
65
+ }
66
+ /**
67
+ * Detect changes will detect and sort the entries as they should be inserted.
68
+ */
69
+ detectChanges() {
70
+ for (const iterator of this.entries) {
71
+ iterator.setupInverseProperties();
72
+ }
73
+ for (const iterator of this.entries) {
74
+ iterator.detect();
75
+ }
76
+ this.entries.sort((a, b) => a.order - b.order);
77
+ }
78
+ }
79
+ //# sourceMappingURL=ChangeSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangeSet.js","sourceRoot":"","sources":["../../../src/model/changes/ChangeSet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IClassOf } from "../../decorators/IClassOf.js";
2
+ import type EntityEvents from "./EntityEvents.js";
3
+ export default class ContextEvents {
4
+ private map;
5
+ for<T>(type: IClassOf<T>, fail?: boolean): IClassOf<EntityEvents<T>>;
6
+ register<T>(type: IClassOf<T>, events: IClassOf<EntityEvents<T>>): void;
7
+ }
8
+ //# sourceMappingURL=ContextEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextEvents.d.ts","sourceRoot":"","sources":["../../../src/model/events/ContextEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIxD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,GAAG,CAAoD;IAExD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,UAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAWjE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAI1E"}
@@ -0,0 +1,18 @@
1
+ import { NotSupportedError } from "../../query/parser/NotSupportedError.js";
2
+ export default class ContextEvents {
3
+ map = new Map();
4
+ for(type, fail = true) {
5
+ const typeClass = this.map.get(type);
6
+ if (!typeClass) {
7
+ if (fail) {
8
+ throw new NotSupportedError();
9
+ }
10
+ return null;
11
+ }
12
+ return typeClass;
13
+ }
14
+ register(type, events) {
15
+ this.map.set(type, events);
16
+ }
17
+ }
18
+ //# sourceMappingURL=ContextEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextEvents.js","sourceRoot":"","sources":["../../../src/model/events/ContextEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAI5E,MAAM,CAAC,OAAO,OAAO,aAAa;IAEtB,GAAG,GAA0C,IAAI,GAAG,EAAE,CAAC;IAExD,GAAG,CAAI,IAAiB,EAAE,IAAI,GAAG,IAAI;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,IAAI,EAAE;gBACN,MAAM,IAAI,iBAAiB,EAAE,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAI,IAAiB,EAAE,MAAiC;QACnE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;CAEJ"}
@@ -0,0 +1,34 @@
1
+ import type EntityType from "../../entity-query/EntityType.js";
2
+ import type EntityContext from "../EntityContext.js";
3
+ import { IEntityQuery } from "../IFilterWithParameter.js";
4
+ import ChangeEntry from "../changes/ChangeEntry.js";
5
+ export declare class ForeignKeyFilter<T = any, TE = any> {
6
+ type: EntityType;
7
+ name: string;
8
+ fkName: string;
9
+ private events;
10
+ private context;
11
+ constructor(p: Partial<ForeignKeyFilter> & {
12
+ context: EntityContext;
13
+ events: EntityEvents<any>;
14
+ });
15
+ is<TR>(fx: (x: T) => TR): this is ForeignKeyFilter<T, TR> & boolean;
16
+ read(): IEntityQuery<TE>;
17
+ unfiltered(): IEntityQuery<TE>;
18
+ modify(): IEntityQuery<TE>;
19
+ }
20
+ export default abstract class EntityEvents<T> {
21
+ filter(query: IEntityQuery<T>): IEntityQuery<T>;
22
+ includeFilter(query: IEntityQuery<T>, type?: any, key?: string): IEntityQuery<T>;
23
+ modify(query: IEntityQuery<T>): IEntityQuery<T>;
24
+ delete(query: IEntityQuery<T>): IEntityQuery<T>;
25
+ beforeInsert(entity: T, entry: ChangeEntry): Promise<void>;
26
+ onForeignKeyFilter(filter: ForeignKeyFilter<T>): IEntityQuery<any>;
27
+ afterInsert(entity: T, entry: ChangeEntry): Promise<void>;
28
+ beforeUpdate(entity: T, entry: ChangeEntry): Promise<void>;
29
+ afterUpdate(entity: T, entry: ChangeEntry): Promise<void>;
30
+ beforeDelete(entity: T, entry: ChangeEntry): Promise<void>;
31
+ afterDelete(entity: T, entry: ChangeEntry): Promise<void>;
32
+ beforeJson(entity: T): T;
33
+ }
34
+ //# sourceMappingURL=EntityEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityEvents.d.ts","sourceRoot":"","sources":["../../../src/model/events/EntityEvents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAM,UAAU,MAAM,kCAAkC,CAAC;AAChE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,WAAW,MAAM,2BAA2B,CAAC;AAIpD,qBAAa,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG;IAEpC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAgB;gBAEnB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG;QAAE,OAAO,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;KAAE;IAKzF,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;IAKnE,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC;IAKxB,UAAU,IAAI,YAAY,CAAC,EAAE,CAAC;IAI9B,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC;CAIpC;AAGD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,YAAY,CAAC,CAAC;IAExC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAI7B,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAI9D,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAI7B,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAI7B,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAI1C,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAI9C,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAIzC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAI1C,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAIzC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAI1C,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAIzC,UAAU,CAAC,MAAM,EAAE,CAAC;CAIvB"}
@@ -0,0 +1,67 @@
1
+ import NameParser from "../../decorators/parser/NameParser.js";
2
+ const done = Promise.resolve();
3
+ export class ForeignKeyFilter {
4
+ type;
5
+ name;
6
+ fkName;
7
+ events;
8
+ context;
9
+ constructor(p) {
10
+ Object.setPrototypeOf(p, ForeignKeyFilter.prototype);
11
+ return p;
12
+ }
13
+ is(fx) {
14
+ const name = NameParser.parseMember(fx);
15
+ return name === this.fkName || name === this.name;
16
+ }
17
+ read() {
18
+ const read = this.context.query(this.type.typeClass);
19
+ return this.events.filter(read);
20
+ }
21
+ unfiltered() {
22
+ return this.context.query(this.type.typeClass);
23
+ }
24
+ modify() {
25
+ const read = this.context.query(this.type.typeClass);
26
+ return this.events.modify(read);
27
+ }
28
+ }
29
+ export default class EntityEvents {
30
+ filter(query) {
31
+ return query;
32
+ }
33
+ includeFilter(query, type, key) {
34
+ return this.filter(query);
35
+ }
36
+ modify(query) {
37
+ return this.filter(query);
38
+ }
39
+ delete(query) {
40
+ return this.modify(query);
41
+ }
42
+ beforeInsert(entity, entry) {
43
+ return done;
44
+ }
45
+ onForeignKeyFilter(filter) {
46
+ return filter.modify();
47
+ }
48
+ afterInsert(entity, entry) {
49
+ return done;
50
+ }
51
+ beforeUpdate(entity, entry) {
52
+ return done;
53
+ }
54
+ afterUpdate(entity, entry) {
55
+ return done;
56
+ }
57
+ beforeDelete(entity, entry) {
58
+ return done;
59
+ }
60
+ afterDelete(entity, entry) {
61
+ return done;
62
+ }
63
+ beforeJson(entity) {
64
+ return entity;
65
+ }
66
+ }
67
+ //# sourceMappingURL=EntityEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityEvents.js","sourceRoot":"","sources":["../../../src/model/events/EntityEvents.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,uCAAuC,CAAC;AAO/D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAmB,CAAC;AAEhD,MAAM,OAAO,gBAAgB;IAElB,IAAI,CAAa;IACjB,IAAI,CAAS;IACb,MAAM,CAAS;IAEd,MAAM,CAAmB;IACzB,OAAO,CAAgB;IAE/B,YAAY,CAAoF;QAC5F,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,CAA4B,CAAC;IACxC,CAAC;IAEM,EAAE,CAAK,EAAgB;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACtD,CAAC;IAEM,IAAI;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACJ;AAGD,MAAM,CAAC,OAAO,OAAgB,YAAY;IAEtC,MAAM,CAAC,KAAsB;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,KAAsB,EAAE,IAAU,EAAE,GAAY;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAsB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAsB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,MAAS,EAAE,KAAkB;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,MAA2B;QAC1C,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,MAAS,EAAE,KAAkB;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,MAAS,EAAE,KAAkB;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,MAAS,EAAE,KAAkB;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,MAAS,EAAE,KAAkB;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,MAAS,EAAE,KAAkB;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAS;QAChB,OAAO,MAAM,CAAC;IAClB,CAAC;CAEJ"}
@@ -0,0 +1,7 @@
1
+ import type EntityType from "../../entity-query/EntityType.js";
2
+ export declare const identityMapSymbol: unique symbol;
3
+ export default class IdentityService {
4
+ static buildIdentity(model: EntityType, ...keys: any[]): string;
5
+ static getIdentity(entity: any): string;
6
+ }
7
+ //# sourceMappingURL=IdentityService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityService.d.ts","sourceRoot":"","sources":["../../../src/model/identity/IdentityService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,eAAe;WAElB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAI,IAAI,EAAE,GAAG,EAAE;WAKhD,WAAW,CAAC,MAAM,KAAA;CAkBnC"}
@@ -0,0 +1,25 @@
1
+ import SchemaRegistry from "../../decorators/SchemaRegistry.js";
2
+ export const identityMapSymbol = Symbol("identityMapSymbol");
3
+ export default class IdentityService {
4
+ static buildIdentity(model, ...keys) {
5
+ const type = model.name;
6
+ return JSON.stringify({ type, keys });
7
+ }
8
+ static getIdentity(entity) {
9
+ const entityType = SchemaRegistry.model(Object.getPrototypeOf(entity).constructor);
10
+ const keys = [];
11
+ for (const iterator of entityType.keys) {
12
+ const key = entity[iterator.name];
13
+ if (key === void 0) {
14
+ break;
15
+ }
16
+ keys.push(key);
17
+ }
18
+ if (keys.length !== entityType.keys.length) {
19
+ return;
20
+ }
21
+ const type = entityType.name;
22
+ return JSON.stringify({ type, keys });
23
+ }
24
+ }
25
+ //# sourceMappingURL=IdentityService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityService.js","sourceRoot":"","sources":["../../../src/model/identity/IdentityService.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAGhE,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,eAAe;IAEzB,MAAM,CAAC,aAAa,CAAC,KAAiB,EAAE,GAAI,IAAW;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAM;QAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,IAAG,GAAG,KAAK,KAAK,CAAC,EAAE;gBACf,MAAM;aACT;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;YACxC,OAAO;SACV;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;CAEJ"}
@@ -0,0 +1,11 @@
1
+ import type ChangeEntry from "../changes/ChangeEntry.js";
2
+ import type ChangeSet from "../changes/ChangeSet.js";
3
+ export default class RelationMapper {
4
+ private changeSet;
5
+ private identityMap;
6
+ private map;
7
+ constructor(changeSet: ChangeSet, identityMap?: Map<string, ChangeEntry>);
8
+ push(id: string, waiter: ChangeEntry): void;
9
+ fix(entry: ChangeEntry, nest?: boolean): void;
10
+ }
11
+ //# sourceMappingURL=RelationMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelationMapper.d.ts","sourceRoot":"","sources":["../../../src/model/identity/RelationMapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,cAAc;IAK3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IAJvB,OAAO,CAAC,GAAG,CAAyC;gBAGxC,SAAS,EAAE,SAAS,EACpB,WAAW,GAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAgC;IAKhF,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IASpC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,UAAO;CA8CtC"}
@@ -0,0 +1,61 @@
1
+ import IdentityService, { identityMapSymbol } from "./IdentityService.js";
2
+ export default class RelationMapper {
3
+ changeSet;
4
+ identityMap;
5
+ map = new Map();
6
+ constructor(changeSet, identityMap = changeSet[identityMapSymbol]) {
7
+ this.changeSet = changeSet;
8
+ this.identityMap = identityMap;
9
+ }
10
+ push(id, waiter) {
11
+ let queue = this.map.get(id);
12
+ if (!queue) {
13
+ queue = [];
14
+ this.map.set(id, queue);
15
+ }
16
+ queue.push(waiter);
17
+ }
18
+ fix(entry, nest = true) {
19
+ // find all parents...
20
+ const { type, entity } = entry;
21
+ for (const iterator of type.relations) {
22
+ if (iterator.isInverseRelation) {
23
+ continue;
24
+ }
25
+ const fkColumn = iterator.fkColumn.name;
26
+ const fkValue = entity[fkColumn];
27
+ if (fkValue === void 0) {
28
+ continue;
29
+ }
30
+ // get from identity...
31
+ const id = IdentityService.buildIdentity(iterator.relatedEntity, fkValue);
32
+ const parent = this.identityMap.get(id);
33
+ if (!parent) {
34
+ let waiters = this.map.get(id);
35
+ if (!waiters) {
36
+ waiters = [];
37
+ this.map.set(id, waiters);
38
+ }
39
+ waiters.push(entry);
40
+ continue;
41
+ }
42
+ entity[iterator.name] = parent;
43
+ const coll = (parent[iterator.relatedRelation.name] ??= []);
44
+ if (!coll.includes(entity)) {
45
+ coll.push(entity);
46
+ }
47
+ }
48
+ if (!nest) {
49
+ return;
50
+ }
51
+ // see if anyone is waiting for us or not...
52
+ const identity = IdentityService.getIdentity(entry.entity);
53
+ const pending = this.map.get(identity);
54
+ if (pending && pending.length) {
55
+ for (const iterator of pending) {
56
+ this.fix(iterator, false);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ //# sourceMappingURL=RelationMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelationMapper.js","sourceRoot":"","sources":["../../../src/model/identity/RelationMapper.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,EAAE,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAc;IAKnB;IACA;IAJJ,GAAG,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEpD,YACY,SAAoB,EACpB,cAAwC,SAAS,CAAC,iBAAiB,CAAC;QADpE,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAyD;IAGhF,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,MAAmB;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SAC3B;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,KAAkB,EAAE,IAAI,GAAG,IAAI;QAE/B,sBAAsB;QACtB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACnC,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gBAC5B,SAAS;aACZ;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE;gBACpB,SAAS;aACZ;YACD,uBAAuB;YACvB,MAAM,EAAE,GAAG,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE;gBACT,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBAC7B;gBACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,SAAS;aACZ;YACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YAE/B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAU,CAAC;YACrE,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;SACJ;QAED,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAC3B,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC7B;SACJ;IACL,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare const existsQuery: unique symbol;
2
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/model/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,eAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const existsQuery = Symbol("existsQuery");
2
+ //# sourceMappingURL=symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/model/symbols.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { IEntityRelation } from "../../decorators/IColumn.js";
2
+ import { Expression } from "../../query/ast/Expressions.js";
3
+ import EntityContext from "../EntityContext.js";
4
+ import EntityQuery from "../EntityQuery.js";
5
+ import ChangeEntry from "../changes/ChangeEntry.js";
6
+ import EntityEvents from "../events/EntityEvents.js";
7
+ type KeyValueArray = [string, any][];
8
+ export default class VerificationSession {
9
+ private context;
10
+ private select;
11
+ private field;
12
+ constructor(context: EntityContext);
13
+ queueVerification(change: ChangeEntry, events: EntityEvents<any>): void;
14
+ queueEntityForeignKey(change: ChangeEntry, relation: IEntityRelation, value: any): void;
15
+ queueEntityKey(change: ChangeEntry, keys: KeyValueArray, events: EntityEvents<any>): void;
16
+ verifyAsync(): Promise<any>;
17
+ addError(query: EntityQuery, compare: Expression, error: string): void;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=VerificationSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerificationSession.d.ts","sourceRoot":"","sources":["../../../src/model/verification/VerificationSession.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAqD,UAAU,EAAqG,MAAM,gCAAgC,CAAC;AAClN,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,YAAkC,MAAM,2BAA2B,CAAC;AAE3E,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAMxB,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,CAAC,KAAK,CAA0B;gBAEnB,OAAO,EAAE,aAAa;IAK1C,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;IA0ChE,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,KAAA;IA8B3E,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;IAsB5E,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IA+BjC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;CAsBlE"}