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