@contember/binding-common 2.0.0-alpha.17

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 (699) hide show
  1. package/api-extractor.json +3 -0
  2. package/dist/development/index.cjs +110 -0
  3. package/dist/development/index.cjs.map +1 -0
  4. package/dist/development/index.js +98 -0
  5. package/dist/development/index.js.map +1 -0
  6. package/dist/development/src/BindingError.cjs +10 -0
  7. package/dist/development/src/BindingError.cjs.map +1 -0
  8. package/dist/development/src/BindingError.js +10 -0
  9. package/dist/development/src/BindingError.js.map +1 -0
  10. package/dist/development/src/DataBindingExtendAborted.cjs +5 -0
  11. package/dist/development/src/DataBindingExtendAborted.cjs.map +1 -0
  12. package/dist/development/src/DataBindingExtendAborted.js +5 -0
  13. package/dist/development/src/DataBindingExtendAborted.js.map +1 -0
  14. package/dist/development/src/LocalizedBindingError.cjs +14 -0
  15. package/dist/development/src/LocalizedBindingError.cjs.map +1 -0
  16. package/dist/development/src/LocalizedBindingError.js +14 -0
  17. package/dist/development/src/LocalizedBindingError.js.map +1 -0
  18. package/dist/development/src/RuntimeId.cjs +61 -0
  19. package/dist/development/src/RuntimeId.cjs.map +1 -0
  20. package/dist/development/src/RuntimeId.js +61 -0
  21. package/dist/development/src/RuntimeId.js.map +1 -0
  22. package/dist/development/src/consts.cjs +9 -0
  23. package/dist/development/src/consts.cjs.map +1 -0
  24. package/dist/development/src/consts.js +9 -0
  25. package/dist/development/src/consts.js.map +1 -0
  26. package/dist/development/src/environment/Environment.cjs +216 -0
  27. package/dist/development/src/environment/Environment.cjs.map +1 -0
  28. package/dist/development/src/environment/Environment.js +216 -0
  29. package/dist/development/src/environment/Environment.js.map +1 -0
  30. package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs +89 -0
  31. package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -0
  32. package/dist/development/src/environment/TreeNodeEnvironmentFactory.js +89 -0
  33. package/dist/development/src/environment/TreeNodeEnvironmentFactory.js.map +1 -0
  34. package/dist/development/src/environment/VariableFieldValue.cjs +9 -0
  35. package/dist/development/src/environment/VariableFieldValue.cjs.map +1 -0
  36. package/dist/development/src/environment/VariableFieldValue.js +9 -0
  37. package/dist/development/src/environment/VariableFieldValue.js.map +1 -0
  38. package/dist/development/src/environment/VariableInputTransformer.cjs +24 -0
  39. package/dist/development/src/environment/VariableInputTransformer.cjs.map +1 -0
  40. package/dist/development/src/environment/VariableInputTransformer.js +24 -0
  41. package/dist/development/src/environment/VariableInputTransformer.js.map +1 -0
  42. package/dist/development/src/markers/EntityFieldMarkersContainer.cjs +11 -0
  43. package/dist/development/src/markers/EntityFieldMarkersContainer.cjs.map +1 -0
  44. package/dist/development/src/markers/EntityFieldMarkersContainer.js +11 -0
  45. package/dist/development/src/markers/EntityFieldMarkersContainer.js.map +1 -0
  46. package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs +11 -0
  47. package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -0
  48. package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js +11 -0
  49. package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -0
  50. package/dist/development/src/markers/EntityListSubTreeMarker.cjs +20 -0
  51. package/dist/development/src/markers/EntityListSubTreeMarker.cjs.map +1 -0
  52. package/dist/development/src/markers/EntityListSubTreeMarker.js +20 -0
  53. package/dist/development/src/markers/EntityListSubTreeMarker.js.map +1 -0
  54. package/dist/development/src/markers/EntitySubTreeMarker.cjs +20 -0
  55. package/dist/development/src/markers/EntitySubTreeMarker.cjs.map +1 -0
  56. package/dist/development/src/markers/EntitySubTreeMarker.js +20 -0
  57. package/dist/development/src/markers/EntitySubTreeMarker.js.map +1 -0
  58. package/dist/development/src/markers/FieldMarker.cjs +24 -0
  59. package/dist/development/src/markers/FieldMarker.cjs.map +1 -0
  60. package/dist/development/src/markers/FieldMarker.js +24 -0
  61. package/dist/development/src/markers/FieldMarker.js.map +1 -0
  62. package/dist/development/src/markers/HasManyRelationMarker.cjs +26 -0
  63. package/dist/development/src/markers/HasManyRelationMarker.cjs.map +1 -0
  64. package/dist/development/src/markers/HasManyRelationMarker.js +26 -0
  65. package/dist/development/src/markers/HasManyRelationMarker.js.map +1 -0
  66. package/dist/development/src/markers/HasOneRelationMarker.cjs +20 -0
  67. package/dist/development/src/markers/HasOneRelationMarker.cjs.map +1 -0
  68. package/dist/development/src/markers/HasOneRelationMarker.js +20 -0
  69. package/dist/development/src/markers/HasOneRelationMarker.js.map +1 -0
  70. package/dist/development/src/markers/MarkerComparator.cjs +79 -0
  71. package/dist/development/src/markers/MarkerComparator.cjs.map +1 -0
  72. package/dist/development/src/markers/MarkerComparator.js +79 -0
  73. package/dist/development/src/markers/MarkerComparator.js.map +1 -0
  74. package/dist/development/src/markers/MarkerMerger.cjs +254 -0
  75. package/dist/development/src/markers/MarkerMerger.cjs.map +1 -0
  76. package/dist/development/src/markers/MarkerMerger.js +254 -0
  77. package/dist/development/src/markers/MarkerMerger.js.map +1 -0
  78. package/dist/development/src/markers/MarkerTreeRoot.cjs +10 -0
  79. package/dist/development/src/markers/MarkerTreeRoot.cjs.map +1 -0
  80. package/dist/development/src/markers/MarkerTreeRoot.js +10 -0
  81. package/dist/development/src/markers/MarkerTreeRoot.js.map +1 -0
  82. package/dist/development/src/markers/PlaceholderGenerator.cjs +23 -0
  83. package/dist/development/src/markers/PlaceholderGenerator.cjs.map +1 -0
  84. package/dist/development/src/markers/PlaceholderGenerator.js +23 -0
  85. package/dist/development/src/markers/PlaceholderGenerator.js.map +1 -0
  86. package/dist/development/src/markers/PlaceholderParametersGenerator.cjs +62 -0
  87. package/dist/development/src/markers/PlaceholderParametersGenerator.cjs.map +1 -0
  88. package/dist/development/src/markers/PlaceholderParametersGenerator.js +62 -0
  89. package/dist/development/src/markers/PlaceholderParametersGenerator.js.map +1 -0
  90. package/dist/development/src/queryLanguage/CacheStore.cjs +44 -0
  91. package/dist/development/src/queryLanguage/CacheStore.cjs.map +1 -0
  92. package/dist/development/src/queryLanguage/CacheStore.js +44 -0
  93. package/dist/development/src/queryLanguage/CacheStore.js.map +1 -0
  94. package/dist/development/src/queryLanguage/MarkerFactory.cjs +200 -0
  95. package/dist/development/src/queryLanguage/MarkerFactory.cjs.map +1 -0
  96. package/dist/development/src/queryLanguage/MarkerFactory.js +200 -0
  97. package/dist/development/src/queryLanguage/MarkerFactory.js.map +1 -0
  98. package/dist/development/src/queryLanguage/Parser.cjs +724 -0
  99. package/dist/development/src/queryLanguage/Parser.cjs.map +1 -0
  100. package/dist/development/src/queryLanguage/Parser.js +724 -0
  101. package/dist/development/src/queryLanguage/Parser.js.map +1 -0
  102. package/dist/development/src/queryLanguage/QueryLanguage.cjs +536 -0
  103. package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +1 -0
  104. package/dist/development/src/queryLanguage/QueryLanguage.js +536 -0
  105. package/dist/development/src/queryLanguage/QueryLanguage.js.map +1 -0
  106. package/dist/development/src/queryLanguage/QueryLanguageError.cjs +6 -0
  107. package/dist/development/src/queryLanguage/QueryLanguageError.cjs.map +1 -0
  108. package/dist/development/src/queryLanguage/QueryLanguageError.js +6 -0
  109. package/dist/development/src/queryLanguage/QueryLanguageError.js.map +1 -0
  110. package/dist/development/src/queryLanguage/tokenList.cjs +151 -0
  111. package/dist/development/src/queryLanguage/tokenList.cjs.map +1 -0
  112. package/dist/development/src/queryLanguage/tokenList.js +152 -0
  113. package/dist/development/src/queryLanguage/tokenList.js.map +1 -0
  114. package/dist/development/src/schema/Schema.cjs +36 -0
  115. package/dist/development/src/schema/Schema.cjs.map +1 -0
  116. package/dist/development/src/schema/Schema.js +36 -0
  117. package/dist/development/src/schema/Schema.js.map +1 -0
  118. package/dist/development/src/schema/SchemaLoader.cjs +25 -0
  119. package/dist/development/src/schema/SchemaLoader.cjs.map +1 -0
  120. package/dist/development/src/schema/SchemaLoader.js +25 -0
  121. package/dist/development/src/schema/SchemaLoader.js.map +1 -0
  122. package/dist/development/src/schema/SchemaPreprocessor.cjs +38 -0
  123. package/dist/development/src/schema/SchemaPreprocessor.cjs.map +1 -0
  124. package/dist/development/src/schema/SchemaPreprocessor.js +38 -0
  125. package/dist/development/src/schema/SchemaPreprocessor.js.map +1 -0
  126. package/dist/development/src/treeParameters/EventListenersStore.cjs +93 -0
  127. package/dist/development/src/treeParameters/EventListenersStore.cjs.map +1 -0
  128. package/dist/development/src/treeParameters/EventListenersStore.js +93 -0
  129. package/dist/development/src/treeParameters/EventListenersStore.js.map +1 -0
  130. package/dist/development/src/treeParameters/TreeParameterMerger.cjs +282 -0
  131. package/dist/development/src/treeParameters/TreeParameterMerger.cjs.map +1 -0
  132. package/dist/development/src/treeParameters/TreeParameterMerger.js +282 -0
  133. package/dist/development/src/treeParameters/TreeParameterMerger.js.map +1 -0
  134. package/dist/development/src/treeParameters/defaults.cjs +24 -0
  135. package/dist/development/src/treeParameters/defaults.cjs.map +1 -0
  136. package/dist/development/src/treeParameters/defaults.js +24 -0
  137. package/dist/development/src/treeParameters/defaults.js.map +1 -0
  138. package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +22 -0
  139. package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -0
  140. package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js +22 -0
  141. package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -0
  142. package/dist/development/src/types/EntityAccessor.cjs +5 -0
  143. package/dist/development/src/types/EntityAccessor.cjs.map +1 -0
  144. package/dist/development/src/types/EntityAccessor.js +5 -0
  145. package/dist/development/src/types/EntityAccessor.js.map +1 -0
  146. package/dist/development/src/types/EntityListAccessor.cjs +5 -0
  147. package/dist/development/src/types/EntityListAccessor.cjs.map +1 -0
  148. package/dist/development/src/types/EntityListAccessor.js +5 -0
  149. package/dist/development/src/types/EntityListAccessor.js.map +1 -0
  150. package/dist/development/src/types/ErrorAccessor.cjs +11 -0
  151. package/dist/development/src/types/ErrorAccessor.cjs.map +1 -0
  152. package/dist/development/src/types/ErrorAccessor.js +12 -0
  153. package/dist/development/src/types/ErrorAccessor.js.map +1 -0
  154. package/dist/development/src/types/FieldAccessor.cjs +5 -0
  155. package/dist/development/src/types/FieldAccessor.cjs.map +1 -0
  156. package/dist/development/src/types/FieldAccessor.js +5 -0
  157. package/dist/development/src/types/FieldAccessor.js.map +1 -0
  158. package/dist/development/src/types/TreeRootAccessor.cjs +14 -0
  159. package/dist/development/src/types/TreeRootAccessor.cjs.map +1 -0
  160. package/dist/development/src/types/TreeRootAccessor.js +14 -0
  161. package/dist/development/src/types/TreeRootAccessor.js.map +1 -0
  162. package/dist/development/src/utils/Hashing.cjs +22 -0
  163. package/dist/development/src/utils/Hashing.cjs.map +1 -0
  164. package/dist/development/src/utils/Hashing.js +22 -0
  165. package/dist/development/src/utils/Hashing.js.map +1 -0
  166. package/dist/development/src/utils/TreeNodeUtils.cjs +77 -0
  167. package/dist/development/src/utils/TreeNodeUtils.cjs.map +1 -0
  168. package/dist/development/src/utils/TreeNodeUtils.js +77 -0
  169. package/dist/development/src/utils/TreeNodeUtils.js.map +1 -0
  170. package/dist/development/src/utils/assertNever.cjs +10 -0
  171. package/dist/development/src/utils/assertNever.cjs.map +1 -0
  172. package/dist/development/src/utils/assertNever.js +10 -0
  173. package/dist/development/src/utils/assertNever.js.map +1 -0
  174. package/dist/development/src/utils/createQueryBuilder.cjs +32 -0
  175. package/dist/development/src/utils/createQueryBuilder.cjs.map +1 -0
  176. package/dist/development/src/utils/createQueryBuilder.js +32 -0
  177. package/dist/development/src/utils/createQueryBuilder.js.map +1 -0
  178. package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs +7 -0
  179. package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -0
  180. package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js +7 -0
  181. package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -0
  182. package/dist/production/index.cjs +110 -0
  183. package/dist/production/index.cjs.map +1 -0
  184. package/dist/production/index.js +98 -0
  185. package/dist/production/index.js.map +1 -0
  186. package/dist/production/src/BindingError.cjs +10 -0
  187. package/dist/production/src/BindingError.cjs.map +1 -0
  188. package/dist/production/src/BindingError.js +10 -0
  189. package/dist/production/src/BindingError.js.map +1 -0
  190. package/dist/production/src/DataBindingExtendAborted.cjs +5 -0
  191. package/dist/production/src/DataBindingExtendAborted.cjs.map +1 -0
  192. package/dist/production/src/DataBindingExtendAborted.js +5 -0
  193. package/dist/production/src/DataBindingExtendAborted.js.map +1 -0
  194. package/dist/production/src/LocalizedBindingError.cjs +14 -0
  195. package/dist/production/src/LocalizedBindingError.cjs.map +1 -0
  196. package/dist/production/src/LocalizedBindingError.js +14 -0
  197. package/dist/production/src/LocalizedBindingError.js.map +1 -0
  198. package/dist/production/src/RuntimeId.cjs +61 -0
  199. package/dist/production/src/RuntimeId.cjs.map +1 -0
  200. package/dist/production/src/RuntimeId.js +61 -0
  201. package/dist/production/src/RuntimeId.js.map +1 -0
  202. package/dist/production/src/consts.cjs +9 -0
  203. package/dist/production/src/consts.cjs.map +1 -0
  204. package/dist/production/src/consts.js +9 -0
  205. package/dist/production/src/consts.js.map +1 -0
  206. package/dist/production/src/environment/Environment.cjs +216 -0
  207. package/dist/production/src/environment/Environment.cjs.map +1 -0
  208. package/dist/production/src/environment/Environment.js +216 -0
  209. package/dist/production/src/environment/Environment.js.map +1 -0
  210. package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs +89 -0
  211. package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -0
  212. package/dist/production/src/environment/TreeNodeEnvironmentFactory.js +89 -0
  213. package/dist/production/src/environment/TreeNodeEnvironmentFactory.js.map +1 -0
  214. package/dist/production/src/environment/VariableFieldValue.cjs +9 -0
  215. package/dist/production/src/environment/VariableFieldValue.cjs.map +1 -0
  216. package/dist/production/src/environment/VariableFieldValue.js +9 -0
  217. package/dist/production/src/environment/VariableFieldValue.js.map +1 -0
  218. package/dist/production/src/environment/VariableInputTransformer.cjs +24 -0
  219. package/dist/production/src/environment/VariableInputTransformer.cjs.map +1 -0
  220. package/dist/production/src/environment/VariableInputTransformer.js +24 -0
  221. package/dist/production/src/environment/VariableInputTransformer.js.map +1 -0
  222. package/dist/production/src/markers/EntityFieldMarkersContainer.cjs +11 -0
  223. package/dist/production/src/markers/EntityFieldMarkersContainer.cjs.map +1 -0
  224. package/dist/production/src/markers/EntityFieldMarkersContainer.js +11 -0
  225. package/dist/production/src/markers/EntityFieldMarkersContainer.js.map +1 -0
  226. package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs +11 -0
  227. package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -0
  228. package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js +11 -0
  229. package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -0
  230. package/dist/production/src/markers/EntityListSubTreeMarker.cjs +20 -0
  231. package/dist/production/src/markers/EntityListSubTreeMarker.cjs.map +1 -0
  232. package/dist/production/src/markers/EntityListSubTreeMarker.js +20 -0
  233. package/dist/production/src/markers/EntityListSubTreeMarker.js.map +1 -0
  234. package/dist/production/src/markers/EntitySubTreeMarker.cjs +20 -0
  235. package/dist/production/src/markers/EntitySubTreeMarker.cjs.map +1 -0
  236. package/dist/production/src/markers/EntitySubTreeMarker.js +20 -0
  237. package/dist/production/src/markers/EntitySubTreeMarker.js.map +1 -0
  238. package/dist/production/src/markers/FieldMarker.cjs +24 -0
  239. package/dist/production/src/markers/FieldMarker.cjs.map +1 -0
  240. package/dist/production/src/markers/FieldMarker.js +24 -0
  241. package/dist/production/src/markers/FieldMarker.js.map +1 -0
  242. package/dist/production/src/markers/HasManyRelationMarker.cjs +20 -0
  243. package/dist/production/src/markers/HasManyRelationMarker.cjs.map +1 -0
  244. package/dist/production/src/markers/HasManyRelationMarker.js +20 -0
  245. package/dist/production/src/markers/HasManyRelationMarker.js.map +1 -0
  246. package/dist/production/src/markers/HasOneRelationMarker.cjs +20 -0
  247. package/dist/production/src/markers/HasOneRelationMarker.cjs.map +1 -0
  248. package/dist/production/src/markers/HasOneRelationMarker.js +20 -0
  249. package/dist/production/src/markers/HasOneRelationMarker.js.map +1 -0
  250. package/dist/production/src/markers/MarkerComparator.cjs +79 -0
  251. package/dist/production/src/markers/MarkerComparator.cjs.map +1 -0
  252. package/dist/production/src/markers/MarkerComparator.js +79 -0
  253. package/dist/production/src/markers/MarkerComparator.js.map +1 -0
  254. package/dist/production/src/markers/MarkerMerger.cjs +254 -0
  255. package/dist/production/src/markers/MarkerMerger.cjs.map +1 -0
  256. package/dist/production/src/markers/MarkerMerger.js +254 -0
  257. package/dist/production/src/markers/MarkerMerger.js.map +1 -0
  258. package/dist/production/src/markers/MarkerTreeRoot.cjs +10 -0
  259. package/dist/production/src/markers/MarkerTreeRoot.cjs.map +1 -0
  260. package/dist/production/src/markers/MarkerTreeRoot.js +10 -0
  261. package/dist/production/src/markers/MarkerTreeRoot.js.map +1 -0
  262. package/dist/production/src/markers/PlaceholderGenerator.cjs +23 -0
  263. package/dist/production/src/markers/PlaceholderGenerator.cjs.map +1 -0
  264. package/dist/production/src/markers/PlaceholderGenerator.js +23 -0
  265. package/dist/production/src/markers/PlaceholderGenerator.js.map +1 -0
  266. package/dist/production/src/markers/PlaceholderParametersGenerator.cjs +62 -0
  267. package/dist/production/src/markers/PlaceholderParametersGenerator.cjs.map +1 -0
  268. package/dist/production/src/markers/PlaceholderParametersGenerator.js +62 -0
  269. package/dist/production/src/markers/PlaceholderParametersGenerator.js.map +1 -0
  270. package/dist/production/src/queryLanguage/CacheStore.cjs +44 -0
  271. package/dist/production/src/queryLanguage/CacheStore.cjs.map +1 -0
  272. package/dist/production/src/queryLanguage/CacheStore.js +44 -0
  273. package/dist/production/src/queryLanguage/CacheStore.js.map +1 -0
  274. package/dist/production/src/queryLanguage/MarkerFactory.cjs +200 -0
  275. package/dist/production/src/queryLanguage/MarkerFactory.cjs.map +1 -0
  276. package/dist/production/src/queryLanguage/MarkerFactory.js +200 -0
  277. package/dist/production/src/queryLanguage/MarkerFactory.js.map +1 -0
  278. package/dist/production/src/queryLanguage/Parser.cjs +721 -0
  279. package/dist/production/src/queryLanguage/Parser.cjs.map +1 -0
  280. package/dist/production/src/queryLanguage/Parser.js +721 -0
  281. package/dist/production/src/queryLanguage/Parser.js.map +1 -0
  282. package/dist/production/src/queryLanguage/QueryLanguage.cjs +533 -0
  283. package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +1 -0
  284. package/dist/production/src/queryLanguage/QueryLanguage.js +533 -0
  285. package/dist/production/src/queryLanguage/QueryLanguage.js.map +1 -0
  286. package/dist/production/src/queryLanguage/QueryLanguageError.cjs +6 -0
  287. package/dist/production/src/queryLanguage/QueryLanguageError.cjs.map +1 -0
  288. package/dist/production/src/queryLanguage/QueryLanguageError.js +6 -0
  289. package/dist/production/src/queryLanguage/QueryLanguageError.js.map +1 -0
  290. package/dist/production/src/queryLanguage/tokenList.cjs +151 -0
  291. package/dist/production/src/queryLanguage/tokenList.cjs.map +1 -0
  292. package/dist/production/src/queryLanguage/tokenList.js +152 -0
  293. package/dist/production/src/queryLanguage/tokenList.js.map +1 -0
  294. package/dist/production/src/schema/Schema.cjs +36 -0
  295. package/dist/production/src/schema/Schema.cjs.map +1 -0
  296. package/dist/production/src/schema/Schema.js +36 -0
  297. package/dist/production/src/schema/Schema.js.map +1 -0
  298. package/dist/production/src/schema/SchemaLoader.cjs +25 -0
  299. package/dist/production/src/schema/SchemaLoader.cjs.map +1 -0
  300. package/dist/production/src/schema/SchemaLoader.js +25 -0
  301. package/dist/production/src/schema/SchemaLoader.js.map +1 -0
  302. package/dist/production/src/schema/SchemaPreprocessor.cjs +38 -0
  303. package/dist/production/src/schema/SchemaPreprocessor.cjs.map +1 -0
  304. package/dist/production/src/schema/SchemaPreprocessor.js +38 -0
  305. package/dist/production/src/schema/SchemaPreprocessor.js.map +1 -0
  306. package/dist/production/src/treeParameters/EventListenersStore.cjs +93 -0
  307. package/dist/production/src/treeParameters/EventListenersStore.cjs.map +1 -0
  308. package/dist/production/src/treeParameters/EventListenersStore.js +93 -0
  309. package/dist/production/src/treeParameters/EventListenersStore.js.map +1 -0
  310. package/dist/production/src/treeParameters/TreeParameterMerger.cjs +282 -0
  311. package/dist/production/src/treeParameters/TreeParameterMerger.cjs.map +1 -0
  312. package/dist/production/src/treeParameters/TreeParameterMerger.js +282 -0
  313. package/dist/production/src/treeParameters/TreeParameterMerger.js.map +1 -0
  314. package/dist/production/src/treeParameters/defaults.cjs +24 -0
  315. package/dist/production/src/treeParameters/defaults.cjs.map +1 -0
  316. package/dist/production/src/treeParameters/defaults.js +24 -0
  317. package/dist/production/src/treeParameters/defaults.js.map +1 -0
  318. package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +22 -0
  319. package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -0
  320. package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js +22 -0
  321. package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -0
  322. package/dist/production/src/types/EntityAccessor.cjs +5 -0
  323. package/dist/production/src/types/EntityAccessor.cjs.map +1 -0
  324. package/dist/production/src/types/EntityAccessor.js +5 -0
  325. package/dist/production/src/types/EntityAccessor.js.map +1 -0
  326. package/dist/production/src/types/EntityListAccessor.cjs +5 -0
  327. package/dist/production/src/types/EntityListAccessor.cjs.map +1 -0
  328. package/dist/production/src/types/EntityListAccessor.js +5 -0
  329. package/dist/production/src/types/EntityListAccessor.js.map +1 -0
  330. package/dist/production/src/types/ErrorAccessor.cjs +11 -0
  331. package/dist/production/src/types/ErrorAccessor.cjs.map +1 -0
  332. package/dist/production/src/types/ErrorAccessor.js +12 -0
  333. package/dist/production/src/types/ErrorAccessor.js.map +1 -0
  334. package/dist/production/src/types/FieldAccessor.cjs +5 -0
  335. package/dist/production/src/types/FieldAccessor.cjs.map +1 -0
  336. package/dist/production/src/types/FieldAccessor.js +5 -0
  337. package/dist/production/src/types/FieldAccessor.js.map +1 -0
  338. package/dist/production/src/types/TreeRootAccessor.cjs +14 -0
  339. package/dist/production/src/types/TreeRootAccessor.cjs.map +1 -0
  340. package/dist/production/src/types/TreeRootAccessor.js +14 -0
  341. package/dist/production/src/types/TreeRootAccessor.js.map +1 -0
  342. package/dist/production/src/utils/Hashing.cjs +22 -0
  343. package/dist/production/src/utils/Hashing.cjs.map +1 -0
  344. package/dist/production/src/utils/Hashing.js +22 -0
  345. package/dist/production/src/utils/Hashing.js.map +1 -0
  346. package/dist/production/src/utils/TreeNodeUtils.cjs +77 -0
  347. package/dist/production/src/utils/TreeNodeUtils.cjs.map +1 -0
  348. package/dist/production/src/utils/TreeNodeUtils.js +77 -0
  349. package/dist/production/src/utils/TreeNodeUtils.js.map +1 -0
  350. package/dist/production/src/utils/assertNever.cjs +10 -0
  351. package/dist/production/src/utils/assertNever.cjs.map +1 -0
  352. package/dist/production/src/utils/assertNever.js +10 -0
  353. package/dist/production/src/utils/assertNever.js.map +1 -0
  354. package/dist/production/src/utils/createQueryBuilder.cjs +32 -0
  355. package/dist/production/src/utils/createQueryBuilder.cjs.map +1 -0
  356. package/dist/production/src/utils/createQueryBuilder.js +32 -0
  357. package/dist/production/src/utils/createQueryBuilder.js.map +1 -0
  358. package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs +7 -0
  359. package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -0
  360. package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js +7 -0
  361. package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -0
  362. package/dist/types/BindingError.d.ts +4 -0
  363. package/dist/types/BindingError.d.ts.map +1 -0
  364. package/dist/types/DataBindingExtendAborted.d.ts +2 -0
  365. package/dist/types/DataBindingExtendAborted.d.ts.map +1 -0
  366. package/dist/types/LocalizedBindingError.d.ts +8 -0
  367. package/dist/types/LocalizedBindingError.d.ts.map +1 -0
  368. package/dist/types/RuntimeId.d.ts +35 -0
  369. package/dist/types/RuntimeId.d.ts.map +1 -0
  370. package/dist/types/consts.d.ts +4 -0
  371. package/dist/types/consts.d.ts.map +1 -0
  372. package/dist/types/environment/Environment.d.ts +108 -0
  373. package/dist/types/environment/Environment.d.ts.map +1 -0
  374. package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts +15 -0
  375. package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +1 -0
  376. package/dist/types/environment/VariableFieldValue.d.ts +5 -0
  377. package/dist/types/environment/VariableFieldValue.d.ts.map +1 -0
  378. package/dist/types/environment/VariableInputTransformer.d.ts +8 -0
  379. package/dist/types/environment/VariableInputTransformer.d.ts.map +1 -0
  380. package/dist/types/environment/index.d.ts +5 -0
  381. package/dist/types/environment/index.d.ts.map +1 -0
  382. package/dist/types/index.d.ts +16 -0
  383. package/dist/types/index.d.ts.map +1 -0
  384. package/dist/types/markers/EntityFieldMarkers.d.ts +7 -0
  385. package/dist/types/markers/EntityFieldMarkers.d.ts.map +1 -0
  386. package/dist/types/markers/EntityFieldMarkersContainer.d.ts +10 -0
  387. package/dist/types/markers/EntityFieldMarkersContainer.d.ts.map +1 -0
  388. package/dist/types/markers/EntityFieldPlaceholders.d.ts +3 -0
  389. package/dist/types/markers/EntityFieldPlaceholders.d.ts.map +1 -0
  390. package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts +10 -0
  391. package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts.map +1 -0
  392. package/dist/types/markers/EntityListSubTreeMarker.d.ts +12 -0
  393. package/dist/types/markers/EntityListSubTreeMarker.d.ts.map +1 -0
  394. package/dist/types/markers/EntitySubTreeMarker.d.ts +12 -0
  395. package/dist/types/markers/EntitySubTreeMarker.d.ts.map +1 -0
  396. package/dist/types/markers/FieldMarker.d.ts +15 -0
  397. package/dist/types/markers/FieldMarker.d.ts.map +1 -0
  398. package/dist/types/markers/HasManyRelationMarker.d.ts +12 -0
  399. package/dist/types/markers/HasManyRelationMarker.d.ts.map +1 -0
  400. package/dist/types/markers/HasOneRelationMarker.d.ts +12 -0
  401. package/dist/types/markers/HasOneRelationMarker.d.ts.map +1 -0
  402. package/dist/types/markers/MarkerComparator.d.ts +8 -0
  403. package/dist/types/markers/MarkerComparator.d.ts.map +1 -0
  404. package/dist/types/markers/MarkerMerger.d.ts +22 -0
  405. package/dist/types/markers/MarkerMerger.d.ts.map +1 -0
  406. package/dist/types/markers/MarkerTreeRoot.d.ts +8 -0
  407. package/dist/types/markers/MarkerTreeRoot.d.ts.map +1 -0
  408. package/dist/types/markers/MeaningfulMarker.d.ts +7 -0
  409. package/dist/types/markers/MeaningfulMarker.d.ts.map +1 -0
  410. package/dist/types/markers/PlaceholderGenerator.d.ts +10 -0
  411. package/dist/types/markers/PlaceholderGenerator.d.ts.map +1 -0
  412. package/dist/types/markers/PlaceholderParametersGenerator.d.ts +9 -0
  413. package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +1 -0
  414. package/dist/types/markers/SubTreeMarkers.d.ts +5 -0
  415. package/dist/types/markers/SubTreeMarkers.d.ts.map +1 -0
  416. package/dist/types/markers/index.d.ts +17 -0
  417. package/dist/types/markers/index.d.ts.map +1 -0
  418. package/dist/types/queryLanguage/CacheStore.d.ts +9 -0
  419. package/dist/types/queryLanguage/CacheStore.d.ts.map +1 -0
  420. package/dist/types/queryLanguage/MarkerFactory.d.ts +21 -0
  421. package/dist/types/queryLanguage/MarkerFactory.d.ts.map +1 -0
  422. package/dist/types/queryLanguage/Parser.d.ts +83 -0
  423. package/dist/types/queryLanguage/Parser.d.ts.map +1 -0
  424. package/dist/types/queryLanguage/ParserResults.d.ts +63 -0
  425. package/dist/types/queryLanguage/ParserResults.d.ts.map +1 -0
  426. package/dist/types/queryLanguage/QueryLanguage.d.ts +42 -0
  427. package/dist/types/queryLanguage/QueryLanguage.d.ts.map +1 -0
  428. package/dist/types/queryLanguage/QueryLanguageError.d.ts +3 -0
  429. package/dist/types/queryLanguage/QueryLanguageError.d.ts.map +1 -0
  430. package/dist/types/queryLanguage/index.d.ts +6 -0
  431. package/dist/types/queryLanguage/index.d.ts.map +1 -0
  432. package/dist/types/queryLanguage/tokenList.d.ts +36 -0
  433. package/dist/types/queryLanguage/tokenList.d.ts.map +1 -0
  434. package/dist/types/schema/RawSchema.d.ts +7 -0
  435. package/dist/types/schema/RawSchema.d.ts.map +1 -0
  436. package/dist/types/schema/RawSchemaEntity.d.ts +13 -0
  437. package/dist/types/schema/RawSchemaEntity.d.ts.map +1 -0
  438. package/dist/types/schema/RawSchemaEnum.d.ts +6 -0
  439. package/dist/types/schema/RawSchemaEnum.d.ts.map +1 -0
  440. package/dist/types/schema/Schema.d.ts +20 -0
  441. package/dist/types/schema/Schema.d.ts.map +1 -0
  442. package/dist/types/schema/SchemaColumn.d.ts +12 -0
  443. package/dist/types/schema/SchemaColumn.d.ts.map +1 -0
  444. package/dist/types/schema/SchemaColumnType.d.ts +3 -0
  445. package/dist/types/schema/SchemaColumnType.d.ts.map +1 -0
  446. package/dist/types/schema/SchemaEntities.d.ts +4 -0
  447. package/dist/types/schema/SchemaEntities.d.ts.map +1 -0
  448. package/dist/types/schema/SchemaEntity.d.ts +10 -0
  449. package/dist/types/schema/SchemaEntity.d.ts.map +1 -0
  450. package/dist/types/schema/SchemaEnums.d.ts +4 -0
  451. package/dist/types/schema/SchemaEnums.d.ts.map +1 -0
  452. package/dist/types/schema/SchemaField.d.ts +4 -0
  453. package/dist/types/schema/SchemaField.d.ts.map +1 -0
  454. package/dist/types/schema/SchemaFields.d.ts +4 -0
  455. package/dist/types/schema/SchemaFields.d.ts.map +1 -0
  456. package/dist/types/schema/SchemaLoader.d.ts +8 -0
  457. package/dist/types/schema/SchemaLoader.d.ts.map +1 -0
  458. package/dist/types/schema/SchemaPreprocessor.d.ts +9 -0
  459. package/dist/types/schema/SchemaPreprocessor.d.ts.map +1 -0
  460. package/dist/types/schema/SchemaRelation.d.ts +24 -0
  461. package/dist/types/schema/SchemaRelation.d.ts.map +1 -0
  462. package/dist/types/schema/SchemaRelationOrderBy.d.ts +5 -0
  463. package/dist/types/schema/SchemaRelationOrderBy.d.ts.map +1 -0
  464. package/dist/types/schema/SchemaStore.d.ts +7 -0
  465. package/dist/types/schema/SchemaStore.d.ts.map +1 -0
  466. package/dist/types/schema/SchemaUniqueConstraint.d.ts +5 -0
  467. package/dist/types/schema/SchemaUniqueConstraint.d.ts.map +1 -0
  468. package/dist/types/schema/index.d.ts +16 -0
  469. package/dist/types/schema/index.d.ts.map +1 -0
  470. package/dist/types/treeParameters/EventListenersStore.d.ts +36 -0
  471. package/dist/types/treeParameters/EventListenersStore.d.ts.map +1 -0
  472. package/dist/types/treeParameters/Normalized.d.ts +113 -0
  473. package/dist/types/treeParameters/Normalized.d.ts.map +1 -0
  474. package/dist/types/treeParameters/Sugared.d.ts +139 -0
  475. package/dist/types/treeParameters/Sugared.d.ts.map +1 -0
  476. package/dist/types/treeParameters/TreeParameterMerger.d.ts +17 -0
  477. package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +1 -0
  478. package/dist/types/treeParameters/defaults.d.ts +16 -0
  479. package/dist/types/treeParameters/defaults.d.ts.map +1 -0
  480. package/dist/types/treeParameters/helpers/index.d.ts +2 -0
  481. package/dist/types/treeParameters/helpers/index.d.ts.map +1 -0
  482. package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts +3 -0
  483. package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts.map +1 -0
  484. package/dist/types/treeParameters/index.d.ts +12 -0
  485. package/dist/types/treeParameters/index.d.ts.map +1 -0
  486. package/dist/types/treeParameters/primitives/Alias.d.ts +2 -0
  487. package/dist/types/treeParameters/primitives/Alias.d.ts.map +1 -0
  488. package/dist/types/treeParameters/primitives/EntityId.d.ts +2 -0
  489. package/dist/types/treeParameters/primitives/EntityId.d.ts.map +1 -0
  490. package/dist/types/treeParameters/primitives/EntityName.d.ts +2 -0
  491. package/dist/types/treeParameters/primitives/EntityName.d.ts.map +1 -0
  492. package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts +2 -0
  493. package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts.map +1 -0
  494. package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts +2 -0
  495. package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts.map +1 -0
  496. package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts +2 -0
  497. package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts.map +1 -0
  498. package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts +2 -0
  499. package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts.map +1 -0
  500. package/dist/types/treeParameters/primitives/FieldName.d.ts +2 -0
  501. package/dist/types/treeParameters/primitives/FieldName.d.ts.map +1 -0
  502. package/dist/types/treeParameters/primitives/FieldValue.d.ts +5 -0
  503. package/dist/types/treeParameters/primitives/FieldValue.d.ts.map +1 -0
  504. package/dist/types/treeParameters/primitives/Filter.d.ts +4 -0
  505. package/dist/types/treeParameters/primitives/Filter.d.ts.map +1 -0
  506. package/dist/types/treeParameters/primitives/Json.d.ts +7 -0
  507. package/dist/types/treeParameters/primitives/Json.d.ts.map +1 -0
  508. package/dist/types/treeParameters/primitives/Limit.d.ts +2 -0
  509. package/dist/types/treeParameters/primitives/Limit.d.ts.map +1 -0
  510. package/dist/types/treeParameters/primitives/Offset.d.ts +2 -0
  511. package/dist/types/treeParameters/primitives/Offset.d.ts.map +1 -0
  512. package/dist/types/treeParameters/primitives/OrderBy.d.ts +4 -0
  513. package/dist/types/treeParameters/primitives/OrderBy.d.ts.map +1 -0
  514. package/dist/types/treeParameters/primitives/PlaceholderName.d.ts +2 -0
  515. package/dist/types/treeParameters/primitives/PlaceholderName.d.ts.map +1 -0
  516. package/dist/types/treeParameters/primitives/RemovalType.d.ts +2 -0
  517. package/dist/types/treeParameters/primitives/RemovalType.d.ts.map +1 -0
  518. package/dist/types/treeParameters/primitives/Scalar.d.ts +2 -0
  519. package/dist/types/treeParameters/primitives/Scalar.d.ts.map +1 -0
  520. package/dist/types/treeParameters/primitives/SetOnCreate.d.ts +4 -0
  521. package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +1 -0
  522. package/dist/types/treeParameters/primitives/TreeRootId.d.ts +2 -0
  523. package/dist/types/treeParameters/primitives/TreeRootId.d.ts.map +1 -0
  524. package/dist/types/treeParameters/primitives/UniqueWhere.d.ts +4 -0
  525. package/dist/types/treeParameters/primitives/UniqueWhere.d.ts.map +1 -0
  526. package/dist/types/treeParameters/primitives/index.d.ts +21 -0
  527. package/dist/types/treeParameters/primitives/index.d.ts.map +1 -0
  528. package/dist/types/tsconfig.tsbuildinfo +1 -0
  529. package/dist/types/types/AsyncBatchUpdatesOptions.d.ts +8 -0
  530. package/dist/types/types/AsyncBatchUpdatesOptions.d.ts.map +1 -0
  531. package/dist/types/types/BatchUpdatesOptions.d.ts +9 -0
  532. package/dist/types/types/BatchUpdatesOptions.d.ts.map +1 -0
  533. package/dist/types/types/BindingOperations.d.ts +24 -0
  534. package/dist/types/types/BindingOperations.d.ts.map +1 -0
  535. package/dist/types/types/DataBindingTransactionResult.d.ts +4 -0
  536. package/dist/types/types/DataBindingTransactionResult.d.ts.map +1 -0
  537. package/dist/types/types/EntityAccessor.d.ts +77 -0
  538. package/dist/types/types/EntityAccessor.d.ts.map +1 -0
  539. package/dist/types/types/EntityListAccessor.d.ts +84 -0
  540. package/dist/types/types/EntityListAccessor.d.ts.map +1 -0
  541. package/dist/types/types/ErrorAccessor.d.ts +30 -0
  542. package/dist/types/types/ErrorAccessor.d.ts.map +1 -0
  543. package/dist/types/types/Errorable.d.ts +5 -0
  544. package/dist/types/types/Errorable.d.ts.map +1 -0
  545. package/dist/types/types/ExtendTree.d.ts +9 -0
  546. package/dist/types/types/ExtendTree.d.ts.map +1 -0
  547. package/dist/types/types/FieldAccessor.d.ts +49 -0
  548. package/dist/types/types/FieldAccessor.d.ts.map +1 -0
  549. package/dist/types/types/GetEntityByKey.d.ts +3 -0
  550. package/dist/types/types/GetEntityByKey.d.ts.map +1 -0
  551. package/dist/types/types/GetEntityListSubTree.d.ts +5 -0
  552. package/dist/types/types/GetEntityListSubTree.d.ts.map +1 -0
  553. package/dist/types/types/GetEntitySubTree.d.ts +5 -0
  554. package/dist/types/types/GetEntitySubTree.d.ts.map +1 -0
  555. package/dist/types/types/Persist.d.ts +10 -0
  556. package/dist/types/types/Persist.d.ts.map +1 -0
  557. package/dist/types/types/PersistErrorOptions.d.ts +4 -0
  558. package/dist/types/types/PersistErrorOptions.d.ts.map +1 -0
  559. package/dist/types/types/PersistResult.d.ts +23 -0
  560. package/dist/types/types/PersistResult.d.ts.map +1 -0
  561. package/dist/types/types/PersistSuccessOptions.d.ts +5 -0
  562. package/dist/types/types/PersistSuccessOptions.d.ts.map +1 -0
  563. package/dist/types/types/QueryRequestResponse.d.ts +20 -0
  564. package/dist/types/types/QueryRequestResponse.d.ts.map +1 -0
  565. package/dist/types/types/TreeRootAccessor.d.ts +11 -0
  566. package/dist/types/types/TreeRootAccessor.d.ts.map +1 -0
  567. package/dist/types/types/index.d.ts +20 -0
  568. package/dist/types/types/index.d.ts.map +1 -0
  569. package/dist/types/utils/Hashing.d.ts +5 -0
  570. package/dist/types/utils/Hashing.d.ts.map +1 -0
  571. package/dist/types/utils/TreeNodeUtils.d.ts +13 -0
  572. package/dist/types/utils/TreeNodeUtils.d.ts.map +1 -0
  573. package/dist/types/utils/assertNever.d.ts +2 -0
  574. package/dist/types/utils/assertNever.d.ts.map +1 -0
  575. package/dist/types/utils/createQueryBuilder.d.ts +4 -0
  576. package/dist/types/utils/createQueryBuilder.d.ts.map +1 -0
  577. package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts +2 -0
  578. package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts.map +1 -0
  579. package/package.json +50 -0
  580. package/src/BindingError.ts +5 -0
  581. package/src/DataBindingExtendAborted.ts +1 -0
  582. package/src/LocalizedBindingError.ts +20 -0
  583. package/src/RuntimeId.ts +70 -0
  584. package/src/consts.ts +3 -0
  585. package/src/environment/Environment.ts +346 -0
  586. package/src/environment/TreeNodeEnvironmentFactory.ts +137 -0
  587. package/src/environment/VariableFieldValue.ts +3 -0
  588. package/src/environment/VariableInputTransformer.ts +27 -0
  589. package/src/environment/index.ts +4 -0
  590. package/src/index.ts +17 -0
  591. package/src/markers/EntityFieldMarkers.ts +7 -0
  592. package/src/markers/EntityFieldMarkersContainer.ts +10 -0
  593. package/src/markers/EntityFieldPlaceholders.ts +3 -0
  594. package/src/markers/EntityFieldsWithHoistablesMarker.ts +11 -0
  595. package/src/markers/EntityListSubTreeMarker.ts +20 -0
  596. package/src/markers/EntitySubTreeMarker.ts +20 -0
  597. package/src/markers/FieldMarker.ts +29 -0
  598. package/src/markers/HasManyRelationMarker.ts +27 -0
  599. package/src/markers/HasOneRelationMarker.ts +21 -0
  600. package/src/markers/MarkerComparator.ts +102 -0
  601. package/src/markers/MarkerMerger.ts +300 -0
  602. package/src/markers/MarkerTreeRoot.ts +9 -0
  603. package/src/markers/MeaningfulMarker.ts +12 -0
  604. package/src/markers/PlaceholderGenerator.ts +40 -0
  605. package/src/markers/PlaceholderParametersGenerator.ts +79 -0
  606. package/src/markers/SubTreeMarkers.ts +5 -0
  607. package/src/markers/index.ts +17 -0
  608. package/src/queryLanguage/CacheStore.ts +57 -0
  609. package/src/queryLanguage/MarkerFactory.ts +319 -0
  610. package/src/queryLanguage/Parser.ts +911 -0
  611. package/src/queryLanguage/ParserResults.ts +81 -0
  612. package/src/queryLanguage/QueryLanguage.ts +751 -0
  613. package/src/queryLanguage/QueryLanguageError.ts +1 -0
  614. package/src/queryLanguage/index.ts +5 -0
  615. package/src/queryLanguage/tokenList.ts +177 -0
  616. package/src/schema/RawSchema.ts +7 -0
  617. package/src/schema/RawSchemaEntity.ts +12 -0
  618. package/src/schema/RawSchemaEnum.ts +6 -0
  619. package/src/schema/Schema.ts +46 -0
  620. package/src/schema/SchemaColumn.ts +15 -0
  621. package/src/schema/SchemaColumnType.ts +3 -0
  622. package/src/schema/SchemaEntities.ts +4 -0
  623. package/src/schema/SchemaEntity.ts +10 -0
  624. package/src/schema/SchemaEnums.ts +3 -0
  625. package/src/schema/SchemaField.ts +4 -0
  626. package/src/schema/SchemaFields.ts +4 -0
  627. package/src/schema/SchemaLoader.ts +64 -0
  628. package/src/schema/SchemaPreprocessor.ts +51 -0
  629. package/src/schema/SchemaRelation.ts +29 -0
  630. package/src/schema/SchemaRelationOrderBy.ts +4 -0
  631. package/src/schema/SchemaStore.ts +8 -0
  632. package/src/schema/SchemaUniqueConstraint.ts +5 -0
  633. package/src/schema/index.ts +15 -0
  634. package/src/treeParameters/EventListenersStore.ts +105 -0
  635. package/src/treeParameters/Normalized.ts +168 -0
  636. package/src/treeParameters/Sugared.ts +228 -0
  637. package/src/treeParameters/TreeParameterMerger.ts +352 -0
  638. package/src/treeParameters/defaults.ts +33 -0
  639. package/src/treeParameters/helpers/index.ts +1 -0
  640. package/src/treeParameters/helpers/wrapFilterInHasOnes.ts +21 -0
  641. package/src/treeParameters/index.ts +14 -0
  642. package/src/treeParameters/primitives/Alias.ts +1 -0
  643. package/src/treeParameters/primitives/EntityId.ts +2 -0
  644. package/src/treeParameters/primitives/EntityName.ts +4 -0
  645. package/src/treeParameters/primitives/EntityRealmKey.ts +2 -0
  646. package/src/treeParameters/primitives/ExpectedEntityCount.ts +1 -0
  647. package/src/treeParameters/primitives/ExpectedQualifiedEntityMutation.ts +1 -0
  648. package/src/treeParameters/primitives/ExpectedRelationMutation.ts +1 -0
  649. package/src/treeParameters/primitives/FieldName.ts +7 -0
  650. package/src/treeParameters/primitives/FieldValue.ts +6 -0
  651. package/src/treeParameters/primitives/Filter.ts +7 -0
  652. package/src/treeParameters/primitives/Json.ts +7 -0
  653. package/src/treeParameters/primitives/Limit.ts +1 -0
  654. package/src/treeParameters/primitives/Offset.ts +1 -0
  655. package/src/treeParameters/primitives/OrderBy.ts +6 -0
  656. package/src/treeParameters/primitives/PlaceholderName.ts +4 -0
  657. package/src/treeParameters/primitives/RemovalType.ts +1 -0
  658. package/src/treeParameters/primitives/Scalar.ts +1 -0
  659. package/src/treeParameters/primitives/SetOnCreate.ts +8 -0
  660. package/src/treeParameters/primitives/TreeRootId.ts +1 -0
  661. package/src/treeParameters/primitives/UniqueWhere.ts +7 -0
  662. package/src/treeParameters/primitives/index.ts +20 -0
  663. package/src/tsconfig.json +14 -0
  664. package/src/types/AsyncBatchUpdatesOptions.ts +8 -0
  665. package/src/types/BatchUpdatesOptions.ts +9 -0
  666. package/src/types/BindingOperations.ts +26 -0
  667. package/src/types/DataBindingTransactionResult.ts +4 -0
  668. package/src/types/EntityAccessor.ts +126 -0
  669. package/src/types/EntityListAccessor.ts +123 -0
  670. package/src/types/ErrorAccessor.ts +43 -0
  671. package/src/types/Errorable.ts +5 -0
  672. package/src/types/ExtendTree.ts +10 -0
  673. package/src/types/FieldAccessor.ts +74 -0
  674. package/src/types/GetEntityByKey.ts +3 -0
  675. package/src/types/GetEntityListSubTree.ts +14 -0
  676. package/src/types/GetEntitySubTree.ts +14 -0
  677. package/src/types/Persist.ts +11 -0
  678. package/src/types/PersistErrorOptions.ts +5 -0
  679. package/src/types/PersistResult.ts +28 -0
  680. package/src/types/PersistSuccessOptions.ts +5 -0
  681. package/src/types/QueryRequestResponse.ts +23 -0
  682. package/src/types/TreeRootAccessor.ts +14 -0
  683. package/src/types/index.ts +19 -0
  684. package/src/utils/Hashing.ts +20 -0
  685. package/src/utils/TreeNodeUtils.ts +92 -0
  686. package/src/utils/assertNever.ts +7 -0
  687. package/src/utils/createQueryBuilder.ts +31 -0
  688. package/src/utils/generateEnumerabilityPreventingEntropy.ts +3 -0
  689. package/tests/cases/unit/queryLanguage/filter.spec.tsx +100 -0
  690. package/tests/cases/unit/queryLanguage/general.spec.tsx +59 -0
  691. package/tests/cases/unit/queryLanguage/orderBy.spec.tsx +48 -0
  692. package/tests/cases/unit/queryLanguage/qualifiedEntityList.spec.tsx +30 -0
  693. package/tests/cases/unit/queryLanguage/qualifiedFieldList.spec.tsx +29 -0
  694. package/tests/cases/unit/queryLanguage/relativeEntityList.spec.tsx +49 -0
  695. package/tests/cases/unit/queryLanguage/singleRelativeField.spec.tsx +132 -0
  696. package/tests/cases/unit/queryLanguage/taggedMap.spec.tsx +41 -0
  697. package/tests/tsconfig.json +10 -0
  698. package/tsconfig.json +8 -0
  699. package/tsdoc.json +6 -0
@@ -0,0 +1,29 @@
1
+ import type { FieldName, FieldValue, RelativeSingleField } from '../treeParameters'
2
+ import { PlaceholderGenerator } from './PlaceholderGenerator'
3
+
4
+ /**
5
+ * A nonbearing field is only defined in context of create mutations. An entity will be created if and only if some
6
+ * other fields (not just nonbearing fields) are filled as well. This is particularly useful for programmatically
7
+ * controlled fields within repeaters.
8
+ */
9
+ export class FieldMarker {
10
+ public readonly placeholderName: string
11
+
12
+ constructor(
13
+ public readonly parameters: Omit<RelativeSingleField, 'hasOneRelationPath'>,
14
+ ) {
15
+ this.placeholderName = PlaceholderGenerator.getFieldPlaceholder(this.parameters.field)
16
+ }
17
+
18
+ get fieldName(): FieldName {
19
+ return this.parameters.field
20
+ }
21
+
22
+ get isNonbearing(): boolean {
23
+ return this.parameters.isNonbearing
24
+ }
25
+
26
+ get defaultValue(): FieldValue | undefined {
27
+ return this.parameters.defaultValue
28
+ }
29
+ }
@@ -0,0 +1,27 @@
1
+ import { BindingError } from '../BindingError'
2
+ import type { Environment } from '../environment'
3
+ import type { HasManyRelation } from '../treeParameters'
4
+ import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
5
+ import { PlaceholderGenerator } from './PlaceholderGenerator'
6
+
7
+ // This doesn't represent reduced has many relations.
8
+ export class HasManyRelationMarker {
9
+ public readonly placeholderName: string
10
+
11
+ public constructor(
12
+ public readonly parameters: HasManyRelation,
13
+ public readonly fields: EntityFieldMarkersContainer,
14
+ public readonly environment: Environment,
15
+ ) {
16
+ if (import.meta.env.DEV) {
17
+ if (parameters.initialEntityCount < 0 || !Number.isInteger(parameters.initialEntityCount)) {
18
+ throw new BindingError(`The preferred 'initialEntityCount' for a relation must be a non-negative integer!`)
19
+ }
20
+ }
21
+ this.placeholderName = PlaceholderGenerator.getHasManyRelationPlaceholder(this.parameters)
22
+ }
23
+
24
+ public get isNonbearing() {
25
+ return this.parameters.isNonbearing
26
+ }
27
+ }
@@ -0,0 +1,21 @@
1
+ import type { Environment } from '../environment'
2
+ import type { HasOneRelation } from '../treeParameters'
3
+ import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
4
+ import { PlaceholderGenerator } from './PlaceholderGenerator'
5
+
6
+ // This may also represent a reduced has many relation.
7
+ export class HasOneRelationMarker {
8
+ public readonly placeholderName: string
9
+
10
+ public constructor(
11
+ public readonly parameters: HasOneRelation,
12
+ public readonly fields: EntityFieldMarkersContainer,
13
+ public readonly environment: Environment,
14
+ ) {
15
+ this.placeholderName = PlaceholderGenerator.getHasOneRelationPlaceholder(this.parameters)
16
+ }
17
+
18
+ public get isNonbearing() {
19
+ return this.parameters.isNonbearing
20
+ }
21
+ }
@@ -0,0 +1,102 @@
1
+ import { PRIMARY_KEY_NAME, TYPENAME_KEY_NAME } from '../consts'
2
+ import {
3
+ EntityFieldMarkersContainer,
4
+ EntityListSubTreeMarker,
5
+ EntitySubTreeMarker,
6
+ FieldMarker,
7
+ HasManyRelationMarker,
8
+ HasOneRelationMarker,
9
+ } from '../markers'
10
+ import { assertNever } from '../utils/assertNever'
11
+ import { LocalizedBindingError } from '../LocalizedBindingError'
12
+
13
+ export class MarkerComparator {
14
+ public static isSubTreeSubsetOf(
15
+ candidate: EntitySubTreeMarker | EntityListSubTreeMarker,
16
+ superset: EntitySubTreeMarker | EntityListSubTreeMarker,
17
+ ): boolean {
18
+ if (candidate.placeholderName !== superset.placeholderName) {
19
+ return false
20
+ }
21
+ return this.isSubsetOf(candidate.fields, superset.fields)
22
+ }
23
+
24
+ public static assertEntityMarkersSubsetOf(
25
+ candidate: EntityFieldMarkersContainer,
26
+ superset: EntityFieldMarkersContainer,
27
+ ) {
28
+ this.assertSubsetOf(candidate, superset)
29
+ }
30
+
31
+ private static assertSubsetOf(candidate: EntityFieldMarkersContainer, superset: EntityFieldMarkersContainer) {
32
+ for (const [placeholderName, candidateMarker] of candidate.markers) {
33
+ const fromSuperset = superset.markers.get(placeholderName)
34
+
35
+ if (fromSuperset === undefined) {
36
+ if (candidateMarker instanceof FieldMarker) {
37
+ if (candidateMarker.fieldName === PRIMARY_KEY_NAME || candidateMarker.fieldName === TYPENAME_KEY_NAME) {
38
+ continue
39
+ }
40
+ throw new LocalizedBindingError(`The field '${candidateMarker.fieldName}' is missing.`, [candidateMarker])
41
+ }
42
+ if (candidateMarker instanceof HasOneRelationMarker || candidateMarker instanceof HasManyRelationMarker) {
43
+ const differentPlaceholders = superset.placeholders.get(candidateMarker.parameters.field)
44
+
45
+ if (differentPlaceholders === undefined) {
46
+ throw new LocalizedBindingError(`The relation '${candidateMarker.parameters.field}' is missing.`, [
47
+ candidateMarker,
48
+ ])
49
+ }
50
+ // TODO be more specific
51
+ throw new LocalizedBindingError(
52
+ `The relation '${candidateMarker.parameters.field}' exists but its parameters don't match exactly. ` +
53
+ `Check that all relation parameters are the same.`,
54
+ [candidateMarker],
55
+ )
56
+ }
57
+ assertNever(candidateMarker)
58
+ }
59
+ if (candidateMarker instanceof FieldMarker) {
60
+ continue
61
+ }
62
+ try {
63
+ if (
64
+ (candidateMarker instanceof HasOneRelationMarker && fromSuperset instanceof HasOneRelationMarker) ||
65
+ (candidateMarker instanceof HasManyRelationMarker && fromSuperset instanceof HasManyRelationMarker)
66
+ ) {
67
+ this.assertSubsetOf(candidateMarker.fields, fromSuperset.fields)
68
+ }
69
+ } catch (e) {
70
+ if (e instanceof LocalizedBindingError) {
71
+ throw e.nestedIn(candidateMarker)
72
+ }
73
+ throw e
74
+ }
75
+ }
76
+ }
77
+
78
+ private static isSubsetOf(candidate: EntityFieldMarkersContainer, superset: EntityFieldMarkersContainer): boolean {
79
+ for (const [placeholderName, candidateMarker] of candidate.markers) {
80
+ const fromSuperset = superset.markers.get(placeholderName)
81
+
82
+ if (fromSuperset === undefined) {
83
+ if (
84
+ candidateMarker instanceof FieldMarker &&
85
+ (candidateMarker.fieldName === PRIMARY_KEY_NAME || candidateMarker.fieldName === TYPENAME_KEY_NAME)
86
+ ) {
87
+ continue
88
+ }
89
+ return false
90
+ }
91
+ if (candidateMarker instanceof FieldMarker || fromSuperset instanceof FieldMarker) {
92
+ continue
93
+ }
94
+ if (!this.isSubsetOf(candidateMarker.fields, fromSuperset.fields)) {
95
+ return false
96
+ }
97
+ }
98
+ return true
99
+ }
100
+
101
+ //private static assertAreMarkersSubsetOf(): {}
102
+ }
@@ -0,0 +1,300 @@
1
+ import { BindingError } from '../BindingError'
2
+ import { PRIMARY_KEY_NAME } from '../consts'
3
+ import {
4
+ EntityFieldMarkers,
5
+ EntityFieldMarkersContainer,
6
+ EntityFieldPlaceholders,
7
+ EntityListSubTreeMarker,
8
+ EntitySubTreeMarker,
9
+ FieldMarker,
10
+ HasManyRelationMarker,
11
+ HasOneRelationMarker,
12
+ MarkerTreeRoot,
13
+ MeaningfulMarker,
14
+ SubTreeMarkers,
15
+ } from '../markers'
16
+ import type { Alias, FieldName, PlaceholderName } from '../treeParameters'
17
+ import { assertNever } from '../utils/assertNever'
18
+ import { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'
19
+ import { Environment } from '../environment'
20
+
21
+ export class MarkerMerger {
22
+ // This method assumes their placeholder names are the same
23
+ public static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker {
24
+ if (original === fresh) {
25
+ return original
26
+ }
27
+ if (original instanceof FieldMarker) {
28
+ if (fresh instanceof FieldMarker) {
29
+ return this.mergeFieldMarkers(original, fresh)
30
+ } else if (fresh instanceof HasOneRelationMarker || fresh instanceof HasManyRelationMarker) {
31
+ return this.rejectRelationScalarCombo(original.fieldName)
32
+ } else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {
33
+ throw new BindingError('Merging fields and sub trees is an undefined operation.')
34
+ }
35
+ assertNever(fresh)
36
+ } else if (original instanceof HasOneRelationMarker) {
37
+ if (fresh instanceof HasOneRelationMarker) {
38
+ return this.mergeHasOneRelationMarkers(original, fresh)
39
+ } else if (fresh instanceof FieldMarker) {
40
+ return this.rejectRelationScalarCombo(original.parameters.field)
41
+ } else if (fresh instanceof HasManyRelationMarker) {
42
+ throw new BindingError() // TODO not implemented
43
+ } else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {
44
+ throw new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')
45
+ }
46
+ assertNever(fresh)
47
+ } else if (original instanceof HasManyRelationMarker) {
48
+ if (fresh instanceof HasManyRelationMarker) {
49
+ return this.mergeHasManyRelationMarkers(original, fresh)
50
+ } else if (fresh instanceof FieldMarker) {
51
+ return this.rejectRelationScalarCombo(original.parameters.field)
52
+ } else if (fresh instanceof HasOneRelationMarker) {
53
+ throw new BindingError() // TODO not implemented
54
+ } else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {
55
+ throw new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')
56
+ }
57
+ assertNever(fresh)
58
+ } else if (original instanceof EntitySubTreeMarker) {
59
+ if (fresh instanceof EntitySubTreeMarker) {
60
+ return this.mergeEntitySubTreeMarkers(original, fresh)
61
+ } else {
62
+ throw new BindingError(
63
+ 'MarkerTreeGenerator merging: EntitySubTreeMarker can only be merged with other entity sub trees.',
64
+ )
65
+ }
66
+ } else if (original instanceof EntityListSubTreeMarker) {
67
+ if (fresh instanceof EntityListSubTreeMarker) {
68
+ return this.mergeEntityListSubTreeMarkers(original, fresh)
69
+ } else {
70
+ throw new BindingError(
71
+ 'MarkerTreeGenerator merging: EntityListSubTreeMarker can only be merged with other list sub trees.',
72
+ )
73
+ }
74
+ }
75
+ assertNever(original)
76
+ }
77
+
78
+ public static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot {
79
+ if (original === fresh) {
80
+ return original
81
+ }
82
+ return new MarkerTreeRoot(
83
+ this.mergeEntityFields(original.subTrees, fresh.subTrees),
84
+ this.mergeSubTreePlaceholdersByAliases(original.placeholdersByAliases, fresh.placeholdersByAliases),
85
+ )
86
+ }
87
+
88
+ public static mergeSubTreeMarkers(
89
+ original: SubTreeMarkers | undefined,
90
+ fresh: SubTreeMarkers | undefined,
91
+ ): SubTreeMarkers | undefined {
92
+ if (original === fresh) {
93
+ return original
94
+ }
95
+ if (original === undefined) {
96
+ return fresh
97
+ }
98
+ if (fresh === undefined) {
99
+ return original
100
+ }
101
+ const newOriginal = new Map(original)
102
+
103
+ for (const [placeholderName, fromFresh] of fresh) {
104
+ const fromOriginal = newOriginal.get(placeholderName)
105
+
106
+ newOriginal.set(
107
+ placeholderName,
108
+ fromOriginal === undefined
109
+ ? fromFresh
110
+ : fromOriginal instanceof EntityListSubTreeMarker
111
+ ? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)
112
+ : MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),
113
+ )
114
+ }
115
+ return newOriginal
116
+ }
117
+
118
+ public static mergeSubTreePlaceholdersByAliases(
119
+ original: ReadonlyMap<Alias, PlaceholderName>,
120
+ fresh: ReadonlyMap<Alias, PlaceholderName>,
121
+ ) {
122
+ const newOriginalAliases = new Map(original)
123
+ for (const [alias, placeholder] of fresh) {
124
+ const fromOriginal = newOriginalAliases.get(alias)
125
+ if (fromOriginal === undefined) {
126
+ newOriginalAliases.set(alias, placeholder)
127
+ } else if (fromOriginal === placeholder) {
128
+ // Do nothing
129
+ } else {
130
+ throw new BindingError(`Illegal subTree alias '${alias}' points to distinct subTrees.`)
131
+ }
132
+ }
133
+ return newOriginalAliases
134
+ }
135
+
136
+ public static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers
137
+ public static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers
138
+ public static mergeEntityFields(
139
+ original: ReadonlyMap<PlaceholderName, MeaningfulMarker>,
140
+ fresh: ReadonlyMap<PlaceholderName, MeaningfulMarker>,
141
+ ): ReadonlyMap<PlaceholderName, MeaningfulMarker> {
142
+ if (original === fresh) {
143
+ return original
144
+ }
145
+ if (original.size === 0) {
146
+ return fresh
147
+ }
148
+ const newOriginal: Map<PlaceholderName, MeaningfulMarker> = new Map(original)
149
+ for (const [placeholderName, freshMarker] of fresh) {
150
+ const markerFromOriginal = newOriginal.get(placeholderName)
151
+ newOriginal.set(
152
+ placeholderName,
153
+ markerFromOriginal === undefined ? freshMarker : this.mergeMarkers(markerFromOriginal, freshMarker),
154
+ )
155
+ }
156
+ return newOriginal
157
+ }
158
+
159
+ public static mergeEntityFieldPlaceholders(
160
+ original: EntityFieldPlaceholders,
161
+ fresh: EntityFieldPlaceholders,
162
+ ): EntityFieldPlaceholders {
163
+ if (original === fresh) {
164
+ return original
165
+ }
166
+ if (original.size === 0) {
167
+ return fresh
168
+ }
169
+ const newOriginal: Map<FieldName, PlaceholderName | Set<PlaceholderName>> = new Map(original)
170
+ for (const [fieldName, freshPlaceholders] of fresh) {
171
+ const placeholderFromOriginal = newOriginal.get(fieldName)
172
+
173
+ if (placeholderFromOriginal === undefined) {
174
+ newOriginal.set(fieldName, freshPlaceholders)
175
+ } else if (placeholderFromOriginal instanceof Set) {
176
+ const combinedSet = new Set(placeholderFromOriginal)
177
+ if (freshPlaceholders instanceof Set) {
178
+ for (const freshPlaceholder of freshPlaceholders) {
179
+ combinedSet.add(freshPlaceholder)
180
+ }
181
+ } else if (typeof freshPlaceholders === 'string') {
182
+ combinedSet.add(freshPlaceholders)
183
+ } else {
184
+ assertNever(freshPlaceholders)
185
+ }
186
+ newOriginal.set(fieldName, combinedSet)
187
+ } else if (typeof placeholderFromOriginal === 'string') {
188
+ if (typeof freshPlaceholders === 'string') {
189
+ if (placeholderFromOriginal === freshPlaceholders) {
190
+ // Do nothing
191
+ } else {
192
+ newOriginal.set(fieldName, new Set([placeholderFromOriginal, freshPlaceholders]))
193
+ }
194
+ } else if (freshPlaceholders instanceof Set) {
195
+ if (freshPlaceholders.has(placeholderFromOriginal)) {
196
+ newOriginal.set(fieldName, freshPlaceholders)
197
+ } else {
198
+ const combinedSet = new Set(freshPlaceholders)
199
+ combinedSet.add(placeholderFromOriginal)
200
+ newOriginal.set(fieldName, combinedSet)
201
+ }
202
+ } else {
203
+ assertNever(freshPlaceholders)
204
+ }
205
+ } else {
206
+ assertNever(placeholderFromOriginal)
207
+ }
208
+ }
209
+ return newOriginal
210
+ }
211
+
212
+ public static mergeEntityFieldsContainers(
213
+ original: EntityFieldMarkersContainer,
214
+ fresh: EntityFieldMarkersContainer,
215
+ ): EntityFieldMarkersContainer {
216
+ if (original === fresh) {
217
+ return original
218
+ }
219
+ return new EntityFieldMarkersContainer(
220
+ original.hasAtLeastOneBearingField || fresh.hasAtLeastOneBearingField,
221
+ this.mergeEntityFields(original.markers, fresh.markers),
222
+ this.mergeEntityFieldPlaceholders(original.placeholders, fresh.placeholders),
223
+ )
224
+ }
225
+
226
+ public static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker) {
227
+ if (original === fresh) {
228
+ return original
229
+ }
230
+ return new HasOneRelationMarker(
231
+ TreeParameterMerger.mergeHasOneRelationsWithSamePlaceholders(original.parameters, fresh.parameters),
232
+ this.mergeEntityFieldsContainers(original.fields, fresh.fields),
233
+ this.mergeEnvironments(original.environment, fresh.environment),
234
+ )
235
+ }
236
+
237
+ public static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker) {
238
+ if (original === fresh) {
239
+ return original
240
+ }
241
+ return new HasManyRelationMarker(
242
+ TreeParameterMerger.mergeHasManyRelationsWithSamePlaceholders(original.parameters, fresh.parameters),
243
+ this.mergeEntityFieldsContainers(original.fields, fresh.fields),
244
+ this.mergeEnvironments(original.environment, fresh.environment),
245
+ )
246
+ }
247
+
248
+ public static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker) {
249
+ if (original === fresh) {
250
+ return original
251
+ }
252
+ return new EntitySubTreeMarker(
253
+ TreeParameterMerger.mergeEntitySubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),
254
+ this.mergeEntityFieldsContainers(original.fields, fresh.fields),
255
+ this.mergeEnvironments(original.environment, fresh.environment),
256
+ )
257
+ }
258
+
259
+ public static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker) {
260
+ if (original === fresh) {
261
+ return original
262
+ }
263
+ return new EntityListSubTreeMarker(
264
+ TreeParameterMerger.mergeEntityListSubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),
265
+ this.mergeEntityFieldsContainers(original.fields, fresh.fields),
266
+ this.mergeEnvironments(original.environment, fresh.environment),
267
+ )
268
+ }
269
+
270
+ public static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker) {
271
+ if (original === fresh) {
272
+ return original
273
+ }
274
+ return new FieldMarker(TreeParameterMerger.mergeSingleField(original.parameters, fresh.parameters))
275
+ }
276
+
277
+ public static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer {
278
+ const primaryKey = new FieldMarker({
279
+ field: PRIMARY_KEY_NAME,
280
+ defaultValue: undefined,
281
+ isNonbearing: true,
282
+ eventListeners: undefined,
283
+ })
284
+ // We could potentially share this instance for all fields. Maybe sometime later.
285
+ const freshFields = new EntityFieldMarkersContainer(
286
+ false,
287
+ new Map([[primaryKey.placeholderName, primaryKey]]),
288
+ new Map([[PRIMARY_KEY_NAME, primaryKey.placeholderName]]),
289
+ )
290
+ return original ? this.mergeEntityFieldsContainers(original, freshFields) : freshFields
291
+ }
292
+
293
+ public static mergeEnvironments(original: Environment, fresh: Environment): Environment {
294
+ return original.merge(fresh)
295
+ }
296
+
297
+ private static rejectRelationScalarCombo(fieldName: FieldName): never {
298
+ throw new BindingError(`Cannot combine a relation with a scalar field '${fieldName}'.`)
299
+ }
300
+ }
@@ -0,0 +1,9 @@
1
+ import type { Alias, PlaceholderName } from '../treeParameters'
2
+ import type { SubTreeMarkers } from './SubTreeMarkers'
3
+
4
+ export class MarkerTreeRoot {
5
+ public constructor(
6
+ public readonly subTrees: SubTreeMarkers,
7
+ public readonly placeholdersByAliases: ReadonlyMap<Alias, PlaceholderName>,
8
+ ) {}
9
+ }
@@ -0,0 +1,12 @@
1
+ import type { EntityListSubTreeMarker } from './EntityListSubTreeMarker'
2
+ import type { EntitySubTreeMarker } from './EntitySubTreeMarker'
3
+ import type { FieldMarker } from './FieldMarker'
4
+ import type { HasManyRelationMarker } from './HasManyRelationMarker'
5
+ import type { HasOneRelationMarker } from './HasOneRelationMarker'
6
+
7
+ export type MeaningfulMarker =
8
+ | FieldMarker
9
+ | HasOneRelationMarker
10
+ | HasManyRelationMarker
11
+ | EntityListSubTreeMarker
12
+ | EntitySubTreeMarker
@@ -0,0 +1,40 @@
1
+ import type {
2
+ FieldName,
3
+ HasManyRelation,
4
+ HasOneRelation,
5
+ QualifiedEntityList,
6
+ QualifiedSingleEntity,
7
+ UnconstrainedQualifiedEntityList,
8
+ UnconstrainedQualifiedSingleEntity,
9
+ } from '../treeParameters'
10
+ import { Hashing } from '../utils/Hashing'
11
+ import { Environment } from '../environment'
12
+ import { PlaceholderParametersGenerator } from './PlaceholderParametersGenerator'
13
+
14
+ export class PlaceholderGenerator {
15
+ public static getFieldPlaceholder(fieldName: FieldName): string {
16
+ return fieldName // hashing intentionally ignored
17
+ }
18
+
19
+ public static getHasOneRelationPlaceholder(relation: HasOneRelation): string {
20
+ return `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasOneRelationParameters(relation))}`
21
+ }
22
+
23
+ public static getHasManyRelationPlaceholder(relation: HasManyRelation): string {
24
+ return `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasManyRelationParameters(relation))}`
25
+ }
26
+
27
+ public static getEntitySubTreePlaceholder(
28
+ subTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,
29
+ environment: Environment,
30
+ ): string {
31
+ return `est_${Hashing.hashAny(PlaceholderParametersGenerator.createEntitySubTreeParameters(subTreeParameters, environment))}`
32
+ }
33
+
34
+ public static getEntityListSubTreePlaceholder(
35
+ subTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,
36
+ environment: Environment,
37
+ ): string {
38
+ return `lst_${Hashing.hashAny(PlaceholderParametersGenerator.createEntityListSubTreeParameters(subTreeParameters, environment))}`
39
+ }
40
+ }
@@ -0,0 +1,79 @@
1
+ import {
2
+ HasManyRelation,
3
+ HasOneRelation,
4
+ QualifiedEntityList,
5
+ QualifiedSingleEntity,
6
+ UnconstrainedQualifiedEntityList,
7
+ UnconstrainedQualifiedSingleEntity,
8
+ } from '../treeParameters'
9
+ import { Environment } from '../environment'
10
+
11
+ export class PlaceholderParametersGenerator {
12
+
13
+ public static createHasOneRelationParameters(relation: HasOneRelation): any {
14
+ return {
15
+ type: 'hasOne',
16
+ field: relation.field,
17
+ filter: relation.filter,
18
+ reducedBy: relation.reducedBy,
19
+ }
20
+ }
21
+
22
+ public static createHasManyRelationParameters(relation: HasManyRelation): any {
23
+ return {
24
+ type: 'hasMany',
25
+ field: relation.field,
26
+ filter: relation.filter,
27
+ offset: relation.offset,
28
+ limit: relation.limit,
29
+ orderBy: relation.orderBy,
30
+ }
31
+ }
32
+
33
+ public static createEntityListSubTreeParameters(
34
+ parameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,
35
+ environment: Environment,
36
+ ): any {
37
+ if (parameters.isCreating) {
38
+ return {
39
+ type: 'entityListSubtree',
40
+ isCreating: true,
41
+ entityName: parameters.entityName,
42
+ variables: environment.getAllVariables(),
43
+ }
44
+ }
45
+ return {
46
+ type: 'entityListSubtree',
47
+ isCreating: false,
48
+ entityName: parameters.entityName,
49
+ filter: parameters.filter,
50
+ offset: parameters.offset,
51
+ limit: parameters.limit,
52
+ orderBy: parameters.orderBy,
53
+ variables: environment.getAllVariables(),
54
+ }
55
+ }
56
+
57
+ public static createEntitySubTreeParameters(
58
+ parameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,
59
+ environment: Environment,
60
+ ): any {
61
+ if (parameters.isCreating) {
62
+ return {
63
+ type: 'entitySubTree',
64
+ isCreating: true,
65
+ entityName: parameters.entityName,
66
+ variables: environment.getAllVariables(),
67
+ }
68
+ }
69
+ return {
70
+ type: 'entitySubTree',
71
+ isCreating: false,
72
+ where: parameters.where,
73
+ entityName: parameters.entityName,
74
+ filter: parameters.filter,
75
+ variables: environment.getAllVariables(),
76
+ }
77
+ }
78
+
79
+ }
@@ -0,0 +1,5 @@
1
+ import type { PlaceholderName } from '../treeParameters'
2
+ import type { EntityListSubTreeMarker } from './EntityListSubTreeMarker'
3
+ import type { EntitySubTreeMarker } from './EntitySubTreeMarker'
4
+
5
+ export type SubTreeMarkers = ReadonlyMap<PlaceholderName, EntitySubTreeMarker | EntityListSubTreeMarker>
@@ -0,0 +1,17 @@
1
+ export * from './EntityFieldMarkers'
2
+ export * from './EntityFieldMarkersContainer'
3
+ export * from './EntityFieldPlaceholders'
4
+ export * from './EntityFieldsWithHoistablesMarker'
5
+ export * from './EntityListSubTreeMarker'
6
+ export * from './EntitySubTreeMarker'
7
+ export * from './FieldMarker'
8
+ export * from './HasManyRelationMarker'
9
+ export * from './HasOneRelationMarker'
10
+ export * from './MarkerTreeRoot'
11
+ export * from './MeaningfulMarker'
12
+ export * from './PlaceholderGenerator'
13
+ export * from './SubTreeMarkers'
14
+
15
+ export * from './PlaceholderParametersGenerator'
16
+ export * from './MarkerMerger'
17
+ export * from './MarkerComparator'