Name                                                    Stmts   Miss  Cover
---------------------------------------------------------------------------
src/fraiseql/__init__.py                                   66     26    61%
src/fraiseql/analysis/__init__.py                           2      0   100%
src/fraiseql/analysis/complexity_config.py                 68     23    66%
src/fraiseql/analysis/query_analyzer.py                   179    122    32%
src/fraiseql/analysis/query_complexity.py                  83     50    40%
src/fraiseql/audit/__init__.py                              2      0   100%
src/fraiseql/audit/security_logger.py                     102     37    64%
src/fraiseql/auth/__init__.py                               6      0   100%
src/fraiseql/auth/auth0.py                                 96     77    20%
src/fraiseql/auth/auth0_with_revocation.py                 10      4    60%
src/fraiseql/auth/base.py                                  38     10    74%
src/fraiseql/auth/decorators.py                           112      4    96%
src/fraiseql/auth/native/__init__.py                        5      5     0%
src/fraiseql/auth/native/factory.py                        37     37     0%
src/fraiseql/auth/native/middleware.py                    145    145     0%
src/fraiseql/auth/native/models.py                         85     85     0%
src/fraiseql/auth/native/provider.py                       71     71     0%
src/fraiseql/auth/native/router.py                        222    222     0%
src/fraiseql/auth/native/tokens.py                         64     64     0%
src/fraiseql/auth/token_revocation.py                     197    141    28%
src/fraiseql/cache/__init__.py                              2      0   100%
src/fraiseql/cache/view_metadata.py                        91     61    33%
src/fraiseql/caching/__init__.py                            6      6     0%
src/fraiseql/caching/cache_key.py                          71     71     0%
src/fraiseql/caching/postgres_cache.py                    228    228     0%
src/fraiseql/caching/repository_integration.py             52     52     0%
src/fraiseql/caching/result_cache.py                      110    110     0%
src/fraiseql/caching/schema_analyzer.py                   101    101     0%
src/fraiseql/cli/__init__.py                                2      2     0%
src/fraiseql/cli/commands/__init__.py                      10     10     0%
src/fraiseql/cli/commands/check.py                         57     57     0%
src/fraiseql/cli/commands/dev.py                           36     36     0%
src/fraiseql/cli/commands/doctor.py                       225    225     0%
src/fraiseql/cli/commands/generate.py                      56     56     0%
src/fraiseql/cli/commands/init.py                          75     75     0%
src/fraiseql/cli/commands/migrate.py                      216    216     0%
src/fraiseql/cli/commands/sbom.py                         147    147     0%
src/fraiseql/cli/commands/sql.py                          132    132     0%
src/fraiseql/cli/commands/turbo.py                         69     69     0%
src/fraiseql/cli/main.py                                   24     24     0%
src/fraiseql/cli/sql_helper.py                            259    259     0%
src/fraiseql/config/__init__.py                             2      0   100%
src/fraiseql/config/schema_config.py                       22      0   100%
src/fraiseql/core/__init__.py                               0      0   100%
src/fraiseql/core/ast_parser.py                            37      7    81%
src/fraiseql/core/exceptions.py                            10      0   100%
src/fraiseql/core/fragment_resolver.py                     35      2    94%
src/fraiseql/core/graphql_type.py                         373    105    72%
src/fraiseql/core/nested_field_resolver.py                229    204    11%
src/fraiseql/core/registry.py                              43     11    74%
src/fraiseql/core/rust_pipeline.py                         83     56    33%
src/fraiseql/core/rust_transformer.py                      55     25    55%
src/fraiseql/core/schema_serializer.py                     42      5    88%
src/fraiseql/core/selection_tree.py                        58     17    71%
src/fraiseql/core/translate_query.py                       16      0   100%
src/fraiseql/core/types.py                                 16      0   100%
src/fraiseql/cqrs/__init__.py                               4      0   100%
src/fraiseql/cqrs/executor.py                              22     14    36%
src/fraiseql/cqrs/pagination.py                           114     99    13%
src/fraiseql/cqrs/repository.py                           229    194    15%
src/fraiseql/db.py                                        984    510    48%
src/fraiseql/debug/__init__.py                              2      2     0%
src/fraiseql/debug/debug.py                               174    174     0%
src/fraiseql/decorators.py                                211    122    42%
src/fraiseql/enterprise/__init__.py                         0      0   100%
src/fraiseql/enterprise/audit/__init__.py                   0      0   100%
src/fraiseql/enterprise/audit/event_logger.py              42     42     0%
src/fraiseql/enterprise/audit/mutations.py                 45     45     0%
src/fraiseql/enterprise/audit/queries.py                   11     11     0%
src/fraiseql/enterprise/audit/types.py                     33     33     0%
src/fraiseql/enterprise/crypto/__init__.py                  0      0   100%
src/fraiseql/enterprise/crypto/hashing.py                   7      7     0%
src/fraiseql/enterprise/crypto/signing.py                  33     33     0%
src/fraiseql/enterprise/rbac/__init__.py                   20     20     0%
src/fraiseql/enterprise/rbac/cache.py                      61     61     0%
src/fraiseql/enterprise/rbac/directives.py                 82     82     0%
src/fraiseql/enterprise/rbac/hierarchy.py                  36     36     0%
src/fraiseql/enterprise/rbac/middleware.py                 84     84     0%
src/fraiseql/enterprise/rbac/models.py                     53     53     0%
src/fraiseql/enterprise/rbac/mutations.py                 294    294     0%
src/fraiseql/enterprise/rbac/resolver.py                   59     59     0%
src/fraiseql/enterprise/rbac/types.py                     114    114     0%
src/fraiseql/errors/__init__.py                             3      0   100%
src/fraiseql/errors/exceptions.py                         131     68    48%
src/fraiseql/errors/user_friendly.py                       47     33    30%
src/fraiseql/execution/__init__.py                          3      0   100%
src/fraiseql/execution/mode_selector.py                    70     43    39%
src/fraiseql/execution/unified_executor.py                 72     17    76%
src/fraiseql/extensions/__init__.py                         0      0   100%
src/fraiseql/fastapi/__init__.py                            5      0   100%
src/fraiseql/fastapi/app.py                               208    111    47%
src/fraiseql/fastapi/apq_metrics_router.py                 81     81     0%
src/fraiseql/fastapi/config.py                            160     28    82%
src/fraiseql/fastapi/dependencies.py                       79     24    70%
src/fraiseql/fastapi/dev_auth.py                           69     69     0%
src/fraiseql/fastapi/json_encoder.py                       68     23    66%
src/fraiseql/fastapi/response_handlers.py                   8      8     0%
src/fraiseql/fastapi/routers.py                           243    138    43%
src/fraiseql/fastapi/turbo.py                             165    133    19%
src/fraiseql/fastapi/turbo_enhanced.py                    123    123     0%
src/fraiseql/fields.py                                     51      4    92%
src/fraiseql/gql/__init__.py                                2      0   100%
src/fraiseql/gql/builders/__init__.py                       6      0   100%
src/fraiseql/gql/builders/mutation_builder.py              74      5    93%
src/fraiseql/gql/builders/query_builder.py                138     15    89%
src/fraiseql/gql/builders/registry.py                     105      9    91%
src/fraiseql/gql/builders/schema_composer.py               36      1    97%
src/fraiseql/gql/builders/subscription_builder.py          50     36    28%
src/fraiseql/gql/complexity.py                            116    116     0%
src/fraiseql/gql/enum_serializer.py                        32      7    78%
src/fraiseql/gql/graphql_entrypoint.py                     55     40    27%
src/fraiseql/gql/resolver_wrappers.py                      55     55     0%
src/fraiseql/gql/schema_builder.py                         59     14    76%
src/fraiseql/graphql/__init__.py                            2      0   100%
src/fraiseql/graphql/execute.py                           164     75    54%
src/fraiseql/graphql/field_type_extraction.py              86     27    69%
src/fraiseql/integrations/__init__.py                       1      1     0%
src/fraiseql/integrations/langchain.py                    132    132     0%
src/fraiseql/integrations/llamaindex.py                   208    208     0%
src/fraiseql/introspection/__init__.py                      9      0   100%
src/fraiseql/introspection/auto_discovery.py               81     33    59%
src/fraiseql/introspection/input_generator.py              81      9    89%
src/fraiseql/introspection/metadata_parser.py             112     13    88%
src/fraiseql/introspection/mutation_generator.py           49      1    98%
src/fraiseql/introspection/postgres_introspector.py       113      5    96%
src/fraiseql/introspection/query_generator.py              48     12    75%
src/fraiseql/introspection/type_generator.py               81     37    54%
src/fraiseql/introspection/type_mapper.py                  19      0   100%
src/fraiseql/ivm/__init__.py                                2      2     0%
src/fraiseql/ivm/analyzer.py                              210    210     0%
src/fraiseql/middleware/__init__.py                         4      0   100%
src/fraiseql/middleware/apq.py                             53     36    32%
src/fraiseql/middleware/apq_caching.py                     68     68     0%
src/fraiseql/middleware/body_size_limiter.py               80     15    81%
src/fraiseql/middleware/rate_limiter.py                   241    181    25%
src/fraiseql/migration/__init__.py                          2      2     0%
src/fraiseql/migration/strawberry_migration.py             81     81     0%
src/fraiseql/monitoring/__init__.py                         7      0   100%
src/fraiseql/monitoring/apq_metrics.py                    172    114    34%
src/fraiseql/monitoring/health.py                          63     42    33%
src/fraiseql/monitoring/health_checks.py                   40     35    12%
src/fraiseql/monitoring/metrics.py                          2      2     0%
src/fraiseql/monitoring/metrics/__init__.py                 4      0   100%
src/fraiseql/monitoring/metrics/collectors.py              69     56    19%
src/fraiseql/monitoring/metrics/config.py                  95     54    43%
src/fraiseql/monitoring/metrics/integration.py             85     70    18%
src/fraiseql/monitoring/notifications.py                  171    133    22%
src/fraiseql/monitoring/postgres_error_tracker.py         131    107    18%
src/fraiseql/mutations/__init__.py                          6      0   100%
src/fraiseql/mutations/cascade_selections.py               61     61     0%
src/fraiseql/mutations/cascade_types.py                    32     32     0%
src/fraiseql/mutations/decorators.py                      109     13    88%
src/fraiseql/mutations/decorators_v2.py                    61     61     0%
src/fraiseql/mutations/error_config.py                     33     18    45%
src/fraiseql/mutations/executor.py                         61     61     0%
src/fraiseql/mutations/mutation_decorator.py              166     27    84%
src/fraiseql/mutations/parser.py                          349    127    64%
src/fraiseql/mutations/registry.py                          5      1    80%
src/fraiseql/mutations/registry_v2.py                      53     53     0%
src/fraiseql/mutations/result_processor.py                 62     62     0%
src/fraiseql/mutations/rust_executor.py                    47     31    34%
src/fraiseql/mutations/selection_filter.py                 24     24     0%
src/fraiseql/mutations/sql_generator.py                    59     15    75%
src/fraiseql/mutations/types.py                            58     15    74%
src/fraiseql/nested_array_filters.py                       65     65     0%
src/fraiseql/optimization/__init__.py                       5      0   100%
src/fraiseql/optimization/dataloader.py                    85     64    25%
src/fraiseql/optimization/decorators.py                    88     78    11%
src/fraiseql/optimization/loaders.py                       51     35    31%
src/fraiseql/optimization/n_plus_one_detector.py          143     90    37%
src/fraiseql/optimization/registry.py                      45     23    49%
src/fraiseql/partial_instantiation.py                      77     28    64%
src/fraiseql/patterns/__init__.py                           2      2     0%
src/fraiseql/patterns/trinity.py                           29     29     0%
src/fraiseql/repositories/__init__.py                       1      1     0%
src/fraiseql/routing/__init__.py                            4      4     0%
src/fraiseql/routing/config.py                             29     29     0%
src/fraiseql/routing/entity_extractor.py                  132    132     0%
src/fraiseql/routing/query_router.py                       50     50     0%
src/fraiseql/sbom/__init__.py                               3      0   100%
src/fraiseql/sbom/application/__init__.py                   0      0   100%
src/fraiseql/sbom/application/sbom_generator.py            54     42    22%
src/fraiseql/sbom/domain/__init__.py                        0      0   100%
src/fraiseql/sbom/domain/models.py                        160     20    88%
src/fraiseql/sbom/domain/repositories.py                   14      0   100%
src/fraiseql/sbom/infrastructure/__init__.py                0      0   100%
src/fraiseql/sbom/infrastructure/cyclonedx_adapter.py      58      7    88%
src/fraiseql/sbom/infrastructure/package_scanner.py       130    130     0%
src/fraiseql/security/__init__.py                          90     69    23%
src/fraiseql/security/csrf_protection.py                  241    177    27%
src/fraiseql/security/field_auth.py                       121    107    12%
src/fraiseql/security/kms/__init__.py                      27      9    67%
src/fraiseql/security/kms/application/__init__.py           2      0   100%
src/fraiseql/security/kms/application/key_manager.py       71     19    73%
src/fraiseql/security/kms/domain/__init__.py                4      0   100%
src/fraiseql/security/kms/domain/base.py                   68     16    76%
src/fraiseql/security/kms/domain/exceptions.py              6      0   100%
src/fraiseql/security/kms/domain/models.py                 43      0   100%
src/fraiseql/security/kms/infrastructure/__init__.py       13      4    69%
src/fraiseql/security/kms/infrastructure/aws_kms.py       109     55    50%
src/fraiseql/security/kms/infrastructure/gcp_kms.py        94     39    59%
src/fraiseql/security/kms/infrastructure/local.py          37      2    95%
src/fraiseql/security/kms/infrastructure/vault.py          85     33    61%
src/fraiseql/security/profiles/__init__.py                  3      0   100%
src/fraiseql/security/profiles/definitions.py              50      0   100%
src/fraiseql/security/profiles/enforcer.py                 66      1    98%
src/fraiseql/security/rate_limiting.py                    236    175    26%
src/fraiseql/security/security_headers.py                 240    156    35%
src/fraiseql/security/validators.py                       123     97    21%
src/fraiseql/sql/__init__.py                               50     46     8%
src/fraiseql/sql/graphql_order_by_generator.py            184    121    34%
src/fraiseql/sql/graphql_where_generator.py               368     95    74%
src/fraiseql/sql/network_utils.py                         114    114     0%
src/fraiseql/sql/operator_strategies.py                   833    400    52%
src/fraiseql/sql/order_by_generator.py                     83     40    52%
src/fraiseql/sql/sql_generator.py                         166     56    66%
src/fraiseql/sql/where/__init__.py                          4      0   100%
src/fraiseql/sql/where/core/__init__.py                     3      0   100%
src/fraiseql/sql/where/core/field_detection.py            262    100    62%
src/fraiseql/sql/where/core/sql_builder.py                 69     13    81%
src/fraiseql/sql/where/operators/__init__.py               15      2    87%
src/fraiseql/sql/where/operators/arrays.py                 47     33    30%
src/fraiseql/sql/where/operators/base_builders.py          35      0   100%
src/fraiseql/sql/where/operators/basic.py                  40     23    42%
src/fraiseql/sql/where/operators/coordinate.py             46      7    85%
src/fraiseql/sql/where/operators/date.py                   18      0   100%
src/fraiseql/sql/where/operators/date_range.py             39      0   100%
src/fraiseql/sql/where/operators/datetime.py               18      0   100%
src/fraiseql/sql/where/operators/email.py                  10      0   100%
src/fraiseql/sql/where/operators/fulltext.py               76     36    53%
src/fraiseql/sql/where/operators/hostname.py               10      0   100%
src/fraiseql/sql/where/operators/jsonb.py                  58     20    66%
src/fraiseql/sql/where/operators/lists.py                  39     35    10%
src/fraiseql/sql/where/operators/logical.py                23      0   100%
src/fraiseql/sql/where/operators/ltree.py                  30      6    80%
src/fraiseql/sql/where/operators/mac_address.py            10      0   100%
src/fraiseql/sql/where/operators/network.py                20      0   100%
src/fraiseql/sql/where/operators/nulls.py                   5      3    40%
src/fraiseql/sql/where/operators/port.py                   18      0   100%
src/fraiseql/sql/where/operators/text.py                   16      9    44%
src/fraiseql/sql/where/operators/vectors.py                75     44    41%
src/fraiseql/sql/where_generator.py                       211     93    56%
src/fraiseql/storage/__init__.py                            0      0   100%
src/fraiseql/storage/apq_store.py                          32     20    38%
src/fraiseql/storage/backends/__init__.py                   5      0   100%
src/fraiseql/storage/backends/base.py                      32     19    41%
src/fraiseql/storage/backends/factory.py                   44     34    23%
src/fraiseql/storage/backends/memory.py                    50     35    30%
src/fraiseql/storage/backends/postgresql.py                87     70    20%
src/fraiseql/storage/query_loader.py                       46     46     0%
src/fraiseql/strawberry_compat.py                          72     72     0%
src/fraiseql/subscriptions/__init__.py                      8      0   100%
src/fraiseql/subscriptions/caching.py                      82     57    30%
src/fraiseql/subscriptions/complexity.py                   72     55    24%
src/fraiseql/subscriptions/decorator.py                    21     15    29%
src/fraiseql/subscriptions/filtering.py                    50     38    24%
src/fraiseql/subscriptions/lifecycle.py                    60     45    25%
src/fraiseql/subscriptions/websocket.py                   270    202    25%
src/fraiseql/tracing/__init__.py                            4      0   100%
src/fraiseql/tracing/graphql_tracing.py                   153     90    41%
src/fraiseql/tracing/opentelemetry.py                     294    216    27%
src/fraiseql/turbo/__init__.py                              3      3     0%
src/fraiseql/turbo/enhanced_turbo_router.py               135    135     0%
src/fraiseql/turbo/registration.py                         60     60     0%
src/fraiseql/turbo/sql_compiler.py                        202    202     0%
src/fraiseql/types/__init__.py                             62      0   100%
src/fraiseql/types/coercion.py                             98     15    85%
src/fraiseql/types/common.py                                7      0   100%
src/fraiseql/types/common_inputs.py                         6      0   100%
src/fraiseql/types/common_outputs.py                       13      0   100%
src/fraiseql/types/constructor.py                         115      9    92%
src/fraiseql/types/date_range_validation.py                35      0   100%
src/fraiseql/types/definitions.py                          42      2    95%
src/fraiseql/types/enum.py                                 19      2    89%
src/fraiseql/types/errors.py                               12      0   100%
src/fraiseql/types/fraise_input.py                         14      0   100%
src/fraiseql/types/fraise_type.py                          35      1    97%
src/fraiseql/types/generic.py                              96     17    82%
src/fraiseql/types/interface.py                            14      0   100%
src/fraiseql/types/lazy_properties.py                      31      6    81%
src/fraiseql/types/protocols.py                            12      0   100%
src/fraiseql/types/scalars/__init__.py                     54      0   100%
src/fraiseql/types/scalars/airport_code.py                 32     19    41%
src/fraiseql/types/scalars/api_key.py                      30      0   100%
src/fraiseql/types/scalars/cidr.py                         38      1    97%
src/fraiseql/types/scalars/color.py                        30     17    43%
src/fraiseql/types/scalars/container_number.py             60      5    92%
src/fraiseql/types/scalars/coordinates.py                  57      6    89%
src/fraiseql/types/scalars/currency_code.py                32      0   100%
src/fraiseql/types/scalars/cusip.py                        32      0   100%
src/fraiseql/types/scalars/date.py                         39      1    97%
src/fraiseql/types/scalars/daterange.py                    54     20    63%
src/fraiseql/types/scalars/datetime.py                     54      7    87%
src/fraiseql/types/scalars/domain_name.py                  32      0   100%
src/fraiseql/types/scalars/duration.py                     30     17    43%
src/fraiseql/types/scalars/email_address.py                25      1    96%
src/fraiseql/types/scalars/exchange_code.py                32      0   100%
src/fraiseql/types/scalars/exchange_rate.py                47      9    81%
src/fraiseql/types/scalars/file.py                         30      0   100%
src/fraiseql/types/scalars/flight_number.py                32      0   100%
src/fraiseql/types/scalars/graphql_utils.py                22      0   100%
src/fraiseql/types/scalars/hash_sha256.py                  30      0   100%
src/fraiseql/types/scalars/hostname.py                     32      0   100%
src/fraiseql/types/scalars/html.py                         21     10    52%
src/fraiseql/types/scalars/iban.py                         63      3    95%
src/fraiseql/types/scalars/id_scalar.py                    41      0   100%
src/fraiseql/types/scalars/image.py                        34      0   100%
src/fraiseql/types/scalars/ip_address.py                   86      4    95%
src/fraiseql/types/scalars/isin.py                         53      2    96%
src/fraiseql/types/scalars/json.py                         47      3    94%
src/fraiseql/types/scalars/language_code.py                32      0   100%
src/fraiseql/types/scalars/latitude.py                     30     17    43%
src/fraiseql/types/scalars/lei.py                          32      0   100%
src/fraiseql/types/scalars/license_plate.py                30      0   100%
src/fraiseql/types/scalars/locale_code.py                  30      0   100%
src/fraiseql/types/scalars/longitude.py                    30     17    43%
src/fraiseql/types/scalars/ltree.py                        25      1    96%
src/fraiseql/types/scalars/mac_address.py                  45      6    87%
src/fraiseql/types/scalars/markdown.py                     21     10    52%
src/fraiseql/types/scalars/mic.py                          32      0   100%
src/fraiseql/types/scalars/mime_type.py                    30     17    43%
src/fraiseql/types/scalars/money.py                        47      2    96%
src/fraiseql/types/scalars/percentage.py                   47      7    85%
src/fraiseql/types/scalars/phone_number.py                 30      0   100%
src/fraiseql/types/scalars/port.py                         33      2    94%
src/fraiseql/types/scalars/port_code.py                    32      0   100%
src/fraiseql/types/scalars/postal_code.py                  32      0   100%
src/fraiseql/types/scalars/sedol.py                        32      0   100%
src/fraiseql/types/scalars/semantic_version.py             30      0   100%
src/fraiseql/types/scalars/slug.py                         30     17    43%
src/fraiseql/types/scalars/stock_symbol.py                 32      0   100%
src/fraiseql/types/scalars/time.py                         30     17    43%
src/fraiseql/types/scalars/timezone.py                     30      0   100%
src/fraiseql/types/scalars/tracking_number.py              30      0   100%
src/fraiseql/types/scalars/url.py                          55      5    91%
src/fraiseql/types/scalars/uuid.py                         36      1    97%
src/fraiseql/types/scalars/vector.py                      109     74    32%
src/fraiseql/types/scalars/vin.py                          63      5    92%
src/fraiseql/utils/__init__.py                              2      0   100%
src/fraiseql/utils/annotations.py                          24      2    92%
src/fraiseql/utils/casing.py                               15      0   100%
src/fraiseql/utils/db_url.py                               49      0   100%
src/fraiseql/utils/field_counter.py                         5      0   100%
src/fraiseql/utils/field_descriptions.py                   69      2    97%
src/fraiseql/utils/fields.py                               21      0   100%
src/fraiseql/utils/fraiseql_builder.py                    120     25    79%
src/fraiseql/utils/introspection.py                        15      0   100%
src/fraiseql/utils/ip_utils.py                             44     16    64%
src/fraiseql/utils/naming.py                               29      5    83%
src/fraiseql/utils/sql_helpers.py                          43     43     0%
src/fraiseql/utils/where_clause_descriptions.py            38      1    97%
src/fraiseql/validation.py                                209     23    89%
---------------------------------------------------------------------------
TOTAL                                                   24789  14134    43%
