55 Commits

Author SHA1 Message Date
60ad920b30
refactor: update test files to use DeltaBuilder fluent API
- Refactored delta creation in test files to use createDelta() pattern
- Replaced direct Delta instantiations with fluent builder API
- Updated relationship deltas to use setProperty with proper entity context
- Ensured all tests pass with the new delta creation approach

This is part of the ongoing effort to standardize on the DeltaBuilder
API across the codebase for better consistency and maintainability.
2025-06-20 21:40:51 -05:00
5c1c8a23b8
refactor: update delta declarations to use DeltaBuilder in lossless tests
- Refactored delta declarations in __tests__/lossless.ts to use DeltaBuilder
- Added declareTransaction method to DeltaBuilder for better transaction handling
- Updated transaction pointer structure in DeltaBuilder to match expected format
- Fixed related tests to work with the new DeltaBuilder implementation
2025-06-20 11:04:55 -05:00
8043b67258 refactor: simplify DeltaBuilder and update tests
- Removed V1-specific code paths in favor of V2 with toV1() conversion
- Simplified pointer handling to use a single internal representation
- Made entityLabel configurable in setProperty()
- Updated tests to use buildV1() and buildV2() explicitly
- Removed unused time utility module
- Added more comprehensive test coverage for entity properties

This change makes the DeltaBuilder more maintainable by reducing code duplication and following the pattern of building V2 deltas first, then converting to V1 when needed.
2025-06-20 10:40:31 -05:00
3ca8249510 feat: add DeltaBuilder for fluent delta creation
- Implemented DeltaBuilder class with support for both V1 and V2 delta formats
- Added comprehensive test coverage for all builder functionality
- Included utility function for microsecond-precision timestamps
- Added support for transactions and negation via special pointer contexts
- Provides type-safe API for creating deltas with proper validation
2025-06-20 09:24:41 -05:00
c173f3475e
feat(views): add DeltaV2 support to Lossless view
- Update Lossless.ingestDelta to accept both Delta and DeltaV2
- Add conversion from DeltaV2 to DeltaV1 during ingestion
- Add test case for DeltaV2 ingestion
- Ensure backward compatibility with existing DeltaV1 code
2025-06-19 20:57:16 -05:00
87699dd1af
refactor: simplify node startup and improve test reliability
- Remove waitForReady option from RhizomeNode.start() and always wait for readiness
- Update test files to use simplified start() method
- Clean up debug logging in lossless view
- Rename docker orchestrator test file to remove version suffix
2025-06-19 16:58:09 -05:00
be0f0659b9
Remove empty test 2025-06-19 16:58:08 -05:00
c8d38a4af2
refactor: remove dockerOptions and fix resource limits
- Removed unused dockerOptions from DockerOrchestrator and all manager classes
- Updated container-manager to use NanoCpus for CPU limits instead of CpuQuota/CpuPeriod
- Fixed resource limit enforcement in container configuration
- Improved test reliability and error handling
- Cleaned up test files and removed unused code
2025-06-19 16:58:08 -05:00
b5c0c010a9
feat: Refactor Docker orchestrator and enhance test utilities
This commit includes a major refactoring of the Docker orchestrator implementation
along with improvements to the testing infrastructure:

- Refactored Docker orchestrator to handle dynamic port assignment
- Added comprehensive test utilities in docker-test-utils.ts
- Improved error handling and resource cleanup in test environments
- Enhanced NodeStatus interface with containerId and networkId
- Added support for different storage types in NodeConfig
- Fixed request port handling in TestOrchestrator
- Added proper cleanup method to NodeOrchestrator interface

The changes ensure more reliable container management and better test isolation
while maintaining backward compatibility with existing implementations.

BREAKING CHANGE: The NodeOrchestrator interface now requires a cleanup() method.
2025-06-19 16:58:07 -05:00
feb7639978
docker orchestrator is working 2025-06-19 16:58:07 -05:00
b78985779b
Implement Docker orchestrator and fix test infrastructure
- Add DockerOrchestrator implementation with container management
- Refactor InMemoryOrchestrator to use RhizomeNode directly
- Fix orchestrated test files for single and two-node scenarios
- Update package.json with dockerode dependency
- Clean up old test files and imports
2025-06-19 16:58:06 -05:00
6c13f46714
fix(negation): improve negation chain handling and clean up logging
- Refactored isDeltaNegated to properly handle complex negation chains
- Added recursive negation detection to account for negations of negations
- Replaced console.log with debug statements in tests
- Improved test coverage and documentation
- Fixed TypeScript type issues
2025-06-15 14:15:49 -05:00
4b750c593d
feat(query): validate JSON Logic operators and improve error handling
- Add validation for JSON Logic operators in query filters
- Throw InvalidQueryOperatorError for invalid operators
- Improve error handling and logging in applyJsonLogicFilter
- Update tests to verify new error handling behavior
- Fix TypeScript linting issues and improve code style
2025-06-15 14:15:49 -05:00
51d336b88b
feat: handle undefined values in custom resolvers
- Update ResolverPlugin interface to allow resolve() to return undefined
- Modify CustomResolver to skip properties with undefined values
- Add test case for resolvers that return undefined
- Update existing tests to handle cases where no properties are resolved

This change makes the behavior more explicit when resolvers don't return a value,
which is particularly important for numeric aggregations where 0 might be a valid result.
2025-06-15 14:15:48 -05:00
d5cc436bcb
chore: remove unused _RhizomeImports from test files
- Removed unused _RhizomeImports from:
  - __tests__/compose-decompose.ts
  - __tests__/transactions.ts
  - __tests__/negation.ts
- All tests continue to pass after removal
2025-06-15 14:15:48 -05:00
dd8987563a
Fix recursion depth test validity
Previosly a failure to correctly limit the depth might not be detected
2025-06-15 14:15:47 -05:00
885630f4d9
refactor: move CommonSchemas to test-utils
- Moved CommonSchemas from src/schema/schema.ts to src/test-utils/schemas.ts
- Updated all test files to import CommonSchemas from the new location
- Fixed the Document schema to match test expectations by making the author field required
- Added additional fields to the Document schema to match the original implementation
- Ensured all tests pass with the new implementation

Addresses PR feedback that CommonSchemas is only used in tests and should be moved to test files.
2025-06-15 14:15:47 -05:00
08fb5778ba
fix: update comment about LastWriteWins tie-breaking algorithm
Addresses PR feedback about the outdated comment in concurrent-writes.ts. The comment now accurately reflects that the resolution uses the LastWriteWins resolver's tie-breaking algorithm rather than delta processing order.
2025-06-15 14:15:46 -05:00
1c55e95a7b cleanup and levelDB integration 2025-06-09 22:37:51 -04:00
c8488843d2 refactored file structure, added levelDB (needs work) 2025-06-09 21:53:28 -04:00
9a7bd7d3b0 implemented initial query engine and exposed HTTP endpoints 2025-06-09 21:23:18 -04:00
c2f1f537f7 major refactor to shore up some misalignments, ready for phase 3 2025-06-09 20:50:33 -04:00
2dbf9a420a Conflict Resolution strategies completed 2025-06-09 15:01:09 -04:00
c2aae9cfe6 support for negations complete 2025-06-09 13:39:25 -04:00
dc59dcc778 schema foundation support complete 2025-06-09 13:21:52 -04:00
33d4f92f8d transaction support done, deferred rollback 2025-06-09 12:55:15 -04:00
ba9cbc220d delta validation and error handling done 2025-06-09 12:47:37 -04:00
Ladd
c6f6ece504 refactoring in preparation for adding more resolvers 2025-01-02 20:29:26 -06:00
Ladd
e684eac932 indentation 2025-01-02 17:00:21 -06:00
Ladd
39d70b4680 added more concise syntax for deltas 2025-01-02 16:58:51 -06:00
Ladd
58c5f5dc4e switched back to commonjs rather than esm 2025-01-01 22:56:34 -06:00
Ladd
756fd240f5 removed libp2p/gossipsub 2025-01-01 22:45:17 -06:00
Ladd
4eec3b294c refactored lossy for clarity, added separate class for last write wins 2025-01-01 22:21:16 -06:00
Ladd
5161ab0a85 remove unnecessary debug statements 2024-12-31 19:03:39 -06:00
Ladd
52bada4ac8 log messages start with uppercase 2024-12-31 14:58:28 -06:00
Ladd
cb09606590 fixed a small bug with global seedPeers 2024-12-31 14:04:34 -06:00
Ladd
6678176326 prefix logs with rz: 2024-12-31 12:40:26 -06:00
Ladd
1f8cbda73f prefix log messages with peer id 2024-12-31 12:28:24 -06:00
Ladd
44e6cfa13c added gossipsub in parallel with zeromq. converted project to ESM for compatibility with gossipsub 2024-12-31 11:35:09 -06:00
Ladd
066c03f690 scaffolding to support transactions 2024-12-29 17:50:20 -06:00
Ladd
2e0672e04c added last-write-wins resolver 2024-12-29 14:35:30 -06:00
Ladd
8fdec5da11 added delta ids; refactored delta to its own file; refactored http server 2024-12-27 13:43:43 -06:00
Ladd
c3f896f130 use lossless view for full list of entity ids 2024-12-26 16:52:46 -06:00
Ladd
3f0b5bec4e refactored to use lossless/lossy view mechanisms for resolving get requests 2024-12-26 15:59:03 -06:00
Ladd
4f6dcf3d15 move util back out of test dir 2024-12-25 19:32:02 -06:00
Ladd
9d9a1e1f08 fixed test run/002 2024-12-25 19:27:36 -06:00
Ladd
28691d677a reduce data replication wait time 2024-12-25 17:32:20 -06:00
Ladd
a6f65ef99f successful tests with multiple rhizome nodes 2024-12-25 17:24:18 -06:00
Ladd
a5fb49475b refactored globals into classes 2024-12-25 16:13:48 -06:00
Ladd
165732d7cd fixup 2024-12-23 23:36:38 -06:00