@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,126 @@
|
|
|
1
|
+
import { Environment } from '../environment'
|
|
2
|
+
import { EntityListSubTreeMarker, EntitySubTreeMarker, HasManyRelationMarker, HasOneRelationMarker } from '../markers'
|
|
3
|
+
import type {
|
|
4
|
+
EntityId,
|
|
5
|
+
EntityName,
|
|
6
|
+
EntityRealmKey,
|
|
7
|
+
FieldName,
|
|
8
|
+
FieldValue,
|
|
9
|
+
RelativeEntityList,
|
|
10
|
+
RelativeSingleEntity,
|
|
11
|
+
RelativeSingleField,
|
|
12
|
+
SugaredRelativeEntityList,
|
|
13
|
+
SugaredRelativeSingleEntity,
|
|
14
|
+
SugaredRelativeSingleField,
|
|
15
|
+
} from '../treeParameters'
|
|
16
|
+
import type { AsyncBatchUpdatesOptions } from './AsyncBatchUpdatesOptions'
|
|
17
|
+
import type { BatchUpdatesOptions } from './BatchUpdatesOptions'
|
|
18
|
+
import { EntityListAccessor } from './EntityListAccessor'
|
|
19
|
+
import type { Errorable } from './Errorable'
|
|
20
|
+
import { ErrorAccessor } from './ErrorAccessor'
|
|
21
|
+
import type { FieldAccessor } from './FieldAccessor'
|
|
22
|
+
import type { PersistErrorOptions } from './PersistErrorOptions'
|
|
23
|
+
import type { PersistSuccessOptions } from './PersistSuccessOptions'
|
|
24
|
+
|
|
25
|
+
export const isEntityAccessor = (accessor: unknown): accessor is EntityAccessor =>
|
|
26
|
+
accessor !== null && typeof accessor === 'object' && '__type' in accessor && accessor.__type === 'EntityAccessor'
|
|
27
|
+
|
|
28
|
+
interface EntityAccessor extends Errorable {
|
|
29
|
+
readonly __type: 'EntityAccessor'
|
|
30
|
+
/**
|
|
31
|
+
* The key is a unique identifier of the entity. It is not the id of the entity.
|
|
32
|
+
*/
|
|
33
|
+
readonly key?: EntityRealmKey
|
|
34
|
+
readonly name: EntityName
|
|
35
|
+
readonly hasUnpersistedChanges: boolean
|
|
36
|
+
readonly errors: ErrorAccessor | undefined
|
|
37
|
+
readonly environment: Environment
|
|
38
|
+
readonly getAccessor: EntityAccessor.GetEntityAccessor
|
|
39
|
+
readonly idOnServer: EntityId | undefined
|
|
40
|
+
readonly id: EntityId
|
|
41
|
+
readonly existsOnServer: boolean
|
|
42
|
+
|
|
43
|
+
addError: ErrorAccessor.AddError
|
|
44
|
+
|
|
45
|
+
addEventListener: EntityAccessor.AddEventListener
|
|
46
|
+
|
|
47
|
+
batchUpdates(performUpdates: EntityAccessor.BatchUpdatesHandler): void
|
|
48
|
+
|
|
49
|
+
connectEntityAtField(field: SugaredRelativeSingleEntity | string, entityToConnect: EntityAccessor): void
|
|
50
|
+
|
|
51
|
+
disconnectEntityAtField(field: SugaredRelativeSingleEntity | string, initializeReplacement?: EntityAccessor.BatchUpdatesHandler): void
|
|
52
|
+
|
|
53
|
+
deleteEntity(): void
|
|
54
|
+
|
|
55
|
+
updateValues(fieldValuePairs: EntityAccessor.FieldValuePairs): void
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Please keep in mind that this method signature is literally impossible to implement safely. The generic parameter
|
|
59
|
+
* is really just a way to succinctly write a type cast. Nothing more, really.
|
|
60
|
+
*/
|
|
61
|
+
getField<Value extends FieldValue = FieldValue>(field: SugaredRelativeSingleField | string | RelativeSingleField): FieldAccessor<Value>
|
|
62
|
+
|
|
63
|
+
getEntity(entity: SugaredRelativeSingleEntity | string | RelativeSingleEntity): EntityAccessor
|
|
64
|
+
|
|
65
|
+
getEntityList(entityList: SugaredRelativeEntityList | string | RelativeEntityList): EntityListAccessor
|
|
66
|
+
|
|
67
|
+
getParent(): EntityAccessor | EntityListAccessor | undefined
|
|
68
|
+
|
|
69
|
+
getMarker(): HasManyRelationMarker | HasOneRelationMarker | EntitySubTreeMarker | EntityListSubTreeMarker
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
namespace EntityAccessor {
|
|
73
|
+
export interface FieldDatum {
|
|
74
|
+
getAccessor(): NestedAccessor
|
|
75
|
+
}
|
|
76
|
+
export type NestedAccessor = EntityAccessor | EntityListAccessor | FieldAccessor<any>
|
|
77
|
+
|
|
78
|
+
export type FieldValuePairs =
|
|
79
|
+
| {
|
|
80
|
+
[field: string]: FieldValue
|
|
81
|
+
}
|
|
82
|
+
| Iterable<[SugaredRelativeSingleField | string, FieldValue]>
|
|
83
|
+
|
|
84
|
+
export type FieldData = Map<FieldName, FieldDatum>
|
|
85
|
+
|
|
86
|
+
export type GetEntityAccessor = () => EntityAccessor
|
|
87
|
+
export type BatchUpdatesHandler = (getAccessor: GetEntityAccessor, options: BatchUpdatesOptions) => void
|
|
88
|
+
export type UpdateListener = (accessor: EntityAccessor) => void
|
|
89
|
+
|
|
90
|
+
export type BeforePersistHandler = (
|
|
91
|
+
getAccessor: GetEntityAccessor,
|
|
92
|
+
options: AsyncBatchUpdatesOptions,
|
|
93
|
+
) => void | BeforePersistHandler | Promise<void | BeforePersistHandler>
|
|
94
|
+
|
|
95
|
+
export type PersistErrorHandler = (
|
|
96
|
+
getAccessor: GetEntityAccessor,
|
|
97
|
+
options: PersistErrorOptions,
|
|
98
|
+
) => void | Promise<void>
|
|
99
|
+
|
|
100
|
+
export type PersistSuccessHandler = (
|
|
101
|
+
getAccessor: GetEntityAccessor,
|
|
102
|
+
options: PersistSuccessOptions,
|
|
103
|
+
) => void | PersistSuccessHandler | Promise<void | PersistSuccessHandler>
|
|
104
|
+
|
|
105
|
+
export type RuntimeEntityEventListenerMap = {
|
|
106
|
+
beforePersist: BeforePersistHandler
|
|
107
|
+
beforeUpdate: BatchUpdatesHandler
|
|
108
|
+
connectionUpdate: UpdateListener
|
|
109
|
+
persistError: PersistErrorHandler
|
|
110
|
+
persistSuccess: PersistSuccessHandler
|
|
111
|
+
update: UpdateListener
|
|
112
|
+
}
|
|
113
|
+
export type EntityEventListenerMap =
|
|
114
|
+
& RuntimeEntityEventListenerMap
|
|
115
|
+
& {
|
|
116
|
+
initialize: BatchUpdatesHandler
|
|
117
|
+
}
|
|
118
|
+
export type EntityEventType = keyof EntityEventListenerMap
|
|
119
|
+
|
|
120
|
+
export type AddEventListener = <Type extends keyof EntityAccessor.RuntimeEntityEventListenerMap>(
|
|
121
|
+
event: { type: Type; key?: string },
|
|
122
|
+
listener: EntityAccessor.EntityEventListenerMap[Type],
|
|
123
|
+
) => () => void
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export type { EntityAccessor }
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { Environment } from '../environment'
|
|
2
|
+
import type { EntityId, EntityName, EntityRealmKey } from '../treeParameters'
|
|
3
|
+
import type { AsyncBatchUpdatesOptions } from './AsyncBatchUpdatesOptions'
|
|
4
|
+
import type { BatchUpdatesOptions } from './BatchUpdatesOptions'
|
|
5
|
+
import type { EntityAccessor } from './EntityAccessor'
|
|
6
|
+
import type { Errorable } from './Errorable'
|
|
7
|
+
import { ErrorAccessor } from './ErrorAccessor'
|
|
8
|
+
import type { PersistErrorOptions } from './PersistErrorOptions'
|
|
9
|
+
import type { PersistSuccessOptions } from './PersistSuccessOptions'
|
|
10
|
+
import { RuntimeId } from '../RuntimeId'
|
|
11
|
+
import { EntityListSubTreeMarker, HasManyRelationMarker } from '../markers'
|
|
12
|
+
|
|
13
|
+
export const isEntityListAccessor = (accessor: unknown): accessor is EntityListAccessor =>
|
|
14
|
+
accessor !== null && typeof accessor === 'object' && '__type' in accessor && accessor.__type === 'EntityListAccessor'
|
|
15
|
+
|
|
16
|
+
interface EntityListAccessor extends Errorable {
|
|
17
|
+
readonly __type: 'EntityListAccessor'
|
|
18
|
+
readonly name: EntityName
|
|
19
|
+
readonly hasUnpersistedChanges: boolean
|
|
20
|
+
readonly errors: ErrorAccessor | undefined
|
|
21
|
+
readonly environment: Environment
|
|
22
|
+
readonly getAccessor: EntityListAccessor.GetEntityListAccessor
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns all entity keys that are on the list.
|
|
26
|
+
* **KEYS ARE NOT IDS!**
|
|
27
|
+
* @see EntityAccessor.key
|
|
28
|
+
*/
|
|
29
|
+
keys(): IterableIterator<EntityRealmKey>
|
|
30
|
+
|
|
31
|
+
ids(): IterableIterator<EntityId>
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* This will only contain the ids that the server knows about. Not necessarily the ids that have been added on
|
|
35
|
+
* the list since the last server query.
|
|
36
|
+
*/
|
|
37
|
+
idsPersistedOnServer: Set<EntityId>
|
|
38
|
+
|
|
39
|
+
[Symbol.iterator](): IterableIterator<EntityAccessor>
|
|
40
|
+
|
|
41
|
+
hasEntityId(id: EntityId): boolean
|
|
42
|
+
|
|
43
|
+
isEmpty(): boolean
|
|
44
|
+
|
|
45
|
+
length: number
|
|
46
|
+
|
|
47
|
+
deleteAll(): void
|
|
48
|
+
|
|
49
|
+
disconnectAll(): void
|
|
50
|
+
|
|
51
|
+
addError(error: ErrorAccessor.Error | string): () => void
|
|
52
|
+
|
|
53
|
+
addEventListener: EntityListAccessor.AddEventListener
|
|
54
|
+
|
|
55
|
+
addChildEventListener: EntityListAccessor.AddChildEventListener
|
|
56
|
+
|
|
57
|
+
batchUpdates(performUpdates: EntityListAccessor.BatchUpdatesHandler): void
|
|
58
|
+
|
|
59
|
+
connectEntity(entityToConnect: EntityAccessor): void
|
|
60
|
+
|
|
61
|
+
createNewEntity(initialize?: EntityAccessor.BatchUpdatesHandler): RuntimeId
|
|
62
|
+
disconnectEntity(childEntity: EntityAccessor, options?: { noPersist?: boolean }): void
|
|
63
|
+
getChildEntityById(id: EntityId): EntityAccessor
|
|
64
|
+
|
|
65
|
+
getParent(): EntityAccessor | undefined
|
|
66
|
+
|
|
67
|
+
getMarker(): EntityListSubTreeMarker | HasManyRelationMarker
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
namespace EntityListAccessor {
|
|
71
|
+
export type GetEntityListAccessor = () => EntityListAccessor
|
|
72
|
+
export type BatchUpdatesHandler = (getAccessor: GetEntityListAccessor, options: BatchUpdatesOptions) => void
|
|
73
|
+
|
|
74
|
+
export type UpdateListener = (accessor: EntityListAccessor) => void
|
|
75
|
+
|
|
76
|
+
export type BeforePersistHandler = (
|
|
77
|
+
getAccessor: GetEntityListAccessor,
|
|
78
|
+
options: AsyncBatchUpdatesOptions,
|
|
79
|
+
) => void | Promise<void | BeforePersistHandler>
|
|
80
|
+
|
|
81
|
+
export type PersistErrorHandler = (
|
|
82
|
+
getAccessor: GetEntityListAccessor,
|
|
83
|
+
options: PersistErrorOptions,
|
|
84
|
+
) => void | Promise<void>
|
|
85
|
+
|
|
86
|
+
export type PersistSuccessHandler = (
|
|
87
|
+
getAccessor: GetEntityListAccessor,
|
|
88
|
+
options: PersistSuccessOptions,
|
|
89
|
+
) => void | Promise<void | PersistSuccessHandler>
|
|
90
|
+
|
|
91
|
+
export type ChildEventListenerMap = {
|
|
92
|
+
childBeforeUpdate: EntityAccessor.BatchUpdatesHandler
|
|
93
|
+
childInitialize: EntityAccessor.BatchUpdatesHandler
|
|
94
|
+
childUpdate: EntityAccessor.UpdateListener
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type RuntimeEntityListEventListenerMap = {
|
|
98
|
+
beforePersist: BeforePersistHandler
|
|
99
|
+
beforeUpdate: BatchUpdatesHandler
|
|
100
|
+
persistError: PersistErrorHandler
|
|
101
|
+
persistSuccess: PersistSuccessHandler
|
|
102
|
+
update: UpdateListener
|
|
103
|
+
}
|
|
104
|
+
export type EntityListEventListenerMap =
|
|
105
|
+
& RuntimeEntityListEventListenerMap
|
|
106
|
+
& {
|
|
107
|
+
initialize: BatchUpdatesHandler
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export type EntityListEventType = keyof EntityListEventListenerMap
|
|
111
|
+
|
|
112
|
+
export type AddEventListener = <Type extends keyof EntityListAccessor.RuntimeEntityListEventListenerMap>(
|
|
113
|
+
event: { type: Type; key?: string },
|
|
114
|
+
listener: EntityListAccessor.EntityListEventListenerMap[Type],
|
|
115
|
+
) => () => void
|
|
116
|
+
|
|
117
|
+
export type AddChildEventListener = <Type extends keyof EntityAccessor.EntityEventListenerMap>(
|
|
118
|
+
event: { type: Type; key?: string },
|
|
119
|
+
listener: EntityAccessor.EntityEventListenerMap[Type],
|
|
120
|
+
) => () => void
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export { type EntityListAccessor }
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Result } from '@contember/client'
|
|
2
|
+
|
|
3
|
+
interface ErrorAccessor {
|
|
4
|
+
readonly errors: ErrorAccessor.Error[]
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
namespace ErrorAccessor {
|
|
8
|
+
export type ErrorId = number
|
|
9
|
+
export type Error = ExecutionError | ValidationError
|
|
10
|
+
export type ErrorsById = Map<ErrorId, Error>
|
|
11
|
+
export type ClearError = () => void
|
|
12
|
+
|
|
13
|
+
export type AddError = (error: ErrorAccessor.Error | string) => ClearError
|
|
14
|
+
|
|
15
|
+
export type ExecutionErrors = ExecutionError[]
|
|
16
|
+
|
|
17
|
+
export interface ExecutionError {
|
|
18
|
+
type: 'execution'
|
|
19
|
+
code: Result.ExecutionErrorType
|
|
20
|
+
developerMessage: string | null
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type ValidationErrors = ValidationError[]
|
|
24
|
+
|
|
25
|
+
export interface ValidationError {
|
|
26
|
+
type: 'validation'
|
|
27
|
+
code: WellKnownErrorCode | string | undefined
|
|
28
|
+
message: string
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type WellKnownErrorCode = 'fieldRequired'
|
|
32
|
+
|
|
33
|
+
export const normalizeError = (error: Error | string): Error => typeof error === 'string' ? {
|
|
34
|
+
type: 'validation',
|
|
35
|
+
message: error,
|
|
36
|
+
code: undefined,
|
|
37
|
+
} : error
|
|
38
|
+
}
|
|
39
|
+
export { ErrorAccessor }
|
|
40
|
+
|
|
41
|
+
export interface ErrorAccessorHolder {
|
|
42
|
+
readonly errors: ErrorAccessor | undefined
|
|
43
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Environment } from '../environment'
|
|
2
|
+
import type { TreeRootId } from '../treeParameters'
|
|
3
|
+
|
|
4
|
+
export interface ExtendTreeOptions {
|
|
5
|
+
signal?: AbortSignal
|
|
6
|
+
environment?: Environment
|
|
7
|
+
force?: boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type ExtendTree<Node> = (newFragment: Node, options?: ExtendTreeOptions) => Promise<TreeRootId | undefined>
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { FieldName, FieldValue } from '../treeParameters'
|
|
2
|
+
import type { BatchUpdatesOptions } from './BatchUpdatesOptions'
|
|
3
|
+
import type { Errorable } from './Errorable'
|
|
4
|
+
import { ErrorAccessor } from './ErrorAccessor'
|
|
5
|
+
import type { SchemaColumn } from '../schema'
|
|
6
|
+
import { EntityAccessor } from './EntityAccessor'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export const isFieldAccessor = (accessor: unknown): accessor is FieldAccessor =>
|
|
10
|
+
accessor !== null && typeof accessor === 'object' && '__type' in accessor && accessor.__type === 'FieldAccessor'
|
|
11
|
+
|
|
12
|
+
interface FieldAccessor<Value extends FieldValue = FieldValue> extends Errorable {
|
|
13
|
+
readonly __type: 'FieldAccessor'
|
|
14
|
+
readonly fieldName: FieldName
|
|
15
|
+
readonly value: Value | null
|
|
16
|
+
readonly valueOnServer: Value | null
|
|
17
|
+
readonly defaultValue: Value | undefined
|
|
18
|
+
readonly errors: ErrorAccessor | undefined
|
|
19
|
+
readonly hasUnpersistedChanges: boolean
|
|
20
|
+
readonly getAccessor: FieldAccessor.GetFieldAccessor<Value>
|
|
21
|
+
readonly schema: SchemaColumn
|
|
22
|
+
|
|
23
|
+
addError(error: ErrorAccessor.Error | string): ErrorAccessor.ClearError
|
|
24
|
+
|
|
25
|
+
clearErrors(): void
|
|
26
|
+
|
|
27
|
+
addEventListener: FieldAccessor.AddEventListener<Value>
|
|
28
|
+
|
|
29
|
+
updateValue(newValue: Value | null, options?: FieldAccessor.UpdateOptions): void
|
|
30
|
+
|
|
31
|
+
isTouchedBy(agent: FieldAccessor.TouchAgent): boolean
|
|
32
|
+
|
|
33
|
+
isTouched: boolean
|
|
34
|
+
|
|
35
|
+
getParent(): EntityAccessor
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
namespace FieldAccessor {
|
|
39
|
+
export type TouchAgent = 'user' | (string & {})
|
|
40
|
+
export interface UpdateOptions {
|
|
41
|
+
agent?: TouchAgent
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export type GetFieldAccessor<Value extends FieldValue = FieldValue> = () => FieldAccessor<Value>
|
|
45
|
+
|
|
46
|
+
export type BeforeUpdateListener<Value extends FieldValue = FieldValue> = (
|
|
47
|
+
updatedAccessor: FieldAccessor<Value>,
|
|
48
|
+
) => void
|
|
49
|
+
export type InitializeListener<Value extends FieldValue = FieldValue> = (
|
|
50
|
+
getAccessor: GetFieldAccessor<Value>,
|
|
51
|
+
options: BatchUpdatesOptions,
|
|
52
|
+
) => void
|
|
53
|
+
export type UpdateListener<Value extends FieldValue = FieldValue> = (accessor: FieldAccessor<Value>) => void
|
|
54
|
+
|
|
55
|
+
export type RuntimeFieldEventListenerMap<Value extends FieldValue = FieldValue> = {
|
|
56
|
+
beforeUpdate: BeforeUpdateListener<Value>
|
|
57
|
+
update: UpdateListener<Value>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type FieldEventListenerMap<Value extends FieldValue = FieldValue> =
|
|
61
|
+
& RuntimeFieldEventListenerMap<Value>
|
|
62
|
+
& {
|
|
63
|
+
initialize: InitializeListener<Value>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export type FieldEventType = keyof FieldEventListenerMap
|
|
67
|
+
|
|
68
|
+
export type AddEventListener<Value extends FieldValue = FieldValue> = <Type extends FieldEventType>(
|
|
69
|
+
event: { type: Type; key?: string },
|
|
70
|
+
listener: FieldEventListenerMap<Value>[Type],
|
|
71
|
+
) => () => void
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export { type FieldAccessor }
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Environment } from '../environment'
|
|
2
|
+
import type {
|
|
3
|
+
Alias,
|
|
4
|
+
SugaredQualifiedEntityList,
|
|
5
|
+
SugaredUnconstrainedQualifiedEntityList,
|
|
6
|
+
TreeRootId,
|
|
7
|
+
} from '../treeParameters'
|
|
8
|
+
import type { EntityListAccessor } from './EntityListAccessor'
|
|
9
|
+
|
|
10
|
+
export type GetEntityListSubTree = (
|
|
11
|
+
parametersOrAlias: Alias | SugaredQualifiedEntityList | SugaredUnconstrainedQualifiedEntityList,
|
|
12
|
+
treeId?: TreeRootId,
|
|
13
|
+
environment?: Environment,
|
|
14
|
+
) => EntityListAccessor
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Environment } from '../environment'
|
|
2
|
+
import type {
|
|
3
|
+
Alias,
|
|
4
|
+
SugaredQualifiedSingleEntity,
|
|
5
|
+
SugaredUnconstrainedQualifiedSingleEntity,
|
|
6
|
+
TreeRootId,
|
|
7
|
+
} from '../treeParameters'
|
|
8
|
+
import type { EntityAccessor } from './EntityAccessor'
|
|
9
|
+
|
|
10
|
+
export type GetEntitySubTree = (
|
|
11
|
+
parametersOrAlias: Alias | SugaredQualifiedSingleEntity | SugaredUnconstrainedQualifiedSingleEntity,
|
|
12
|
+
treeId?: TreeRootId,
|
|
13
|
+
environment?: Environment,
|
|
14
|
+
) => EntityAccessor
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SuccessfulPersistResult } from './PersistResult'
|
|
2
|
+
import type { PersistErrorOptions } from './PersistErrorOptions'
|
|
3
|
+
import type { PersistSuccessOptions } from './PersistSuccessOptions'
|
|
4
|
+
|
|
5
|
+
export interface PersistOptions {
|
|
6
|
+
signal?: AbortSignal
|
|
7
|
+
onPersistSuccess?: (options: PersistSuccessOptions) => void | Promise<void>
|
|
8
|
+
onPersistError?: (options: PersistErrorOptions) => void | Promise<void>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type Persist = (options?: PersistOptions) => Promise<SuccessfulPersistResult>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ErrorAccessor } from './ErrorAccessor'
|
|
2
|
+
import { EntityId } from '../treeParameters'
|
|
3
|
+
import { DataBindingTransactionResult } from './DataBindingTransactionResult'
|
|
4
|
+
|
|
5
|
+
export interface NothingToPersistPersistResult {
|
|
6
|
+
type: 'nothingToPersist'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface JustSuccessPersistResult {
|
|
10
|
+
type: 'justSuccess'
|
|
11
|
+
persistedEntityIds: EntityId[]
|
|
12
|
+
afterPersistError?: any
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface InvalidInputPersistResult {
|
|
16
|
+
type: 'invalidInput'
|
|
17
|
+
errors: ErrorAccessor.Error[]
|
|
18
|
+
response?: DataBindingTransactionResult
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface InvalidResponseResult {
|
|
22
|
+
type: 'invalidResponse'
|
|
23
|
+
errors: any // todo
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type SuccessfulPersistResult = NothingToPersistPersistResult | JustSuccessPersistResult
|
|
27
|
+
|
|
28
|
+
export type ErrorPersistResult = InvalidInputPersistResult | InvalidResponseResult
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EntityId, FieldValue } from '../treeParameters'
|
|
2
|
+
|
|
3
|
+
export type ReceivedFieldData = FieldValue | ReceivedEntityData | Array<ReceivedEntityData>
|
|
4
|
+
|
|
5
|
+
export type ReceivedEntityData =
|
|
6
|
+
& {
|
|
7
|
+
__typename: string
|
|
8
|
+
id: EntityId
|
|
9
|
+
}
|
|
10
|
+
& {
|
|
11
|
+
[fieldName: string]: ReceivedFieldData
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type ReceivedData = ReceivedEntityData | ReceivedEntityData[]
|
|
15
|
+
|
|
16
|
+
export interface ReceivedDataTree {
|
|
17
|
+
[treeId: string]: ReceivedData | null
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface QueryRequestResponse {
|
|
21
|
+
data: ReceivedDataTree
|
|
22
|
+
errors?: { message: string; path?: string[] }[]
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BindingOperations } from './BindingOperations'
|
|
2
|
+
|
|
3
|
+
// This allows us to have several parallel sub-trees without one having to be the main tree
|
|
4
|
+
// and all the other ones subordinate.
|
|
5
|
+
export class TreeRootAccessor<Node> {
|
|
6
|
+
/**
|
|
7
|
+
* Whenever an update occurs, a new instance of this class is created.
|
|
8
|
+
*/
|
|
9
|
+
public constructor(
|
|
10
|
+
public readonly hasUnpersistedChanges: boolean,
|
|
11
|
+
public readonly isMutating: boolean,
|
|
12
|
+
public readonly bindingOperations: BindingOperations<Node>,
|
|
13
|
+
) {}
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './AsyncBatchUpdatesOptions'
|
|
2
|
+
export * from './BatchUpdatesOptions'
|
|
3
|
+
export * from './BindingOperations'
|
|
4
|
+
export * from './DataBindingTransactionResult'
|
|
5
|
+
export * from './EntityAccessor'
|
|
6
|
+
export * from './EntityListAccessor'
|
|
7
|
+
export * from './Errorable'
|
|
8
|
+
export * from './ErrorAccessor'
|
|
9
|
+
export * from './ExtendTree'
|
|
10
|
+
export * from './GetEntityByKey'
|
|
11
|
+
export * from './GetEntityListSubTree'
|
|
12
|
+
export * from './GetEntitySubTree'
|
|
13
|
+
export * from './FieldAccessor'
|
|
14
|
+
export * from './Persist'
|
|
15
|
+
export * from './PersistErrorOptions'
|
|
16
|
+
export * from './PersistResult'
|
|
17
|
+
export * from './PersistSuccessOptions'
|
|
18
|
+
export * from './QueryRequestResponse'
|
|
19
|
+
export * from './TreeRootAccessor'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// TODO update hashing so that for offset, 0 == undefined
|
|
2
|
+
export class Hashing {
|
|
3
|
+
public static hashAny(array: any[]): number {
|
|
4
|
+
const json = JSON.stringify(array)
|
|
5
|
+
return Hashing.hash(json)
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// Taken from Java
|
|
9
|
+
public static hash(str: string): number {
|
|
10
|
+
let hash = 0
|
|
11
|
+
if (str.length === 0) {
|
|
12
|
+
return hash
|
|
13
|
+
}
|
|
14
|
+
for (let i = 0; i < str.length; i++) {
|
|
15
|
+
hash = (hash << 5) - hash + str.charCodeAt(i)
|
|
16
|
+
hash = hash & hash // Convert to 32bit integer
|
|
17
|
+
}
|
|
18
|
+
return Math.abs(hash)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Environment } from '../environment'
|
|
2
|
+
import { BaseRelation, Schema, SchemaColumn, SchemaEntity, SchemaField, SchemaRelation } from '../schema'
|
|
3
|
+
import { BindingError } from '../BindingError'
|
|
4
|
+
import levenshtein from 'js-levenshtein'
|
|
5
|
+
|
|
6
|
+
export class TreeNodeUtils {
|
|
7
|
+
|
|
8
|
+
public static resolveEntity(schema: Schema, entityName: string, type: 'entity' | 'entity list'): SchemaEntity {
|
|
9
|
+
const entity = schema.getEntityOrUndefined(entityName)
|
|
10
|
+
if (!entity) {
|
|
11
|
+
const alternative = this.recommendAlternative(entityName, schema.getEntityNames())
|
|
12
|
+
const didYouMean = alternative ? `Did you mean '${alternative}'?` : ''
|
|
13
|
+
throw new BindingError(`Invalid ${type} sub tree: Entity '${entityName}' doesn't exist. ${didYouMean}`)
|
|
14
|
+
}
|
|
15
|
+
return entity
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public static resolveHasOneRelation(environment: Environment, field: string, isReduced: boolean): SchemaRelation {
|
|
19
|
+
if (isReduced) {
|
|
20
|
+
return this.resolveRelation(environment, field, 'reduced has-one relation', ['ManyHasMany', 'OneHasMany'])
|
|
21
|
+
}
|
|
22
|
+
return this.resolveRelation(environment, field, 'a has-one relation', ['ManyHasOne', 'OneHasOne'])
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
public static resolveHasManyRelation(environment: Environment, field: string): SchemaRelation {
|
|
27
|
+
return this.resolveRelation(environment, field, 'a has-many relation', ['ManyHasMany', 'OneHasMany'])
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private static resolveRelation(environment: Environment, field: string, relationDescription: string, expectedRelationType: BaseRelation['type'][]): SchemaRelation {
|
|
31
|
+
return this.resolveField(environment, field, (field): field is SchemaRelation => {
|
|
32
|
+
return field.__typename === '_Relation' && expectedRelationType.includes(field.type)
|
|
33
|
+
}, relationDescription)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public static resolveColumn(environment: Environment, fieldName: string): SchemaColumn {
|
|
37
|
+
return this.resolveField(environment, fieldName, (field): field is SchemaColumn => field.__typename === '_Column', 'an ordinary field')
|
|
38
|
+
// TODO check that defaultValue matches the type
|
|
39
|
+
// TODO run custom validators
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private static resolveField<T extends SchemaField>(environment: Environment, fieldName: string, matcher: (field: SchemaField) => field is T, expectedDescription: string): T {
|
|
43
|
+
const treeLocation = environment.getSubTreeNode()
|
|
44
|
+
const entity = treeLocation.entity
|
|
45
|
+
const field = entity.fields.get(fieldName)
|
|
46
|
+
if (!field) {
|
|
47
|
+
const alternative = this.recommendAlternative(
|
|
48
|
+
fieldName,
|
|
49
|
+
Array.from(entity.fields)
|
|
50
|
+
.filter(([, field]) => matcher(field))
|
|
51
|
+
.map(([fieldName]) => fieldName),
|
|
52
|
+
)
|
|
53
|
+
const didYouMean = alternative ? `Did you mean '${alternative}'?` : ''
|
|
54
|
+
throw new BindingError(`Field '${fieldName}' doesn't exist on ${this.describeLocation(environment)}. ${didYouMean}`)
|
|
55
|
+
}
|
|
56
|
+
if (!matcher(field)) {
|
|
57
|
+
const actual = field.__typename === '_Column' ? 'an ordinary field' : `a ${field.type} relation`
|
|
58
|
+
throw new BindingError(
|
|
59
|
+
`Invalid field: the name '${field.name}' on ${this.describeLocation(environment)} ` +
|
|
60
|
+
`refers to ${actual} but is being used as a ${expectedDescription}.`,
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
return field
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public static describeLocation(environment: Environment): string {
|
|
67
|
+
const path = []
|
|
68
|
+
const loc = environment.getSubTreeNode()
|
|
69
|
+
for (let env = environment; ; env = env.getParent()) {
|
|
70
|
+
const node = env.getSubTreeNode()
|
|
71
|
+
if (node.type === 'subtree-entity' || node.type === 'subtree-entity-list') {
|
|
72
|
+
return `entity '${loc.entity.name}' in path '${[node.entity.name, ...path.reverse()].join('.')}'`
|
|
73
|
+
}
|
|
74
|
+
path.push(node.field.name)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public static recommendAlternative(original: string, possibleAlternatives: Iterable<string>): string | undefined {
|
|
79
|
+
let bestAlternative: string | undefined = undefined
|
|
80
|
+
let bestAlternativeDistance = Number.MAX_SAFE_INTEGER
|
|
81
|
+
|
|
82
|
+
for (const alternative of possibleAlternatives) {
|
|
83
|
+
const distance = levenshtein(original, alternative)
|
|
84
|
+
|
|
85
|
+
if (distance < bestAlternativeDistance) {
|
|
86
|
+
bestAlternative = alternative
|
|
87
|
+
bestAlternativeDistance = distance
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return bestAlternative
|
|
91
|
+
}
|
|
92
|
+
}
|