@contember/binding-common 2.1.0-alpha.9 → 2.1.0-beta.1
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/dist/development/index.cjs +43 -43
- package/dist/development/index.js +16 -16
- package/dist/development/src/BindingError.cjs.map +1 -1
- package/dist/development/src/BindingError.js.map +1 -1
- package/dist/development/src/DataBindingExtendAborted.cjs +1 -1
- package/dist/development/src/DataBindingExtendAborted.cjs.map +1 -1
- package/dist/development/src/DataBindingExtendAborted.js +1 -1
- package/dist/development/src/DataBindingExtendAborted.js.map +1 -1
- package/dist/development/src/LocalizedBindingError.cjs.map +1 -1
- package/dist/development/src/LocalizedBindingError.js.map +1 -1
- package/dist/development/src/RuntimeId.cjs.map +1 -1
- package/dist/development/src/RuntimeId.js.map +1 -1
- package/dist/development/src/environment/Environment.cjs +4 -2
- package/dist/development/src/environment/Environment.cjs.map +1 -1
- package/dist/development/src/environment/Environment.js +4 -2
- package/dist/development/src/environment/Environment.js.map +1 -1
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -1
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js.map +1 -1
- package/dist/development/src/environment/VariableFieldValue.cjs.map +1 -1
- package/dist/development/src/environment/VariableFieldValue.js.map +1 -1
- package/dist/development/src/environment/VariableInputTransformer.cjs.map +1 -1
- package/dist/development/src/environment/VariableInputTransformer.js.map +1 -1
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs.map +1 -1
- package/dist/development/src/markers/EntityFieldMarkersContainer.js.map +1 -1
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -1
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -1
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs.map +1 -1
- package/dist/development/src/markers/EntityListSubTreeMarker.js.map +1 -1
- package/dist/development/src/markers/EntitySubTreeMarker.cjs.map +1 -1
- package/dist/development/src/markers/EntitySubTreeMarker.js.map +1 -1
- package/dist/development/src/markers/FieldMarker.cjs.map +1 -1
- package/dist/development/src/markers/FieldMarker.js.map +1 -1
- package/dist/development/src/markers/HasManyRelationMarker.cjs.map +1 -1
- package/dist/development/src/markers/HasManyRelationMarker.js.map +1 -1
- package/dist/development/src/markers/HasOneRelationMarker.cjs.map +1 -1
- package/dist/development/src/markers/HasOneRelationMarker.js.map +1 -1
- package/dist/development/src/markers/MarkerComparator.cjs +1 -1
- package/dist/development/src/markers/MarkerComparator.cjs.map +1 -1
- package/dist/development/src/markers/MarkerComparator.js +1 -1
- package/dist/development/src/markers/MarkerComparator.js.map +1 -1
- package/dist/development/src/markers/MarkerMerger.cjs.map +1 -1
- package/dist/development/src/markers/MarkerMerger.js.map +1 -1
- package/dist/development/src/markers/MarkerTreeRoot.cjs.map +1 -1
- package/dist/development/src/markers/MarkerTreeRoot.js.map +1 -1
- package/dist/development/src/markers/PlaceholderGenerator.cjs.map +1 -1
- package/dist/development/src/markers/PlaceholderGenerator.js.map +1 -1
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs.map +1 -1
- package/dist/development/src/markers/PlaceholderParametersGenerator.js.map +1 -1
- package/dist/development/src/queryLanguage/CacheStore.cjs.map +1 -1
- package/dist/development/src/queryLanguage/CacheStore.js.map +1 -1
- package/dist/development/src/queryLanguage/MarkerFactory.cjs.map +1 -1
- package/dist/development/src/queryLanguage/MarkerFactory.js.map +1 -1
- package/dist/development/src/queryLanguage/Parser.cjs +4 -12
- package/dist/development/src/queryLanguage/Parser.cjs.map +1 -1
- package/dist/development/src/queryLanguage/Parser.js +5 -13
- package/dist/development/src/queryLanguage/Parser.js.map +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.cjs +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.js +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.js.map +1 -1
- package/dist/development/src/queryLanguage/tokenList.cjs.map +1 -1
- package/dist/development/src/queryLanguage/tokenList.js.map +1 -1
- package/dist/development/src/schema/Schema.cjs.map +1 -1
- package/dist/development/src/schema/Schema.js.map +1 -1
- package/dist/development/src/schema/SchemaLoader.cjs.map +1 -1
- package/dist/development/src/schema/SchemaLoader.js.map +1 -1
- package/dist/development/src/schema/SchemaPreprocessor.cjs.map +1 -1
- package/dist/development/src/schema/SchemaPreprocessor.js.map +1 -1
- package/dist/development/src/treeParameters/EventListenersStore.cjs.map +1 -1
- package/dist/development/src/treeParameters/EventListenersStore.js.map +1 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs +3 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs.map +1 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.js +3 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.js.map +1 -1
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -1
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -1
- package/dist/development/src/types/EntityAccessor.cjs.map +1 -1
- package/dist/development/src/types/EntityAccessor.js.map +1 -1
- package/dist/development/src/types/EntityListAccessor.cjs.map +1 -1
- package/dist/development/src/types/EntityListAccessor.js.map +1 -1
- package/dist/development/src/types/ErrorAccessor.cjs.map +1 -1
- package/dist/development/src/types/ErrorAccessor.js.map +1 -1
- package/dist/development/src/types/FieldAccessor.cjs.map +1 -1
- package/dist/development/src/types/FieldAccessor.js.map +1 -1
- package/dist/development/src/types/PersistResult.cjs.map +1 -1
- package/dist/development/src/types/PersistResult.js.map +1 -1
- package/dist/development/src/types/TreeRootAccessor.cjs.map +1 -1
- package/dist/development/src/types/TreeRootAccessor.js.map +1 -1
- package/dist/development/src/utils/Hashing.cjs.map +1 -1
- package/dist/development/src/utils/Hashing.js.map +1 -1
- package/dist/development/src/utils/TreeNodeUtils.cjs +1 -1
- package/dist/development/src/utils/TreeNodeUtils.cjs.map +1 -1
- package/dist/development/src/utils/TreeNodeUtils.js +1 -1
- package/dist/development/src/utils/TreeNodeUtils.js.map +1 -1
- package/dist/development/src/utils/assertNever.cjs.map +1 -1
- package/dist/development/src/utils/assertNever.js.map +1 -1
- package/dist/development/src/utils/createQueryBuilder.cjs +25 -21
- package/dist/development/src/utils/createQueryBuilder.cjs.map +1 -1
- package/dist/development/src/utils/createQueryBuilder.js +25 -21
- package/dist/development/src/utils/createQueryBuilder.js.map +1 -1
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -1
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -1
- package/dist/development/src/utils/whereToFilter.cjs.map +1 -1
- package/dist/development/src/utils/whereToFilter.js.map +1 -1
- package/dist/production/index.cjs +43 -43
- package/dist/production/index.js +16 -16
- package/dist/production/src/BindingError.cjs.map +1 -1
- package/dist/production/src/BindingError.js.map +1 -1
- package/dist/production/src/DataBindingExtendAborted.cjs +1 -1
- package/dist/production/src/DataBindingExtendAborted.cjs.map +1 -1
- package/dist/production/src/DataBindingExtendAborted.js +1 -1
- package/dist/production/src/DataBindingExtendAborted.js.map +1 -1
- package/dist/production/src/LocalizedBindingError.cjs.map +1 -1
- package/dist/production/src/LocalizedBindingError.js.map +1 -1
- package/dist/production/src/RuntimeId.cjs.map +1 -1
- package/dist/production/src/RuntimeId.js.map +1 -1
- package/dist/production/src/environment/Environment.cjs +4 -2
- package/dist/production/src/environment/Environment.cjs.map +1 -1
- package/dist/production/src/environment/Environment.js +4 -2
- package/dist/production/src/environment/Environment.js.map +1 -1
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -1
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js.map +1 -1
- package/dist/production/src/environment/VariableFieldValue.cjs.map +1 -1
- package/dist/production/src/environment/VariableFieldValue.js.map +1 -1
- package/dist/production/src/environment/VariableInputTransformer.cjs.map +1 -1
- package/dist/production/src/environment/VariableInputTransformer.js.map +1 -1
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs.map +1 -1
- package/dist/production/src/markers/EntityFieldMarkersContainer.js.map +1 -1
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -1
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -1
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs.map +1 -1
- package/dist/production/src/markers/EntityListSubTreeMarker.js.map +1 -1
- package/dist/production/src/markers/EntitySubTreeMarker.cjs.map +1 -1
- package/dist/production/src/markers/EntitySubTreeMarker.js.map +1 -1
- package/dist/production/src/markers/FieldMarker.cjs.map +1 -1
- package/dist/production/src/markers/FieldMarker.js.map +1 -1
- package/dist/production/src/markers/HasManyRelationMarker.cjs.map +1 -1
- package/dist/production/src/markers/HasManyRelationMarker.js.map +1 -1
- package/dist/production/src/markers/HasOneRelationMarker.cjs.map +1 -1
- package/dist/production/src/markers/HasOneRelationMarker.js.map +1 -1
- package/dist/production/src/markers/MarkerComparator.cjs +1 -1
- package/dist/production/src/markers/MarkerComparator.cjs.map +1 -1
- package/dist/production/src/markers/MarkerComparator.js +1 -1
- package/dist/production/src/markers/MarkerComparator.js.map +1 -1
- package/dist/production/src/markers/MarkerMerger.cjs.map +1 -1
- package/dist/production/src/markers/MarkerMerger.js.map +1 -1
- package/dist/production/src/markers/MarkerTreeRoot.cjs.map +1 -1
- package/dist/production/src/markers/MarkerTreeRoot.js.map +1 -1
- package/dist/production/src/markers/PlaceholderGenerator.cjs.map +1 -1
- package/dist/production/src/markers/PlaceholderGenerator.js.map +1 -1
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs.map +1 -1
- package/dist/production/src/markers/PlaceholderParametersGenerator.js.map +1 -1
- package/dist/production/src/queryLanguage/CacheStore.cjs.map +1 -1
- package/dist/production/src/queryLanguage/CacheStore.js.map +1 -1
- package/dist/production/src/queryLanguage/MarkerFactory.cjs.map +1 -1
- package/dist/production/src/queryLanguage/MarkerFactory.js.map +1 -1
- package/dist/production/src/queryLanguage/Parser.cjs +4 -12
- package/dist/production/src/queryLanguage/Parser.cjs.map +1 -1
- package/dist/production/src/queryLanguage/Parser.js +5 -13
- package/dist/production/src/queryLanguage/Parser.js.map +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.cjs +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.js +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.js.map +1 -1
- package/dist/production/src/queryLanguage/tokenList.cjs.map +1 -1
- package/dist/production/src/queryLanguage/tokenList.js.map +1 -1
- package/dist/production/src/schema/Schema.cjs.map +1 -1
- package/dist/production/src/schema/Schema.js.map +1 -1
- package/dist/production/src/schema/SchemaLoader.cjs.map +1 -1
- package/dist/production/src/schema/SchemaLoader.js.map +1 -1
- package/dist/production/src/schema/SchemaPreprocessor.cjs.map +1 -1
- package/dist/production/src/schema/SchemaPreprocessor.js.map +1 -1
- package/dist/production/src/treeParameters/EventListenersStore.cjs.map +1 -1
- package/dist/production/src/treeParameters/EventListenersStore.js.map +1 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs +3 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs.map +1 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.js +3 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.js.map +1 -1
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -1
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -1
- package/dist/production/src/types/EntityAccessor.cjs.map +1 -1
- package/dist/production/src/types/EntityAccessor.js.map +1 -1
- package/dist/production/src/types/EntityListAccessor.cjs.map +1 -1
- package/dist/production/src/types/EntityListAccessor.js.map +1 -1
- package/dist/production/src/types/ErrorAccessor.cjs.map +1 -1
- package/dist/production/src/types/ErrorAccessor.js.map +1 -1
- package/dist/production/src/types/FieldAccessor.cjs.map +1 -1
- package/dist/production/src/types/FieldAccessor.js.map +1 -1
- package/dist/production/src/types/PersistResult.cjs.map +1 -1
- package/dist/production/src/types/PersistResult.js.map +1 -1
- package/dist/production/src/types/TreeRootAccessor.cjs.map +1 -1
- package/dist/production/src/types/TreeRootAccessor.js.map +1 -1
- package/dist/production/src/utils/Hashing.cjs.map +1 -1
- package/dist/production/src/utils/Hashing.js.map +1 -1
- package/dist/production/src/utils/TreeNodeUtils.cjs +1 -1
- package/dist/production/src/utils/TreeNodeUtils.cjs.map +1 -1
- package/dist/production/src/utils/TreeNodeUtils.js +1 -1
- package/dist/production/src/utils/TreeNodeUtils.js.map +1 -1
- package/dist/production/src/utils/assertNever.cjs.map +1 -1
- package/dist/production/src/utils/assertNever.js.map +1 -1
- package/dist/production/src/utils/createQueryBuilder.cjs +25 -21
- package/dist/production/src/utils/createQueryBuilder.cjs.map +1 -1
- package/dist/production/src/utils/createQueryBuilder.js +25 -21
- package/dist/production/src/utils/createQueryBuilder.js.map +1 -1
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -1
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -1
- package/dist/production/src/utils/whereToFilter.cjs.map +1 -1
- package/dist/production/src/utils/whereToFilter.js.map +1 -1
- package/dist/types/LocalizedBindingError.d.ts.map +1 -1
- package/dist/types/environment/Environment.d.ts.map +1 -1
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +1 -1
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +1 -1
- package/dist/types/queryLanguage/MarkerFactory.d.ts.map +1 -1
- package/dist/types/queryLanguage/Parser.d.ts.map +1 -1
- package/dist/types/queryLanguage/ParserResults.d.ts.map +1 -1
- package/dist/types/queryLanguage/QueryLanguage.d.ts +1 -1
- package/dist/types/queryLanguage/QueryLanguage.d.ts.map +1 -1
- package/dist/types/schema/Schema.d.ts.map +1 -1
- package/dist/types/schema/SchemaLoader.d.ts.map +1 -1
- package/dist/types/treeParameters/EventListenersStore.d.ts.map +1 -1
- package/dist/types/treeParameters/Normalized.d.ts.map +1 -1
- package/dist/types/treeParameters/Sugared.d.ts.map +1 -1
- package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +1 -1
- package/dist/types/treeParameters/index.d.ts.map +1 -1
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types/EntityAccessor.d.ts.map +1 -1
- package/dist/types/types/EntityListAccessor.d.ts +1 -1
- package/dist/types/types/EntityListAccessor.d.ts.map +1 -1
- package/dist/types/types/ErrorAccessor.d.ts.map +1 -1
- package/dist/types/types/FieldAccessor.d.ts +1 -1
- package/dist/types/types/FieldAccessor.d.ts.map +1 -1
- package/dist/types/types/GetEntityListSubTree.d.ts.map +1 -1
- package/dist/types/types/GetEntitySubTree.d.ts.map +1 -1
- package/dist/types/types/PersistErrorOptions.d.ts.map +1 -1
- package/dist/types/types/PersistResult.d.ts.map +1 -1
- package/dist/types/utils/TreeNodeUtils.d.ts.map +1 -1
- package/dist/types/utils/createQueryBuilder.d.ts.map +1 -1
- package/package.json +14 -9
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryLanguage.js","sources":["../../../../../packages/binding-common/src/queryLanguage/QueryLanguage.ts"],"sourcesContent":["import type { Environment } from '../environment'\nimport {\n\tAlias,\n\tEntityCreationParametersDefaults,\n\tEntityEventListenerStore,\n\tEntityListEventListenerStore,\n\tEntityListPreferencesDefaults,\n\tEntityName,\n\tEventListenersStore,\n\tFieldEventListenerStore,\n\tFieldName,\n\tFilter,\n\tHasManyRelation,\n\tHasOneRelation,\n\tLeafFieldDefaults,\n\tParentEntityParameters,\n\tQualifiedEntityList,\n\tQualifiedEntityParametersDefaults,\n\tQualifiedFieldList,\n\tQualifiedSingleEntity,\n\tRelationDefaults,\n\tRelativeEntityList,\n\tRelativeSingleEntity,\n\tRelativeSingleField,\n\tSugarableHasManyRelation,\n\tSugarableHasOneRelation,\n\tSugaredFilter,\n\tSugaredParentEntityParameters,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedFieldList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredSetOnCreate,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n\tUniqueWhere,\n\tUnsugarableEntityListEventListeners,\n\tUnsugarableFieldEventListeners,\n\tUnsugarableSingleEntityEventListeners,\n} from '../treeParameters'\nimport { Parser } from './Parser'\nimport { ParsedHasManyRelation, ParsedHasOneRelation } from './ParserResults'\nimport { TokenRegExps } from './tokenList'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'\nimport { VariableInputTransformer } from '../environment/VariableInputTransformer'\n\nconst emptyObject = Object.freeze({})\n\nexport class QueryLanguage {\n\n\tprivate static preparePrimitiveEntryPoint<Entry extends Parser.EntryPoint>(entryPoint: Entry) {\n\t\treturn (input: string, environment: Environment): Parser.ParserResult[Entry] =>\n\t\t\tParser.parseQueryLanguageExpression(input, entryPoint, environment)\n\t}\n\n\tprivate static preparePrimitiveEntryPointWithFallback<Entry extends Parser.EntryPoint>(entryPoint: Entry) {\n\t\treturn (input: string | Parser.ParserResult[Entry], environment: Environment): Parser.ParserResult[Entry] => {\n\t\t\tif (typeof input === 'string') {\n\t\t\t\treturn Parser.parseQueryLanguageExpression(input, entryPoint, environment)\n\t\t\t}\n\t\t\treturn input\n\t\t}\n\t}\n\n\tprivate static parseUnconstrainedQualifiedEntityList = QueryLanguage.preparePrimitiveEntryPoint('unconstrainedQualifiedEntityList')\n\tprivate static parseUnconstrainedQualifiedSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('unconstrainedQualifiedEntityList')\n\tprivate static parseQualifiedEntityList = QueryLanguage.preparePrimitiveEntryPoint('qualifiedEntityList')\n\tprivate static parseQualifiedFieldList = QueryLanguage.preparePrimitiveEntryPoint('qualifiedFieldList')\n\tprivate static parseQualifiedSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('qualifiedSingleEntity')\n\tprivate static parseRelativeEntityList = QueryLanguage.preparePrimitiveEntryPoint('relativeEntityList')\n\tprivate static parseRelativeSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('relativeSingleEntity')\n\tprivate static parseRelativeSingleField = QueryLanguage.preparePrimitiveEntryPoint('relativeSingleField')\n\n\tpublic static desugarUniqueWhere = QueryLanguage.preparePrimitiveEntryPointWithFallback('uniqueWhere')\n\tpublic static desugarFilter = QueryLanguage.preparePrimitiveEntryPointWithFallback('filter')\n\tpublic static desugarOrderBy = QueryLanguage.preparePrimitiveEntryPointWithFallback('orderBy')\n\tpublic static desugarTaggedMap = QueryLanguage.preparePrimitiveEntryPointWithFallback('taggedMap')\n\n\n\tpublic static desugarSetOnCreate(setOnCreate: SugaredSetOnCreate, environment: Environment): UniqueWhere {\n\t\tif (Array.isArray(setOnCreate)) {\n\t\t\tconst whereList = setOnCreate.map(connection => this.desugarUniqueWhere(connection, environment))\n\t\t\treturn whereList.reduce(\n\t\t\t\t(accumulator, uniqueWhere) => TreeParameterMerger.mergeSetOnCreate(accumulator, uniqueWhere)!,\n\t\t\t)\n\t\t}\n\t\tif (typeof setOnCreate === 'string') {\n\t\t\treturn this.desugarUniqueWhere(setOnCreate, environment)\n\t\t}\n\t\treturn setOnCreate\n\t}\n\n\tpublic static desugarEventListener<F extends Function>(listener: F | Set<F>): Set<F>\n\tpublic static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined\n\tpublic static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined {\n\t\tif (typeof listener === 'function') {\n\t\t\treturn new Set([listener])\n\t\t}\n\t\treturn listener\n\t}\n\n\tprivate static desugarSingleEntityEventListeners(\n\t\tunsugarable: UnsugarableSingleEntityEventListeners,\n\t): EntityEventListenerStore | undefined {\n\t\tif (\n\t\t\tunsugarable.onBeforePersist === undefined &&\n\t\t\tunsugarable.onBeforeUpdate === undefined &&\n\t\t\tunsugarable.onInitialize === undefined &&\n\t\t\tunsugarable.onPersistError === undefined &&\n\t\t\tunsugarable.onPersistSuccess === undefined &&\n\t\t\tunsugarable.onUpdate === undefined\n\t\t) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst store: EntityEventListenerStore = new EventListenersStore()\n\n\t\tif (unsugarable.onConnectionUpdate) {\n\t\t\tfor (const fieldName in unsugarable.onConnectionUpdate) {\n\t\t\t\tconst listener = this.desugarEventListener(unsugarable.onConnectionUpdate[fieldName])\n\t\t\t\tstore.set({ type: 'connectionUpdate', key: fieldName }, listener)\n\t\t\t}\n\t\t}\n\n\t\tconst beforePersist = this.desugarEventListener(unsugarable.onBeforePersist)\n\t\tconst beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)\n\t\tconst initialize = this.desugarEventListener(unsugarable.onInitialize)\n\t\tconst persistError = this.desugarEventListener(unsugarable.onPersistError)\n\t\tconst persistSuccess = this.desugarEventListener(unsugarable.onPersistSuccess)\n\t\tconst update = this.desugarEventListener(unsugarable.onUpdate)\n\n\t\tif (beforePersist) {\n\t\t\tstore.set({ type: 'beforePersist' }, beforePersist)\n\t\t}\n\t\tif (beforeUpdate) {\n\t\t\tstore.set({ type: 'beforeUpdate' }, beforeUpdate)\n\t\t}\n\t\tif (initialize) {\n\t\t\tstore.set({ type: 'initialize' }, initialize)\n\t\t}\n\t\tif (persistError) {\n\t\t\tstore.set({ type: 'persistError' }, persistError)\n\t\t}\n\t\tif (persistSuccess) {\n\t\t\tstore.set({ type: 'persistSuccess' }, persistSuccess)\n\t\t}\n\t\tif (update) {\n\t\t\tstore.set({ type: 'update' }, update)\n\t\t}\n\n\t\treturn store\n\t}\n\n\tprivate static desugarEntityListEventListeners(unsugarable: UnsugarableEntityListEventListeners):\n\t\t| {\n\t\t\teventListeners: EntityListEventListenerStore | undefined\n\t\t\tchildEventListeners: EntityEventListenerStore | undefined\n\t\t }\n\t\t| undefined {\n\t\tif (\n\t\t\tunsugarable.onBeforePersist === undefined &&\n\t\t\tunsugarable.onBeforeUpdate === undefined &&\n\t\t\tunsugarable.onChildBeforeUpdate === undefined &&\n\t\t\tunsugarable.onChildInitialize === undefined &&\n\t\t\tunsugarable.onChildUpdate === undefined &&\n\t\t\tunsugarable.onInitialize === undefined &&\n\t\t\tunsugarable.onPersistError === undefined &&\n\t\t\tunsugarable.onPersistSuccess === undefined &&\n\t\t\tunsugarable.onUpdate === undefined\n\t\t) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst eventListeners: EntityListEventListenerStore = new EventListenersStore()\n\n\t\tconst beforePersist = this.desugarEventListener(unsugarable.onBeforePersist)\n\t\tconst beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)\n\t\tconst initialize = this.desugarEventListener(unsugarable.onInitialize)\n\t\tconst persistError = this.desugarEventListener(unsugarable.onPersistError)\n\t\tconst persistSuccess = this.desugarEventListener(unsugarable.onPersistSuccess)\n\t\tconst update = this.desugarEventListener(unsugarable.onUpdate)\n\n\t\tif (beforePersist) {\n\t\t\teventListeners.set({ type: 'beforePersist' }, beforePersist)\n\t\t}\n\t\tif (beforeUpdate) {\n\t\t\teventListeners.set({ type: 'beforeUpdate' }, beforeUpdate)\n\t\t}\n\t\tif (initialize) {\n\t\t\teventListeners.set({ type: 'initialize' }, initialize)\n\t\t}\n\t\tif (persistError) {\n\t\t\teventListeners.set({ type: 'persistError' }, persistError)\n\t\t}\n\t\tif (persistSuccess) {\n\t\t\teventListeners.set({ type: 'persistSuccess' }, persistSuccess)\n\t\t}\n\t\tif (update) {\n\t\t\teventListeners.set({ type: 'update' }, update)\n\t\t}\n\n\t\tconst childEventListeners: EntityEventListenerStore = new EventListenersStore()\n\n\t\tconst childBeforeUpdate = this.desugarEventListener(unsugarable.onChildBeforeUpdate)\n\t\tconst childInitialize = this.desugarEventListener(unsugarable.onChildInitialize)\n\t\tconst childUpdate = this.desugarEventListener(unsugarable.onChildUpdate)\n\n\t\tif (childBeforeUpdate) {\n\t\t\tchildEventListeners.set({ type: 'beforeUpdate' }, childBeforeUpdate)\n\t\t}\n\t\tif (childInitialize) {\n\t\t\tchildEventListeners.set({ type: 'initialize' }, childInitialize)\n\t\t}\n\t\tif (childUpdate) {\n\t\t\tchildEventListeners.set({ type: 'update' }, childUpdate)\n\t\t}\n\n\t\treturn {\n\t\t\teventListeners,\n\t\t\tchildEventListeners,\n\t\t}\n\t}\n\n\tprivate static desugarFieldEventListeners(\n\t\tunsugarable: UnsugarableFieldEventListeners,\n\t): FieldEventListenerStore | undefined {\n\t\tif (unsugarable.onBeforeUpdate === undefined && unsugarable.onUpdate === undefined) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst store: FieldEventListenerStore = new EventListenersStore()\n\n\t\tconst beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)\n\t\tconst update = this.desugarEventListener(unsugarable.onUpdate)\n\n\t\tif (beforeUpdate) {\n\t\t\tstore.set({ type: 'beforeUpdate' }, beforeUpdate)\n\t\t}\n\t\tif (update) {\n\t\t\tstore.set({ type: 'update' }, update)\n\t\t}\n\n\t\treturn store\n\t}\n\n\tprivate static desugarSubTreeAlias(alias: Alias | Set<Alias> | undefined): Set<Alias> | undefined {\n\t\tif (alias === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (alias instanceof Set) {\n\t\t\treturn alias\n\t\t}\n\t\treturn new Set<Alias>().add(alias)\n\t}\n\n\tprivate static desugarHasOneRelation(\n\t\tsugarable: SugarableHasOneRelation,\n\t\tunsugarable: Omit<SugaredRelativeSingleEntity, 'field'>,\n\t\tenvironment: Environment,\n\t): HasOneRelation {\n\t\treturn {\n\t\t\tfield: sugarable.field,\n\t\t\tfilter: sugarable.filter ? this.desugarFilter(sugarable.filter, environment) : undefined,\n\t\t\texpectedMutation: unsugarable.expectedMutation ?? RelationDefaults.expectedMutation,\n\t\t\treducedBy: sugarable.reducedBy ? this.desugarUniqueWhere(sugarable.reducedBy, environment) : undefined,\n\t\t\tsetOnCreate: unsugarable.setOnCreate ? this.desugarSetOnCreate(unsugarable.setOnCreate, environment) : undefined,\n\t\t\tisNonbearing: unsugarable.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\tmeta: unsugarable.withMeta ?? [],\n\t\t\t// forceCreation: unsugarable.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\teventListeners: this.desugarSingleEntityEventListeners(unsugarable),\n\t\t}\n\t}\n\n\tprivate static augmentDesugaredHasOneRelationPath(\n\t\tpath: (ParsedHasOneRelation | string)[],\n\t\tunsugarable: Omit<SugaredRelativeSingleEntity, 'field'>,\n\t\tenvironment: Environment,\n\t): HasOneRelation[] {\n\t\treturn path.map((desugaredHasOneRelation, i) =>\n\t\t\t// Unsugarable applies to the last\n\t\t\tthis.desugarHasOneRelation(\n\t\t\t\ttypeof desugaredHasOneRelation === 'string' ? { field: desugaredHasOneRelation } : desugaredHasOneRelation,\n\t\t\t\ti === path.length - 1 ? unsugarable : {},\n\t\t\t\tenvironment,\n\t\t\t),\n\t\t)\n\t}\n\n\tprivate static augmentDesugaredHasManyRelation(\n\t\trelation: ParsedHasManyRelation,\n\t\tunsugarable: Omit<SugaredRelativeEntityList, 'field'>,\n\t\tenvironment: Environment,\n\t): HasManyRelation {\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarable)\n\t\treturn {\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\texpectedMutation: unsugarable.expectedMutation ?? RelationDefaults.expectedMutation,\n\t\t\tisNonbearing: unsugarable.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarable.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tinitialEntityCount: unsugarable.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\tsetOnCreate: unsugarable.setOnCreate ? this.desugarSetOnCreate(unsugarable.setOnCreate, environment) : undefined,\n\t\t\tmeta: unsugarable.withMeta ?? [],\n\t\t\torderBy: unsugarable.orderBy ? this.desugarOrderBy(unsugarable.orderBy, environment) : undefined,\n\t\t\toffset: unsugarable.offset,\n\t\t\tlimit: unsugarable.limit,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t}\n\t}\n\n\tprivate static desugarHasOneRelationPath(\n\t\tinput: SugarableHasOneRelation[] | SugarableHasOneRelation | undefined,\n\t\tlastRelation: Omit<SugaredRelativeSingleEntity, 'field'>,\n\t\tenvironment: Environment,\n\t): HasOneRelation[] {\n\t\tif (input === undefined) {\n\t\t\tinput = []\n\t\t} else if (!Array.isArray(input)) {\n\t\t\tinput = [input]\n\t\t}\n\n\t\tconst relationPath: HasOneRelation[] = []\n\n\t\tconst cappedLength = input.length - 1\n\t\tlet i = 0\n\t\tfor (; i < cappedLength; i++) {\n\t\t\t// Deliberately leaving out the last element\n\t\t\tconst pathNode = input[i]\n\n\t\t\trelationPath.push(this.desugarHasOneRelation(pathNode, {}, environment))\n\t\t}\n\t\tif (i in input) {\n\t\t\trelationPath.push(this.desugarHasOneRelation(input[i], lastRelation, environment))\n\t\t}\n\n\t\treturn relationPath\n\t}\n\n\tprivate static desugarHasManyRelation(\n\t\tsugarablePart: SugarableHasManyRelation,\n\t\tunsugarablePart: Omit<SugaredRelativeEntityList, 'field'>,\n\t\tenvironment: Environment,\n\t): HasManyRelation {\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarablePart)\n\t\treturn {\n\n\t\t\tfilter: sugarablePart.filter ? this.desugarFilter(sugarablePart.filter, environment) : undefined,\n\t\t\tlimit: unsugarablePart.limit,\n\t\t\toffset: unsugarablePart.offset,\n\t\t\torderBy: unsugarablePart.orderBy ? this.desugarOrderBy(unsugarablePart.orderBy, environment) : undefined,\n\t\t\tinitialEntityCount: unsugarablePart.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\texpectedMutation: unsugarablePart.expectedMutation ?? RelationDefaults.expectedMutation,\n\t\t\tsetOnCreate: unsugarablePart.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarablePart.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\tmeta: unsugarablePart.withMeta ?? [],\n\t\t\tfield: sugarablePart.field,\n\t\t\tisNonbearing: unsugarablePart.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarablePart.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t}\n\t}\n\n\tpublic static desugarUnconstrainedQualifiedEntityList(\n\t\t{ entities, ...unsugarableEntityList }: SugaredUnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): UnconstrainedQualifiedEntityList {\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet entityName: EntityName\n\n\t\tif (typeof entities === 'string') {\n\t\t\tconst parsed = this.parseUnconstrainedQualifiedEntityList(entities, environment)\n\t\t\tentityName = parsed.entityName\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entities.entityName\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(entities.hasOneRelationPath, emptyObject, environment)\n\t\t}\n\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarableEntityList)\n\n\t\treturn {\n\t\t\tisCreating: true,\n\t\t\tisUnpersisted: unsugarableEntityList.isUnpersisted ?? false,\n\t\t\tisNonbearing: unsugarableEntityList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableEntityList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tsetOnCreate: unsugarableEntityList.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarableEntityList.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableEntityList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t\tinitialEntityCount: unsugarableEntityList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\talias: this.desugarSubTreeAlias(unsugarableEntityList.alias),\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n\n\tpublic static desugarUnconstrainedQualifiedSingleEntity(\n\t\t{ entity, ...unsugarableSingleEntity }: SugaredUnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): UnconstrainedQualifiedSingleEntity {\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet entityName: EntityName\n\n\t\tif (typeof entity === 'string') {\n\t\t\tconst parsed = this.parseUnconstrainedQualifiedSingleEntity(entity, environment)\n\t\t\tentityName = parsed.entityName\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entity.entityName\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(\n\t\t\t\tentity.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tisCreating: true,\n\t\t\tisUnpersisted: unsugarableSingleEntity.isUnpersisted ?? false,\n\t\t\tisNonbearing: unsugarableSingleEntity.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableSingleEntity.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tsetOnCreate: unsugarableSingleEntity.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\teventListeners: this.desugarSingleEntityEventListeners(unsugarableSingleEntity),\n\t\t\talias: this.desugarSubTreeAlias(unsugarableSingleEntity.alias),\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n\n\tpublic static desugarQualifiedEntityList(\n\t\t{ entities, ...unsugarableEntityList }: SugaredQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): QualifiedEntityList {\n\t\tlet entityName: EntityName\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\n\t\tlet filter: SugaredFilter | undefined\n\n\t\tif (typeof entities === 'string') {\n\t\t\tconst parsed = this.parseQualifiedEntityList(entities, environment)\n\n\t\t\tentityName = parsed.entityName\n\t\t\tfilter = parsed.filter\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entities.entityName\n\t\t\tfilter = entities.filter\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(entities.hasOneRelationPath, emptyObject, environment)\n\t\t}\n\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarableEntityList)\n\n\t\treturn {\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t\tfilter: filter ? this.desugarFilter(filter, environment) : undefined,\n\t\t\tlimit: unsugarableEntityList.limit,\n\t\t\toffset: unsugarableEntityList.offset,\n\t\t\torderBy: unsugarableEntityList.orderBy ? this.desugarOrderBy(unsugarableEntityList.orderBy, environment) : undefined,\n\t\t\tinitialEntityCount: unsugarableEntityList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\talias: this.desugarSubTreeAlias(unsugarableEntityList.alias),\n\t\t\tisCreating: false,\n\t\t\tisNonbearing: unsugarableEntityList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableEntityList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tsetOnCreate: unsugarableEntityList.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarableEntityList.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableEntityList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t}\n\t}\n\n\tpublic static desugarQualifiedFieldList(\n\t\t{ fields, ...unsugarableFieldList }: SugaredQualifiedFieldList,\n\t\tenvironment: Environment,\n\t): QualifiedFieldList {\n\t\tlet field: FieldName\n\t\tlet entityName: EntityName\n\t\tlet filter: SugaredFilter | undefined\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\n\t\tif (typeof fields === 'string') {\n\t\t\tconst parsed = this.parseQualifiedFieldList(fields, environment)\n\n\t\t\tfield = parsed.field\n\t\t\tentityName = parsed.entityName\n\t\t\tfilter = parsed.filter\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tfield = fields.field\n\t\t\tentityName = fields.entityName\n\t\t\tfilter = fields.filter\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(fields.hasOneRelationPath, emptyObject, environment)\n\t\t}\n\n\t\treturn {\n\t\t\tfield,\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t\talias: this.desugarSubTreeAlias(unsugarableFieldList.alias),\n\t\t\tisNonbearing: unsugarableFieldList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableFieldList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tdefaultValue:\n\t\t\t\tunsugarableFieldList.defaultValue !== undefined\n\t\t\t\t\t? VariableInputTransformer.transformValue(unsugarableFieldList.defaultValue, environment)\n\t\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableFieldList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\teventListeners: this.desugarFieldEventListeners(unsugarableFieldList),\n\t\t\tfilter: filter ? this.desugarFilter(filter, environment) : undefined,\n\t\t\tlimit: unsugarableFieldList.limit,\n\t\t\toffset: unsugarableFieldList.offset,\n\t\t\torderBy: unsugarableFieldList.orderBy ? this.desugarOrderBy(unsugarableFieldList.orderBy, environment) : undefined,\n\t\t\tinitialEntityCount: unsugarableFieldList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t}\n\t}\n\n\tpublic static desugarQualifiedSingleEntity(\n\t\t{ entity, ...unsugarableSingleEntity }: SugaredQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): QualifiedSingleEntity {\n\t\tlet entityName: EntityName\n\t\tlet where: UniqueWhere\n\t\tlet filter: Filter | undefined\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\n\t\tif (typeof entity === 'string') {\n\t\t\tconst parsed = this.parseQualifiedSingleEntity(entity, environment)\n\n\t\t\tentityName = parsed.entityName\n\t\t\twhere = parsed.where\n\t\t\tfilter = parsed.filter\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entity.entityName\n\t\t\twhere = this.desugarUniqueWhere(entity.where, environment)\n\t\t\tfilter = entity.filter ? this.desugarFilter(entity.filter, environment) : undefined\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(\n\t\t\t\tentity.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t}\n\n\t\t// const forceCreation: boolean =\n\t\t// \tunsugarableSingleEntity.forceCreation !== undefined\n\t\t// \t\t? unsugarableSingleEntity.forceCreation !== undefined\n\t\t// \t\t: EntityCreationParametersDefaults.forceCreation\n\t\tlet setOnCreate: UniqueWhere | undefined =\n\t\t\tunsugarableSingleEntity.setOnCreate !== undefined\n\t\t\t\t? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)\n\t\t\t\t: undefined\n\n\n\t\tconst isNonbearing: boolean =\n\t\t\tunsugarableSingleEntity.isNonbearing !== undefined\n\t\t\t\t? unsugarableSingleEntity.isNonbearing\n\t\t\t\t: EntityCreationParametersDefaults.isNonbearing\n\t\tconst eventListeners = this.desugarSingleEntityEventListeners(unsugarableSingleEntity)\n\t\tconst expectedMutation =\n\t\t\tunsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation\n\t\tconst alias = this.desugarSubTreeAlias(unsugarableSingleEntity.alias)\n\n\t\treturn {\n\t\t\talias,\n\t\t\tentityName,\n\t\t\tisCreating: false,\n\t\t\twhere,\n\t\t\tfilter,\n\t\t\thasOneRelationPath,\n\t\t\t// forceCreation,\n\t\t\tsetOnCreate,\n\t\t\tisNonbearing,\n\t\t\teventListeners,\n\t\t\texpectedMutation,\n\t\t}\n\t}\n\n\tpublic static desugarParentEntityParameters(\n\t\tparentEntity: SugaredParentEntityParameters,\n\t\tenvironment: Environment,\n\t): ParentEntityParameters {\n\t\treturn {\n\t\t\teventListeners: this.desugarSingleEntityEventListeners(parentEntity),\n\t\t}\n\t}\n\n\tpublic static desugarRelativeSingleEntity(\n\t\tsugaredRelativeSingleEntity: string | SugaredRelativeSingleEntity,\n\t\tenvironment: Environment,\n\t): RelativeSingleEntity {\n\t\tlet field: SugaredRelativeSingleEntity['field']\n\t\tlet unsugarableEntity: Omit<SugaredRelativeSingleEntity, 'field'>\n\t\tif (typeof sugaredRelativeSingleEntity === 'string') {\n\t\t\tfield = sugaredRelativeSingleEntity\n\t\t\tunsugarableEntity = {}\n\t\t} else {\n\t\t\tfield = sugaredRelativeSingleEntity.field\n\t\t\tunsugarableEntity = sugaredRelativeSingleEntity\n\t\t}\n\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tif (typeof field === 'string') {\n\t\t\t// fast path\n\t\t\tif (field.match(TokenRegExps.dotSeparatedIdentifier)) {\n\t\t\t\tconst parts = field.split('.')\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parts, unsugarableEntity, environment)\n\t\t\t} else {\n\t\t\t\tconst parsed = this.parseRelativeSingleEntity(field, environment)\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\t\tunsugarableEntity,\n\t\t\t\t\tenvironment,\n\t\t\t\t)\n\t\t\t}\n\n\t\t} else {\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(field, unsugarableEntity, environment)\n\t\t}\n\n\t\treturn {\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n\n\tpublic static desugarRelativeSingleField(\n\t\tsugaredRelativeSingleField: string | SugaredRelativeSingleField,\n\t\tenvironment: Environment,\n\t): RelativeSingleField {\n\t\tlet field: SugaredRelativeSingleField['field']\n\t\tlet unsugarableField: Omit<SugaredRelativeSingleField, 'field'>\n\t\tif (typeof sugaredRelativeSingleField === 'string') {\n\t\t\tfield = sugaredRelativeSingleField\n\t\t\tunsugarableField = {}\n\t\t} else {\n\t\t\tfield = sugaredRelativeSingleField.field\n\t\t\tunsugarableField = sugaredRelativeSingleField\n\t\t}\n\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet fieldName: FieldName\n\t\tif (typeof field === 'string') {\n\t\t\t// fast path\n\t\t\tif (field.match(TokenRegExps.dotSeparatedIdentifier)) {\n\t\t\t\tconst parts = field.split('.')\n\t\t\t\tfieldName = parts.pop()!\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parts, {}, environment)\n\t\t\t} else {\n\t\t\t\tconst parsed = this.parseRelativeSingleField(field, environment)\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parsed.hasOneRelationPath, {}, environment)\n\t\t\t\tfieldName = parsed.field\n\t\t\t}\n\n\t\t} else {\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath, {}, environment)\n\t\t\tfieldName = field.field\n\t\t}\n\n\t\treturn {\n\t\t\teventListeners: this.desugarFieldEventListeners(unsugarableField),\n\t\t\thasOneRelationPath,\n\t\t\tfield: fieldName,\n\t\t\tisNonbearing: unsugarableField.isNonbearing ?? LeafFieldDefaults.isNonbearing,\n\t\t\tmeta: unsugarableField.withMeta ?? [],\n\t\t\tdefaultValue:\n\t\t\t\tunsugarableField.defaultValue !== undefined\n\t\t\t\t\t? VariableInputTransformer.transformValue(unsugarableField.defaultValue, environment)\n\t\t\t\t\t: undefined,\n\t\t}\n\t}\n\n\tpublic static desugarRelativeEntityList(\n\t\tsugaredRelativeEntityList: string | SugaredRelativeEntityList,\n\t\tenvironment: Environment,\n\t): RelativeEntityList {\n\t\tlet field: SugaredRelativeEntityList['field']\n\t\tlet unsugarableEntityList: Omit<SugaredRelativeEntityList, 'field'>\n\n\t\tif (typeof sugaredRelativeEntityList === 'string') {\n\t\t\tfield = sugaredRelativeEntityList\n\t\t\tunsugarableEntityList = {}\n\t\t} else {\n\t\t\tfield = sugaredRelativeEntityList.field\n\t\t\tunsugarableEntityList = sugaredRelativeEntityList\n\t\t}\n\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet hasManyRelation: HasManyRelation\n\t\tif (typeof field === 'string') {\n\t\t\tconst parsed = this.parseRelativeEntityList(field, environment)\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t\thasManyRelation = this.augmentDesugaredHasManyRelation(\n\t\t\t\tparsed.hasManyRelation,\n\t\t\t\tunsugarableEntityList,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath || [], emptyObject, environment)\n\t\t\thasManyRelation = this.desugarHasManyRelation(field.hasManyRelation, unsugarableEntityList, environment)\n\t\t}\n\n\t\treturn {\n\t\t\thasManyRelation,\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n}\n"],"names":["_QueryLanguage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryLanguage.js","sources":["../../../../../packages/binding-common/src/queryLanguage/QueryLanguage.ts"],"sourcesContent":["import type { Environment } from '../environment'\nimport {\n\tAlias,\n\tEntityCreationParametersDefaults,\n\tEntityEventListenerStore,\n\tEntityListEventListenerStore,\n\tEntityListPreferencesDefaults,\n\tEntityName,\n\tEventListenersStore,\n\tFieldEventListenerStore,\n\tFieldName,\n\tFilter,\n\tHasManyRelation,\n\tHasOneRelation,\n\tLeafFieldDefaults,\n\tParentEntityParameters,\n\tQualifiedEntityList,\n\tQualifiedEntityParametersDefaults,\n\tQualifiedFieldList,\n\tQualifiedSingleEntity,\n\tRelationDefaults,\n\tRelativeEntityList,\n\tRelativeSingleEntity,\n\tRelativeSingleField,\n\tSugarableHasManyRelation,\n\tSugarableHasOneRelation,\n\tSugaredFilter,\n\tSugaredParentEntityParameters,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedFieldList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredSetOnCreate,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n\tUniqueWhere,\n\tUnsugarableEntityListEventListeners,\n\tUnsugarableFieldEventListeners,\n\tUnsugarableSingleEntityEventListeners,\n} from '../treeParameters'\nimport { Parser } from './Parser'\nimport { ParsedHasManyRelation, ParsedHasOneRelation } from './ParserResults'\nimport { TokenRegExps } from './tokenList'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'\nimport { VariableInputTransformer } from '../environment/VariableInputTransformer'\n\nconst emptyObject = Object.freeze({})\n\nexport class QueryLanguage {\n\tprivate static preparePrimitiveEntryPoint<Entry extends Parser.EntryPoint>(entryPoint: Entry) {\n\t\treturn (input: string, environment: Environment): Parser.ParserResult[Entry] => Parser.parseQueryLanguageExpression(input, entryPoint, environment)\n\t}\n\n\tprivate static preparePrimitiveEntryPointWithFallback<Entry extends Parser.EntryPoint>(entryPoint: Entry) {\n\t\treturn (input: string | Parser.ParserResult[Entry], environment: Environment): Parser.ParserResult[Entry] => {\n\t\t\tif (typeof input === 'string') {\n\t\t\t\treturn Parser.parseQueryLanguageExpression(input, entryPoint, environment)\n\t\t\t}\n\t\t\treturn input\n\t\t}\n\t}\n\n\tprivate static parseUnconstrainedQualifiedEntityList = QueryLanguage.preparePrimitiveEntryPoint('unconstrainedQualifiedEntityList')\n\tprivate static parseUnconstrainedQualifiedSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('unconstrainedQualifiedEntityList')\n\tprivate static parseQualifiedEntityList = QueryLanguage.preparePrimitiveEntryPoint('qualifiedEntityList')\n\tprivate static parseQualifiedFieldList = QueryLanguage.preparePrimitiveEntryPoint('qualifiedFieldList')\n\tprivate static parseQualifiedSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('qualifiedSingleEntity')\n\tprivate static parseRelativeEntityList = QueryLanguage.preparePrimitiveEntryPoint('relativeEntityList')\n\tprivate static parseRelativeSingleEntity = QueryLanguage.preparePrimitiveEntryPoint('relativeSingleEntity')\n\tprivate static parseRelativeSingleField = QueryLanguage.preparePrimitiveEntryPoint('relativeSingleField')\n\n\tpublic static desugarUniqueWhere = QueryLanguage.preparePrimitiveEntryPointWithFallback('uniqueWhere')\n\tpublic static desugarFilter = QueryLanguage.preparePrimitiveEntryPointWithFallback('filter')\n\tpublic static desugarOrderBy = QueryLanguage.preparePrimitiveEntryPointWithFallback('orderBy')\n\tpublic static desugarTaggedMap = QueryLanguage.preparePrimitiveEntryPointWithFallback('taggedMap')\n\n\tpublic static desugarSetOnCreate(setOnCreate: SugaredSetOnCreate, environment: Environment): UniqueWhere {\n\t\tif (Array.isArray(setOnCreate)) {\n\t\t\tconst whereList = setOnCreate.map(connection => this.desugarUniqueWhere(connection, environment))\n\t\t\treturn whereList.reduce(\n\t\t\t\t(accumulator, uniqueWhere) => TreeParameterMerger.mergeSetOnCreate(accumulator, uniqueWhere)!,\n\t\t\t)\n\t\t}\n\t\tif (typeof setOnCreate === 'string') {\n\t\t\treturn this.desugarUniqueWhere(setOnCreate, environment)\n\t\t}\n\t\treturn setOnCreate\n\t}\n\n\tpublic static desugarEventListener<F extends Function>(listener: F | Set<F>): Set<F>\n\tpublic static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined\n\tpublic static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined {\n\t\tif (typeof listener === 'function') {\n\t\t\treturn new Set([listener])\n\t\t}\n\t\treturn listener\n\t}\n\n\tprivate static desugarSingleEntityEventListeners(\n\t\tunsugarable: UnsugarableSingleEntityEventListeners,\n\t): EntityEventListenerStore | undefined {\n\t\tif (\n\t\t\tunsugarable.onBeforePersist === undefined\n\t\t\t&& unsugarable.onBeforeUpdate === undefined\n\t\t\t&& unsugarable.onInitialize === undefined\n\t\t\t&& unsugarable.onPersistError === undefined\n\t\t\t&& unsugarable.onPersistSuccess === undefined\n\t\t\t&& unsugarable.onUpdate === undefined\n\t\t) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst store: EntityEventListenerStore = new EventListenersStore()\n\n\t\tif (unsugarable.onConnectionUpdate) {\n\t\t\tfor (const fieldName in unsugarable.onConnectionUpdate) {\n\t\t\t\tconst listener = this.desugarEventListener(unsugarable.onConnectionUpdate[fieldName])\n\t\t\t\tstore.set({ type: 'connectionUpdate', key: fieldName }, listener)\n\t\t\t}\n\t\t}\n\n\t\tconst beforePersist = this.desugarEventListener(unsugarable.onBeforePersist)\n\t\tconst beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)\n\t\tconst initialize = this.desugarEventListener(unsugarable.onInitialize)\n\t\tconst persistError = this.desugarEventListener(unsugarable.onPersistError)\n\t\tconst persistSuccess = this.desugarEventListener(unsugarable.onPersistSuccess)\n\t\tconst update = this.desugarEventListener(unsugarable.onUpdate)\n\n\t\tif (beforePersist) {\n\t\t\tstore.set({ type: 'beforePersist' }, beforePersist)\n\t\t}\n\t\tif (beforeUpdate) {\n\t\t\tstore.set({ type: 'beforeUpdate' }, beforeUpdate)\n\t\t}\n\t\tif (initialize) {\n\t\t\tstore.set({ type: 'initialize' }, initialize)\n\t\t}\n\t\tif (persistError) {\n\t\t\tstore.set({ type: 'persistError' }, persistError)\n\t\t}\n\t\tif (persistSuccess) {\n\t\t\tstore.set({ type: 'persistSuccess' }, persistSuccess)\n\t\t}\n\t\tif (update) {\n\t\t\tstore.set({ type: 'update' }, update)\n\t\t}\n\n\t\treturn store\n\t}\n\n\tprivate static desugarEntityListEventListeners(unsugarable: UnsugarableEntityListEventListeners):\n\t\t| {\n\t\t\teventListeners: EntityListEventListenerStore | undefined\n\t\t\tchildEventListeners: EntityEventListenerStore | undefined\n\t\t}\n\t\t| undefined\n\t{\n\t\tif (\n\t\t\tunsugarable.onBeforePersist === undefined\n\t\t\t&& unsugarable.onBeforeUpdate === undefined\n\t\t\t&& unsugarable.onChildBeforeUpdate === undefined\n\t\t\t&& unsugarable.onChildInitialize === undefined\n\t\t\t&& unsugarable.onChildUpdate === undefined\n\t\t\t&& unsugarable.onInitialize === undefined\n\t\t\t&& unsugarable.onPersistError === undefined\n\t\t\t&& unsugarable.onPersistSuccess === undefined\n\t\t\t&& unsugarable.onUpdate === undefined\n\t\t) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst eventListeners: EntityListEventListenerStore = new EventListenersStore()\n\n\t\tconst beforePersist = this.desugarEventListener(unsugarable.onBeforePersist)\n\t\tconst beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)\n\t\tconst initialize = this.desugarEventListener(unsugarable.onInitialize)\n\t\tconst persistError = this.desugarEventListener(unsugarable.onPersistError)\n\t\tconst persistSuccess = this.desugarEventListener(unsugarable.onPersistSuccess)\n\t\tconst update = this.desugarEventListener(unsugarable.onUpdate)\n\n\t\tif (beforePersist) {\n\t\t\teventListeners.set({ type: 'beforePersist' }, beforePersist)\n\t\t}\n\t\tif (beforeUpdate) {\n\t\t\teventListeners.set({ type: 'beforeUpdate' }, beforeUpdate)\n\t\t}\n\t\tif (initialize) {\n\t\t\teventListeners.set({ type: 'initialize' }, initialize)\n\t\t}\n\t\tif (persistError) {\n\t\t\teventListeners.set({ type: 'persistError' }, persistError)\n\t\t}\n\t\tif (persistSuccess) {\n\t\t\teventListeners.set({ type: 'persistSuccess' }, persistSuccess)\n\t\t}\n\t\tif (update) {\n\t\t\teventListeners.set({ type: 'update' }, update)\n\t\t}\n\n\t\tconst childEventListeners: EntityEventListenerStore = new EventListenersStore()\n\n\t\tconst childBeforeUpdate = this.desugarEventListener(unsugarable.onChildBeforeUpdate)\n\t\tconst childInitialize = this.desugarEventListener(unsugarable.onChildInitialize)\n\t\tconst childUpdate = this.desugarEventListener(unsugarable.onChildUpdate)\n\n\t\tif (childBeforeUpdate) {\n\t\t\tchildEventListeners.set({ type: 'beforeUpdate' }, childBeforeUpdate)\n\t\t}\n\t\tif (childInitialize) {\n\t\t\tchildEventListeners.set({ type: 'initialize' }, childInitialize)\n\t\t}\n\t\tif (childUpdate) {\n\t\t\tchildEventListeners.set({ type: 'update' }, childUpdate)\n\t\t}\n\n\t\treturn {\n\t\t\teventListeners,\n\t\t\tchildEventListeners,\n\t\t}\n\t}\n\n\tprivate static desugarFieldEventListeners(\n\t\tunsugarable: UnsugarableFieldEventListeners,\n\t): FieldEventListenerStore | undefined {\n\t\tif (unsugarable.onBeforeUpdate === undefined && unsugarable.onUpdate === undefined) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst store: FieldEventListenerStore = new EventListenersStore()\n\n\t\tconst beforeUpdate = this.desugarEventListener(unsugarable.onBeforeUpdate)\n\t\tconst update = this.desugarEventListener(unsugarable.onUpdate)\n\n\t\tif (beforeUpdate) {\n\t\t\tstore.set({ type: 'beforeUpdate' }, beforeUpdate)\n\t\t}\n\t\tif (update) {\n\t\t\tstore.set({ type: 'update' }, update)\n\t\t}\n\n\t\treturn store\n\t}\n\n\tprivate static desugarSubTreeAlias(alias: Alias | Set<Alias> | undefined): Set<Alias> | undefined {\n\t\tif (alias === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (alias instanceof Set) {\n\t\t\treturn alias\n\t\t}\n\t\treturn new Set<Alias>().add(alias)\n\t}\n\n\tprivate static desugarHasOneRelation(\n\t\tsugarable: SugarableHasOneRelation,\n\t\tunsugarable: Omit<SugaredRelativeSingleEntity, 'field'>,\n\t\tenvironment: Environment,\n\t): HasOneRelation {\n\t\treturn {\n\t\t\tfield: sugarable.field,\n\t\t\tfilter: sugarable.filter ? this.desugarFilter(sugarable.filter, environment) : undefined,\n\t\t\texpectedMutation: unsugarable.expectedMutation ?? RelationDefaults.expectedMutation,\n\t\t\treducedBy: sugarable.reducedBy ? this.desugarUniqueWhere(sugarable.reducedBy, environment) : undefined,\n\t\t\tsetOnCreate: unsugarable.setOnCreate ? this.desugarSetOnCreate(unsugarable.setOnCreate, environment) : undefined,\n\t\t\tisNonbearing: unsugarable.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\tmeta: unsugarable.withMeta ?? [],\n\t\t\t// forceCreation: unsugarable.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\teventListeners: this.desugarSingleEntityEventListeners(unsugarable),\n\t\t}\n\t}\n\n\tprivate static augmentDesugaredHasOneRelationPath(\n\t\tpath: (ParsedHasOneRelation | string)[],\n\t\tunsugarable: Omit<SugaredRelativeSingleEntity, 'field'>,\n\t\tenvironment: Environment,\n\t): HasOneRelation[] {\n\t\treturn path.map((desugaredHasOneRelation, i) =>\n\t\t\t// Unsugarable applies to the last\n\t\t\tthis.desugarHasOneRelation(\n\t\t\t\ttypeof desugaredHasOneRelation === 'string' ? { field: desugaredHasOneRelation } : desugaredHasOneRelation,\n\t\t\t\ti === path.length - 1 ? unsugarable : {},\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static augmentDesugaredHasManyRelation(\n\t\trelation: ParsedHasManyRelation,\n\t\tunsugarable: Omit<SugaredRelativeEntityList, 'field'>,\n\t\tenvironment: Environment,\n\t): HasManyRelation {\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarable)\n\t\treturn {\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\texpectedMutation: unsugarable.expectedMutation ?? RelationDefaults.expectedMutation,\n\t\t\tisNonbearing: unsugarable.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarable.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tinitialEntityCount: unsugarable.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\tsetOnCreate: unsugarable.setOnCreate ? this.desugarSetOnCreate(unsugarable.setOnCreate, environment) : undefined,\n\t\t\tmeta: unsugarable.withMeta ?? [],\n\t\t\torderBy: unsugarable.orderBy ? this.desugarOrderBy(unsugarable.orderBy, environment) : undefined,\n\t\t\toffset: unsugarable.offset,\n\t\t\tlimit: unsugarable.limit,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t}\n\t}\n\n\tprivate static desugarHasOneRelationPath(\n\t\tinput: SugarableHasOneRelation[] | SugarableHasOneRelation | undefined,\n\t\tlastRelation: Omit<SugaredRelativeSingleEntity, 'field'>,\n\t\tenvironment: Environment,\n\t): HasOneRelation[] {\n\t\tif (input === undefined) {\n\t\t\tinput = []\n\t\t} else if (!Array.isArray(input)) {\n\t\t\tinput = [input]\n\t\t}\n\n\t\tconst relationPath: HasOneRelation[] = []\n\n\t\tconst cappedLength = input.length - 1\n\t\tlet i = 0\n\t\tfor (; i < cappedLength; i++) {\n\t\t\t// Deliberately leaving out the last element\n\t\t\tconst pathNode = input[i]\n\n\t\t\trelationPath.push(this.desugarHasOneRelation(pathNode, {}, environment))\n\t\t}\n\t\tif (i in input) {\n\t\t\trelationPath.push(this.desugarHasOneRelation(input[i], lastRelation, environment))\n\t\t}\n\n\t\treturn relationPath\n\t}\n\n\tprivate static desugarHasManyRelation(\n\t\tsugarablePart: SugarableHasManyRelation,\n\t\tunsugarablePart: Omit<SugaredRelativeEntityList, 'field'>,\n\t\tenvironment: Environment,\n\t): HasManyRelation {\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarablePart)\n\t\treturn {\n\t\t\tfilter: sugarablePart.filter ? this.desugarFilter(sugarablePart.filter, environment) : undefined,\n\t\t\tlimit: unsugarablePart.limit,\n\t\t\toffset: unsugarablePart.offset,\n\t\t\torderBy: unsugarablePart.orderBy ? this.desugarOrderBy(unsugarablePart.orderBy, environment) : undefined,\n\t\t\tinitialEntityCount: unsugarablePart.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\texpectedMutation: unsugarablePart.expectedMutation ?? RelationDefaults.expectedMutation,\n\t\t\tsetOnCreate: unsugarablePart.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarablePart.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\tmeta: unsugarablePart.withMeta ?? [],\n\t\t\tfield: sugarablePart.field,\n\t\t\tisNonbearing: unsugarablePart.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarablePart.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t}\n\t}\n\n\tpublic static desugarUnconstrainedQualifiedEntityList(\n\t\t{ entities, ...unsugarableEntityList }: SugaredUnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): UnconstrainedQualifiedEntityList {\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet entityName: EntityName\n\n\t\tif (typeof entities === 'string') {\n\t\t\tconst parsed = this.parseUnconstrainedQualifiedEntityList(entities, environment)\n\t\t\tentityName = parsed.entityName\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entities.entityName\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(entities.hasOneRelationPath, emptyObject, environment)\n\t\t}\n\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarableEntityList)\n\n\t\treturn {\n\t\t\tisCreating: true,\n\t\t\tisUnpersisted: unsugarableEntityList.isUnpersisted ?? false,\n\t\t\tisNonbearing: unsugarableEntityList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableEntityList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tsetOnCreate: unsugarableEntityList.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarableEntityList.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableEntityList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t\tinitialEntityCount: unsugarableEntityList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\talias: this.desugarSubTreeAlias(unsugarableEntityList.alias),\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n\n\tpublic static desugarUnconstrainedQualifiedSingleEntity(\n\t\t{ entity, ...unsugarableSingleEntity }: SugaredUnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): UnconstrainedQualifiedSingleEntity {\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet entityName: EntityName\n\n\t\tif (typeof entity === 'string') {\n\t\t\tconst parsed = this.parseUnconstrainedQualifiedSingleEntity(entity, environment)\n\t\t\tentityName = parsed.entityName\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entity.entityName\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(\n\t\t\t\tentity.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tisCreating: true,\n\t\t\tisUnpersisted: unsugarableSingleEntity.isUnpersisted ?? false,\n\t\t\tisNonbearing: unsugarableSingleEntity.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableSingleEntity.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tsetOnCreate: unsugarableSingleEntity.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\teventListeners: this.desugarSingleEntityEventListeners(unsugarableSingleEntity),\n\t\t\talias: this.desugarSubTreeAlias(unsugarableSingleEntity.alias),\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n\n\tpublic static desugarQualifiedEntityList(\n\t\t{ entities, ...unsugarableEntityList }: SugaredQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): QualifiedEntityList {\n\t\tlet entityName: EntityName\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\n\t\tlet filter: SugaredFilter | undefined\n\n\t\tif (typeof entities === 'string') {\n\t\t\tconst parsed = this.parseQualifiedEntityList(entities, environment)\n\n\t\t\tentityName = parsed.entityName\n\t\t\tfilter = parsed.filter\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entities.entityName\n\t\t\tfilter = entities.filter\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(entities.hasOneRelationPath, emptyObject, environment)\n\t\t}\n\n\t\tconst eventListeners = this.desugarEntityListEventListeners(unsugarableEntityList)\n\n\t\treturn {\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t\tfilter: filter ? this.desugarFilter(filter, environment) : undefined,\n\t\t\tlimit: unsugarableEntityList.limit,\n\t\t\toffset: unsugarableEntityList.offset,\n\t\t\torderBy: unsugarableEntityList.orderBy ? this.desugarOrderBy(unsugarableEntityList.orderBy, environment) : undefined,\n\t\t\tinitialEntityCount: unsugarableEntityList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t\talias: this.desugarSubTreeAlias(unsugarableEntityList.alias),\n\t\t\tisCreating: false,\n\t\t\tisNonbearing: unsugarableEntityList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableEntityList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tsetOnCreate: unsugarableEntityList.setOnCreate\n\t\t\t\t? this.desugarSetOnCreate(unsugarableEntityList.setOnCreate, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableEntityList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\tchildEventListeners: eventListeners?.childEventListeners,\n\t\t\teventListeners: eventListeners?.eventListeners,\n\t\t}\n\t}\n\n\tpublic static desugarQualifiedFieldList(\n\t\t{ fields, ...unsugarableFieldList }: SugaredQualifiedFieldList,\n\t\tenvironment: Environment,\n\t): QualifiedFieldList {\n\t\tlet field: FieldName\n\t\tlet entityName: EntityName\n\t\tlet filter: SugaredFilter | undefined\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\n\t\tif (typeof fields === 'string') {\n\t\t\tconst parsed = this.parseQualifiedFieldList(fields, environment)\n\n\t\t\tfield = parsed.field\n\t\t\tentityName = parsed.entityName\n\t\t\tfilter = parsed.filter\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tfield = fields.field\n\t\t\tentityName = fields.entityName\n\t\t\tfilter = fields.filter\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(fields.hasOneRelationPath, emptyObject, environment)\n\t\t}\n\n\t\treturn {\n\t\t\tfield,\n\t\t\tentityName,\n\t\t\thasOneRelationPath,\n\t\t\talias: this.desugarSubTreeAlias(unsugarableFieldList.alias),\n\t\t\tisNonbearing: unsugarableFieldList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,\n\t\t\t// forceCreation: unsugarableFieldList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,\n\t\t\tdefaultValue: unsugarableFieldList.defaultValue !== undefined\n\t\t\t\t? VariableInputTransformer.transformValue(unsugarableFieldList.defaultValue, environment)\n\t\t\t\t: undefined,\n\t\t\texpectedMutation: unsugarableFieldList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,\n\t\t\teventListeners: this.desugarFieldEventListeners(unsugarableFieldList),\n\t\t\tfilter: filter ? this.desugarFilter(filter, environment) : undefined,\n\t\t\tlimit: unsugarableFieldList.limit,\n\t\t\toffset: unsugarableFieldList.offset,\n\t\t\torderBy: unsugarableFieldList.orderBy ? this.desugarOrderBy(unsugarableFieldList.orderBy, environment) : undefined,\n\t\t\tinitialEntityCount: unsugarableFieldList.initialEntityCount ?? EntityListPreferencesDefaults.initialEntityCount,\n\t\t}\n\t}\n\n\tpublic static desugarQualifiedSingleEntity(\n\t\t{ entity, ...unsugarableSingleEntity }: SugaredQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): QualifiedSingleEntity {\n\t\tlet entityName: EntityName\n\t\tlet where: UniqueWhere\n\t\tlet filter: Filter | undefined\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\n\t\tif (typeof entity === 'string') {\n\t\t\tconst parsed = this.parseQualifiedSingleEntity(entity, environment)\n\n\t\t\tentityName = parsed.entityName\n\t\t\twhere = parsed.where\n\t\t\tfilter = parsed.filter\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\tentityName = entity.entityName\n\t\t\twhere = this.desugarUniqueWhere(entity.where, environment)\n\t\t\tfilter = entity.filter ? this.desugarFilter(entity.filter, environment) : undefined\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(\n\t\t\t\tentity.hasOneRelationPath,\n\t\t\t\tunsugarableSingleEntity,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t}\n\n\t\t// const forceCreation: boolean =\n\t\t// \tunsugarableSingleEntity.forceCreation !== undefined\n\t\t// \t\t? unsugarableSingleEntity.forceCreation !== undefined\n\t\t// \t\t: EntityCreationParametersDefaults.forceCreation\n\t\tlet setOnCreate: UniqueWhere | undefined = unsugarableSingleEntity.setOnCreate !== undefined\n\t\t\t? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)\n\t\t\t: undefined\n\n\t\tconst isNonbearing: boolean = unsugarableSingleEntity.isNonbearing !== undefined\n\t\t\t? unsugarableSingleEntity.isNonbearing\n\t\t\t: EntityCreationParametersDefaults.isNonbearing\n\t\tconst eventListeners = this.desugarSingleEntityEventListeners(unsugarableSingleEntity)\n\t\tconst expectedMutation = unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation\n\t\tconst alias = this.desugarSubTreeAlias(unsugarableSingleEntity.alias)\n\n\t\treturn {\n\t\t\talias,\n\t\t\tentityName,\n\t\t\tisCreating: false,\n\t\t\twhere,\n\t\t\tfilter,\n\t\t\thasOneRelationPath,\n\t\t\t// forceCreation,\n\t\t\tsetOnCreate,\n\t\t\tisNonbearing,\n\t\t\teventListeners,\n\t\t\texpectedMutation,\n\t\t}\n\t}\n\n\tpublic static desugarParentEntityParameters(\n\t\tparentEntity: SugaredParentEntityParameters,\n\t\tenvironment: Environment,\n\t): ParentEntityParameters {\n\t\treturn {\n\t\t\teventListeners: this.desugarSingleEntityEventListeners(parentEntity),\n\t\t}\n\t}\n\n\tpublic static desugarRelativeSingleEntity(\n\t\tsugaredRelativeSingleEntity: string | SugaredRelativeSingleEntity,\n\t\tenvironment: Environment,\n\t): RelativeSingleEntity {\n\t\tlet field: SugaredRelativeSingleEntity['field']\n\t\tlet unsugarableEntity: Omit<SugaredRelativeSingleEntity, 'field'>\n\t\tif (typeof sugaredRelativeSingleEntity === 'string') {\n\t\t\tfield = sugaredRelativeSingleEntity\n\t\t\tunsugarableEntity = {}\n\t\t} else {\n\t\t\tfield = sugaredRelativeSingleEntity.field\n\t\t\tunsugarableEntity = sugaredRelativeSingleEntity\n\t\t}\n\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tif (typeof field === 'string') {\n\t\t\t// fast path\n\t\t\tif (field.match(TokenRegExps.dotSeparatedIdentifier)) {\n\t\t\t\tconst parts = field.split('.')\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parts, unsugarableEntity, environment)\n\t\t\t} else {\n\t\t\t\tconst parsed = this.parseRelativeSingleEntity(field, environment)\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\t\tunsugarableEntity,\n\t\t\t\t\tenvironment,\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(field, unsugarableEntity, environment)\n\t\t}\n\n\t\treturn {\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n\n\tpublic static desugarRelativeSingleField(\n\t\tsugaredRelativeSingleField: string | SugaredRelativeSingleField,\n\t\tenvironment: Environment,\n\t): RelativeSingleField {\n\t\tlet field: SugaredRelativeSingleField['field']\n\t\tlet unsugarableField: Omit<SugaredRelativeSingleField, 'field'>\n\t\tif (typeof sugaredRelativeSingleField === 'string') {\n\t\t\tfield = sugaredRelativeSingleField\n\t\t\tunsugarableField = {}\n\t\t} else {\n\t\t\tfield = sugaredRelativeSingleField.field\n\t\t\tunsugarableField = sugaredRelativeSingleField\n\t\t}\n\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet fieldName: FieldName\n\t\tif (typeof field === 'string') {\n\t\t\t// fast path\n\t\t\tif (field.match(TokenRegExps.dotSeparatedIdentifier)) {\n\t\t\t\tconst parts = field.split('.')\n\t\t\t\tfieldName = parts.pop()!\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parts, {}, environment)\n\t\t\t} else {\n\t\t\t\tconst parsed = this.parseRelativeSingleField(field, environment)\n\t\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parsed.hasOneRelationPath, {}, environment)\n\t\t\t\tfieldName = parsed.field\n\t\t\t}\n\t\t} else {\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath, {}, environment)\n\t\t\tfieldName = field.field\n\t\t}\n\n\t\treturn {\n\t\t\teventListeners: this.desugarFieldEventListeners(unsugarableField),\n\t\t\thasOneRelationPath,\n\t\t\tfield: fieldName,\n\t\t\tisNonbearing: unsugarableField.isNonbearing ?? LeafFieldDefaults.isNonbearing,\n\t\t\tmeta: unsugarableField.withMeta ?? [],\n\t\t\tdefaultValue: unsugarableField.defaultValue !== undefined\n\t\t\t\t? VariableInputTransformer.transformValue(unsugarableField.defaultValue, environment)\n\t\t\t\t: undefined,\n\t\t}\n\t}\n\n\tpublic static desugarRelativeEntityList(\n\t\tsugaredRelativeEntityList: string | SugaredRelativeEntityList,\n\t\tenvironment: Environment,\n\t): RelativeEntityList {\n\t\tlet field: SugaredRelativeEntityList['field']\n\t\tlet unsugarableEntityList: Omit<SugaredRelativeEntityList, 'field'>\n\n\t\tif (typeof sugaredRelativeEntityList === 'string') {\n\t\t\tfield = sugaredRelativeEntityList\n\t\t\tunsugarableEntityList = {}\n\t\t} else {\n\t\t\tfield = sugaredRelativeEntityList.field\n\t\t\tunsugarableEntityList = sugaredRelativeEntityList\n\t\t}\n\n\t\tlet hasOneRelationPath: HasOneRelation[]\n\t\tlet hasManyRelation: HasManyRelation\n\t\tif (typeof field === 'string') {\n\t\t\tconst parsed = this.parseRelativeEntityList(field, environment)\n\t\t\thasOneRelationPath = this.augmentDesugaredHasOneRelationPath(\n\t\t\t\tparsed.hasOneRelationPath,\n\t\t\t\temptyObject,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t\thasManyRelation = this.augmentDesugaredHasManyRelation(\n\t\t\t\tparsed.hasManyRelation,\n\t\t\t\tunsugarableEntityList,\n\t\t\t\tenvironment,\n\t\t\t)\n\t\t} else {\n\t\t\thasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath || [], emptyObject, environment)\n\t\t\thasManyRelation = this.desugarHasManyRelation(field.hasManyRelation, unsugarableEntityList, environment)\n\t\t}\n\n\t\treturn {\n\t\t\thasManyRelation,\n\t\t\thasOneRelationPath,\n\t\t}\n\t}\n}\n"],"names":["_QueryLanguage"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenList.cjs","sources":["../../../../../packages/binding-common/src/queryLanguage/tokenList.ts"],"sourcesContent":["import { createToken, Lexer } from 'chevrotain'\n\nexport namespace TokenRegExps {\n\texport const entityIdentifier = /[A-Z_]\\w*/\n\texport const identifier = /[a-zA-Z_]\\w*/\n\n\texport const dotSeparatedIdentifier = /^[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*$/\n}\n\nconst identifier = createToken({\n\tname: 'Identifier',\n\tpattern: TokenRegExps.identifier,\n})\n\nexport const tokens = {\n\tWhiteSpace: createToken({\n\t\tname: 'WhiteSpace',\n\t\tpattern: /\\s+/,\n\t\tgroup: Lexer.SKIPPED,\n\t}),\n\n\tEntityIdentifier: createToken({\n\t\tname: 'EntityIdentifier',\n\t\tpattern: TokenRegExps.entityIdentifier,\n\t}),\n\n\tIdentifier: identifier,\n\n\tDollarSign: createToken({\n\t\tname: 'DollarSign',\n\t\tpattern: /\\$/,\n\t}),\n\n\tDot: createToken({\n\t\tname: 'Dot',\n\t\tpattern: /\\./,\n\t}),\n\n\tComma: createToken({\n\t\tname: 'Comma',\n\t\tpattern: /,/,\n\t}),\n\n\tColon: createToken({\n\t\tname: 'Colon',\n\t\tpattern: /:/,\n\t}),\n\n\tSlash: createToken({\n\t\tname: 'Slash',\n\t\tpattern: /\\//,\n\t}),\n\n\tNumberLiteral: createToken({\n\t\tname: 'NumberLiteral',\n\t\tpattern: /-?(0|[1-9]\\d*)(\\.\\d+)?([eE][+-]?\\d+)?/,\n\t}),\n\n\tStringLiteral: createToken({\n\t\tname: 'StringLiteral',\n\t\tpattern: /'(:?[^\\\\']|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*'|\"(:?[^\\\\\"]|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*\"/,\n\t}),\n\n\tLeftParenthesis: createToken({\n\t\tname: 'LeftParenthesis',\n\t\tpattern: /\\(/,\n\t}),\n\n\tRightParenthesis: createToken({\n\t\tname: 'RightParenthesis',\n\t\tpattern: /\\)/,\n\t}),\n\n\tLeftBracket: createToken({\n\t\tname: 'LeftBracket',\n\t\tpattern: /\\[/,\n\t}),\n\n\tRightBracket: createToken({\n\t\tname: 'RightBracket',\n\t\tpattern: /]/,\n\t}),\n\n\tNotEquals: createToken({\n\t\tname: 'NotEquals',\n\t\tpattern: /!=/,\n\t}),\n\n\tTrue: createToken({\n\t\tname: 'True',\n\t\tpattern: /true/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tFalse: createToken({\n\t\tname: 'False',\n\t\tpattern: /false/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tNull: createToken({\n\t\tname: 'Null',\n\t\tpattern: /null/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tEquals: createToken({\n\t\tname: 'Equals',\n\t\tpattern: /=/,\n\t}),\n\n\tNot: createToken({\n\t\tname: 'Not',\n\t\tpattern: /!/,\n\t}),\n\n\tAnd: createToken({\n\t\tname: 'And',\n\t\tpattern: /&&/,\n\t}),\n\n\tOr: createToken({\n\t\tname: 'Or',\n\t\tpattern: /\\|\\|/,\n\t}),\n\n\tLowerEqual: createToken({\n\t\tname: 'LowerEqual',\n\t\tpattern: /<=/,\n\t}),\n\n\tGreaterEqual: createToken({\n\t\tname: 'GreaterEqual',\n\t\tpattern: />=/,\n\t}),\n\n\tLowerThan: createToken({\n\t\tname: 'LowerThan',\n\t\tpattern: /</,\n\t}),\n\n\tGreaterThan: createToken({\n\t\tname: 'GreaterThan',\n\t\tpattern: />/,\n\t}),\n}\n\nconst tokenList = [\n\ttokens.WhiteSpace,\n\ttokens.True,\n\ttokens.False,\n\ttokens.Null,\n\ttokens.EntityIdentifier,\n\ttokens.Identifier,\n\ttokens.DollarSign,\n\ttokens.Dot,\n\ttokens.Comma,\n\ttokens.Colon,\n\ttokens.Slash,\n\ttokens.StringLiteral,\n\ttokens.NumberLiteral,\n\ttokens.LeftParenthesis,\n\ttokens.RightParenthesis,\n\ttokens.LeftBracket,\n\ttokens.RightBracket,\n\ttokens.NotEquals,\n\ttokens.Equals,\n\ttokens.Not,\n\ttokens.GreaterEqual,\n\ttokens.GreaterThan,\n\ttokens.LowerEqual,\n\ttokens.LowerThan,\n\ttokens.And,\n\ttokens.Or,\n]\n\nexport { tokenList }\n"],"names":["TokenRegExps","createToken","Lexer"],"mappings":";;;AAEiBA,QAAAA,eAAAA;AAAAA,CAAV,CAAUA,kBAAV;AACOA,gBAAA,mBAAmB;AACnBA,gBAAA,aAAa;AAEbA,gBAAA,yBAAyB;AAAA,GAJtBA,
|
|
1
|
+
{"version":3,"file":"tokenList.cjs","sources":["../../../../../packages/binding-common/src/queryLanguage/tokenList.ts"],"sourcesContent":["import { createToken, Lexer } from 'chevrotain'\n\nexport namespace TokenRegExps {\n\texport const entityIdentifier = /[A-Z_]\\w*/\n\texport const identifier = /[a-zA-Z_]\\w*/\n\n\texport const dotSeparatedIdentifier = /^[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*$/\n}\n\nconst identifier = createToken({\n\tname: 'Identifier',\n\tpattern: TokenRegExps.identifier,\n})\n\nexport const tokens = {\n\tWhiteSpace: createToken({\n\t\tname: 'WhiteSpace',\n\t\tpattern: /\\s+/,\n\t\tgroup: Lexer.SKIPPED,\n\t}),\n\n\tEntityIdentifier: createToken({\n\t\tname: 'EntityIdentifier',\n\t\tpattern: TokenRegExps.entityIdentifier,\n\t}),\n\n\tIdentifier: identifier,\n\n\tDollarSign: createToken({\n\t\tname: 'DollarSign',\n\t\tpattern: /\\$/,\n\t}),\n\n\tDot: createToken({\n\t\tname: 'Dot',\n\t\tpattern: /\\./,\n\t}),\n\n\tComma: createToken({\n\t\tname: 'Comma',\n\t\tpattern: /,/,\n\t}),\n\n\tColon: createToken({\n\t\tname: 'Colon',\n\t\tpattern: /:/,\n\t}),\n\n\tSlash: createToken({\n\t\tname: 'Slash',\n\t\tpattern: /\\//,\n\t}),\n\n\tNumberLiteral: createToken({\n\t\tname: 'NumberLiteral',\n\t\tpattern: /-?(0|[1-9]\\d*)(\\.\\d+)?([eE][+-]?\\d+)?/,\n\t}),\n\n\tStringLiteral: createToken({\n\t\tname: 'StringLiteral',\n\t\tpattern: /'(:?[^\\\\']|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*'|\"(:?[^\\\\\"]|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*\"/,\n\t}),\n\n\tLeftParenthesis: createToken({\n\t\tname: 'LeftParenthesis',\n\t\tpattern: /\\(/,\n\t}),\n\n\tRightParenthesis: createToken({\n\t\tname: 'RightParenthesis',\n\t\tpattern: /\\)/,\n\t}),\n\n\tLeftBracket: createToken({\n\t\tname: 'LeftBracket',\n\t\tpattern: /\\[/,\n\t}),\n\n\tRightBracket: createToken({\n\t\tname: 'RightBracket',\n\t\tpattern: /]/,\n\t}),\n\n\tNotEquals: createToken({\n\t\tname: 'NotEquals',\n\t\tpattern: /!=/,\n\t}),\n\n\tTrue: createToken({\n\t\tname: 'True',\n\t\tpattern: /true/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tFalse: createToken({\n\t\tname: 'False',\n\t\tpattern: /false/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tNull: createToken({\n\t\tname: 'Null',\n\t\tpattern: /null/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tEquals: createToken({\n\t\tname: 'Equals',\n\t\tpattern: /=/,\n\t}),\n\n\tNot: createToken({\n\t\tname: 'Not',\n\t\tpattern: /!/,\n\t}),\n\n\tAnd: createToken({\n\t\tname: 'And',\n\t\tpattern: /&&/,\n\t}),\n\n\tOr: createToken({\n\t\tname: 'Or',\n\t\tpattern: /\\|\\|/,\n\t}),\n\n\tLowerEqual: createToken({\n\t\tname: 'LowerEqual',\n\t\tpattern: /<=/,\n\t}),\n\n\tGreaterEqual: createToken({\n\t\tname: 'GreaterEqual',\n\t\tpattern: />=/,\n\t}),\n\n\tLowerThan: createToken({\n\t\tname: 'LowerThan',\n\t\tpattern: /</,\n\t}),\n\n\tGreaterThan: createToken({\n\t\tname: 'GreaterThan',\n\t\tpattern: />/,\n\t}),\n}\n\nconst tokenList = [\n\ttokens.WhiteSpace,\n\ttokens.True,\n\ttokens.False,\n\ttokens.Null,\n\ttokens.EntityIdentifier,\n\ttokens.Identifier,\n\ttokens.DollarSign,\n\ttokens.Dot,\n\ttokens.Comma,\n\ttokens.Colon,\n\ttokens.Slash,\n\ttokens.StringLiteral,\n\ttokens.NumberLiteral,\n\ttokens.LeftParenthesis,\n\ttokens.RightParenthesis,\n\ttokens.LeftBracket,\n\ttokens.RightBracket,\n\ttokens.NotEquals,\n\ttokens.Equals,\n\ttokens.Not,\n\ttokens.GreaterEqual,\n\ttokens.GreaterThan,\n\ttokens.LowerEqual,\n\ttokens.LowerThan,\n\ttokens.And,\n\ttokens.Or,\n]\n\nexport { tokenList }\n"],"names":["TokenRegExps","createToken","Lexer"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenList.js","sources":["../../../../../packages/binding-common/src/queryLanguage/tokenList.ts"],"sourcesContent":["import { createToken, Lexer } from 'chevrotain'\n\nexport namespace TokenRegExps {\n\texport const entityIdentifier = /[A-Z_]\\w*/\n\texport const identifier = /[a-zA-Z_]\\w*/\n\n\texport const dotSeparatedIdentifier = /^[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*$/\n}\n\nconst identifier = createToken({\n\tname: 'Identifier',\n\tpattern: TokenRegExps.identifier,\n})\n\nexport const tokens = {\n\tWhiteSpace: createToken({\n\t\tname: 'WhiteSpace',\n\t\tpattern: /\\s+/,\n\t\tgroup: Lexer.SKIPPED,\n\t}),\n\n\tEntityIdentifier: createToken({\n\t\tname: 'EntityIdentifier',\n\t\tpattern: TokenRegExps.entityIdentifier,\n\t}),\n\n\tIdentifier: identifier,\n\n\tDollarSign: createToken({\n\t\tname: 'DollarSign',\n\t\tpattern: /\\$/,\n\t}),\n\n\tDot: createToken({\n\t\tname: 'Dot',\n\t\tpattern: /\\./,\n\t}),\n\n\tComma: createToken({\n\t\tname: 'Comma',\n\t\tpattern: /,/,\n\t}),\n\n\tColon: createToken({\n\t\tname: 'Colon',\n\t\tpattern: /:/,\n\t}),\n\n\tSlash: createToken({\n\t\tname: 'Slash',\n\t\tpattern: /\\//,\n\t}),\n\n\tNumberLiteral: createToken({\n\t\tname: 'NumberLiteral',\n\t\tpattern: /-?(0|[1-9]\\d*)(\\.\\d+)?([eE][+-]?\\d+)?/,\n\t}),\n\n\tStringLiteral: createToken({\n\t\tname: 'StringLiteral',\n\t\tpattern: /'(:?[^\\\\']|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*'|\"(:?[^\\\\\"]|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*\"/,\n\t}),\n\n\tLeftParenthesis: createToken({\n\t\tname: 'LeftParenthesis',\n\t\tpattern: /\\(/,\n\t}),\n\n\tRightParenthesis: createToken({\n\t\tname: 'RightParenthesis',\n\t\tpattern: /\\)/,\n\t}),\n\n\tLeftBracket: createToken({\n\t\tname: 'LeftBracket',\n\t\tpattern: /\\[/,\n\t}),\n\n\tRightBracket: createToken({\n\t\tname: 'RightBracket',\n\t\tpattern: /]/,\n\t}),\n\n\tNotEquals: createToken({\n\t\tname: 'NotEquals',\n\t\tpattern: /!=/,\n\t}),\n\n\tTrue: createToken({\n\t\tname: 'True',\n\t\tpattern: /true/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tFalse: createToken({\n\t\tname: 'False',\n\t\tpattern: /false/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tNull: createToken({\n\t\tname: 'Null',\n\t\tpattern: /null/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tEquals: createToken({\n\t\tname: 'Equals',\n\t\tpattern: /=/,\n\t}),\n\n\tNot: createToken({\n\t\tname: 'Not',\n\t\tpattern: /!/,\n\t}),\n\n\tAnd: createToken({\n\t\tname: 'And',\n\t\tpattern: /&&/,\n\t}),\n\n\tOr: createToken({\n\t\tname: 'Or',\n\t\tpattern: /\\|\\|/,\n\t}),\n\n\tLowerEqual: createToken({\n\t\tname: 'LowerEqual',\n\t\tpattern: /<=/,\n\t}),\n\n\tGreaterEqual: createToken({\n\t\tname: 'GreaterEqual',\n\t\tpattern: />=/,\n\t}),\n\n\tLowerThan: createToken({\n\t\tname: 'LowerThan',\n\t\tpattern: /</,\n\t}),\n\n\tGreaterThan: createToken({\n\t\tname: 'GreaterThan',\n\t\tpattern: />/,\n\t}),\n}\n\nconst tokenList = [\n\ttokens.WhiteSpace,\n\ttokens.True,\n\ttokens.False,\n\ttokens.Null,\n\ttokens.EntityIdentifier,\n\ttokens.Identifier,\n\ttokens.DollarSign,\n\ttokens.Dot,\n\ttokens.Comma,\n\ttokens.Colon,\n\ttokens.Slash,\n\ttokens.StringLiteral,\n\ttokens.NumberLiteral,\n\ttokens.LeftParenthesis,\n\ttokens.RightParenthesis,\n\ttokens.LeftBracket,\n\ttokens.RightBracket,\n\ttokens.NotEquals,\n\ttokens.Equals,\n\ttokens.Not,\n\ttokens.GreaterEqual,\n\ttokens.GreaterThan,\n\ttokens.LowerEqual,\n\ttokens.LowerThan,\n\ttokens.And,\n\ttokens.Or,\n]\n\nexport { tokenList }\n"],"names":["TokenRegExps"],"mappings":";
|
|
1
|
+
{"version":3,"file":"tokenList.js","sources":["../../../../../packages/binding-common/src/queryLanguage/tokenList.ts"],"sourcesContent":["import { createToken, Lexer } from 'chevrotain'\n\nexport namespace TokenRegExps {\n\texport const entityIdentifier = /[A-Z_]\\w*/\n\texport const identifier = /[a-zA-Z_]\\w*/\n\n\texport const dotSeparatedIdentifier = /^[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*$/\n}\n\nconst identifier = createToken({\n\tname: 'Identifier',\n\tpattern: TokenRegExps.identifier,\n})\n\nexport const tokens = {\n\tWhiteSpace: createToken({\n\t\tname: 'WhiteSpace',\n\t\tpattern: /\\s+/,\n\t\tgroup: Lexer.SKIPPED,\n\t}),\n\n\tEntityIdentifier: createToken({\n\t\tname: 'EntityIdentifier',\n\t\tpattern: TokenRegExps.entityIdentifier,\n\t}),\n\n\tIdentifier: identifier,\n\n\tDollarSign: createToken({\n\t\tname: 'DollarSign',\n\t\tpattern: /\\$/,\n\t}),\n\n\tDot: createToken({\n\t\tname: 'Dot',\n\t\tpattern: /\\./,\n\t}),\n\n\tComma: createToken({\n\t\tname: 'Comma',\n\t\tpattern: /,/,\n\t}),\n\n\tColon: createToken({\n\t\tname: 'Colon',\n\t\tpattern: /:/,\n\t}),\n\n\tSlash: createToken({\n\t\tname: 'Slash',\n\t\tpattern: /\\//,\n\t}),\n\n\tNumberLiteral: createToken({\n\t\tname: 'NumberLiteral',\n\t\tpattern: /-?(0|[1-9]\\d*)(\\.\\d+)?([eE][+-]?\\d+)?/,\n\t}),\n\n\tStringLiteral: createToken({\n\t\tname: 'StringLiteral',\n\t\tpattern: /'(:?[^\\\\']|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*'|\"(:?[^\\\\\"]|\\\\(:?[bfnrtv\"'\\\\/]|u[0-9a-fA-F]{4}))*\"/,\n\t}),\n\n\tLeftParenthesis: createToken({\n\t\tname: 'LeftParenthesis',\n\t\tpattern: /\\(/,\n\t}),\n\n\tRightParenthesis: createToken({\n\t\tname: 'RightParenthesis',\n\t\tpattern: /\\)/,\n\t}),\n\n\tLeftBracket: createToken({\n\t\tname: 'LeftBracket',\n\t\tpattern: /\\[/,\n\t}),\n\n\tRightBracket: createToken({\n\t\tname: 'RightBracket',\n\t\tpattern: /]/,\n\t}),\n\n\tNotEquals: createToken({\n\t\tname: 'NotEquals',\n\t\tpattern: /!=/,\n\t}),\n\n\tTrue: createToken({\n\t\tname: 'True',\n\t\tpattern: /true/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tFalse: createToken({\n\t\tname: 'False',\n\t\tpattern: /false/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tNull: createToken({\n\t\tname: 'Null',\n\t\tpattern: /null/,\n\t\tlonger_alt: identifier,\n\t}),\n\n\tEquals: createToken({\n\t\tname: 'Equals',\n\t\tpattern: /=/,\n\t}),\n\n\tNot: createToken({\n\t\tname: 'Not',\n\t\tpattern: /!/,\n\t}),\n\n\tAnd: createToken({\n\t\tname: 'And',\n\t\tpattern: /&&/,\n\t}),\n\n\tOr: createToken({\n\t\tname: 'Or',\n\t\tpattern: /\\|\\|/,\n\t}),\n\n\tLowerEqual: createToken({\n\t\tname: 'LowerEqual',\n\t\tpattern: /<=/,\n\t}),\n\n\tGreaterEqual: createToken({\n\t\tname: 'GreaterEqual',\n\t\tpattern: />=/,\n\t}),\n\n\tLowerThan: createToken({\n\t\tname: 'LowerThan',\n\t\tpattern: /</,\n\t}),\n\n\tGreaterThan: createToken({\n\t\tname: 'GreaterThan',\n\t\tpattern: />/,\n\t}),\n}\n\nconst tokenList = [\n\ttokens.WhiteSpace,\n\ttokens.True,\n\ttokens.False,\n\ttokens.Null,\n\ttokens.EntityIdentifier,\n\ttokens.Identifier,\n\ttokens.DollarSign,\n\ttokens.Dot,\n\ttokens.Comma,\n\ttokens.Colon,\n\ttokens.Slash,\n\ttokens.StringLiteral,\n\ttokens.NumberLiteral,\n\ttokens.LeftParenthesis,\n\ttokens.RightParenthesis,\n\ttokens.LeftBracket,\n\ttokens.RightBracket,\n\ttokens.NotEquals,\n\ttokens.Equals,\n\ttokens.Not,\n\ttokens.GreaterEqual,\n\ttokens.GreaterThan,\n\ttokens.LowerEqual,\n\ttokens.LowerThan,\n\ttokens.And,\n\ttokens.Or,\n]\n\nexport { tokenList }\n"],"names":["TokenRegExps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.cjs","sources":["../../../../../packages/binding-common/src/schema/Schema.ts"],"sourcesContent":["import type { EntityName, FieldName } from '../treeParameters'\nimport type { SchemaField } from './SchemaField'\nimport type { SchemaStore } from './SchemaStore'\nimport { SchemaEntity } from './SchemaEntity'\nimport { SchemaColumn } from './SchemaColumn'\nimport { SchemaRelation } from './SchemaRelation'\nimport { SchemaEnumName } from './SchemaEnums'\nimport { throwBindingError } from '../BindingError'\n\nexport class Schema {\n\tpublic constructor(private readonly store: SchemaStore) {}\n\n\
|
|
1
|
+
{"version":3,"file":"Schema.cjs","sources":["../../../../../packages/binding-common/src/schema/Schema.ts"],"sourcesContent":["import type { EntityName, FieldName } from '../treeParameters'\nimport type { SchemaField } from './SchemaField'\nimport type { SchemaStore } from './SchemaStore'\nimport { SchemaEntity } from './SchemaEntity'\nimport { SchemaColumn } from './SchemaColumn'\nimport { SchemaRelation } from './SchemaRelation'\nimport { SchemaEnumName } from './SchemaEnums'\nimport { throwBindingError } from '../BindingError'\n\nexport class Schema {\n\tpublic constructor(private readonly store: SchemaStore) {}\n\n\tpublic getEnumNames(): string[] {\n\t\treturn Array.from(this.store.enums.keys())\n\t}\n\n\tpublic getEnumValues(enumName: SchemaEnumName): string[] {\n\t\treturn Array.from(this.store.enums.get(enumName) ?? throwBindingError(`Missing schema for enum ${enumName}`))\n\t}\n\n\tpublic getEntityOrUndefined(entityName: EntityName): SchemaEntity | undefined {\n\t\treturn this.store.entities.get(entityName)\n\t}\n\n\tpublic getEntityNames(): string[] {\n\t\treturn Array.from(this.store.entities.keys())\n\t}\n\n\tpublic getEntity(entityName: EntityName): SchemaEntity {\n\t\treturn this.getEntityOrUndefined(entityName) ?? throwBindingError(`Missing schema for entity ${entityName}`)\n\t}\n\n\tpublic getEntityFieldOrUndefined(entityName: EntityName, fieldName: FieldName): SchemaField | undefined {\n\t\treturn this.store.entities.get(entityName)?.fields.get(fieldName)\n\t}\n\n\tpublic getEntityField(entityName: EntityName, fieldName: FieldName): SchemaField {\n\t\treturn this.getEntityFieldOrUndefined(entityName, fieldName) ?? throwBindingError(`Missing schema for field ${entityName}.${fieldName}`)\n\t}\n\n\tpublic getEntityColumn(entityName: EntityName, fieldName: FieldName): SchemaColumn {\n\t\tconst field = this.getEntityField(entityName, fieldName)\n\t\treturn field.__typename === '_Column' ? field : throwBindingError(`Field ${entityName}.${fieldName} is not of type column`)\n\t}\n\n\tpublic getEntityRelation(entityName: EntityName, fieldName: FieldName): SchemaRelation {\n\t\tconst field = this.getEntityField(entityName, fieldName)\n\t\treturn field.__typename === '_Relation' ? field : throwBindingError(`Field ${entityName}.${fieldName} is not of type relation`)\n\t}\n}\n"],"names":["throwBindingError"],"mappings":";;;AASO,MAAM,OAAO;AAAA,EACZ,YAA6B,OAAoB;AAApB,SAAA,QAAA;AAAA,EAAqB;AAAA,EAElD,eAAyB;AAC/B,WAAO,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM;AAAA,EAC1C;AAAA,EAEO,cAAc,UAAoC;AACxD,WAAO,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,QAAQ,KAAKA,aAAAA,kBAAkB,2BAA2B,QAAQ,EAAE,CAAC;AAAA,EAC7G;AAAA,EAEO,qBAAqB,YAAkD;AAC7E,WAAO,KAAK,MAAM,SAAS,IAAI,UAAU;AAAA,EAC1C;AAAA,EAEO,iBAA2B;AACjC,WAAO,MAAM,KAAK,KAAK,MAAM,SAAS,MAAM;AAAA,EAC7C;AAAA,EAEO,UAAU,YAAsC;AACtD,WAAO,KAAK,qBAAqB,UAAU,KAAKA,aAAAA,kBAAkB,6BAA6B,UAAU,EAAE;AAAA,EAC5G;AAAA,EAEO,0BAA0B,YAAwB,WAA+C;AACvG,WAAO,KAAK,MAAM,SAAS,IAAI,UAAU,GAAG,OAAO,IAAI,SAAS;AAAA,EACjE;AAAA,EAEO,eAAe,YAAwB,WAAmC;AAChF,WAAO,KAAK,0BAA0B,YAAY,SAAS,KAAKA,aAAAA,kBAAkB,4BAA4B,UAAU,IAAI,SAAS,EAAE;AAAA,EACxI;AAAA,EAEO,gBAAgB,YAAwB,WAAoC;AAClF,UAAM,QAAQ,KAAK,eAAe,YAAY,SAAS;AACvD,WAAO,MAAM,eAAe,YAAY,QAAQA,aAAAA,kBAAkB,SAAS,UAAU,IAAI,SAAS,wBAAwB;AAAA,EAC3H;AAAA,EAEO,kBAAkB,YAAwB,WAAsC;AACtF,UAAM,QAAQ,KAAK,eAAe,YAAY,SAAS;AACvD,WAAO,MAAM,eAAe,cAAc,QAAQA,aAAAA,kBAAkB,SAAS,UAAU,IAAI,SAAS,0BAA0B;AAAA,EAC/H;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sources":["../../../../../packages/binding-common/src/schema/Schema.ts"],"sourcesContent":["import type { EntityName, FieldName } from '../treeParameters'\nimport type { SchemaField } from './SchemaField'\nimport type { SchemaStore } from './SchemaStore'\nimport { SchemaEntity } from './SchemaEntity'\nimport { SchemaColumn } from './SchemaColumn'\nimport { SchemaRelation } from './SchemaRelation'\nimport { SchemaEnumName } from './SchemaEnums'\nimport { throwBindingError } from '../BindingError'\n\nexport class Schema {\n\tpublic constructor(private readonly store: SchemaStore) {}\n\n\
|
|
1
|
+
{"version":3,"file":"Schema.js","sources":["../../../../../packages/binding-common/src/schema/Schema.ts"],"sourcesContent":["import type { EntityName, FieldName } from '../treeParameters'\nimport type { SchemaField } from './SchemaField'\nimport type { SchemaStore } from './SchemaStore'\nimport { SchemaEntity } from './SchemaEntity'\nimport { SchemaColumn } from './SchemaColumn'\nimport { SchemaRelation } from './SchemaRelation'\nimport { SchemaEnumName } from './SchemaEnums'\nimport { throwBindingError } from '../BindingError'\n\nexport class Schema {\n\tpublic constructor(private readonly store: SchemaStore) {}\n\n\tpublic getEnumNames(): string[] {\n\t\treturn Array.from(this.store.enums.keys())\n\t}\n\n\tpublic getEnumValues(enumName: SchemaEnumName): string[] {\n\t\treturn Array.from(this.store.enums.get(enumName) ?? throwBindingError(`Missing schema for enum ${enumName}`))\n\t}\n\n\tpublic getEntityOrUndefined(entityName: EntityName): SchemaEntity | undefined {\n\t\treturn this.store.entities.get(entityName)\n\t}\n\n\tpublic getEntityNames(): string[] {\n\t\treturn Array.from(this.store.entities.keys())\n\t}\n\n\tpublic getEntity(entityName: EntityName): SchemaEntity {\n\t\treturn this.getEntityOrUndefined(entityName) ?? throwBindingError(`Missing schema for entity ${entityName}`)\n\t}\n\n\tpublic getEntityFieldOrUndefined(entityName: EntityName, fieldName: FieldName): SchemaField | undefined {\n\t\treturn this.store.entities.get(entityName)?.fields.get(fieldName)\n\t}\n\n\tpublic getEntityField(entityName: EntityName, fieldName: FieldName): SchemaField {\n\t\treturn this.getEntityFieldOrUndefined(entityName, fieldName) ?? throwBindingError(`Missing schema for field ${entityName}.${fieldName}`)\n\t}\n\n\tpublic getEntityColumn(entityName: EntityName, fieldName: FieldName): SchemaColumn {\n\t\tconst field = this.getEntityField(entityName, fieldName)\n\t\treturn field.__typename === '_Column' ? field : throwBindingError(`Field ${entityName}.${fieldName} is not of type column`)\n\t}\n\n\tpublic getEntityRelation(entityName: EntityName, fieldName: FieldName): SchemaRelation {\n\t\tconst field = this.getEntityField(entityName, fieldName)\n\t\treturn field.__typename === '_Relation' ? field : throwBindingError(`Field ${entityName}.${fieldName} is not of type relation`)\n\t}\n}\n"],"names":[],"mappings":";AASO,MAAM,OAAO;AAAA,EACZ,YAA6B,OAAoB;AAApB,SAAA,QAAA;AAAA,EAAqB;AAAA,EAElD,eAAyB;AAC/B,WAAO,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM;AAAA,EAC1C;AAAA,EAEO,cAAc,UAAoC;AACxD,WAAO,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,QAAQ,KAAK,kBAAkB,2BAA2B,QAAQ,EAAE,CAAC;AAAA,EAC7G;AAAA,EAEO,qBAAqB,YAAkD;AAC7E,WAAO,KAAK,MAAM,SAAS,IAAI,UAAU;AAAA,EAC1C;AAAA,EAEO,iBAA2B;AACjC,WAAO,MAAM,KAAK,KAAK,MAAM,SAAS,MAAM;AAAA,EAC7C;AAAA,EAEO,UAAU,YAAsC;AACtD,WAAO,KAAK,qBAAqB,UAAU,KAAK,kBAAkB,6BAA6B,UAAU,EAAE;AAAA,EAC5G;AAAA,EAEO,0BAA0B,YAAwB,WAA+C;AACvG,WAAO,KAAK,MAAM,SAAS,IAAI,UAAU,GAAG,OAAO,IAAI,SAAS;AAAA,EACjE;AAAA,EAEO,eAAe,YAAwB,WAAmC;AAChF,WAAO,KAAK,0BAA0B,YAAY,SAAS,KAAK,kBAAkB,4BAA4B,UAAU,IAAI,SAAS,EAAE;AAAA,EACxI;AAAA,EAEO,gBAAgB,YAAwB,WAAoC;AAClF,UAAM,QAAQ,KAAK,eAAe,YAAY,SAAS;AACvD,WAAO,MAAM,eAAe,YAAY,QAAQ,kBAAkB,SAAS,UAAU,IAAI,SAAS,wBAAwB;AAAA,EAC3H;AAAA,EAEO,kBAAkB,YAAwB,WAAsC;AACtF,UAAM,QAAQ,KAAK,eAAe,YAAY,SAAS;AACvD,WAAO,MAAM,eAAe,cAAc,QAAQ,kBAAkB,SAAS,UAAU,IAAI,SAAS,0BAA0B;AAAA,EAC/H;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaLoader.cjs","sources":["../../../../../packages/binding-common/src/schema/SchemaLoader.ts"],"sourcesContent":["import type { GraphQlClient, GraphQlClientRequestOptions } from '@contember/client'\nimport type { RawSchema } from './RawSchema'\nimport { Schema } from './Schema'\nimport { SchemaPreprocessor } from './SchemaPreprocessor'\n\nexport class SchemaLoader {\n\tprivate static readonly schemaLoadCache: Map<string, Promise<Schema>> = new Map()\n\n\tprivate static readonly schemaQuery
|
|
1
|
+
{"version":3,"file":"SchemaLoader.cjs","sources":["../../../../../packages/binding-common/src/schema/SchemaLoader.ts"],"sourcesContent":["import type { GraphQlClient, GraphQlClientRequestOptions } from '@contember/client'\nimport type { RawSchema } from './RawSchema'\nimport { Schema } from './Schema'\nimport { SchemaPreprocessor } from './SchemaPreprocessor'\n\nexport class SchemaLoader {\n\tprivate static readonly schemaLoadCache: Map<string, Promise<Schema>> = new Map()\n\n\tprivate static readonly schemaQuery = 'query {\\n'\n\t\t+ ' schema {\\n'\n\t\t+ ' enums {\\n'\n\t\t+ ' name\\n'\n\t\t+ ' values\\n'\n\t\t+ ' }\\n'\n\t\t+ ' entities {\\n'\n\t\t+ ' name\\n'\n\t\t+ ' customPrimaryAllowed\\n'\n\t\t+ ' unique {\\n'\n\t\t+ ' fields\\n'\n\t\t+ ' }\\n'\n\t\t+ ' fields {\\n'\n\t\t+ ' __typename\\n'\n\t\t+ ' name\\n'\n\t\t+ ' type\\n'\n\t\t+ ' nullable\\n'\n\t\t+ ' ... on _Column {\\n'\n\t\t+ ' enumName\\n'\n\t\t+ ' defaultValue\\n'\n\t\t+ ' }\\n'\n\t\t+ ' ... on _Relation {\\n'\n\t\t+ ' side\\n'\n\t\t+ ' targetEntity\\n'\n\t\t+ ' ownedBy\\n'\n\t\t+ ' inversedBy\\n'\n\t\t+ ' onDelete\\n'\n\t\t+ ' orphanRemoval\\n'\n\t\t+ ' orderBy {\\n'\n\t\t+ ' path\\n'\n\t\t+ ' direction\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ '}'\n\n\tpublic static async loadSchema(\n\t\tclient: GraphQlClient,\n\t\toptions?: GraphQlClientRequestOptions,\n\t): Promise<Schema> {\n\t\tconst existing = this.schemaLoadCache.get(client.apiUrl)\n\t\tif (existing !== undefined) {\n\t\t\treturn existing\n\t\t}\n\t\tconst schemaPromise = (async () => {\n\t\t\tconst raw = await client.execute<{ schema: RawSchema }>(this.schemaQuery, options)\n\t\t\treturn new Schema(SchemaPreprocessor.processRawSchema(raw.schema))\n\t\t})()\n\t\tthis.schemaLoadCache.set(client.apiUrl, schemaPromise)\n\t\treturn await schemaPromise\n\t}\n}\n"],"names":["Schema","SchemaPreprocessor"],"mappings":";;;;;;;AAKO,MAAM,aAAa;AAAA,EAyCzB,aAAoB,WACnB,QACA,SACkB;AAClB,UAAM,WAAW,KAAK,gBAAgB,IAAI,OAAO,MAAM;AACvD,QAAI,aAAa,QAAW;AAC3B,aAAO;AAAA,IACR;AACA,UAAM,iBAAiB,YAAY;AAClC,YAAM,MAAM,MAAM,OAAO,QAA+B,KAAK,aAAa,OAAO;AACjF,aAAO,IAAIA,OAAAA,OAAOC,mBAAAA,mBAAmB,iBAAiB,IAAI,MAAM,CAAC;AAAA,IAClE,GAAA;AACA,SAAK,gBAAgB,IAAI,OAAO,QAAQ,aAAa;AACrD,WAAO,MAAM;AAAA,EACd;AACD;AAvDC,cADY,cACY,mBAAgD,oBAAI,KAAI;AAEhF,cAHY,cAGY,eAAc,+kBAAA;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaLoader.js","sources":["../../../../../packages/binding-common/src/schema/SchemaLoader.ts"],"sourcesContent":["import type { GraphQlClient, GraphQlClientRequestOptions } from '@contember/client'\nimport type { RawSchema } from './RawSchema'\nimport { Schema } from './Schema'\nimport { SchemaPreprocessor } from './SchemaPreprocessor'\n\nexport class SchemaLoader {\n\tprivate static readonly schemaLoadCache: Map<string, Promise<Schema>> = new Map()\n\n\tprivate static readonly schemaQuery
|
|
1
|
+
{"version":3,"file":"SchemaLoader.js","sources":["../../../../../packages/binding-common/src/schema/SchemaLoader.ts"],"sourcesContent":["import type { GraphQlClient, GraphQlClientRequestOptions } from '@contember/client'\nimport type { RawSchema } from './RawSchema'\nimport { Schema } from './Schema'\nimport { SchemaPreprocessor } from './SchemaPreprocessor'\n\nexport class SchemaLoader {\n\tprivate static readonly schemaLoadCache: Map<string, Promise<Schema>> = new Map()\n\n\tprivate static readonly schemaQuery = 'query {\\n'\n\t\t+ ' schema {\\n'\n\t\t+ ' enums {\\n'\n\t\t+ ' name\\n'\n\t\t+ ' values\\n'\n\t\t+ ' }\\n'\n\t\t+ ' entities {\\n'\n\t\t+ ' name\\n'\n\t\t+ ' customPrimaryAllowed\\n'\n\t\t+ ' unique {\\n'\n\t\t+ ' fields\\n'\n\t\t+ ' }\\n'\n\t\t+ ' fields {\\n'\n\t\t+ ' __typename\\n'\n\t\t+ ' name\\n'\n\t\t+ ' type\\n'\n\t\t+ ' nullable\\n'\n\t\t+ ' ... on _Column {\\n'\n\t\t+ ' enumName\\n'\n\t\t+ ' defaultValue\\n'\n\t\t+ ' }\\n'\n\t\t+ ' ... on _Relation {\\n'\n\t\t+ ' side\\n'\n\t\t+ ' targetEntity\\n'\n\t\t+ ' ownedBy\\n'\n\t\t+ ' inversedBy\\n'\n\t\t+ ' onDelete\\n'\n\t\t+ ' orphanRemoval\\n'\n\t\t+ ' orderBy {\\n'\n\t\t+ ' path\\n'\n\t\t+ ' direction\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ ' }\\n'\n\t\t+ '}'\n\n\tpublic static async loadSchema(\n\t\tclient: GraphQlClient,\n\t\toptions?: GraphQlClientRequestOptions,\n\t): Promise<Schema> {\n\t\tconst existing = this.schemaLoadCache.get(client.apiUrl)\n\t\tif (existing !== undefined) {\n\t\t\treturn existing\n\t\t}\n\t\tconst schemaPromise = (async () => {\n\t\t\tconst raw = await client.execute<{ schema: RawSchema }>(this.schemaQuery, options)\n\t\t\treturn new Schema(SchemaPreprocessor.processRawSchema(raw.schema))\n\t\t})()\n\t\tthis.schemaLoadCache.set(client.apiUrl, schemaPromise)\n\t\treturn await schemaPromise\n\t}\n}\n"],"names":[],"mappings":";;;;;AAKO,MAAM,aAAa;AAAA,EAyCzB,aAAoB,WACnB,QACA,SACkB;AAClB,UAAM,WAAW,KAAK,gBAAgB,IAAI,OAAO,MAAM;AACvD,QAAI,aAAa,QAAW;AAC3B,aAAO;AAAA,IACR;AACA,UAAM,iBAAiB,YAAY;AAClC,YAAM,MAAM,MAAM,OAAO,QAA+B,KAAK,aAAa,OAAO;AACjF,aAAO,IAAI,OAAO,mBAAmB,iBAAiB,IAAI,MAAM,CAAC;AAAA,IAClE,GAAA;AACA,SAAK,gBAAgB,IAAI,OAAO,QAAQ,aAAa;AACrD,WAAO,MAAM;AAAA,EACd;AACD;AAvDC,cADY,cACY,mBAAgD,oBAAI,KAAI;AAEhF,cAHY,cAGY,eAAc,+kBAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaPreprocessor.cjs","sources":["../../../../../packages/binding-common/src/schema/SchemaPreprocessor.ts"],"sourcesContent":["import type { RawSchema } from './RawSchema'\nimport type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'\nimport type { RawSchemaEnum } from './RawSchemaEnum'\nimport type { SchemaEntities } from './SchemaEntities'\nimport type { SchemaEnums } from './SchemaEnums'\nimport type { SchemaFields } from './SchemaFields'\nimport type { SchemaStore } from './SchemaStore'\n\nexport class SchemaPreprocessor {\n\tpublic static processRawSchema(rawSchema: RawSchema): SchemaStore {\n\t\treturn {\n\t\t\tenums: this.processRawEnums(rawSchema.enums),\n\t\t\tentities: this.processRawEntities(rawSchema.entities),\n\t\t}\n\t}\n\n\tprivate static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {\n\t\tconst enums: SchemaEnums = new Map()\n\n\t\tfor (const { name, values } of rawEnums) {\n\t\t\tenums.set(name, new Set(values))\n\t\t}\n\n\t\treturn enums\n\t}\n\n\tprivate static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {\n\t\tconst entities: SchemaEntities = new Map()\n\n\t\tfor (const entity of rawEntities) {\n\t\t\tentities.set(entity.name, {\n\t\t\t\tcustomPrimaryAllowed: entity.customPrimaryAllowed,\n\t\t\t\tfields: this.processRawFields(entity.fields),\n\t\t\t\tname: entity.name,\n\t\t\t\tunique: entity.unique.map(it => ({ fields: new Set(it.fields) })),\n\t\t\t})\n\t\t}\n\n\t\treturn entities\n\t}\n\n\tprivate static processRawFields(rawFields: RawSchemaFields): SchemaFields {\n\t\tconst fields: SchemaFields = new Map()\n\n\t\tfor (const field of rawFields) {\n\t\t\tfields.set(field.name, field)\n\t\t}\n\n\t\treturn fields\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,mBAAmB;AAAA,EAC/B,OAAc,iBAAiB,WAAmC;
|
|
1
|
+
{"version":3,"file":"SchemaPreprocessor.cjs","sources":["../../../../../packages/binding-common/src/schema/SchemaPreprocessor.ts"],"sourcesContent":["import type { RawSchema } from './RawSchema'\nimport type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'\nimport type { RawSchemaEnum } from './RawSchemaEnum'\nimport type { SchemaEntities } from './SchemaEntities'\nimport type { SchemaEnums } from './SchemaEnums'\nimport type { SchemaFields } from './SchemaFields'\nimport type { SchemaStore } from './SchemaStore'\n\nexport class SchemaPreprocessor {\n\tpublic static processRawSchema(rawSchema: RawSchema): SchemaStore {\n\t\treturn {\n\t\t\tenums: this.processRawEnums(rawSchema.enums),\n\t\t\tentities: this.processRawEntities(rawSchema.entities),\n\t\t}\n\t}\n\n\tprivate static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {\n\t\tconst enums: SchemaEnums = new Map()\n\n\t\tfor (const { name, values } of rawEnums) {\n\t\t\tenums.set(name, new Set(values))\n\t\t}\n\n\t\treturn enums\n\t}\n\n\tprivate static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {\n\t\tconst entities: SchemaEntities = new Map()\n\n\t\tfor (const entity of rawEntities) {\n\t\t\tentities.set(entity.name, {\n\t\t\t\tcustomPrimaryAllowed: entity.customPrimaryAllowed,\n\t\t\t\tfields: this.processRawFields(entity.fields),\n\t\t\t\tname: entity.name,\n\t\t\t\tunique: entity.unique.map(it => ({ fields: new Set(it.fields) })),\n\t\t\t})\n\t\t}\n\n\t\treturn entities\n\t}\n\n\tprivate static processRawFields(rawFields: RawSchemaFields): SchemaFields {\n\t\tconst fields: SchemaFields = new Map()\n\n\t\tfor (const field of rawFields) {\n\t\t\tfields.set(field.name, field)\n\t\t}\n\n\t\treturn fields\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,mBAAmB;AAAA,EAC/B,OAAc,iBAAiB,WAAmC;AACjE,WAAO;AAAA,MACN,OAAO,KAAK,gBAAgB,UAAU,KAAK;AAAA,MAC3C,UAAU,KAAK,mBAAmB,UAAU,QAAQ;AAAA,IAAA;AAAA,EAEtD;AAAA,EAEA,OAAe,gBAAgB,UAAwC;AACtE,UAAM,4BAAyB,IAAA;AAE/B,eAAW,EAAE,MAAM,OAAA,KAAY,UAAU;AACxC,YAAM,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC;AAAA,IAChC;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,mBAAmB,aAAgD;AACjF,UAAM,+BAA+B,IAAA;AAErC,eAAW,UAAU,aAAa;AACjC,eAAS,IAAI,OAAO,MAAM;AAAA,QACzB,sBAAsB,OAAO;AAAA,QAC7B,QAAQ,KAAK,iBAAiB,OAAO,MAAM;AAAA,QAC3C,MAAM,OAAO;AAAA,QACb,QAAQ,OAAO,OAAO,IAAI,CAAA,QAAO,EAAE,QAAQ,IAAI,IAAI,GAAG,MAAM,EAAA,EAAI;AAAA,MAAA,CAChE;AAAA,IACF;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,iBAAiB,WAA0C;AACzE,UAAM,6BAA2B,IAAA;AAEjC,eAAW,SAAS,WAAW;AAC9B,aAAO,IAAI,MAAM,MAAM,KAAK;AAAA,IAC7B;AAEA,WAAO;AAAA,EACR;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaPreprocessor.js","sources":["../../../../../packages/binding-common/src/schema/SchemaPreprocessor.ts"],"sourcesContent":["import type { RawSchema } from './RawSchema'\nimport type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'\nimport type { RawSchemaEnum } from './RawSchemaEnum'\nimport type { SchemaEntities } from './SchemaEntities'\nimport type { SchemaEnums } from './SchemaEnums'\nimport type { SchemaFields } from './SchemaFields'\nimport type { SchemaStore } from './SchemaStore'\n\nexport class SchemaPreprocessor {\n\tpublic static processRawSchema(rawSchema: RawSchema): SchemaStore {\n\t\treturn {\n\t\t\tenums: this.processRawEnums(rawSchema.enums),\n\t\t\tentities: this.processRawEntities(rawSchema.entities),\n\t\t}\n\t}\n\n\tprivate static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {\n\t\tconst enums: SchemaEnums = new Map()\n\n\t\tfor (const { name, values } of rawEnums) {\n\t\t\tenums.set(name, new Set(values))\n\t\t}\n\n\t\treturn enums\n\t}\n\n\tprivate static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {\n\t\tconst entities: SchemaEntities = new Map()\n\n\t\tfor (const entity of rawEntities) {\n\t\t\tentities.set(entity.name, {\n\t\t\t\tcustomPrimaryAllowed: entity.customPrimaryAllowed,\n\t\t\t\tfields: this.processRawFields(entity.fields),\n\t\t\t\tname: entity.name,\n\t\t\t\tunique: entity.unique.map(it => ({ fields: new Set(it.fields) })),\n\t\t\t})\n\t\t}\n\n\t\treturn entities\n\t}\n\n\tprivate static processRawFields(rawFields: RawSchemaFields): SchemaFields {\n\t\tconst fields: SchemaFields = new Map()\n\n\t\tfor (const field of rawFields) {\n\t\t\tfields.set(field.name, field)\n\t\t}\n\n\t\treturn fields\n\t}\n}\n"],"names":[],"mappings":"AAQO,MAAM,mBAAmB;AAAA,EAC/B,OAAc,iBAAiB,WAAmC;
|
|
1
|
+
{"version":3,"file":"SchemaPreprocessor.js","sources":["../../../../../packages/binding-common/src/schema/SchemaPreprocessor.ts"],"sourcesContent":["import type { RawSchema } from './RawSchema'\nimport type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'\nimport type { RawSchemaEnum } from './RawSchemaEnum'\nimport type { SchemaEntities } from './SchemaEntities'\nimport type { SchemaEnums } from './SchemaEnums'\nimport type { SchemaFields } from './SchemaFields'\nimport type { SchemaStore } from './SchemaStore'\n\nexport class SchemaPreprocessor {\n\tpublic static processRawSchema(rawSchema: RawSchema): SchemaStore {\n\t\treturn {\n\t\t\tenums: this.processRawEnums(rawSchema.enums),\n\t\t\tentities: this.processRawEntities(rawSchema.entities),\n\t\t}\n\t}\n\n\tprivate static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {\n\t\tconst enums: SchemaEnums = new Map()\n\n\t\tfor (const { name, values } of rawEnums) {\n\t\t\tenums.set(name, new Set(values))\n\t\t}\n\n\t\treturn enums\n\t}\n\n\tprivate static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {\n\t\tconst entities: SchemaEntities = new Map()\n\n\t\tfor (const entity of rawEntities) {\n\t\t\tentities.set(entity.name, {\n\t\t\t\tcustomPrimaryAllowed: entity.customPrimaryAllowed,\n\t\t\t\tfields: this.processRawFields(entity.fields),\n\t\t\t\tname: entity.name,\n\t\t\t\tunique: entity.unique.map(it => ({ fields: new Set(it.fields) })),\n\t\t\t})\n\t\t}\n\n\t\treturn entities\n\t}\n\n\tprivate static processRawFields(rawFields: RawSchemaFields): SchemaFields {\n\t\tconst fields: SchemaFields = new Map()\n\n\t\tfor (const field of rawFields) {\n\t\t\tfields.set(field.name, field)\n\t\t}\n\n\t\treturn fields\n\t}\n}\n"],"names":[],"mappings":"AAQO,MAAM,mBAAmB;AAAA,EAC/B,OAAc,iBAAiB,WAAmC;AACjE,WAAO;AAAA,MACN,OAAO,KAAK,gBAAgB,UAAU,KAAK;AAAA,MAC3C,UAAU,KAAK,mBAAmB,UAAU,QAAQ;AAAA,IAAA;AAAA,EAEtD;AAAA,EAEA,OAAe,gBAAgB,UAAwC;AACtE,UAAM,4BAAyB,IAAA;AAE/B,eAAW,EAAE,MAAM,OAAA,KAAY,UAAU;AACxC,YAAM,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC;AAAA,IAChC;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,mBAAmB,aAAgD;AACjF,UAAM,+BAA+B,IAAA;AAErC,eAAW,UAAU,aAAa;AACjC,eAAS,IAAI,OAAO,MAAM;AAAA,QACzB,sBAAsB,OAAO;AAAA,QAC7B,QAAQ,KAAK,iBAAiB,OAAO,MAAM;AAAA,QAC3C,MAAM,OAAO;AAAA,QACb,QAAQ,OAAO,OAAO,IAAI,CAAA,QAAO,EAAE,QAAQ,IAAI,IAAI,GAAG,MAAM,EAAA,EAAI;AAAA,MAAA,CAChE;AAAA,IACF;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,iBAAiB,WAA0C;AACzE,UAAM,6BAA2B,IAAA;AAEjC,eAAW,SAAS,WAAW;AAC9B,aAAO,IAAI,MAAM,MAAM,KAAK;AAAA,IAC7B;AAEA,WAAO;AAAA,EACR;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventListenersStore.cjs","sources":["../../../../../packages/binding-common/src/treeParameters/EventListenersStore.ts"],"sourcesContent":["type AnyFunction = (...args: any[]) => any\nexport type GenericEventsMap = {\n\t[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>\n}\n\nexport class EventListenersStore<Events extends GenericEventsMap> {\n\
|
|
1
|
+
{"version":3,"file":"EventListenersStore.cjs","sources":["../../../../../packages/binding-common/src/treeParameters/EventListenersStore.ts"],"sourcesContent":["type AnyFunction = (...args: any[]) => any\nexport type GenericEventsMap = {\n\t[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>\n}\n\nexport class EventListenersStore<Events extends GenericEventsMap> {\n\tconstructor(\n\t\tprivate readonly parentStoreGetter?: () => EventListenersStore<Events> | undefined,\n\t\tprivate listeners?: Map<string, Set<Events[any]>>,\n\t) {}\n\n\tset<Type extends keyof Events>(event: { type: Type; key?: string }, listeners: Set<Events[Type]>): void {\n\t\tthis.listeners ??= new Map()\n\t\tthis.listeners.set(this.formatMapEntryKey(event), listeners)\n\t}\n\n\tdelete<Type extends keyof Events>(event: { type: Type; key?: string }) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tthis.listeners.delete(this.formatMapEntryKey(event))\n\t}\n\n\tdeleteByType<Type extends keyof Events>(type: Type) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst prefix = this.formatMapEntryKey({ type, key: '' })\n\t\tfor (const eventType of this.listeners.keys()) {\n\t\t\tif (eventType.startsWith(prefix)) {\n\t\t\t\tthis.listeners.delete(eventType)\n\t\t\t}\n\t\t}\n\t}\n\n\tget<Type extends keyof Events>(event: { type: Type; key?: string }): Set<Events[Type]> | undefined {\n\t\tif (!this.listeners) {\n\t\t\treturn undefined\n\t\t}\n\t\tconst ownListeners = this.listeners.get(this.formatMapEntryKey(event))\n\t\tconst parentListeners = this.parentStoreGetter?.()?.get(event)\n\t\tif (!parentListeners) {\n\t\t\treturn ownListeners\n\t\t} else if (!ownListeners) {\n\t\t\treturn parentListeners\n\t\t}\n\t\treturn new Set([...ownListeners, ...parentListeners])\n\t}\n\n\tinvoke<Type extends keyof Events>(event: { type: Type; key?: string }, ...args: Parameters<Events[Type]>): void {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst listeners = this.get(event)\n\t\tif (listeners) {\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener(...args)\n\t\t\t}\n\t\t}\n\t}\n\n\tadd<Type extends keyof Events>(event: { type: Type; key?: string }, handler: Events[Type]): () => void {\n\t\tconst key = this.formatMapEntryKey(event)\n\t\tlet eventListeners = this.addInternal(key, handler)\n\t\treturn () => eventListeners?.delete(handler)\n\t}\n\n\tclone(): EventListenersStore<Events> {\n\t\tif (!this.listeners) {\n\t\t\treturn new EventListenersStore<Events>(this.parentStoreGetter)\n\t\t}\n\t\tconst store: EventListenersStore<Events> = new EventListenersStore(this.parentStoreGetter, new Map())\n\t\tfor (const [key, value] of this.listeners.entries()) {\n\t\t\tstore.listeners!.set(key, new Set(value))\n\t\t}\n\t\treturn store\n\t}\n\n\tappend(other: EventListenersStore<Events>) {\n\t\tif (!other.listeners) {\n\t\t\treturn\n\t\t}\n\t\tfor (const [eventKey, otherListeners] of other.listeners) {\n\t\t\tfor (const listener of otherListeners) {\n\t\t\t\tthis.addInternal(eventKey, listener)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate formatMapEntryKey(event: { type: keyof Events; key?: string }): string {\n\t\treturn event.key ? `${(event.type as string)}_${event.key ?? ''}` : (event.type as string)\n\t}\n\n\tprivate addInternal<Type extends keyof Events>(key: string, handler: Events[Type]) {\n\t\tthis.listeners ??= new Map()\n\t\tlet eventListeners = this.listeners.get(key)\n\t\tif (!eventListeners) {\n\t\t\teventListeners = new Set()\n\t\t\tthis.listeners.set(key, eventListeners)\n\t\t}\n\t\teventListeners.add(handler)\n\t\treturn eventListeners\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,oBAAqD;AAAA,EACjE,YACkB,mBACT,WACP;AAFgB,SAAA,oBAAA;AACT,SAAA,YAAA;AAAA,EACN;AAAA,EAEH,IAA+B,OAAqC,WAAoC;AACvG,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,SAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,GAAG,SAAS;AAAA,EAC5D;AAAA,EAEA,OAAkC,OAAqC;AACtE,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,SAAK,UAAU,OAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,EACpD;AAAA,EAEA,aAAwC,MAAY;AACnD,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,kBAAkB,EAAE,MAAM,KAAK,IAAI;AACvD,eAAW,aAAa,KAAK,UAAU,KAAA,GAAQ;AAC9C,UAAI,UAAU,WAAW,MAAM,GAAG;AACjC,aAAK,UAAU,OAAO,SAAS;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAoE;AAClG,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO;AAAA,IACR;AACA,UAAM,eAAe,KAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,CAAC;AACrE,UAAM,kBAAkB,KAAK,oBAAA,GAAuB,IAAI,KAAK;AAC7D,QAAI,CAAC,iBAAiB;AACrB,aAAO;AAAA,IACR,WAAW,CAAC,cAAc;AACzB,aAAO;AAAA,IACR;AACA,+BAAW,IAAI,CAAC,GAAG,cAAc,GAAG,eAAe,CAAC;AAAA,EACrD;AAAA,EAEA,OAAkC,UAAwC,MAAsC;AAC/G,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,YAAY,KAAK,IAAI,KAAK;AAChC,QAAI,WAAW;AACd,iBAAW,YAAY,WAAW;AACjC,iBAAS,GAAG,IAAI;AAAA,MACjB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAqC,SAAmC;AACtG,UAAM,MAAM,KAAK,kBAAkB,KAAK;AACxC,QAAI,iBAAiB,KAAK,YAAY,KAAK,OAAO;AAClD,WAAO,MAAM,gBAAgB,OAAO,OAAO;AAAA,EAC5C;AAAA,EAEA,QAAqC;AACpC,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO,IAAI,oBAA4B,KAAK,iBAAiB;AAAA,IAC9D;AACA,UAAM,QAAqC,IAAI,oBAAoB,KAAK,mBAAmB,oBAAI,KAAK;AACpG,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,UAAU,WAAW;AACpD,YAAM,UAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,OAAoC;AAC1C,QAAI,CAAC,MAAM,WAAW;AACrB;AAAA,IACD;AACA,eAAW,CAAC,UAAU,cAAc,KAAK,MAAM,WAAW;AACzD,iBAAW,YAAY,gBAAgB;AACtC,aAAK,YAAY,UAAU,QAAQ;AAAA,MACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,kBAAkB,OAAqD;AAC9E,WAAO,MAAM,MAAM,GAAI,MAAM,IAAe,IAAI,MAAM,OAAO,EAAE,KAAM,MAAM;AAAA,EAC5E;AAAA,EAEQ,YAAuC,KAAa,SAAuB;AAClF,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,QAAI,iBAAiB,KAAK,UAAU,IAAI,GAAG;AAC3C,QAAI,CAAC,gBAAgB;AACpB,2CAAqB,IAAA;AACrB,WAAK,UAAU,IAAI,KAAK,cAAc;AAAA,IACvC;AACA,mBAAe,IAAI,OAAO;AAC1B,WAAO;AAAA,EACR;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventListenersStore.js","sources":["../../../../../packages/binding-common/src/treeParameters/EventListenersStore.ts"],"sourcesContent":["type AnyFunction = (...args: any[]) => any\nexport type GenericEventsMap = {\n\t[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>\n}\n\nexport class EventListenersStore<Events extends GenericEventsMap> {\n\
|
|
1
|
+
{"version":3,"file":"EventListenersStore.js","sources":["../../../../../packages/binding-common/src/treeParameters/EventListenersStore.ts"],"sourcesContent":["type AnyFunction = (...args: any[]) => any\nexport type GenericEventsMap = {\n\t[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>\n}\n\nexport class EventListenersStore<Events extends GenericEventsMap> {\n\tconstructor(\n\t\tprivate readonly parentStoreGetter?: () => EventListenersStore<Events> | undefined,\n\t\tprivate listeners?: Map<string, Set<Events[any]>>,\n\t) {}\n\n\tset<Type extends keyof Events>(event: { type: Type; key?: string }, listeners: Set<Events[Type]>): void {\n\t\tthis.listeners ??= new Map()\n\t\tthis.listeners.set(this.formatMapEntryKey(event), listeners)\n\t}\n\n\tdelete<Type extends keyof Events>(event: { type: Type; key?: string }) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tthis.listeners.delete(this.formatMapEntryKey(event))\n\t}\n\n\tdeleteByType<Type extends keyof Events>(type: Type) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst prefix = this.formatMapEntryKey({ type, key: '' })\n\t\tfor (const eventType of this.listeners.keys()) {\n\t\t\tif (eventType.startsWith(prefix)) {\n\t\t\t\tthis.listeners.delete(eventType)\n\t\t\t}\n\t\t}\n\t}\n\n\tget<Type extends keyof Events>(event: { type: Type; key?: string }): Set<Events[Type]> | undefined {\n\t\tif (!this.listeners) {\n\t\t\treturn undefined\n\t\t}\n\t\tconst ownListeners = this.listeners.get(this.formatMapEntryKey(event))\n\t\tconst parentListeners = this.parentStoreGetter?.()?.get(event)\n\t\tif (!parentListeners) {\n\t\t\treturn ownListeners\n\t\t} else if (!ownListeners) {\n\t\t\treturn parentListeners\n\t\t}\n\t\treturn new Set([...ownListeners, ...parentListeners])\n\t}\n\n\tinvoke<Type extends keyof Events>(event: { type: Type; key?: string }, ...args: Parameters<Events[Type]>): void {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst listeners = this.get(event)\n\t\tif (listeners) {\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener(...args)\n\t\t\t}\n\t\t}\n\t}\n\n\tadd<Type extends keyof Events>(event: { type: Type; key?: string }, handler: Events[Type]): () => void {\n\t\tconst key = this.formatMapEntryKey(event)\n\t\tlet eventListeners = this.addInternal(key, handler)\n\t\treturn () => eventListeners?.delete(handler)\n\t}\n\n\tclone(): EventListenersStore<Events> {\n\t\tif (!this.listeners) {\n\t\t\treturn new EventListenersStore<Events>(this.parentStoreGetter)\n\t\t}\n\t\tconst store: EventListenersStore<Events> = new EventListenersStore(this.parentStoreGetter, new Map())\n\t\tfor (const [key, value] of this.listeners.entries()) {\n\t\t\tstore.listeners!.set(key, new Set(value))\n\t\t}\n\t\treturn store\n\t}\n\n\tappend(other: EventListenersStore<Events>) {\n\t\tif (!other.listeners) {\n\t\t\treturn\n\t\t}\n\t\tfor (const [eventKey, otherListeners] of other.listeners) {\n\t\t\tfor (const listener of otherListeners) {\n\t\t\t\tthis.addInternal(eventKey, listener)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate formatMapEntryKey(event: { type: keyof Events; key?: string }): string {\n\t\treturn event.key ? `${(event.type as string)}_${event.key ?? ''}` : (event.type as string)\n\t}\n\n\tprivate addInternal<Type extends keyof Events>(key: string, handler: Events[Type]) {\n\t\tthis.listeners ??= new Map()\n\t\tlet eventListeners = this.listeners.get(key)\n\t\tif (!eventListeners) {\n\t\t\teventListeners = new Set()\n\t\t\tthis.listeners.set(key, eventListeners)\n\t\t}\n\t\teventListeners.add(handler)\n\t\treturn eventListeners\n\t}\n}\n"],"names":[],"mappings":"AAKO,MAAM,oBAAqD;AAAA,EACjE,YACkB,mBACT,WACP;AAFgB,SAAA,oBAAA;AACT,SAAA,YAAA;AAAA,EACN;AAAA,EAEH,IAA+B,OAAqC,WAAoC;AACvG,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,SAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,GAAG,SAAS;AAAA,EAC5D;AAAA,EAEA,OAAkC,OAAqC;AACtE,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,SAAK,UAAU,OAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,EACpD;AAAA,EAEA,aAAwC,MAAY;AACnD,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,kBAAkB,EAAE,MAAM,KAAK,IAAI;AACvD,eAAW,aAAa,KAAK,UAAU,KAAA,GAAQ;AAC9C,UAAI,UAAU,WAAW,MAAM,GAAG;AACjC,aAAK,UAAU,OAAO,SAAS;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAoE;AAClG,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO;AAAA,IACR;AACA,UAAM,eAAe,KAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,CAAC;AACrE,UAAM,kBAAkB,KAAK,oBAAA,GAAuB,IAAI,KAAK;AAC7D,QAAI,CAAC,iBAAiB;AACrB,aAAO;AAAA,IACR,WAAW,CAAC,cAAc;AACzB,aAAO;AAAA,IACR;AACA,+BAAW,IAAI,CAAC,GAAG,cAAc,GAAG,eAAe,CAAC;AAAA,EACrD;AAAA,EAEA,OAAkC,UAAwC,MAAsC;AAC/G,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,YAAY,KAAK,IAAI,KAAK;AAChC,QAAI,WAAW;AACd,iBAAW,YAAY,WAAW;AACjC,iBAAS,GAAG,IAAI;AAAA,MACjB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAqC,SAAmC;AACtG,UAAM,MAAM,KAAK,kBAAkB,KAAK;AACxC,QAAI,iBAAiB,KAAK,YAAY,KAAK,OAAO;AAClD,WAAO,MAAM,gBAAgB,OAAO,OAAO;AAAA,EAC5C;AAAA,EAEA,QAAqC;AACpC,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO,IAAI,oBAA4B,KAAK,iBAAiB;AAAA,IAC9D;AACA,UAAM,QAAqC,IAAI,oBAAoB,KAAK,mBAAmB,oBAAI,KAAK;AACpG,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,UAAU,WAAW;AACpD,YAAM,UAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,OAAoC;AAC1C,QAAI,CAAC,MAAM,WAAW;AACrB;AAAA,IACD;AACA,eAAW,CAAC,UAAU,cAAc,KAAK,MAAM,WAAW;AACzD,iBAAW,YAAY,gBAAgB;AACtC,aAAK,YAAY,UAAU,QAAQ;AAAA,MACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,kBAAkB,OAAqD;AAC9E,WAAO,MAAM,MAAM,GAAI,MAAM,IAAe,IAAI,MAAM,OAAO,EAAE,KAAM,MAAM;AAAA,EAC5E;AAAA,EAEQ,YAAuC,KAAa,SAAuB;AAClF,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,QAAI,iBAAiB,KAAK,UAAU,IAAI,GAAG;AAC3C,QAAI,CAAC,gBAAgB;AACpB,2CAAqB,IAAA;AACrB,WAAK,UAAU,IAAI,KAAK,cAAc;AAAA,IACvC;AACA,mBAAe,IAAI,OAAO;AAC1B,WAAO;AAAA,EACR;AACD;"}
|
|
@@ -136,7 +136,9 @@ class TreeParameterMerger {
|
|
|
136
136
|
}
|
|
137
137
|
static mergeSingleField(original, fresh) {
|
|
138
138
|
if (original.defaultValue !== void 0 && fresh.defaultValue !== void 0 && original.defaultValue !== fresh.defaultValue) {
|
|
139
|
-
throw new BindingError.BindingError(
|
|
139
|
+
throw new BindingError.BindingError(
|
|
140
|
+
`MarkerTreeGenerator merging: multiple fields "${original.field}" with different defaultValue found: ${JSON.stringify([original.defaultValue, fresh.defaultValue])}, `
|
|
141
|
+
);
|
|
140
142
|
}
|
|
141
143
|
return {
|
|
142
144
|
field: original.field,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeParameterMerger.cjs","sources":["../../../../../packages/binding-common/src/treeParameters/TreeParameterMerger.ts"],"sourcesContent":["import { Writable } from '@contember/client'\nimport type {\n\tAlias,\n\tEntityEventListenerStore,\n\tEventListenersStore,\n\tExpectedQualifiedEntityMutation,\n\tExpectedRelationMutation,\n\tFieldMeta,\n\tGenericEventsMap,\n\tHasManyRelation,\n\tHasOneRelation,\n\tParentEntityParameters,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSetOnCreate,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n\tUniqueWhere,\n} from '../treeParameters'\nimport { BindingError } from '../BindingError'\n\nexport class TreeParameterMerger {\n\tpublic static mergeHasOneRelationsWithSamePlaceholders(\n\t\toriginal: HasOneRelation,\n\t\tfresh: HasOneRelation,\n\t): HasOneRelation {\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tfield: original.field,\n\t\t\tfilter: original.filter,\n\t\t\treducedBy: original.reducedBy,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\texpectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\t// forceCreation: original.forceCreation || fresh.forceCreation,\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeHasManyRelationsWithSamePlaceholders(\n\t\toriginal: HasManyRelation,\n\t\tfresh: HasManyRelation,\n\t): HasManyRelation {\n\t\tif (original.initialEntityCount !== fresh.initialEntityCount) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`Detected hasMany relations on the same field '${original.field}' with different preferred initial ` +\n\t\t\t\t\t`entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`,\n\t\t\t)\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tfield: original.field,\n\t\t\tfilter: original.filter,\n\t\t\torderBy: original.orderBy,\n\t\t\toffset: original.offset,\n\t\t\tlimit: original.limit,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\texpectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\t// forceCreation: original.forceCreation || fresh.forceCreation,\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t\tchildEventListeners: this.mergeEventStore(\n\t\t\t\toriginal.childEventListeners,\n\t\t\t\tfresh.childEventListeners,\n\t\t\t),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeEntitySubTreeParametersWithSamePlaceholders(\n\t\toriginal: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tfresh: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t): QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity {\n\t\tif (original.isCreating) {\n\t\t\tif (!fresh.isCreating) {\n\t\t\t\tthrow new BindingError()\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// Encoded within the placeholder\n\t\t\t\tisCreating: original.isCreating,\n\t\t\t\tisUnpersisted: original.isUnpersisted && fresh.isUnpersisted,\n\t\t\t\tentityName: original.entityName,\n\n\t\t\t\t// Not encoded within the placeholder\n\t\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tisCreating: original.isCreating,\n\t\t\twhere: original.where,\n\t\t\tentityName: original.entityName,\n\t\t\tfilter: original.filter,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeEntityListSubTreeParametersWithSamePlaceholders(\n\t\toriginal: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tfresh: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t): QualifiedEntityList | UnconstrainedQualifiedEntityList {\n\t\tif (original.initialEntityCount !== fresh.initialEntityCount) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`Detected sub trees of the same entity '${original.entityName}' with different preferred initial ` +\n\t\t\t\t\t`entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`,\n\t\t\t)\n\t\t}\n\n\t\tif (original.isCreating) {\n\t\t\tif (!fresh.isCreating) {\n\t\t\t\tthrow new BindingError()\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// Encoded within the placeholder\n\t\t\t\tisCreating: original.isCreating,\n\t\t\t\tisUnpersisted: original.isUnpersisted && fresh.isUnpersisted,\n\t\t\t\tentityName: original.entityName,\n\n\t\t\t\t// Not encoded within the placeholder\n\t\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\t\tchildEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),\n\t\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tisCreating: original.isCreating,\n\t\t\tentityName: original.entityName,\n\t\t\tfilter: original.filter,\n\t\t\torderBy: original.orderBy,\n\t\t\toffset: original.offset,\n\t\t\tlimit: original.limit,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\tchildEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t}\n\t}\n\n\tpublic static mergeSingleField(original: Omit<RelativeSingleField, 'hasOneRelationPath'>, fresh: Omit<RelativeSingleField, 'hasOneRelationPath'>): Omit<RelativeSingleField, 'hasOneRelationPath'> {\n\t\tif (original.defaultValue !== undefined && fresh.defaultValue !== undefined && original.defaultValue !== fresh.defaultValue) {\n\t\t\tthrow new BindingError(`MarkerTreeGenerator merging: multiple fields \"${original.field}\" with different defaultValue found: ${JSON.stringify([original.defaultValue, fresh.defaultValue])}, `)\n\t\t}\n\t\treturn {\n\t\t\tfield: original.field,\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tdefaultValue: original.defaultValue ?? fresh.defaultValue,\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\n\tpublic static mergeSetOnCreate(original: SetOnCreate, fresh: SetOnCreate): SetOnCreate {\n\t\tif (original === undefined && fresh === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\tconst originalCopy: Writable<UniqueWhere> = { ...original }\n\n\t\tfor (const field in fresh) {\n\t\t\tif (field in originalCopy) {\n\t\t\t\tconst fromOriginal = originalCopy[field]\n\t\t\t\tconst fromFresh = fresh[field]\n\t\t\t\tif (typeof fromOriginal === 'object') {\n\t\t\t\t\tif (typeof fromFresh === 'object') {\n\t\t\t\t\t\tconst merged = this.mergeSetOnCreate(fromOriginal, fromFresh)\n\t\t\t\t\t\tif (merged !== undefined) {\n\t\t\t\t\t\t\toriginalCopy[field] = merged\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof fromFresh === 'string' || typeof fromFresh === 'number') {\n\t\t\t\t\tif (fromOriginal === fromFresh) {\n\t\t\t\t\t\t// Good, do nothing.\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t} else {\n\t\t\t\toriginalCopy[field] = fresh[field]\n\t\t\t}\n\t\t}\n\n\t\treturn originalCopy\n\t}\n\n\tprivate static mergeSets<T>(original: Set<T>, fresh: Set<T>): Set<T> {\n\t\tconst combinedSet = new Set(original)\n\t\tfor (const item of fresh) {\n\t\t\tcombinedSet.add(item)\n\t\t}\n\t\treturn combinedSet\n\t}\n\n\tpublic static mergeParentEntityParameters(\n\t\toriginal: ParentEntityParameters | undefined,\n\t\tfresh: ParentEntityParameters | undefined,\n\t): ParentEntityParameters | undefined {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\treturn {\n\t\t\teventListeners: TreeParameterMerger.mergeEventStore(\n\t\t\t\toriginal.eventListeners,\n\t\t\t\tfresh.eventListeners,\n\t\t\t),\n\t\t}\n\t}\n\n\tpublic static mergeInParentEntity<\n\t\tOriginal extends Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Original,\n\t>(original: Original, key: Key, parentEntity: ParentEntityParameters | undefined): Original {\n\t\tif (!parentEntity) {\n\t\t\treturn original\n\t\t}\n\n\t\treturn {\n\t\t\t...original,\n\t\t\t[key]: TreeParameterMerger.mergeEventStore(original[key], parentEntity.eventListeners),\n\t\t}\n\t}\n\n\n\tprivate static mergeEventStore<Events extends GenericEventsMap>(\n\t\toriginal: EventListenersStore<Events> | undefined,\n\t\tfresh: EventListenersStore<Events> | undefined,\n\t): EventListenersStore<Events> | undefined {\n\t\tif (original === undefined) {\n\t\t\tif (fresh === undefined) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn fresh\n\t\t}\n\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\n\t\tconst store = original.clone()\n\t\tstore.append(fresh)\n\n\t\treturn store\n\t}\n\n\tprivate static mergeExpectedRelationMutation(\n\t\toriginal: ExpectedRelationMutation,\n\t\tfresh: ExpectedRelationMutation,\n\t): ExpectedRelationMutation {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === 'none') {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === 'none') {\n\t\t\treturn original\n\t\t}\n\t\treturn 'anyMutation'\n\t}\n\n\tprivate static mergeExpectedQualifiedEntityMutation(\n\t\toriginal: ExpectedQualifiedEntityMutation,\n\t\tfresh: ExpectedQualifiedEntityMutation,\n\t): ExpectedQualifiedEntityMutation {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === 'none') {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === 'none') {\n\t\t\treturn original\n\t\t}\n\t\treturn 'anyMutation'\n\t}\n\n\tprivate static mergeSubTreeAliases(\n\t\toriginal: Set<Alias> | undefined,\n\t\tfresh: Set<Alias> | undefined,\n\t): Set<Alias> | undefined {\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\treturn this.mergeSets(original, fresh)\n\t}\n\n\n\tprivate static mergeFieldMeta(\n\t\toriginal: FieldMeta,\n\t\tfresh: FieldMeta,\n\t): FieldMeta {\n\t\treturn [...original, ...fresh].filter((key, index, array) => array.indexOf(key) === index)\n\t}\n}\n"],"names":["BindingError"],"mappings":";;;AAsBO,MAAM,oBAAoB;AAAA,EAChC,OAAc,yCACb,UACA,OACiB;AACV,WAAA;AAAA;AAAA,MAEN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,WAAW,SAAS;AAAA;AAAA,MAGpB,kBAAkB,KAAK,8BAA8B,SAAS,kBAAkB,MAAM,gBAAgB;AAAA,MACtG,aAAa,KAAK,iBAAiB,SAAS,aAAa,MAAM,WAAW;AAAA,MAC1E,cAAc,SAAS,gBAAgB,MAAM;AAAA,MAC7C,MAAM,KAAK,eAAe,SAAS,MAAM,MAAM,IAAI;AAAA;AAAA,MAEnD,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,IACnF;AAAA,EAAA;AAAA,EAGD,OAAc,0CACb,UACA,OACkB;AACd,QAAA,SAAS,uBAAuB,MAAM,oBAAoB;AAC7D,YAAM,IAAIA,aAAA;AAAA,QACT,iDAAiD,SAAS,KAAK,sDAC3C,SAAS,kBAAkB,UAAU,MAAM,kBAAkB;AAAA,MAClF;AAAA,IAAA;AAEM,WAAA;AAAA;AAAA,MAEN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,SAAS,SAAS;AAAA,MAClB,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA;AAAA,MAGhB,kBAAkB,KAAK,8BAA8B,SAAS,kBAAkB,MAAM,gBAAgB;AAAA,MACtG,aAAa,KAAK,iBAAiB,SAAS,aAAa,MAAM,WAAW;AAAA,MAC1E,MAAM,KAAK,eAAe,SAAS,MAAM,MAAM,IAAI;AAAA;AAAA,MAEnD,cAAc,SAAS,gBAAgB,MAAM;AAAA,MAC7C,oBAAoB,SAAS;AAAA;AAAA,MAC7B,qBAAqB,KAAK;AAAA,QACzB,SAAS;AAAA,QACT,MAAM;AAAA,MACP;AAAA,MACA,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,IACnF;AAAA,EAAA;AAAA,EAGD,OAAc,iDACb,UACA,OAC6D;AAC7D,QAAI,SAAS,YAAY;AACpB,UAAA,CAAC,MAAM,YAAY;AACtB,cAAM,IAAIA,aAAAA,aAAa;AAAA,MAAA;AAEjB,aAAA;AAAA;AAAA,QAEN,YAAY,SAAS;AAAA,QACrB,eAAe,SAAS,iBAAiB,MAAM;AAAA,QAC/C,YAAY,SAAS;AAAA;AAAA,QAGrB,OAAO,KAAK,oBAAoB,SAAS,OAAO,MAAM,KAAK;AAAA,QAC3D,aAAa,KAAK,iBAAiB,SAAS,aAAa,MAAM,WAAW;AAAA;AAAA,QAE1E,kBAAkB,KAAK,qCAAqC,SAAS,kBAAkB,MAAM,gBAAgB;AAAA,QAC7G,cAAc,SAAS,gBAAgB,MAAM;AAAA,QAC7C,oBAAoB,SAAS;AAAA;AAAA,QAC7B,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,MACnF;AAAA,IAAA;AAEM,WAAA;AAAA;AAAA,MAEN,YAAY,SAAS;AAAA,MACrB,OAAO,SAAS;AAAA,MAChB,YAAY,SAAS;AAAA,MACrB,QAAQ,SAAS;AAAA;AAAA,MAGjB,OAAO,KAAK,oBAAoB,SAAS,OAAO,MAAM,KAAK;AAAA,MAC3D,aAAa,KAAK,iBAAiB,SAAS,aAAa,MAAM,WAAW;AAAA;AAAA,MAE1E,kBAAkB,KAAK,qCAAqC,SAAS,kBAAkB,MAAM,gBAAgB;AAAA,MAC7G,cAAc,SAAS,gBAAgB,MAAM;AAAA,MAC7C,oBAAoB,SAAS;AAAA;AAAA,MAC7B,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,IACnF;AAAA,EAAA;AAAA,EAGD,OAAc,qDACb,UACA,OACyD;AACrD,QAAA,SAAS,uBAAuB,MAAM,oBAAoB;AAC7D,YAAM,IAAIA,aAAA;AAAA,QACT,0CAA0C,SAAS,UAAU,sDACzC,SAAS,kBAAkB,UAAU,MAAM,kBAAkB;AAAA,MAClF;AAAA,IAAA;AAGD,QAAI,SAAS,YAAY;AACpB,UAAA,CAAC,MAAM,YAAY;AACtB,cAAM,IAAIA,aAAAA,aAAa;AAAA,MAAA;AAEjB,aAAA;AAAA;AAAA,QAEN,YAAY,SAAS;AAAA,QACrB,eAAe,SAAS,iBAAiB,MAAM;AAAA,QAC/C,YAAY,SAAS;AAAA;AAAA,QAGrB,OAAO,KAAK,oBAAoB,SAAS,OAAO,MAAM,KAAK;AAAA,QAC3D,aAAa,KAAK,iBAAiB,SAAS,aAAa,MAAM,WAAW;AAAA;AAAA,QAE1E,kBAAkB,KAAK,qCAAqC,SAAS,kBAAkB,MAAM,gBAAgB;AAAA,QAC7G,cAAc,SAAS,gBAAgB,MAAM;AAAA,QAC7C,oBAAoB,SAAS;AAAA;AAAA,QAC7B,qBAAqB,KAAK,gBAAgB,SAAS,qBAAqB,MAAM,mBAAmB;AAAA,QACjG,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,QAClF,oBAAoB,SAAS;AAAA;AAAA,MAC9B;AAAA,IAAA;AAEM,WAAA;AAAA;AAAA,MAEN,YAAY,SAAS;AAAA,MACrB,YAAY,SAAS;AAAA,MACrB,QAAQ,SAAS;AAAA,MACjB,SAAS,SAAS;AAAA,MAClB,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA;AAAA,MAGhB,OAAO,KAAK,oBAAoB,SAAS,OAAO,MAAM,KAAK;AAAA,MAC3D,aAAa,KAAK,iBAAiB,SAAS,aAAa,MAAM,WAAW;AAAA;AAAA,MAE1E,kBAAkB,KAAK,qCAAqC,SAAS,kBAAkB,MAAM,gBAAgB;AAAA,MAC7G,cAAc,SAAS,gBAAgB,MAAM;AAAA,MAC7C,oBAAoB,SAAS;AAAA;AAAA,MAC7B,qBAAqB,KAAK,gBAAgB,SAAS,qBAAqB,MAAM,mBAAmB;AAAA,MACjG,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,MAClF,oBAAoB,SAAS;AAAA;AAAA,IAC9B;AAAA,EAAA;AAAA,EAGD,OAAc,iBAAiB,UAA2D,OAAyG;AAC9L,QAAA,SAAS,iBAAiB,UAAa,MAAM,iBAAiB,UAAa,SAAS,iBAAiB,MAAM,cAAc;AAC5H,YAAM,IAAIA,aAAA,aAAa,iDAAiD,SAAS,KAAK,wCAAwC,KAAK,UAAU,CAAC,SAAS,cAAc,MAAM,YAAY,CAAC,CAAC,IAAI;AAAA,IAAA;AAEvL,WAAA;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,cAAc,SAAS,gBAAgB,MAAM;AAAA,MAC7C,cAAc,SAAS,gBAAgB,MAAM;AAAA,MAC7C,MAAM,KAAK,eAAe,SAAS,MAAM,MAAM,IAAI;AAAA,MACnD,gBAAgB,KAAK,gBAAgB,SAAS,gBAAgB,MAAM,cAAc;AAAA,IACnF;AAAA,EAAA;AAAA,EAID,OAAc,iBAAiB,UAAuB,OAAiC;AAClF,QAAA,aAAa,UAAa,UAAU,QAAW;AAC3C,aAAA;AAAA,IAAA;AAER,QAAI,aAAa,QAAW;AACpB,aAAA;AAAA,IAAA;AAER,QAAI,UAAU,QAAW;AACjB,aAAA;AAAA,IAAA;AAEF,UAAA,eAAsC,EAAE,GAAG,SAAS;AAE1D,eAAW,SAAS,OAAO;AAC1B,UAAI,SAAS,cAAc;AACpB,cAAA,eAAe,aAAa,KAAK;AACjC,cAAA,YAAY,MAAM,KAAK;AACzB,YAAA,OAAO,iBAAiB,UAAU;AACjC,cAAA,OAAO,cAAc,UAAU;AAClC,kBAAM,SAAS,KAAK,iBAAiB,cAAc,SAAS;AAC5D,gBAAI,WAAW,QAAW;AACzB,2BAAa,KAAK,IAAI;AAAA,YAAA;AAEvB;AAAA,UAAA,OACM;AACN,kBAAM,IAAIA,aAAAA,aAAa;AAAA,UAAA;AAAA,QACxB;AAED,YAAI,OAAO,cAAc,YAAY,OAAO,cAAc,UAAU;AACnE,cAAI,iBAAiB,WAAW;AAE/B;AAAA,UAAA,OACM;AACN,kBAAM,IAAIA,aAAAA,aAAa;AAAA,UAAA;AAAA,QACxB;AAED,cAAM,IAAIA,aAAAA,aAAa;AAAA,MAAA,OACjB;AACO,qBAAA,KAAK,IAAI,MAAM,KAAK;AAAA,MAAA;AAAA,IAClC;AAGM,WAAA;AAAA,EAAA;AAAA,EAGR,OAAe,UAAa,UAAkB,OAAuB;AAC9D,UAAA,cAAc,IAAI,IAAI,QAAQ;AACpC,eAAW,QAAQ,OAAO;AACzB,kBAAY,IAAI,IAAI;AAAA,IAAA;AAEd,WAAA;AAAA,EAAA;AAAA,EAGR,OAAc,4BACb,UACA,OACqC;AACrC,QAAI,aAAa,OAAO;AAChB,aAAA;AAAA,IAAA;AAER,QAAI,aAAa,QAAW;AACpB,aAAA;AAAA,IAAA;AAER,QAAI,UAAU,QAAW;AACjB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,gBAAgB,oBAAoB;AAAA,QACnC,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IAER;AAAA,EAAA;AAAA,EAGD,OAAc,oBAGZ,UAAoB,KAAU,cAA4D;AAC3F,QAAI,CAAC,cAAc;AACX,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,GAAG;AAAA,MACH,CAAC,GAAG,GAAG,oBAAoB,gBAAgB,SAAS,GAAG,GAAG,aAAa,cAAc;AAAA,IACtF;AAAA,EAAA;AAAA,EAID,OAAe,gBACd,UACA,OAC0C;AAC1C,QAAI,aAAa,QAAW;AAC3B,UAAI,UAAU,QAAW;AACjB,eAAA;AAAA,MAAA;AAED,aAAA;AAAA,IAAA;AAGR,QAAI,UAAU,QAAW;AACjB,aAAA;AAAA,IAAA;AAGF,UAAA,QAAQ,SAAS,MAAM;AAC7B,UAAM,OAAO,KAAK;AAEX,WAAA;AAAA,EAAA;AAAA,EAGR,OAAe,8BACd,UACA,OAC2B;AAC3B,QAAI,aAAa,OAAO;AAChB,aAAA;AAAA,IAAA;AAER,QAAI,aAAa,QAAQ;AACjB,aAAA;AAAA,IAAA;AAER,QAAI,UAAU,QAAQ;AACd,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,EAAA;AAAA,EAGR,OAAe,qCACd,UACA,OACkC;AAClC,QAAI,aAAa,OAAO;AAChB,aAAA;AAAA,IAAA;AAER,QAAI,aAAa,QAAQ;AACjB,aAAA;AAAA,IAAA;AAER,QAAI,UAAU,QAAQ;AACd,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,EAAA;AAAA,EAGR,OAAe,oBACd,UACA,OACyB;AACzB,QAAI,aAAa,QAAW;AACpB,aAAA;AAAA,IAAA;AAER,QAAI,UAAU,QAAW;AACjB,aAAA;AAAA,IAAA;AAED,WAAA,KAAK,UAAU,UAAU,KAAK;AAAA,EAAA;AAAA,EAItC,OAAe,eACd,UACA,OACY;AACZ,WAAO,CAAC,GAAG,UAAU,GAAG,KAAK,EAAE,OAAO,CAAC,KAAK,OAAO,UAAU,MAAM,QAAQ,GAAG,MAAM,KAAK;AAAA,EAAA;AAE3F;;"}
|
|
1
|
+
{"version":3,"file":"TreeParameterMerger.cjs","sources":["../../../../../packages/binding-common/src/treeParameters/TreeParameterMerger.ts"],"sourcesContent":["import { Writable } from '@contember/client'\nimport type {\n\tAlias,\n\tEntityEventListenerStore,\n\tEventListenersStore,\n\tExpectedQualifiedEntityMutation,\n\tExpectedRelationMutation,\n\tFieldMeta,\n\tGenericEventsMap,\n\tHasManyRelation,\n\tHasOneRelation,\n\tParentEntityParameters,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSetOnCreate,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n\tUniqueWhere,\n} from '../treeParameters'\nimport { BindingError } from '../BindingError'\n\nexport class TreeParameterMerger {\n\tpublic static mergeHasOneRelationsWithSamePlaceholders(\n\t\toriginal: HasOneRelation,\n\t\tfresh: HasOneRelation,\n\t): HasOneRelation {\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tfield: original.field,\n\t\t\tfilter: original.filter,\n\t\t\treducedBy: original.reducedBy,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\texpectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\t// forceCreation: original.forceCreation || fresh.forceCreation,\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeHasManyRelationsWithSamePlaceholders(\n\t\toriginal: HasManyRelation,\n\t\tfresh: HasManyRelation,\n\t): HasManyRelation {\n\t\tif (original.initialEntityCount !== fresh.initialEntityCount) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`Detected hasMany relations on the same field '${original.field}' with different preferred initial `\n\t\t\t\t\t+ `entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`,\n\t\t\t)\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tfield: original.field,\n\t\t\tfilter: original.filter,\n\t\t\torderBy: original.orderBy,\n\t\t\toffset: original.offset,\n\t\t\tlimit: original.limit,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\texpectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\t// forceCreation: original.forceCreation || fresh.forceCreation,\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t\tchildEventListeners: this.mergeEventStore(\n\t\t\t\toriginal.childEventListeners,\n\t\t\t\tfresh.childEventListeners,\n\t\t\t),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeEntitySubTreeParametersWithSamePlaceholders(\n\t\toriginal: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tfresh: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t): QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity {\n\t\tif (original.isCreating) {\n\t\t\tif (!fresh.isCreating) {\n\t\t\t\tthrow new BindingError()\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// Encoded within the placeholder\n\t\t\t\tisCreating: original.isCreating,\n\t\t\t\tisUnpersisted: original.isUnpersisted && fresh.isUnpersisted,\n\t\t\t\tentityName: original.entityName,\n\n\t\t\t\t// Not encoded within the placeholder\n\t\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tisCreating: original.isCreating,\n\t\t\twhere: original.where,\n\t\t\tentityName: original.entityName,\n\t\t\tfilter: original.filter,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeEntityListSubTreeParametersWithSamePlaceholders(\n\t\toriginal: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tfresh: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t): QualifiedEntityList | UnconstrainedQualifiedEntityList {\n\t\tif (original.initialEntityCount !== fresh.initialEntityCount) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`Detected sub trees of the same entity '${original.entityName}' with different preferred initial `\n\t\t\t\t\t+ `entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`,\n\t\t\t)\n\t\t}\n\n\t\tif (original.isCreating) {\n\t\t\tif (!fresh.isCreating) {\n\t\t\t\tthrow new BindingError()\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// Encoded within the placeholder\n\t\t\t\tisCreating: original.isCreating,\n\t\t\t\tisUnpersisted: original.isUnpersisted && fresh.isUnpersisted,\n\t\t\t\tentityName: original.entityName,\n\n\t\t\t\t// Not encoded within the placeholder\n\t\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\t\tchildEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),\n\t\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tisCreating: original.isCreating,\n\t\t\tentityName: original.entityName,\n\t\t\tfilter: original.filter,\n\t\t\torderBy: original.orderBy,\n\t\t\toffset: original.offset,\n\t\t\tlimit: original.limit,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\tchildEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t}\n\t}\n\n\tpublic static mergeSingleField(\n\t\toriginal: Omit<RelativeSingleField, 'hasOneRelationPath'>,\n\t\tfresh: Omit<RelativeSingleField, 'hasOneRelationPath'>,\n\t): Omit<RelativeSingleField, 'hasOneRelationPath'> {\n\t\tif (original.defaultValue !== undefined && fresh.defaultValue !== undefined && original.defaultValue !== fresh.defaultValue) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`MarkerTreeGenerator merging: multiple fields \"${original.field}\" with different defaultValue found: ${\n\t\t\t\t\tJSON.stringify([original.defaultValue, fresh.defaultValue])\n\t\t\t\t}, `,\n\t\t\t)\n\t\t}\n\t\treturn {\n\t\t\tfield: original.field,\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tdefaultValue: original.defaultValue ?? fresh.defaultValue,\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeSetOnCreate(original: SetOnCreate, fresh: SetOnCreate): SetOnCreate {\n\t\tif (original === undefined && fresh === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\tconst originalCopy: Writable<UniqueWhere> = { ...original }\n\n\t\tfor (const field in fresh) {\n\t\t\tif (field in originalCopy) {\n\t\t\t\tconst fromOriginal = originalCopy[field]\n\t\t\t\tconst fromFresh = fresh[field]\n\t\t\t\tif (typeof fromOriginal === 'object') {\n\t\t\t\t\tif (typeof fromFresh === 'object') {\n\t\t\t\t\t\tconst merged = this.mergeSetOnCreate(fromOriginal, fromFresh)\n\t\t\t\t\t\tif (merged !== undefined) {\n\t\t\t\t\t\t\toriginalCopy[field] = merged\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof fromFresh === 'string' || typeof fromFresh === 'number') {\n\t\t\t\t\tif (fromOriginal === fromFresh) {\n\t\t\t\t\t\t// Good, do nothing.\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t} else {\n\t\t\t\toriginalCopy[field] = fresh[field]\n\t\t\t}\n\t\t}\n\n\t\treturn originalCopy\n\t}\n\n\tprivate static mergeSets<T>(original: Set<T>, fresh: Set<T>): Set<T> {\n\t\tconst combinedSet = new Set(original)\n\t\tfor (const item of fresh) {\n\t\t\tcombinedSet.add(item)\n\t\t}\n\t\treturn combinedSet\n\t}\n\n\tpublic static mergeParentEntityParameters(\n\t\toriginal: ParentEntityParameters | undefined,\n\t\tfresh: ParentEntityParameters | undefined,\n\t): ParentEntityParameters | undefined {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\treturn {\n\t\t\teventListeners: TreeParameterMerger.mergeEventStore(\n\t\t\t\toriginal.eventListeners,\n\t\t\t\tfresh.eventListeners,\n\t\t\t),\n\t\t}\n\t}\n\n\tpublic static mergeInParentEntity<\n\t\tOriginal extends Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Original,\n\t>(original: Original, key: Key, parentEntity: ParentEntityParameters | undefined): Original {\n\t\tif (!parentEntity) {\n\t\t\treturn original\n\t\t}\n\n\t\treturn {\n\t\t\t...original,\n\t\t\t[key]: TreeParameterMerger.mergeEventStore(original[key], parentEntity.eventListeners),\n\t\t}\n\t}\n\n\tprivate static mergeEventStore<Events extends GenericEventsMap>(\n\t\toriginal: EventListenersStore<Events> | undefined,\n\t\tfresh: EventListenersStore<Events> | undefined,\n\t): EventListenersStore<Events> | undefined {\n\t\tif (original === undefined) {\n\t\t\tif (fresh === undefined) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn fresh\n\t\t}\n\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\n\t\tconst store = original.clone()\n\t\tstore.append(fresh)\n\n\t\treturn store\n\t}\n\n\tprivate static mergeExpectedRelationMutation(\n\t\toriginal: ExpectedRelationMutation,\n\t\tfresh: ExpectedRelationMutation,\n\t): ExpectedRelationMutation {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === 'none') {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === 'none') {\n\t\t\treturn original\n\t\t}\n\t\treturn 'anyMutation'\n\t}\n\n\tprivate static mergeExpectedQualifiedEntityMutation(\n\t\toriginal: ExpectedQualifiedEntityMutation,\n\t\tfresh: ExpectedQualifiedEntityMutation,\n\t): ExpectedQualifiedEntityMutation {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === 'none') {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === 'none') {\n\t\t\treturn original\n\t\t}\n\t\treturn 'anyMutation'\n\t}\n\n\tprivate static mergeSubTreeAliases(\n\t\toriginal: Set<Alias> | undefined,\n\t\tfresh: Set<Alias> | undefined,\n\t): Set<Alias> | undefined {\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\treturn this.mergeSets(original, fresh)\n\t}\n\n\tprivate static mergeFieldMeta(\n\t\toriginal: FieldMeta,\n\t\tfresh: FieldMeta,\n\t): FieldMeta {\n\t\treturn [...original, ...fresh].filter((key, index, array) => array.indexOf(key) === index)\n\t}\n}\n"],"names":["BindingError"],"mappings":"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"}
|
|
@@ -134,7 +134,9 @@ class TreeParameterMerger {
|
|
|
134
134
|
}
|
|
135
135
|
static mergeSingleField(original, fresh) {
|
|
136
136
|
if (original.defaultValue !== void 0 && fresh.defaultValue !== void 0 && original.defaultValue !== fresh.defaultValue) {
|
|
137
|
-
throw new BindingError(
|
|
137
|
+
throw new BindingError(
|
|
138
|
+
`MarkerTreeGenerator merging: multiple fields "${original.field}" with different defaultValue found: ${JSON.stringify([original.defaultValue, fresh.defaultValue])}, `
|
|
139
|
+
);
|
|
138
140
|
}
|
|
139
141
|
return {
|
|
140
142
|
field: original.field,
|