@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 @@
|
|
|
1
|
+
export class QueryLanguageError extends Error {}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { createToken, Lexer } from 'chevrotain'
|
|
2
|
+
|
|
3
|
+
export namespace TokenRegExps {
|
|
4
|
+
export const entityIdentifier = /[A-Z_]\w*/
|
|
5
|
+
export const identifier = /[a-zA-Z_]\w*/
|
|
6
|
+
|
|
7
|
+
export const dotSeparatedIdentifier = /^[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*$/
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const identifier = createToken({
|
|
11
|
+
name: 'Identifier',
|
|
12
|
+
pattern: TokenRegExps.identifier,
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export const tokens = {
|
|
16
|
+
WhiteSpace: createToken({
|
|
17
|
+
name: 'WhiteSpace',
|
|
18
|
+
pattern: /\s+/,
|
|
19
|
+
group: Lexer.SKIPPED,
|
|
20
|
+
}),
|
|
21
|
+
|
|
22
|
+
EntityIdentifier: createToken({
|
|
23
|
+
name: 'EntityIdentifier',
|
|
24
|
+
pattern: TokenRegExps.entityIdentifier,
|
|
25
|
+
}),
|
|
26
|
+
|
|
27
|
+
Identifier: identifier,
|
|
28
|
+
|
|
29
|
+
DollarSign: createToken({
|
|
30
|
+
name: 'DollarSign',
|
|
31
|
+
pattern: /\$/,
|
|
32
|
+
}),
|
|
33
|
+
|
|
34
|
+
Dot: createToken({
|
|
35
|
+
name: 'Dot',
|
|
36
|
+
pattern: /\./,
|
|
37
|
+
}),
|
|
38
|
+
|
|
39
|
+
Comma: createToken({
|
|
40
|
+
name: 'Comma',
|
|
41
|
+
pattern: /,/,
|
|
42
|
+
}),
|
|
43
|
+
|
|
44
|
+
Colon: createToken({
|
|
45
|
+
name: 'Colon',
|
|
46
|
+
pattern: /:/,
|
|
47
|
+
}),
|
|
48
|
+
|
|
49
|
+
Slash: createToken({
|
|
50
|
+
name: 'Slash',
|
|
51
|
+
pattern: /\//,
|
|
52
|
+
}),
|
|
53
|
+
|
|
54
|
+
NumberLiteral: createToken({
|
|
55
|
+
name: 'NumberLiteral',
|
|
56
|
+
pattern: /-?(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?/,
|
|
57
|
+
}),
|
|
58
|
+
|
|
59
|
+
StringLiteral: createToken({
|
|
60
|
+
name: 'StringLiteral',
|
|
61
|
+
pattern: /'(:?[^\\']|\\(:?[bfnrtv"'\\/]|u[0-9a-fA-F]{4}))*'|"(:?[^\\"]|\\(:?[bfnrtv"'\\/]|u[0-9a-fA-F]{4}))*"/,
|
|
62
|
+
}),
|
|
63
|
+
|
|
64
|
+
LeftParenthesis: createToken({
|
|
65
|
+
name: 'LeftParenthesis',
|
|
66
|
+
pattern: /\(/,
|
|
67
|
+
}),
|
|
68
|
+
|
|
69
|
+
RightParenthesis: createToken({
|
|
70
|
+
name: 'RightParenthesis',
|
|
71
|
+
pattern: /\)/,
|
|
72
|
+
}),
|
|
73
|
+
|
|
74
|
+
LeftBracket: createToken({
|
|
75
|
+
name: 'LeftBracket',
|
|
76
|
+
pattern: /\[/,
|
|
77
|
+
}),
|
|
78
|
+
|
|
79
|
+
RightBracket: createToken({
|
|
80
|
+
name: 'RightBracket',
|
|
81
|
+
pattern: /]/,
|
|
82
|
+
}),
|
|
83
|
+
|
|
84
|
+
NotEquals: createToken({
|
|
85
|
+
name: 'NotEquals',
|
|
86
|
+
pattern: /!=/,
|
|
87
|
+
}),
|
|
88
|
+
|
|
89
|
+
True: createToken({
|
|
90
|
+
name: 'True',
|
|
91
|
+
pattern: /true/,
|
|
92
|
+
longer_alt: identifier,
|
|
93
|
+
}),
|
|
94
|
+
|
|
95
|
+
False: createToken({
|
|
96
|
+
name: 'False',
|
|
97
|
+
pattern: /false/,
|
|
98
|
+
longer_alt: identifier,
|
|
99
|
+
}),
|
|
100
|
+
|
|
101
|
+
Null: createToken({
|
|
102
|
+
name: 'Null',
|
|
103
|
+
pattern: /null/,
|
|
104
|
+
longer_alt: identifier,
|
|
105
|
+
}),
|
|
106
|
+
|
|
107
|
+
Equals: createToken({
|
|
108
|
+
name: 'Equals',
|
|
109
|
+
pattern: /=/,
|
|
110
|
+
}),
|
|
111
|
+
|
|
112
|
+
Not: createToken({
|
|
113
|
+
name: 'Not',
|
|
114
|
+
pattern: /!/,
|
|
115
|
+
}),
|
|
116
|
+
|
|
117
|
+
And: createToken({
|
|
118
|
+
name: 'And',
|
|
119
|
+
pattern: /&&/,
|
|
120
|
+
}),
|
|
121
|
+
|
|
122
|
+
Or: createToken({
|
|
123
|
+
name: 'Or',
|
|
124
|
+
pattern: /\|\|/,
|
|
125
|
+
}),
|
|
126
|
+
|
|
127
|
+
LowerEqual: createToken({
|
|
128
|
+
name: 'LowerEqual',
|
|
129
|
+
pattern: /<=/,
|
|
130
|
+
}),
|
|
131
|
+
|
|
132
|
+
GreaterEqual: createToken({
|
|
133
|
+
name: 'GreaterEqual',
|
|
134
|
+
pattern: />=/,
|
|
135
|
+
}),
|
|
136
|
+
|
|
137
|
+
LowerThan: createToken({
|
|
138
|
+
name: 'LowerThan',
|
|
139
|
+
pattern: /</,
|
|
140
|
+
}),
|
|
141
|
+
|
|
142
|
+
GreaterThan: createToken({
|
|
143
|
+
name: 'GreaterThan',
|
|
144
|
+
pattern: />/,
|
|
145
|
+
}),
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const tokenList = [
|
|
149
|
+
tokens.WhiteSpace,
|
|
150
|
+
tokens.True,
|
|
151
|
+
tokens.False,
|
|
152
|
+
tokens.Null,
|
|
153
|
+
tokens.EntityIdentifier,
|
|
154
|
+
tokens.Identifier,
|
|
155
|
+
tokens.DollarSign,
|
|
156
|
+
tokens.Dot,
|
|
157
|
+
tokens.Comma,
|
|
158
|
+
tokens.Colon,
|
|
159
|
+
tokens.Slash,
|
|
160
|
+
tokens.StringLiteral,
|
|
161
|
+
tokens.NumberLiteral,
|
|
162
|
+
tokens.LeftParenthesis,
|
|
163
|
+
tokens.RightParenthesis,
|
|
164
|
+
tokens.LeftBracket,
|
|
165
|
+
tokens.RightBracket,
|
|
166
|
+
tokens.NotEquals,
|
|
167
|
+
tokens.Equals,
|
|
168
|
+
tokens.Not,
|
|
169
|
+
tokens.GreaterEqual,
|
|
170
|
+
tokens.GreaterThan,
|
|
171
|
+
tokens.LowerEqual,
|
|
172
|
+
tokens.LowerThan,
|
|
173
|
+
tokens.And,
|
|
174
|
+
tokens.Or,
|
|
175
|
+
]
|
|
176
|
+
|
|
177
|
+
export { tokenList }
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EntityName } from '../treeParameters'
|
|
2
|
+
import type { SchemaColumn } from './SchemaColumn'
|
|
3
|
+
import type { SchemaRelation } from './SchemaRelation'
|
|
4
|
+
|
|
5
|
+
export type RawSchemaFields = Array<SchemaRelation | SchemaColumn>
|
|
6
|
+
|
|
7
|
+
export interface RawSchemaEntity {
|
|
8
|
+
name: EntityName
|
|
9
|
+
customPrimaryAllowed: boolean
|
|
10
|
+
fields: RawSchemaFields
|
|
11
|
+
unique: { fields: string[] }[]
|
|
12
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { EntityName, FieldName } from '../treeParameters'
|
|
2
|
+
import type { SchemaField } from './SchemaField'
|
|
3
|
+
import type { SchemaStore } from './SchemaStore'
|
|
4
|
+
import { SchemaEntity } from './SchemaEntity'
|
|
5
|
+
import { SchemaColumn } from './SchemaColumn'
|
|
6
|
+
import { SchemaRelation } from './SchemaRelation'
|
|
7
|
+
import { SchemaEnumName } from './SchemaEnums'
|
|
8
|
+
import { throwBindingError } from '../BindingError'
|
|
9
|
+
|
|
10
|
+
export class Schema {
|
|
11
|
+
public constructor(private readonly store: SchemaStore) {}
|
|
12
|
+
|
|
13
|
+
public getEnumValues(enumName: SchemaEnumName): string[] {
|
|
14
|
+
return Array.from(this.store.enums.get(enumName) ?? throwBindingError(`Missing schema for enum ${enumName}`))
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public getEntityOrUndefined(entityName: EntityName): SchemaEntity | undefined {
|
|
18
|
+
return this.store.entities.get(entityName)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public getEntityNames(): string[] {
|
|
22
|
+
return Array.from(this.store.entities.keys())
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public getEntity(entityName: EntityName): SchemaEntity {
|
|
26
|
+
return this.getEntityOrUndefined(entityName) ?? throwBindingError(`Missing schema for entity ${entityName}`)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public getEntityFieldOrUndefined(entityName: EntityName, fieldName: FieldName): SchemaField | undefined {
|
|
30
|
+
return this.store.entities.get(entityName)?.fields.get(fieldName)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public getEntityField(entityName: EntityName, fieldName: FieldName): SchemaField {
|
|
34
|
+
return this.getEntityFieldOrUndefined(entityName, fieldName) ?? throwBindingError(`Missing schema for field ${entityName}.${fieldName}`)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public getEntityColumn(entityName: EntityName, fieldName: FieldName): SchemaColumn {
|
|
38
|
+
const field = this.getEntityField(entityName, fieldName)
|
|
39
|
+
return field.__typename === '_Column' ? field : throwBindingError(`Field ${entityName}.${fieldName} is not of type column`)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public getEntityRelation(entityName: EntityName, fieldName: FieldName): SchemaRelation {
|
|
43
|
+
const field = this.getEntityField(entityName, fieldName)
|
|
44
|
+
return field.__typename === '_Relation' ? field : throwBindingError(`Field ${entityName}.${fieldName} is not of type relation`)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FieldName } from '../treeParameters'
|
|
2
|
+
import type { SchemaColumnType } from './SchemaColumnType'
|
|
3
|
+
import type { SchemaEnumName } from './SchemaEnums'
|
|
4
|
+
|
|
5
|
+
export interface SchemaColumn {
|
|
6
|
+
__typename: '_Column'
|
|
7
|
+
defaultValue: string | number | boolean | null // JSON
|
|
8
|
+
name: FieldName
|
|
9
|
+
nullable: boolean
|
|
10
|
+
type: SchemaColumnType
|
|
11
|
+
enumName: SchemaEnumName | null
|
|
12
|
+
|
|
13
|
+
// rules
|
|
14
|
+
// validators
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EntityName } from '../treeParameters'
|
|
2
|
+
import type { SchemaFields } from './SchemaFields'
|
|
3
|
+
import type { SchemaUniqueConstraint } from './SchemaUniqueConstraint'
|
|
4
|
+
|
|
5
|
+
export interface SchemaEntity {
|
|
6
|
+
name: EntityName
|
|
7
|
+
customPrimaryAllowed: boolean
|
|
8
|
+
fields: SchemaFields
|
|
9
|
+
unique: SchemaUniqueConstraint[]
|
|
10
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { GraphQlClient, GraphQlClientRequestOptions } from '@contember/client'
|
|
2
|
+
import type { RawSchema } from './RawSchema'
|
|
3
|
+
import { Schema } from './Schema'
|
|
4
|
+
import { SchemaPreprocessor } from './SchemaPreprocessor'
|
|
5
|
+
|
|
6
|
+
export class SchemaLoader {
|
|
7
|
+
private static readonly schemaLoadCache: Map<string, Promise<Schema>> = new Map()
|
|
8
|
+
|
|
9
|
+
private static readonly schemaQuery =
|
|
10
|
+
'query {\n' +
|
|
11
|
+
' schema {\n' +
|
|
12
|
+
' enums {\n' +
|
|
13
|
+
' name\n' +
|
|
14
|
+
' values\n' +
|
|
15
|
+
' }\n' +
|
|
16
|
+
' entities {\n' +
|
|
17
|
+
' name\n' +
|
|
18
|
+
' customPrimaryAllowed\n' +
|
|
19
|
+
' unique {\n' +
|
|
20
|
+
' fields\n' +
|
|
21
|
+
' }\n' +
|
|
22
|
+
' fields {\n' +
|
|
23
|
+
' __typename\n' +
|
|
24
|
+
' name\n' +
|
|
25
|
+
' type\n' +
|
|
26
|
+
' nullable\n' +
|
|
27
|
+
' ... on _Column {\n' +
|
|
28
|
+
' enumName\n' +
|
|
29
|
+
' defaultValue\n' +
|
|
30
|
+
' }\n' +
|
|
31
|
+
' ... on _Relation {\n' +
|
|
32
|
+
' side\n' +
|
|
33
|
+
' targetEntity\n' +
|
|
34
|
+
' ownedBy\n' +
|
|
35
|
+
' inversedBy\n' +
|
|
36
|
+
' onDelete\n' +
|
|
37
|
+
' orphanRemoval\n' +
|
|
38
|
+
' orderBy {\n' +
|
|
39
|
+
' path\n' +
|
|
40
|
+
' direction\n' +
|
|
41
|
+
' }\n' +
|
|
42
|
+
' }\n' +
|
|
43
|
+
' }\n' +
|
|
44
|
+
' }\n' +
|
|
45
|
+
' }\n' +
|
|
46
|
+
'}'
|
|
47
|
+
|
|
48
|
+
public static async loadSchema(
|
|
49
|
+
client: GraphQlClient,
|
|
50
|
+
options?: GraphQlClientRequestOptions,
|
|
51
|
+
): Promise<Schema> {
|
|
52
|
+
|
|
53
|
+
const existing = this.schemaLoadCache.get(client.apiUrl)
|
|
54
|
+
if (existing !== undefined) {
|
|
55
|
+
return existing
|
|
56
|
+
}
|
|
57
|
+
const schemaPromise = (async () => {
|
|
58
|
+
const raw = await client.execute<{ schema: RawSchema }>(this.schemaQuery, options)
|
|
59
|
+
return new Schema(SchemaPreprocessor.processRawSchema(raw.schema))
|
|
60
|
+
})()
|
|
61
|
+
this.schemaLoadCache.set(client.apiUrl, schemaPromise)
|
|
62
|
+
return await schemaPromise
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { RawSchema } from './RawSchema'
|
|
2
|
+
import type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'
|
|
3
|
+
import type { RawSchemaEnum } from './RawSchemaEnum'
|
|
4
|
+
import type { SchemaEntities } from './SchemaEntities'
|
|
5
|
+
import type { SchemaEnums } from './SchemaEnums'
|
|
6
|
+
import type { SchemaFields } from './SchemaFields'
|
|
7
|
+
import type { SchemaStore } from './SchemaStore'
|
|
8
|
+
|
|
9
|
+
export class SchemaPreprocessor {
|
|
10
|
+
public static processRawSchema(rawSchema: RawSchema): SchemaStore {
|
|
11
|
+
return {
|
|
12
|
+
enums: this.processRawEnums(rawSchema.enums),
|
|
13
|
+
entities: this.processRawEntities(rawSchema.entities),
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
private static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {
|
|
18
|
+
const enums: SchemaEnums = new Map()
|
|
19
|
+
|
|
20
|
+
for (const { name, values } of rawEnums) {
|
|
21
|
+
enums.set(name, new Set(values))
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return enums
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {
|
|
28
|
+
const entities: SchemaEntities = new Map()
|
|
29
|
+
|
|
30
|
+
for (const entity of rawEntities) {
|
|
31
|
+
entities.set(entity.name, {
|
|
32
|
+
customPrimaryAllowed: entity.customPrimaryAllowed,
|
|
33
|
+
fields: this.processRawFields(entity.fields),
|
|
34
|
+
name: entity.name,
|
|
35
|
+
unique: entity.unique.map(it => ({ fields: new Set(it.fields) })),
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return entities
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private static processRawFields(rawFields: RawSchemaFields): SchemaFields {
|
|
43
|
+
const fields: SchemaFields = new Map()
|
|
44
|
+
|
|
45
|
+
for (const field of rawFields) {
|
|
46
|
+
fields.set(field.name, field)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return fields
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { EntityName, FieldName } from '../treeParameters'
|
|
2
|
+
import type { SchemaRelationOrderBy } from './SchemaRelationOrderBy'
|
|
3
|
+
|
|
4
|
+
export interface BaseRelation {
|
|
5
|
+
__typename: '_Relation'
|
|
6
|
+
|
|
7
|
+
name: FieldName
|
|
8
|
+
// This *CAN* be null because the whole notion of nullability doesn't make sense for ManyHasMany
|
|
9
|
+
nullable: boolean | null
|
|
10
|
+
onDelete: 'restrict' | 'cascade' | 'setNull' | null
|
|
11
|
+
orderBy: SchemaRelationOrderBy[] | null
|
|
12
|
+
orphanRemoval: boolean | null
|
|
13
|
+
targetEntity: EntityName
|
|
14
|
+
type: 'OneHasOne' | 'OneHasMany' | 'ManyHasOne' | 'ManyHasMany'
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface OwningRelation extends BaseRelation {
|
|
18
|
+
side: 'owning'
|
|
19
|
+
inversedBy: FieldName | null
|
|
20
|
+
ownedBy?: never
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface InverseRelation extends BaseRelation {
|
|
24
|
+
side: 'inverse'
|
|
25
|
+
ownedBy: FieldName
|
|
26
|
+
inversedBy?: never
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type SchemaRelation = OwningRelation | InverseRelation
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './RawSchema'
|
|
2
|
+
export * from './Schema'
|
|
3
|
+
export * from './SchemaColumn'
|
|
4
|
+
export * from './SchemaColumnType'
|
|
5
|
+
export * from './SchemaEntities'
|
|
6
|
+
export * from './SchemaEntity'
|
|
7
|
+
export * from './SchemaEnums'
|
|
8
|
+
export * from './SchemaField'
|
|
9
|
+
export * from './SchemaFields'
|
|
10
|
+
export * from './SchemaLoader'
|
|
11
|
+
export * from './SchemaPreprocessor'
|
|
12
|
+
export * from './SchemaRelation'
|
|
13
|
+
export * from './SchemaRelationOrderBy'
|
|
14
|
+
export * from './SchemaStore'
|
|
15
|
+
export * from './SchemaUniqueConstraint'
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
type AnyFunction = (...args: any[]) => any
|
|
2
|
+
export type GenericEventsMap = {
|
|
3
|
+
[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export class EventListenersStore<Events extends GenericEventsMap> {
|
|
7
|
+
|
|
8
|
+
constructor(
|
|
9
|
+
private readonly parentStoreGetter?: () => EventListenersStore<Events> | undefined,
|
|
10
|
+
private listeners?: Map<string, Set<Events[any]>>,
|
|
11
|
+
) {}
|
|
12
|
+
|
|
13
|
+
set<Type extends keyof Events>(event: { type: Type; key?: string }, listeners: Set<Events[Type]>): void {
|
|
14
|
+
this.listeners ??= new Map()
|
|
15
|
+
this.listeners.set(this.formatMapEntryKey(event), listeners)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
delete<Type extends keyof Events>(event: { type: Type; key?: string }) {
|
|
19
|
+
if (!this.listeners) {
|
|
20
|
+
return
|
|
21
|
+
}
|
|
22
|
+
this.listeners.delete(this.formatMapEntryKey(event))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
deleteByType<Type extends keyof Events>(type: Type) {
|
|
26
|
+
if (!this.listeners) {
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
const prefix = this.formatMapEntryKey({ type, key: '' })
|
|
30
|
+
for (const eventType of this.listeners.keys()) {
|
|
31
|
+
if (eventType.startsWith(prefix)) {
|
|
32
|
+
this.listeners.delete(eventType)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
get<Type extends keyof Events>(event: { type: Type; key?: string }): Set<Events[Type]> | undefined {
|
|
38
|
+
if (!this.listeners) {
|
|
39
|
+
return undefined
|
|
40
|
+
}
|
|
41
|
+
const ownListeners = this.listeners.get(this.formatMapEntryKey(event))
|
|
42
|
+
const parentListeners = this.parentStoreGetter?.()?.get(event)
|
|
43
|
+
if (!parentListeners) {
|
|
44
|
+
return ownListeners
|
|
45
|
+
} else if (!ownListeners) {
|
|
46
|
+
return parentListeners
|
|
47
|
+
}
|
|
48
|
+
return new Set([...ownListeners, ...parentListeners])
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
invoke<Type extends keyof Events>(event: { type: Type; key?: string }, ...args: Parameters<Events[Type]>): void {
|
|
52
|
+
if (!this.listeners) {
|
|
53
|
+
return
|
|
54
|
+
}
|
|
55
|
+
const listeners = this.get(event)
|
|
56
|
+
if (listeners) {
|
|
57
|
+
for (const listener of listeners) {
|
|
58
|
+
listener(...args)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
add<Type extends keyof Events>(event: { type: Type; key?: string }, handler: Events[Type]): () => void {
|
|
64
|
+
const key = this.formatMapEntryKey(event)
|
|
65
|
+
let eventListeners = this.addInternal(key, handler)
|
|
66
|
+
return () => eventListeners?.delete(handler)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
clone(): EventListenersStore<Events> {
|
|
70
|
+
if (!this.listeners) {
|
|
71
|
+
return new EventListenersStore<Events>(this.parentStoreGetter)
|
|
72
|
+
}
|
|
73
|
+
const store: EventListenersStore<Events> = new EventListenersStore(this.parentStoreGetter, new Map())
|
|
74
|
+
for (const [key, value] of this.listeners.entries()) {
|
|
75
|
+
store.listeners!.set(key, new Set(value))
|
|
76
|
+
}
|
|
77
|
+
return store
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
append(other: EventListenersStore<Events>) {
|
|
81
|
+
if (!other.listeners) {
|
|
82
|
+
return
|
|
83
|
+
}
|
|
84
|
+
for (const [eventKey, otherListeners] of other.listeners) {
|
|
85
|
+
for (const listener of otherListeners) {
|
|
86
|
+
this.addInternal(eventKey, listener)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
private formatMapEntryKey(event: { type: keyof Events; key?: string }): string {
|
|
92
|
+
return event.key ? `${(event.type as string)}_${event.key ?? ''}` : (event.type as string)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
private addInternal<Type extends keyof Events>(key: string, handler: Events[Type]) {
|
|
96
|
+
this.listeners ??= new Map()
|
|
97
|
+
let eventListeners = this.listeners.get(key)
|
|
98
|
+
if (!eventListeners) {
|
|
99
|
+
eventListeners = new Set()
|
|
100
|
+
this.listeners.set(key, eventListeners)
|
|
101
|
+
}
|
|
102
|
+
eventListeners.add(handler)
|
|
103
|
+
return eventListeners
|
|
104
|
+
}
|
|
105
|
+
}
|