@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.
- package/api-extractor.json +3 -0
- package/dist/development/index.cjs +110 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +98 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/BindingError.cjs +10 -0
- package/dist/development/src/BindingError.cjs.map +1 -0
- package/dist/development/src/BindingError.js +10 -0
- package/dist/development/src/BindingError.js.map +1 -0
- package/dist/development/src/DataBindingExtendAborted.cjs +5 -0
- package/dist/development/src/DataBindingExtendAborted.cjs.map +1 -0
- package/dist/development/src/DataBindingExtendAborted.js +5 -0
- package/dist/development/src/DataBindingExtendAborted.js.map +1 -0
- package/dist/development/src/LocalizedBindingError.cjs +14 -0
- package/dist/development/src/LocalizedBindingError.cjs.map +1 -0
- package/dist/development/src/LocalizedBindingError.js +14 -0
- package/dist/development/src/LocalizedBindingError.js.map +1 -0
- package/dist/development/src/RuntimeId.cjs +61 -0
- package/dist/development/src/RuntimeId.cjs.map +1 -0
- package/dist/development/src/RuntimeId.js +61 -0
- package/dist/development/src/RuntimeId.js.map +1 -0
- package/dist/development/src/consts.cjs +9 -0
- package/dist/development/src/consts.cjs.map +1 -0
- package/dist/development/src/consts.js +9 -0
- package/dist/development/src/consts.js.map +1 -0
- package/dist/development/src/environment/Environment.cjs +216 -0
- package/dist/development/src/environment/Environment.cjs.map +1 -0
- package/dist/development/src/environment/Environment.js +216 -0
- package/dist/development/src/environment/Environment.js.map +1 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs +89 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js +89 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js.map +1 -0
- package/dist/development/src/environment/VariableFieldValue.cjs +9 -0
- package/dist/development/src/environment/VariableFieldValue.cjs.map +1 -0
- package/dist/development/src/environment/VariableFieldValue.js +9 -0
- package/dist/development/src/environment/VariableFieldValue.js.map +1 -0
- package/dist/development/src/environment/VariableInputTransformer.cjs +24 -0
- package/dist/development/src/environment/VariableInputTransformer.cjs.map +1 -0
- package/dist/development/src/environment/VariableInputTransformer.js +24 -0
- package/dist/development/src/environment/VariableInputTransformer.js.map +1 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs +11 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs.map +1 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.js +11 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.js.map +1 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs +11 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js +11 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs +20 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs.map +1 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.js +20 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.js.map +1 -0
- package/dist/development/src/markers/EntitySubTreeMarker.cjs +20 -0
- package/dist/development/src/markers/EntitySubTreeMarker.cjs.map +1 -0
- package/dist/development/src/markers/EntitySubTreeMarker.js +20 -0
- package/dist/development/src/markers/EntitySubTreeMarker.js.map +1 -0
- package/dist/development/src/markers/FieldMarker.cjs +24 -0
- package/dist/development/src/markers/FieldMarker.cjs.map +1 -0
- package/dist/development/src/markers/FieldMarker.js +24 -0
- package/dist/development/src/markers/FieldMarker.js.map +1 -0
- package/dist/development/src/markers/HasManyRelationMarker.cjs +26 -0
- package/dist/development/src/markers/HasManyRelationMarker.cjs.map +1 -0
- package/dist/development/src/markers/HasManyRelationMarker.js +26 -0
- package/dist/development/src/markers/HasManyRelationMarker.js.map +1 -0
- package/dist/development/src/markers/HasOneRelationMarker.cjs +20 -0
- package/dist/development/src/markers/HasOneRelationMarker.cjs.map +1 -0
- package/dist/development/src/markers/HasOneRelationMarker.js +20 -0
- package/dist/development/src/markers/HasOneRelationMarker.js.map +1 -0
- package/dist/development/src/markers/MarkerComparator.cjs +79 -0
- package/dist/development/src/markers/MarkerComparator.cjs.map +1 -0
- package/dist/development/src/markers/MarkerComparator.js +79 -0
- package/dist/development/src/markers/MarkerComparator.js.map +1 -0
- package/dist/development/src/markers/MarkerMerger.cjs +254 -0
- package/dist/development/src/markers/MarkerMerger.cjs.map +1 -0
- package/dist/development/src/markers/MarkerMerger.js +254 -0
- package/dist/development/src/markers/MarkerMerger.js.map +1 -0
- package/dist/development/src/markers/MarkerTreeRoot.cjs +10 -0
- package/dist/development/src/markers/MarkerTreeRoot.cjs.map +1 -0
- package/dist/development/src/markers/MarkerTreeRoot.js +10 -0
- package/dist/development/src/markers/MarkerTreeRoot.js.map +1 -0
- package/dist/development/src/markers/PlaceholderGenerator.cjs +23 -0
- package/dist/development/src/markers/PlaceholderGenerator.cjs.map +1 -0
- package/dist/development/src/markers/PlaceholderGenerator.js +23 -0
- package/dist/development/src/markers/PlaceholderGenerator.js.map +1 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs +62 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs.map +1 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.js +62 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.js.map +1 -0
- package/dist/development/src/queryLanguage/CacheStore.cjs +44 -0
- package/dist/development/src/queryLanguage/CacheStore.cjs.map +1 -0
- package/dist/development/src/queryLanguage/CacheStore.js +44 -0
- package/dist/development/src/queryLanguage/CacheStore.js.map +1 -0
- package/dist/development/src/queryLanguage/MarkerFactory.cjs +200 -0
- package/dist/development/src/queryLanguage/MarkerFactory.cjs.map +1 -0
- package/dist/development/src/queryLanguage/MarkerFactory.js +200 -0
- package/dist/development/src/queryLanguage/MarkerFactory.js.map +1 -0
- package/dist/development/src/queryLanguage/Parser.cjs +724 -0
- package/dist/development/src/queryLanguage/Parser.cjs.map +1 -0
- package/dist/development/src/queryLanguage/Parser.js +724 -0
- package/dist/development/src/queryLanguage/Parser.js.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguage.cjs +536 -0
- package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguage.js +536 -0
- package/dist/development/src/queryLanguage/QueryLanguage.js.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.cjs +6 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.cjs.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.js +6 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.js.map +1 -0
- package/dist/development/src/queryLanguage/tokenList.cjs +151 -0
- package/dist/development/src/queryLanguage/tokenList.cjs.map +1 -0
- package/dist/development/src/queryLanguage/tokenList.js +152 -0
- package/dist/development/src/queryLanguage/tokenList.js.map +1 -0
- package/dist/development/src/schema/Schema.cjs +36 -0
- package/dist/development/src/schema/Schema.cjs.map +1 -0
- package/dist/development/src/schema/Schema.js +36 -0
- package/dist/development/src/schema/Schema.js.map +1 -0
- package/dist/development/src/schema/SchemaLoader.cjs +25 -0
- package/dist/development/src/schema/SchemaLoader.cjs.map +1 -0
- package/dist/development/src/schema/SchemaLoader.js +25 -0
- package/dist/development/src/schema/SchemaLoader.js.map +1 -0
- package/dist/development/src/schema/SchemaPreprocessor.cjs +38 -0
- package/dist/development/src/schema/SchemaPreprocessor.cjs.map +1 -0
- package/dist/development/src/schema/SchemaPreprocessor.js +38 -0
- package/dist/development/src/schema/SchemaPreprocessor.js.map +1 -0
- package/dist/development/src/treeParameters/EventListenersStore.cjs +93 -0
- package/dist/development/src/treeParameters/EventListenersStore.cjs.map +1 -0
- package/dist/development/src/treeParameters/EventListenersStore.js +93 -0
- package/dist/development/src/treeParameters/EventListenersStore.js.map +1 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs +282 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs.map +1 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.js +282 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.js.map +1 -0
- package/dist/development/src/treeParameters/defaults.cjs +24 -0
- package/dist/development/src/treeParameters/defaults.cjs.map +1 -0
- package/dist/development/src/treeParameters/defaults.js +24 -0
- package/dist/development/src/treeParameters/defaults.js.map +1 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +22 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js +22 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -0
- package/dist/development/src/types/EntityAccessor.cjs +5 -0
- package/dist/development/src/types/EntityAccessor.cjs.map +1 -0
- package/dist/development/src/types/EntityAccessor.js +5 -0
- package/dist/development/src/types/EntityAccessor.js.map +1 -0
- package/dist/development/src/types/EntityListAccessor.cjs +5 -0
- package/dist/development/src/types/EntityListAccessor.cjs.map +1 -0
- package/dist/development/src/types/EntityListAccessor.js +5 -0
- package/dist/development/src/types/EntityListAccessor.js.map +1 -0
- package/dist/development/src/types/ErrorAccessor.cjs +11 -0
- package/dist/development/src/types/ErrorAccessor.cjs.map +1 -0
- package/dist/development/src/types/ErrorAccessor.js +12 -0
- package/dist/development/src/types/ErrorAccessor.js.map +1 -0
- package/dist/development/src/types/FieldAccessor.cjs +5 -0
- package/dist/development/src/types/FieldAccessor.cjs.map +1 -0
- package/dist/development/src/types/FieldAccessor.js +5 -0
- package/dist/development/src/types/FieldAccessor.js.map +1 -0
- package/dist/development/src/types/TreeRootAccessor.cjs +14 -0
- package/dist/development/src/types/TreeRootAccessor.cjs.map +1 -0
- package/dist/development/src/types/TreeRootAccessor.js +14 -0
- package/dist/development/src/types/TreeRootAccessor.js.map +1 -0
- package/dist/development/src/utils/Hashing.cjs +22 -0
- package/dist/development/src/utils/Hashing.cjs.map +1 -0
- package/dist/development/src/utils/Hashing.js +22 -0
- package/dist/development/src/utils/Hashing.js.map +1 -0
- package/dist/development/src/utils/TreeNodeUtils.cjs +77 -0
- package/dist/development/src/utils/TreeNodeUtils.cjs.map +1 -0
- package/dist/development/src/utils/TreeNodeUtils.js +77 -0
- package/dist/development/src/utils/TreeNodeUtils.js.map +1 -0
- package/dist/development/src/utils/assertNever.cjs +10 -0
- package/dist/development/src/utils/assertNever.cjs.map +1 -0
- package/dist/development/src/utils/assertNever.js +10 -0
- package/dist/development/src/utils/assertNever.js.map +1 -0
- package/dist/development/src/utils/createQueryBuilder.cjs +32 -0
- package/dist/development/src/utils/createQueryBuilder.cjs.map +1 -0
- package/dist/development/src/utils/createQueryBuilder.js +32 -0
- package/dist/development/src/utils/createQueryBuilder.js.map +1 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs +7 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js +7 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -0
- package/dist/production/index.cjs +110 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +98 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/BindingError.cjs +10 -0
- package/dist/production/src/BindingError.cjs.map +1 -0
- package/dist/production/src/BindingError.js +10 -0
- package/dist/production/src/BindingError.js.map +1 -0
- package/dist/production/src/DataBindingExtendAborted.cjs +5 -0
- package/dist/production/src/DataBindingExtendAborted.cjs.map +1 -0
- package/dist/production/src/DataBindingExtendAborted.js +5 -0
- package/dist/production/src/DataBindingExtendAborted.js.map +1 -0
- package/dist/production/src/LocalizedBindingError.cjs +14 -0
- package/dist/production/src/LocalizedBindingError.cjs.map +1 -0
- package/dist/production/src/LocalizedBindingError.js +14 -0
- package/dist/production/src/LocalizedBindingError.js.map +1 -0
- package/dist/production/src/RuntimeId.cjs +61 -0
- package/dist/production/src/RuntimeId.cjs.map +1 -0
- package/dist/production/src/RuntimeId.js +61 -0
- package/dist/production/src/RuntimeId.js.map +1 -0
- package/dist/production/src/consts.cjs +9 -0
- package/dist/production/src/consts.cjs.map +1 -0
- package/dist/production/src/consts.js +9 -0
- package/dist/production/src/consts.js.map +1 -0
- package/dist/production/src/environment/Environment.cjs +216 -0
- package/dist/production/src/environment/Environment.cjs.map +1 -0
- package/dist/production/src/environment/Environment.js +216 -0
- package/dist/production/src/environment/Environment.js.map +1 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs +89 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js +89 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js.map +1 -0
- package/dist/production/src/environment/VariableFieldValue.cjs +9 -0
- package/dist/production/src/environment/VariableFieldValue.cjs.map +1 -0
- package/dist/production/src/environment/VariableFieldValue.js +9 -0
- package/dist/production/src/environment/VariableFieldValue.js.map +1 -0
- package/dist/production/src/environment/VariableInputTransformer.cjs +24 -0
- package/dist/production/src/environment/VariableInputTransformer.cjs.map +1 -0
- package/dist/production/src/environment/VariableInputTransformer.js +24 -0
- package/dist/production/src/environment/VariableInputTransformer.js.map +1 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs +11 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs.map +1 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.js +11 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.js.map +1 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs +11 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js +11 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs +20 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs.map +1 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.js +20 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.js.map +1 -0
- package/dist/production/src/markers/EntitySubTreeMarker.cjs +20 -0
- package/dist/production/src/markers/EntitySubTreeMarker.cjs.map +1 -0
- package/dist/production/src/markers/EntitySubTreeMarker.js +20 -0
- package/dist/production/src/markers/EntitySubTreeMarker.js.map +1 -0
- package/dist/production/src/markers/FieldMarker.cjs +24 -0
- package/dist/production/src/markers/FieldMarker.cjs.map +1 -0
- package/dist/production/src/markers/FieldMarker.js +24 -0
- package/dist/production/src/markers/FieldMarker.js.map +1 -0
- package/dist/production/src/markers/HasManyRelationMarker.cjs +20 -0
- package/dist/production/src/markers/HasManyRelationMarker.cjs.map +1 -0
- package/dist/production/src/markers/HasManyRelationMarker.js +20 -0
- package/dist/production/src/markers/HasManyRelationMarker.js.map +1 -0
- package/dist/production/src/markers/HasOneRelationMarker.cjs +20 -0
- package/dist/production/src/markers/HasOneRelationMarker.cjs.map +1 -0
- package/dist/production/src/markers/HasOneRelationMarker.js +20 -0
- package/dist/production/src/markers/HasOneRelationMarker.js.map +1 -0
- package/dist/production/src/markers/MarkerComparator.cjs +79 -0
- package/dist/production/src/markers/MarkerComparator.cjs.map +1 -0
- package/dist/production/src/markers/MarkerComparator.js +79 -0
- package/dist/production/src/markers/MarkerComparator.js.map +1 -0
- package/dist/production/src/markers/MarkerMerger.cjs +254 -0
- package/dist/production/src/markers/MarkerMerger.cjs.map +1 -0
- package/dist/production/src/markers/MarkerMerger.js +254 -0
- package/dist/production/src/markers/MarkerMerger.js.map +1 -0
- package/dist/production/src/markers/MarkerTreeRoot.cjs +10 -0
- package/dist/production/src/markers/MarkerTreeRoot.cjs.map +1 -0
- package/dist/production/src/markers/MarkerTreeRoot.js +10 -0
- package/dist/production/src/markers/MarkerTreeRoot.js.map +1 -0
- package/dist/production/src/markers/PlaceholderGenerator.cjs +23 -0
- package/dist/production/src/markers/PlaceholderGenerator.cjs.map +1 -0
- package/dist/production/src/markers/PlaceholderGenerator.js +23 -0
- package/dist/production/src/markers/PlaceholderGenerator.js.map +1 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs +62 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs.map +1 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.js +62 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.js.map +1 -0
- package/dist/production/src/queryLanguage/CacheStore.cjs +44 -0
- package/dist/production/src/queryLanguage/CacheStore.cjs.map +1 -0
- package/dist/production/src/queryLanguage/CacheStore.js +44 -0
- package/dist/production/src/queryLanguage/CacheStore.js.map +1 -0
- package/dist/production/src/queryLanguage/MarkerFactory.cjs +200 -0
- package/dist/production/src/queryLanguage/MarkerFactory.cjs.map +1 -0
- package/dist/production/src/queryLanguage/MarkerFactory.js +200 -0
- package/dist/production/src/queryLanguage/MarkerFactory.js.map +1 -0
- package/dist/production/src/queryLanguage/Parser.cjs +721 -0
- package/dist/production/src/queryLanguage/Parser.cjs.map +1 -0
- package/dist/production/src/queryLanguage/Parser.js +721 -0
- package/dist/production/src/queryLanguage/Parser.js.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguage.cjs +533 -0
- package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguage.js +533 -0
- package/dist/production/src/queryLanguage/QueryLanguage.js.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.cjs +6 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.cjs.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.js +6 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.js.map +1 -0
- package/dist/production/src/queryLanguage/tokenList.cjs +151 -0
- package/dist/production/src/queryLanguage/tokenList.cjs.map +1 -0
- package/dist/production/src/queryLanguage/tokenList.js +152 -0
- package/dist/production/src/queryLanguage/tokenList.js.map +1 -0
- package/dist/production/src/schema/Schema.cjs +36 -0
- package/dist/production/src/schema/Schema.cjs.map +1 -0
- package/dist/production/src/schema/Schema.js +36 -0
- package/dist/production/src/schema/Schema.js.map +1 -0
- package/dist/production/src/schema/SchemaLoader.cjs +25 -0
- package/dist/production/src/schema/SchemaLoader.cjs.map +1 -0
- package/dist/production/src/schema/SchemaLoader.js +25 -0
- package/dist/production/src/schema/SchemaLoader.js.map +1 -0
- package/dist/production/src/schema/SchemaPreprocessor.cjs +38 -0
- package/dist/production/src/schema/SchemaPreprocessor.cjs.map +1 -0
- package/dist/production/src/schema/SchemaPreprocessor.js +38 -0
- package/dist/production/src/schema/SchemaPreprocessor.js.map +1 -0
- package/dist/production/src/treeParameters/EventListenersStore.cjs +93 -0
- package/dist/production/src/treeParameters/EventListenersStore.cjs.map +1 -0
- package/dist/production/src/treeParameters/EventListenersStore.js +93 -0
- package/dist/production/src/treeParameters/EventListenersStore.js.map +1 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs +282 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs.map +1 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.js +282 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.js.map +1 -0
- package/dist/production/src/treeParameters/defaults.cjs +24 -0
- package/dist/production/src/treeParameters/defaults.cjs.map +1 -0
- package/dist/production/src/treeParameters/defaults.js +24 -0
- package/dist/production/src/treeParameters/defaults.js.map +1 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +22 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js +22 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -0
- package/dist/production/src/types/EntityAccessor.cjs +5 -0
- package/dist/production/src/types/EntityAccessor.cjs.map +1 -0
- package/dist/production/src/types/EntityAccessor.js +5 -0
- package/dist/production/src/types/EntityAccessor.js.map +1 -0
- package/dist/production/src/types/EntityListAccessor.cjs +5 -0
- package/dist/production/src/types/EntityListAccessor.cjs.map +1 -0
- package/dist/production/src/types/EntityListAccessor.js +5 -0
- package/dist/production/src/types/EntityListAccessor.js.map +1 -0
- package/dist/production/src/types/ErrorAccessor.cjs +11 -0
- package/dist/production/src/types/ErrorAccessor.cjs.map +1 -0
- package/dist/production/src/types/ErrorAccessor.js +12 -0
- package/dist/production/src/types/ErrorAccessor.js.map +1 -0
- package/dist/production/src/types/FieldAccessor.cjs +5 -0
- package/dist/production/src/types/FieldAccessor.cjs.map +1 -0
- package/dist/production/src/types/FieldAccessor.js +5 -0
- package/dist/production/src/types/FieldAccessor.js.map +1 -0
- package/dist/production/src/types/TreeRootAccessor.cjs +14 -0
- package/dist/production/src/types/TreeRootAccessor.cjs.map +1 -0
- package/dist/production/src/types/TreeRootAccessor.js +14 -0
- package/dist/production/src/types/TreeRootAccessor.js.map +1 -0
- package/dist/production/src/utils/Hashing.cjs +22 -0
- package/dist/production/src/utils/Hashing.cjs.map +1 -0
- package/dist/production/src/utils/Hashing.js +22 -0
- package/dist/production/src/utils/Hashing.js.map +1 -0
- package/dist/production/src/utils/TreeNodeUtils.cjs +77 -0
- package/dist/production/src/utils/TreeNodeUtils.cjs.map +1 -0
- package/dist/production/src/utils/TreeNodeUtils.js +77 -0
- package/dist/production/src/utils/TreeNodeUtils.js.map +1 -0
- package/dist/production/src/utils/assertNever.cjs +10 -0
- package/dist/production/src/utils/assertNever.cjs.map +1 -0
- package/dist/production/src/utils/assertNever.js +10 -0
- package/dist/production/src/utils/assertNever.js.map +1 -0
- package/dist/production/src/utils/createQueryBuilder.cjs +32 -0
- package/dist/production/src/utils/createQueryBuilder.cjs.map +1 -0
- package/dist/production/src/utils/createQueryBuilder.js +32 -0
- package/dist/production/src/utils/createQueryBuilder.js.map +1 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs +7 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js +7 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -0
- package/dist/types/BindingError.d.ts +4 -0
- package/dist/types/BindingError.d.ts.map +1 -0
- package/dist/types/DataBindingExtendAborted.d.ts +2 -0
- package/dist/types/DataBindingExtendAborted.d.ts.map +1 -0
- package/dist/types/LocalizedBindingError.d.ts +8 -0
- package/dist/types/LocalizedBindingError.d.ts.map +1 -0
- package/dist/types/RuntimeId.d.ts +35 -0
- package/dist/types/RuntimeId.d.ts.map +1 -0
- package/dist/types/consts.d.ts +4 -0
- package/dist/types/consts.d.ts.map +1 -0
- package/dist/types/environment/Environment.d.ts +108 -0
- package/dist/types/environment/Environment.d.ts.map +1 -0
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts +15 -0
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +1 -0
- package/dist/types/environment/VariableFieldValue.d.ts +5 -0
- package/dist/types/environment/VariableFieldValue.d.ts.map +1 -0
- package/dist/types/environment/VariableInputTransformer.d.ts +8 -0
- package/dist/types/environment/VariableInputTransformer.d.ts.map +1 -0
- package/dist/types/environment/index.d.ts +5 -0
- package/dist/types/environment/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldMarkers.d.ts +7 -0
- package/dist/types/markers/EntityFieldMarkers.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts +10 -0
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldPlaceholders.d.ts +3 -0
- package/dist/types/markers/EntityFieldPlaceholders.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts +10 -0
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts.map +1 -0
- package/dist/types/markers/EntityListSubTreeMarker.d.ts +12 -0
- package/dist/types/markers/EntityListSubTreeMarker.d.ts.map +1 -0
- package/dist/types/markers/EntitySubTreeMarker.d.ts +12 -0
- package/dist/types/markers/EntitySubTreeMarker.d.ts.map +1 -0
- package/dist/types/markers/FieldMarker.d.ts +15 -0
- package/dist/types/markers/FieldMarker.d.ts.map +1 -0
- package/dist/types/markers/HasManyRelationMarker.d.ts +12 -0
- package/dist/types/markers/HasManyRelationMarker.d.ts.map +1 -0
- package/dist/types/markers/HasOneRelationMarker.d.ts +12 -0
- package/dist/types/markers/HasOneRelationMarker.d.ts.map +1 -0
- package/dist/types/markers/MarkerComparator.d.ts +8 -0
- package/dist/types/markers/MarkerComparator.d.ts.map +1 -0
- package/dist/types/markers/MarkerMerger.d.ts +22 -0
- package/dist/types/markers/MarkerMerger.d.ts.map +1 -0
- package/dist/types/markers/MarkerTreeRoot.d.ts +8 -0
- package/dist/types/markers/MarkerTreeRoot.d.ts.map +1 -0
- package/dist/types/markers/MeaningfulMarker.d.ts +7 -0
- package/dist/types/markers/MeaningfulMarker.d.ts.map +1 -0
- package/dist/types/markers/PlaceholderGenerator.d.ts +10 -0
- package/dist/types/markers/PlaceholderGenerator.d.ts.map +1 -0
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts +9 -0
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +1 -0
- package/dist/types/markers/SubTreeMarkers.d.ts +5 -0
- package/dist/types/markers/SubTreeMarkers.d.ts.map +1 -0
- package/dist/types/markers/index.d.ts +17 -0
- package/dist/types/markers/index.d.ts.map +1 -0
- package/dist/types/queryLanguage/CacheStore.d.ts +9 -0
- package/dist/types/queryLanguage/CacheStore.d.ts.map +1 -0
- package/dist/types/queryLanguage/MarkerFactory.d.ts +21 -0
- package/dist/types/queryLanguage/MarkerFactory.d.ts.map +1 -0
- package/dist/types/queryLanguage/Parser.d.ts +83 -0
- package/dist/types/queryLanguage/Parser.d.ts.map +1 -0
- package/dist/types/queryLanguage/ParserResults.d.ts +63 -0
- package/dist/types/queryLanguage/ParserResults.d.ts.map +1 -0
- package/dist/types/queryLanguage/QueryLanguage.d.ts +42 -0
- package/dist/types/queryLanguage/QueryLanguage.d.ts.map +1 -0
- package/dist/types/queryLanguage/QueryLanguageError.d.ts +3 -0
- package/dist/types/queryLanguage/QueryLanguageError.d.ts.map +1 -0
- package/dist/types/queryLanguage/index.d.ts +6 -0
- package/dist/types/queryLanguage/index.d.ts.map +1 -0
- package/dist/types/queryLanguage/tokenList.d.ts +36 -0
- package/dist/types/queryLanguage/tokenList.d.ts.map +1 -0
- package/dist/types/schema/RawSchema.d.ts +7 -0
- package/dist/types/schema/RawSchema.d.ts.map +1 -0
- package/dist/types/schema/RawSchemaEntity.d.ts +13 -0
- package/dist/types/schema/RawSchemaEntity.d.ts.map +1 -0
- package/dist/types/schema/RawSchemaEnum.d.ts +6 -0
- package/dist/types/schema/RawSchemaEnum.d.ts.map +1 -0
- package/dist/types/schema/Schema.d.ts +20 -0
- package/dist/types/schema/Schema.d.ts.map +1 -0
- package/dist/types/schema/SchemaColumn.d.ts +12 -0
- package/dist/types/schema/SchemaColumn.d.ts.map +1 -0
- package/dist/types/schema/SchemaColumnType.d.ts +3 -0
- package/dist/types/schema/SchemaColumnType.d.ts.map +1 -0
- package/dist/types/schema/SchemaEntities.d.ts +4 -0
- package/dist/types/schema/SchemaEntities.d.ts.map +1 -0
- package/dist/types/schema/SchemaEntity.d.ts +10 -0
- package/dist/types/schema/SchemaEntity.d.ts.map +1 -0
- package/dist/types/schema/SchemaEnums.d.ts +4 -0
- package/dist/types/schema/SchemaEnums.d.ts.map +1 -0
- package/dist/types/schema/SchemaField.d.ts +4 -0
- package/dist/types/schema/SchemaField.d.ts.map +1 -0
- package/dist/types/schema/SchemaFields.d.ts +4 -0
- package/dist/types/schema/SchemaFields.d.ts.map +1 -0
- package/dist/types/schema/SchemaLoader.d.ts +8 -0
- package/dist/types/schema/SchemaLoader.d.ts.map +1 -0
- package/dist/types/schema/SchemaPreprocessor.d.ts +9 -0
- package/dist/types/schema/SchemaPreprocessor.d.ts.map +1 -0
- package/dist/types/schema/SchemaRelation.d.ts +24 -0
- package/dist/types/schema/SchemaRelation.d.ts.map +1 -0
- package/dist/types/schema/SchemaRelationOrderBy.d.ts +5 -0
- package/dist/types/schema/SchemaRelationOrderBy.d.ts.map +1 -0
- package/dist/types/schema/SchemaStore.d.ts +7 -0
- package/dist/types/schema/SchemaStore.d.ts.map +1 -0
- package/dist/types/schema/SchemaUniqueConstraint.d.ts +5 -0
- package/dist/types/schema/SchemaUniqueConstraint.d.ts.map +1 -0
- package/dist/types/schema/index.d.ts +16 -0
- package/dist/types/schema/index.d.ts.map +1 -0
- package/dist/types/treeParameters/EventListenersStore.d.ts +36 -0
- package/dist/types/treeParameters/EventListenersStore.d.ts.map +1 -0
- package/dist/types/treeParameters/Normalized.d.ts +113 -0
- package/dist/types/treeParameters/Normalized.d.ts.map +1 -0
- package/dist/types/treeParameters/Sugared.d.ts +139 -0
- package/dist/types/treeParameters/Sugared.d.ts.map +1 -0
- package/dist/types/treeParameters/TreeParameterMerger.d.ts +17 -0
- package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +1 -0
- package/dist/types/treeParameters/defaults.d.ts +16 -0
- package/dist/types/treeParameters/defaults.d.ts.map +1 -0
- package/dist/types/treeParameters/helpers/index.d.ts +2 -0
- package/dist/types/treeParameters/helpers/index.d.ts.map +1 -0
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts +3 -0
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts.map +1 -0
- package/dist/types/treeParameters/index.d.ts +12 -0
- package/dist/types/treeParameters/index.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Alias.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Alias.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/EntityId.d.ts +2 -0
- package/dist/types/treeParameters/primitives/EntityId.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/EntityName.d.ts +2 -0
- package/dist/types/treeParameters/primitives/EntityName.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts +2 -0
- package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts +2 -0
- package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts +2 -0
- package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts +2 -0
- package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/FieldName.d.ts +2 -0
- package/dist/types/treeParameters/primitives/FieldName.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/FieldValue.d.ts +5 -0
- package/dist/types/treeParameters/primitives/FieldValue.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Filter.d.ts +4 -0
- package/dist/types/treeParameters/primitives/Filter.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Json.d.ts +7 -0
- package/dist/types/treeParameters/primitives/Json.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Limit.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Limit.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Offset.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Offset.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/OrderBy.d.ts +4 -0
- package/dist/types/treeParameters/primitives/OrderBy.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/PlaceholderName.d.ts +2 -0
- package/dist/types/treeParameters/primitives/PlaceholderName.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/RemovalType.d.ts +2 -0
- package/dist/types/treeParameters/primitives/RemovalType.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Scalar.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Scalar.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts +4 -0
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/TreeRootId.d.ts +2 -0
- package/dist/types/treeParameters/primitives/TreeRootId.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/UniqueWhere.d.ts +4 -0
- package/dist/types/treeParameters/primitives/UniqueWhere.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/index.d.ts +21 -0
- package/dist/types/treeParameters/primitives/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts +8 -0
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts.map +1 -0
- package/dist/types/types/BatchUpdatesOptions.d.ts +9 -0
- package/dist/types/types/BatchUpdatesOptions.d.ts.map +1 -0
- package/dist/types/types/BindingOperations.d.ts +24 -0
- package/dist/types/types/BindingOperations.d.ts.map +1 -0
- package/dist/types/types/DataBindingTransactionResult.d.ts +4 -0
- package/dist/types/types/DataBindingTransactionResult.d.ts.map +1 -0
- package/dist/types/types/EntityAccessor.d.ts +77 -0
- package/dist/types/types/EntityAccessor.d.ts.map +1 -0
- package/dist/types/types/EntityListAccessor.d.ts +84 -0
- package/dist/types/types/EntityListAccessor.d.ts.map +1 -0
- package/dist/types/types/ErrorAccessor.d.ts +30 -0
- package/dist/types/types/ErrorAccessor.d.ts.map +1 -0
- package/dist/types/types/Errorable.d.ts +5 -0
- package/dist/types/types/Errorable.d.ts.map +1 -0
- package/dist/types/types/ExtendTree.d.ts +9 -0
- package/dist/types/types/ExtendTree.d.ts.map +1 -0
- package/dist/types/types/FieldAccessor.d.ts +49 -0
- package/dist/types/types/FieldAccessor.d.ts.map +1 -0
- package/dist/types/types/GetEntityByKey.d.ts +3 -0
- package/dist/types/types/GetEntityByKey.d.ts.map +1 -0
- package/dist/types/types/GetEntityListSubTree.d.ts +5 -0
- package/dist/types/types/GetEntityListSubTree.d.ts.map +1 -0
- package/dist/types/types/GetEntitySubTree.d.ts +5 -0
- package/dist/types/types/GetEntitySubTree.d.ts.map +1 -0
- package/dist/types/types/Persist.d.ts +10 -0
- package/dist/types/types/Persist.d.ts.map +1 -0
- package/dist/types/types/PersistErrorOptions.d.ts +4 -0
- package/dist/types/types/PersistErrorOptions.d.ts.map +1 -0
- package/dist/types/types/PersistResult.d.ts +23 -0
- package/dist/types/types/PersistResult.d.ts.map +1 -0
- package/dist/types/types/PersistSuccessOptions.d.ts +5 -0
- package/dist/types/types/PersistSuccessOptions.d.ts.map +1 -0
- package/dist/types/types/QueryRequestResponse.d.ts +20 -0
- package/dist/types/types/QueryRequestResponse.d.ts.map +1 -0
- package/dist/types/types/TreeRootAccessor.d.ts +11 -0
- package/dist/types/types/TreeRootAccessor.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +20 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/Hashing.d.ts +5 -0
- package/dist/types/utils/Hashing.d.ts.map +1 -0
- package/dist/types/utils/TreeNodeUtils.d.ts +13 -0
- package/dist/types/utils/TreeNodeUtils.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +2 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/createQueryBuilder.d.ts +4 -0
- package/dist/types/utils/createQueryBuilder.d.ts.map +1 -0
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts +2 -0
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts.map +1 -0
- package/package.json +50 -0
- package/src/BindingError.ts +5 -0
- package/src/DataBindingExtendAborted.ts +1 -0
- package/src/LocalizedBindingError.ts +20 -0
- package/src/RuntimeId.ts +70 -0
- package/src/consts.ts +3 -0
- package/src/environment/Environment.ts +346 -0
- package/src/environment/TreeNodeEnvironmentFactory.ts +137 -0
- package/src/environment/VariableFieldValue.ts +3 -0
- package/src/environment/VariableInputTransformer.ts +27 -0
- package/src/environment/index.ts +4 -0
- package/src/index.ts +17 -0
- package/src/markers/EntityFieldMarkers.ts +7 -0
- package/src/markers/EntityFieldMarkersContainer.ts +10 -0
- package/src/markers/EntityFieldPlaceholders.ts +3 -0
- package/src/markers/EntityFieldsWithHoistablesMarker.ts +11 -0
- package/src/markers/EntityListSubTreeMarker.ts +20 -0
- package/src/markers/EntitySubTreeMarker.ts +20 -0
- package/src/markers/FieldMarker.ts +29 -0
- package/src/markers/HasManyRelationMarker.ts +27 -0
- package/src/markers/HasOneRelationMarker.ts +21 -0
- package/src/markers/MarkerComparator.ts +102 -0
- package/src/markers/MarkerMerger.ts +300 -0
- package/src/markers/MarkerTreeRoot.ts +9 -0
- package/src/markers/MeaningfulMarker.ts +12 -0
- package/src/markers/PlaceholderGenerator.ts +40 -0
- package/src/markers/PlaceholderParametersGenerator.ts +79 -0
- package/src/markers/SubTreeMarkers.ts +5 -0
- package/src/markers/index.ts +17 -0
- package/src/queryLanguage/CacheStore.ts +57 -0
- package/src/queryLanguage/MarkerFactory.ts +319 -0
- package/src/queryLanguage/Parser.ts +911 -0
- package/src/queryLanguage/ParserResults.ts +81 -0
- package/src/queryLanguage/QueryLanguage.ts +751 -0
- package/src/queryLanguage/QueryLanguageError.ts +1 -0
- package/src/queryLanguage/index.ts +5 -0
- package/src/queryLanguage/tokenList.ts +177 -0
- package/src/schema/RawSchema.ts +7 -0
- package/src/schema/RawSchemaEntity.ts +12 -0
- package/src/schema/RawSchemaEnum.ts +6 -0
- package/src/schema/Schema.ts +46 -0
- package/src/schema/SchemaColumn.ts +15 -0
- package/src/schema/SchemaColumnType.ts +3 -0
- package/src/schema/SchemaEntities.ts +4 -0
- package/src/schema/SchemaEntity.ts +10 -0
- package/src/schema/SchemaEnums.ts +3 -0
- package/src/schema/SchemaField.ts +4 -0
- package/src/schema/SchemaFields.ts +4 -0
- package/src/schema/SchemaLoader.ts +64 -0
- package/src/schema/SchemaPreprocessor.ts +51 -0
- package/src/schema/SchemaRelation.ts +29 -0
- package/src/schema/SchemaRelationOrderBy.ts +4 -0
- package/src/schema/SchemaStore.ts +8 -0
- package/src/schema/SchemaUniqueConstraint.ts +5 -0
- package/src/schema/index.ts +15 -0
- package/src/treeParameters/EventListenersStore.ts +105 -0
- package/src/treeParameters/Normalized.ts +168 -0
- package/src/treeParameters/Sugared.ts +228 -0
- package/src/treeParameters/TreeParameterMerger.ts +352 -0
- package/src/treeParameters/defaults.ts +33 -0
- package/src/treeParameters/helpers/index.ts +1 -0
- package/src/treeParameters/helpers/wrapFilterInHasOnes.ts +21 -0
- package/src/treeParameters/index.ts +14 -0
- package/src/treeParameters/primitives/Alias.ts +1 -0
- package/src/treeParameters/primitives/EntityId.ts +2 -0
- package/src/treeParameters/primitives/EntityName.ts +4 -0
- package/src/treeParameters/primitives/EntityRealmKey.ts +2 -0
- package/src/treeParameters/primitives/ExpectedEntityCount.ts +1 -0
- package/src/treeParameters/primitives/ExpectedQualifiedEntityMutation.ts +1 -0
- package/src/treeParameters/primitives/ExpectedRelationMutation.ts +1 -0
- package/src/treeParameters/primitives/FieldName.ts +7 -0
- package/src/treeParameters/primitives/FieldValue.ts +6 -0
- package/src/treeParameters/primitives/Filter.ts +7 -0
- package/src/treeParameters/primitives/Json.ts +7 -0
- package/src/treeParameters/primitives/Limit.ts +1 -0
- package/src/treeParameters/primitives/Offset.ts +1 -0
- package/src/treeParameters/primitives/OrderBy.ts +6 -0
- package/src/treeParameters/primitives/PlaceholderName.ts +4 -0
- package/src/treeParameters/primitives/RemovalType.ts +1 -0
- package/src/treeParameters/primitives/Scalar.ts +1 -0
- package/src/treeParameters/primitives/SetOnCreate.ts +8 -0
- package/src/treeParameters/primitives/TreeRootId.ts +1 -0
- package/src/treeParameters/primitives/UniqueWhere.ts +7 -0
- package/src/treeParameters/primitives/index.ts +20 -0
- package/src/tsconfig.json +14 -0
- package/src/types/AsyncBatchUpdatesOptions.ts +8 -0
- package/src/types/BatchUpdatesOptions.ts +9 -0
- package/src/types/BindingOperations.ts +26 -0
- package/src/types/DataBindingTransactionResult.ts +4 -0
- package/src/types/EntityAccessor.ts +126 -0
- package/src/types/EntityListAccessor.ts +123 -0
- package/src/types/ErrorAccessor.ts +43 -0
- package/src/types/Errorable.ts +5 -0
- package/src/types/ExtendTree.ts +10 -0
- package/src/types/FieldAccessor.ts +74 -0
- package/src/types/GetEntityByKey.ts +3 -0
- package/src/types/GetEntityListSubTree.ts +14 -0
- package/src/types/GetEntitySubTree.ts +14 -0
- package/src/types/Persist.ts +11 -0
- package/src/types/PersistErrorOptions.ts +5 -0
- package/src/types/PersistResult.ts +28 -0
- package/src/types/PersistSuccessOptions.ts +5 -0
- package/src/types/QueryRequestResponse.ts +23 -0
- package/src/types/TreeRootAccessor.ts +14 -0
- package/src/types/index.ts +19 -0
- package/src/utils/Hashing.ts +20 -0
- package/src/utils/TreeNodeUtils.ts +92 -0
- package/src/utils/assertNever.ts +7 -0
- package/src/utils/createQueryBuilder.ts +31 -0
- package/src/utils/generateEnumerabilityPreventingEntropy.ts +3 -0
- package/tests/cases/unit/queryLanguage/filter.spec.tsx +100 -0
- package/tests/cases/unit/queryLanguage/general.spec.tsx +59 -0
- package/tests/cases/unit/queryLanguage/orderBy.spec.tsx +48 -0
- package/tests/cases/unit/queryLanguage/qualifiedEntityList.spec.tsx +30 -0
- package/tests/cases/unit/queryLanguage/qualifiedFieldList.spec.tsx +29 -0
- package/tests/cases/unit/queryLanguage/relativeEntityList.spec.tsx +49 -0
- package/tests/cases/unit/queryLanguage/singleRelativeField.spec.tsx +132 -0
- package/tests/cases/unit/queryLanguage/taggedMap.spec.tsx +41 -0
- package/tests/tsconfig.json +10 -0
- package/tsconfig.json +8 -0
- package/tsdoc.json +6 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { FieldName, FieldValue, RelativeSingleField } from '../treeParameters'
|
|
2
|
+
import { PlaceholderGenerator } from './PlaceholderGenerator'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A nonbearing field is only defined in context of create mutations. An entity will be created if and only if some
|
|
6
|
+
* other fields (not just nonbearing fields) are filled as well. This is particularly useful for programmatically
|
|
7
|
+
* controlled fields within repeaters.
|
|
8
|
+
*/
|
|
9
|
+
export class FieldMarker {
|
|
10
|
+
public readonly placeholderName: string
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
public readonly parameters: Omit<RelativeSingleField, 'hasOneRelationPath'>,
|
|
14
|
+
) {
|
|
15
|
+
this.placeholderName = PlaceholderGenerator.getFieldPlaceholder(this.parameters.field)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get fieldName(): FieldName {
|
|
19
|
+
return this.parameters.field
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get isNonbearing(): boolean {
|
|
23
|
+
return this.parameters.isNonbearing
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
get defaultValue(): FieldValue | undefined {
|
|
27
|
+
return this.parameters.defaultValue
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BindingError } from '../BindingError'
|
|
2
|
+
import type { Environment } from '../environment'
|
|
3
|
+
import type { HasManyRelation } from '../treeParameters'
|
|
4
|
+
import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
|
|
5
|
+
import { PlaceholderGenerator } from './PlaceholderGenerator'
|
|
6
|
+
|
|
7
|
+
// This doesn't represent reduced has many relations.
|
|
8
|
+
export class HasManyRelationMarker {
|
|
9
|
+
public readonly placeholderName: string
|
|
10
|
+
|
|
11
|
+
public constructor(
|
|
12
|
+
public readonly parameters: HasManyRelation,
|
|
13
|
+
public readonly fields: EntityFieldMarkersContainer,
|
|
14
|
+
public readonly environment: Environment,
|
|
15
|
+
) {
|
|
16
|
+
if (import.meta.env.DEV) {
|
|
17
|
+
if (parameters.initialEntityCount < 0 || !Number.isInteger(parameters.initialEntityCount)) {
|
|
18
|
+
throw new BindingError(`The preferred 'initialEntityCount' for a relation must be a non-negative integer!`)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
this.placeholderName = PlaceholderGenerator.getHasManyRelationPlaceholder(this.parameters)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public get isNonbearing() {
|
|
25
|
+
return this.parameters.isNonbearing
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Environment } from '../environment'
|
|
2
|
+
import type { HasOneRelation } from '../treeParameters'
|
|
3
|
+
import type { EntityFieldMarkersContainer } from './EntityFieldMarkersContainer'
|
|
4
|
+
import { PlaceholderGenerator } from './PlaceholderGenerator'
|
|
5
|
+
|
|
6
|
+
// This may also represent a reduced has many relation.
|
|
7
|
+
export class HasOneRelationMarker {
|
|
8
|
+
public readonly placeholderName: string
|
|
9
|
+
|
|
10
|
+
public constructor(
|
|
11
|
+
public readonly parameters: HasOneRelation,
|
|
12
|
+
public readonly fields: EntityFieldMarkersContainer,
|
|
13
|
+
public readonly environment: Environment,
|
|
14
|
+
) {
|
|
15
|
+
this.placeholderName = PlaceholderGenerator.getHasOneRelationPlaceholder(this.parameters)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public get isNonbearing() {
|
|
19
|
+
return this.parameters.isNonbearing
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { PRIMARY_KEY_NAME, TYPENAME_KEY_NAME } from '../consts'
|
|
2
|
+
import {
|
|
3
|
+
EntityFieldMarkersContainer,
|
|
4
|
+
EntityListSubTreeMarker,
|
|
5
|
+
EntitySubTreeMarker,
|
|
6
|
+
FieldMarker,
|
|
7
|
+
HasManyRelationMarker,
|
|
8
|
+
HasOneRelationMarker,
|
|
9
|
+
} from '../markers'
|
|
10
|
+
import { assertNever } from '../utils/assertNever'
|
|
11
|
+
import { LocalizedBindingError } from '../LocalizedBindingError'
|
|
12
|
+
|
|
13
|
+
export class MarkerComparator {
|
|
14
|
+
public static isSubTreeSubsetOf(
|
|
15
|
+
candidate: EntitySubTreeMarker | EntityListSubTreeMarker,
|
|
16
|
+
superset: EntitySubTreeMarker | EntityListSubTreeMarker,
|
|
17
|
+
): boolean {
|
|
18
|
+
if (candidate.placeholderName !== superset.placeholderName) {
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
21
|
+
return this.isSubsetOf(candidate.fields, superset.fields)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public static assertEntityMarkersSubsetOf(
|
|
25
|
+
candidate: EntityFieldMarkersContainer,
|
|
26
|
+
superset: EntityFieldMarkersContainer,
|
|
27
|
+
) {
|
|
28
|
+
this.assertSubsetOf(candidate, superset)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
private static assertSubsetOf(candidate: EntityFieldMarkersContainer, superset: EntityFieldMarkersContainer) {
|
|
32
|
+
for (const [placeholderName, candidateMarker] of candidate.markers) {
|
|
33
|
+
const fromSuperset = superset.markers.get(placeholderName)
|
|
34
|
+
|
|
35
|
+
if (fromSuperset === undefined) {
|
|
36
|
+
if (candidateMarker instanceof FieldMarker) {
|
|
37
|
+
if (candidateMarker.fieldName === PRIMARY_KEY_NAME || candidateMarker.fieldName === TYPENAME_KEY_NAME) {
|
|
38
|
+
continue
|
|
39
|
+
}
|
|
40
|
+
throw new LocalizedBindingError(`The field '${candidateMarker.fieldName}' is missing.`, [candidateMarker])
|
|
41
|
+
}
|
|
42
|
+
if (candidateMarker instanceof HasOneRelationMarker || candidateMarker instanceof HasManyRelationMarker) {
|
|
43
|
+
const differentPlaceholders = superset.placeholders.get(candidateMarker.parameters.field)
|
|
44
|
+
|
|
45
|
+
if (differentPlaceholders === undefined) {
|
|
46
|
+
throw new LocalizedBindingError(`The relation '${candidateMarker.parameters.field}' is missing.`, [
|
|
47
|
+
candidateMarker,
|
|
48
|
+
])
|
|
49
|
+
}
|
|
50
|
+
// TODO be more specific
|
|
51
|
+
throw new LocalizedBindingError(
|
|
52
|
+
`The relation '${candidateMarker.parameters.field}' exists but its parameters don't match exactly. ` +
|
|
53
|
+
`Check that all relation parameters are the same.`,
|
|
54
|
+
[candidateMarker],
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
assertNever(candidateMarker)
|
|
58
|
+
}
|
|
59
|
+
if (candidateMarker instanceof FieldMarker) {
|
|
60
|
+
continue
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
if (
|
|
64
|
+
(candidateMarker instanceof HasOneRelationMarker && fromSuperset instanceof HasOneRelationMarker) ||
|
|
65
|
+
(candidateMarker instanceof HasManyRelationMarker && fromSuperset instanceof HasManyRelationMarker)
|
|
66
|
+
) {
|
|
67
|
+
this.assertSubsetOf(candidateMarker.fields, fromSuperset.fields)
|
|
68
|
+
}
|
|
69
|
+
} catch (e) {
|
|
70
|
+
if (e instanceof LocalizedBindingError) {
|
|
71
|
+
throw e.nestedIn(candidateMarker)
|
|
72
|
+
}
|
|
73
|
+
throw e
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
private static isSubsetOf(candidate: EntityFieldMarkersContainer, superset: EntityFieldMarkersContainer): boolean {
|
|
79
|
+
for (const [placeholderName, candidateMarker] of candidate.markers) {
|
|
80
|
+
const fromSuperset = superset.markers.get(placeholderName)
|
|
81
|
+
|
|
82
|
+
if (fromSuperset === undefined) {
|
|
83
|
+
if (
|
|
84
|
+
candidateMarker instanceof FieldMarker &&
|
|
85
|
+
(candidateMarker.fieldName === PRIMARY_KEY_NAME || candidateMarker.fieldName === TYPENAME_KEY_NAME)
|
|
86
|
+
) {
|
|
87
|
+
continue
|
|
88
|
+
}
|
|
89
|
+
return false
|
|
90
|
+
}
|
|
91
|
+
if (candidateMarker instanceof FieldMarker || fromSuperset instanceof FieldMarker) {
|
|
92
|
+
continue
|
|
93
|
+
}
|
|
94
|
+
if (!this.isSubsetOf(candidateMarker.fields, fromSuperset.fields)) {
|
|
95
|
+
return false
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return true
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
//private static assertAreMarkersSubsetOf(): {}
|
|
102
|
+
}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import { BindingError } from '../BindingError'
|
|
2
|
+
import { PRIMARY_KEY_NAME } from '../consts'
|
|
3
|
+
import {
|
|
4
|
+
EntityFieldMarkers,
|
|
5
|
+
EntityFieldMarkersContainer,
|
|
6
|
+
EntityFieldPlaceholders,
|
|
7
|
+
EntityListSubTreeMarker,
|
|
8
|
+
EntitySubTreeMarker,
|
|
9
|
+
FieldMarker,
|
|
10
|
+
HasManyRelationMarker,
|
|
11
|
+
HasOneRelationMarker,
|
|
12
|
+
MarkerTreeRoot,
|
|
13
|
+
MeaningfulMarker,
|
|
14
|
+
SubTreeMarkers,
|
|
15
|
+
} from '../markers'
|
|
16
|
+
import type { Alias, FieldName, PlaceholderName } from '../treeParameters'
|
|
17
|
+
import { assertNever } from '../utils/assertNever'
|
|
18
|
+
import { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'
|
|
19
|
+
import { Environment } from '../environment'
|
|
20
|
+
|
|
21
|
+
export class MarkerMerger {
|
|
22
|
+
// This method assumes their placeholder names are the same
|
|
23
|
+
public static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker {
|
|
24
|
+
if (original === fresh) {
|
|
25
|
+
return original
|
|
26
|
+
}
|
|
27
|
+
if (original instanceof FieldMarker) {
|
|
28
|
+
if (fresh instanceof FieldMarker) {
|
|
29
|
+
return this.mergeFieldMarkers(original, fresh)
|
|
30
|
+
} else if (fresh instanceof HasOneRelationMarker || fresh instanceof HasManyRelationMarker) {
|
|
31
|
+
return this.rejectRelationScalarCombo(original.fieldName)
|
|
32
|
+
} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {
|
|
33
|
+
throw new BindingError('Merging fields and sub trees is an undefined operation.')
|
|
34
|
+
}
|
|
35
|
+
assertNever(fresh)
|
|
36
|
+
} else if (original instanceof HasOneRelationMarker) {
|
|
37
|
+
if (fresh instanceof HasOneRelationMarker) {
|
|
38
|
+
return this.mergeHasOneRelationMarkers(original, fresh)
|
|
39
|
+
} else if (fresh instanceof FieldMarker) {
|
|
40
|
+
return this.rejectRelationScalarCombo(original.parameters.field)
|
|
41
|
+
} else if (fresh instanceof HasManyRelationMarker) {
|
|
42
|
+
throw new BindingError() // TODO not implemented
|
|
43
|
+
} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {
|
|
44
|
+
throw new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')
|
|
45
|
+
}
|
|
46
|
+
assertNever(fresh)
|
|
47
|
+
} else if (original instanceof HasManyRelationMarker) {
|
|
48
|
+
if (fresh instanceof HasManyRelationMarker) {
|
|
49
|
+
return this.mergeHasManyRelationMarkers(original, fresh)
|
|
50
|
+
} else if (fresh instanceof FieldMarker) {
|
|
51
|
+
return this.rejectRelationScalarCombo(original.parameters.field)
|
|
52
|
+
} else if (fresh instanceof HasOneRelationMarker) {
|
|
53
|
+
throw new BindingError() // TODO not implemented
|
|
54
|
+
} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {
|
|
55
|
+
throw new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')
|
|
56
|
+
}
|
|
57
|
+
assertNever(fresh)
|
|
58
|
+
} else if (original instanceof EntitySubTreeMarker) {
|
|
59
|
+
if (fresh instanceof EntitySubTreeMarker) {
|
|
60
|
+
return this.mergeEntitySubTreeMarkers(original, fresh)
|
|
61
|
+
} else {
|
|
62
|
+
throw new BindingError(
|
|
63
|
+
'MarkerTreeGenerator merging: EntitySubTreeMarker can only be merged with other entity sub trees.',
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
} else if (original instanceof EntityListSubTreeMarker) {
|
|
67
|
+
if (fresh instanceof EntityListSubTreeMarker) {
|
|
68
|
+
return this.mergeEntityListSubTreeMarkers(original, fresh)
|
|
69
|
+
} else {
|
|
70
|
+
throw new BindingError(
|
|
71
|
+
'MarkerTreeGenerator merging: EntityListSubTreeMarker can only be merged with other list sub trees.',
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
assertNever(original)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot {
|
|
79
|
+
if (original === fresh) {
|
|
80
|
+
return original
|
|
81
|
+
}
|
|
82
|
+
return new MarkerTreeRoot(
|
|
83
|
+
this.mergeEntityFields(original.subTrees, fresh.subTrees),
|
|
84
|
+
this.mergeSubTreePlaceholdersByAliases(original.placeholdersByAliases, fresh.placeholdersByAliases),
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public static mergeSubTreeMarkers(
|
|
89
|
+
original: SubTreeMarkers | undefined,
|
|
90
|
+
fresh: SubTreeMarkers | undefined,
|
|
91
|
+
): SubTreeMarkers | undefined {
|
|
92
|
+
if (original === fresh) {
|
|
93
|
+
return original
|
|
94
|
+
}
|
|
95
|
+
if (original === undefined) {
|
|
96
|
+
return fresh
|
|
97
|
+
}
|
|
98
|
+
if (fresh === undefined) {
|
|
99
|
+
return original
|
|
100
|
+
}
|
|
101
|
+
const newOriginal = new Map(original)
|
|
102
|
+
|
|
103
|
+
for (const [placeholderName, fromFresh] of fresh) {
|
|
104
|
+
const fromOriginal = newOriginal.get(placeholderName)
|
|
105
|
+
|
|
106
|
+
newOriginal.set(
|
|
107
|
+
placeholderName,
|
|
108
|
+
fromOriginal === undefined
|
|
109
|
+
? fromFresh
|
|
110
|
+
: fromOriginal instanceof EntityListSubTreeMarker
|
|
111
|
+
? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)
|
|
112
|
+
: MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),
|
|
113
|
+
)
|
|
114
|
+
}
|
|
115
|
+
return newOriginal
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
public static mergeSubTreePlaceholdersByAliases(
|
|
119
|
+
original: ReadonlyMap<Alias, PlaceholderName>,
|
|
120
|
+
fresh: ReadonlyMap<Alias, PlaceholderName>,
|
|
121
|
+
) {
|
|
122
|
+
const newOriginalAliases = new Map(original)
|
|
123
|
+
for (const [alias, placeholder] of fresh) {
|
|
124
|
+
const fromOriginal = newOriginalAliases.get(alias)
|
|
125
|
+
if (fromOriginal === undefined) {
|
|
126
|
+
newOriginalAliases.set(alias, placeholder)
|
|
127
|
+
} else if (fromOriginal === placeholder) {
|
|
128
|
+
// Do nothing
|
|
129
|
+
} else {
|
|
130
|
+
throw new BindingError(`Illegal subTree alias '${alias}' points to distinct subTrees.`)
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return newOriginalAliases
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
public static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers
|
|
137
|
+
public static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers
|
|
138
|
+
public static mergeEntityFields(
|
|
139
|
+
original: ReadonlyMap<PlaceholderName, MeaningfulMarker>,
|
|
140
|
+
fresh: ReadonlyMap<PlaceholderName, MeaningfulMarker>,
|
|
141
|
+
): ReadonlyMap<PlaceholderName, MeaningfulMarker> {
|
|
142
|
+
if (original === fresh) {
|
|
143
|
+
return original
|
|
144
|
+
}
|
|
145
|
+
if (original.size === 0) {
|
|
146
|
+
return fresh
|
|
147
|
+
}
|
|
148
|
+
const newOriginal: Map<PlaceholderName, MeaningfulMarker> = new Map(original)
|
|
149
|
+
for (const [placeholderName, freshMarker] of fresh) {
|
|
150
|
+
const markerFromOriginal = newOriginal.get(placeholderName)
|
|
151
|
+
newOriginal.set(
|
|
152
|
+
placeholderName,
|
|
153
|
+
markerFromOriginal === undefined ? freshMarker : this.mergeMarkers(markerFromOriginal, freshMarker),
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
return newOriginal
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
public static mergeEntityFieldPlaceholders(
|
|
160
|
+
original: EntityFieldPlaceholders,
|
|
161
|
+
fresh: EntityFieldPlaceholders,
|
|
162
|
+
): EntityFieldPlaceholders {
|
|
163
|
+
if (original === fresh) {
|
|
164
|
+
return original
|
|
165
|
+
}
|
|
166
|
+
if (original.size === 0) {
|
|
167
|
+
return fresh
|
|
168
|
+
}
|
|
169
|
+
const newOriginal: Map<FieldName, PlaceholderName | Set<PlaceholderName>> = new Map(original)
|
|
170
|
+
for (const [fieldName, freshPlaceholders] of fresh) {
|
|
171
|
+
const placeholderFromOriginal = newOriginal.get(fieldName)
|
|
172
|
+
|
|
173
|
+
if (placeholderFromOriginal === undefined) {
|
|
174
|
+
newOriginal.set(fieldName, freshPlaceholders)
|
|
175
|
+
} else if (placeholderFromOriginal instanceof Set) {
|
|
176
|
+
const combinedSet = new Set(placeholderFromOriginal)
|
|
177
|
+
if (freshPlaceholders instanceof Set) {
|
|
178
|
+
for (const freshPlaceholder of freshPlaceholders) {
|
|
179
|
+
combinedSet.add(freshPlaceholder)
|
|
180
|
+
}
|
|
181
|
+
} else if (typeof freshPlaceholders === 'string') {
|
|
182
|
+
combinedSet.add(freshPlaceholders)
|
|
183
|
+
} else {
|
|
184
|
+
assertNever(freshPlaceholders)
|
|
185
|
+
}
|
|
186
|
+
newOriginal.set(fieldName, combinedSet)
|
|
187
|
+
} else if (typeof placeholderFromOriginal === 'string') {
|
|
188
|
+
if (typeof freshPlaceholders === 'string') {
|
|
189
|
+
if (placeholderFromOriginal === freshPlaceholders) {
|
|
190
|
+
// Do nothing
|
|
191
|
+
} else {
|
|
192
|
+
newOriginal.set(fieldName, new Set([placeholderFromOriginal, freshPlaceholders]))
|
|
193
|
+
}
|
|
194
|
+
} else if (freshPlaceholders instanceof Set) {
|
|
195
|
+
if (freshPlaceholders.has(placeholderFromOriginal)) {
|
|
196
|
+
newOriginal.set(fieldName, freshPlaceholders)
|
|
197
|
+
} else {
|
|
198
|
+
const combinedSet = new Set(freshPlaceholders)
|
|
199
|
+
combinedSet.add(placeholderFromOriginal)
|
|
200
|
+
newOriginal.set(fieldName, combinedSet)
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
assertNever(freshPlaceholders)
|
|
204
|
+
}
|
|
205
|
+
} else {
|
|
206
|
+
assertNever(placeholderFromOriginal)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return newOriginal
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public static mergeEntityFieldsContainers(
|
|
213
|
+
original: EntityFieldMarkersContainer,
|
|
214
|
+
fresh: EntityFieldMarkersContainer,
|
|
215
|
+
): EntityFieldMarkersContainer {
|
|
216
|
+
if (original === fresh) {
|
|
217
|
+
return original
|
|
218
|
+
}
|
|
219
|
+
return new EntityFieldMarkersContainer(
|
|
220
|
+
original.hasAtLeastOneBearingField || fresh.hasAtLeastOneBearingField,
|
|
221
|
+
this.mergeEntityFields(original.markers, fresh.markers),
|
|
222
|
+
this.mergeEntityFieldPlaceholders(original.placeholders, fresh.placeholders),
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
public static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker) {
|
|
227
|
+
if (original === fresh) {
|
|
228
|
+
return original
|
|
229
|
+
}
|
|
230
|
+
return new HasOneRelationMarker(
|
|
231
|
+
TreeParameterMerger.mergeHasOneRelationsWithSamePlaceholders(original.parameters, fresh.parameters),
|
|
232
|
+
this.mergeEntityFieldsContainers(original.fields, fresh.fields),
|
|
233
|
+
this.mergeEnvironments(original.environment, fresh.environment),
|
|
234
|
+
)
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
public static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker) {
|
|
238
|
+
if (original === fresh) {
|
|
239
|
+
return original
|
|
240
|
+
}
|
|
241
|
+
return new HasManyRelationMarker(
|
|
242
|
+
TreeParameterMerger.mergeHasManyRelationsWithSamePlaceholders(original.parameters, fresh.parameters),
|
|
243
|
+
this.mergeEntityFieldsContainers(original.fields, fresh.fields),
|
|
244
|
+
this.mergeEnvironments(original.environment, fresh.environment),
|
|
245
|
+
)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
public static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker) {
|
|
249
|
+
if (original === fresh) {
|
|
250
|
+
return original
|
|
251
|
+
}
|
|
252
|
+
return new EntitySubTreeMarker(
|
|
253
|
+
TreeParameterMerger.mergeEntitySubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),
|
|
254
|
+
this.mergeEntityFieldsContainers(original.fields, fresh.fields),
|
|
255
|
+
this.mergeEnvironments(original.environment, fresh.environment),
|
|
256
|
+
)
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
public static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker) {
|
|
260
|
+
if (original === fresh) {
|
|
261
|
+
return original
|
|
262
|
+
}
|
|
263
|
+
return new EntityListSubTreeMarker(
|
|
264
|
+
TreeParameterMerger.mergeEntityListSubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),
|
|
265
|
+
this.mergeEntityFieldsContainers(original.fields, fresh.fields),
|
|
266
|
+
this.mergeEnvironments(original.environment, fresh.environment),
|
|
267
|
+
)
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
public static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker) {
|
|
271
|
+
if (original === fresh) {
|
|
272
|
+
return original
|
|
273
|
+
}
|
|
274
|
+
return new FieldMarker(TreeParameterMerger.mergeSingleField(original.parameters, fresh.parameters))
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
public static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer {
|
|
278
|
+
const primaryKey = new FieldMarker({
|
|
279
|
+
field: PRIMARY_KEY_NAME,
|
|
280
|
+
defaultValue: undefined,
|
|
281
|
+
isNonbearing: true,
|
|
282
|
+
eventListeners: undefined,
|
|
283
|
+
})
|
|
284
|
+
// We could potentially share this instance for all fields. Maybe sometime later.
|
|
285
|
+
const freshFields = new EntityFieldMarkersContainer(
|
|
286
|
+
false,
|
|
287
|
+
new Map([[primaryKey.placeholderName, primaryKey]]),
|
|
288
|
+
new Map([[PRIMARY_KEY_NAME, primaryKey.placeholderName]]),
|
|
289
|
+
)
|
|
290
|
+
return original ? this.mergeEntityFieldsContainers(original, freshFields) : freshFields
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
public static mergeEnvironments(original: Environment, fresh: Environment): Environment {
|
|
294
|
+
return original.merge(fresh)
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
private static rejectRelationScalarCombo(fieldName: FieldName): never {
|
|
298
|
+
throw new BindingError(`Cannot combine a relation with a scalar field '${fieldName}'.`)
|
|
299
|
+
}
|
|
300
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Alias, PlaceholderName } from '../treeParameters'
|
|
2
|
+
import type { SubTreeMarkers } from './SubTreeMarkers'
|
|
3
|
+
|
|
4
|
+
export class MarkerTreeRoot {
|
|
5
|
+
public constructor(
|
|
6
|
+
public readonly subTrees: SubTreeMarkers,
|
|
7
|
+
public readonly placeholdersByAliases: ReadonlyMap<Alias, PlaceholderName>,
|
|
8
|
+
) {}
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EntityListSubTreeMarker } from './EntityListSubTreeMarker'
|
|
2
|
+
import type { EntitySubTreeMarker } from './EntitySubTreeMarker'
|
|
3
|
+
import type { FieldMarker } from './FieldMarker'
|
|
4
|
+
import type { HasManyRelationMarker } from './HasManyRelationMarker'
|
|
5
|
+
import type { HasOneRelationMarker } from './HasOneRelationMarker'
|
|
6
|
+
|
|
7
|
+
export type MeaningfulMarker =
|
|
8
|
+
| FieldMarker
|
|
9
|
+
| HasOneRelationMarker
|
|
10
|
+
| HasManyRelationMarker
|
|
11
|
+
| EntityListSubTreeMarker
|
|
12
|
+
| EntitySubTreeMarker
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FieldName,
|
|
3
|
+
HasManyRelation,
|
|
4
|
+
HasOneRelation,
|
|
5
|
+
QualifiedEntityList,
|
|
6
|
+
QualifiedSingleEntity,
|
|
7
|
+
UnconstrainedQualifiedEntityList,
|
|
8
|
+
UnconstrainedQualifiedSingleEntity,
|
|
9
|
+
} from '../treeParameters'
|
|
10
|
+
import { Hashing } from '../utils/Hashing'
|
|
11
|
+
import { Environment } from '../environment'
|
|
12
|
+
import { PlaceholderParametersGenerator } from './PlaceholderParametersGenerator'
|
|
13
|
+
|
|
14
|
+
export class PlaceholderGenerator {
|
|
15
|
+
public static getFieldPlaceholder(fieldName: FieldName): string {
|
|
16
|
+
return fieldName // hashing intentionally ignored
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public static getHasOneRelationPlaceholder(relation: HasOneRelation): string {
|
|
20
|
+
return `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasOneRelationParameters(relation))}`
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public static getHasManyRelationPlaceholder(relation: HasManyRelation): string {
|
|
24
|
+
return `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasManyRelationParameters(relation))}`
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public static getEntitySubTreePlaceholder(
|
|
28
|
+
subTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,
|
|
29
|
+
environment: Environment,
|
|
30
|
+
): string {
|
|
31
|
+
return `est_${Hashing.hashAny(PlaceholderParametersGenerator.createEntitySubTreeParameters(subTreeParameters, environment))}`
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public static getEntityListSubTreePlaceholder(
|
|
35
|
+
subTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,
|
|
36
|
+
environment: Environment,
|
|
37
|
+
): string {
|
|
38
|
+
return `lst_${Hashing.hashAny(PlaceholderParametersGenerator.createEntityListSubTreeParameters(subTreeParameters, environment))}`
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import {
|
|
2
|
+
HasManyRelation,
|
|
3
|
+
HasOneRelation,
|
|
4
|
+
QualifiedEntityList,
|
|
5
|
+
QualifiedSingleEntity,
|
|
6
|
+
UnconstrainedQualifiedEntityList,
|
|
7
|
+
UnconstrainedQualifiedSingleEntity,
|
|
8
|
+
} from '../treeParameters'
|
|
9
|
+
import { Environment } from '../environment'
|
|
10
|
+
|
|
11
|
+
export class PlaceholderParametersGenerator {
|
|
12
|
+
|
|
13
|
+
public static createHasOneRelationParameters(relation: HasOneRelation): any {
|
|
14
|
+
return {
|
|
15
|
+
type: 'hasOne',
|
|
16
|
+
field: relation.field,
|
|
17
|
+
filter: relation.filter,
|
|
18
|
+
reducedBy: relation.reducedBy,
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public static createHasManyRelationParameters(relation: HasManyRelation): any {
|
|
23
|
+
return {
|
|
24
|
+
type: 'hasMany',
|
|
25
|
+
field: relation.field,
|
|
26
|
+
filter: relation.filter,
|
|
27
|
+
offset: relation.offset,
|
|
28
|
+
limit: relation.limit,
|
|
29
|
+
orderBy: relation.orderBy,
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public static createEntityListSubTreeParameters(
|
|
34
|
+
parameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,
|
|
35
|
+
environment: Environment,
|
|
36
|
+
): any {
|
|
37
|
+
if (parameters.isCreating) {
|
|
38
|
+
return {
|
|
39
|
+
type: 'entityListSubtree',
|
|
40
|
+
isCreating: true,
|
|
41
|
+
entityName: parameters.entityName,
|
|
42
|
+
variables: environment.getAllVariables(),
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
type: 'entityListSubtree',
|
|
47
|
+
isCreating: false,
|
|
48
|
+
entityName: parameters.entityName,
|
|
49
|
+
filter: parameters.filter,
|
|
50
|
+
offset: parameters.offset,
|
|
51
|
+
limit: parameters.limit,
|
|
52
|
+
orderBy: parameters.orderBy,
|
|
53
|
+
variables: environment.getAllVariables(),
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public static createEntitySubTreeParameters(
|
|
58
|
+
parameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,
|
|
59
|
+
environment: Environment,
|
|
60
|
+
): any {
|
|
61
|
+
if (parameters.isCreating) {
|
|
62
|
+
return {
|
|
63
|
+
type: 'entitySubTree',
|
|
64
|
+
isCreating: true,
|
|
65
|
+
entityName: parameters.entityName,
|
|
66
|
+
variables: environment.getAllVariables(),
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
type: 'entitySubTree',
|
|
71
|
+
isCreating: false,
|
|
72
|
+
where: parameters.where,
|
|
73
|
+
entityName: parameters.entityName,
|
|
74
|
+
filter: parameters.filter,
|
|
75
|
+
variables: environment.getAllVariables(),
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PlaceholderName } from '../treeParameters'
|
|
2
|
+
import type { EntityListSubTreeMarker } from './EntityListSubTreeMarker'
|
|
3
|
+
import type { EntitySubTreeMarker } from './EntitySubTreeMarker'
|
|
4
|
+
|
|
5
|
+
export type SubTreeMarkers = ReadonlyMap<PlaceholderName, EntitySubTreeMarker | EntityListSubTreeMarker>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './EntityFieldMarkers'
|
|
2
|
+
export * from './EntityFieldMarkersContainer'
|
|
3
|
+
export * from './EntityFieldPlaceholders'
|
|
4
|
+
export * from './EntityFieldsWithHoistablesMarker'
|
|
5
|
+
export * from './EntityListSubTreeMarker'
|
|
6
|
+
export * from './EntitySubTreeMarker'
|
|
7
|
+
export * from './FieldMarker'
|
|
8
|
+
export * from './HasManyRelationMarker'
|
|
9
|
+
export * from './HasOneRelationMarker'
|
|
10
|
+
export * from './MarkerTreeRoot'
|
|
11
|
+
export * from './MeaningfulMarker'
|
|
12
|
+
export * from './PlaceholderGenerator'
|
|
13
|
+
export * from './SubTreeMarkers'
|
|
14
|
+
|
|
15
|
+
export * from './PlaceholderParametersGenerator'
|
|
16
|
+
export * from './MarkerMerger'
|
|
17
|
+
export * from './MarkerComparator'
|