@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,751 @@
1
+ import type { Environment } from '../environment'
2
+ import {
3
+ Alias,
4
+ EntityCreationParametersDefaults,
5
+ EntityEventListenerStore,
6
+ EntityListEventListenerStore,
7
+ EntityListPreferencesDefaults,
8
+ EntityName,
9
+ EventListenersStore,
10
+ FieldEventListenerStore,
11
+ FieldName,
12
+ Filter,
13
+ HasManyRelation,
14
+ HasOneRelation,
15
+ LeafFieldDefaults,
16
+ ParentEntityParameters,
17
+ QualifiedEntityList,
18
+ QualifiedEntityParametersDefaults,
19
+ QualifiedFieldList,
20
+ QualifiedSingleEntity,
21
+ RelationDefaults,
22
+ RelativeEntityList,
23
+ RelativeSingleEntity,
24
+ RelativeSingleField,
25
+ SugarableHasManyRelation,
26
+ SugarableHasOneRelation,
27
+ SugaredFilter,
28
+ SugaredParentEntityParameters,
29
+ SugaredQualifiedEntityList,
30
+ SugaredQualifiedFieldList,
31
+ SugaredQualifiedSingleEntity,
32
+ SugaredRelativeEntityList,
33
+ SugaredRelativeSingleEntity,
34
+ SugaredRelativeSingleField,
35
+ SugaredSetOnCreate,
36
+ SugaredUnconstrainedQualifiedEntityList,
37
+ SugaredUnconstrainedQualifiedSingleEntity,
38
+ UnconstrainedQualifiedEntityList,
39
+ UnconstrainedQualifiedSingleEntity,
40
+ UniqueWhere,
41
+ UnsugarableEntityListEventListeners,
42
+ UnsugarableFieldEventListeners,
43
+ UnsugarableSingleEntityEventListeners,
44
+ } from '../treeParameters'
45
+ import { Parser } from './Parser'
46
+ import { GraphQlLiteral } from '@contember/client'
47
+ import { ParsedHasManyRelation, ParsedHasOneRelation } from './ParserResults'
48
+ import { TokenRegExps } from './tokenList'
49
+ import { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'
50
+ import { VariableInputTransformer } from '../environment/VariableInputTransformer'
51
+
52
+ const emptyObject = Object.freeze({})
53
+
54
+ export class QueryLanguage {
55
+
56
+ private static preparePrimitiveEntryPoint<Entry extends Parser.EntryPoint>(entryPoint: Entry) {
57
+ return (input: string, environment: Environment): Parser.ParserResult[Entry] =>
58
+ Parser.parseQueryLanguageExpression(input, entryPoint, environment)
59
+ }
60
+
61
+ private static preparePrimitiveEntryPointWithFallback<Entry extends Parser.EntryPoint>(entryPoint: Entry) {
62
+ return (input: string | Parser.ParserResult[Entry], environment: Environment): Parser.ParserResult[Entry] => {
63
+ if (typeof input === 'string') {
64
+ return Parser.parseQueryLanguageExpression(input, entryPoint, environment)
65
+ }
66
+ return input
67
+ }
68
+ }
69
+
70
+ private static parseUnconstrainedQualifiedEntityList = QueryLanguage.preparePrimitiveEntryPoint('unconstrainedQualifiedEntityList')
71
+ private static parseUnconstrainedQualifiedSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('unconstrainedQualifiedEntityList')
72
+ private static parseQualifiedEntityList = QueryLanguage.preparePrimitiveEntryPoint('qualifiedEntityList')
73
+ private static parseQualifiedFieldList = QueryLanguage.preparePrimitiveEntryPoint('qualifiedFieldList')
74
+ private static parseQualifiedSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('qualifiedSingleEntity')
75
+ private static parseRelativeEntityList = QueryLanguage.preparePrimitiveEntryPoint('relativeEntityList')
76
+ private static parseRelativeSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('relativeSingleEntity')
77
+ private static parseRelativeSingleField = QueryLanguage.preparePrimitiveEntryPoint('relativeSingleField')
78
+
79
+ public static desugarUniqueWhere = QueryLanguage.preparePrimitiveEntryPointWithFallback('uniqueWhere')
80
+ public static desugarFilter = QueryLanguage.preparePrimitiveEntryPointWithFallback('filter')
81
+ public static desugarOrderBy = QueryLanguage.preparePrimitiveEntryPointWithFallback('orderBy')
82
+ public static desugarTaggedMap = QueryLanguage.preparePrimitiveEntryPointWithFallback('taggedMap')
83
+
84
+
85
+ public static desugarSetOnCreate(setOnCreate: SugaredSetOnCreate, environment: Environment): UniqueWhere {
86
+ if (Array.isArray(setOnCreate)) {
87
+ const whereList = setOnCreate.map(connection => this.desugarUniqueWhere(connection, environment))
88
+ return whereList.reduce(
89
+ (accumulator, uniqueWhere) => TreeParameterMerger.mergeSetOnCreate(accumulator, uniqueWhere)!,
90
+ )
91
+ }
92
+ if (typeof setOnCreate === 'string') {
93
+ return this.desugarUniqueWhere(setOnCreate, environment)
94
+ }
95
+ return setOnCreate
96
+ }
97
+
98
+ public static desugarEventListener<F extends Function>(listener: F | Set<F>): Set<F>
99
+ public static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined
100
+ public static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined {
101
+ if (typeof listener === 'function') {
102
+ return new Set([listener])
103
+ }
104
+ return listener
105
+ }
106
+
107
+ private static desugarSingleEntityEventListeners(
108
+ unsugarable: UnsugarableSingleEntityEventListeners,
109
+ ): EntityEventListenerStore | undefined {
110
+ if (
111
+ unsugarable.onBeforePersist === undefined &&
112
+ unsugarable.onBeforeUpdate === undefined &&
113
+ unsugarable.onInitialize === undefined &&
114
+ unsugarable.onPersistError === undefined &&
115
+ unsugarable.onPersistSuccess === undefined &&
116
+ unsugarable.onUpdate === undefined
117
+ ) {
118
+ return undefined
119
+ }
120
+
121
+ const store: EntityEventListenerStore = new EventListenersStore()
122
+
123
+ if (unsugarable.onConnectionUpdate) {
124
+ for (const fieldName in unsugarable.onConnectionUpdate) {
125
+ const listener = this.desugarEventListener(unsugarable.onConnectionUpdate[fieldName])
126
+ store.set({ type: 'connectionUpdate', key: fieldName }, listener)
127
+ }
128
+ }
129
+
130
+ const beforePersist = this.desugarEventListener(unsugarable.onBeforePersist)
131
+ const beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)
132
+ const initialize = this.desugarEventListener(unsugarable.onInitialize)
133
+ const persistError = this.desugarEventListener(unsugarable.onPersistError)
134
+ const persistSuccess = this.desugarEventListener(unsugarable.onPersistSuccess)
135
+ const update = this.desugarEventListener(unsugarable.onUpdate)
136
+
137
+ if (beforePersist) {
138
+ store.set({ type: 'beforePersist' }, beforePersist)
139
+ }
140
+ if (beforeUpdate) {
141
+ store.set({ type: 'beforeUpdate' }, beforeUpdate)
142
+ }
143
+ if (initialize) {
144
+ store.set({ type: 'initialize' }, initialize)
145
+ }
146
+ if (persistError) {
147
+ store.set({ type: 'persistError' }, persistError)
148
+ }
149
+ if (persistSuccess) {
150
+ store.set({ type: 'persistSuccess' }, persistSuccess)
151
+ }
152
+ if (update) {
153
+ store.set({ type: 'update' }, update)
154
+ }
155
+
156
+ return store
157
+ }
158
+
159
+ private static desugarEntityListEventListeners(unsugarable: UnsugarableEntityListEventListeners):
160
+ | {
161
+ eventListeners: EntityListEventListenerStore | undefined
162
+ childEventListeners: EntityEventListenerStore | undefined
163
+ }
164
+ | undefined {
165
+ if (
166
+ unsugarable.onBeforePersist === undefined &&
167
+ unsugarable.onBeforeUpdate === undefined &&
168
+ unsugarable.onChildBeforeUpdate === undefined &&
169
+ unsugarable.onChildInitialize === undefined &&
170
+ unsugarable.onChildUpdate === undefined &&
171
+ unsugarable.onInitialize === undefined &&
172
+ unsugarable.onPersistError === undefined &&
173
+ unsugarable.onPersistSuccess === undefined &&
174
+ unsugarable.onUpdate === undefined
175
+ ) {
176
+ return undefined
177
+ }
178
+
179
+ const eventListeners: EntityListEventListenerStore = new EventListenersStore()
180
+
181
+ const beforePersist = this.desugarEventListener(unsugarable.onBeforePersist)
182
+ const beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)
183
+ const initialize = this.desugarEventListener(unsugarable.onInitialize)
184
+ const persistError = this.desugarEventListener(unsugarable.onPersistError)
185
+ const persistSuccess = this.desugarEventListener(unsugarable.onPersistSuccess)
186
+ const update = this.desugarEventListener(unsugarable.onUpdate)
187
+
188
+ if (beforePersist) {
189
+ eventListeners.set({ type: 'beforePersist' }, beforePersist)
190
+ }
191
+ if (beforeUpdate) {
192
+ eventListeners.set({ type: 'beforeUpdate' }, beforeUpdate)
193
+ }
194
+ if (initialize) {
195
+ eventListeners.set({ type: 'initialize' }, initialize)
196
+ }
197
+ if (persistError) {
198
+ eventListeners.set({ type: 'persistError' }, persistError)
199
+ }
200
+ if (persistSuccess) {
201
+ eventListeners.set({ type: 'persistSuccess' }, persistSuccess)
202
+ }
203
+ if (update) {
204
+ eventListeners.set({ type: 'update' }, update)
205
+ }
206
+
207
+ const childEventListeners: EntityEventListenerStore = new EventListenersStore()
208
+
209
+ const childBeforeUpdate = this.desugarEventListener(unsugarable.onChildBeforeUpdate)
210
+ const childInitialize = this.desugarEventListener(unsugarable.onChildInitialize)
211
+ const childUpdate = this.desugarEventListener(unsugarable.onChildUpdate)
212
+
213
+ if (childBeforeUpdate) {
214
+ childEventListeners.set({ type: 'beforeUpdate' }, childBeforeUpdate)
215
+ }
216
+ if (childInitialize) {
217
+ childEventListeners.set({ type: 'initialize' }, childInitialize)
218
+ }
219
+ if (childUpdate) {
220
+ childEventListeners.set({ type: 'update' }, childUpdate)
221
+ }
222
+
223
+ return {
224
+ eventListeners,
225
+ childEventListeners,
226
+ }
227
+ }
228
+
229
+ private static desugarFieldEventListeners(
230
+ unsugarable: UnsugarableFieldEventListeners,
231
+ ): FieldEventListenerStore | undefined {
232
+ if (unsugarable.onBeforeUpdate === undefined && unsugarable.onUpdate === undefined) {
233
+ return undefined
234
+ }
235
+
236
+ const store: FieldEventListenerStore = new EventListenersStore()
237
+
238
+ const beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)
239
+ const update = this.desugarEventListener(unsugarable.onUpdate)
240
+
241
+ if (beforeUpdate) {
242
+ store.set({ type: 'beforeUpdate' }, beforeUpdate)
243
+ }
244
+ if (update) {
245
+ store.set({ type: 'update' }, update)
246
+ }
247
+
248
+ return store
249
+ }
250
+
251
+ private static desugarSubTreeAlias(alias: Alias | Set<Alias> | undefined): Set<Alias> | undefined {
252
+ if (alias === undefined) {
253
+ return undefined
254
+ }
255
+ if (alias instanceof Set) {
256
+ return alias
257
+ }
258
+ return new Set<Alias>().add(alias)
259
+ }
260
+
261
+ private static desugarHasOneRelation(
262
+ sugarable: SugarableHasOneRelation,
263
+ unsugarable: Omit<SugaredRelativeSingleEntity, 'field'>,
264
+ environment: Environment,
265
+ ): HasOneRelation {
266
+ return {
267
+ field: sugarable.field,
268
+ filter: sugarable.filter ? this.desugarFilter(sugarable.filter, environment) : undefined,
269
+ expectedMutation: unsugarable.expectedMutation ?? RelationDefaults.expectedMutation,
270
+ reducedBy: sugarable.reducedBy ? this.desugarUniqueWhere(sugarable.reducedBy, environment) : undefined,
271
+ setOnCreate: unsugarable.setOnCreate ? this.desugarSetOnCreate(unsugarable.setOnCreate, environment) : undefined,
272
+ isNonbearing: unsugarable.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
273
+ // forceCreation: unsugarable.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
274
+ eventListeners: this.desugarSingleEntityEventListeners(unsugarable),
275
+ }
276
+ }
277
+
278
+ private static augmentDesugaredHasOneRelationPath(
279
+ path: (ParsedHasOneRelation | string)[],
280
+ unsugarable: Omit<SugaredRelativeSingleEntity, 'field'>,
281
+ environment: Environment,
282
+ ): HasOneRelation[] {
283
+ return path.map((desugaredHasOneRelation, i) =>
284
+ // Unsugarable applies to the last
285
+ this.desugarHasOneRelation(
286
+ typeof desugaredHasOneRelation === 'string' ? { field: desugaredHasOneRelation } : desugaredHasOneRelation,
287
+ i === path.length - 1 ? unsugarable : {},
288
+ environment,
289
+ ),
290
+ )
291
+ }
292
+
293
+ private static augmentDesugaredHasManyRelation(
294
+ relation: ParsedHasManyRelation,
295
+ unsugarable: Omit<SugaredRelativeEntityList, 'field'>,
296
+ environment: Environment,
297
+ ): HasManyRelation {
298
+ const eventListeners = this.desugarEntityListEventListeners(unsugarable)
299
+ return {
300
+ field: relation.field,
301
+ filter: relation.filter,
302
+ expectedMutation: unsugarable.expectedMutation ?? RelationDefaults.expectedMutation,
303
+ isNonbearing: unsugarable.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
304
+ // forceCreation: unsugarable.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
305
+ initialEntityCount: unsugarable.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,
306
+ setOnCreate: unsugarable.setOnCreate ? this.desugarSetOnCreate(unsugarable.setOnCreate, environment) : undefined,
307
+ orderBy: unsugarable.orderBy ? this.desugarOrderBy(unsugarable.orderBy, environment) : undefined,
308
+ offset: unsugarable.offset,
309
+ limit: unsugarable.limit,
310
+ childEventListeners: eventListeners?.childEventListeners,
311
+ eventListeners: eventListeners?.eventListeners,
312
+ }
313
+ }
314
+
315
+ private static desugarHasOneRelationPath(
316
+ input: SugarableHasOneRelation[] | SugarableHasOneRelation | undefined,
317
+ lastRelation: Omit<SugaredRelativeSingleEntity, 'field'>,
318
+ environment: Environment,
319
+ ): HasOneRelation[] {
320
+ if (input === undefined) {
321
+ input = []
322
+ } else if (!Array.isArray(input)) {
323
+ input = [input]
324
+ }
325
+
326
+ const relationPath: HasOneRelation[] = []
327
+
328
+ const cappedLength = input.length - 1
329
+ let i = 0
330
+ for (; i < cappedLength; i++) {
331
+ // Deliberately leaving out the last element
332
+ const pathNode = input[i]
333
+
334
+ relationPath.push(this.desugarHasOneRelation(pathNode, {}, environment))
335
+ }
336
+ if (i in input) {
337
+ relationPath.push(this.desugarHasOneRelation(input[i], lastRelation, environment))
338
+ }
339
+
340
+ return relationPath
341
+ }
342
+
343
+ private static desugarHasManyRelation(
344
+ sugarablePart: SugarableHasManyRelation,
345
+ unsugarablePart: Omit<SugaredRelativeEntityList, 'field'>,
346
+ environment: Environment,
347
+ ): HasManyRelation {
348
+ const eventListeners = this.desugarEntityListEventListeners(unsugarablePart)
349
+ return {
350
+
351
+ filter: sugarablePart.filter ? this.desugarFilter(sugarablePart.filter, environment) : undefined,
352
+ limit: unsugarablePart.limit,
353
+ offset: unsugarablePart.offset,
354
+ orderBy: unsugarablePart.orderBy ? this.desugarOrderBy(unsugarablePart.orderBy, environment) : undefined,
355
+ initialEntityCount: unsugarablePart.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,
356
+ expectedMutation: unsugarablePart.expectedMutation ?? RelationDefaults.expectedMutation,
357
+ setOnCreate: unsugarablePart.setOnCreate
358
+ ? this.desugarSetOnCreate(unsugarablePart.setOnCreate, environment)
359
+ : undefined,
360
+ field: sugarablePart.field,
361
+ isNonbearing: unsugarablePart.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
362
+ // forceCreation: unsugarablePart.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
363
+ childEventListeners: eventListeners?.childEventListeners,
364
+ eventListeners: eventListeners?.eventListeners,
365
+ }
366
+ }
367
+
368
+ public static desugarUnconstrainedQualifiedEntityList(
369
+ { entities, ...unsugarableEntityList }: SugaredUnconstrainedQualifiedEntityList,
370
+ environment: Environment,
371
+ ): UnconstrainedQualifiedEntityList {
372
+ let hasOneRelationPath: HasOneRelation[]
373
+ let entityName: EntityName
374
+
375
+ if (typeof entities === 'string') {
376
+ const parsed = this.parseUnconstrainedQualifiedEntityList(entities, environment)
377
+ entityName = parsed.entityName
378
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
379
+ parsed.hasOneRelationPath,
380
+ emptyObject,
381
+ environment,
382
+ )
383
+ } else {
384
+ entityName = entities.entityName
385
+ hasOneRelationPath = this.desugarHasOneRelationPath(entities.hasOneRelationPath, emptyObject, environment)
386
+ }
387
+
388
+ const eventListeners = this.desugarEntityListEventListeners(unsugarableEntityList)
389
+
390
+ return {
391
+ isCreating: true,
392
+ isUnpersisted: unsugarableEntityList.isUnpersisted ?? false,
393
+ isNonbearing: unsugarableEntityList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
394
+ // forceCreation: unsugarableEntityList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
395
+ setOnCreate: unsugarableEntityList.setOnCreate
396
+ ? this.desugarSetOnCreate(unsugarableEntityList.setOnCreate, environment)
397
+ : undefined,
398
+ expectedMutation: unsugarableEntityList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,
399
+ childEventListeners: eventListeners?.childEventListeners,
400
+ eventListeners: eventListeners?.eventListeners,
401
+ initialEntityCount: unsugarableEntityList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,
402
+ alias: this.desugarSubTreeAlias(unsugarableEntityList.alias),
403
+ entityName,
404
+ hasOneRelationPath,
405
+ }
406
+ }
407
+
408
+ public static desugarUnconstrainedQualifiedSingleEntity(
409
+ { entity, ...unsugarableSingleEntity }: SugaredUnconstrainedQualifiedSingleEntity,
410
+ environment: Environment,
411
+ ): UnconstrainedQualifiedSingleEntity {
412
+ let hasOneRelationPath: HasOneRelation[]
413
+ let entityName: EntityName
414
+
415
+ if (typeof entity === 'string') {
416
+ const parsed = this.parseUnconstrainedQualifiedSingleEntity(entity, environment)
417
+ entityName = parsed.entityName
418
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
419
+ parsed.hasOneRelationPath,
420
+ unsugarableSingleEntity,
421
+ environment,
422
+ )
423
+ } else {
424
+ entityName = entity.entityName
425
+ hasOneRelationPath = this.desugarHasOneRelationPath(
426
+ entity.hasOneRelationPath,
427
+ unsugarableSingleEntity,
428
+ environment,
429
+ )
430
+ }
431
+
432
+ return {
433
+ isCreating: true,
434
+ isUnpersisted: unsugarableSingleEntity.isUnpersisted ?? false,
435
+ isNonbearing: unsugarableSingleEntity.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
436
+ // forceCreation: unsugarableSingleEntity.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
437
+ setOnCreate: unsugarableSingleEntity.setOnCreate
438
+ ? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)
439
+ : undefined,
440
+ expectedMutation: unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,
441
+ eventListeners: this.desugarSingleEntityEventListeners(unsugarableSingleEntity),
442
+ alias: this.desugarSubTreeAlias(unsugarableSingleEntity.alias),
443
+ entityName,
444
+ hasOneRelationPath,
445
+ }
446
+ }
447
+
448
+ public static desugarQualifiedEntityList(
449
+ { entities, ...unsugarableEntityList }: SugaredQualifiedEntityList,
450
+ environment: Environment,
451
+ ): QualifiedEntityList {
452
+ let entityName: EntityName
453
+ let hasOneRelationPath: HasOneRelation[]
454
+
455
+ let filter: SugaredFilter | undefined
456
+
457
+ if (typeof entities === 'string') {
458
+ const parsed = this.parseQualifiedEntityList(entities, environment)
459
+
460
+ entityName = parsed.entityName
461
+ filter = parsed.filter
462
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
463
+ parsed.hasOneRelationPath,
464
+ emptyObject,
465
+ environment,
466
+ )
467
+ } else {
468
+ entityName = entities.entityName
469
+ filter = entities.filter
470
+ hasOneRelationPath = this.desugarHasOneRelationPath(entities.hasOneRelationPath, emptyObject, environment)
471
+ }
472
+
473
+ const eventListeners = this.desugarEntityListEventListeners(unsugarableEntityList)
474
+
475
+ return {
476
+ entityName,
477
+ hasOneRelationPath,
478
+ filter: filter ? this.desugarFilter(filter, environment) : undefined,
479
+ limit: unsugarableEntityList.limit,
480
+ offset: unsugarableEntityList.offset,
481
+ orderBy: unsugarableEntityList.orderBy ? this.desugarOrderBy(unsugarableEntityList.orderBy, environment) : undefined,
482
+ initialEntityCount: unsugarableEntityList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,
483
+ alias: this.desugarSubTreeAlias(unsugarableEntityList.alias),
484
+ isCreating: false,
485
+ isNonbearing: unsugarableEntityList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
486
+ // forceCreation: unsugarableEntityList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
487
+ setOnCreate: unsugarableEntityList.setOnCreate
488
+ ? this.desugarSetOnCreate(unsugarableEntityList.setOnCreate, environment)
489
+ : undefined,
490
+ expectedMutation: unsugarableEntityList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,
491
+ childEventListeners: eventListeners?.childEventListeners,
492
+ eventListeners: eventListeners?.eventListeners,
493
+ }
494
+ }
495
+
496
+ public static desugarQualifiedFieldList(
497
+ { fields, ...unsugarableFieldList }: SugaredQualifiedFieldList,
498
+ environment: Environment,
499
+ ): QualifiedFieldList {
500
+ let field: FieldName
501
+ let entityName: EntityName
502
+ let filter: SugaredFilter | undefined
503
+ let hasOneRelationPath: HasOneRelation[]
504
+
505
+ if (typeof fields === 'string') {
506
+ const parsed = this.parseQualifiedFieldList(fields, environment)
507
+
508
+ field = parsed.field
509
+ entityName = parsed.entityName
510
+ filter = parsed.filter
511
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
512
+ parsed.hasOneRelationPath,
513
+ emptyObject,
514
+ environment,
515
+ )
516
+ } else {
517
+ field = fields.field
518
+ entityName = fields.entityName
519
+ filter = fields.filter
520
+ hasOneRelationPath = this.desugarHasOneRelationPath(fields.hasOneRelationPath, emptyObject, environment)
521
+ }
522
+
523
+ return {
524
+ field,
525
+ entityName,
526
+ hasOneRelationPath,
527
+ alias: this.desugarSubTreeAlias(unsugarableFieldList.alias),
528
+ isNonbearing: unsugarableFieldList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
529
+ // forceCreation: unsugarableFieldList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
530
+ defaultValue:
531
+ unsugarableFieldList.defaultValue !== undefined
532
+ ? VariableInputTransformer.transformValue(unsugarableFieldList.defaultValue, environment)
533
+ : undefined,
534
+ expectedMutation: unsugarableFieldList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,
535
+ eventListeners: this.desugarFieldEventListeners(unsugarableFieldList),
536
+ filter: filter ? this.desugarFilter(filter, environment) : undefined,
537
+ limit: unsugarableFieldList.limit,
538
+ offset: unsugarableFieldList.offset,
539
+ orderBy: unsugarableFieldList.orderBy ? this.desugarOrderBy(unsugarableFieldList.orderBy, environment) : undefined,
540
+ initialEntityCount: unsugarableFieldList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,
541
+ }
542
+ }
543
+
544
+ public static desugarQualifiedSingleEntity(
545
+ { entity, ...unsugarableSingleEntity }: SugaredQualifiedSingleEntity,
546
+ environment: Environment,
547
+ options: { missingSetOnCreate?: 'fill' | 'fillAndWarn' } = {},
548
+ ): QualifiedSingleEntity {
549
+ let entityName: EntityName
550
+ let where: UniqueWhere
551
+ let filter: Filter | undefined
552
+ let hasOneRelationPath: HasOneRelation[]
553
+
554
+ if (typeof entity === 'string') {
555
+ const parsed = this.parseQualifiedSingleEntity(entity, environment)
556
+
557
+ entityName = parsed.entityName
558
+ where = parsed.where
559
+ filter = parsed.filter
560
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
561
+ parsed.hasOneRelationPath,
562
+ unsugarableSingleEntity,
563
+ environment,
564
+ )
565
+ } else {
566
+ entityName = entity.entityName
567
+ where = this.desugarUniqueWhere(entity.where, environment)
568
+ filter = entity.filter ? this.desugarFilter(entity.filter, environment) : undefined
569
+ hasOneRelationPath = this.desugarHasOneRelationPath(
570
+ entity.hasOneRelationPath,
571
+ unsugarableSingleEntity,
572
+ environment,
573
+ )
574
+ }
575
+
576
+ // const forceCreation: boolean =
577
+ // unsugarableSingleEntity.forceCreation !== undefined
578
+ // ? unsugarableSingleEntity.forceCreation !== undefined
579
+ // : EntityCreationParametersDefaults.forceCreation
580
+ let setOnCreate: UniqueWhere | undefined =
581
+ unsugarableSingleEntity.setOnCreate !== undefined
582
+ ? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)
583
+ : undefined
584
+
585
+ // todo: remove deprecated code
586
+ if (!setOnCreate && options.missingSetOnCreate) {
587
+ const whereValues = Object.values(where)
588
+ if (whereValues.length === 1 && whereValues[0] instanceof GraphQlLiteral) {
589
+ setOnCreate = where
590
+ if (import.meta.env.DEV && options.missingSetOnCreate === 'fillAndWarn') {
591
+ console.warn('Automatic creation of singleton entities in EditPage is deprecated. Please use setOnCreate prop.')
592
+ }
593
+ }
594
+ }
595
+
596
+ const isNonbearing: boolean =
597
+ unsugarableSingleEntity.isNonbearing !== undefined
598
+ ? unsugarableSingleEntity.isNonbearing
599
+ : EntityCreationParametersDefaults.isNonbearing
600
+ const eventListeners = this.desugarSingleEntityEventListeners(unsugarableSingleEntity)
601
+ const expectedMutation =
602
+ unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation
603
+ const alias = this.desugarSubTreeAlias(unsugarableSingleEntity.alias)
604
+
605
+ return {
606
+ alias,
607
+ entityName,
608
+ isCreating: false,
609
+ where,
610
+ filter,
611
+ hasOneRelationPath,
612
+ // forceCreation,
613
+ setOnCreate,
614
+ isNonbearing,
615
+ eventListeners,
616
+ expectedMutation,
617
+ }
618
+ }
619
+
620
+ public static desugarParentEntityParameters(
621
+ parentEntity: SugaredParentEntityParameters,
622
+ environment: Environment,
623
+ ): ParentEntityParameters {
624
+ return {
625
+ eventListeners: this.desugarSingleEntityEventListeners(parentEntity),
626
+ }
627
+ }
628
+
629
+ public static desugarRelativeSingleEntity(
630
+ sugaredRelativeSingleEntity: string | SugaredRelativeSingleEntity,
631
+ environment: Environment,
632
+ ): RelativeSingleEntity {
633
+ let field: SugaredRelativeSingleEntity['field']
634
+ let unsugarableEntity: Omit<SugaredRelativeSingleEntity, 'field'>
635
+ if (typeof sugaredRelativeSingleEntity === 'string') {
636
+ field = sugaredRelativeSingleEntity
637
+ unsugarableEntity = {}
638
+ } else {
639
+ field = sugaredRelativeSingleEntity.field
640
+ unsugarableEntity = sugaredRelativeSingleEntity
641
+ }
642
+
643
+ let hasOneRelationPath: HasOneRelation[]
644
+ if (typeof field === 'string') {
645
+ // fast path
646
+ if (field.match(TokenRegExps.dotSeparatedIdentifier)) {
647
+ const parts = field.split('.')
648
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parts, unsugarableEntity, environment)
649
+ } else {
650
+ const parsed = this.parseRelativeSingleEntity(field, environment)
651
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
652
+ parsed.hasOneRelationPath,
653
+ unsugarableEntity,
654
+ environment,
655
+ )
656
+ }
657
+
658
+ } else {
659
+ hasOneRelationPath = this.desugarHasOneRelationPath(field, unsugarableEntity, environment)
660
+ }
661
+
662
+ return {
663
+ hasOneRelationPath,
664
+ }
665
+ }
666
+
667
+ public static desugarRelativeSingleField(
668
+ sugaredRelativeSingleField: string | SugaredRelativeSingleField,
669
+ environment: Environment,
670
+ ): RelativeSingleField {
671
+ let field: SugaredRelativeSingleField['field']
672
+ let unsugarableField: Omit<SugaredRelativeSingleField, 'field'>
673
+ if (typeof sugaredRelativeSingleField === 'string') {
674
+ field = sugaredRelativeSingleField
675
+ unsugarableField = {}
676
+ } else {
677
+ field = sugaredRelativeSingleField.field
678
+ unsugarableField = sugaredRelativeSingleField
679
+ }
680
+
681
+ let hasOneRelationPath: HasOneRelation[]
682
+ let fieldName: FieldName
683
+ if (typeof field === 'string') {
684
+ // fast path
685
+ if (field.match(TokenRegExps.dotSeparatedIdentifier)) {
686
+ const parts = field.split('.')
687
+ fieldName = parts.pop()!
688
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parts, {}, environment)
689
+ } else {
690
+ const parsed = this.parseRelativeSingleField(field, environment)
691
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parsed.hasOneRelationPath, {}, environment)
692
+ fieldName = parsed.field
693
+ }
694
+
695
+ } else {
696
+ hasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath, {}, environment)
697
+ fieldName = field.field
698
+ }
699
+
700
+ return {
701
+ eventListeners: this.desugarFieldEventListeners(unsugarableField),
702
+ hasOneRelationPath,
703
+ field: fieldName,
704
+ isNonbearing: unsugarableField.isNonbearing ?? LeafFieldDefaults.isNonbearing,
705
+ defaultValue:
706
+ unsugarableField.defaultValue !== undefined
707
+ ? VariableInputTransformer.transformValue(unsugarableField.defaultValue, environment)
708
+ : undefined,
709
+ }
710
+ }
711
+
712
+ public static desugarRelativeEntityList(
713
+ sugaredRelativeEntityList: string | SugaredRelativeEntityList,
714
+ environment: Environment,
715
+ ): RelativeEntityList {
716
+ let field: SugaredRelativeEntityList['field']
717
+ let unsugarableEntityList: Omit<SugaredRelativeEntityList, 'field'>
718
+
719
+ if (typeof sugaredRelativeEntityList === 'string') {
720
+ field = sugaredRelativeEntityList
721
+ unsugarableEntityList = {}
722
+ } else {
723
+ field = sugaredRelativeEntityList.field
724
+ unsugarableEntityList = sugaredRelativeEntityList
725
+ }
726
+
727
+ let hasOneRelationPath: HasOneRelation[]
728
+ let hasManyRelation: HasManyRelation
729
+ if (typeof field === 'string') {
730
+ const parsed = this.parseRelativeEntityList(field, environment)
731
+ hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(
732
+ parsed.hasOneRelationPath,
733
+ emptyObject,
734
+ environment,
735
+ )
736
+ hasManyRelation = this.augmentDesugaredHasManyRelation(
737
+ parsed.hasManyRelation,
738
+ unsugarableEntityList,
739
+ environment,
740
+ )
741
+ } else {
742
+ hasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath || [], emptyObject, environment)
743
+ hasManyRelation = this.desugarHasManyRelation(field.hasManyRelation, unsugarableEntityList, environment)
744
+ }
745
+
746
+ return {
747
+ hasManyRelation,
748
+ hasOneRelationPath,
749
+ }
750
+ }
751
+ }