@contember/binding-common 2.1.0-rc.3 → 2.2.0-alpha.10
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/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.map +1 -1
- 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/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.map +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.map +1 -1
- package/dist/development/src/queryLanguage/Parser.js.map +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.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/TreeParameterMerger.cjs.map +1 -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/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/TreeNodeUtils.cjs +31 -1
- package/dist/development/src/utils/TreeNodeUtils.cjs.map +1 -1
- package/dist/development/src/utils/TreeNodeUtils.js +31 -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.map +1 -1
- package/dist/development/src/utils/createQueryBuilder.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.map +1 -1
- 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/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.map +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.map +1 -1
- package/dist/production/src/queryLanguage/Parser.js.map +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.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/TreeParameterMerger.cjs.map +1 -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/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/TreeNodeUtils.cjs +31 -1
- package/dist/production/src/utils/TreeNodeUtils.cjs.map +1 -1
- package/dist/production/src/utils/TreeNodeUtils.js +31 -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.map +1 -1
- package/dist/production/src/utils/createQueryBuilder.js.map +1 -1
- package/dist/types/BindingError.d.ts.map +1 -1
- package/dist/types/LocalizedBindingError.d.ts +2 -2
- package/dist/types/LocalizedBindingError.d.ts.map +1 -1
- package/dist/types/RuntimeId.d.ts +1 -1
- package/dist/types/RuntimeId.d.ts.map +1 -1
- package/dist/types/environment/Environment.d.ts +3 -3
- package/dist/types/environment/Environment.d.ts.map +1 -1
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts +4 -4
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +1 -1
- package/dist/types/environment/VariableFieldValue.d.ts.map +1 -1
- package/dist/types/environment/VariableInputTransformer.d.ts +3 -3
- package/dist/types/environment/VariableInputTransformer.d.ts.map +1 -1
- package/dist/types/environment/index.d.ts +4 -4
- package/dist/types/environment/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +15 -15
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/markers/EntityFieldMarkers.d.ts +4 -4
- package/dist/types/markers/EntityFieldMarkers.d.ts.map +1 -1
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts +2 -2
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts.map +1 -1
- package/dist/types/markers/EntityFieldPlaceholders.d.ts +1 -1
- package/dist/types/markers/EntityFieldPlaceholders.d.ts.map +1 -1
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts +3 -3
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts.map +1 -1
- package/dist/types/markers/EntityListSubTreeMarker.d.ts +3 -3
- package/dist/types/markers/EntityListSubTreeMarker.d.ts.map +1 -1
- package/dist/types/markers/EntitySubTreeMarker.d.ts +3 -3
- package/dist/types/markers/EntitySubTreeMarker.d.ts.map +1 -1
- package/dist/types/markers/FieldMarker.d.ts +1 -1
- package/dist/types/markers/FieldMarker.d.ts.map +1 -1
- package/dist/types/markers/HasManyRelationMarker.d.ts +3 -3
- package/dist/types/markers/HasManyRelationMarker.d.ts.map +1 -1
- package/dist/types/markers/HasOneRelationMarker.d.ts +3 -3
- package/dist/types/markers/HasOneRelationMarker.d.ts.map +1 -1
- package/dist/types/markers/MarkerComparator.d.ts +1 -1
- package/dist/types/markers/MarkerComparator.d.ts.map +1 -1
- package/dist/types/markers/MarkerMerger.d.ts +3 -3
- package/dist/types/markers/MarkerMerger.d.ts.map +1 -1
- package/dist/types/markers/MarkerTreeRoot.d.ts +2 -2
- package/dist/types/markers/MarkerTreeRoot.d.ts.map +1 -1
- package/dist/types/markers/MeaningfulMarker.d.ts +5 -5
- package/dist/types/markers/MeaningfulMarker.d.ts.map +1 -1
- package/dist/types/markers/PlaceholderGenerator.d.ts +2 -2
- package/dist/types/markers/PlaceholderGenerator.d.ts.map +1 -1
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts +2 -2
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +1 -1
- package/dist/types/markers/SubTreeMarkers.d.ts +3 -3
- package/dist/types/markers/SubTreeMarkers.d.ts.map +1 -1
- package/dist/types/markers/index.d.ts +16 -16
- package/dist/types/markers/index.d.ts.map +1 -1
- package/dist/types/queryLanguage/CacheStore.d.ts +2 -2
- package/dist/types/queryLanguage/CacheStore.d.ts.map +1 -1
- package/dist/types/queryLanguage/MarkerFactory.d.ts +3 -3
- package/dist/types/queryLanguage/MarkerFactory.d.ts.map +1 -1
- package/dist/types/queryLanguage/Parser.d.ts +3 -3
- package/dist/types/queryLanguage/Parser.d.ts.map +1 -1
- package/dist/types/queryLanguage/ParserResults.d.ts +1 -1
- package/dist/types/queryLanguage/ParserResults.d.ts.map +1 -1
- package/dist/types/queryLanguage/QueryLanguage.d.ts +4 -4
- package/dist/types/queryLanguage/QueryLanguage.d.ts.map +1 -1
- package/dist/types/queryLanguage/index.d.ts +5 -5
- package/dist/types/queryLanguage/index.d.ts.map +1 -1
- package/dist/types/queryLanguage/tokenList.d.ts.map +1 -1
- package/dist/types/schema/RawSchema.d.ts +2 -2
- package/dist/types/schema/RawSchema.d.ts.map +1 -1
- package/dist/types/schema/RawSchemaEntity.d.ts +3 -3
- package/dist/types/schema/RawSchemaEntity.d.ts.map +1 -1
- package/dist/types/schema/RawSchemaEnum.d.ts +1 -1
- package/dist/types/schema/RawSchemaEnum.d.ts.map +1 -1
- package/dist/types/schema/Schema.d.ts +7 -7
- package/dist/types/schema/Schema.d.ts.map +1 -1
- package/dist/types/schema/SchemaColumn.d.ts +3 -3
- package/dist/types/schema/SchemaColumn.d.ts.map +1 -1
- package/dist/types/schema/SchemaEntities.d.ts +2 -2
- package/dist/types/schema/SchemaEntities.d.ts.map +1 -1
- package/dist/types/schema/SchemaEntity.d.ts +3 -3
- package/dist/types/schema/SchemaEntity.d.ts.map +1 -1
- package/dist/types/schema/SchemaField.d.ts +2 -2
- package/dist/types/schema/SchemaField.d.ts.map +1 -1
- package/dist/types/schema/SchemaFields.d.ts +2 -2
- package/dist/types/schema/SchemaFields.d.ts.map +1 -1
- package/dist/types/schema/SchemaLoader.d.ts +1 -1
- package/dist/types/schema/SchemaLoader.d.ts.map +1 -1
- package/dist/types/schema/SchemaPreprocessor.d.ts +2 -2
- package/dist/types/schema/SchemaPreprocessor.d.ts.map +1 -1
- package/dist/types/schema/SchemaRelation.d.ts +2 -2
- package/dist/types/schema/SchemaRelation.d.ts.map +1 -1
- package/dist/types/schema/SchemaStore.d.ts +2 -2
- package/dist/types/schema/SchemaStore.d.ts.map +1 -1
- package/dist/types/schema/SchemaUniqueConstraint.d.ts +1 -1
- package/dist/types/schema/SchemaUniqueConstraint.d.ts.map +1 -1
- package/dist/types/schema/index.d.ts +15 -15
- package/dist/types/schema/index.d.ts.map +1 -1
- package/dist/types/treeParameters/EventListenersStore.d.ts.map +1 -1
- package/dist/types/treeParameters/Normalized.d.ts +3 -3
- package/dist/types/treeParameters/Normalized.d.ts.map +1 -1
- package/dist/types/treeParameters/Sugared.d.ts +3 -3
- package/dist/types/treeParameters/Sugared.d.ts.map +1 -1
- package/dist/types/treeParameters/TreeParameterMerger.d.ts +1 -1
- package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +1 -1
- package/dist/types/treeParameters/defaults.d.ts +2 -2
- package/dist/types/treeParameters/defaults.d.ts.map +1 -1
- package/dist/types/treeParameters/helpers/index.d.ts +1 -1
- package/dist/types/treeParameters/helpers/index.d.ts.map +1 -1
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts +1 -1
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts.map +1 -1
- package/dist/types/treeParameters/index.d.ts +11 -11
- package/dist/types/treeParameters/index.d.ts.map +1 -1
- package/dist/types/treeParameters/primitives/FieldValue.d.ts +2 -2
- package/dist/types/treeParameters/primitives/FieldValue.d.ts.map +1 -1
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts +1 -1
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +1 -1
- package/dist/types/treeParameters/primitives/index.d.ts +20 -20
- package/dist/types/treeParameters/primitives/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts +1 -1
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts.map +1 -1
- package/dist/types/types/BatchUpdatesOptions.d.ts +3 -3
- package/dist/types/types/BatchUpdatesOptions.d.ts.map +1 -1
- package/dist/types/types/BindingOperations.d.ts +8 -8
- package/dist/types/types/BindingOperations.d.ts.map +1 -1
- package/dist/types/types/DataBindingEvents.d.ts +1 -1
- package/dist/types/types/DataBindingEvents.d.ts.map +1 -1
- package/dist/types/types/DataBindingTransactionResult.d.ts +1 -1
- package/dist/types/types/DataBindingTransactionResult.d.ts.map +1 -1
- package/dist/types/types/EntityAccessor.d.ts +11 -11
- package/dist/types/types/EntityAccessor.d.ts.map +1 -1
- package/dist/types/types/EntityListAccessor.d.ts +11 -11
- package/dist/types/types/EntityListAccessor.d.ts.map +1 -1
- package/dist/types/types/ErrorAccessor.d.ts.map +1 -1
- package/dist/types/types/Errorable.d.ts +1 -1
- package/dist/types/types/Errorable.d.ts.map +1 -1
- package/dist/types/types/ExtendTree.d.ts +2 -2
- package/dist/types/types/ExtendTree.d.ts.map +1 -1
- package/dist/types/types/FieldAccessor.d.ts +6 -6
- package/dist/types/types/FieldAccessor.d.ts.map +1 -1
- package/dist/types/types/GetEntityByKey.d.ts +1 -1
- package/dist/types/types/GetEntityByKey.d.ts.map +1 -1
- package/dist/types/types/GetEntityListSubTree.d.ts +3 -3
- package/dist/types/types/GetEntityListSubTree.d.ts.map +1 -1
- package/dist/types/types/GetEntitySubTree.d.ts +3 -3
- package/dist/types/types/GetEntitySubTree.d.ts.map +1 -1
- package/dist/types/types/Persist.d.ts +10 -3
- package/dist/types/types/Persist.d.ts.map +1 -1
- package/dist/types/types/PersistErrorOptions.d.ts +1 -1
- package/dist/types/types/PersistErrorOptions.d.ts.map +1 -1
- package/dist/types/types/PersistResult.d.ts +3 -3
- package/dist/types/types/PersistResult.d.ts.map +1 -1
- package/dist/types/types/PersistSuccessOptions.d.ts +1 -1
- package/dist/types/types/PersistSuccessOptions.d.ts.map +1 -1
- package/dist/types/types/QueryRequestResponse.d.ts +1 -1
- package/dist/types/types/QueryRequestResponse.d.ts.map +1 -1
- package/dist/types/types/TreeRootAccessor.d.ts +1 -1
- package/dist/types/types/TreeRootAccessor.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +20 -20
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/Hashing.d.ts.map +1 -1
- package/dist/types/utils/TreeNodeUtils.d.ts +2 -2
- package/dist/types/utils/TreeNodeUtils.d.ts.map +1 -1
- package/dist/types/utils/createQueryBuilder.d.ts +1 -1
- package/dist/types/utils/createQueryBuilder.d.ts.map +1 -1
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts.map +1 -1
- package/dist/types/utils/whereToFilter.d.ts.map +1 -1
- package/package.json +4 -6
- package/src/LocalizedBindingError.ts +2 -2
- package/src/RuntimeId.ts +2 -2
- package/src/environment/Environment.ts +3 -3
- package/src/environment/TreeNodeEnvironmentFactory.ts +5 -5
- package/src/environment/VariableInputTransformer.ts +4 -4
- package/src/environment/index.ts +4 -4
- package/src/index.ts +15 -15
- package/src/markers/EntityFieldMarkers.ts +4 -4
- package/src/markers/EntityFieldMarkersContainer.ts +2 -2
- package/src/markers/EntityFieldPlaceholders.ts +1 -1
- package/src/markers/EntityFieldsWithHoistablesMarker.ts +3 -3
- package/src/markers/EntityListSubTreeMarker.ts +4 -4
- package/src/markers/EntitySubTreeMarker.ts +4 -4
- package/src/markers/FieldMarker.ts +2 -2
- package/src/markers/HasManyRelationMarker.ts +5 -5
- package/src/markers/HasOneRelationMarker.ts +4 -4
- package/src/markers/MarkerComparator.ts +4 -4
- package/src/markers/MarkerMerger.ts +7 -7
- package/src/markers/MarkerTreeRoot.ts +2 -2
- package/src/markers/MeaningfulMarker.ts +5 -5
- package/src/markers/PlaceholderGenerator.ts +4 -4
- package/src/markers/PlaceholderParametersGenerator.ts +2 -2
- package/src/markers/SubTreeMarkers.ts +3 -3
- package/src/markers/index.ts +16 -16
- package/src/queryLanguage/CacheStore.ts +2 -2
- package/src/queryLanguage/MarkerFactory.ts +7 -7
- package/src/queryLanguage/Parser.ts +7 -7
- package/src/queryLanguage/ParserResults.ts +1 -1
- package/src/queryLanguage/QueryLanguage.ts +7 -7
- package/src/queryLanguage/index.ts +5 -5
- package/src/schema/RawSchema.ts +2 -2
- package/src/schema/RawSchemaEntity.ts +3 -3
- package/src/schema/RawSchemaEnum.ts +1 -1
- package/src/schema/Schema.ts +8 -8
- package/src/schema/SchemaColumn.ts +3 -3
- package/src/schema/SchemaEntities.ts +2 -2
- package/src/schema/SchemaEntity.ts +3 -3
- package/src/schema/SchemaField.ts +2 -2
- package/src/schema/SchemaFields.ts +2 -2
- package/src/schema/SchemaLoader.ts +3 -3
- package/src/schema/SchemaPreprocessor.ts +7 -7
- package/src/schema/SchemaRelation.ts +2 -2
- package/src/schema/SchemaStore.ts +2 -2
- package/src/schema/SchemaUniqueConstraint.ts +1 -1
- package/src/schema/index.ts +15 -15
- package/src/treeParameters/Normalized.ts +3 -3
- package/src/treeParameters/Sugared.ts +3 -3
- package/src/treeParameters/TreeParameterMerger.ts +2 -2
- package/src/treeParameters/helpers/index.ts +1 -1
- package/src/treeParameters/helpers/wrapFilterInHasOnes.ts +2 -2
- package/src/treeParameters/index.ts +11 -11
- package/src/treeParameters/primitives/FieldValue.ts +2 -2
- package/src/treeParameters/primitives/SetOnCreate.ts +1 -1
- package/src/treeParameters/primitives/index.ts +20 -20
- package/src/types/AsyncBatchUpdatesOptions.ts +1 -1
- package/src/types/BatchUpdatesOptions.ts +3 -3
- package/src/types/BindingOperations.ts +8 -8
- package/src/types/DataBindingEvents.ts +1 -1
- package/src/types/DataBindingTransactionResult.ts +1 -1
- package/src/types/EntityAccessor.ts +11 -11
- package/src/types/EntityListAccessor.ts +11 -11
- package/src/types/Errorable.ts +1 -1
- package/src/types/ExtendTree.ts +2 -2
- package/src/types/FieldAccessor.ts +6 -6
- package/src/types/GetEntityByKey.ts +1 -1
- package/src/types/GetEntityListSubTree.ts +3 -3
- package/src/types/GetEntitySubTree.ts +3 -3
- package/src/types/Persist.ts +10 -3
- package/src/types/PersistErrorOptions.ts +1 -1
- package/src/types/PersistResult.ts +3 -3
- package/src/types/PersistSuccessOptions.ts +1 -1
- package/src/types/QueryRequestResponse.ts +1 -1
- package/src/types/TreeRootAccessor.ts +1 -1
- package/src/types/index.ts +20 -20
- package/src/utils/TreeNodeUtils.ts +34 -4
- package/src/utils/assertNever.ts +1 -1
- package/src/utils/createQueryBuilder.ts +1 -1
- package/tests/cases/unit/queryLanguage/filter.spec.tsx +2 -2
- package/tests/cases/unit/queryLanguage/general.spec.tsx +2 -2
- package/tests/cases/unit/queryLanguage/orderBy.spec.tsx +2 -2
- package/tests/cases/unit/queryLanguage/qualifiedEntityList.spec.tsx +2 -2
- package/tests/cases/unit/queryLanguage/qualifiedFieldList.spec.tsx +2 -2
- package/tests/cases/unit/queryLanguage/relativeEntityList.spec.tsx +3 -3
- package/tests/cases/unit/queryLanguage/singleRelativeField.spec.tsx +2 -2
- package/tests/cases/unit/queryLanguage/taggedMap.spec.tsx +3 -3
- package/tests/cases/unit/whereToFilter.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerMerger.cjs","sources":["../../../../../packages/binding-common/src/markers/MarkerMerger.ts"],"sourcesContent":["import { BindingError } from '../BindingError'\nimport { PRIMARY_KEY_NAME } from '../consts'\nimport {\n\tEntityFieldMarkers,\n\tEntityFieldMarkersContainer,\n\tEntityFieldPlaceholders,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n\tMarkerTreeRoot,\n\tMeaningfulMarker,\n\tSubTreeMarkers,\n} from '../markers'\nimport type { Alias, FieldName, PlaceholderName } from '../treeParameters'\nimport { assertNever } from '../utils/assertNever'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'\nimport { Environment } from '../environment'\n\nexport class MarkerMerger {\n\t// This method assumes their placeholder names are the same\n\tpublic static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original instanceof FieldMarker) {\n\t\t\tif (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.mergeFieldMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker || fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.fieldName)\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('Merging fields and sub trees is an undefined operation.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasOneRelationMarker) {\n\t\t\tif (fresh instanceof HasOneRelationMarker) {\n\t\t\t\treturn this.mergeHasOneRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasManyRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasManyRelationMarker) {\n\t\t\tif (fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.mergeHasManyRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof EntitySubTreeMarker) {\n\t\t\tif (fresh instanceof EntitySubTreeMarker) {\n\t\t\t\treturn this.mergeEntitySubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntitySubTreeMarker can only be merged with other entity sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (original instanceof EntityListSubTreeMarker) {\n\t\t\tif (fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\treturn this.mergeEntityListSubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntityListSubTreeMarker can only be merged with other list sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tassertNever(original)\n\t}\n\n\tpublic static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new MarkerTreeRoot(\n\t\t\tthis.mergeEntityFields(original.subTrees, fresh.subTrees),\n\t\t\tthis.mergeSubTreePlaceholdersByAliases(original.placeholdersByAliases, fresh.placeholdersByAliases),\n\t\t)\n\t}\n\n\tpublic static mergeSubTreeMarkers(\n\t\toriginal: SubTreeMarkers | undefined,\n\t\tfresh: SubTreeMarkers | undefined,\n\t): SubTreeMarkers | 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\tconst newOriginal = new Map(original)\n\n\t\tfor (const [placeholderName, fromFresh] of fresh) {\n\t\t\tconst fromOriginal = newOriginal.get(placeholderName)\n\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tfromOriginal === undefined\n\t\t\t\t\t? fromFresh\n\t\t\t\t\t: fromOriginal instanceof EntityListSubTreeMarker\n\t\t\t\t\t? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)\n\t\t\t\t\t: MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeSubTreePlaceholdersByAliases(\n\t\toriginal: ReadonlyMap<Alias, PlaceholderName>,\n\t\tfresh: ReadonlyMap<Alias, PlaceholderName>,\n\t) {\n\t\tconst newOriginalAliases = new Map(original)\n\t\tfor (const [alias, placeholder] of fresh) {\n\t\t\tconst fromOriginal = newOriginalAliases.get(alias)\n\t\t\tif (fromOriginal === undefined) {\n\t\t\t\tnewOriginalAliases.set(alias, placeholder)\n\t\t\t} else if (fromOriginal === placeholder) {\n\t\t\t\t// Do nothing\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(`Illegal subTree alias '${alias}' points to distinct subTrees.`)\n\t\t\t}\n\t\t}\n\t\treturn newOriginalAliases\n\t}\n\n\tpublic static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers\n\tpublic static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers\n\tpublic static mergeEntityFields(\n\t\toriginal: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t\tfresh: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t): ReadonlyMap<PlaceholderName, MeaningfulMarker> {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<PlaceholderName, MeaningfulMarker> = new Map(original)\n\t\tfor (const [placeholderName, freshMarker] of fresh) {\n\t\t\tconst markerFromOriginal = newOriginal.get(placeholderName)\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tmarkerFromOriginal === undefined ? freshMarker : this.mergeMarkers(markerFromOriginal, freshMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldPlaceholders(\n\t\toriginal: EntityFieldPlaceholders,\n\t\tfresh: EntityFieldPlaceholders,\n\t): EntityFieldPlaceholders {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<FieldName, PlaceholderName | Set<PlaceholderName>> = new Map(original)\n\t\tfor (const [fieldName, freshPlaceholders] of fresh) {\n\t\t\tconst placeholderFromOriginal = newOriginal.get(fieldName)\n\n\t\t\tif (placeholderFromOriginal === undefined) {\n\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t} else if (placeholderFromOriginal instanceof Set) {\n\t\t\t\tconst combinedSet = new Set(placeholderFromOriginal)\n\t\t\t\tif (freshPlaceholders instanceof Set) {\n\t\t\t\t\tfor (const freshPlaceholder of freshPlaceholders) {\n\t\t\t\t\t\tcombinedSet.add(freshPlaceholder)\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tcombinedSet.add(freshPlaceholders)\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t} else if (typeof placeholderFromOriginal === 'string') {\n\t\t\t\tif (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tif (placeholderFromOriginal === freshPlaceholders) {\n\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewOriginal.set(fieldName, new Set([placeholderFromOriginal, freshPlaceholders]))\n\t\t\t\t\t}\n\t\t\t\t} else if (freshPlaceholders instanceof Set) {\n\t\t\t\t\tif (freshPlaceholders.has(placeholderFromOriginal)) {\n\t\t\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst combinedSet = new Set(freshPlaceholders)\n\t\t\t\t\t\tcombinedSet.add(placeholderFromOriginal)\n\t\t\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassertNever(placeholderFromOriginal)\n\t\t\t}\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldsContainers(\n\t\toriginal: EntityFieldMarkersContainer,\n\t\tfresh: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityFieldMarkersContainer(\n\t\t\toriginal.hasAtLeastOneBearingField || fresh.hasAtLeastOneBearingField,\n\t\t\tthis.mergeEntityFields(original.markers, fresh.markers),\n\t\t\tthis.mergeEntityFieldPlaceholders(original.placeholders, fresh.placeholders),\n\t\t)\n\t}\n\n\tpublic static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasOneRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasOneRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasManyRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasManyRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntitySubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntitySubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityListSubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntityListSubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new FieldMarker(TreeParameterMerger.mergeSingleField(original.parameters, fresh.parameters))\n\t}\n\n\tpublic static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer {\n\t\tconst primaryKey = new FieldMarker({\n\t\t\tfield: PRIMARY_KEY_NAME,\n\t\t\tdefaultValue: undefined,\n\t\t\tisNonbearing: true,\n\t\t\teventListeners: undefined,\n\t\t\tmeta: [],\n\t\t})\n\t\t// We could potentially share this instance for all fields. Maybe sometime later.\n\t\tconst freshFields = new EntityFieldMarkersContainer(\n\t\t\tfalse,\n\t\t\tnew Map([[primaryKey.placeholderName, primaryKey]]),\n\t\t\tnew Map([[PRIMARY_KEY_NAME, primaryKey.placeholderName]]),\n\t\t)\n\t\treturn original ? this.mergeEntityFieldsContainers(original, freshFields) : freshFields\n\t}\n\n\tpublic static mergeEnvironments(original: Environment, fresh: Environment): Environment {\n\t\treturn original.merge(fresh)\n\t}\n\n\tprivate static rejectRelationScalarCombo(fieldName: FieldName): never {\n\t\tthrow new BindingError(`Cannot combine a relation with a scalar field '${fieldName}'.`)\n\t}\n}\n"],"names":["FieldMarker","HasOneRelationMarker","HasManyRelationMarker","EntitySubTreeMarker","EntityListSubTreeMarker","BindingError","assertNever","MarkerTreeRoot","EntityFieldMarkersContainer","TreeParameterMerger","PRIMARY_KEY_NAME"],"mappings":";;;;;;;;;;;;;AAoBO,MAAM,aAAa;AAAA;AAAA,EAEzB,OAAc,aAAa,UAA4B,OAA2C;AACjG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,oBAAoBA,YAAAA,aAAa;AACpC,UAAI,iBAAiBA,YAAAA,aAAa;AACjC,eAAO,KAAK,kBAAkB,UAAU,KAAK;AAAA,MAC9C,WAAW,iBAAiBC,6CAAwB,iBAAiBC,sBAAAA,uBAAuB;AAC3F,eAAO,KAAK,0BAA0B,SAAS,SAAS;AAAA,MACzD,WAAW,iBAAiBC,2CAAuB,iBAAiBC,wBAAAA,yBAAyB;AAC5F,cAAM,IAAIC,aAAAA,aAAa,yDAAyD;AAAA,MACjF;AACAC,kBAAAA,YAAiB;AAAA,IAClB,WAAW,oBAAoBL,2CAAsB;AACpD,UAAI,iBAAiBA,qBAAAA,sBAAsB;AAC1C,eAAO,KAAK,2BAA2B,UAAU,KAAK;AAAA,MACvD,WAAW,iBAAiBD,yBAAa;AACxC,eAAO,KAAK,0BAA0B,SAAS,WAAW,KAAK;AAAA,MAChE,WAAW,iBAAiBE,6CAAuB;AAClD,cAAM,IAAIG,aAAAA,aAAA;AAAA,MACX,WAAW,iBAAiBF,2CAAuB,iBAAiBC,wBAAAA,yBAAyB;AAC5F,cAAM,IAAIC,aAAAA,aAAa,sFAAsF;AAAA,MAC9G;AACAC,kBAAAA,YAAiB;AAAA,IAClB,WAAW,oBAAoBJ,6CAAuB;AACrD,UAAI,iBAAiBA,sBAAAA,uBAAuB;AAC3C,eAAO,KAAK,4BAA4B,UAAU,KAAK;AAAA,MACxD,WAAW,iBAAiBF,yBAAa;AACxC,eAAO,KAAK,0BAA0B,SAAS,WAAW,KAAK;AAAA,MAChE,WAAW,iBAAiBC,2CAAsB;AACjD,cAAM,IAAII,aAAAA,aAAA;AAAA,MACX,WAAW,iBAAiBF,2CAAuB,iBAAiBC,wBAAAA,yBAAyB;AAC5F,cAAM,IAAIC,aAAAA,aAAa,sFAAsF;AAAA,MAC9G;AACAC,kBAAAA,YAAiB;AAAA,IAClB,WAAW,oBAAoBH,yCAAqB;AACnD,UAAI,iBAAiBA,oBAAAA,qBAAqB;AACzC,eAAO,KAAK,0BAA0B,UAAU,KAAK;AAAA,MACtD,OAAO;AACN,cAAM,IAAIE,aAAAA;AAAAA,UACT;AAAA,QAAA;AAAA,MAEF;AAAA,IACD,WAAW,oBAAoBD,iDAAyB;AACvD,UAAI,iBAAiBA,wBAAAA,yBAAyB;AAC7C,eAAO,KAAK,8BAA8B,UAAU,KAAK;AAAA,MAC1D,OAAO;AACN,cAAM,IAAIC,aAAAA;AAAAA,UACT;AAAA,QAAA;AAAA,MAEF;AAAA,IACD;AACAC,gBAAAA,YAAoB;AAAA,EACrB;AAAA,EAEA,OAAc,qBAAqB,UAA0B,OAAuC;AACnG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIC,eAAAA;AAAAA,MACV,KAAK,kBAAkB,SAAS,UAAU,MAAM,QAAQ;AAAA,MACxD,KAAK,kCAAkC,SAAS,uBAAuB,MAAM,qBAAqB;AAAA,IAAA;AAAA,EAEpG;AAAA,EAEA,OAAc,oBACb,UACA,OAC6B;AAC7B,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,aAAa,QAAW;AAC3B,aAAO;AAAA,IACR;AACA,QAAI,UAAU,QAAW;AACxB,aAAO;AAAA,IACR;AACA,UAAM,cAAc,IAAI,IAAI,QAAQ;AAEpC,eAAW,CAAC,iBAAiB,SAAS,KAAK,OAAO;AACjD,YAAM,eAAe,YAAY,IAAI,eAAe;AAEpD,kBAAY;AAAA,QACX;AAAA,QACA,iBAAiB,SACd,YACA,wBAAwBH,wBAAAA,0BACxB,aAAa,8BAA8B,cAAc,SAAoC,IAC7F,aAAa,0BAA0B,cAAc,SAAgC;AAAA,MAAA;AAAA,IAE1F;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,kCACb,UACA,OACC;AACD,UAAM,qBAAqB,IAAI,IAAI,QAAQ;AAC3C,eAAW,CAAC,OAAO,WAAW,KAAK,OAAO;AACzC,YAAM,eAAe,mBAAmB,IAAI,KAAK;AACjD,UAAI,iBAAiB,QAAW;AAC/B,2BAAmB,IAAI,OAAO,WAAW;AAAA,MAC1C,WAAW,iBAAiB,YAAa;AAAA,WAElC;AACN,cAAM,IAAIC,aAAAA,aAAa,0BAA0B,KAAK,gCAAgC;AAAA,MACvF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAIA,OAAc,kBACb,UACA,OACiD;AACjD,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,SAAS,SAAS,GAAG;AACxB,aAAO;AAAA,IACR;AACA,UAAM,cAAsD,IAAI,IAAI,QAAQ;AAC5E,eAAW,CAAC,iBAAiB,WAAW,KAAK,OAAO;AACnD,YAAM,qBAAqB,YAAY,IAAI,eAAe;AAC1D,kBAAY;AAAA,QACX;AAAA,QACA,uBAAuB,SAAY,cAAc,KAAK,aAAa,oBAAoB,WAAW;AAAA,MAAA;AAAA,IAEpG;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,6BACb,UACA,OAC0B;AAC1B,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,SAAS,SAAS,GAAG;AACxB,aAAO;AAAA,IACR;AACA,UAAM,cAAsE,IAAI,IAAI,QAAQ;AAC5F,eAAW,CAAC,WAAW,iBAAiB,KAAK,OAAO;AACnD,YAAM,0BAA0B,YAAY,IAAI,SAAS;AAEzD,UAAI,4BAA4B,QAAW;AAC1C,oBAAY,IAAI,WAAW,iBAAiB;AAAA,MAC7C,WAAW,mCAAmC,KAAK;AAClD,cAAM,cAAc,IAAI,IAAI,uBAAuB;AACnD,YAAI,6BAA6B,KAAK;AACrC,qBAAW,oBAAoB,mBAAmB;AACjD,wBAAY,IAAI,gBAAgB;AAAA,UACjC;AAAA,QACD,WAAW,OAAO,sBAAsB,UAAU;AACjD,sBAAY,IAAI,iBAAiB;AAAA,QAClC,OAAO;AACNC,sBAAAA,YAA6B;AAAA,QAC9B;AACA,oBAAY,IAAI,WAAW,WAAW;AAAA,MACvC,WAAW,OAAO,4BAA4B,UAAU;AACvD,YAAI,OAAO,sBAAsB,UAAU;AAC1C,cAAI,4BAA4B,kBAAmB;AAAA,eAE5C;AACN,wBAAY,IAAI,WAAW,oBAAI,IAAI,CAAC,yBAAyB,iBAAiB,CAAC,CAAC;AAAA,UACjF;AAAA,QACD,WAAW,6BAA6B,KAAK;AAC5C,cAAI,kBAAkB,IAAI,uBAAuB,GAAG;AACnD,wBAAY,IAAI,WAAW,iBAAiB;AAAA,UAC7C,OAAO;AACN,kBAAM,cAAc,IAAI,IAAI,iBAAiB;AAC7C,wBAAY,IAAI,uBAAuB;AACvC,wBAAY,IAAI,WAAW,WAAW;AAAA,UACvC;AAAA,QACD,OAAO;AACNA,sBAAAA,YAA6B;AAAA,QAC9B;AAAA,MACD,OAAO;AACNA,oBAAAA,YAAmC;AAAA,MACpC;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,4BACb,UACA,OAC8B;AAC9B,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIE,4BAAAA;AAAAA,MACV,SAAS,6BAA6B,MAAM;AAAA,MAC5C,KAAK,kBAAkB,SAAS,SAAS,MAAM,OAAO;AAAA,MACtD,KAAK,6BAA6B,SAAS,cAAc,MAAM,YAAY;AAAA,IAAA;AAAA,EAE7E;AAAA,EAEA,OAAc,2BAA2B,UAAgC,OAA6B;AACrG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIP,qBAAAA;AAAAA,MACVQ,oBAAAA,oBAAoB,yCAAyC,SAAS,YAAY,MAAM,UAAU;AAAA,MAClG,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,4BAA4B,UAAiC,OAA8B;AACxG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIP,sBAAAA;AAAAA,MACVO,oBAAAA,oBAAoB,0CAA0C,SAAS,YAAY,MAAM,UAAU;AAAA,MACnG,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,0BAA0B,UAA+B,OAA4B;AAClG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIN,oBAAAA;AAAAA,MACVM,oBAAAA,oBAAoB,iDAAiD,SAAS,YAAY,MAAM,UAAU;AAAA,MAC1G,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,8BAA8B,UAAmC,OAAgC;AAC9G,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIL,wBAAAA;AAAAA,MACVK,oBAAAA,oBAAoB,qDAAqD,SAAS,YAAY,MAAM,UAAU;AAAA,MAC9G,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,kBAAkB,UAAuB,OAAoB;AAC1E,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAIT,YAAAA,YAAYS,oBAAAA,oBAAoB,iBAAiB,SAAS,YAAY,MAAM,UAAU,CAAC;AAAA,EACnG;AAAA,EAEA,OAAc,oBAAoB,UAAgF;AACjH,UAAM,aAAa,IAAIT,wBAAY;AAAA,MAClC,OAAOU,OAAAA;AAAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,MAAM,CAAA;AAAA,IAAC,CACP;AAED,UAAM,cAAc,IAAIF,4BAAAA;AAAAA,MACvB;AAAA,MACA,oBAAI,IAAI,CAAC,CAAC,WAAW,iBAAiB,UAAU,CAAC,CAAC;AAAA,MAClD,oBAAI,IAAI,CAAC,CAACE,OAAAA,kBAAkB,WAAW,eAAe,CAAC,CAAC;AAAA,IAAA;AAEzD,WAAO,WAAW,KAAK,4BAA4B,UAAU,WAAW,IAAI;AAAA,EAC7E;AAAA,EAEA,OAAc,kBAAkB,UAAuB,OAAiC;AACvF,WAAO,SAAS,MAAM,KAAK;AAAA,EAC5B;AAAA,EAEA,OAAe,0BAA0B,WAA6B;AACrE,UAAM,IAAIL,aAAAA,aAAa,kDAAkD,SAAS,IAAI;AAAA,EACvF;AACD;;"}
|
|
1
|
+
{"version":3,"file":"MarkerMerger.cjs","sources":["../../../../../packages/binding-common/src/markers/MarkerMerger.ts"],"sourcesContent":["import { BindingError } from '../BindingError.js'\nimport { PRIMARY_KEY_NAME } from '../consts.js'\nimport {\n\tEntityFieldMarkers,\n\tEntityFieldMarkersContainer,\n\tEntityFieldPlaceholders,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n\tMarkerTreeRoot,\n\tMeaningfulMarker,\n\tSubTreeMarkers,\n} from '../markers/index.js'\nimport type { Alias, FieldName, PlaceholderName } from '../treeParameters/index.js'\nimport { assertNever } from '../utils/assertNever.js'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger.js'\nimport { Environment } from '../environment/index.js'\n\nexport class MarkerMerger {\n\t// This method assumes their placeholder names are the same\n\tpublic static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original instanceof FieldMarker) {\n\t\t\tif (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.mergeFieldMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker || fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.fieldName)\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('Merging fields and sub trees is an undefined operation.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasOneRelationMarker) {\n\t\t\tif (fresh instanceof HasOneRelationMarker) {\n\t\t\t\treturn this.mergeHasOneRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasManyRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasManyRelationMarker) {\n\t\t\tif (fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.mergeHasManyRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof EntitySubTreeMarker) {\n\t\t\tif (fresh instanceof EntitySubTreeMarker) {\n\t\t\t\treturn this.mergeEntitySubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntitySubTreeMarker can only be merged with other entity sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (original instanceof EntityListSubTreeMarker) {\n\t\t\tif (fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\treturn this.mergeEntityListSubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntityListSubTreeMarker can only be merged with other list sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tassertNever(original)\n\t}\n\n\tpublic static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new MarkerTreeRoot(\n\t\t\tthis.mergeEntityFields(original.subTrees, fresh.subTrees),\n\t\t\tthis.mergeSubTreePlaceholdersByAliases(original.placeholdersByAliases, fresh.placeholdersByAliases),\n\t\t)\n\t}\n\n\tpublic static mergeSubTreeMarkers(\n\t\toriginal: SubTreeMarkers | undefined,\n\t\tfresh: SubTreeMarkers | undefined,\n\t): SubTreeMarkers | 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\tconst newOriginal = new Map(original)\n\n\t\tfor (const [placeholderName, fromFresh] of fresh) {\n\t\t\tconst fromOriginal = newOriginal.get(placeholderName)\n\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tfromOriginal === undefined\n\t\t\t\t\t? fromFresh\n\t\t\t\t\t: fromOriginal instanceof EntityListSubTreeMarker\n\t\t\t\t\t? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)\n\t\t\t\t\t: MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeSubTreePlaceholdersByAliases(\n\t\toriginal: ReadonlyMap<Alias, PlaceholderName>,\n\t\tfresh: ReadonlyMap<Alias, PlaceholderName>,\n\t) {\n\t\tconst newOriginalAliases = new Map(original)\n\t\tfor (const [alias, placeholder] of fresh) {\n\t\t\tconst fromOriginal = newOriginalAliases.get(alias)\n\t\t\tif (fromOriginal === undefined) {\n\t\t\t\tnewOriginalAliases.set(alias, placeholder)\n\t\t\t} else if (fromOriginal === placeholder) {\n\t\t\t\t// Do nothing\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(`Illegal subTree alias '${alias}' points to distinct subTrees.`)\n\t\t\t}\n\t\t}\n\t\treturn newOriginalAliases\n\t}\n\n\tpublic static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers\n\tpublic static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers\n\tpublic static mergeEntityFields(\n\t\toriginal: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t\tfresh: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t): ReadonlyMap<PlaceholderName, MeaningfulMarker> {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<PlaceholderName, MeaningfulMarker> = new Map(original)\n\t\tfor (const [placeholderName, freshMarker] of fresh) {\n\t\t\tconst markerFromOriginal = newOriginal.get(placeholderName)\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tmarkerFromOriginal === undefined ? freshMarker : this.mergeMarkers(markerFromOriginal, freshMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldPlaceholders(\n\t\toriginal: EntityFieldPlaceholders,\n\t\tfresh: EntityFieldPlaceholders,\n\t): EntityFieldPlaceholders {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<FieldName, PlaceholderName | Set<PlaceholderName>> = new Map(original)\n\t\tfor (const [fieldName, freshPlaceholders] of fresh) {\n\t\t\tconst placeholderFromOriginal = newOriginal.get(fieldName)\n\n\t\t\tif (placeholderFromOriginal === undefined) {\n\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t} else if (placeholderFromOriginal instanceof Set) {\n\t\t\t\tconst combinedSet = new Set(placeholderFromOriginal)\n\t\t\t\tif (freshPlaceholders instanceof Set) {\n\t\t\t\t\tfor (const freshPlaceholder of freshPlaceholders) {\n\t\t\t\t\t\tcombinedSet.add(freshPlaceholder)\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tcombinedSet.add(freshPlaceholders)\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t} else if (typeof placeholderFromOriginal === 'string') {\n\t\t\t\tif (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tif (placeholderFromOriginal === freshPlaceholders) {\n\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewOriginal.set(fieldName, new Set([placeholderFromOriginal, freshPlaceholders]))\n\t\t\t\t\t}\n\t\t\t\t} else if (freshPlaceholders instanceof Set) {\n\t\t\t\t\tif (freshPlaceholders.has(placeholderFromOriginal)) {\n\t\t\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst combinedSet = new Set(freshPlaceholders)\n\t\t\t\t\t\tcombinedSet.add(placeholderFromOriginal)\n\t\t\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassertNever(placeholderFromOriginal)\n\t\t\t}\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldsContainers(\n\t\toriginal: EntityFieldMarkersContainer,\n\t\tfresh: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityFieldMarkersContainer(\n\t\t\toriginal.hasAtLeastOneBearingField || fresh.hasAtLeastOneBearingField,\n\t\t\tthis.mergeEntityFields(original.markers, fresh.markers),\n\t\t\tthis.mergeEntityFieldPlaceholders(original.placeholders, fresh.placeholders),\n\t\t)\n\t}\n\n\tpublic static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasOneRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasOneRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasManyRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasManyRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntitySubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntitySubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityListSubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntityListSubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new FieldMarker(TreeParameterMerger.mergeSingleField(original.parameters, fresh.parameters))\n\t}\n\n\tpublic static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer {\n\t\tconst primaryKey = new FieldMarker({\n\t\t\tfield: PRIMARY_KEY_NAME,\n\t\t\tdefaultValue: undefined,\n\t\t\tisNonbearing: true,\n\t\t\teventListeners: undefined,\n\t\t\tmeta: [],\n\t\t})\n\t\t// We could potentially share this instance for all fields. Maybe sometime later.\n\t\tconst freshFields = new EntityFieldMarkersContainer(\n\t\t\tfalse,\n\t\t\tnew Map([[primaryKey.placeholderName, primaryKey]]),\n\t\t\tnew Map([[PRIMARY_KEY_NAME, primaryKey.placeholderName]]),\n\t\t)\n\t\treturn original ? this.mergeEntityFieldsContainers(original, freshFields) : freshFields\n\t}\n\n\tpublic static mergeEnvironments(original: Environment, fresh: Environment): Environment {\n\t\treturn original.merge(fresh)\n\t}\n\n\tprivate static rejectRelationScalarCombo(fieldName: FieldName): never {\n\t\tthrow new BindingError(`Cannot combine a relation with a scalar field '${fieldName}'.`)\n\t}\n}\n"],"names":["FieldMarker","HasOneRelationMarker","HasManyRelationMarker","EntitySubTreeMarker","EntityListSubTreeMarker","BindingError","assertNever","MarkerTreeRoot","EntityFieldMarkersContainer","TreeParameterMerger","PRIMARY_KEY_NAME"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerMerger.js","sources":["../../../../../packages/binding-common/src/markers/MarkerMerger.ts"],"sourcesContent":["import { BindingError } from '../BindingError'\nimport { PRIMARY_KEY_NAME } from '../consts'\nimport {\n\tEntityFieldMarkers,\n\tEntityFieldMarkersContainer,\n\tEntityFieldPlaceholders,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n\tMarkerTreeRoot,\n\tMeaningfulMarker,\n\tSubTreeMarkers,\n} from '../markers'\nimport type { Alias, FieldName, PlaceholderName } from '../treeParameters'\nimport { assertNever } from '../utils/assertNever'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'\nimport { Environment } from '../environment'\n\nexport class MarkerMerger {\n\t// This method assumes their placeholder names are the same\n\tpublic static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original instanceof FieldMarker) {\n\t\t\tif (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.mergeFieldMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker || fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.fieldName)\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('Merging fields and sub trees is an undefined operation.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasOneRelationMarker) {\n\t\t\tif (fresh instanceof HasOneRelationMarker) {\n\t\t\t\treturn this.mergeHasOneRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasManyRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasManyRelationMarker) {\n\t\t\tif (fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.mergeHasManyRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof EntitySubTreeMarker) {\n\t\t\tif (fresh instanceof EntitySubTreeMarker) {\n\t\t\t\treturn this.mergeEntitySubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntitySubTreeMarker can only be merged with other entity sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (original instanceof EntityListSubTreeMarker) {\n\t\t\tif (fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\treturn this.mergeEntityListSubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntityListSubTreeMarker can only be merged with other list sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tassertNever(original)\n\t}\n\n\tpublic static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new MarkerTreeRoot(\n\t\t\tthis.mergeEntityFields(original.subTrees, fresh.subTrees),\n\t\t\tthis.mergeSubTreePlaceholdersByAliases(original.placeholdersByAliases, fresh.placeholdersByAliases),\n\t\t)\n\t}\n\n\tpublic static mergeSubTreeMarkers(\n\t\toriginal: SubTreeMarkers | undefined,\n\t\tfresh: SubTreeMarkers | undefined,\n\t): SubTreeMarkers | 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\tconst newOriginal = new Map(original)\n\n\t\tfor (const [placeholderName, fromFresh] of fresh) {\n\t\t\tconst fromOriginal = newOriginal.get(placeholderName)\n\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tfromOriginal === undefined\n\t\t\t\t\t? fromFresh\n\t\t\t\t\t: fromOriginal instanceof EntityListSubTreeMarker\n\t\t\t\t\t? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)\n\t\t\t\t\t: MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeSubTreePlaceholdersByAliases(\n\t\toriginal: ReadonlyMap<Alias, PlaceholderName>,\n\t\tfresh: ReadonlyMap<Alias, PlaceholderName>,\n\t) {\n\t\tconst newOriginalAliases = new Map(original)\n\t\tfor (const [alias, placeholder] of fresh) {\n\t\t\tconst fromOriginal = newOriginalAliases.get(alias)\n\t\t\tif (fromOriginal === undefined) {\n\t\t\t\tnewOriginalAliases.set(alias, placeholder)\n\t\t\t} else if (fromOriginal === placeholder) {\n\t\t\t\t// Do nothing\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(`Illegal subTree alias '${alias}' points to distinct subTrees.`)\n\t\t\t}\n\t\t}\n\t\treturn newOriginalAliases\n\t}\n\n\tpublic static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers\n\tpublic static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers\n\tpublic static mergeEntityFields(\n\t\toriginal: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t\tfresh: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t): ReadonlyMap<PlaceholderName, MeaningfulMarker> {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<PlaceholderName, MeaningfulMarker> = new Map(original)\n\t\tfor (const [placeholderName, freshMarker] of fresh) {\n\t\t\tconst markerFromOriginal = newOriginal.get(placeholderName)\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tmarkerFromOriginal === undefined ? freshMarker : this.mergeMarkers(markerFromOriginal, freshMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldPlaceholders(\n\t\toriginal: EntityFieldPlaceholders,\n\t\tfresh: EntityFieldPlaceholders,\n\t): EntityFieldPlaceholders {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<FieldName, PlaceholderName | Set<PlaceholderName>> = new Map(original)\n\t\tfor (const [fieldName, freshPlaceholders] of fresh) {\n\t\t\tconst placeholderFromOriginal = newOriginal.get(fieldName)\n\n\t\t\tif (placeholderFromOriginal === undefined) {\n\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t} else if (placeholderFromOriginal instanceof Set) {\n\t\t\t\tconst combinedSet = new Set(placeholderFromOriginal)\n\t\t\t\tif (freshPlaceholders instanceof Set) {\n\t\t\t\t\tfor (const freshPlaceholder of freshPlaceholders) {\n\t\t\t\t\t\tcombinedSet.add(freshPlaceholder)\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tcombinedSet.add(freshPlaceholders)\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t} else if (typeof placeholderFromOriginal === 'string') {\n\t\t\t\tif (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tif (placeholderFromOriginal === freshPlaceholders) {\n\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewOriginal.set(fieldName, new Set([placeholderFromOriginal, freshPlaceholders]))\n\t\t\t\t\t}\n\t\t\t\t} else if (freshPlaceholders instanceof Set) {\n\t\t\t\t\tif (freshPlaceholders.has(placeholderFromOriginal)) {\n\t\t\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst combinedSet = new Set(freshPlaceholders)\n\t\t\t\t\t\tcombinedSet.add(placeholderFromOriginal)\n\t\t\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassertNever(placeholderFromOriginal)\n\t\t\t}\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldsContainers(\n\t\toriginal: EntityFieldMarkersContainer,\n\t\tfresh: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityFieldMarkersContainer(\n\t\t\toriginal.hasAtLeastOneBearingField || fresh.hasAtLeastOneBearingField,\n\t\t\tthis.mergeEntityFields(original.markers, fresh.markers),\n\t\t\tthis.mergeEntityFieldPlaceholders(original.placeholders, fresh.placeholders),\n\t\t)\n\t}\n\n\tpublic static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasOneRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasOneRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasManyRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasManyRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntitySubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntitySubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityListSubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntityListSubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new FieldMarker(TreeParameterMerger.mergeSingleField(original.parameters, fresh.parameters))\n\t}\n\n\tpublic static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer {\n\t\tconst primaryKey = new FieldMarker({\n\t\t\tfield: PRIMARY_KEY_NAME,\n\t\t\tdefaultValue: undefined,\n\t\t\tisNonbearing: true,\n\t\t\teventListeners: undefined,\n\t\t\tmeta: [],\n\t\t})\n\t\t// We could potentially share this instance for all fields. Maybe sometime later.\n\t\tconst freshFields = new EntityFieldMarkersContainer(\n\t\t\tfalse,\n\t\t\tnew Map([[primaryKey.placeholderName, primaryKey]]),\n\t\t\tnew Map([[PRIMARY_KEY_NAME, primaryKey.placeholderName]]),\n\t\t)\n\t\treturn original ? this.mergeEntityFieldsContainers(original, freshFields) : freshFields\n\t}\n\n\tpublic static mergeEnvironments(original: Environment, fresh: Environment): Environment {\n\t\treturn original.merge(fresh)\n\t}\n\n\tprivate static rejectRelationScalarCombo(fieldName: FieldName): never {\n\t\tthrow new BindingError(`Cannot combine a relation with a scalar field '${fieldName}'.`)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAoBO,MAAM,aAAa;AAAA;AAAA,EAEzB,OAAc,aAAa,UAA4B,OAA2C;AACjG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,oBAAoB,aAAa;AACpC,UAAI,iBAAiB,aAAa;AACjC,eAAO,KAAK,kBAAkB,UAAU,KAAK;AAAA,MAC9C,WAAW,iBAAiB,wBAAwB,iBAAiB,uBAAuB;AAC3F,eAAO,KAAK,0BAA0B,SAAS,SAAS;AAAA,MACzD,WAAW,iBAAiB,uBAAuB,iBAAiB,yBAAyB;AAC5F,cAAM,IAAI,aAAa,yDAAyD;AAAA,MACjF;AACA,kBAAiB;AAAA,IAClB,WAAW,oBAAoB,sBAAsB;AACpD,UAAI,iBAAiB,sBAAsB;AAC1C,eAAO,KAAK,2BAA2B,UAAU,KAAK;AAAA,MACvD,WAAW,iBAAiB,aAAa;AACxC,eAAO,KAAK,0BAA0B,SAAS,WAAW,KAAK;AAAA,MAChE,WAAW,iBAAiB,uBAAuB;AAClD,cAAM,IAAI,aAAA;AAAA,MACX,WAAW,iBAAiB,uBAAuB,iBAAiB,yBAAyB;AAC5F,cAAM,IAAI,aAAa,sFAAsF;AAAA,MAC9G;AACA,kBAAiB;AAAA,IAClB,WAAW,oBAAoB,uBAAuB;AACrD,UAAI,iBAAiB,uBAAuB;AAC3C,eAAO,KAAK,4BAA4B,UAAU,KAAK;AAAA,MACxD,WAAW,iBAAiB,aAAa;AACxC,eAAO,KAAK,0BAA0B,SAAS,WAAW,KAAK;AAAA,MAChE,WAAW,iBAAiB,sBAAsB;AACjD,cAAM,IAAI,aAAA;AAAA,MACX,WAAW,iBAAiB,uBAAuB,iBAAiB,yBAAyB;AAC5F,cAAM,IAAI,aAAa,sFAAsF;AAAA,MAC9G;AACA,kBAAiB;AAAA,IAClB,WAAW,oBAAoB,qBAAqB;AACnD,UAAI,iBAAiB,qBAAqB;AACzC,eAAO,KAAK,0BAA0B,UAAU,KAAK;AAAA,MACtD,OAAO;AACN,cAAM,IAAI;AAAA,UACT;AAAA,QAAA;AAAA,MAEF;AAAA,IACD,WAAW,oBAAoB,yBAAyB;AACvD,UAAI,iBAAiB,yBAAyB;AAC7C,eAAO,KAAK,8BAA8B,UAAU,KAAK;AAAA,MAC1D,OAAO;AACN,cAAM,IAAI;AAAA,UACT;AAAA,QAAA;AAAA,MAEF;AAAA,IACD;AACA,gBAAoB;AAAA,EACrB;AAAA,EAEA,OAAc,qBAAqB,UAA0B,OAAuC;AACnG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI;AAAA,MACV,KAAK,kBAAkB,SAAS,UAAU,MAAM,QAAQ;AAAA,MACxD,KAAK,kCAAkC,SAAS,uBAAuB,MAAM,qBAAqB;AAAA,IAAA;AAAA,EAEpG;AAAA,EAEA,OAAc,oBACb,UACA,OAC6B;AAC7B,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,aAAa,QAAW;AAC3B,aAAO;AAAA,IACR;AACA,QAAI,UAAU,QAAW;AACxB,aAAO;AAAA,IACR;AACA,UAAM,cAAc,IAAI,IAAI,QAAQ;AAEpC,eAAW,CAAC,iBAAiB,SAAS,KAAK,OAAO;AACjD,YAAM,eAAe,YAAY,IAAI,eAAe;AAEpD,kBAAY;AAAA,QACX;AAAA,QACA,iBAAiB,SACd,YACA,wBAAwB,0BACxB,aAAa,8BAA8B,cAAc,SAAoC,IAC7F,aAAa,0BAA0B,cAAc,SAAgC;AAAA,MAAA;AAAA,IAE1F;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,kCACb,UACA,OACC;AACD,UAAM,qBAAqB,IAAI,IAAI,QAAQ;AAC3C,eAAW,CAAC,OAAO,WAAW,KAAK,OAAO;AACzC,YAAM,eAAe,mBAAmB,IAAI,KAAK;AACjD,UAAI,iBAAiB,QAAW;AAC/B,2BAAmB,IAAI,OAAO,WAAW;AAAA,MAC1C,WAAW,iBAAiB,YAAa;AAAA,WAElC;AACN,cAAM,IAAI,aAAa,0BAA0B,KAAK,gCAAgC;AAAA,MACvF;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAIA,OAAc,kBACb,UACA,OACiD;AACjD,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,SAAS,SAAS,GAAG;AACxB,aAAO;AAAA,IACR;AACA,UAAM,cAAsD,IAAI,IAAI,QAAQ;AAC5E,eAAW,CAAC,iBAAiB,WAAW,KAAK,OAAO;AACnD,YAAM,qBAAqB,YAAY,IAAI,eAAe;AAC1D,kBAAY;AAAA,QACX;AAAA,QACA,uBAAuB,SAAY,cAAc,KAAK,aAAa,oBAAoB,WAAW;AAAA,MAAA;AAAA,IAEpG;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,6BACb,UACA,OAC0B;AAC1B,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,QAAI,SAAS,SAAS,GAAG;AACxB,aAAO;AAAA,IACR;AACA,UAAM,cAAsE,IAAI,IAAI,QAAQ;AAC5F,eAAW,CAAC,WAAW,iBAAiB,KAAK,OAAO;AACnD,YAAM,0BAA0B,YAAY,IAAI,SAAS;AAEzD,UAAI,4BAA4B,QAAW;AAC1C,oBAAY,IAAI,WAAW,iBAAiB;AAAA,MAC7C,WAAW,mCAAmC,KAAK;AAClD,cAAM,cAAc,IAAI,IAAI,uBAAuB;AACnD,YAAI,6BAA6B,KAAK;AACrC,qBAAW,oBAAoB,mBAAmB;AACjD,wBAAY,IAAI,gBAAgB;AAAA,UACjC;AAAA,QACD,WAAW,OAAO,sBAAsB,UAAU;AACjD,sBAAY,IAAI,iBAAiB;AAAA,QAClC,OAAO;AACN,sBAA6B;AAAA,QAC9B;AACA,oBAAY,IAAI,WAAW,WAAW;AAAA,MACvC,WAAW,OAAO,4BAA4B,UAAU;AACvD,YAAI,OAAO,sBAAsB,UAAU;AAC1C,cAAI,4BAA4B,kBAAmB;AAAA,eAE5C;AACN,wBAAY,IAAI,WAAW,oBAAI,IAAI,CAAC,yBAAyB,iBAAiB,CAAC,CAAC;AAAA,UACjF;AAAA,QACD,WAAW,6BAA6B,KAAK;AAC5C,cAAI,kBAAkB,IAAI,uBAAuB,GAAG;AACnD,wBAAY,IAAI,WAAW,iBAAiB;AAAA,UAC7C,OAAO;AACN,kBAAM,cAAc,IAAI,IAAI,iBAAiB;AAC7C,wBAAY,IAAI,uBAAuB;AACvC,wBAAY,IAAI,WAAW,WAAW;AAAA,UACvC;AAAA,QACD,OAAO;AACN,sBAA6B;AAAA,QAC9B;AAAA,MACD,OAAO;AACN,oBAAmC;AAAA,MACpC;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,4BACb,UACA,OAC8B;AAC9B,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI;AAAA,MACV,SAAS,6BAA6B,MAAM;AAAA,MAC5C,KAAK,kBAAkB,SAAS,SAAS,MAAM,OAAO;AAAA,MACtD,KAAK,6BAA6B,SAAS,cAAc,MAAM,YAAY;AAAA,IAAA;AAAA,EAE7E;AAAA,EAEA,OAAc,2BAA2B,UAAgC,OAA6B;AACrG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI;AAAA,MACV,oBAAoB,yCAAyC,SAAS,YAAY,MAAM,UAAU;AAAA,MAClG,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,4BAA4B,UAAiC,OAA8B;AACxG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI;AAAA,MACV,oBAAoB,0CAA0C,SAAS,YAAY,MAAM,UAAU;AAAA,MACnG,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,0BAA0B,UAA+B,OAA4B;AAClG,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI;AAAA,MACV,oBAAoB,iDAAiD,SAAS,YAAY,MAAM,UAAU;AAAA,MAC1G,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,8BAA8B,UAAmC,OAAgC;AAC9G,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI;AAAA,MACV,oBAAoB,qDAAqD,SAAS,YAAY,MAAM,UAAU;AAAA,MAC9G,KAAK,4BAA4B,SAAS,QAAQ,MAAM,MAAM;AAAA,MAC9D,KAAK,kBAAkB,SAAS,aAAa,MAAM,WAAW;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,OAAc,kBAAkB,UAAuB,OAAoB;AAC1E,QAAI,aAAa,OAAO;AACvB,aAAO;AAAA,IACR;AACA,WAAO,IAAI,YAAY,oBAAoB,iBAAiB,SAAS,YAAY,MAAM,UAAU,CAAC;AAAA,EACnG;AAAA,EAEA,OAAc,oBAAoB,UAAgF;AACjH,UAAM,aAAa,IAAI,YAAY;AAAA,MAClC,OAAO;AAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,MAAM,CAAA;AAAA,IAAC,CACP;AAED,UAAM,cAAc,IAAI;AAAA,MACvB;AAAA,MACA,oBAAI,IAAI,CAAC,CAAC,WAAW,iBAAiB,UAAU,CAAC,CAAC;AAAA,MAClD,oBAAI,IAAI,CAAC,CAAC,kBAAkB,WAAW,eAAe,CAAC,CAAC;AAAA,IAAA;AAEzD,WAAO,WAAW,KAAK,4BAA4B,UAAU,WAAW,IAAI;AAAA,EAC7E;AAAA,EAEA,OAAc,kBAAkB,UAAuB,OAAiC;AACvF,WAAO,SAAS,MAAM,KAAK;AAAA,EAC5B;AAAA,EAEA,OAAe,0BAA0B,WAA6B;AACrE,UAAM,IAAI,aAAa,kDAAkD,SAAS,IAAI;AAAA,EACvF;AACD;"}
|
|
1
|
+
{"version":3,"file":"MarkerMerger.js","sources":["../../../../../packages/binding-common/src/markers/MarkerMerger.ts"],"sourcesContent":["import { BindingError } from '../BindingError.js'\nimport { PRIMARY_KEY_NAME } from '../consts.js'\nimport {\n\tEntityFieldMarkers,\n\tEntityFieldMarkersContainer,\n\tEntityFieldPlaceholders,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n\tMarkerTreeRoot,\n\tMeaningfulMarker,\n\tSubTreeMarkers,\n} from '../markers/index.js'\nimport type { Alias, FieldName, PlaceholderName } from '../treeParameters/index.js'\nimport { assertNever } from '../utils/assertNever.js'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger.js'\nimport { Environment } from '../environment/index.js'\n\nexport class MarkerMerger {\n\t// This method assumes their placeholder names are the same\n\tpublic static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original instanceof FieldMarker) {\n\t\t\tif (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.mergeFieldMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker || fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.fieldName)\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('Merging fields and sub trees is an undefined operation.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasOneRelationMarker) {\n\t\t\tif (fresh instanceof HasOneRelationMarker) {\n\t\t\t\treturn this.mergeHasOneRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasManyRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof HasManyRelationMarker) {\n\t\t\tif (fresh instanceof HasManyRelationMarker) {\n\t\t\t\treturn this.mergeHasManyRelationMarkers(original, fresh)\n\t\t\t} else if (fresh instanceof FieldMarker) {\n\t\t\t\treturn this.rejectRelationScalarCombo(original.parameters.field)\n\t\t\t} else if (fresh instanceof HasOneRelationMarker) {\n\t\t\t\tthrow new BindingError() // TODO not implemented\n\t\t\t} else if (fresh instanceof EntitySubTreeMarker || fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\tthrow new BindingError('MarkerTreeGenerator merging: SubTreeMarkers can only be merged with other sub trees.')\n\t\t\t}\n\t\t\tassertNever(fresh)\n\t\t} else if (original instanceof EntitySubTreeMarker) {\n\t\t\tif (fresh instanceof EntitySubTreeMarker) {\n\t\t\t\treturn this.mergeEntitySubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntitySubTreeMarker can only be merged with other entity sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (original instanceof EntityListSubTreeMarker) {\n\t\t\tif (fresh instanceof EntityListSubTreeMarker) {\n\t\t\t\treturn this.mergeEntityListSubTreeMarkers(original, fresh)\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(\n\t\t\t\t\t'MarkerTreeGenerator merging: EntityListSubTreeMarker can only be merged with other list sub trees.',\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tassertNever(original)\n\t}\n\n\tpublic static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new MarkerTreeRoot(\n\t\t\tthis.mergeEntityFields(original.subTrees, fresh.subTrees),\n\t\t\tthis.mergeSubTreePlaceholdersByAliases(original.placeholdersByAliases, fresh.placeholdersByAliases),\n\t\t)\n\t}\n\n\tpublic static mergeSubTreeMarkers(\n\t\toriginal: SubTreeMarkers | undefined,\n\t\tfresh: SubTreeMarkers | undefined,\n\t): SubTreeMarkers | 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\tconst newOriginal = new Map(original)\n\n\t\tfor (const [placeholderName, fromFresh] of fresh) {\n\t\t\tconst fromOriginal = newOriginal.get(placeholderName)\n\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tfromOriginal === undefined\n\t\t\t\t\t? fromFresh\n\t\t\t\t\t: fromOriginal instanceof EntityListSubTreeMarker\n\t\t\t\t\t? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)\n\t\t\t\t\t: MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeSubTreePlaceholdersByAliases(\n\t\toriginal: ReadonlyMap<Alias, PlaceholderName>,\n\t\tfresh: ReadonlyMap<Alias, PlaceholderName>,\n\t) {\n\t\tconst newOriginalAliases = new Map(original)\n\t\tfor (const [alias, placeholder] of fresh) {\n\t\t\tconst fromOriginal = newOriginalAliases.get(alias)\n\t\t\tif (fromOriginal === undefined) {\n\t\t\t\tnewOriginalAliases.set(alias, placeholder)\n\t\t\t} else if (fromOriginal === placeholder) {\n\t\t\t\t// Do nothing\n\t\t\t} else {\n\t\t\t\tthrow new BindingError(`Illegal subTree alias '${alias}' points to distinct subTrees.`)\n\t\t\t}\n\t\t}\n\t\treturn newOriginalAliases\n\t}\n\n\tpublic static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers\n\tpublic static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers\n\tpublic static mergeEntityFields(\n\t\toriginal: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t\tfresh: ReadonlyMap<PlaceholderName, MeaningfulMarker>,\n\t): ReadonlyMap<PlaceholderName, MeaningfulMarker> {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<PlaceholderName, MeaningfulMarker> = new Map(original)\n\t\tfor (const [placeholderName, freshMarker] of fresh) {\n\t\t\tconst markerFromOriginal = newOriginal.get(placeholderName)\n\t\t\tnewOriginal.set(\n\t\t\t\tplaceholderName,\n\t\t\t\tmarkerFromOriginal === undefined ? freshMarker : this.mergeMarkers(markerFromOriginal, freshMarker),\n\t\t\t)\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldPlaceholders(\n\t\toriginal: EntityFieldPlaceholders,\n\t\tfresh: EntityFieldPlaceholders,\n\t): EntityFieldPlaceholders {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original.size === 0) {\n\t\t\treturn fresh\n\t\t}\n\t\tconst newOriginal: Map<FieldName, PlaceholderName | Set<PlaceholderName>> = new Map(original)\n\t\tfor (const [fieldName, freshPlaceholders] of fresh) {\n\t\t\tconst placeholderFromOriginal = newOriginal.get(fieldName)\n\n\t\t\tif (placeholderFromOriginal === undefined) {\n\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t} else if (placeholderFromOriginal instanceof Set) {\n\t\t\t\tconst combinedSet = new Set(placeholderFromOriginal)\n\t\t\t\tif (freshPlaceholders instanceof Set) {\n\t\t\t\t\tfor (const freshPlaceholder of freshPlaceholders) {\n\t\t\t\t\t\tcombinedSet.add(freshPlaceholder)\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tcombinedSet.add(freshPlaceholders)\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t} else if (typeof placeholderFromOriginal === 'string') {\n\t\t\t\tif (typeof freshPlaceholders === 'string') {\n\t\t\t\t\tif (placeholderFromOriginal === freshPlaceholders) {\n\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewOriginal.set(fieldName, new Set([placeholderFromOriginal, freshPlaceholders]))\n\t\t\t\t\t}\n\t\t\t\t} else if (freshPlaceholders instanceof Set) {\n\t\t\t\t\tif (freshPlaceholders.has(placeholderFromOriginal)) {\n\t\t\t\t\t\tnewOriginal.set(fieldName, freshPlaceholders)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst combinedSet = new Set(freshPlaceholders)\n\t\t\t\t\t\tcombinedSet.add(placeholderFromOriginal)\n\t\t\t\t\t\tnewOriginal.set(fieldName, combinedSet)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(freshPlaceholders)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassertNever(placeholderFromOriginal)\n\t\t\t}\n\t\t}\n\t\treturn newOriginal\n\t}\n\n\tpublic static mergeEntityFieldsContainers(\n\t\toriginal: EntityFieldMarkersContainer,\n\t\tfresh: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityFieldMarkersContainer(\n\t\t\toriginal.hasAtLeastOneBearingField || fresh.hasAtLeastOneBearingField,\n\t\t\tthis.mergeEntityFields(original.markers, fresh.markers),\n\t\t\tthis.mergeEntityFieldPlaceholders(original.placeholders, fresh.placeholders),\n\t\t)\n\t}\n\n\tpublic static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasOneRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasOneRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new HasManyRelationMarker(\n\t\t\tTreeParameterMerger.mergeHasManyRelationsWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntitySubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntitySubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new EntityListSubTreeMarker(\n\t\t\tTreeParameterMerger.mergeEntityListSubTreeParametersWithSamePlaceholders(original.parameters, fresh.parameters),\n\t\t\tthis.mergeEntityFieldsContainers(original.fields, fresh.fields),\n\t\t\tthis.mergeEnvironments(original.environment, fresh.environment),\n\t\t)\n\t}\n\n\tpublic static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker) {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\treturn new FieldMarker(TreeParameterMerger.mergeSingleField(original.parameters, fresh.parameters))\n\t}\n\n\tpublic static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer {\n\t\tconst primaryKey = new FieldMarker({\n\t\t\tfield: PRIMARY_KEY_NAME,\n\t\t\tdefaultValue: undefined,\n\t\t\tisNonbearing: true,\n\t\t\teventListeners: undefined,\n\t\t\tmeta: [],\n\t\t})\n\t\t// We could potentially share this instance for all fields. Maybe sometime later.\n\t\tconst freshFields = new EntityFieldMarkersContainer(\n\t\t\tfalse,\n\t\t\tnew Map([[primaryKey.placeholderName, primaryKey]]),\n\t\t\tnew Map([[PRIMARY_KEY_NAME, primaryKey.placeholderName]]),\n\t\t)\n\t\treturn original ? this.mergeEntityFieldsContainers(original, freshFields) : freshFields\n\t}\n\n\tpublic static mergeEnvironments(original: Environment, fresh: Environment): Environment {\n\t\treturn original.merge(fresh)\n\t}\n\n\tprivate static rejectRelationScalarCombo(fieldName: FieldName): never {\n\t\tthrow new BindingError(`Cannot combine a relation with a scalar field '${fieldName}'.`)\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerTreeRoot.cjs","sources":["../../../../../packages/binding-common/src/markers/MarkerTreeRoot.ts"],"sourcesContent":["import type { Alias, PlaceholderName } from '../treeParameters'\nimport type { SubTreeMarkers } from './SubTreeMarkers'\n\nexport class MarkerTreeRoot {\n\tpublic constructor(\n\t\tpublic readonly subTrees: SubTreeMarkers,\n\t\tpublic readonly placeholdersByAliases: ReadonlyMap<Alias, PlaceholderName>,\n\t) {}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,eAAe;AAAA,EACpB,YACU,UACA,uBACf;AAFe,SAAA,WAAA;AACA,SAAA,wBAAA;AAAA,EACd;AACJ;;"}
|
|
1
|
+
{"version":3,"file":"MarkerTreeRoot.cjs","sources":["../../../../../packages/binding-common/src/markers/MarkerTreeRoot.ts"],"sourcesContent":["import type { Alias, PlaceholderName } from '../treeParameters/index.js'\nimport type { SubTreeMarkers } from './SubTreeMarkers.js'\n\nexport class MarkerTreeRoot {\n\tpublic constructor(\n\t\tpublic readonly subTrees: SubTreeMarkers,\n\t\tpublic readonly placeholdersByAliases: ReadonlyMap<Alias, PlaceholderName>,\n\t) {}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,eAAe;AAAA,EACpB,YACU,UACA,uBACf;AAFe,SAAA,WAAA;AACA,SAAA,wBAAA;AAAA,EACd;AACJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerTreeRoot.js","sources":["../../../../../packages/binding-common/src/markers/MarkerTreeRoot.ts"],"sourcesContent":["import type { Alias, PlaceholderName } from '../treeParameters'\nimport type { SubTreeMarkers } from './SubTreeMarkers'\n\nexport class MarkerTreeRoot {\n\tpublic constructor(\n\t\tpublic readonly subTrees: SubTreeMarkers,\n\t\tpublic readonly placeholdersByAliases: ReadonlyMap<Alias, PlaceholderName>,\n\t) {}\n}\n"],"names":[],"mappings":"AAGO,MAAM,eAAe;AAAA,EACpB,YACU,UACA,uBACf;AAFe,SAAA,WAAA;AACA,SAAA,wBAAA;AAAA,EACd;AACJ;"}
|
|
1
|
+
{"version":3,"file":"MarkerTreeRoot.js","sources":["../../../../../packages/binding-common/src/markers/MarkerTreeRoot.ts"],"sourcesContent":["import type { Alias, PlaceholderName } from '../treeParameters/index.js'\nimport type { SubTreeMarkers } from './SubTreeMarkers.js'\n\nexport class MarkerTreeRoot {\n\tpublic constructor(\n\t\tpublic readonly subTrees: SubTreeMarkers,\n\t\tpublic readonly placeholdersByAliases: ReadonlyMap<Alias, PlaceholderName>,\n\t) {}\n}\n"],"names":[],"mappings":"AAGO,MAAM,eAAe;AAAA,EACpB,YACU,UACA,uBACf;AAFe,SAAA,WAAA;AACA,SAAA,wBAAA;AAAA,EACd;AACJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderGenerator.cjs","sources":["../../../../../packages/binding-common/src/markers/PlaceholderGenerator.ts"],"sourcesContent":["import type {\n\tFieldName,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { Hashing } from '../utils/Hashing'\nimport { Environment } from '../environment'\nimport { PlaceholderParametersGenerator } from './PlaceholderParametersGenerator'\n\nexport class PlaceholderGenerator {\n\tpublic static getFieldPlaceholder(fieldName: FieldName): string {\n\t\treturn fieldName // hashing intentionally ignored\n\t}\n\n\tpublic static getHasOneRelationPlaceholder(relation: HasOneRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasOneRelationParameters(relation))}`\n\t}\n\n\tpublic static getHasManyRelationPlaceholder(relation: HasManyRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasManyRelationParameters(relation))}`\n\t}\n\n\tpublic static getEntitySubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `est_${Hashing.hashAny(PlaceholderParametersGenerator.createEntitySubTreeParameters(subTreeParameters, environment))}`\n\t}\n\n\tpublic static getEntityListSubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `lst_${Hashing.hashAny(PlaceholderParametersGenerator.createEntityListSubTreeParameters(subTreeParameters, environment))}`\n\t}\n}\n"],"names":["Hashing","PlaceholderParametersGenerator"],"mappings":";;;;AAaO,MAAM,qBAAqB;AAAA,EACjC,OAAc,oBAAoB,WAA8B;AAC/D,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,6BAA6B,UAAkC;AAC5E,WAAO,GAAG,SAAS,KAAK,IAAIA,QAAAA,QAAQ,QAAQC,8DAA+B,+BAA+B,QAAQ,CAAC,CAAC;AAAA,EACrH;AAAA,EAEA,OAAc,8BAA8B,UAAmC;AAC9E,WAAO,GAAG,SAAS,KAAK,IAAID,QAAAA,QAAQ,QAAQC,8DAA+B,gCAAgC,QAAQ,CAAC,CAAC;AAAA,EACtH;AAAA,EAEA,OAAc,4BACb,mBACA,aACS;AACT,WAAO,OAAOD,QAAAA,QAAQ,QAAQC,+BAAAA,+BAA+B,8BAA8B,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAC5H;AAAA,EAEA,OAAc,gCACb,mBACA,aACS;AACT,WAAO,OAAOD,QAAAA,QAAQ,QAAQC,+BAAAA,+BAA+B,kCAAkC,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAChI;AACD;;"}
|
|
1
|
+
{"version":3,"file":"PlaceholderGenerator.cjs","sources":["../../../../../packages/binding-common/src/markers/PlaceholderGenerator.ts"],"sourcesContent":["import type {\n\tFieldName,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters/index.js'\nimport { Hashing } from '../utils/Hashing.js'\nimport { Environment } from '../environment/index.js'\nimport { PlaceholderParametersGenerator } from './PlaceholderParametersGenerator.js'\n\nexport class PlaceholderGenerator {\n\tpublic static getFieldPlaceholder(fieldName: FieldName): string {\n\t\treturn fieldName // hashing intentionally ignored\n\t}\n\n\tpublic static getHasOneRelationPlaceholder(relation: HasOneRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasOneRelationParameters(relation))}`\n\t}\n\n\tpublic static getHasManyRelationPlaceholder(relation: HasManyRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasManyRelationParameters(relation))}`\n\t}\n\n\tpublic static getEntitySubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `est_${Hashing.hashAny(PlaceholderParametersGenerator.createEntitySubTreeParameters(subTreeParameters, environment))}`\n\t}\n\n\tpublic static getEntityListSubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `lst_${Hashing.hashAny(PlaceholderParametersGenerator.createEntityListSubTreeParameters(subTreeParameters, environment))}`\n\t}\n}\n"],"names":["Hashing","PlaceholderParametersGenerator"],"mappings":";;;;AAaO,MAAM,qBAAqB;AAAA,EACjC,OAAc,oBAAoB,WAA8B;AAC/D,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,6BAA6B,UAAkC;AAC5E,WAAO,GAAG,SAAS,KAAK,IAAIA,QAAAA,QAAQ,QAAQC,8DAA+B,+BAA+B,QAAQ,CAAC,CAAC;AAAA,EACrH;AAAA,EAEA,OAAc,8BAA8B,UAAmC;AAC9E,WAAO,GAAG,SAAS,KAAK,IAAID,QAAAA,QAAQ,QAAQC,8DAA+B,gCAAgC,QAAQ,CAAC,CAAC;AAAA,EACtH;AAAA,EAEA,OAAc,4BACb,mBACA,aACS;AACT,WAAO,OAAOD,QAAAA,QAAQ,QAAQC,+BAAAA,+BAA+B,8BAA8B,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAC5H;AAAA,EAEA,OAAc,gCACb,mBACA,aACS;AACT,WAAO,OAAOD,QAAAA,QAAQ,QAAQC,+BAAAA,+BAA+B,kCAAkC,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAChI;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderGenerator.js","sources":["../../../../../packages/binding-common/src/markers/PlaceholderGenerator.ts"],"sourcesContent":["import type {\n\tFieldName,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { Hashing } from '../utils/Hashing'\nimport { Environment } from '../environment'\nimport { PlaceholderParametersGenerator } from './PlaceholderParametersGenerator'\n\nexport class PlaceholderGenerator {\n\tpublic static getFieldPlaceholder(fieldName: FieldName): string {\n\t\treturn fieldName // hashing intentionally ignored\n\t}\n\n\tpublic static getHasOneRelationPlaceholder(relation: HasOneRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasOneRelationParameters(relation))}`\n\t}\n\n\tpublic static getHasManyRelationPlaceholder(relation: HasManyRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasManyRelationParameters(relation))}`\n\t}\n\n\tpublic static getEntitySubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `est_${Hashing.hashAny(PlaceholderParametersGenerator.createEntitySubTreeParameters(subTreeParameters, environment))}`\n\t}\n\n\tpublic static getEntityListSubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `lst_${Hashing.hashAny(PlaceholderParametersGenerator.createEntityListSubTreeParameters(subTreeParameters, environment))}`\n\t}\n}\n"],"names":[],"mappings":";;AAaO,MAAM,qBAAqB;AAAA,EACjC,OAAc,oBAAoB,WAA8B;AAC/D,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,6BAA6B,UAAkC;AAC5E,WAAO,GAAG,SAAS,KAAK,IAAI,QAAQ,QAAQ,+BAA+B,+BAA+B,QAAQ,CAAC,CAAC;AAAA,EACrH;AAAA,EAEA,OAAc,8BAA8B,UAAmC;AAC9E,WAAO,GAAG,SAAS,KAAK,IAAI,QAAQ,QAAQ,+BAA+B,gCAAgC,QAAQ,CAAC,CAAC;AAAA,EACtH;AAAA,EAEA,OAAc,4BACb,mBACA,aACS;AACT,WAAO,OAAO,QAAQ,QAAQ,+BAA+B,8BAA8B,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAC5H;AAAA,EAEA,OAAc,gCACb,mBACA,aACS;AACT,WAAO,OAAO,QAAQ,QAAQ,+BAA+B,kCAAkC,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAChI;AACD;"}
|
|
1
|
+
{"version":3,"file":"PlaceholderGenerator.js","sources":["../../../../../packages/binding-common/src/markers/PlaceholderGenerator.ts"],"sourcesContent":["import type {\n\tFieldName,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters/index.js'\nimport { Hashing } from '../utils/Hashing.js'\nimport { Environment } from '../environment/index.js'\nimport { PlaceholderParametersGenerator } from './PlaceholderParametersGenerator.js'\n\nexport class PlaceholderGenerator {\n\tpublic static getFieldPlaceholder(fieldName: FieldName): string {\n\t\treturn fieldName // hashing intentionally ignored\n\t}\n\n\tpublic static getHasOneRelationPlaceholder(relation: HasOneRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasOneRelationParameters(relation))}`\n\t}\n\n\tpublic static getHasManyRelationPlaceholder(relation: HasManyRelation): string {\n\t\treturn `${relation.field}_${Hashing.hashAny(PlaceholderParametersGenerator.createHasManyRelationParameters(relation))}`\n\t}\n\n\tpublic static getEntitySubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `est_${Hashing.hashAny(PlaceholderParametersGenerator.createEntitySubTreeParameters(subTreeParameters, environment))}`\n\t}\n\n\tpublic static getEntityListSubTreePlaceholder(\n\t\tsubTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): string {\n\t\treturn `lst_${Hashing.hashAny(PlaceholderParametersGenerator.createEntityListSubTreeParameters(subTreeParameters, environment))}`\n\t}\n}\n"],"names":[],"mappings":";;AAaO,MAAM,qBAAqB;AAAA,EACjC,OAAc,oBAAoB,WAA8B;AAC/D,WAAO;AAAA,EACR;AAAA,EAEA,OAAc,6BAA6B,UAAkC;AAC5E,WAAO,GAAG,SAAS,KAAK,IAAI,QAAQ,QAAQ,+BAA+B,+BAA+B,QAAQ,CAAC,CAAC;AAAA,EACrH;AAAA,EAEA,OAAc,8BAA8B,UAAmC;AAC9E,WAAO,GAAG,SAAS,KAAK,IAAI,QAAQ,QAAQ,+BAA+B,gCAAgC,QAAQ,CAAC,CAAC;AAAA,EACtH;AAAA,EAEA,OAAc,4BACb,mBACA,aACS;AACT,WAAO,OAAO,QAAQ,QAAQ,+BAA+B,8BAA8B,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAC5H;AAAA,EAEA,OAAc,gCACb,mBACA,aACS;AACT,WAAO,OAAO,QAAQ,QAAQ,+BAA+B,kCAAkC,mBAAmB,WAAW,CAAC,CAAC;AAAA,EAChI;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderParametersGenerator.cjs","sources":["../../../../../packages/binding-common/src/markers/PlaceholderParametersGenerator.ts"],"sourcesContent":["import {\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { Environment } from '../environment'\n\nexport class PlaceholderParametersGenerator {\n\tpublic static createHasOneRelationParameters(relation: HasOneRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasOne',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\treducedBy: relation.reducedBy,\n\t\t}\n\t}\n\n\tpublic static createHasManyRelationParameters(relation: HasManyRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasMany',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\toffset: relation.offset,\n\t\t\tlimit: relation.limit,\n\t\t\torderBy: relation.orderBy,\n\t\t}\n\t}\n\n\tpublic static createEntityListSubTreeParameters(\n\t\tparameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entityListSubtree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entityListSubtree',\n\t\t\tisCreating: false,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\toffset: parameters.offset,\n\t\t\tlimit: parameters.limit,\n\t\t\torderBy: parameters.orderBy,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n\n\tpublic static createEntitySubTreeParameters(\n\t\tparameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entitySubTree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entitySubTree',\n\t\t\tisCreating: false,\n\t\t\twhere: parameters.where,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAUO,MAAM,+BAA+B;AAAA,EAC3C,OAAc,+BAA+B,UAA+B;AAC3E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,WAAW,SAAS;AAAA,IAAA;AAAA,EAEtB;AAAA,EAEA,OAAc,gCAAgC,UAAgC;AAC7E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,IAAA;AAAA,EAEpB;AAAA,EAEA,OAAc,kCACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,QAAQ,WAAW;AAAA,MACnB,OAAO,WAAW;AAAA,MAClB,SAAS,WAAW;AAAA,MACpB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AAAA,EAEA,OAAc,8BACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO,WAAW;AAAA,MAClB,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AACD;;"}
|
|
1
|
+
{"version":3,"file":"PlaceholderParametersGenerator.cjs","sources":["../../../../../packages/binding-common/src/markers/PlaceholderParametersGenerator.ts"],"sourcesContent":["import {\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters/index.js'\nimport { Environment } from '../environment/index.js'\n\nexport class PlaceholderParametersGenerator {\n\tpublic static createHasOneRelationParameters(relation: HasOneRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasOne',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\treducedBy: relation.reducedBy,\n\t\t}\n\t}\n\n\tpublic static createHasManyRelationParameters(relation: HasManyRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasMany',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\toffset: relation.offset,\n\t\t\tlimit: relation.limit,\n\t\t\torderBy: relation.orderBy,\n\t\t}\n\t}\n\n\tpublic static createEntityListSubTreeParameters(\n\t\tparameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entityListSubtree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entityListSubtree',\n\t\t\tisCreating: false,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\toffset: parameters.offset,\n\t\t\tlimit: parameters.limit,\n\t\t\torderBy: parameters.orderBy,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n\n\tpublic static createEntitySubTreeParameters(\n\t\tparameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entitySubTree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entitySubTree',\n\t\t\tisCreating: false,\n\t\t\twhere: parameters.where,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAUO,MAAM,+BAA+B;AAAA,EAC3C,OAAc,+BAA+B,UAA+B;AAC3E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,WAAW,SAAS;AAAA,IAAA;AAAA,EAEtB;AAAA,EAEA,OAAc,gCAAgC,UAAgC;AAC7E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,IAAA;AAAA,EAEpB;AAAA,EAEA,OAAc,kCACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,QAAQ,WAAW;AAAA,MACnB,OAAO,WAAW;AAAA,MAClB,SAAS,WAAW;AAAA,MACpB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AAAA,EAEA,OAAc,8BACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO,WAAW;AAAA,MAClB,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderParametersGenerator.js","sources":["../../../../../packages/binding-common/src/markers/PlaceholderParametersGenerator.ts"],"sourcesContent":["import {\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { Environment } from '../environment'\n\nexport class PlaceholderParametersGenerator {\n\tpublic static createHasOneRelationParameters(relation: HasOneRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasOne',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\treducedBy: relation.reducedBy,\n\t\t}\n\t}\n\n\tpublic static createHasManyRelationParameters(relation: HasManyRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasMany',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\toffset: relation.offset,\n\t\t\tlimit: relation.limit,\n\t\t\torderBy: relation.orderBy,\n\t\t}\n\t}\n\n\tpublic static createEntityListSubTreeParameters(\n\t\tparameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entityListSubtree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entityListSubtree',\n\t\t\tisCreating: false,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\toffset: parameters.offset,\n\t\t\tlimit: parameters.limit,\n\t\t\torderBy: parameters.orderBy,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n\n\tpublic static createEntitySubTreeParameters(\n\t\tparameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entitySubTree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entitySubTree',\n\t\t\tisCreating: false,\n\t\t\twhere: parameters.where,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAUO,MAAM,+BAA+B;AAAA,EAC3C,OAAc,+BAA+B,UAA+B;AAC3E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,WAAW,SAAS;AAAA,IAAA;AAAA,EAEtB;AAAA,EAEA,OAAc,gCAAgC,UAAgC;AAC7E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,IAAA;AAAA,EAEpB;AAAA,EAEA,OAAc,kCACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,QAAQ,WAAW;AAAA,MACnB,OAAO,WAAW;AAAA,MAClB,SAAS,WAAW;AAAA,MACpB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AAAA,EAEA,OAAc,8BACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO,WAAW;AAAA,MAClB,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AACD;"}
|
|
1
|
+
{"version":3,"file":"PlaceholderParametersGenerator.js","sources":["../../../../../packages/binding-common/src/markers/PlaceholderParametersGenerator.ts"],"sourcesContent":["import {\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters/index.js'\nimport { Environment } from '../environment/index.js'\n\nexport class PlaceholderParametersGenerator {\n\tpublic static createHasOneRelationParameters(relation: HasOneRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasOne',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\treducedBy: relation.reducedBy,\n\t\t}\n\t}\n\n\tpublic static createHasManyRelationParameters(relation: HasManyRelation): any {\n\t\treturn {\n\t\t\ttype: 'hasMany',\n\t\t\tfield: relation.field,\n\t\t\tfilter: relation.filter,\n\t\t\toffset: relation.offset,\n\t\t\tlimit: relation.limit,\n\t\t\torderBy: relation.orderBy,\n\t\t}\n\t}\n\n\tpublic static createEntityListSubTreeParameters(\n\t\tparameters: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entityListSubtree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entityListSubtree',\n\t\t\tisCreating: false,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\toffset: parameters.offset,\n\t\t\tlimit: parameters.limit,\n\t\t\torderBy: parameters.orderBy,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n\n\tpublic static createEntitySubTreeParameters(\n\t\tparameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tenvironment: Environment,\n\t): any {\n\t\tif (parameters.isCreating) {\n\t\t\treturn {\n\t\t\t\ttype: 'entitySubTree',\n\t\t\t\tisCreating: true,\n\t\t\t\tentityName: parameters.entityName,\n\t\t\t\tvariables: environment.getAllVariables(),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: 'entitySubTree',\n\t\t\tisCreating: false,\n\t\t\twhere: parameters.where,\n\t\t\tentityName: parameters.entityName,\n\t\t\tfilter: parameters.filter,\n\t\t\tvariables: environment.getAllVariables(),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAUO,MAAM,+BAA+B;AAAA,EAC3C,OAAc,+BAA+B,UAA+B;AAC3E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,WAAW,SAAS;AAAA,IAAA;AAAA,EAEtB;AAAA,EAEA,OAAc,gCAAgC,UAAgC;AAC7E,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,IAAA;AAAA,EAEpB;AAAA,EAEA,OAAc,kCACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,QAAQ,WAAW;AAAA,MACnB,OAAO,WAAW;AAAA,MAClB,SAAS,WAAW;AAAA,MACpB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AAAA,EAEA,OAAc,8BACb,YACA,aACM;AACN,QAAI,WAAW,YAAY;AAC1B,aAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,WAAW;AAAA,QACvB,WAAW,YAAY,gBAAA;AAAA,MAAgB;AAAA,IAEzC;AACA,WAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO,WAAW;AAAA,MAClB,YAAY,WAAW;AAAA,MACvB,QAAQ,WAAW;AAAA,MACnB,WAAW,YAAY,gBAAA;AAAA,IAAgB;AAAA,EAEzC;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheStore.cjs","sources":["../../../../../packages/binding-common/src/queryLanguage/CacheStore.ts"],"sourcesContent":["import type { Environment } from '../environment'\nimport { LRUCache } from '@contember/utilities'\nimport type { Parser } from './Parser'\n\ntype CacheByEntryPoint = {\n\t[Entry in Parser.EntryPoint]: LRUCache<string, Parser.ParserResult[Entry]>\n}\n\nexport class CacheStore {\n\tprivate cacheStore: WeakMap<Environment, CacheByEntryPoint> = new WeakMap()\n\n\tpublic get<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t): Parser.ParserResult[Entry] | undefined {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\treturn caches[entry].get(expression) as Parser.ParserResult[Entry] | undefined\n\t}\n\n\tpublic set<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t\tvalue: Parser.ParserResult[Entry],\n\t) {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\t;(caches[entry] as LRUCache<string, Parser.ParserResult[Entry]>).set(expression, value)\n\t}\n\n\tprivate createEntryPointCache(): CacheByEntryPoint {\n\t\t// TODO configurable limits\n\t\treturn {\n\t\t\tqualifiedEntityList: new LRUCache(50),\n\t\t\tqualifiedFieldList: new LRUCache(50),\n\t\t\tqualifiedSingleEntity: new LRUCache(50),\n\t\t\tunconstrainedQualifiedEntityList: new LRUCache(10),\n\t\t\tunconstrainedQualifiedSingleEntity: new LRUCache(10),\n\t\t\trelativeSingleField: new LRUCache(1000),\n\t\t\trelativeSingleEntity: new LRUCache(500),\n\t\t\trelativeEntityList: new LRUCache(500),\n\t\t\tuniqueWhere: new LRUCache(100),\n\t\t\tfilter: new LRUCache(100),\n\t\t\torderBy: new LRUCache(50),\n\t\t\ttaggedMap: new LRUCache(50),\n\t\t\tcolumnValue: new LRUCache(500),\n\t\t}\n\t}\n}\n"],"names":["LRUCache"],"mappings":";;;;;;AAQO,MAAM,WAAW;AAAA,EAAjB,cAAA;AACN,kBAAA,MAAQ,kCAA0D,QAAA,CAAQ;AAAA,EAAA;AAAA,EAEnE,IACN,aACA,OACA,YACyC;AACzC,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACA,WAAO,OAAO,KAAK,EAAE,IAAI,UAAU;AAAA,EACpC;AAAA,EAEO,IACN,aACA,OACA,YACA,OACC;AACD,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACE,WAAO,KAAK,EAAmD,IAAI,YAAY,KAAK;AAAA,EACvF;AAAA,EAEQ,wBAA2C;AAElD,WAAO;AAAA,MACN,qBAAqB,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACpC,oBAAoB,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACnC,uBAAuB,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACtC,kCAAkC,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACjD,oCAAoC,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACnD,qBAAqB,IAAIA,UAAAA,SAAS,GAAI;AAAA,MACtC,sBAAsB,IAAIA,UAAAA,SAAS,GAAG;AAAA,MACtC,oBAAoB,IAAIA,UAAAA,SAAS,GAAG;AAAA,MACpC,aAAa,IAAIA,UAAAA,SAAS,GAAG;AAAA,MAC7B,QAAQ,IAAIA,UAAAA,SAAS,GAAG;AAAA,MACxB,SAAS,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACxB,WAAW,IAAIA,UAAAA,SAAS,EAAE;AAAA,MAC1B,aAAa,IAAIA,UAAAA,SAAS,GAAG;AAAA,IAAA;AAAA,EAE/B;AACD;;"}
|
|
1
|
+
{"version":3,"file":"CacheStore.cjs","sources":["../../../../../packages/binding-common/src/queryLanguage/CacheStore.ts"],"sourcesContent":["import type { Environment } from '../environment/index.js'\nimport { LRUCache } from '@contember/utilities'\nimport type { Parser } from './Parser.js'\n\ntype CacheByEntryPoint = {\n\t[Entry in Parser.EntryPoint]: LRUCache<string, Parser.ParserResult[Entry]>\n}\n\nexport class CacheStore {\n\tprivate cacheStore: WeakMap<Environment, CacheByEntryPoint> = new WeakMap()\n\n\tpublic get<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t): Parser.ParserResult[Entry] | undefined {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\treturn caches[entry].get(expression) as Parser.ParserResult[Entry] | undefined\n\t}\n\n\tpublic set<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t\tvalue: Parser.ParserResult[Entry],\n\t) {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\t;(caches[entry] as LRUCache<string, Parser.ParserResult[Entry]>).set(expression, value)\n\t}\n\n\tprivate createEntryPointCache(): CacheByEntryPoint {\n\t\t// TODO configurable limits\n\t\treturn {\n\t\t\tqualifiedEntityList: new LRUCache(50),\n\t\t\tqualifiedFieldList: new LRUCache(50),\n\t\t\tqualifiedSingleEntity: new LRUCache(50),\n\t\t\tunconstrainedQualifiedEntityList: new LRUCache(10),\n\t\t\tunconstrainedQualifiedSingleEntity: new LRUCache(10),\n\t\t\trelativeSingleField: new LRUCache(1000),\n\t\t\trelativeSingleEntity: new LRUCache(500),\n\t\t\trelativeEntityList: new LRUCache(500),\n\t\t\tuniqueWhere: new LRUCache(100),\n\t\t\tfilter: new LRUCache(100),\n\t\t\torderBy: new LRUCache(50),\n\t\t\ttaggedMap: new LRUCache(50),\n\t\t\tcolumnValue: new LRUCache(500),\n\t\t}\n\t}\n}\n"],"names":["LRUCache"],"mappings":";;;;;;AAQO,MAAM,WAAW;AAAA,EAAjB,cAAA;AACN,kBAAA,MAAQ,kCAA0D,QAAA,CAAQ;AAAA,EAAA;AAAA,EAEnE,IACN,aACA,OACA,YACyC;AACzC,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACA,WAAO,OAAO,KAAK,EAAE,IAAI,UAAU;AAAA,EACpC;AAAA,EAEO,IACN,aACA,OACA,YACA,OACC;AACD,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACE,WAAO,KAAK,EAAmD,IAAI,YAAY,KAAK;AAAA,EACvF;AAAA,EAEQ,wBAA2C;AAElD,WAAO;AAAA,MACN,qBAAqB,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACpC,oBAAoB,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACnC,uBAAuB,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACtC,kCAAkC,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACjD,oCAAoC,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACnD,qBAAqB,IAAIA,UAAAA,SAAS,GAAI;AAAA,MACtC,sBAAsB,IAAIA,UAAAA,SAAS,GAAG;AAAA,MACtC,oBAAoB,IAAIA,UAAAA,SAAS,GAAG;AAAA,MACpC,aAAa,IAAIA,UAAAA,SAAS,GAAG;AAAA,MAC7B,QAAQ,IAAIA,UAAAA,SAAS,GAAG;AAAA,MACxB,SAAS,IAAIA,UAAAA,SAAS,EAAE;AAAA,MACxB,WAAW,IAAIA,UAAAA,SAAS,EAAE;AAAA,MAC1B,aAAa,IAAIA,UAAAA,SAAS,GAAG;AAAA,IAAA;AAAA,EAE/B;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheStore.js","sources":["../../../../../packages/binding-common/src/queryLanguage/CacheStore.ts"],"sourcesContent":["import type { Environment } from '../environment'\nimport { LRUCache } from '@contember/utilities'\nimport type { Parser } from './Parser'\n\ntype CacheByEntryPoint = {\n\t[Entry in Parser.EntryPoint]: LRUCache<string, Parser.ParserResult[Entry]>\n}\n\nexport class CacheStore {\n\tprivate cacheStore: WeakMap<Environment, CacheByEntryPoint> = new WeakMap()\n\n\tpublic get<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t): Parser.ParserResult[Entry] | undefined {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\treturn caches[entry].get(expression) as Parser.ParserResult[Entry] | undefined\n\t}\n\n\tpublic set<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t\tvalue: Parser.ParserResult[Entry],\n\t) {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\t;(caches[entry] as LRUCache<string, Parser.ParserResult[Entry]>).set(expression, value)\n\t}\n\n\tprivate createEntryPointCache(): CacheByEntryPoint {\n\t\t// TODO configurable limits\n\t\treturn {\n\t\t\tqualifiedEntityList: new LRUCache(50),\n\t\t\tqualifiedFieldList: new LRUCache(50),\n\t\t\tqualifiedSingleEntity: new LRUCache(50),\n\t\t\tunconstrainedQualifiedEntityList: new LRUCache(10),\n\t\t\tunconstrainedQualifiedSingleEntity: new LRUCache(10),\n\t\t\trelativeSingleField: new LRUCache(1000),\n\t\t\trelativeSingleEntity: new LRUCache(500),\n\t\t\trelativeEntityList: new LRUCache(500),\n\t\t\tuniqueWhere: new LRUCache(100),\n\t\t\tfilter: new LRUCache(100),\n\t\t\torderBy: new LRUCache(50),\n\t\t\ttaggedMap: new LRUCache(50),\n\t\t\tcolumnValue: new LRUCache(500),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;AAQO,MAAM,WAAW;AAAA,EAAjB,cAAA;AACN,kBAAA,MAAQ,kCAA0D,QAAA,CAAQ;AAAA,EAAA;AAAA,EAEnE,IACN,aACA,OACA,YACyC;AACzC,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACA,WAAO,OAAO,KAAK,EAAE,IAAI,UAAU;AAAA,EACpC;AAAA,EAEO,IACN,aACA,OACA,YACA,OACC;AACD,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACE,WAAO,KAAK,EAAmD,IAAI,YAAY,KAAK;AAAA,EACvF;AAAA,EAEQ,wBAA2C;AAElD,WAAO;AAAA,MACN,qBAAqB,IAAI,SAAS,EAAE;AAAA,MACpC,oBAAoB,IAAI,SAAS,EAAE;AAAA,MACnC,uBAAuB,IAAI,SAAS,EAAE;AAAA,MACtC,kCAAkC,IAAI,SAAS,EAAE;AAAA,MACjD,oCAAoC,IAAI,SAAS,EAAE;AAAA,MACnD,qBAAqB,IAAI,SAAS,GAAI;AAAA,MACtC,sBAAsB,IAAI,SAAS,GAAG;AAAA,MACtC,oBAAoB,IAAI,SAAS,GAAG;AAAA,MACpC,aAAa,IAAI,SAAS,GAAG;AAAA,MAC7B,QAAQ,IAAI,SAAS,GAAG;AAAA,MACxB,SAAS,IAAI,SAAS,EAAE;AAAA,MACxB,WAAW,IAAI,SAAS,EAAE;AAAA,MAC1B,aAAa,IAAI,SAAS,GAAG;AAAA,IAAA;AAAA,EAE/B;AACD;"}
|
|
1
|
+
{"version":3,"file":"CacheStore.js","sources":["../../../../../packages/binding-common/src/queryLanguage/CacheStore.ts"],"sourcesContent":["import type { Environment } from '../environment/index.js'\nimport { LRUCache } from '@contember/utilities'\nimport type { Parser } from './Parser.js'\n\ntype CacheByEntryPoint = {\n\t[Entry in Parser.EntryPoint]: LRUCache<string, Parser.ParserResult[Entry]>\n}\n\nexport class CacheStore {\n\tprivate cacheStore: WeakMap<Environment, CacheByEntryPoint> = new WeakMap()\n\n\tpublic get<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t): Parser.ParserResult[Entry] | undefined {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\treturn caches[entry].get(expression) as Parser.ParserResult[Entry] | undefined\n\t}\n\n\tpublic set<Entry extends Parser.EntryPoint>(\n\t\tenvironment: Environment,\n\t\tentry: Entry,\n\t\texpression: string,\n\t\tvalue: Parser.ParserResult[Entry],\n\t) {\n\t\tlet caches = this.cacheStore.get(environment)\n\n\t\tif (caches === undefined) {\n\t\t\tthis.cacheStore.set(environment, caches = this.createEntryPointCache())\n\t\t}\n\t\t;(caches[entry] as LRUCache<string, Parser.ParserResult[Entry]>).set(expression, value)\n\t}\n\n\tprivate createEntryPointCache(): CacheByEntryPoint {\n\t\t// TODO configurable limits\n\t\treturn {\n\t\t\tqualifiedEntityList: new LRUCache(50),\n\t\t\tqualifiedFieldList: new LRUCache(50),\n\t\t\tqualifiedSingleEntity: new LRUCache(50),\n\t\t\tunconstrainedQualifiedEntityList: new LRUCache(10),\n\t\t\tunconstrainedQualifiedSingleEntity: new LRUCache(10),\n\t\t\trelativeSingleField: new LRUCache(1000),\n\t\t\trelativeSingleEntity: new LRUCache(500),\n\t\t\trelativeEntityList: new LRUCache(500),\n\t\t\tuniqueWhere: new LRUCache(100),\n\t\t\tfilter: new LRUCache(100),\n\t\t\torderBy: new LRUCache(50),\n\t\t\ttaggedMap: new LRUCache(50),\n\t\t\tcolumnValue: new LRUCache(500),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;AAQO,MAAM,WAAW;AAAA,EAAjB,cAAA;AACN,kBAAA,MAAQ,kCAA0D,QAAA,CAAQ;AAAA,EAAA;AAAA,EAEnE,IACN,aACA,OACA,YACyC;AACzC,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACA,WAAO,OAAO,KAAK,EAAE,IAAI,UAAU;AAAA,EACpC;AAAA,EAEO,IACN,aACA,OACA,YACA,OACC;AACD,QAAI,SAAS,KAAK,WAAW,IAAI,WAAW;AAE5C,QAAI,WAAW,QAAW;AACzB,WAAK,WAAW,IAAI,aAAa,SAAS,KAAK,uBAAuB;AAAA,IACvE;AACE,WAAO,KAAK,EAAmD,IAAI,YAAY,KAAK;AAAA,EACvF;AAAA,EAEQ,wBAA2C;AAElD,WAAO;AAAA,MACN,qBAAqB,IAAI,SAAS,EAAE;AAAA,MACpC,oBAAoB,IAAI,SAAS,EAAE;AAAA,MACnC,uBAAuB,IAAI,SAAS,EAAE;AAAA,MACtC,kCAAkC,IAAI,SAAS,EAAE;AAAA,MACjD,oCAAoC,IAAI,SAAS,EAAE;AAAA,MACnD,qBAAqB,IAAI,SAAS,GAAI;AAAA,MACtC,sBAAsB,IAAI,SAAS,GAAG;AAAA,MACtC,oBAAoB,IAAI,SAAS,GAAG;AAAA,MACpC,aAAa,IAAI,SAAS,GAAG;AAAA,MAC7B,QAAQ,IAAI,SAAS,GAAG;AAAA,MACxB,SAAS,IAAI,SAAS,EAAE;AAAA,MACxB,WAAW,IAAI,SAAS,EAAE;AAAA,MAC1B,aAAa,IAAI,SAAS,GAAG;AAAA,IAAA;AAAA,EAE/B;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerFactory.cjs","sources":["../../../../../packages/binding-common/src/queryLanguage/MarkerFactory.ts"],"sourcesContent":["import type { Environment } from '../environment'\nimport {\n\tEntityFieldMarker,\n\tEntityFieldMarkersContainer,\n\tEntityFieldsWithHoistablesMarker,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n} from '../markers'\nimport { MarkerMerger } from '../markers/MarkerMerger'\nimport type {\n\tEntityEventListenerStore,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSugaredParentEntityParameters,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'\nimport { assertNever } from '../utils/assertNever'\nimport { QueryLanguage } from './QueryLanguage'\n\nexport class MarkerFactory {\n\tpublic static createEntitySubTreeMarker(\n\t\tentity: SugaredQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst qualifiedSingleEntity: QualifiedSingleEntity = QueryLanguage.desugarQualifiedSingleEntity(entity, environment)\n\n\t\treturn this.createSubTreeMarker(qualifiedSingleEntity, 'eventListeners', EntitySubTreeMarker, fields, environment)\n\t}\n\n\tpublic static createUnconstrainedEntitySubTreeMarker(\n\t\tentity: SugaredUnconstrainedQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedSingleEntity(entity, environment),\n\t\t\t'eventListeners',\n\t\t\tEntitySubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createEntityListSubTreeMarker(\n\t\tentityList: SugaredQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createUnconstrainedEntityListSubTreeMarker(\n\t\tentityList: SugaredUnconstrainedQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createParentEntityMarker(\n\t\tparentEntity: SugaredParentEntityParameters,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst desugared = QueryLanguage.desugarParentEntityParameters(parentEntity, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, desugared)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tfields.fields,\n\t\t\tfields.subTrees,\n\t\t\tTreeParameterMerger.mergeParentEntityParameters(fields.parentReference, desugared),\n\t\t)\n\t}\n\n\tpublic static createEntityFieldsWithHoistablesMarker(\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, undefined)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(fields.fields, fields.subTrees, undefined)\n\t}\n\n\tpublic static createRelativeSingleEntityFields(\n\t\tfield: SugaredRelativeSingleEntity,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields)\n\t\t}\n\n\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1] = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1],\n\t\t\t'eventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields.fields),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createRelativeEntityListFields(\n\t\tfield: SugaredRelativeEntityList,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeEntityList = QueryLanguage.desugarRelativeEntityList(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t\tenvironment,\n\t\t\t\tfields,\n\t\t\t)\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t)\n\t\t}\n\n\t\trelativeEntityList.hasManyRelation = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t'childEventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\tenvironment,\n\t\t\tfields.fields,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createFieldMarker(field: SugaredRelativeSingleField, environment: Environment): EntityFieldMarkersContainer {\n\t\treturn this.wrapRelativeSingleField(\n\t\t\tfield,\n\t\t\tenvironment,\n\t\t\trelativeSingleField => new FieldMarker(relativeSingleField),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeSingleField(\n\t\tfield: SugaredRelativeSingleField,\n\t\tenvironment: Environment,\n\t\tgetMarker: (relativeSingleField: RelativeSingleField) => EntityFieldMarker,\n\t): EntityFieldMarkersContainer {\n\t\tconst relativeSingleField = QueryLanguage.desugarRelativeSingleField(field, environment)\n\n\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\trelativeSingleField.hasOneRelationPath,\n\t\t\tenvironment.getParent(),\n\t\t\tthis.createEntityFieldMarkersContainer(getMarker(relativeSingleField)),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeEntityFieldMarkers(\n\t\thasOneRelationPath: HasOneRelation[],\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tfor (let i = hasOneRelationPath.length - 1; i >= 0; i--) {\n\t\t\tconst marker = this.createHasOneRelationMarker(hasOneRelationPath[i], environment, fields)\n\t\t\tenvironment = environment.getParent()\n\t\t\tfields = this.createEntityFieldMarkersContainer(marker)\n\t\t}\n\n\t\treturn fields\n\t}\n\n\tpublic static createEntityFieldMarkersContainer(marker: EntityFieldMarker | undefined): EntityFieldMarkersContainer {\n\t\tif (marker instanceof FieldMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.fieldName, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker instanceof HasOneRelationMarker || marker instanceof HasManyRelationMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.parameters.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.parameters.field, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker === undefined) {\n\t\t\treturn new EntityFieldMarkersContainer(false, new Map(), new Map())\n\t\t} else {\n\t\t\treturn assertNever(marker)\n\t\t}\n\t}\n\n\tprivate static createHasOneRelationMarker(\n\t\thasOneRelation: HasOneRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): HasOneRelationMarker {\n\t\treturn new HasOneRelationMarker(\n\t\t\t{\n\t\t\t\t...hasOneRelation,\n\t\t\t\tsetOnCreate: hasOneRelation.reducedBy\n\t\t\t\t\t? TreeParameterMerger.mergeSetOnCreate(hasOneRelation.setOnCreate || {}, hasOneRelation.reducedBy)\n\t\t\t\t\t: hasOneRelation.setOnCreate,\n\t\t\t},\n\t\t\tMarkerMerger.mergeInSystemFields(fields),\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tprivate static createHasManyRelationMarker(\n\t\thasManyRelation: HasManyRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t) {\n\t\treturn new HasManyRelationMarker(hasManyRelation, MarkerMerger.mergeInSystemFields(fields), environment)\n\t}\n\n\tprivate static createSubTreeMarker<\n\t\tParams extends Record<'hasOneRelationPath', HasOneRelation[]> & Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Params,\n\t>(\n\t\tqualifiedParams: Params,\n\t\tkey: Key,\n\t\tMarker: new(params: Params, fields: EntityFieldMarkersContainer, env: Environment) =>\n\t\t\t| EntitySubTreeMarker\n\t\t\t| EntityListSubTreeMarker,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tlet entityFields: EntityFieldMarkersContainer | undefined\n\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\t// TODO this is wrong with respect to hasOneRelationPath\n\t\t\tqualifiedParams = TreeParameterMerger.mergeInParentEntity(qualifiedParams, key, fields.parentReference)\n\t\t\tentityFields = fields.fields\n\t\t} else {\n\t\t\tentityFields = fields\n\t\t}\n\n\t\tconst subTree = new Marker(\n\t\t\tqualifiedParams,\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\tqualifiedParams.hasOneRelationPath,\n\t\t\t\tenvironment,\n\t\t\t\tMarkerMerger.mergeInSystemFields(entityFields),\n\t\t\t),\n\t\t\tenvironment,\n\t\t)\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\t\tMarkerMerger.mergeSubTreeMarkers(fields.subTrees, new Map([[subTree.placeholderName, subTree]])),\n\t\t\t\tundefined,\n\t\t\t)\n\t\t}\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\tnew Map([[subTree.placeholderName, subTree]]),\n\t\t\tundefined,\n\t\t)\n\t}\n}\n"],"names":["QueryLanguage","EntitySubTreeMarker","EntityListSubTreeMarker","EntityFieldMarkersContainer","EntityFieldsWithHoistablesMarker","TreeParameterMerger","hasManyRelationMarker","FieldMarker","HasOneRelationMarker","HasManyRelationMarker","assertNever","MarkerMerger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkerFactory.cjs","sources":["../../../../../packages/binding-common/src/queryLanguage/MarkerFactory.ts"],"sourcesContent":["import type { Environment } from '../environment/index.js'\nimport {\n\tEntityFieldMarker,\n\tEntityFieldMarkersContainer,\n\tEntityFieldsWithHoistablesMarker,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n} from '../markers/index.js'\nimport { MarkerMerger } from '../markers/MarkerMerger.js'\nimport type {\n\tEntityEventListenerStore,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSugaredParentEntityParameters,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters/index.js'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger.js'\nimport { assertNever } from '../utils/assertNever.js'\nimport { QueryLanguage } from './QueryLanguage.js'\n\nexport class MarkerFactory {\n\tpublic static createEntitySubTreeMarker(\n\t\tentity: SugaredQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst qualifiedSingleEntity: QualifiedSingleEntity = QueryLanguage.desugarQualifiedSingleEntity(entity, environment)\n\n\t\treturn this.createSubTreeMarker(qualifiedSingleEntity, 'eventListeners', EntitySubTreeMarker, fields, environment)\n\t}\n\n\tpublic static createUnconstrainedEntitySubTreeMarker(\n\t\tentity: SugaredUnconstrainedQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedSingleEntity(entity, environment),\n\t\t\t'eventListeners',\n\t\t\tEntitySubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createEntityListSubTreeMarker(\n\t\tentityList: SugaredQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createUnconstrainedEntityListSubTreeMarker(\n\t\tentityList: SugaredUnconstrainedQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createParentEntityMarker(\n\t\tparentEntity: SugaredParentEntityParameters,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst desugared = QueryLanguage.desugarParentEntityParameters(parentEntity, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, desugared)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tfields.fields,\n\t\t\tfields.subTrees,\n\t\t\tTreeParameterMerger.mergeParentEntityParameters(fields.parentReference, desugared),\n\t\t)\n\t}\n\n\tpublic static createEntityFieldsWithHoistablesMarker(\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, undefined)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(fields.fields, fields.subTrees, undefined)\n\t}\n\n\tpublic static createRelativeSingleEntityFields(\n\t\tfield: SugaredRelativeSingleEntity,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields)\n\t\t}\n\n\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1] = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1],\n\t\t\t'eventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields.fields),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createRelativeEntityListFields(\n\t\tfield: SugaredRelativeEntityList,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeEntityList = QueryLanguage.desugarRelativeEntityList(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t\tenvironment,\n\t\t\t\tfields,\n\t\t\t)\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t)\n\t\t}\n\n\t\trelativeEntityList.hasManyRelation = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t'childEventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\tenvironment,\n\t\t\tfields.fields,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createFieldMarker(field: SugaredRelativeSingleField, environment: Environment): EntityFieldMarkersContainer {\n\t\treturn this.wrapRelativeSingleField(\n\t\t\tfield,\n\t\t\tenvironment,\n\t\t\trelativeSingleField => new FieldMarker(relativeSingleField),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeSingleField(\n\t\tfield: SugaredRelativeSingleField,\n\t\tenvironment: Environment,\n\t\tgetMarker: (relativeSingleField: RelativeSingleField) => EntityFieldMarker,\n\t): EntityFieldMarkersContainer {\n\t\tconst relativeSingleField = QueryLanguage.desugarRelativeSingleField(field, environment)\n\n\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\trelativeSingleField.hasOneRelationPath,\n\t\t\tenvironment.getParent(),\n\t\t\tthis.createEntityFieldMarkersContainer(getMarker(relativeSingleField)),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeEntityFieldMarkers(\n\t\thasOneRelationPath: HasOneRelation[],\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tfor (let i = hasOneRelationPath.length - 1; i >= 0; i--) {\n\t\t\tconst marker = this.createHasOneRelationMarker(hasOneRelationPath[i], environment, fields)\n\t\t\tenvironment = environment.getParent()\n\t\t\tfields = this.createEntityFieldMarkersContainer(marker)\n\t\t}\n\n\t\treturn fields\n\t}\n\n\tpublic static createEntityFieldMarkersContainer(marker: EntityFieldMarker | undefined): EntityFieldMarkersContainer {\n\t\tif (marker instanceof FieldMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.fieldName, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker instanceof HasOneRelationMarker || marker instanceof HasManyRelationMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.parameters.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.parameters.field, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker === undefined) {\n\t\t\treturn new EntityFieldMarkersContainer(false, new Map(), new Map())\n\t\t} else {\n\t\t\treturn assertNever(marker)\n\t\t}\n\t}\n\n\tprivate static createHasOneRelationMarker(\n\t\thasOneRelation: HasOneRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): HasOneRelationMarker {\n\t\treturn new HasOneRelationMarker(\n\t\t\t{\n\t\t\t\t...hasOneRelation,\n\t\t\t\tsetOnCreate: hasOneRelation.reducedBy\n\t\t\t\t\t? TreeParameterMerger.mergeSetOnCreate(hasOneRelation.setOnCreate || {}, hasOneRelation.reducedBy)\n\t\t\t\t\t: hasOneRelation.setOnCreate,\n\t\t\t},\n\t\t\tMarkerMerger.mergeInSystemFields(fields),\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tprivate static createHasManyRelationMarker(\n\t\thasManyRelation: HasManyRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t) {\n\t\treturn new HasManyRelationMarker(hasManyRelation, MarkerMerger.mergeInSystemFields(fields), environment)\n\t}\n\n\tprivate static createSubTreeMarker<\n\t\tParams extends Record<'hasOneRelationPath', HasOneRelation[]> & Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Params,\n\t>(\n\t\tqualifiedParams: Params,\n\t\tkey: Key,\n\t\tMarker: new(params: Params, fields: EntityFieldMarkersContainer, env: Environment) =>\n\t\t\t| EntitySubTreeMarker\n\t\t\t| EntityListSubTreeMarker,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tlet entityFields: EntityFieldMarkersContainer | undefined\n\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\t// TODO this is wrong with respect to hasOneRelationPath\n\t\t\tqualifiedParams = TreeParameterMerger.mergeInParentEntity(qualifiedParams, key, fields.parentReference)\n\t\t\tentityFields = fields.fields\n\t\t} else {\n\t\t\tentityFields = fields\n\t\t}\n\n\t\tconst subTree = new Marker(\n\t\t\tqualifiedParams,\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\tqualifiedParams.hasOneRelationPath,\n\t\t\t\tenvironment,\n\t\t\t\tMarkerMerger.mergeInSystemFields(entityFields),\n\t\t\t),\n\t\t\tenvironment,\n\t\t)\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\t\tMarkerMerger.mergeSubTreeMarkers(fields.subTrees, new Map([[subTree.placeholderName, subTree]])),\n\t\t\t\tundefined,\n\t\t\t)\n\t\t}\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\tnew Map([[subTree.placeholderName, subTree]]),\n\t\t\tundefined,\n\t\t)\n\t}\n}\n"],"names":["QueryLanguage","EntitySubTreeMarker","EntityListSubTreeMarker","EntityFieldMarkersContainer","EntityFieldsWithHoistablesMarker","TreeParameterMerger","hasManyRelationMarker","FieldMarker","HasOneRelationMarker","HasManyRelationMarker","assertNever","MarkerMerger"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerFactory.js","sources":["../../../../../packages/binding-common/src/queryLanguage/MarkerFactory.ts"],"sourcesContent":["import type { Environment } from '../environment'\nimport {\n\tEntityFieldMarker,\n\tEntityFieldMarkersContainer,\n\tEntityFieldsWithHoistablesMarker,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n} from '../markers'\nimport { MarkerMerger } from '../markers/MarkerMerger'\nimport type {\n\tEntityEventListenerStore,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSugaredParentEntityParameters,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger'\nimport { assertNever } from '../utils/assertNever'\nimport { QueryLanguage } from './QueryLanguage'\n\nexport class MarkerFactory {\n\tpublic static createEntitySubTreeMarker(\n\t\tentity: SugaredQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst qualifiedSingleEntity: QualifiedSingleEntity = QueryLanguage.desugarQualifiedSingleEntity(entity, environment)\n\n\t\treturn this.createSubTreeMarker(qualifiedSingleEntity, 'eventListeners', EntitySubTreeMarker, fields, environment)\n\t}\n\n\tpublic static createUnconstrainedEntitySubTreeMarker(\n\t\tentity: SugaredUnconstrainedQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedSingleEntity(entity, environment),\n\t\t\t'eventListeners',\n\t\t\tEntitySubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createEntityListSubTreeMarker(\n\t\tentityList: SugaredQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createUnconstrainedEntityListSubTreeMarker(\n\t\tentityList: SugaredUnconstrainedQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createParentEntityMarker(\n\t\tparentEntity: SugaredParentEntityParameters,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst desugared = QueryLanguage.desugarParentEntityParameters(parentEntity, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, desugared)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tfields.fields,\n\t\t\tfields.subTrees,\n\t\t\tTreeParameterMerger.mergeParentEntityParameters(fields.parentReference, desugared),\n\t\t)\n\t}\n\n\tpublic static createEntityFieldsWithHoistablesMarker(\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, undefined)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(fields.fields, fields.subTrees, undefined)\n\t}\n\n\tpublic static createRelativeSingleEntityFields(\n\t\tfield: SugaredRelativeSingleEntity,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields)\n\t\t}\n\n\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1] = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1],\n\t\t\t'eventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields.fields),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createRelativeEntityListFields(\n\t\tfield: SugaredRelativeEntityList,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeEntityList = QueryLanguage.desugarRelativeEntityList(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t\tenvironment,\n\t\t\t\tfields,\n\t\t\t)\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t)\n\t\t}\n\n\t\trelativeEntityList.hasManyRelation = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t'childEventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\tenvironment,\n\t\t\tfields.fields,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createFieldMarker(field: SugaredRelativeSingleField, environment: Environment): EntityFieldMarkersContainer {\n\t\treturn this.wrapRelativeSingleField(\n\t\t\tfield,\n\t\t\tenvironment,\n\t\t\trelativeSingleField => new FieldMarker(relativeSingleField),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeSingleField(\n\t\tfield: SugaredRelativeSingleField,\n\t\tenvironment: Environment,\n\t\tgetMarker: (relativeSingleField: RelativeSingleField) => EntityFieldMarker,\n\t): EntityFieldMarkersContainer {\n\t\tconst relativeSingleField = QueryLanguage.desugarRelativeSingleField(field, environment)\n\n\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\trelativeSingleField.hasOneRelationPath,\n\t\t\tenvironment.getParent(),\n\t\t\tthis.createEntityFieldMarkersContainer(getMarker(relativeSingleField)),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeEntityFieldMarkers(\n\t\thasOneRelationPath: HasOneRelation[],\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tfor (let i = hasOneRelationPath.length - 1; i >= 0; i--) {\n\t\t\tconst marker = this.createHasOneRelationMarker(hasOneRelationPath[i], environment, fields)\n\t\t\tenvironment = environment.getParent()\n\t\t\tfields = this.createEntityFieldMarkersContainer(marker)\n\t\t}\n\n\t\treturn fields\n\t}\n\n\tpublic static createEntityFieldMarkersContainer(marker: EntityFieldMarker | undefined): EntityFieldMarkersContainer {\n\t\tif (marker instanceof FieldMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.fieldName, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker instanceof HasOneRelationMarker || marker instanceof HasManyRelationMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.parameters.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.parameters.field, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker === undefined) {\n\t\t\treturn new EntityFieldMarkersContainer(false, new Map(), new Map())\n\t\t} else {\n\t\t\treturn assertNever(marker)\n\t\t}\n\t}\n\n\tprivate static createHasOneRelationMarker(\n\t\thasOneRelation: HasOneRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): HasOneRelationMarker {\n\t\treturn new HasOneRelationMarker(\n\t\t\t{\n\t\t\t\t...hasOneRelation,\n\t\t\t\tsetOnCreate: hasOneRelation.reducedBy\n\t\t\t\t\t? TreeParameterMerger.mergeSetOnCreate(hasOneRelation.setOnCreate || {}, hasOneRelation.reducedBy)\n\t\t\t\t\t: hasOneRelation.setOnCreate,\n\t\t\t},\n\t\t\tMarkerMerger.mergeInSystemFields(fields),\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tprivate static createHasManyRelationMarker(\n\t\thasManyRelation: HasManyRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t) {\n\t\treturn new HasManyRelationMarker(hasManyRelation, MarkerMerger.mergeInSystemFields(fields), environment)\n\t}\n\n\tprivate static createSubTreeMarker<\n\t\tParams extends Record<'hasOneRelationPath', HasOneRelation[]> & Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Params,\n\t>(\n\t\tqualifiedParams: Params,\n\t\tkey: Key,\n\t\tMarker: new(params: Params, fields: EntityFieldMarkersContainer, env: Environment) =>\n\t\t\t| EntitySubTreeMarker\n\t\t\t| EntityListSubTreeMarker,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tlet entityFields: EntityFieldMarkersContainer | undefined\n\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\t// TODO this is wrong with respect to hasOneRelationPath\n\t\t\tqualifiedParams = TreeParameterMerger.mergeInParentEntity(qualifiedParams, key, fields.parentReference)\n\t\t\tentityFields = fields.fields\n\t\t} else {\n\t\t\tentityFields = fields\n\t\t}\n\n\t\tconst subTree = new Marker(\n\t\t\tqualifiedParams,\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\tqualifiedParams.hasOneRelationPath,\n\t\t\t\tenvironment,\n\t\t\t\tMarkerMerger.mergeInSystemFields(entityFields),\n\t\t\t),\n\t\t\tenvironment,\n\t\t)\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\t\tMarkerMerger.mergeSubTreeMarkers(fields.subTrees, new Map([[subTree.placeholderName, subTree]])),\n\t\t\t\tundefined,\n\t\t\t)\n\t\t}\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\tnew Map([[subTree.placeholderName, subTree]]),\n\t\t\tundefined,\n\t\t)\n\t}\n}\n"],"names":["hasManyRelationMarker"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkerFactory.js","sources":["../../../../../packages/binding-common/src/queryLanguage/MarkerFactory.ts"],"sourcesContent":["import type { Environment } from '../environment/index.js'\nimport {\n\tEntityFieldMarker,\n\tEntityFieldMarkersContainer,\n\tEntityFieldsWithHoistablesMarker,\n\tEntityListSubTreeMarker,\n\tEntitySubTreeMarker,\n\tFieldMarker,\n\tHasManyRelationMarker,\n\tHasOneRelationMarker,\n} from '../markers/index.js'\nimport { MarkerMerger } from '../markers/MarkerMerger.js'\nimport type {\n\tEntityEventListenerStore,\n\tHasManyRelation,\n\tHasOneRelation,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSugaredParentEntityParameters,\n\tSugaredQualifiedEntityList,\n\tSugaredQualifiedSingleEntity,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tSugaredUnconstrainedQualifiedEntityList,\n\tSugaredUnconstrainedQualifiedSingleEntity,\n} from '../treeParameters/index.js'\nimport { TreeParameterMerger } from '../treeParameters/TreeParameterMerger.js'\nimport { assertNever } from '../utils/assertNever.js'\nimport { QueryLanguage } from './QueryLanguage.js'\n\nexport class MarkerFactory {\n\tpublic static createEntitySubTreeMarker(\n\t\tentity: SugaredQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst qualifiedSingleEntity: QualifiedSingleEntity = QueryLanguage.desugarQualifiedSingleEntity(entity, environment)\n\n\t\treturn this.createSubTreeMarker(qualifiedSingleEntity, 'eventListeners', EntitySubTreeMarker, fields, environment)\n\t}\n\n\tpublic static createUnconstrainedEntitySubTreeMarker(\n\t\tentity: SugaredUnconstrainedQualifiedSingleEntity,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedSingleEntity(entity, environment),\n\t\t\t'eventListeners',\n\t\t\tEntitySubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createEntityListSubTreeMarker(\n\t\tentityList: SugaredQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createUnconstrainedEntityListSubTreeMarker(\n\t\tentityList: SugaredUnconstrainedQualifiedEntityList,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\treturn this.createSubTreeMarker(\n\t\t\tQueryLanguage.desugarUnconstrainedQualifiedEntityList(entityList, environment),\n\t\t\t'childEventListeners',\n\t\t\tEntityListSubTreeMarker,\n\t\t\tfields,\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tpublic static createParentEntityMarker(\n\t\tparentEntity: SugaredParentEntityParameters,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tconst desugared = QueryLanguage.desugarParentEntityParameters(parentEntity, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, desugared)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tfields.fields,\n\t\t\tfields.subTrees,\n\t\t\tTreeParameterMerger.mergeParentEntityParameters(fields.parentReference, desugared),\n\t\t)\n\t}\n\n\tpublic static createEntityFieldsWithHoistablesMarker(\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(fields, undefined, undefined)\n\t\t}\n\n\t\treturn new EntityFieldsWithHoistablesMarker(fields.fields, fields.subTrees, undefined)\n\t}\n\n\tpublic static createRelativeSingleEntityFields(\n\t\tfield: SugaredRelativeSingleEntity,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields)\n\t\t}\n\n\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1] = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1],\n\t\t\t'eventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields.fields),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createRelativeEntityListFields(\n\t\tfield: SugaredRelativeEntityList,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,\n\t): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {\n\t\tconst relativeEntityList = QueryLanguage.desugarRelativeEntityList(field, environment)\n\n\t\tif (fields instanceof EntityFieldMarkersContainer) {\n\t\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t\tenvironment,\n\t\t\t\tfields,\n\t\t\t)\n\t\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t)\n\t\t}\n\n\t\trelativeEntityList.hasManyRelation = TreeParameterMerger.mergeInParentEntity(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\t'childEventListeners',\n\t\t\tfields.parentReference,\n\t\t)\n\n\t\tconst hasManyRelationMarker = this.createHasManyRelationMarker(\n\t\t\trelativeEntityList.hasManyRelation,\n\t\t\tenvironment,\n\t\t\tfields.fields,\n\t\t)\n\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\trelativeEntityList.hasOneRelationPath,\n\t\t\t\tenvironment.getParent(),\n\t\t\t\tthis.createEntityFieldMarkersContainer(hasManyRelationMarker),\n\t\t\t),\n\t\t\tfields.subTrees,\n\t\t\tundefined,\n\t\t)\n\t}\n\n\tpublic static createFieldMarker(field: SugaredRelativeSingleField, environment: Environment): EntityFieldMarkersContainer {\n\t\treturn this.wrapRelativeSingleField(\n\t\t\tfield,\n\t\t\tenvironment,\n\t\t\trelativeSingleField => new FieldMarker(relativeSingleField),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeSingleField(\n\t\tfield: SugaredRelativeSingleField,\n\t\tenvironment: Environment,\n\t\tgetMarker: (relativeSingleField: RelativeSingleField) => EntityFieldMarker,\n\t): EntityFieldMarkersContainer {\n\t\tconst relativeSingleField = QueryLanguage.desugarRelativeSingleField(field, environment)\n\n\t\treturn this.wrapRelativeEntityFieldMarkers(\n\t\t\trelativeSingleField.hasOneRelationPath,\n\t\t\tenvironment.getParent(),\n\t\t\tthis.createEntityFieldMarkersContainer(getMarker(relativeSingleField)),\n\t\t)\n\t}\n\n\tprivate static wrapRelativeEntityFieldMarkers(\n\t\thasOneRelationPath: HasOneRelation[],\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): EntityFieldMarkersContainer {\n\t\tfor (let i = hasOneRelationPath.length - 1; i >= 0; i--) {\n\t\t\tconst marker = this.createHasOneRelationMarker(hasOneRelationPath[i], environment, fields)\n\t\t\tenvironment = environment.getParent()\n\t\t\tfields = this.createEntityFieldMarkersContainer(marker)\n\t\t}\n\n\t\treturn fields\n\t}\n\n\tpublic static createEntityFieldMarkersContainer(marker: EntityFieldMarker | undefined): EntityFieldMarkersContainer {\n\t\tif (marker instanceof FieldMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.fieldName, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker instanceof HasOneRelationMarker || marker instanceof HasManyRelationMarker) {\n\t\t\treturn new EntityFieldMarkersContainer(\n\t\t\t\t!marker.parameters.isNonbearing,\n\t\t\t\tnew Map([[marker.placeholderName, marker]]),\n\t\t\t\tnew Map([[marker.parameters.field, marker.placeholderName]]),\n\t\t\t)\n\t\t} else if (marker === undefined) {\n\t\t\treturn new EntityFieldMarkersContainer(false, new Map(), new Map())\n\t\t} else {\n\t\t\treturn assertNever(marker)\n\t\t}\n\t}\n\n\tprivate static createHasOneRelationMarker(\n\t\thasOneRelation: HasOneRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t): HasOneRelationMarker {\n\t\treturn new HasOneRelationMarker(\n\t\t\t{\n\t\t\t\t...hasOneRelation,\n\t\t\t\tsetOnCreate: hasOneRelation.reducedBy\n\t\t\t\t\t? TreeParameterMerger.mergeSetOnCreate(hasOneRelation.setOnCreate || {}, hasOneRelation.reducedBy)\n\t\t\t\t\t: hasOneRelation.setOnCreate,\n\t\t\t},\n\t\t\tMarkerMerger.mergeInSystemFields(fields),\n\t\t\tenvironment,\n\t\t)\n\t}\n\n\tprivate static createHasManyRelationMarker(\n\t\thasManyRelation: HasManyRelation,\n\t\tenvironment: Environment,\n\t\tfields: EntityFieldMarkersContainer,\n\t) {\n\t\treturn new HasManyRelationMarker(hasManyRelation, MarkerMerger.mergeInSystemFields(fields), environment)\n\t}\n\n\tprivate static createSubTreeMarker<\n\t\tParams extends Record<'hasOneRelationPath', HasOneRelation[]> & Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Params,\n\t>(\n\t\tqualifiedParams: Params,\n\t\tkey: Key,\n\t\tMarker: new(params: Params, fields: EntityFieldMarkersContainer, env: Environment) =>\n\t\t\t| EntitySubTreeMarker\n\t\t\t| EntityListSubTreeMarker,\n\t\tfields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,\n\t\tenvironment: Environment,\n\t): EntityFieldsWithHoistablesMarker {\n\t\tlet entityFields: EntityFieldMarkersContainer | undefined\n\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\t// TODO this is wrong with respect to hasOneRelationPath\n\t\t\tqualifiedParams = TreeParameterMerger.mergeInParentEntity(qualifiedParams, key, fields.parentReference)\n\t\t\tentityFields = fields.fields\n\t\t} else {\n\t\t\tentityFields = fields\n\t\t}\n\n\t\tconst subTree = new Marker(\n\t\t\tqualifiedParams,\n\t\t\tthis.wrapRelativeEntityFieldMarkers(\n\t\t\t\tqualifiedParams.hasOneRelationPath,\n\t\t\t\tenvironment,\n\t\t\t\tMarkerMerger.mergeInSystemFields(entityFields),\n\t\t\t),\n\t\t\tenvironment,\n\t\t)\n\t\tif (fields instanceof EntityFieldsWithHoistablesMarker) {\n\t\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\t\tMarkerMerger.mergeSubTreeMarkers(fields.subTrees, new Map([[subTree.placeholderName, subTree]])),\n\t\t\t\tundefined,\n\t\t\t)\n\t\t}\n\t\treturn new EntityFieldsWithHoistablesMarker(\n\t\t\tthis.createEntityFieldMarkersContainer(undefined),\n\t\t\tnew Map([[subTree.placeholderName, subTree]]),\n\t\t\tundefined,\n\t\t)\n\t}\n}\n"],"names":["hasManyRelationMarker"],"mappings":"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"}
|