@contember/binding-common 2.1.0-alpha.3 → 2.1.0-alpha.35
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/package.json +18 -13
- package/src/LocalizedBindingError.ts +1 -7
- package/src/environment/Environment.ts +5 -5
- package/src/environment/TreeNodeEnvironmentFactory.ts +1 -5
- package/src/markers/MarkerComparator.ts +7 -7
- package/src/markers/MarkerMerger.ts +2 -2
- package/src/markers/PlaceholderParametersGenerator.ts +0 -2
- package/src/queryLanguage/CacheStore.ts +3 -3
- package/src/queryLanguage/MarkerFactory.ts +6 -19
- package/src/queryLanguage/Parser.ts +16 -24
- package/src/queryLanguage/ParserResults.ts +2 -7
- package/src/queryLanguage/QueryLanguage.ts +33 -44
- package/src/schema/Schema.ts +0 -1
- package/src/schema/SchemaLoader.ts +37 -39
- package/src/treeParameters/EventListenersStore.ts +0 -1
- package/src/treeParameters/Normalized.ts +0 -2
- package/src/treeParameters/Sugared.ts +15 -27
- package/src/treeParameters/TreeParameterMerger.ts +13 -9
- package/src/treeParameters/index.ts +0 -1
- package/src/treeParameters/primitives/SetOnCreate.ts +0 -2
- package/src/types/EntityAccessor.ts +1 -1
- package/src/types/EntityListAccessor.ts +1 -1
- package/src/types/ErrorAccessor.ts +8 -5
- package/src/types/FieldAccessor.ts +1 -2
- package/src/types/GetEntityListSubTree.ts +1 -6
- package/src/types/GetEntitySubTree.ts +1 -6
- package/src/types/PersistErrorOptions.ts +0 -1
- package/src/types/PersistResult.ts +1 -1
- package/src/utils/TreeNodeUtils.ts +16 -8
- package/src/utils/createQueryBuilder.ts +26 -22
- package/tests/cases/unit/queryLanguage/filter.spec.tsx +1 -2
- package/tests/cases/unit/queryLanguage/general.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/orderBy.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/qualifiedEntityList.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/qualifiedFieldList.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/relativeEntityList.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/singleRelativeField.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/taggedMap.spec.tsx +1 -2
- package/tests/cases/unit/whereToFilter.ts +1 -1
- package/dist/development/index.cjs +0 -114
- package/dist/development/index.cjs.map +0 -1
- package/dist/development/index.js +0 -102
- package/dist/development/index.js.map +0 -1
- package/dist/development/src/BindingError.cjs +0 -10
- package/dist/development/src/BindingError.cjs.map +0 -1
- package/dist/development/src/BindingError.js +0 -10
- package/dist/development/src/BindingError.js.map +0 -1
- package/dist/development/src/DataBindingExtendAborted.cjs +0 -5
- package/dist/development/src/DataBindingExtendAborted.cjs.map +0 -1
- package/dist/development/src/DataBindingExtendAborted.js +0 -5
- package/dist/development/src/DataBindingExtendAborted.js.map +0 -1
- package/dist/development/src/LocalizedBindingError.cjs +0 -14
- package/dist/development/src/LocalizedBindingError.cjs.map +0 -1
- package/dist/development/src/LocalizedBindingError.js +0 -14
- package/dist/development/src/LocalizedBindingError.js.map +0 -1
- package/dist/development/src/RuntimeId.cjs +0 -61
- package/dist/development/src/RuntimeId.cjs.map +0 -1
- package/dist/development/src/RuntimeId.js +0 -61
- package/dist/development/src/RuntimeId.js.map +0 -1
- package/dist/development/src/consts.cjs +0 -9
- package/dist/development/src/consts.cjs.map +0 -1
- package/dist/development/src/consts.js +0 -9
- package/dist/development/src/consts.js.map +0 -1
- package/dist/development/src/environment/Environment.cjs +0 -198
- package/dist/development/src/environment/Environment.cjs.map +0 -1
- package/dist/development/src/environment/Environment.js +0 -198
- package/dist/development/src/environment/Environment.js.map +0 -1
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs +0 -89
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs.map +0 -1
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js +0 -89
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js.map +0 -1
- package/dist/development/src/environment/VariableFieldValue.cjs +0 -9
- package/dist/development/src/environment/VariableFieldValue.cjs.map +0 -1
- package/dist/development/src/environment/VariableFieldValue.js +0 -9
- package/dist/development/src/environment/VariableFieldValue.js.map +0 -1
- package/dist/development/src/environment/VariableInputTransformer.cjs +0 -24
- package/dist/development/src/environment/VariableInputTransformer.cjs.map +0 -1
- package/dist/development/src/environment/VariableInputTransformer.js +0 -24
- package/dist/development/src/environment/VariableInputTransformer.js.map +0 -1
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs +0 -11
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs.map +0 -1
- package/dist/development/src/markers/EntityFieldMarkersContainer.js +0 -11
- package/dist/development/src/markers/EntityFieldMarkersContainer.js.map +0 -1
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs +0 -11
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +0 -1
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js +0 -11
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js.map +0 -1
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs +0 -20
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs.map +0 -1
- package/dist/development/src/markers/EntityListSubTreeMarker.js +0 -20
- package/dist/development/src/markers/EntityListSubTreeMarker.js.map +0 -1
- package/dist/development/src/markers/EntitySubTreeMarker.cjs +0 -20
- package/dist/development/src/markers/EntitySubTreeMarker.cjs.map +0 -1
- package/dist/development/src/markers/EntitySubTreeMarker.js +0 -20
- package/dist/development/src/markers/EntitySubTreeMarker.js.map +0 -1
- package/dist/development/src/markers/FieldMarker.cjs +0 -24
- package/dist/development/src/markers/FieldMarker.cjs.map +0 -1
- package/dist/development/src/markers/FieldMarker.js +0 -24
- package/dist/development/src/markers/FieldMarker.js.map +0 -1
- package/dist/development/src/markers/HasManyRelationMarker.cjs +0 -26
- package/dist/development/src/markers/HasManyRelationMarker.cjs.map +0 -1
- package/dist/development/src/markers/HasManyRelationMarker.js +0 -26
- package/dist/development/src/markers/HasManyRelationMarker.js.map +0 -1
- package/dist/development/src/markers/HasOneRelationMarker.cjs +0 -20
- package/dist/development/src/markers/HasOneRelationMarker.cjs.map +0 -1
- package/dist/development/src/markers/HasOneRelationMarker.js +0 -20
- package/dist/development/src/markers/HasOneRelationMarker.js.map +0 -1
- package/dist/development/src/markers/MarkerComparator.cjs +0 -79
- package/dist/development/src/markers/MarkerComparator.cjs.map +0 -1
- package/dist/development/src/markers/MarkerComparator.js +0 -79
- package/dist/development/src/markers/MarkerComparator.js.map +0 -1
- package/dist/development/src/markers/MarkerMerger.cjs +0 -255
- package/dist/development/src/markers/MarkerMerger.cjs.map +0 -1
- package/dist/development/src/markers/MarkerMerger.js +0 -255
- package/dist/development/src/markers/MarkerMerger.js.map +0 -1
- package/dist/development/src/markers/MarkerTreeRoot.cjs +0 -10
- package/dist/development/src/markers/MarkerTreeRoot.cjs.map +0 -1
- package/dist/development/src/markers/MarkerTreeRoot.js +0 -10
- package/dist/development/src/markers/MarkerTreeRoot.js.map +0 -1
- package/dist/development/src/markers/PlaceholderGenerator.cjs +0 -23
- package/dist/development/src/markers/PlaceholderGenerator.cjs.map +0 -1
- package/dist/development/src/markers/PlaceholderGenerator.js +0 -23
- package/dist/development/src/markers/PlaceholderGenerator.js.map +0 -1
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs +0 -62
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs.map +0 -1
- package/dist/development/src/markers/PlaceholderParametersGenerator.js +0 -62
- package/dist/development/src/markers/PlaceholderParametersGenerator.js.map +0 -1
- package/dist/development/src/queryLanguage/CacheStore.cjs +0 -44
- package/dist/development/src/queryLanguage/CacheStore.cjs.map +0 -1
- package/dist/development/src/queryLanguage/CacheStore.js +0 -44
- package/dist/development/src/queryLanguage/CacheStore.js.map +0 -1
- package/dist/development/src/queryLanguage/MarkerFactory.cjs +0 -200
- package/dist/development/src/queryLanguage/MarkerFactory.cjs.map +0 -1
- package/dist/development/src/queryLanguage/MarkerFactory.js +0 -200
- package/dist/development/src/queryLanguage/MarkerFactory.js.map +0 -1
- package/dist/development/src/queryLanguage/Parser.cjs +0 -722
- package/dist/development/src/queryLanguage/Parser.cjs.map +0 -1
- package/dist/development/src/queryLanguage/Parser.js +0 -722
- package/dist/development/src/queryLanguage/Parser.js.map +0 -1
- package/dist/development/src/queryLanguage/QueryLanguage.cjs +0 -530
- package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +0 -1
- package/dist/development/src/queryLanguage/QueryLanguage.js +0 -530
- package/dist/development/src/queryLanguage/QueryLanguage.js.map +0 -1
- package/dist/development/src/queryLanguage/QueryLanguageError.cjs +0 -6
- package/dist/development/src/queryLanguage/QueryLanguageError.cjs.map +0 -1
- package/dist/development/src/queryLanguage/QueryLanguageError.js +0 -6
- package/dist/development/src/queryLanguage/QueryLanguageError.js.map +0 -1
- package/dist/development/src/queryLanguage/tokenList.cjs +0 -151
- package/dist/development/src/queryLanguage/tokenList.cjs.map +0 -1
- package/dist/development/src/queryLanguage/tokenList.js +0 -152
- package/dist/development/src/queryLanguage/tokenList.js.map +0 -1
- package/dist/development/src/schema/Schema.cjs +0 -39
- package/dist/development/src/schema/Schema.cjs.map +0 -1
- package/dist/development/src/schema/Schema.js +0 -39
- package/dist/development/src/schema/Schema.js.map +0 -1
- package/dist/development/src/schema/SchemaLoader.cjs +0 -25
- package/dist/development/src/schema/SchemaLoader.cjs.map +0 -1
- package/dist/development/src/schema/SchemaLoader.js +0 -25
- package/dist/development/src/schema/SchemaLoader.js.map +0 -1
- package/dist/development/src/schema/SchemaPreprocessor.cjs +0 -38
- package/dist/development/src/schema/SchemaPreprocessor.cjs.map +0 -1
- package/dist/development/src/schema/SchemaPreprocessor.js +0 -38
- package/dist/development/src/schema/SchemaPreprocessor.js.map +0 -1
- package/dist/development/src/treeParameters/EventListenersStore.cjs +0 -93
- package/dist/development/src/treeParameters/EventListenersStore.cjs.map +0 -1
- package/dist/development/src/treeParameters/EventListenersStore.js +0 -93
- package/dist/development/src/treeParameters/EventListenersStore.js.map +0 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs +0 -274
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs.map +0 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.js +0 -274
- package/dist/development/src/treeParameters/TreeParameterMerger.js.map +0 -1
- package/dist/development/src/treeParameters/defaults.cjs +0 -24
- package/dist/development/src/treeParameters/defaults.cjs.map +0 -1
- package/dist/development/src/treeParameters/defaults.js +0 -24
- package/dist/development/src/treeParameters/defaults.js.map +0 -1
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +0 -22
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +0 -1
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js +0 -22
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +0 -1
- package/dist/development/src/types/EntityAccessor.cjs +0 -5
- package/dist/development/src/types/EntityAccessor.cjs.map +0 -1
- package/dist/development/src/types/EntityAccessor.js +0 -5
- package/dist/development/src/types/EntityAccessor.js.map +0 -1
- package/dist/development/src/types/EntityListAccessor.cjs +0 -5
- package/dist/development/src/types/EntityListAccessor.cjs.map +0 -1
- package/dist/development/src/types/EntityListAccessor.js +0 -5
- package/dist/development/src/types/EntityListAccessor.js.map +0 -1
- package/dist/development/src/types/ErrorAccessor.cjs +0 -11
- package/dist/development/src/types/ErrorAccessor.cjs.map +0 -1
- package/dist/development/src/types/ErrorAccessor.js +0 -12
- package/dist/development/src/types/ErrorAccessor.js.map +0 -1
- package/dist/development/src/types/FieldAccessor.cjs +0 -5
- package/dist/development/src/types/FieldAccessor.cjs.map +0 -1
- package/dist/development/src/types/FieldAccessor.js +0 -5
- package/dist/development/src/types/FieldAccessor.js.map +0 -1
- package/dist/development/src/types/PersistResult.cjs +0 -7
- package/dist/development/src/types/PersistResult.cjs.map +0 -1
- package/dist/development/src/types/PersistResult.js +0 -7
- package/dist/development/src/types/PersistResult.js.map +0 -1
- package/dist/development/src/types/TreeRootAccessor.cjs +0 -14
- package/dist/development/src/types/TreeRootAccessor.cjs.map +0 -1
- package/dist/development/src/types/TreeRootAccessor.js +0 -14
- package/dist/development/src/types/TreeRootAccessor.js.map +0 -1
- package/dist/development/src/utils/Hashing.cjs +0 -22
- package/dist/development/src/utils/Hashing.cjs.map +0 -1
- package/dist/development/src/utils/Hashing.js +0 -22
- package/dist/development/src/utils/Hashing.js.map +0 -1
- package/dist/development/src/utils/TreeNodeUtils.cjs +0 -77
- package/dist/development/src/utils/TreeNodeUtils.cjs.map +0 -1
- package/dist/development/src/utils/TreeNodeUtils.js +0 -77
- package/dist/development/src/utils/TreeNodeUtils.js.map +0 -1
- package/dist/development/src/utils/assertNever.cjs +0 -10
- package/dist/development/src/utils/assertNever.cjs.map +0 -1
- package/dist/development/src/utils/assertNever.js +0 -10
- package/dist/development/src/utils/assertNever.js.map +0 -1
- package/dist/development/src/utils/createQueryBuilder.cjs +0 -33
- package/dist/development/src/utils/createQueryBuilder.cjs.map +0 -1
- package/dist/development/src/utils/createQueryBuilder.js +0 -33
- package/dist/development/src/utils/createQueryBuilder.js.map +0 -1
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs +0 -7
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +0 -1
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js +0 -7
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js.map +0 -1
- package/dist/development/src/utils/whereToFilter.cjs +0 -16
- package/dist/development/src/utils/whereToFilter.cjs.map +0 -1
- package/dist/development/src/utils/whereToFilter.js +0 -16
- package/dist/development/src/utils/whereToFilter.js.map +0 -1
- package/dist/production/index.cjs +0 -114
- package/dist/production/index.cjs.map +0 -1
- package/dist/production/index.js +0 -102
- package/dist/production/index.js.map +0 -1
- package/dist/production/src/BindingError.cjs +0 -10
- package/dist/production/src/BindingError.cjs.map +0 -1
- package/dist/production/src/BindingError.js +0 -10
- package/dist/production/src/BindingError.js.map +0 -1
- package/dist/production/src/DataBindingExtendAborted.cjs +0 -5
- package/dist/production/src/DataBindingExtendAborted.cjs.map +0 -1
- package/dist/production/src/DataBindingExtendAborted.js +0 -5
- package/dist/production/src/DataBindingExtendAborted.js.map +0 -1
- package/dist/production/src/LocalizedBindingError.cjs +0 -14
- package/dist/production/src/LocalizedBindingError.cjs.map +0 -1
- package/dist/production/src/LocalizedBindingError.js +0 -14
- package/dist/production/src/LocalizedBindingError.js.map +0 -1
- package/dist/production/src/RuntimeId.cjs +0 -61
- package/dist/production/src/RuntimeId.cjs.map +0 -1
- package/dist/production/src/RuntimeId.js +0 -61
- package/dist/production/src/RuntimeId.js.map +0 -1
- package/dist/production/src/consts.cjs +0 -9
- package/dist/production/src/consts.cjs.map +0 -1
- package/dist/production/src/consts.js +0 -9
- package/dist/production/src/consts.js.map +0 -1
- package/dist/production/src/environment/Environment.cjs +0 -198
- package/dist/production/src/environment/Environment.cjs.map +0 -1
- package/dist/production/src/environment/Environment.js +0 -198
- package/dist/production/src/environment/Environment.js.map +0 -1
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs +0 -89
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs.map +0 -1
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js +0 -89
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js.map +0 -1
- package/dist/production/src/environment/VariableFieldValue.cjs +0 -9
- package/dist/production/src/environment/VariableFieldValue.cjs.map +0 -1
- package/dist/production/src/environment/VariableFieldValue.js +0 -9
- package/dist/production/src/environment/VariableFieldValue.js.map +0 -1
- package/dist/production/src/environment/VariableInputTransformer.cjs +0 -24
- package/dist/production/src/environment/VariableInputTransformer.cjs.map +0 -1
- package/dist/production/src/environment/VariableInputTransformer.js +0 -24
- package/dist/production/src/environment/VariableInputTransformer.js.map +0 -1
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs +0 -11
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs.map +0 -1
- package/dist/production/src/markers/EntityFieldMarkersContainer.js +0 -11
- package/dist/production/src/markers/EntityFieldMarkersContainer.js.map +0 -1
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs +0 -11
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +0 -1
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js +0 -11
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js.map +0 -1
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs +0 -20
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs.map +0 -1
- package/dist/production/src/markers/EntityListSubTreeMarker.js +0 -20
- package/dist/production/src/markers/EntityListSubTreeMarker.js.map +0 -1
- package/dist/production/src/markers/EntitySubTreeMarker.cjs +0 -20
- package/dist/production/src/markers/EntitySubTreeMarker.cjs.map +0 -1
- package/dist/production/src/markers/EntitySubTreeMarker.js +0 -20
- package/dist/production/src/markers/EntitySubTreeMarker.js.map +0 -1
- package/dist/production/src/markers/FieldMarker.cjs +0 -24
- package/dist/production/src/markers/FieldMarker.cjs.map +0 -1
- package/dist/production/src/markers/FieldMarker.js +0 -24
- package/dist/production/src/markers/FieldMarker.js.map +0 -1
- package/dist/production/src/markers/HasManyRelationMarker.cjs +0 -20
- package/dist/production/src/markers/HasManyRelationMarker.cjs.map +0 -1
- package/dist/production/src/markers/HasManyRelationMarker.js +0 -20
- package/dist/production/src/markers/HasManyRelationMarker.js.map +0 -1
- package/dist/production/src/markers/HasOneRelationMarker.cjs +0 -20
- package/dist/production/src/markers/HasOneRelationMarker.cjs.map +0 -1
- package/dist/production/src/markers/HasOneRelationMarker.js +0 -20
- package/dist/production/src/markers/HasOneRelationMarker.js.map +0 -1
- package/dist/production/src/markers/MarkerComparator.cjs +0 -79
- package/dist/production/src/markers/MarkerComparator.cjs.map +0 -1
- package/dist/production/src/markers/MarkerComparator.js +0 -79
- package/dist/production/src/markers/MarkerComparator.js.map +0 -1
- package/dist/production/src/markers/MarkerMerger.cjs +0 -255
- package/dist/production/src/markers/MarkerMerger.cjs.map +0 -1
- package/dist/production/src/markers/MarkerMerger.js +0 -255
- package/dist/production/src/markers/MarkerMerger.js.map +0 -1
- package/dist/production/src/markers/MarkerTreeRoot.cjs +0 -10
- package/dist/production/src/markers/MarkerTreeRoot.cjs.map +0 -1
- package/dist/production/src/markers/MarkerTreeRoot.js +0 -10
- package/dist/production/src/markers/MarkerTreeRoot.js.map +0 -1
- package/dist/production/src/markers/PlaceholderGenerator.cjs +0 -23
- package/dist/production/src/markers/PlaceholderGenerator.cjs.map +0 -1
- package/dist/production/src/markers/PlaceholderGenerator.js +0 -23
- package/dist/production/src/markers/PlaceholderGenerator.js.map +0 -1
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs +0 -62
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs.map +0 -1
- package/dist/production/src/markers/PlaceholderParametersGenerator.js +0 -62
- package/dist/production/src/markers/PlaceholderParametersGenerator.js.map +0 -1
- package/dist/production/src/queryLanguage/CacheStore.cjs +0 -44
- package/dist/production/src/queryLanguage/CacheStore.cjs.map +0 -1
- package/dist/production/src/queryLanguage/CacheStore.js +0 -44
- package/dist/production/src/queryLanguage/CacheStore.js.map +0 -1
- package/dist/production/src/queryLanguage/MarkerFactory.cjs +0 -200
- package/dist/production/src/queryLanguage/MarkerFactory.cjs.map +0 -1
- package/dist/production/src/queryLanguage/MarkerFactory.js +0 -200
- package/dist/production/src/queryLanguage/MarkerFactory.js.map +0 -1
- package/dist/production/src/queryLanguage/Parser.cjs +0 -719
- package/dist/production/src/queryLanguage/Parser.cjs.map +0 -1
- package/dist/production/src/queryLanguage/Parser.js +0 -719
- package/dist/production/src/queryLanguage/Parser.js.map +0 -1
- package/dist/production/src/queryLanguage/QueryLanguage.cjs +0 -530
- package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +0 -1
- package/dist/production/src/queryLanguage/QueryLanguage.js +0 -530
- package/dist/production/src/queryLanguage/QueryLanguage.js.map +0 -1
- package/dist/production/src/queryLanguage/QueryLanguageError.cjs +0 -6
- package/dist/production/src/queryLanguage/QueryLanguageError.cjs.map +0 -1
- package/dist/production/src/queryLanguage/QueryLanguageError.js +0 -6
- package/dist/production/src/queryLanguage/QueryLanguageError.js.map +0 -1
- package/dist/production/src/queryLanguage/tokenList.cjs +0 -151
- package/dist/production/src/queryLanguage/tokenList.cjs.map +0 -1
- package/dist/production/src/queryLanguage/tokenList.js +0 -152
- package/dist/production/src/queryLanguage/tokenList.js.map +0 -1
- package/dist/production/src/schema/Schema.cjs +0 -39
- package/dist/production/src/schema/Schema.cjs.map +0 -1
- package/dist/production/src/schema/Schema.js +0 -39
- package/dist/production/src/schema/Schema.js.map +0 -1
- package/dist/production/src/schema/SchemaLoader.cjs +0 -25
- package/dist/production/src/schema/SchemaLoader.cjs.map +0 -1
- package/dist/production/src/schema/SchemaLoader.js +0 -25
- package/dist/production/src/schema/SchemaLoader.js.map +0 -1
- package/dist/production/src/schema/SchemaPreprocessor.cjs +0 -38
- package/dist/production/src/schema/SchemaPreprocessor.cjs.map +0 -1
- package/dist/production/src/schema/SchemaPreprocessor.js +0 -38
- package/dist/production/src/schema/SchemaPreprocessor.js.map +0 -1
- package/dist/production/src/treeParameters/EventListenersStore.cjs +0 -93
- package/dist/production/src/treeParameters/EventListenersStore.cjs.map +0 -1
- package/dist/production/src/treeParameters/EventListenersStore.js +0 -93
- package/dist/production/src/treeParameters/EventListenersStore.js.map +0 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs +0 -274
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs.map +0 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.js +0 -274
- package/dist/production/src/treeParameters/TreeParameterMerger.js.map +0 -1
- package/dist/production/src/treeParameters/defaults.cjs +0 -24
- package/dist/production/src/treeParameters/defaults.cjs.map +0 -1
- package/dist/production/src/treeParameters/defaults.js +0 -24
- package/dist/production/src/treeParameters/defaults.js.map +0 -1
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +0 -22
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +0 -1
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js +0 -22
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +0 -1
- package/dist/production/src/types/EntityAccessor.cjs +0 -5
- package/dist/production/src/types/EntityAccessor.cjs.map +0 -1
- package/dist/production/src/types/EntityAccessor.js +0 -5
- package/dist/production/src/types/EntityAccessor.js.map +0 -1
- package/dist/production/src/types/EntityListAccessor.cjs +0 -5
- package/dist/production/src/types/EntityListAccessor.cjs.map +0 -1
- package/dist/production/src/types/EntityListAccessor.js +0 -5
- package/dist/production/src/types/EntityListAccessor.js.map +0 -1
- package/dist/production/src/types/ErrorAccessor.cjs +0 -11
- package/dist/production/src/types/ErrorAccessor.cjs.map +0 -1
- package/dist/production/src/types/ErrorAccessor.js +0 -12
- package/dist/production/src/types/ErrorAccessor.js.map +0 -1
- package/dist/production/src/types/FieldAccessor.cjs +0 -5
- package/dist/production/src/types/FieldAccessor.cjs.map +0 -1
- package/dist/production/src/types/FieldAccessor.js +0 -5
- package/dist/production/src/types/FieldAccessor.js.map +0 -1
- package/dist/production/src/types/PersistResult.cjs +0 -7
- package/dist/production/src/types/PersistResult.cjs.map +0 -1
- package/dist/production/src/types/PersistResult.js +0 -7
- package/dist/production/src/types/PersistResult.js.map +0 -1
- package/dist/production/src/types/TreeRootAccessor.cjs +0 -14
- package/dist/production/src/types/TreeRootAccessor.cjs.map +0 -1
- package/dist/production/src/types/TreeRootAccessor.js +0 -14
- package/dist/production/src/types/TreeRootAccessor.js.map +0 -1
- package/dist/production/src/utils/Hashing.cjs +0 -22
- package/dist/production/src/utils/Hashing.cjs.map +0 -1
- package/dist/production/src/utils/Hashing.js +0 -22
- package/dist/production/src/utils/Hashing.js.map +0 -1
- package/dist/production/src/utils/TreeNodeUtils.cjs +0 -77
- package/dist/production/src/utils/TreeNodeUtils.cjs.map +0 -1
- package/dist/production/src/utils/TreeNodeUtils.js +0 -77
- package/dist/production/src/utils/TreeNodeUtils.js.map +0 -1
- package/dist/production/src/utils/assertNever.cjs +0 -10
- package/dist/production/src/utils/assertNever.cjs.map +0 -1
- package/dist/production/src/utils/assertNever.js +0 -10
- package/dist/production/src/utils/assertNever.js.map +0 -1
- package/dist/production/src/utils/createQueryBuilder.cjs +0 -33
- package/dist/production/src/utils/createQueryBuilder.cjs.map +0 -1
- package/dist/production/src/utils/createQueryBuilder.js +0 -33
- package/dist/production/src/utils/createQueryBuilder.js.map +0 -1
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs +0 -7
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +0 -1
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js +0 -7
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js.map +0 -1
- package/dist/production/src/utils/whereToFilter.cjs +0 -16
- package/dist/production/src/utils/whereToFilter.cjs.map +0 -1
- package/dist/production/src/utils/whereToFilter.js +0 -16
- package/dist/production/src/utils/whereToFilter.js.map +0 -1
- package/dist/types/BindingError.d.ts +0 -4
- package/dist/types/BindingError.d.ts.map +0 -1
- package/dist/types/DataBindingExtendAborted.d.ts +0 -2
- package/dist/types/DataBindingExtendAborted.d.ts.map +0 -1
- package/dist/types/LocalizedBindingError.d.ts +0 -8
- package/dist/types/LocalizedBindingError.d.ts.map +0 -1
- package/dist/types/RuntimeId.d.ts +0 -35
- package/dist/types/RuntimeId.d.ts.map +0 -1
- package/dist/types/consts.d.ts +0 -4
- package/dist/types/consts.d.ts.map +0 -1
- package/dist/types/environment/Environment.d.ts +0 -95
- package/dist/types/environment/Environment.d.ts.map +0 -1
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts +0 -15
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +0 -1
- package/dist/types/environment/VariableFieldValue.d.ts +0 -5
- package/dist/types/environment/VariableFieldValue.d.ts.map +0 -1
- package/dist/types/environment/VariableInputTransformer.d.ts +0 -8
- package/dist/types/environment/VariableInputTransformer.d.ts.map +0 -1
- package/dist/types/environment/index.d.ts +0 -5
- package/dist/types/environment/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -17
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/markers/EntityFieldMarkers.d.ts +0 -7
- package/dist/types/markers/EntityFieldMarkers.d.ts.map +0 -1
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts +0 -10
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts.map +0 -1
- package/dist/types/markers/EntityFieldPlaceholders.d.ts +0 -3
- package/dist/types/markers/EntityFieldPlaceholders.d.ts.map +0 -1
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts +0 -10
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts.map +0 -1
- package/dist/types/markers/EntityListSubTreeMarker.d.ts +0 -12
- package/dist/types/markers/EntityListSubTreeMarker.d.ts.map +0 -1
- package/dist/types/markers/EntitySubTreeMarker.d.ts +0 -12
- package/dist/types/markers/EntitySubTreeMarker.d.ts.map +0 -1
- package/dist/types/markers/FieldMarker.d.ts +0 -15
- package/dist/types/markers/FieldMarker.d.ts.map +0 -1
- package/dist/types/markers/HasManyRelationMarker.d.ts +0 -12
- package/dist/types/markers/HasManyRelationMarker.d.ts.map +0 -1
- package/dist/types/markers/HasOneRelationMarker.d.ts +0 -12
- package/dist/types/markers/HasOneRelationMarker.d.ts.map +0 -1
- package/dist/types/markers/MarkerComparator.d.ts +0 -8
- package/dist/types/markers/MarkerComparator.d.ts.map +0 -1
- package/dist/types/markers/MarkerMerger.d.ts +0 -22
- package/dist/types/markers/MarkerMerger.d.ts.map +0 -1
- package/dist/types/markers/MarkerTreeRoot.d.ts +0 -8
- package/dist/types/markers/MarkerTreeRoot.d.ts.map +0 -1
- package/dist/types/markers/MeaningfulMarker.d.ts +0 -7
- package/dist/types/markers/MeaningfulMarker.d.ts.map +0 -1
- package/dist/types/markers/PlaceholderGenerator.d.ts +0 -10
- package/dist/types/markers/PlaceholderGenerator.d.ts.map +0 -1
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts +0 -9
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +0 -1
- package/dist/types/markers/SubTreeMarkers.d.ts +0 -5
- package/dist/types/markers/SubTreeMarkers.d.ts.map +0 -1
- package/dist/types/markers/index.d.ts +0 -17
- package/dist/types/markers/index.d.ts.map +0 -1
- package/dist/types/queryLanguage/CacheStore.d.ts +0 -9
- package/dist/types/queryLanguage/CacheStore.d.ts.map +0 -1
- package/dist/types/queryLanguage/MarkerFactory.d.ts +0 -21
- package/dist/types/queryLanguage/MarkerFactory.d.ts.map +0 -1
- package/dist/types/queryLanguage/Parser.d.ts +0 -83
- package/dist/types/queryLanguage/Parser.d.ts.map +0 -1
- package/dist/types/queryLanguage/ParserResults.d.ts +0 -63
- package/dist/types/queryLanguage/ParserResults.d.ts.map +0 -1
- package/dist/types/queryLanguage/QueryLanguage.d.ts +0 -40
- package/dist/types/queryLanguage/QueryLanguage.d.ts.map +0 -1
- package/dist/types/queryLanguage/QueryLanguageError.d.ts +0 -3
- package/dist/types/queryLanguage/QueryLanguageError.d.ts.map +0 -1
- package/dist/types/queryLanguage/index.d.ts +0 -6
- package/dist/types/queryLanguage/index.d.ts.map +0 -1
- package/dist/types/queryLanguage/tokenList.d.ts +0 -36
- package/dist/types/queryLanguage/tokenList.d.ts.map +0 -1
- package/dist/types/schema/RawSchema.d.ts +0 -7
- package/dist/types/schema/RawSchema.d.ts.map +0 -1
- package/dist/types/schema/RawSchemaEntity.d.ts +0 -13
- package/dist/types/schema/RawSchemaEntity.d.ts.map +0 -1
- package/dist/types/schema/RawSchemaEnum.d.ts +0 -6
- package/dist/types/schema/RawSchemaEnum.d.ts.map +0 -1
- package/dist/types/schema/Schema.d.ts +0 -21
- package/dist/types/schema/Schema.d.ts.map +0 -1
- package/dist/types/schema/SchemaColumn.d.ts +0 -12
- package/dist/types/schema/SchemaColumn.d.ts.map +0 -1
- package/dist/types/schema/SchemaColumnType.d.ts +0 -3
- package/dist/types/schema/SchemaColumnType.d.ts.map +0 -1
- package/dist/types/schema/SchemaEntities.d.ts +0 -4
- package/dist/types/schema/SchemaEntities.d.ts.map +0 -1
- package/dist/types/schema/SchemaEntity.d.ts +0 -10
- package/dist/types/schema/SchemaEntity.d.ts.map +0 -1
- package/dist/types/schema/SchemaEnums.d.ts +0 -4
- package/dist/types/schema/SchemaEnums.d.ts.map +0 -1
- package/dist/types/schema/SchemaField.d.ts +0 -4
- package/dist/types/schema/SchemaField.d.ts.map +0 -1
- package/dist/types/schema/SchemaFields.d.ts +0 -4
- package/dist/types/schema/SchemaFields.d.ts.map +0 -1
- package/dist/types/schema/SchemaLoader.d.ts +0 -8
- package/dist/types/schema/SchemaLoader.d.ts.map +0 -1
- package/dist/types/schema/SchemaPreprocessor.d.ts +0 -9
- package/dist/types/schema/SchemaPreprocessor.d.ts.map +0 -1
- package/dist/types/schema/SchemaRelation.d.ts +0 -24
- package/dist/types/schema/SchemaRelation.d.ts.map +0 -1
- package/dist/types/schema/SchemaRelationOrderBy.d.ts +0 -5
- package/dist/types/schema/SchemaRelationOrderBy.d.ts.map +0 -1
- package/dist/types/schema/SchemaStore.d.ts +0 -7
- package/dist/types/schema/SchemaStore.d.ts.map +0 -1
- package/dist/types/schema/SchemaUniqueConstraint.d.ts +0 -5
- package/dist/types/schema/SchemaUniqueConstraint.d.ts.map +0 -1
- package/dist/types/schema/index.d.ts +0 -16
- package/dist/types/schema/index.d.ts.map +0 -1
- package/dist/types/treeParameters/EventListenersStore.d.ts +0 -36
- package/dist/types/treeParameters/EventListenersStore.d.ts.map +0 -1
- package/dist/types/treeParameters/Normalized.d.ts +0 -117
- package/dist/types/treeParameters/Normalized.d.ts.map +0 -1
- package/dist/types/treeParameters/Sugared.d.ts +0 -143
- package/dist/types/treeParameters/Sugared.d.ts.map +0 -1
- package/dist/types/treeParameters/TreeParameterMerger.d.ts +0 -18
- package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +0 -1
- package/dist/types/treeParameters/defaults.d.ts +0 -16
- package/dist/types/treeParameters/defaults.d.ts.map +0 -1
- package/dist/types/treeParameters/helpers/index.d.ts +0 -2
- package/dist/types/treeParameters/helpers/index.d.ts.map +0 -1
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts +0 -3
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts.map +0 -1
- package/dist/types/treeParameters/index.d.ts +0 -12
- package/dist/types/treeParameters/index.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/Alias.d.ts +0 -2
- package/dist/types/treeParameters/primitives/Alias.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/EntityId.d.ts +0 -2
- package/dist/types/treeParameters/primitives/EntityId.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/EntityName.d.ts +0 -2
- package/dist/types/treeParameters/primitives/EntityName.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts +0 -2
- package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts +0 -2
- package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts +0 -2
- package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts +0 -2
- package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/FieldName.d.ts +0 -2
- package/dist/types/treeParameters/primitives/FieldName.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/FieldValue.d.ts +0 -5
- package/dist/types/treeParameters/primitives/FieldValue.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/Filter.d.ts +0 -4
- package/dist/types/treeParameters/primitives/Filter.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/Json.d.ts +0 -7
- package/dist/types/treeParameters/primitives/Json.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/Limit.d.ts +0 -2
- package/dist/types/treeParameters/primitives/Limit.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/Offset.d.ts +0 -2
- package/dist/types/treeParameters/primitives/Offset.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/OrderBy.d.ts +0 -4
- package/dist/types/treeParameters/primitives/OrderBy.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/PlaceholderName.d.ts +0 -2
- package/dist/types/treeParameters/primitives/PlaceholderName.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/RemovalType.d.ts +0 -2
- package/dist/types/treeParameters/primitives/RemovalType.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/Scalar.d.ts +0 -2
- package/dist/types/treeParameters/primitives/Scalar.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts +0 -4
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/TreeRootId.d.ts +0 -2
- package/dist/types/treeParameters/primitives/TreeRootId.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/UniqueWhere.d.ts +0 -4
- package/dist/types/treeParameters/primitives/UniqueWhere.d.ts.map +0 -1
- package/dist/types/treeParameters/primitives/index.d.ts +0 -21
- package/dist/types/treeParameters/primitives/index.d.ts.map +0 -1
- package/dist/types/tsconfig.tsbuildinfo +0 -1
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts +0 -8
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts.map +0 -1
- package/dist/types/types/BatchUpdatesOptions.d.ts +0 -9
- package/dist/types/types/BatchUpdatesOptions.d.ts.map +0 -1
- package/dist/types/types/BindingOperations.d.ts +0 -24
- package/dist/types/types/BindingOperations.d.ts.map +0 -1
- package/dist/types/types/DataBindingEvents.d.ts +0 -6
- package/dist/types/types/DataBindingEvents.d.ts.map +0 -1
- package/dist/types/types/DataBindingTransactionResult.d.ts +0 -4
- package/dist/types/types/DataBindingTransactionResult.d.ts.map +0 -1
- package/dist/types/types/EntityAccessor.d.ts +0 -81
- package/dist/types/types/EntityAccessor.d.ts.map +0 -1
- package/dist/types/types/EntityListAccessor.d.ts +0 -84
- package/dist/types/types/EntityListAccessor.d.ts.map +0 -1
- package/dist/types/types/ErrorAccessor.d.ts +0 -30
- package/dist/types/types/ErrorAccessor.d.ts.map +0 -1
- package/dist/types/types/Errorable.d.ts +0 -5
- package/dist/types/types/Errorable.d.ts.map +0 -1
- package/dist/types/types/ExtendTree.d.ts +0 -10
- package/dist/types/types/ExtendTree.d.ts.map +0 -1
- package/dist/types/types/FieldAccessor.d.ts +0 -49
- package/dist/types/types/FieldAccessor.d.ts.map +0 -1
- package/dist/types/types/GetEntityByKey.d.ts +0 -3
- package/dist/types/types/GetEntityByKey.d.ts.map +0 -1
- package/dist/types/types/GetEntityListSubTree.d.ts +0 -5
- package/dist/types/types/GetEntityListSubTree.d.ts.map +0 -1
- package/dist/types/types/GetEntitySubTree.d.ts +0 -5
- package/dist/types/types/GetEntitySubTree.d.ts.map +0 -1
- package/dist/types/types/Persist.d.ts +0 -10
- package/dist/types/types/Persist.d.ts.map +0 -1
- package/dist/types/types/PersistErrorOptions.d.ts +0 -4
- package/dist/types/types/PersistErrorOptions.d.ts.map +0 -1
- package/dist/types/types/PersistResult.d.ts +0 -24
- package/dist/types/types/PersistResult.d.ts.map +0 -1
- package/dist/types/types/PersistSuccessOptions.d.ts +0 -5
- package/dist/types/types/PersistSuccessOptions.d.ts.map +0 -1
- package/dist/types/types/QueryRequestResponse.d.ts +0 -26
- package/dist/types/types/QueryRequestResponse.d.ts.map +0 -1
- package/dist/types/types/TreeRootAccessor.d.ts +0 -11
- package/dist/types/types/TreeRootAccessor.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -21
- package/dist/types/types/index.d.ts.map +0 -1
- package/dist/types/utils/Hashing.d.ts +0 -5
- package/dist/types/utils/Hashing.d.ts.map +0 -1
- package/dist/types/utils/TreeNodeUtils.d.ts +0 -13
- package/dist/types/utils/TreeNodeUtils.d.ts.map +0 -1
- package/dist/types/utils/assertNever.d.ts +0 -2
- package/dist/types/utils/assertNever.d.ts.map +0 -1
- package/dist/types/utils/createQueryBuilder.d.ts +0 -4
- package/dist/types/utils/createQueryBuilder.d.ts.map +0 -1
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts +0 -2
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts.map +0 -1
- package/dist/types/utils/whereToFilter.d.ts +0 -3
- package/dist/types/utils/whereToFilter.d.ts.map +0 -1
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const BindingError = require("../BindingError.cjs");
|
|
4
|
-
const equal = require("fast-deep-equal/es6/index.js");
|
|
5
|
-
class Environment {
|
|
6
|
-
constructor(options) {
|
|
7
|
-
this.options = options;
|
|
8
|
-
}
|
|
9
|
-
static create() {
|
|
10
|
-
return new Environment({
|
|
11
|
-
dimensions: {},
|
|
12
|
-
variables: {},
|
|
13
|
-
parameters: {},
|
|
14
|
-
extensions: /* @__PURE__ */ new Map()
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
getSubTree() {
|
|
18
|
-
for (let env = this; env.options.node; env = env.getParent()) {
|
|
19
|
-
const node = env.options.node;
|
|
20
|
-
if (node.type === "subtree-entity" || node.type === "subtree-entity-list") {
|
|
21
|
-
return node;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
throw new BindingError.BindingError("Not in a SubTree");
|
|
25
|
-
}
|
|
26
|
-
getSubTreeNode() {
|
|
27
|
-
if (!this.options.node) {
|
|
28
|
-
throw new BindingError.BindingError();
|
|
29
|
-
}
|
|
30
|
-
return this.options.node;
|
|
31
|
-
}
|
|
32
|
-
withSubTree(SubTree) {
|
|
33
|
-
const { parent, ...options } = this.options;
|
|
34
|
-
return new Environment({
|
|
35
|
-
...options,
|
|
36
|
-
node: SubTree
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
withSubTreeChild(node) {
|
|
40
|
-
if (!this.options.node) {
|
|
41
|
-
throw new BindingError.BindingError(`Cannot call withSubTreeChild without previous call of withSubTree`);
|
|
42
|
-
}
|
|
43
|
-
if (this.options.node.entity.fields.get(node.field.name) !== node.field) {
|
|
44
|
-
throw new BindingError.BindingError();
|
|
45
|
-
}
|
|
46
|
-
return new Environment({
|
|
47
|
-
...this.options,
|
|
48
|
-
node,
|
|
49
|
-
parent: this
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
hasVariable(key) {
|
|
53
|
-
return key in this.options.variables;
|
|
54
|
-
}
|
|
55
|
-
getVariable(key) {
|
|
56
|
-
if (!(key in this.options.variables)) {
|
|
57
|
-
throw new BindingError.BindingError(`Variable ${key} not found`);
|
|
58
|
-
}
|
|
59
|
-
return this.options.variables[key];
|
|
60
|
-
}
|
|
61
|
-
getVariableOrElse(key, fallback) {
|
|
62
|
-
return this.options.variables[key] ?? fallback;
|
|
63
|
-
}
|
|
64
|
-
withVariables(variables) {
|
|
65
|
-
if (variables === void 0) {
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
const newVariables = { ...this.options.variables };
|
|
69
|
-
for (const [newName, newValue] of Object.entries(variables)) {
|
|
70
|
-
const resolvedValue = typeof newValue === "function" ? newValue(this) : newValue;
|
|
71
|
-
if (resolvedValue === void 0) {
|
|
72
|
-
delete newVariables[newName];
|
|
73
|
-
} else {
|
|
74
|
-
newVariables[newName] = resolvedValue;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return new Environment({
|
|
78
|
-
...this.options,
|
|
79
|
-
variables: newVariables,
|
|
80
|
-
parent: this
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
getAllVariables() {
|
|
84
|
-
return this.options.variables;
|
|
85
|
-
}
|
|
86
|
-
hasParameter(key) {
|
|
87
|
-
return key in this.options.parameters;
|
|
88
|
-
}
|
|
89
|
-
getParameter(key) {
|
|
90
|
-
if (!(key in this.options.parameters)) {
|
|
91
|
-
throw new BindingError.BindingError(`Parameter ${key} not found`);
|
|
92
|
-
}
|
|
93
|
-
return this.options.parameters[key];
|
|
94
|
-
}
|
|
95
|
-
getParameterOrElse(key, fallback) {
|
|
96
|
-
return this.options.parameters[key] ?? fallback;
|
|
97
|
-
}
|
|
98
|
-
getAllParameters() {
|
|
99
|
-
return this.options.parameters;
|
|
100
|
-
}
|
|
101
|
-
withParameters(parameters) {
|
|
102
|
-
return new Environment({ ...this.options, parameters });
|
|
103
|
-
}
|
|
104
|
-
hasDimension(dimensionName) {
|
|
105
|
-
return dimensionName in this.options.dimensions;
|
|
106
|
-
}
|
|
107
|
-
getDimension(dimensionName) {
|
|
108
|
-
if (!(dimensionName in this.options.dimensions)) {
|
|
109
|
-
throw new BindingError.BindingError(`Dimension ${dimensionName} does not exist.`);
|
|
110
|
-
}
|
|
111
|
-
return this.options.dimensions[dimensionName];
|
|
112
|
-
}
|
|
113
|
-
getDimensionOrElse(dimensionName, fallback) {
|
|
114
|
-
return this.options.dimensions[dimensionName] ?? fallback;
|
|
115
|
-
}
|
|
116
|
-
getAllDimensions() {
|
|
117
|
-
return this.options.dimensions;
|
|
118
|
-
}
|
|
119
|
-
withDimensions(dimensions) {
|
|
120
|
-
const newDimensions = {
|
|
121
|
-
...this.options.dimensions,
|
|
122
|
-
...dimensions
|
|
123
|
-
};
|
|
124
|
-
if (equal(newDimensions, this.options.dimensions)) {
|
|
125
|
-
return this;
|
|
126
|
-
}
|
|
127
|
-
return new Environment({ ...this.options, dimensions: newDimensions });
|
|
128
|
-
}
|
|
129
|
-
hasSchema() {
|
|
130
|
-
return this.options.schema !== void 0;
|
|
131
|
-
}
|
|
132
|
-
getSchema() {
|
|
133
|
-
if (!this.options.schema) {
|
|
134
|
-
throw new BindingError.BindingError("Schema is not set");
|
|
135
|
-
}
|
|
136
|
-
return this.options.schema;
|
|
137
|
-
}
|
|
138
|
-
withSchema(schema) {
|
|
139
|
-
return new Environment({ ...this.options, schema });
|
|
140
|
-
}
|
|
141
|
-
getParent() {
|
|
142
|
-
if (!this.options.parent) {
|
|
143
|
-
throw new BindingError.BindingError("There is no parent environment");
|
|
144
|
-
}
|
|
145
|
-
return this.options.parent;
|
|
146
|
-
}
|
|
147
|
-
withExtension(extension, state) {
|
|
148
|
-
return new Environment({
|
|
149
|
-
...this.options,
|
|
150
|
-
extensions: new Map([...this.options.extensions, [extension, state]])
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
getExtension(extension) {
|
|
154
|
-
const state = this.options.extensions.get(extension);
|
|
155
|
-
return extension.create(state, this);
|
|
156
|
-
}
|
|
157
|
-
merge(other) {
|
|
158
|
-
if (other === this) {
|
|
159
|
-
return this;
|
|
160
|
-
}
|
|
161
|
-
if (!equal(this.options.node, other.options.node)) {
|
|
162
|
-
throw new BindingError.BindingError(`Cannot merge two environments with different tree position.`);
|
|
163
|
-
}
|
|
164
|
-
if (this.options.parameters !== other.options.parameters) {
|
|
165
|
-
throw new BindingError.BindingError(`Cannot merge two environments with different parameters.`);
|
|
166
|
-
}
|
|
167
|
-
if (this.options.dimensions !== other.options.dimensions) {
|
|
168
|
-
throw new BindingError.BindingError(`Cannot merge two environments with different dimensions.`);
|
|
169
|
-
}
|
|
170
|
-
if (this.options.extensions !== other.options.extensions) {
|
|
171
|
-
throw new BindingError.BindingError(`Cannot merge two environments with different extensions.`);
|
|
172
|
-
}
|
|
173
|
-
if (equal(this.options.variables, other.options.variables) && this.options.parent === other.options.parent) {
|
|
174
|
-
return this;
|
|
175
|
-
}
|
|
176
|
-
for (const key in other.options.variables) {
|
|
177
|
-
if (key in this.options.variables && !equal(this.options.variables[key], other.options.variables[key])) {
|
|
178
|
-
throw new BindingError.BindingError(`Cannot merge two environments with different value of variable ${key}:
|
|
179
|
-
` + JSON.stringify(this.options.variables[key]) + "\n" + JSON.stringify(other.options.variables[key]));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return new Environment({
|
|
183
|
-
...this.options,
|
|
184
|
-
parent: this.options.parent && other.options.parent ? this.options.parent.merge(other.options.parent) : void 0,
|
|
185
|
-
variables: { ...this.options.variables, ...other.options.variables }
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
((Environment2) => {
|
|
190
|
-
Environment2.createExtension = (create, otherMethods) => {
|
|
191
|
-
return {
|
|
192
|
-
create,
|
|
193
|
-
...otherMethods
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
})(Environment || (Environment = {}));
|
|
197
|
-
exports.Environment = Environment;
|
|
198
|
-
//# sourceMappingURL=Environment.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Environment.cjs","sources":["../../../../../packages/binding-common/src/environment/Environment.ts"],"sourcesContent":["import { BindingError } from '../BindingError'\nimport type { Filter } from '../treeParameters'\nimport equal from 'fast-deep-equal/es6/index.js'\nimport { Schema, SchemaColumn, SchemaEntity, SchemaRelation } from '../schema'\n\nclass Environment<Node extends Environment.AnyNode | undefined = Environment.AnyNode | undefined> {\n\tprivate constructor(\n\t\tprivate readonly options: Environment.Options<Node>,\n\t) {\n\t}\n\n\tpublic static create() {\n\t\treturn new Environment({\n\t\t\tdimensions: {},\n\t\t\tvariables: {},\n\t\t\tparameters: {},\n\t\t\textensions: new Map(),\n\t\t})\n\t}\n\n\tpublic getSubTree(): Environment.SubTreeNode {\n\t\tfor (let env: Environment = this; env.options.node; env = env.getParent()) {\n\t\t\tconst node = env.options.node\n\t\t\tif (node.type === 'subtree-entity' || node.type === 'subtree-entity-list') {\n\t\t\t\treturn node\n\t\t\t}\n\t\t}\n\t\tthrow new BindingError('Not in a SubTree')\n\t}\n\n\tpublic getSubTreeNode(): Node & Environment.AnyNode {\n\t\tif (!this.options.node) {\n\t\t\tthrow new BindingError()\n\t\t}\n\t\treturn this.options.node\n\t}\n\n\tpublic withSubTree<Node extends Environment.SubTreeNode>(SubTree: Node): Environment<Node> {\n\t\tconst { parent, ...options } = this.options\n\t\treturn new Environment({\n\t\t\t...options,\n\t\t\tnode: SubTree,\n\t\t})\n\t}\n\n\tpublic withSubTreeChild<Node extends Environment.InnerNode>(node: Node): Environment<Node> {\n\t\tif (!this.options.node) {\n\t\t\tthrow new BindingError(`Cannot call withSubTreeChild without previous call of withSubTree`)\n\t\t}\n\t\tif (this.options.node.entity.fields.get(node.field.name) !== node.field) {\n\t\t\tthrow new BindingError()\n\t\t}\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\tnode,\n\t\t\tparent: this,\n\t\t})\n\t}\n\n\n\tpublic hasVariable(key: string): boolean {\n\t\treturn key in this.options.variables\n\t}\n\n\tpublic getVariable<V extends Environment.Value = Environment.Value>(key: string): V {\n\t\tif (!(key in this.options.variables)) {\n\t\t\tthrow new BindingError(`Variable ${key} not found`)\n\t\t}\n\t\treturn this.options.variables[key] as V\n\t}\n\n\tpublic getVariableOrElse<F, V extends Environment.Value = Environment.Value>(key: string, fallback: F): V | F {\n\t\treturn (this.options.variables[key] as V) ?? fallback\n\t}\n\n\n\tpublic withVariables(variables: Environment.ValuesMapWithFactory | undefined): Environment {\n\t\tif (variables === undefined) {\n\t\t\treturn this\n\t\t}\n\t\tconst newVariables = { ...this.options.variables }\n\t\tfor (const [newName, newValue] of Object.entries(variables)) {\n\t\t\tconst resolvedValue = typeof newValue === 'function' ? newValue(this) : newValue\n\t\t\tif (resolvedValue === undefined) {\n\t\t\t\tdelete newVariables[newName]\n\t\t\t} else {\n\t\t\t\tnewVariables[newName] = resolvedValue\n\t\t\t}\n\t\t}\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\tvariables: newVariables,\n\t\t\tparent: this,\n\t\t})\n\t}\n\n\tpublic getAllVariables() {\n\t\treturn this.options.variables\n\t}\n\n\tpublic hasParameter(key: string): boolean {\n\t\treturn key in this.options.parameters\n\t}\n\n\tpublic getParameter<F>(key: string): string | number {\n\t\tif (!(key in this.options.parameters)) {\n\t\t\tthrow new BindingError(`Parameter ${key} not found`)\n\t\t}\n\t\treturn this.options.parameters[key] as string | number\n\t}\n\n\tpublic getParameterOrElse<F>(key: string, fallback: F): string | number | F {\n\t\treturn this.options.parameters[key] ?? fallback\n\t}\n\n\tpublic getAllParameters() {\n\t\treturn this.options.parameters\n\t}\n\n\tpublic withParameters(parameters: Environment.Parameters): Environment {\n\t\treturn new Environment({ ...this.options, parameters })\n\t}\n\n\tpublic hasDimension(dimensionName: string): boolean {\n\t\treturn dimensionName in this.options.dimensions\n\t}\n\n\tpublic getDimension<F>(dimensionName: string): string[] {\n\t\tif (!(dimensionName in this.options.dimensions)) {\n\t\t\tthrow new BindingError(`Dimension ${dimensionName} does not exist.`)\n\t\t}\n\t\treturn this.options.dimensions[dimensionName]\n\t}\n\n\tpublic getDimensionOrElse<F>(dimensionName: string, fallback: F): string[] | F {\n\t\treturn this.options.dimensions[dimensionName] ?? fallback\n\t}\n\n\tpublic getAllDimensions(): Environment.SelectedDimensions {\n\t\treturn this.options.dimensions\n\t}\n\n\tpublic withDimensions(dimensions: Environment.SelectedDimensions): Environment {\n\t\tconst newDimensions = {\n\t\t\t...this.options.dimensions,\n\t\t\t...dimensions,\n\t\t}\n\t\tif (equal(newDimensions, this.options.dimensions)) {\n\t\t\treturn this\n\t\t}\n\t\treturn new Environment({ ...this.options, dimensions: newDimensions })\n\t}\n\n\thasSchema(): boolean {\n\t\treturn this.options.schema !== undefined\n\t}\n\n\tpublic getSchema(): Schema {\n\t\tif (!this.options.schema) {\n\t\t\tthrow new BindingError('Schema is not set')\n\t\t}\n\t\treturn this.options.schema\n\t}\n\n\tpublic withSchema(schema: Schema): Environment {\n\t\treturn new Environment({ ...this.options, schema })\n\t}\n\n\tpublic getParent(): Environment {\n\t\tif (!this.options.parent) {\n\t\t\tthrow new BindingError('There is no parent environment')\n\t\t}\n\t\treturn this.options.parent\n\t}\n\n\tpublic withExtension<S, R>(extension: Environment.Extension<S, R>, state: S): Environment {\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\textensions: new Map([...this.options.extensions, [extension, state] as [Environment.Extension<unknown, unknown>, unknown]]),\n\t\t})\n\t}\n\n\tpublic getExtension<S, R>(extension: Environment.Extension<S, R>): R {\n\t\tconst state = this.options.extensions.get(extension as Environment.Extension<unknown, unknown>)\n\t\treturn extension.create(state as S, this)\n\t}\n\n\tpublic merge(other: Environment): Environment {\n\t\tif (other === this) {\n\t\t\treturn this\n\t\t}\n\t\tif (!equal(this.options.node, other.options.node)) {\n\t\t\tthrow new BindingError(`Cannot merge two environments with different tree position.`)\n\t\t}\n\t\tif (this.options.parameters !== other.options.parameters) {\n\t\t\tthrow new BindingError(`Cannot merge two environments with different parameters.`)\n\t\t}\n\t\tif (this.options.dimensions !== other.options.dimensions) {\n\t\t\tthrow new BindingError(`Cannot merge two environments with different dimensions.`)\n\t\t}\n\t\tif (this.options.extensions !== other.options.extensions) {\n\t\t\t// todo: deep compare?\n\t\t\tthrow new BindingError(`Cannot merge two environments with different extensions.`)\n\t\t}\n\n\t\tif (equal(this.options.variables, other.options.variables) && this.options.parent === other.options.parent) {\n\t\t\treturn this\n\t\t}\n\t\tfor (const key in other.options.variables) {\n\t\t\tif (key in this.options.variables && !equal(this.options.variables[key], other.options.variables[key])) {\n\t\t\t\tthrow new BindingError(`Cannot merge two environments with different value of variable ${key}:\\n`\n\t\t\t\t\t+ JSON.stringify(this.options.variables[key]) + '\\n'\n\t\t\t\t\t+ JSON.stringify(other.options.variables[key]))\n\t\t\t}\n\t\t}\n\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\tparent: this.options.parent && other.options.parent ? this.options.parent.merge(other.options.parent) : undefined,\n\t\t\tvariables: { ...this.options.variables, ...other.options.variables },\n\t\t})\n\t}\n}\n\nnamespace Environment {\n\texport type Name = string\n\n\texport type Value = unknown\n\n\texport type ResolvedValue = Value\n\n\texport interface Options<Node extends AnyNode | undefined> {\n\t\tnode?: Node\n\t\tschema?: Schema\n\t\tdimensions: SelectedDimensions\n\t\tparameters: Parameters\n\t\tvariables: CustomVariables\n\t\tparent?: Environment\n\t\textensions: Map<Extension<unknown, unknown>, unknown>\n\t}\n\n\texport type SubTreeNode =\n\t\t| SubTreeEntityNode\n\t\t| SubTreeEntityListNode\n\n\texport type InnerNode =\n\t\t| EntityNode\n\t\t| EntityListNode\n\t\t| ColumnNode\n\n\texport type AnyNode =\n\t\t| SubTreeNode\n\t\t| InnerNode\n\n\texport interface SubTreeEntityNode {\n\t\ttype: 'subtree-entity'\n\t\tentity: SchemaEntity\n\t\texpectedCardinality: 'zero' | 'one' | 'zero-or-one'\n\t\tfilter: Filter\n\t}\n\n\texport interface SubTreeEntityListNode {\n\t\ttype: 'subtree-entity-list'\n\t\tentity: SchemaEntity\n\t\texpectedCardinality: 'zero-to-many' | 'zero'\n\t\tfilter: Filter\n\t}\n\n\texport interface EntityNode {\n\t\ttype: 'entity'\n\t\tentity: SchemaEntity\n\t\tfield: SchemaRelation\n\t}\n\n\texport interface EntityListNode {\n\t\ttype: 'entity-list'\n\t\tentity: SchemaEntity\n\t\tfield: SchemaRelation\n\t}\n\n\texport interface ColumnNode {\n\t\ttype: 'column'\n\t\tentity: SchemaEntity\n\t\tfield: SchemaColumn\n\t}\n\n\texport interface SelectedDimensions {\n\t\t[key: string]: string[]\n\t}\n\n\texport type Parameters = {\n\t\t[K in string]?: string | number\n\t}\n\n\texport interface CustomVariables {\n\t\t[key: string]: Value\n\t}\n\n\texport interface ValuesMapWithFactory {\n\t\t[key: string]:\n\t\t\t| ((environment: Environment) => Value)\n\t\t\t| Value\n\t}\n\n\texport type Extension<State, Result> = {\n\t\tcreate: (state: State | undefined, environment: Environment) => Result\n\t}\n\n\texport const createExtension = <S, R>(create: Extension<S, R>['create'], otherMethods?: Omit<Extension<S, R>, 'create'>): Extension<S, R> => {\n\t\treturn {\n\t\t\tcreate,\n\t\t\t...otherMethods,\n\t\t}\n\t}\n}\n\nexport { Environment }\n"],"names":["BindingError","Environment"],"mappings":"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"}
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { BindingError } from "../BindingError.js";
|
|
2
|
-
import equal from "fast-deep-equal/es6/index.js";
|
|
3
|
-
class Environment {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
this.options = options;
|
|
6
|
-
}
|
|
7
|
-
static create() {
|
|
8
|
-
return new Environment({
|
|
9
|
-
dimensions: {},
|
|
10
|
-
variables: {},
|
|
11
|
-
parameters: {},
|
|
12
|
-
extensions: /* @__PURE__ */ new Map()
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
getSubTree() {
|
|
16
|
-
for (let env = this; env.options.node; env = env.getParent()) {
|
|
17
|
-
const node = env.options.node;
|
|
18
|
-
if (node.type === "subtree-entity" || node.type === "subtree-entity-list") {
|
|
19
|
-
return node;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
throw new BindingError("Not in a SubTree");
|
|
23
|
-
}
|
|
24
|
-
getSubTreeNode() {
|
|
25
|
-
if (!this.options.node) {
|
|
26
|
-
throw new BindingError();
|
|
27
|
-
}
|
|
28
|
-
return this.options.node;
|
|
29
|
-
}
|
|
30
|
-
withSubTree(SubTree) {
|
|
31
|
-
const { parent, ...options } = this.options;
|
|
32
|
-
return new Environment({
|
|
33
|
-
...options,
|
|
34
|
-
node: SubTree
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
withSubTreeChild(node) {
|
|
38
|
-
if (!this.options.node) {
|
|
39
|
-
throw new BindingError(`Cannot call withSubTreeChild without previous call of withSubTree`);
|
|
40
|
-
}
|
|
41
|
-
if (this.options.node.entity.fields.get(node.field.name) !== node.field) {
|
|
42
|
-
throw new BindingError();
|
|
43
|
-
}
|
|
44
|
-
return new Environment({
|
|
45
|
-
...this.options,
|
|
46
|
-
node,
|
|
47
|
-
parent: this
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
hasVariable(key) {
|
|
51
|
-
return key in this.options.variables;
|
|
52
|
-
}
|
|
53
|
-
getVariable(key) {
|
|
54
|
-
if (!(key in this.options.variables)) {
|
|
55
|
-
throw new BindingError(`Variable ${key} not found`);
|
|
56
|
-
}
|
|
57
|
-
return this.options.variables[key];
|
|
58
|
-
}
|
|
59
|
-
getVariableOrElse(key, fallback) {
|
|
60
|
-
return this.options.variables[key] ?? fallback;
|
|
61
|
-
}
|
|
62
|
-
withVariables(variables) {
|
|
63
|
-
if (variables === void 0) {
|
|
64
|
-
return this;
|
|
65
|
-
}
|
|
66
|
-
const newVariables = { ...this.options.variables };
|
|
67
|
-
for (const [newName, newValue] of Object.entries(variables)) {
|
|
68
|
-
const resolvedValue = typeof newValue === "function" ? newValue(this) : newValue;
|
|
69
|
-
if (resolvedValue === void 0) {
|
|
70
|
-
delete newVariables[newName];
|
|
71
|
-
} else {
|
|
72
|
-
newVariables[newName] = resolvedValue;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return new Environment({
|
|
76
|
-
...this.options,
|
|
77
|
-
variables: newVariables,
|
|
78
|
-
parent: this
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
getAllVariables() {
|
|
82
|
-
return this.options.variables;
|
|
83
|
-
}
|
|
84
|
-
hasParameter(key) {
|
|
85
|
-
return key in this.options.parameters;
|
|
86
|
-
}
|
|
87
|
-
getParameter(key) {
|
|
88
|
-
if (!(key in this.options.parameters)) {
|
|
89
|
-
throw new BindingError(`Parameter ${key} not found`);
|
|
90
|
-
}
|
|
91
|
-
return this.options.parameters[key];
|
|
92
|
-
}
|
|
93
|
-
getParameterOrElse(key, fallback) {
|
|
94
|
-
return this.options.parameters[key] ?? fallback;
|
|
95
|
-
}
|
|
96
|
-
getAllParameters() {
|
|
97
|
-
return this.options.parameters;
|
|
98
|
-
}
|
|
99
|
-
withParameters(parameters) {
|
|
100
|
-
return new Environment({ ...this.options, parameters });
|
|
101
|
-
}
|
|
102
|
-
hasDimension(dimensionName) {
|
|
103
|
-
return dimensionName in this.options.dimensions;
|
|
104
|
-
}
|
|
105
|
-
getDimension(dimensionName) {
|
|
106
|
-
if (!(dimensionName in this.options.dimensions)) {
|
|
107
|
-
throw new BindingError(`Dimension ${dimensionName} does not exist.`);
|
|
108
|
-
}
|
|
109
|
-
return this.options.dimensions[dimensionName];
|
|
110
|
-
}
|
|
111
|
-
getDimensionOrElse(dimensionName, fallback) {
|
|
112
|
-
return this.options.dimensions[dimensionName] ?? fallback;
|
|
113
|
-
}
|
|
114
|
-
getAllDimensions() {
|
|
115
|
-
return this.options.dimensions;
|
|
116
|
-
}
|
|
117
|
-
withDimensions(dimensions) {
|
|
118
|
-
const newDimensions = {
|
|
119
|
-
...this.options.dimensions,
|
|
120
|
-
...dimensions
|
|
121
|
-
};
|
|
122
|
-
if (equal(newDimensions, this.options.dimensions)) {
|
|
123
|
-
return this;
|
|
124
|
-
}
|
|
125
|
-
return new Environment({ ...this.options, dimensions: newDimensions });
|
|
126
|
-
}
|
|
127
|
-
hasSchema() {
|
|
128
|
-
return this.options.schema !== void 0;
|
|
129
|
-
}
|
|
130
|
-
getSchema() {
|
|
131
|
-
if (!this.options.schema) {
|
|
132
|
-
throw new BindingError("Schema is not set");
|
|
133
|
-
}
|
|
134
|
-
return this.options.schema;
|
|
135
|
-
}
|
|
136
|
-
withSchema(schema) {
|
|
137
|
-
return new Environment({ ...this.options, schema });
|
|
138
|
-
}
|
|
139
|
-
getParent() {
|
|
140
|
-
if (!this.options.parent) {
|
|
141
|
-
throw new BindingError("There is no parent environment");
|
|
142
|
-
}
|
|
143
|
-
return this.options.parent;
|
|
144
|
-
}
|
|
145
|
-
withExtension(extension, state) {
|
|
146
|
-
return new Environment({
|
|
147
|
-
...this.options,
|
|
148
|
-
extensions: new Map([...this.options.extensions, [extension, state]])
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
getExtension(extension) {
|
|
152
|
-
const state = this.options.extensions.get(extension);
|
|
153
|
-
return extension.create(state, this);
|
|
154
|
-
}
|
|
155
|
-
merge(other) {
|
|
156
|
-
if (other === this) {
|
|
157
|
-
return this;
|
|
158
|
-
}
|
|
159
|
-
if (!equal(this.options.node, other.options.node)) {
|
|
160
|
-
throw new BindingError(`Cannot merge two environments with different tree position.`);
|
|
161
|
-
}
|
|
162
|
-
if (this.options.parameters !== other.options.parameters) {
|
|
163
|
-
throw new BindingError(`Cannot merge two environments with different parameters.`);
|
|
164
|
-
}
|
|
165
|
-
if (this.options.dimensions !== other.options.dimensions) {
|
|
166
|
-
throw new BindingError(`Cannot merge two environments with different dimensions.`);
|
|
167
|
-
}
|
|
168
|
-
if (this.options.extensions !== other.options.extensions) {
|
|
169
|
-
throw new BindingError(`Cannot merge two environments with different extensions.`);
|
|
170
|
-
}
|
|
171
|
-
if (equal(this.options.variables, other.options.variables) && this.options.parent === other.options.parent) {
|
|
172
|
-
return this;
|
|
173
|
-
}
|
|
174
|
-
for (const key in other.options.variables) {
|
|
175
|
-
if (key in this.options.variables && !equal(this.options.variables[key], other.options.variables[key])) {
|
|
176
|
-
throw new BindingError(`Cannot merge two environments with different value of variable ${key}:
|
|
177
|
-
` + JSON.stringify(this.options.variables[key]) + "\n" + JSON.stringify(other.options.variables[key]));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return new Environment({
|
|
181
|
-
...this.options,
|
|
182
|
-
parent: this.options.parent && other.options.parent ? this.options.parent.merge(other.options.parent) : void 0,
|
|
183
|
-
variables: { ...this.options.variables, ...other.options.variables }
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
((Environment2) => {
|
|
188
|
-
Environment2.createExtension = (create, otherMethods) => {
|
|
189
|
-
return {
|
|
190
|
-
create,
|
|
191
|
-
...otherMethods
|
|
192
|
-
};
|
|
193
|
-
};
|
|
194
|
-
})(Environment || (Environment = {}));
|
|
195
|
-
export {
|
|
196
|
-
Environment
|
|
197
|
-
};
|
|
198
|
-
//# sourceMappingURL=Environment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Environment.js","sources":["../../../../../packages/binding-common/src/environment/Environment.ts"],"sourcesContent":["import { BindingError } from '../BindingError'\nimport type { Filter } from '../treeParameters'\nimport equal from 'fast-deep-equal/es6/index.js'\nimport { Schema, SchemaColumn, SchemaEntity, SchemaRelation } from '../schema'\n\nclass Environment<Node extends Environment.AnyNode | undefined = Environment.AnyNode | undefined> {\n\tprivate constructor(\n\t\tprivate readonly options: Environment.Options<Node>,\n\t) {\n\t}\n\n\tpublic static create() {\n\t\treturn new Environment({\n\t\t\tdimensions: {},\n\t\t\tvariables: {},\n\t\t\tparameters: {},\n\t\t\textensions: new Map(),\n\t\t})\n\t}\n\n\tpublic getSubTree(): Environment.SubTreeNode {\n\t\tfor (let env: Environment = this; env.options.node; env = env.getParent()) {\n\t\t\tconst node = env.options.node\n\t\t\tif (node.type === 'subtree-entity' || node.type === 'subtree-entity-list') {\n\t\t\t\treturn node\n\t\t\t}\n\t\t}\n\t\tthrow new BindingError('Not in a SubTree')\n\t}\n\n\tpublic getSubTreeNode(): Node & Environment.AnyNode {\n\t\tif (!this.options.node) {\n\t\t\tthrow new BindingError()\n\t\t}\n\t\treturn this.options.node\n\t}\n\n\tpublic withSubTree<Node extends Environment.SubTreeNode>(SubTree: Node): Environment<Node> {\n\t\tconst { parent, ...options } = this.options\n\t\treturn new Environment({\n\t\t\t...options,\n\t\t\tnode: SubTree,\n\t\t})\n\t}\n\n\tpublic withSubTreeChild<Node extends Environment.InnerNode>(node: Node): Environment<Node> {\n\t\tif (!this.options.node) {\n\t\t\tthrow new BindingError(`Cannot call withSubTreeChild without previous call of withSubTree`)\n\t\t}\n\t\tif (this.options.node.entity.fields.get(node.field.name) !== node.field) {\n\t\t\tthrow new BindingError()\n\t\t}\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\tnode,\n\t\t\tparent: this,\n\t\t})\n\t}\n\n\n\tpublic hasVariable(key: string): boolean {\n\t\treturn key in this.options.variables\n\t}\n\n\tpublic getVariable<V extends Environment.Value = Environment.Value>(key: string): V {\n\t\tif (!(key in this.options.variables)) {\n\t\t\tthrow new BindingError(`Variable ${key} not found`)\n\t\t}\n\t\treturn this.options.variables[key] as V\n\t}\n\n\tpublic getVariableOrElse<F, V extends Environment.Value = Environment.Value>(key: string, fallback: F): V | F {\n\t\treturn (this.options.variables[key] as V) ?? fallback\n\t}\n\n\n\tpublic withVariables(variables: Environment.ValuesMapWithFactory | undefined): Environment {\n\t\tif (variables === undefined) {\n\t\t\treturn this\n\t\t}\n\t\tconst newVariables = { ...this.options.variables }\n\t\tfor (const [newName, newValue] of Object.entries(variables)) {\n\t\t\tconst resolvedValue = typeof newValue === 'function' ? newValue(this) : newValue\n\t\t\tif (resolvedValue === undefined) {\n\t\t\t\tdelete newVariables[newName]\n\t\t\t} else {\n\t\t\t\tnewVariables[newName] = resolvedValue\n\t\t\t}\n\t\t}\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\tvariables: newVariables,\n\t\t\tparent: this,\n\t\t})\n\t}\n\n\tpublic getAllVariables() {\n\t\treturn this.options.variables\n\t}\n\n\tpublic hasParameter(key: string): boolean {\n\t\treturn key in this.options.parameters\n\t}\n\n\tpublic getParameter<F>(key: string): string | number {\n\t\tif (!(key in this.options.parameters)) {\n\t\t\tthrow new BindingError(`Parameter ${key} not found`)\n\t\t}\n\t\treturn this.options.parameters[key] as string | number\n\t}\n\n\tpublic getParameterOrElse<F>(key: string, fallback: F): string | number | F {\n\t\treturn this.options.parameters[key] ?? fallback\n\t}\n\n\tpublic getAllParameters() {\n\t\treturn this.options.parameters\n\t}\n\n\tpublic withParameters(parameters: Environment.Parameters): Environment {\n\t\treturn new Environment({ ...this.options, parameters })\n\t}\n\n\tpublic hasDimension(dimensionName: string): boolean {\n\t\treturn dimensionName in this.options.dimensions\n\t}\n\n\tpublic getDimension<F>(dimensionName: string): string[] {\n\t\tif (!(dimensionName in this.options.dimensions)) {\n\t\t\tthrow new BindingError(`Dimension ${dimensionName} does not exist.`)\n\t\t}\n\t\treturn this.options.dimensions[dimensionName]\n\t}\n\n\tpublic getDimensionOrElse<F>(dimensionName: string, fallback: F): string[] | F {\n\t\treturn this.options.dimensions[dimensionName] ?? fallback\n\t}\n\n\tpublic getAllDimensions(): Environment.SelectedDimensions {\n\t\treturn this.options.dimensions\n\t}\n\n\tpublic withDimensions(dimensions: Environment.SelectedDimensions): Environment {\n\t\tconst newDimensions = {\n\t\t\t...this.options.dimensions,\n\t\t\t...dimensions,\n\t\t}\n\t\tif (equal(newDimensions, this.options.dimensions)) {\n\t\t\treturn this\n\t\t}\n\t\treturn new Environment({ ...this.options, dimensions: newDimensions })\n\t}\n\n\thasSchema(): boolean {\n\t\treturn this.options.schema !== undefined\n\t}\n\n\tpublic getSchema(): Schema {\n\t\tif (!this.options.schema) {\n\t\t\tthrow new BindingError('Schema is not set')\n\t\t}\n\t\treturn this.options.schema\n\t}\n\n\tpublic withSchema(schema: Schema): Environment {\n\t\treturn new Environment({ ...this.options, schema })\n\t}\n\n\tpublic getParent(): Environment {\n\t\tif (!this.options.parent) {\n\t\t\tthrow new BindingError('There is no parent environment')\n\t\t}\n\t\treturn this.options.parent\n\t}\n\n\tpublic withExtension<S, R>(extension: Environment.Extension<S, R>, state: S): Environment {\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\textensions: new Map([...this.options.extensions, [extension, state] as [Environment.Extension<unknown, unknown>, unknown]]),\n\t\t})\n\t}\n\n\tpublic getExtension<S, R>(extension: Environment.Extension<S, R>): R {\n\t\tconst state = this.options.extensions.get(extension as Environment.Extension<unknown, unknown>)\n\t\treturn extension.create(state as S, this)\n\t}\n\n\tpublic merge(other: Environment): Environment {\n\t\tif (other === this) {\n\t\t\treturn this\n\t\t}\n\t\tif (!equal(this.options.node, other.options.node)) {\n\t\t\tthrow new BindingError(`Cannot merge two environments with different tree position.`)\n\t\t}\n\t\tif (this.options.parameters !== other.options.parameters) {\n\t\t\tthrow new BindingError(`Cannot merge two environments with different parameters.`)\n\t\t}\n\t\tif (this.options.dimensions !== other.options.dimensions) {\n\t\t\tthrow new BindingError(`Cannot merge two environments with different dimensions.`)\n\t\t}\n\t\tif (this.options.extensions !== other.options.extensions) {\n\t\t\t// todo: deep compare?\n\t\t\tthrow new BindingError(`Cannot merge two environments with different extensions.`)\n\t\t}\n\n\t\tif (equal(this.options.variables, other.options.variables) && this.options.parent === other.options.parent) {\n\t\t\treturn this\n\t\t}\n\t\tfor (const key in other.options.variables) {\n\t\t\tif (key in this.options.variables && !equal(this.options.variables[key], other.options.variables[key])) {\n\t\t\t\tthrow new BindingError(`Cannot merge two environments with different value of variable ${key}:\\n`\n\t\t\t\t\t+ JSON.stringify(this.options.variables[key]) + '\\n'\n\t\t\t\t\t+ JSON.stringify(other.options.variables[key]))\n\t\t\t}\n\t\t}\n\n\t\treturn new Environment({\n\t\t\t...this.options,\n\t\t\tparent: this.options.parent && other.options.parent ? this.options.parent.merge(other.options.parent) : undefined,\n\t\t\tvariables: { ...this.options.variables, ...other.options.variables },\n\t\t})\n\t}\n}\n\nnamespace Environment {\n\texport type Name = string\n\n\texport type Value = unknown\n\n\texport type ResolvedValue = Value\n\n\texport interface Options<Node extends AnyNode | undefined> {\n\t\tnode?: Node\n\t\tschema?: Schema\n\t\tdimensions: SelectedDimensions\n\t\tparameters: Parameters\n\t\tvariables: CustomVariables\n\t\tparent?: Environment\n\t\textensions: Map<Extension<unknown, unknown>, unknown>\n\t}\n\n\texport type SubTreeNode =\n\t\t| SubTreeEntityNode\n\t\t| SubTreeEntityListNode\n\n\texport type InnerNode =\n\t\t| EntityNode\n\t\t| EntityListNode\n\t\t| ColumnNode\n\n\texport type AnyNode =\n\t\t| SubTreeNode\n\t\t| InnerNode\n\n\texport interface SubTreeEntityNode {\n\t\ttype: 'subtree-entity'\n\t\tentity: SchemaEntity\n\t\texpectedCardinality: 'zero' | 'one' | 'zero-or-one'\n\t\tfilter: Filter\n\t}\n\n\texport interface SubTreeEntityListNode {\n\t\ttype: 'subtree-entity-list'\n\t\tentity: SchemaEntity\n\t\texpectedCardinality: 'zero-to-many' | 'zero'\n\t\tfilter: Filter\n\t}\n\n\texport interface EntityNode {\n\t\ttype: 'entity'\n\t\tentity: SchemaEntity\n\t\tfield: SchemaRelation\n\t}\n\n\texport interface EntityListNode {\n\t\ttype: 'entity-list'\n\t\tentity: SchemaEntity\n\t\tfield: SchemaRelation\n\t}\n\n\texport interface ColumnNode {\n\t\ttype: 'column'\n\t\tentity: SchemaEntity\n\t\tfield: SchemaColumn\n\t}\n\n\texport interface SelectedDimensions {\n\t\t[key: string]: string[]\n\t}\n\n\texport type Parameters = {\n\t\t[K in string]?: string | number\n\t}\n\n\texport interface CustomVariables {\n\t\t[key: string]: Value\n\t}\n\n\texport interface ValuesMapWithFactory {\n\t\t[key: string]:\n\t\t\t| ((environment: Environment) => Value)\n\t\t\t| Value\n\t}\n\n\texport type Extension<State, Result> = {\n\t\tcreate: (state: State | undefined, environment: Environment) => Result\n\t}\n\n\texport const createExtension = <S, R>(create: Extension<S, R>['create'], otherMethods?: Omit<Extension<S, R>, 'create'>): Extension<S, R> => {\n\t\treturn {\n\t\t\tcreate,\n\t\t\t...otherMethods,\n\t\t}\n\t}\n}\n\nexport { Environment }\n"],"names":["Environment"],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const TreeNodeUtils = require("../utils/TreeNodeUtils.cjs");
|
|
4
|
-
const whereToFilter = require("../utils/whereToFilter.cjs");
|
|
5
|
-
const QueryLanguage = require("../queryLanguage/QueryLanguage.cjs");
|
|
6
|
-
class TreeNodeEnvironmentFactory {
|
|
7
|
-
static createEnvironmentForEntityListSubtree(environment, sugaredEntityList) {
|
|
8
|
-
let entityList;
|
|
9
|
-
let rootWhere;
|
|
10
|
-
let expectedCardinality;
|
|
11
|
-
if (sugaredEntityList.isCreating) {
|
|
12
|
-
entityList = QueryLanguage.QueryLanguage.desugarUnconstrainedQualifiedEntityList(sugaredEntityList, environment);
|
|
13
|
-
rootWhere = {};
|
|
14
|
-
expectedCardinality = "zero";
|
|
15
|
-
} else {
|
|
16
|
-
entityList = QueryLanguage.QueryLanguage.desugarQualifiedEntityList(sugaredEntityList, environment);
|
|
17
|
-
rootWhere = entityList.filter ?? {};
|
|
18
|
-
expectedCardinality = "zero-to-many";
|
|
19
|
-
}
|
|
20
|
-
const entitySchema = TreeNodeUtils.TreeNodeUtils.resolveEntity(environment.getSchema(), entityList.entityName, "entity list");
|
|
21
|
-
return environment.withSubTree({
|
|
22
|
-
type: "subtree-entity-list",
|
|
23
|
-
entity: entitySchema,
|
|
24
|
-
expectedCardinality,
|
|
25
|
-
filter: rootWhere
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
static createEnvironmentForEntitySubtree(environment, sugaredEntityList) {
|
|
29
|
-
let entity;
|
|
30
|
-
let rootWhere;
|
|
31
|
-
let expectedCardinality;
|
|
32
|
-
if (sugaredEntityList.isCreating) {
|
|
33
|
-
rootWhere = {};
|
|
34
|
-
expectedCardinality = "zero";
|
|
35
|
-
entity = QueryLanguage.QueryLanguage.desugarUnconstrainedQualifiedSingleEntity(sugaredEntityList, environment);
|
|
36
|
-
} else {
|
|
37
|
-
entity = QueryLanguage.QueryLanguage.desugarQualifiedSingleEntity(sugaredEntityList, environment);
|
|
38
|
-
rootWhere = whereToFilter.whereToFilter(entity.where);
|
|
39
|
-
expectedCardinality = entity.setOnCreate ? "zero-or-one" : "one";
|
|
40
|
-
}
|
|
41
|
-
const entitySchema = TreeNodeUtils.TreeNodeUtils.resolveEntity(environment.getSchema(), entity.entityName, "entity");
|
|
42
|
-
return environment.withSubTree({
|
|
43
|
-
type: "subtree-entity",
|
|
44
|
-
entity: entitySchema,
|
|
45
|
-
expectedCardinality,
|
|
46
|
-
filter: rootWhere
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
static createEnvironmentForEntityList(environment, sugaredRelativeEntityList) {
|
|
50
|
-
const relativeEntityList = QueryLanguage.QueryLanguage.desugarRelativeEntityList(sugaredRelativeEntityList, environment);
|
|
51
|
-
const hasOneEnvironment = this.traverseHasOnePath(environment, relativeEntityList.hasOneRelationPath);
|
|
52
|
-
const hasManyField = relativeEntityList.hasManyRelation.field;
|
|
53
|
-
const field = TreeNodeUtils.TreeNodeUtils.resolveHasManyRelation(hasOneEnvironment, hasManyField);
|
|
54
|
-
const targetEntity = environment.getSchema().getEntity(field.targetEntity);
|
|
55
|
-
return hasOneEnvironment.withSubTreeChild({
|
|
56
|
-
type: "entity-list",
|
|
57
|
-
field,
|
|
58
|
-
entity: targetEntity
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
static createEnvironmentForEntity(environment, sugaredRelativeSingleEntity) {
|
|
62
|
-
const relativeSingleEntity = QueryLanguage.QueryLanguage.desugarRelativeSingleEntity(sugaredRelativeSingleEntity, environment);
|
|
63
|
-
return this.traverseHasOnePath(environment, relativeSingleEntity.hasOneRelationPath);
|
|
64
|
-
}
|
|
65
|
-
static createEnvironmentForField(environment, sugaredRelativeSingleField) {
|
|
66
|
-
const relativeSingleField = QueryLanguage.QueryLanguage.desugarRelativeSingleField(sugaredRelativeSingleField, environment);
|
|
67
|
-
const hasOneEnvironment = this.traverseHasOnePath(environment, relativeSingleField.hasOneRelationPath);
|
|
68
|
-
const field = TreeNodeUtils.TreeNodeUtils.resolveColumn(hasOneEnvironment, relativeSingleField.field);
|
|
69
|
-
return hasOneEnvironment.withSubTreeChild({
|
|
70
|
-
type: "column",
|
|
71
|
-
entity: environment.getSubTreeNode().entity,
|
|
72
|
-
field
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
static traverseHasOnePath(environment, hasOneRelationPath) {
|
|
76
|
-
for (const pathItem of hasOneRelationPath) {
|
|
77
|
-
const field = TreeNodeUtils.TreeNodeUtils.resolveHasOneRelation(environment, pathItem.field, !!pathItem.reducedBy);
|
|
78
|
-
const targetEntity = environment.getSchema().getEntity(field.targetEntity);
|
|
79
|
-
environment = environment.withSubTreeChild({
|
|
80
|
-
type: "entity",
|
|
81
|
-
field,
|
|
82
|
-
entity: targetEntity
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return environment;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.TreeNodeEnvironmentFactory = TreeNodeEnvironmentFactory;
|
|
89
|
-
//# sourceMappingURL=TreeNodeEnvironmentFactory.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNodeEnvironmentFactory.cjs","sources":["../../../../../packages/binding-common/src/environment/TreeNodeEnvironmentFactory.ts"],"sourcesContent":["import { Environment } from './Environment'\nimport {\n\tHasOneRelation,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { QueryLanguage } from '../queryLanguage'\nimport { TreeNodeUtils } from '../utils/TreeNodeUtils'\nimport { whereToFilter } from '../utils/whereToFilter'\n\nexport class TreeNodeEnvironmentFactory {\n\n\tpublic static createEnvironmentForEntityListSubtree(\n\t\tenvironment: Environment,\n\t\tsugaredEntityList: SugaredQualifiedEntityList | SugaredUnconstrainedQualifiedEntityList,\n\t): Environment {\n\t\tlet entityList\n\t\tlet rootWhere\n\t\tlet expectedCardinality: Environment.SubTreeNode['expectedCardinality']\n\n\t\tif (sugaredEntityList.isCreating) {\n\t\t\tentityList = QueryLanguage.desugarUnconstrainedQualifiedEntityList(sugaredEntityList, environment)\n\t\t\trootWhere = {} as const\n\t\t\texpectedCardinality = 'zero'\n\n\t\t} else {\n\t\t\tentityList = QueryLanguage.desugarQualifiedEntityList(sugaredEntityList, environment)\n\t\t\trootWhere = entityList.filter ?? {}\n\t\t\texpectedCardinality = 'zero-to-many'\n\t\t}\n\n\t\tconst entitySchema = TreeNodeUtils.resolveEntity(environment.getSchema(), entityList.entityName, 'entity list')\n\n\t\treturn environment.withSubTree({\n\t\t\ttype: 'subtree-entity-list',\n\t\t\tentity: entitySchema,\n\t\t\texpectedCardinality,\n\t\t\tfilter: rootWhere,\n\t\t})\n\t}\n\n\tpublic static createEnvironmentForEntitySubtree(\n\t\tenvironment: Environment,\n\t\tsugaredEntityList: SugaredQualifiedSingleEntity | SugaredUnconstrainedQualifiedSingleEntity,\n\t): Environment {\n\t\tlet entity\n\t\tlet rootWhere\n\t\tlet expectedCardinality: Environment.SubTreeNode['expectedCardinality']\n\n\t\tif (sugaredEntityList.isCreating) {\n\t\t\trootWhere = { } as const\n\t\t\texpectedCardinality = 'zero'\n\t\t\tentity = QueryLanguage.desugarUnconstrainedQualifiedSingleEntity(sugaredEntityList, environment)\n\n\t\t} else {\n\t\t\tentity = QueryLanguage.desugarQualifiedSingleEntity(sugaredEntityList, environment)\n\t\t\trootWhere = whereToFilter(entity.where)\n\t\t\texpectedCardinality = entity.setOnCreate ? 'zero-or-one' : 'one'\n\t\t}\n\n\t\tconst entitySchema = TreeNodeUtils.resolveEntity(environment.getSchema(), entity.entityName, 'entity')\n\n\t\treturn environment.withSubTree({\n\t\t\ttype: 'subtree-entity',\n\t\t\tentity: entitySchema,\n\t\t\texpectedCardinality: expectedCardinality,\n\t\t\tfilter: rootWhere,\n\t\t})\n\t}\n\n\tpublic static createEnvironmentForEntityList(\n\t\tenvironment: Environment,\n\t\tsugaredRelativeEntityList: SugaredRelativeEntityList,\n\t): Environment {\n\t\tconst relativeEntityList = QueryLanguage.desugarRelativeEntityList(sugaredRelativeEntityList, environment)\n\t\tconst hasOneEnvironment = this.traverseHasOnePath(environment, relativeEntityList.hasOneRelationPath)\n\t\tconst hasManyField = relativeEntityList.hasManyRelation.field\n\n\t\tconst field = TreeNodeUtils.resolveHasManyRelation(hasOneEnvironment, hasManyField)\n\n\t\tconst targetEntity = environment.getSchema().getEntity(field.targetEntity)\n\n\t\treturn hasOneEnvironment.withSubTreeChild({\n\t\t\ttype: 'entity-list',\n\t\t\tfield,\n\t\t\tentity: targetEntity,\n\t\t})\n\t}\n\n\tpublic static createEnvironmentForEntity(\n\t\tenvironment: Environment,\n\t\tsugaredRelativeSingleEntity: SugaredRelativeSingleEntity,\n\t) {\n\t\tconst relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(sugaredRelativeSingleEntity, environment)\n\n\t\treturn this.traverseHasOnePath(environment, relativeSingleEntity.hasOneRelationPath)\n\t}\n\n\tpublic static createEnvironmentForField(\n\t\tenvironment: Environment,\n\t\tsugaredRelativeSingleField: SugaredRelativeSingleField,\n\t) {\n\t\tconst relativeSingleField = QueryLanguage.desugarRelativeSingleField(sugaredRelativeSingleField, environment)\n\t\tconst hasOneEnvironment = this.traverseHasOnePath(environment, relativeSingleField.hasOneRelationPath)\n\n\t\tconst field = TreeNodeUtils.resolveColumn(hasOneEnvironment, relativeSingleField.field)\n\n\t\treturn hasOneEnvironment.withSubTreeChild({\n\t\t\ttype: 'column',\n\t\t\tentity: environment.getSubTreeNode().entity,\n\t\t\tfield,\n\t\t})\n\t}\n\n\tprivate static traverseHasOnePath(\n\t\tenvironment: Environment,\n\t\thasOneRelationPath: HasOneRelation[],\n\t): Environment {\n\t\tfor (const pathItem of hasOneRelationPath) {\n\t\t\tconst field = TreeNodeUtils.resolveHasOneRelation(environment, pathItem.field, !!pathItem.reducedBy)\n\t\t\tconst targetEntity = environment.getSchema().getEntity(field.targetEntity)\n\n\t\t\tenvironment = environment.withSubTreeChild({\n\t\t\t\ttype: 'entity',\n\t\t\t\tfield,\n\t\t\t\tentity: targetEntity,\n\t\t\t})\n\t\t}\n\t\treturn environment\n\t}\n\n}\n"],"names":["QueryLanguage","TreeNodeUtils","whereToFilter"],"mappings":";;;;;AAeO,MAAM,2BAA2B;AAAA,EAEvC,OAAc,sCACb,aACA,mBACc;AACV,QAAA;AACA,QAAA;AACA,QAAA;AAEJ,QAAI,kBAAkB,YAAY;AACpB,mBAAAA,cAAA,cAAc,wCAAwC,mBAAmB,WAAW;AACjG,kBAAY,CAAC;AACS,4BAAA;AAAA,IAAA,OAEhB;AACO,mBAAAA,cAAA,cAAc,2BAA2B,mBAAmB,WAAW;AACxE,kBAAA,WAAW,UAAU,CAAC;AACZ,4BAAA;AAAA,IAAA;AAGjB,UAAA,eAAeC,4BAAc,cAAc,YAAY,aAAa,WAAW,YAAY,aAAa;AAE9G,WAAO,YAAY,YAAY;AAAA,MAC9B,MAAM;AAAA,MACN,QAAQ;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGF,OAAc,kCACb,aACA,mBACc;AACV,QAAA;AACA,QAAA;AACA,QAAA;AAEJ,QAAI,kBAAkB,YAAY;AACjC,kBAAY,CAAE;AACQ,4BAAA;AACb,eAAAD,cAAA,cAAc,0CAA0C,mBAAmB,WAAW;AAAA,IAAA,OAEzF;AACG,eAAAA,cAAA,cAAc,6BAA6B,mBAAmB,WAAW;AACtE,kBAAAE,cAAAA,cAAc,OAAO,KAAK;AAChB,4BAAA,OAAO,cAAc,gBAAgB;AAAA,IAAA;AAGtD,UAAA,eAAeD,4BAAc,cAAc,YAAY,aAAa,OAAO,YAAY,QAAQ;AAErG,WAAO,YAAY,YAAY;AAAA,MAC9B,MAAM;AAAA,MACN,QAAQ;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGF,OAAc,+BACb,aACA,2BACc;AACd,UAAM,qBAAqBD,cAAA,cAAc,0BAA0B,2BAA2B,WAAW;AACzG,UAAM,oBAAoB,KAAK,mBAAmB,aAAa,mBAAmB,kBAAkB;AAC9F,UAAA,eAAe,mBAAmB,gBAAgB;AAExD,UAAM,QAAQC,cAAA,cAAc,uBAAuB,mBAAmB,YAAY;AAElF,UAAM,eAAe,YAAY,UAAY,EAAA,UAAU,MAAM,YAAY;AAEzE,WAAO,kBAAkB,iBAAiB;AAAA,MACzC,MAAM;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGF,OAAc,2BACb,aACA,6BACC;AACD,UAAM,uBAAuBD,cAAA,cAAc,4BAA4B,6BAA6B,WAAW;AAE/G,WAAO,KAAK,mBAAmB,aAAa,qBAAqB,kBAAkB;AAAA,EAAA;AAAA,EAGpF,OAAc,0BACb,aACA,4BACC;AACD,UAAM,sBAAsBA,cAAA,cAAc,2BAA2B,4BAA4B,WAAW;AAC5G,UAAM,oBAAoB,KAAK,mBAAmB,aAAa,oBAAoB,kBAAkB;AAErG,UAAM,QAAQC,cAAAA,cAAc,cAAc,mBAAmB,oBAAoB,KAAK;AAEtF,WAAO,kBAAkB,iBAAiB;AAAA,MACzC,MAAM;AAAA,MACN,QAAQ,YAAY,eAAA,EAAiB;AAAA,MACrC;AAAA,IAAA,CACA;AAAA,EAAA;AAAA,EAGF,OAAe,mBACd,aACA,oBACc;AACd,eAAW,YAAY,oBAAoB;AACpC,YAAA,QAAQA,4BAAc,sBAAsB,aAAa,SAAS,OAAO,CAAC,CAAC,SAAS,SAAS;AACnG,YAAM,eAAe,YAAY,UAAY,EAAA,UAAU,MAAM,YAAY;AAEzE,oBAAc,YAAY,iBAAiB;AAAA,QAC1C,MAAM;AAAA,QACN;AAAA,QACA,QAAQ;AAAA,MAAA,CACR;AAAA,IAAA;AAEK,WAAA;AAAA,EAAA;AAGT;;"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { TreeNodeUtils } from "../utils/TreeNodeUtils.js";
|
|
2
|
-
import { whereToFilter } from "../utils/whereToFilter.js";
|
|
3
|
-
import { QueryLanguage } from "../queryLanguage/QueryLanguage.js";
|
|
4
|
-
class TreeNodeEnvironmentFactory {
|
|
5
|
-
static createEnvironmentForEntityListSubtree(environment, sugaredEntityList) {
|
|
6
|
-
let entityList;
|
|
7
|
-
let rootWhere;
|
|
8
|
-
let expectedCardinality;
|
|
9
|
-
if (sugaredEntityList.isCreating) {
|
|
10
|
-
entityList = QueryLanguage.desugarUnconstrainedQualifiedEntityList(sugaredEntityList, environment);
|
|
11
|
-
rootWhere = {};
|
|
12
|
-
expectedCardinality = "zero";
|
|
13
|
-
} else {
|
|
14
|
-
entityList = QueryLanguage.desugarQualifiedEntityList(sugaredEntityList, environment);
|
|
15
|
-
rootWhere = entityList.filter ?? {};
|
|
16
|
-
expectedCardinality = "zero-to-many";
|
|
17
|
-
}
|
|
18
|
-
const entitySchema = TreeNodeUtils.resolveEntity(environment.getSchema(), entityList.entityName, "entity list");
|
|
19
|
-
return environment.withSubTree({
|
|
20
|
-
type: "subtree-entity-list",
|
|
21
|
-
entity: entitySchema,
|
|
22
|
-
expectedCardinality,
|
|
23
|
-
filter: rootWhere
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
static createEnvironmentForEntitySubtree(environment, sugaredEntityList) {
|
|
27
|
-
let entity;
|
|
28
|
-
let rootWhere;
|
|
29
|
-
let expectedCardinality;
|
|
30
|
-
if (sugaredEntityList.isCreating) {
|
|
31
|
-
rootWhere = {};
|
|
32
|
-
expectedCardinality = "zero";
|
|
33
|
-
entity = QueryLanguage.desugarUnconstrainedQualifiedSingleEntity(sugaredEntityList, environment);
|
|
34
|
-
} else {
|
|
35
|
-
entity = QueryLanguage.desugarQualifiedSingleEntity(sugaredEntityList, environment);
|
|
36
|
-
rootWhere = whereToFilter(entity.where);
|
|
37
|
-
expectedCardinality = entity.setOnCreate ? "zero-or-one" : "one";
|
|
38
|
-
}
|
|
39
|
-
const entitySchema = TreeNodeUtils.resolveEntity(environment.getSchema(), entity.entityName, "entity");
|
|
40
|
-
return environment.withSubTree({
|
|
41
|
-
type: "subtree-entity",
|
|
42
|
-
entity: entitySchema,
|
|
43
|
-
expectedCardinality,
|
|
44
|
-
filter: rootWhere
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
static createEnvironmentForEntityList(environment, sugaredRelativeEntityList) {
|
|
48
|
-
const relativeEntityList = QueryLanguage.desugarRelativeEntityList(sugaredRelativeEntityList, environment);
|
|
49
|
-
const hasOneEnvironment = this.traverseHasOnePath(environment, relativeEntityList.hasOneRelationPath);
|
|
50
|
-
const hasManyField = relativeEntityList.hasManyRelation.field;
|
|
51
|
-
const field = TreeNodeUtils.resolveHasManyRelation(hasOneEnvironment, hasManyField);
|
|
52
|
-
const targetEntity = environment.getSchema().getEntity(field.targetEntity);
|
|
53
|
-
return hasOneEnvironment.withSubTreeChild({
|
|
54
|
-
type: "entity-list",
|
|
55
|
-
field,
|
|
56
|
-
entity: targetEntity
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
static createEnvironmentForEntity(environment, sugaredRelativeSingleEntity) {
|
|
60
|
-
const relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(sugaredRelativeSingleEntity, environment);
|
|
61
|
-
return this.traverseHasOnePath(environment, relativeSingleEntity.hasOneRelationPath);
|
|
62
|
-
}
|
|
63
|
-
static createEnvironmentForField(environment, sugaredRelativeSingleField) {
|
|
64
|
-
const relativeSingleField = QueryLanguage.desugarRelativeSingleField(sugaredRelativeSingleField, environment);
|
|
65
|
-
const hasOneEnvironment = this.traverseHasOnePath(environment, relativeSingleField.hasOneRelationPath);
|
|
66
|
-
const field = TreeNodeUtils.resolveColumn(hasOneEnvironment, relativeSingleField.field);
|
|
67
|
-
return hasOneEnvironment.withSubTreeChild({
|
|
68
|
-
type: "column",
|
|
69
|
-
entity: environment.getSubTreeNode().entity,
|
|
70
|
-
field
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
static traverseHasOnePath(environment, hasOneRelationPath) {
|
|
74
|
-
for (const pathItem of hasOneRelationPath) {
|
|
75
|
-
const field = TreeNodeUtils.resolveHasOneRelation(environment, pathItem.field, !!pathItem.reducedBy);
|
|
76
|
-
const targetEntity = environment.getSchema().getEntity(field.targetEntity);
|
|
77
|
-
environment = environment.withSubTreeChild({
|
|
78
|
-
type: "entity",
|
|
79
|
-
field,
|
|
80
|
-
entity: targetEntity
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return environment;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
export {
|
|
87
|
-
TreeNodeEnvironmentFactory
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=TreeNodeEnvironmentFactory.js.map
|