Skip to content

Conversation

@MelbourneDeveloper
Copy link
Owner

TLDR;

Made 30+ types internal across DataProvider, Sync, Migration, and LQL libraries to reduce API surface area and simplify the public contract.

Brief Details

Converted public implementation classes to internal where they are not meant to be directly used by consumers:

DataProvider libraries:

  • SQL parsers (SqlServerParser, SQLite ANTLR parsers)
  • Schema inspectors (SqlServerSchemaInspector, SqliteSchemaInspector, PostgresSchemaInspector)
  • Code generators (SqlServerCodeGenerator, SqliteDatabaseEffects)
  • Internal types (ISchemaInspector, CodeGenerators, GroupingTransformations)

Sync library:

  • Internal sync components (ConflictResolver, TombstoneManager, HashVerifier, ChangeApplier, BatchManager, MappingEngine, SubscriptionManager, MappingConfigParser, SyncTrackingState, MappingState, LqlExpressionEvaluator)
  • Added InternalsVisibleTo for Sync.Tests, Sync.SQLite, Sync.Postgres, Sync.Http

Migration library:

  • Schema inspectors (PostgresSchemaInspector, SqliteSchemaInspector)
  • Schema serializers (SchemaSerializer, SchemaYamlSerializer)
  • Added InternalsVisibleTo for Migration.SQLite, Migration.Postgres, Migration.Tests

LQL library:

  • Internal extensions (LqlExtensions now internal)

Also updated:

  • Added "PRIVATE/INTERNAL BY DEFAULT" rule to CLAUDE.md

How Do The Tests Prove This Works?

All existing tests pass with no changes - proving that the internalized types are correctly exposed to test projects via InternalsVisibleTo and that no user-facing functionality was affected. Solution builds successfully.

@MelbourneDeveloper MelbourneDeveloper merged commit b503e01 into main Jan 6, 2026
18 checks passed
@MelbourneDeveloper MelbourneDeveloper deleted the PrivateTypes branch January 6, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants