@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,70 @@
1
+ import { generateEnumerabilityPreventingEntropy } from './utils/generateEnumerabilityPreventingEntropy'
2
+ import { EntityId } from './treeParameters'
3
+
4
+ export type UniqueEntityId = string & { __type: 'UniqueEntityId' }
5
+
6
+ export interface RuntimeIdSpec {
7
+ existsOnServer: boolean
8
+ value: EntityId
9
+ uniqueValue: UniqueEntityId
10
+ }
11
+
12
+ export class ServerId implements RuntimeIdSpec {
13
+ public get existsOnServer(): true {
14
+ return true
15
+ }
16
+ public constructor(public readonly value: EntityId, public readonly entityName: string) {
17
+ }
18
+
19
+ get uniqueValue() {
20
+ return ServerId.formatUniqueValue(this.value, this.entityName)
21
+ }
22
+
23
+ static formatUniqueValue(id: EntityId, entityName: string): UniqueEntityId {
24
+ return `${entityName}_${id}` as UniqueEntityId
25
+ }
26
+ }
27
+
28
+ export class ClientGeneratedUuid implements RuntimeIdSpec {
29
+ public get existsOnServer(): false {
30
+ return false
31
+ }
32
+ public constructor(public readonly value: string) {}
33
+
34
+ get uniqueValue() {
35
+ return this.value as UniqueEntityId
36
+ }
37
+ }
38
+
39
+ export class UnpersistedEntityDummyId implements RuntimeIdSpec {
40
+ public get existsOnServer(): false {
41
+ return false
42
+ }
43
+ public readonly value: string
44
+
45
+ private static getNextSeed = (() => {
46
+ let seed = 0
47
+ return () => seed++
48
+ })()
49
+
50
+ public constructor() {
51
+ const enumerabilityPreventingEntropy = generateEnumerabilityPreventingEntropy(
52
+ UnpersistedEntityDummyId.entropyLength,
53
+ )
54
+
55
+ // KEEP THIS IN SYNC WITH THE REGEX BELOW!!!
56
+ this.value = `adminOnlyDummyId-${enumerabilityPreventingEntropy}-${UnpersistedEntityDummyId.getNextSeed()}`
57
+ }
58
+
59
+ private static entropyLength = 5
60
+ private static dummyIdRegex = new RegExp(`^adminOnlyDummyId-\\d{${UnpersistedEntityDummyId.entropyLength}}-\\d+$`)
61
+ public static matchesDummyId(candidate: EntityId): boolean {
62
+ return typeof candidate === 'string' && UnpersistedEntityDummyId.dummyIdRegex.test(candidate)
63
+ }
64
+
65
+ get uniqueValue() {
66
+ return this.value as UniqueEntityId
67
+ }
68
+ }
69
+
70
+ export type RuntimeId = ServerId | ClientGeneratedUuid | UnpersistedEntityDummyId
package/src/consts.ts ADDED
@@ -0,0 +1,3 @@
1
+ export const PRIMARY_KEY_NAME = 'id'
2
+ export const TYPENAME_KEY_NAME = '__typename'
3
+ export const NIL_UUID = '00000000-0000-0000-0000-000000000000'
@@ -0,0 +1,346 @@
1
+ import { BindingError } from '../BindingError'
2
+ import type { Filter } from '../treeParameters'
3
+ import equal from 'fast-deep-equal/es6/index.js'
4
+ import { Schema, SchemaColumn, SchemaEntity, SchemaRelation } from '../schema'
5
+ import { GraphQlLiteral } from '@contember/client'
6
+
7
+ class Environment<Node extends Environment.AnyNode | undefined = Environment.AnyNode | undefined> {
8
+ private constructor(
9
+ private readonly options: Environment.Options<Node>,
10
+ ) {
11
+ }
12
+
13
+ public static create() {
14
+ return new Environment({
15
+ dimensions: {},
16
+ variables: {},
17
+ parameters: {},
18
+ extensions: new Map(),
19
+ })
20
+ }
21
+
22
+ public getSubTree(): Environment.SubTreeNode {
23
+ for (let env: Environment = this; env.options.node; env = env.getParent()) {
24
+ const node = env.options.node
25
+ if (node.type === 'subtree-entity' || node.type === 'subtree-entity-list') {
26
+ return node
27
+ }
28
+ }
29
+ throw new BindingError('Not in a SubTree')
30
+ }
31
+
32
+ public getSubTreeNode(): Node & Environment.AnyNode {
33
+ if (!this.options.node) {
34
+ throw new BindingError()
35
+ }
36
+ return this.options.node
37
+ }
38
+
39
+ public withSubTree<Node extends Environment.SubTreeNode>(SubTree: Node): Environment<Node> {
40
+ const { parent, ...options } = this.options
41
+ return new Environment({
42
+ ...options,
43
+ node: SubTree,
44
+ })
45
+ }
46
+
47
+ public withSubTreeChild<Node extends Environment.InnerNode>(node: Node): Environment<Node> {
48
+ if (!this.options.node) {
49
+ throw new BindingError(`Cannot call withSubTreeChild without previous call of withSubTree`)
50
+ }
51
+ if (this.options.node.entity.fields.get(node.field.name) !== node.field) {
52
+ throw new BindingError()
53
+ }
54
+ return new Environment({
55
+ ...this.options,
56
+ node,
57
+ parent: this,
58
+ })
59
+ }
60
+
61
+
62
+ public hasVariable(key: string): boolean {
63
+ return key in this.options.variables
64
+ }
65
+
66
+ public getVariable<V extends Environment.Value = Environment.Value>(key: string): V {
67
+ if (!(key in this.options.variables)) {
68
+ throw new BindingError(`Variable ${key} not found`)
69
+ }
70
+ return this.options.variables[key] as V
71
+ }
72
+
73
+ public getVariableOrElse<F, V extends Environment.Value = Environment.Value>(key: string, fallback: F): V | F {
74
+ return (this.options.variables[key] as V) ?? fallback
75
+ }
76
+
77
+ /** @deprecated use getVariable or getParameter */
78
+ public getValue<V extends Environment.Value = Environment.Value>(key: string): V {
79
+ console.warn('Environment.getValue() is deprecated, use Environment.getVariable() or Environment.getParameter() instead.')
80
+ return this.getVariableOrElse(key, undefined) ?? this.getParameterOrElse(key, undefined) as V
81
+ }
82
+
83
+ /** @deprecated use getVariableOrElse or getParameterOrElse */
84
+ public getValueOrElse<F, V extends Environment.Value = Environment.Value>(key: string, fallback: F): V | F {
85
+ console.warn('Environment.getValueOrElse() is deprecated, use Environment.getVariableOrElse() or Environment.getParameterOrElse() instead.')
86
+ return this.getVariableOrElse(key, undefined) ?? this.getParameterOrElse(key, fallback) as any
87
+ }
88
+
89
+ /** @deprecated */
90
+ public hasName(key: string): boolean {
91
+ console.warn('Environment.hasName() is deprecated, use Environment.hasVariable() or Environment.hasParameter() instead.')
92
+ return key in this.options.variables || key in this.options.parameters
93
+ }
94
+
95
+ public withVariables(variables: Environment.ValuesMapWithFactory | undefined): Environment {
96
+ if (variables === undefined) {
97
+ return this
98
+ }
99
+ const newVariables = { ...this.options.variables }
100
+ for (const [newName, newValue] of Object.entries(variables)) {
101
+ if (newName === 'labelMiddleware') {
102
+ throw new BindingError('You cannot pass labelMiddleware to withVariables method. Use withLabelMiddleware instead.')
103
+ }
104
+ const resolvedValue = typeof newValue === 'function' ? newValue(this) : newValue
105
+ if (resolvedValue === undefined) {
106
+ delete newVariables[newName]
107
+ } else {
108
+ newVariables[newName] = resolvedValue
109
+ }
110
+ }
111
+ return new Environment({
112
+ ...this.options,
113
+ variables: newVariables,
114
+ parent: this,
115
+ })
116
+ }
117
+
118
+ public getAllVariables() {
119
+ return this.options.variables
120
+ }
121
+
122
+ public hasParameter(key: string): boolean {
123
+ return key in this.options.parameters
124
+ }
125
+
126
+ public getParameter<F>(key: string): string | number {
127
+ if (!(key in this.options.parameters)) {
128
+ throw new BindingError(`Parameter ${key} not found`)
129
+ }
130
+ return this.options.parameters[key] as string | number
131
+ }
132
+
133
+ public getParameterOrElse<F>(key: string, fallback: F): string | number | F {
134
+ return this.options.parameters[key] ?? fallback
135
+ }
136
+
137
+ public getAllParameters() {
138
+ return this.options.parameters
139
+ }
140
+
141
+ public withParameters(parameters: Environment.Parameters): Environment {
142
+ return new Environment({ ...this.options, parameters })
143
+ }
144
+
145
+ public hasDimension(dimensionName: string): boolean {
146
+ return dimensionName in this.options.dimensions
147
+ }
148
+
149
+ public getDimension<F>(dimensionName: string): string[] {
150
+ if (!(dimensionName in this.options.dimensions)) {
151
+ throw new BindingError(`Dimension ${dimensionName} does not exist.`)
152
+ }
153
+ return this.options.dimensions[dimensionName]
154
+ }
155
+
156
+ public getDimensionOrElse<F>(dimensionName: string, fallback: F): string[] | F {
157
+ return this.options.dimensions[dimensionName] ?? fallback
158
+ }
159
+
160
+ public getAllDimensions(): Environment.SelectedDimensions {
161
+ return this.options.dimensions
162
+ }
163
+
164
+ public withDimensions(dimensions: Environment.SelectedDimensions): Environment {
165
+ const newDimensions = {
166
+ ...this.options.dimensions,
167
+ ...dimensions,
168
+ }
169
+ if (equal(newDimensions, this.options.dimensions)) {
170
+ return this
171
+ }
172
+ return new Environment({ ...this.options, dimensions: newDimensions })
173
+ }
174
+
175
+ hasSchema(): boolean {
176
+ return this.options.schema !== undefined
177
+ }
178
+
179
+ public getSchema(): Schema {
180
+ if (!this.options.schema) {
181
+ throw new BindingError('Schema is not set')
182
+ }
183
+ return this.options.schema
184
+ }
185
+
186
+ public withSchema(schema: Schema): Environment {
187
+ return new Environment({ ...this.options, schema })
188
+ }
189
+
190
+ public getParent(): Environment {
191
+ if (!this.options.parent) {
192
+ throw new BindingError('There is no parent environment')
193
+ }
194
+ return this.options.parent
195
+ }
196
+
197
+ public withExtension<S, R>(extension: Environment.Extension<S, R>, state: S): Environment {
198
+ return new Environment({
199
+ ...this.options,
200
+ extensions: new Map([...this.options.extensions, [extension, state] as [Environment.Extension<unknown, unknown>, unknown]]),
201
+ })
202
+ }
203
+
204
+ public getExtension<S, R>(extension: Environment.Extension<S, R>): R {
205
+ const state = this.options.extensions.get(extension as Environment.Extension<unknown, unknown>)
206
+ return extension.create(state as S, this)
207
+ }
208
+
209
+ public merge(other: Environment): Environment {
210
+ if (other === this) {
211
+ return this
212
+ }
213
+ if (!equal(this.options.node, other.options.node)) {
214
+ throw new BindingError(`Cannot merge two environments with different tree position.`)
215
+ }
216
+ if (this.options.parameters !== other.options.parameters) {
217
+ throw new BindingError(`Cannot merge two environments with different parameters.`)
218
+ }
219
+ if (this.options.dimensions !== other.options.dimensions) {
220
+ throw new BindingError(`Cannot merge two environments with different dimensions.`)
221
+ }
222
+ if (this.options.extensions !== other.options.extensions) {
223
+ // todo: deep compare?
224
+ throw new BindingError(`Cannot merge two environments with different extensions.`)
225
+ }
226
+
227
+ if (equal(this.options.variables, other.options.variables) && this.options.parent === other.options.parent) {
228
+ return this
229
+ }
230
+ for (const key in other.options.variables) {
231
+ if (key in this.options.variables && !equal(this.options.variables[key], other.options.variables[key])) {
232
+ throw new BindingError(`Cannot merge two environments with different value of variable ${key}:\n`
233
+ + JSON.stringify(this.options.variables[key]) + '\n'
234
+ + JSON.stringify(other.options.variables[key]))
235
+ }
236
+ }
237
+
238
+ return new Environment({
239
+ ...this.options,
240
+ parent: this.options.parent && other.options.parent ? this.options.parent.merge(other.options.parent) : undefined,
241
+ variables: { ...this.options.variables, ...other.options.variables },
242
+ })
243
+ }
244
+ }
245
+
246
+ namespace Environment {
247
+ export type Name = string
248
+
249
+ export type ReactElementLike = {
250
+ type: any
251
+ props: any
252
+ }
253
+
254
+ export type Value = string | number | boolean | undefined | GraphQlLiteral | Filter | ReactElementLike
255
+
256
+ export type ResolvedValue = Value
257
+
258
+ export interface Options<Node extends AnyNode | undefined> {
259
+ node?: Node
260
+ schema?: Schema
261
+ dimensions: SelectedDimensions
262
+ parameters: Parameters
263
+ variables: CustomVariables
264
+ parent?: Environment
265
+ extensions: Map<Extension<unknown, unknown>, unknown>
266
+ }
267
+
268
+ export type SubTreeNode =
269
+ | SubTreeEntityNode
270
+ | SubTreeEntityListNode
271
+
272
+ export type InnerNode =
273
+ | EntityNode
274
+ | EntityListNode
275
+ | ColumnNode
276
+
277
+ export type AnyNode =
278
+ | SubTreeNode
279
+ | InnerNode
280
+
281
+ export interface SubTreeEntityNode {
282
+ type: 'subtree-entity'
283
+ entity: SchemaEntity
284
+ expectedCardinality: 'zero' | 'one' | 'zero-or-one'
285
+ filter: Filter
286
+ }
287
+
288
+ export interface SubTreeEntityListNode {
289
+ type: 'subtree-entity-list'
290
+ entity: SchemaEntity
291
+ expectedCardinality: 'zero-to-many' | 'zero'
292
+ filter: Filter
293
+ }
294
+
295
+ export interface EntityNode {
296
+ type: 'entity'
297
+ entity: SchemaEntity
298
+ field: SchemaRelation
299
+ }
300
+
301
+ export interface EntityListNode {
302
+ type: 'entity-list'
303
+ entity: SchemaEntity
304
+ field: SchemaRelation
305
+ }
306
+
307
+ export interface ColumnNode {
308
+ type: 'column'
309
+ entity: SchemaEntity
310
+ field: SchemaColumn
311
+ }
312
+
313
+ export interface SelectedDimensions {
314
+ [key: string]: string[]
315
+ }
316
+
317
+ export type Parameters = {
318
+ [K in string]?: string | number
319
+ }
320
+
321
+ export interface CustomVariables {
322
+ [key: string]: Value
323
+ }
324
+
325
+ export interface ValuesMapWithFactory {
326
+ [key: string]:
327
+ | ((environment: Environment) => Value)
328
+ | Value
329
+ }
330
+
331
+ export type Extension<State, Result> = {
332
+ create: (state: State | undefined, environment: Environment) => Result
333
+ }
334
+
335
+ export const createExtension = <S, R>(create: Extension<S, R>['create'], otherMethods?: Omit<Extension<S, R>, 'create'>): Extension<S, R> => {
336
+ return {
337
+ create,
338
+ ...otherMethods,
339
+ }
340
+ }
341
+
342
+ /** @deprecated */
343
+ export type DeltaFactory = ValuesMapWithFactory
344
+ }
345
+
346
+ export { Environment }
@@ -0,0 +1,137 @@
1
+ import { Environment } from './Environment'
2
+ import {
3
+ HasOneRelation,
4
+ SugaredQualifiedEntityList,
5
+ SugaredQualifiedSingleEntity,
6
+ SugaredRelativeEntityList,
7
+ SugaredRelativeSingleEntity,
8
+ SugaredRelativeSingleField,
9
+ SugaredUnconstrainedQualifiedEntityList,
10
+ SugaredUnconstrainedQualifiedSingleEntity,
11
+ } from '../treeParameters'
12
+ import { QueryLanguage } from '../queryLanguage'
13
+ import { whereToFilter } from '@contember/client'
14
+ import { TreeNodeUtils } from '../utils/TreeNodeUtils'
15
+
16
+ export class TreeNodeEnvironmentFactory {
17
+
18
+ public static createEnvironmentForEntityListSubtree(
19
+ environment: Environment,
20
+ sugaredEntityList: SugaredQualifiedEntityList | SugaredUnconstrainedQualifiedEntityList,
21
+ ): Environment {
22
+ let entityList
23
+ let rootWhere
24
+ let expectedCardinality: Environment.SubTreeNode['expectedCardinality']
25
+
26
+ if (sugaredEntityList.isCreating) {
27
+ entityList = QueryLanguage.desugarUnconstrainedQualifiedEntityList(sugaredEntityList, environment)
28
+ rootWhere = {} as const
29
+ expectedCardinality = 'zero'
30
+
31
+ } else {
32
+ entityList = QueryLanguage.desugarQualifiedEntityList(sugaredEntityList, environment)
33
+ rootWhere = entityList.filter ?? {}
34
+ expectedCardinality = 'zero-to-many'
35
+ }
36
+
37
+ const entitySchema = TreeNodeUtils.resolveEntity(environment.getSchema(), entityList.entityName, 'entity list')
38
+
39
+ return environment.withSubTree({
40
+ type: 'subtree-entity-list',
41
+ entity: entitySchema,
42
+ expectedCardinality,
43
+ filter: rootWhere,
44
+ })
45
+ }
46
+
47
+ public static createEnvironmentForEntitySubtree(
48
+ environment: Environment,
49
+ sugaredEntityList: SugaredQualifiedSingleEntity | SugaredUnconstrainedQualifiedSingleEntity,
50
+ ): Environment {
51
+ let entity
52
+ let rootWhere
53
+ let expectedCardinality: Environment.SubTreeNode['expectedCardinality']
54
+
55
+ if (sugaredEntityList.isCreating) {
56
+ rootWhere = { } as const
57
+ expectedCardinality = 'zero'
58
+ entity = QueryLanguage.desugarUnconstrainedQualifiedSingleEntity(sugaredEntityList, environment)
59
+
60
+ } else {
61
+ entity = QueryLanguage.desugarQualifiedSingleEntity(sugaredEntityList, environment, { missingSetOnCreate: 'fill' })
62
+ rootWhere = whereToFilter(entity.where)
63
+ expectedCardinality = entity.setOnCreate ? 'zero-or-one' : 'one'
64
+ }
65
+
66
+ const entitySchema = TreeNodeUtils.resolveEntity(environment.getSchema(), entity.entityName, 'entity')
67
+
68
+ return environment.withSubTree({
69
+ type: 'subtree-entity',
70
+ entity: entitySchema,
71
+ expectedCardinality: expectedCardinality,
72
+ filter: rootWhere,
73
+ })
74
+ }
75
+
76
+ public static createEnvironmentForEntityList(
77
+ environment: Environment,
78
+ sugaredRelativeEntityList: SugaredRelativeEntityList,
79
+ ): Environment {
80
+ const relativeEntityList = QueryLanguage.desugarRelativeEntityList(sugaredRelativeEntityList, environment)
81
+ const hasOneEnvironment = this.traverseHasOnePath(environment, relativeEntityList.hasOneRelationPath)
82
+ const hasManyField = relativeEntityList.hasManyRelation.field
83
+
84
+ const field = TreeNodeUtils.resolveHasManyRelation(hasOneEnvironment, hasManyField)
85
+
86
+ const targetEntity = environment.getSchema().getEntity(field.targetEntity)
87
+
88
+ return hasOneEnvironment.withSubTreeChild({
89
+ type: 'entity-list',
90
+ field,
91
+ entity: targetEntity,
92
+ })
93
+ }
94
+
95
+ public static createEnvironmentForEntity(
96
+ environment: Environment,
97
+ sugaredRelativeSingleEntity: SugaredRelativeSingleEntity,
98
+ ) {
99
+ const relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(sugaredRelativeSingleEntity, environment)
100
+
101
+ return this.traverseHasOnePath(environment, relativeSingleEntity.hasOneRelationPath)
102
+ }
103
+
104
+ public static createEnvironmentForField(
105
+ environment: Environment,
106
+ sugaredRelativeSingleField: SugaredRelativeSingleField,
107
+ ) {
108
+ const relativeSingleField = QueryLanguage.desugarRelativeSingleField(sugaredRelativeSingleField, environment)
109
+ const hasOneEnvironment = this.traverseHasOnePath(environment, relativeSingleField.hasOneRelationPath)
110
+
111
+ const field = TreeNodeUtils.resolveColumn(hasOneEnvironment, relativeSingleField.field)
112
+
113
+ return hasOneEnvironment.withSubTreeChild({
114
+ type: 'column',
115
+ entity: environment.getSubTreeNode().entity,
116
+ field,
117
+ })
118
+ }
119
+
120
+ private static traverseHasOnePath(
121
+ environment: Environment,
122
+ hasOneRelationPath: HasOneRelation[],
123
+ ): Environment {
124
+ for (const pathItem of hasOneRelationPath) {
125
+ const field = TreeNodeUtils.resolveHasOneRelation(environment, pathItem.field, !!pathItem.reducedBy)
126
+ const targetEntity = environment.getSchema().getEntity(field.targetEntity)
127
+
128
+ environment = environment.withSubTreeChild({
129
+ type: 'entity',
130
+ field,
131
+ entity: targetEntity,
132
+ })
133
+ }
134
+ return environment
135
+ }
136
+
137
+ }
@@ -0,0 +1,3 @@
1
+ export class VariableFieldValue {
2
+ public constructor(public readonly variableName: string) {}
3
+ }
@@ -0,0 +1,27 @@
1
+ import type { FieldValue, OptionallyVariableFieldValue } from '../treeParameters'
2
+ import { VariableFieldValue } from './VariableFieldValue'
3
+ import { Environment } from './Environment'
4
+ import { BindingError } from '../BindingError'
5
+
6
+ export class VariableInputTransformer {
7
+ public static transformValue(value: OptionallyVariableFieldValue, environment: Environment): FieldValue {
8
+ if (value instanceof VariableFieldValue) {
9
+ return VariableInputTransformer.transformVariableFieldValue(value, environment)
10
+ }
11
+ return value
12
+ }
13
+
14
+ public static transformVariableFieldValue(variableFieldValue: VariableFieldValue, environment: Environment): FieldValue {
15
+ const value = environment.getVariableOrElse(variableFieldValue.variableName, undefined)
16
+ ?? environment.getParameterOrElse(variableFieldValue.variableName, undefined)
17
+
18
+ if (value === undefined) {
19
+ throw new BindingError(`Variable '${variableFieldValue.variableName}' not found.`)
20
+ }
21
+
22
+ if (typeof value !== 'string' && typeof value !== 'boolean' && typeof value !== 'number' && value !== null) {
23
+ throw new BindingError(`The value of the '${variableFieldValue.variableName}' must be a scalar or null, not '${typeof value}'.`)
24
+ }
25
+ return value
26
+ }
27
+ }
@@ -0,0 +1,4 @@
1
+ export * from './Environment'
2
+ export * from './TreeNodeEnvironmentFactory'
3
+ export * from './VariableFieldValue'
4
+ export * from './VariableInputTransformer'
package/src/index.ts ADDED
@@ -0,0 +1,17 @@
1
+ export * from './markers'
2
+ export * from './treeParameters'
3
+ export * from './environment'
4
+ export * from './queryLanguage'
5
+ export * from './schema'
6
+ export * from './types'
7
+
8
+ export * from './consts'
9
+ export * from './BindingError'
10
+ export * from './DataBindingExtendAborted'
11
+ export * from './LocalizedBindingError'
12
+ export * from './RuntimeId'
13
+ export * from './utils/TreeNodeUtils'
14
+ export * from './utils/assertNever'
15
+ export * from './utils/createQueryBuilder'
16
+
17
+ export { v4 as generateUuid } from 'uuid'
@@ -0,0 +1,7 @@
1
+ import type { PlaceholderName } from '../treeParameters'
2
+ import type { FieldMarker } from './FieldMarker'
3
+ import type { HasManyRelationMarker } from './HasManyRelationMarker'
4
+ import type { HasOneRelationMarker } from './HasOneRelationMarker'
5
+
6
+ export type EntityFieldMarker = FieldMarker | HasOneRelationMarker | HasManyRelationMarker
7
+ export type EntityFieldMarkers = ReadonlyMap<PlaceholderName, EntityFieldMarker>
@@ -0,0 +1,10 @@
1
+ import type { EntityFieldMarkers } from './EntityFieldMarkers'
2
+ import type { EntityFieldPlaceholders } from './EntityFieldPlaceholders'
3
+
4
+ export class EntityFieldMarkersContainer {
5
+ public constructor(
6
+ public readonly hasAtLeastOneBearingField: boolean,
7
+ public readonly markers: EntityFieldMarkers, // Indexed by placeholder names
8
+ public readonly placeholders: EntityFieldPlaceholders, // Indexed by field names
9
+ ) {}
10
+ }
@@ -0,0 +1,3 @@
1
+ import type { FieldName, PlaceholderName } from '../treeParameters'
2
+
3
+ export type EntityFieldPlaceholders = ReadonlyMap<FieldName, PlaceholderName | Set<PlaceholderName>>
@@ -0,0 +1,11 @@
1
+ import type { ParentEntityParameters } from '../treeParameters'
2
+ import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
3
+ import type { SubTreeMarkers } from './SubTreeMarkers'
4
+
5
+ export class EntityFieldsWithHoistablesMarker {
6
+ public constructor(
7
+ public readonly fields: EntityFieldMarkersContainer,
8
+ public readonly subTrees: SubTreeMarkers | undefined,
9
+ public readonly parentReference: ParentEntityParameters | undefined,
10
+ ) {}
11
+ }
@@ -0,0 +1,20 @@
1
+ import type { Environment } from '../environment'
2
+ import type { QualifiedEntityList, UnconstrainedQualifiedEntityList } from '../treeParameters'
3
+ import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
4
+ import { PlaceholderGenerator } from './PlaceholderGenerator'
5
+
6
+ export class EntityListSubTreeMarker {
7
+ public readonly placeholderName: string
8
+
9
+ public constructor(
10
+ public readonly parameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,
11
+ public readonly fields: EntityFieldMarkersContainer,
12
+ public readonly environment: Environment,
13
+ ) {
14
+ this.placeholderName = PlaceholderGenerator.getEntityListSubTreePlaceholder(this.parameters, this.environment)
15
+ }
16
+
17
+ public get entityName() {
18
+ return this.parameters.entityName
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { Environment } from '../environment'
2
+ import type { QualifiedSingleEntity, UnconstrainedQualifiedSingleEntity } from '../treeParameters'
3
+ import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
4
+ import { PlaceholderGenerator } from './PlaceholderGenerator'
5
+
6
+ export class EntitySubTreeMarker {
7
+ public readonly placeholderName: string
8
+
9
+ public constructor(
10
+ public readonly parameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,
11
+ public readonly fields: EntityFieldMarkersContainer,
12
+ public readonly environment: Environment,
13
+ ) {
14
+ this.placeholderName = PlaceholderGenerator.getEntitySubTreePlaceholder(this.parameters, this.environment)
15
+ }
16
+
17
+ public get entityName() {
18
+ return this.parameters.entityName
19
+ }
20
+ }