create-feltdb 0.8.3 → 0.8.5

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.
Files changed (147) hide show
  1. package/dist/create.js +25 -21
  2. package/dist/managed-account.js +11 -0
  3. package/dist/package-versions.js +1 -1
  4. package/dist/server-source/Cargo.lock +165 -0
  5. package/dist/server-source/Cargo.toml +9 -0
  6. package/dist/server-source/crates/feltdb/Cargo.toml +3 -0
  7. package/dist/server-source/crates/feltdb/benches/gate13_baseline.rs +44 -44
  8. package/dist/server-source/crates/feltdb/benches/gate13_phase_7_1_release_economics.rs +12 -24
  9. package/dist/server-source/crates/feltdb/benches/gate_13_redux.rs +7 -13
  10. package/dist/server-source/crates/feltdb/benches/gate_13_regression_runner.rs +13 -10
  11. package/dist/server-source/crates/feltdb/benches/gate_14a_concurrent_writer_scaling.rs +12 -9
  12. package/dist/server-source/crates/feltdb/benches/gate_14a_production_admission_revalidation.rs +78 -25
  13. package/dist/server-source/crates/feltdb/benches/gate_14a_rc2_admission_contract.rs +16 -13
  14. package/dist/server-source/crates/feltdb/benches/gate_14a_rc_root_cause.rs +13 -5
  15. package/dist/server-source/crates/feltdb/benches/gate_14a_sync1_queued_prototype.rs +41 -22
  16. package/dist/server-source/crates/feltdb/benches/gate_14a_sync_economics.rs +33 -15
  17. package/dist/server-source/crates/feltdb/benches/gate_14b_causal_backlog_scaling.rs +100 -33
  18. package/dist/server-source/crates/feltdb/benches/gate_14c_replication_contract_test.rs +56 -20
  19. package/dist/server-source/crates/feltdb/benches/gate_14c_replication_scaling.rs +116 -41
  20. package/dist/server-source/crates/feltdb/benches/gate_14d_combined_dimension_scaling.rs +186 -55
  21. package/dist/server-source/crates/feltdb/benches/phase_7_1_2_optimization_benchmark.rs +64 -26
  22. package/dist/server-source/crates/feltdb/benches/phase_7_1_3_crossover_analysis.rs +46 -15
  23. package/dist/server-source/crates/feltdb/src/admission.rs +8 -15
  24. package/dist/server-source/crates/feltdb/src/admission_contract_tests.rs +43 -13
  25. package/dist/server-source/crates/feltdb/src/adversarial_transport.rs +15 -42
  26. package/dist/server-source/crates/feltdb/src/analytics.rs +65 -19
  27. package/dist/server-source/crates/feltdb/src/application.rs +113 -30
  28. package/dist/server-source/crates/feltdb/src/authorization_security_tests.rs +475 -140
  29. package/dist/server-source/crates/feltdb/src/cardinality_diagnostics.rs +17 -15
  30. package/dist/server-source/crates/feltdb/src/cardinality_endpoint.rs +0 -1
  31. package/dist/server-source/crates/feltdb/src/causal_backlog_bound.rs +59 -15
  32. package/dist/server-source/crates/feltdb/src/causal_dependency_barrier.rs +266 -114
  33. package/dist/server-source/crates/feltdb/src/causal_dependency_barrier_phase_7_1.rs +25 -7
  34. package/dist/server-source/crates/feltdb/src/concurrency_fuzzing.rs +10 -15
  35. package/dist/server-source/crates/feltdb/src/consistency_contract.rs +3 -11
  36. package/dist/server-source/crates/feltdb/src/crash_atomic_boundary.rs +14 -5
  37. package/dist/server-source/crates/feltdb/src/crash_injection.rs +21 -25
  38. package/dist/server-source/crates/feltdb/src/crash_recovery_tests.rs +14 -11
  39. package/dist/server-source/crates/feltdb/src/dedup_bound_investigation.rs +103 -22
  40. package/dist/server-source/crates/feltdb/src/distributed_indexing.rs +18 -15
  41. package/dist/server-source/crates/feltdb/src/durability_guarantees.rs +12 -8
  42. package/dist/server-source/crates/feltdb/src/durable_dedup_set.rs +1 -5
  43. package/dist/server-source/crates/feltdb/src/durable_operation_identity.rs +87 -23
  44. package/dist/server-source/crates/feltdb/src/durable_operation_log.rs +3 -7
  45. package/dist/server-source/crates/feltdb/src/durable_sync.rs +10 -9
  46. package/dist/server-source/crates/feltdb/src/equality_index.rs +595 -0
  47. package/dist/server-source/crates/feltdb/src/in_process_transport.rs +1 -6
  48. package/dist/server-source/crates/feltdb/src/indexing.rs +35 -38
  49. package/dist/server-source/crates/feltdb/src/lib.rs +1050 -117
  50. package/dist/server-source/crates/feltdb/src/managed_cas_tests.rs +4 -1
  51. package/dist/server-source/crates/feltdb/src/metrics.rs +0 -1
  52. package/dist/server-source/crates/feltdb/src/multi_node_convergence.rs +1 -2
  53. package/dist/server-source/crates/feltdb/src/multi_operation_transaction.rs +107 -30
  54. package/dist/server-source/crates/feltdb/src/observability.rs +19 -6
  55. package/dist/server-source/crates/feltdb/src/operation_algebra.rs +12 -11
  56. package/dist/server-source/crates/feltdb/src/operation_log.rs +9 -4
  57. package/dist/server-source/crates/feltdb/src/p1_application_atomicity.rs +65 -18
  58. package/dist/server-source/crates/feltdb/src/p1_atomicity_acceptance.rs +193 -57
  59. package/dist/server-source/crates/feltdb/src/partition_reconciliation.rs +37 -27
  60. package/dist/server-source/crates/feltdb/src/permutation_scheduler.rs +38 -10
  61. package/dist/server-source/crates/feltdb/src/persistence_reality.rs +20 -14
  62. package/dist/server-source/crates/feltdb/src/phase1b_acceptance.rs +394 -229
  63. package/dist/server-source/crates/feltdb/src/phase1c1_acceptance.rs +8 -6
  64. package/dist/server-source/crates/feltdb/src/phase1c2_acceptance.rs +11 -13
  65. package/dist/server-source/crates/feltdb/src/phase1c3_acceptance.rs +90 -72
  66. package/dist/server-source/crates/feltdb/src/phase1c_atomicity_proof.rs +3 -3
  67. package/dist/server-source/crates/feltdb/src/phase5_integration.rs +33 -11
  68. package/dist/server-source/crates/feltdb/src/phase5_scenarios.rs +6 -6
  69. package/dist/server-source/crates/feltdb/src/phase6_adversarial_scenarios.rs +14 -56
  70. package/dist/server-source/crates/feltdb/src/phase6_convergence_validator.rs +29 -27
  71. package/dist/server-source/crates/feltdb/src/phase6_persistence.rs +35 -17
  72. package/dist/server-source/crates/feltdb/src/phase_1c_real_tcp.rs +8 -2
  73. package/dist/server-source/crates/feltdb/src/phase_2a_failures.rs +59 -15
  74. package/dist/server-source/crates/feltdb/src/phase_2b_network.rs +70 -17
  75. package/dist/server-source/crates/feltdb/src/phase_2c_cascading.rs +23 -6
  76. package/dist/server-source/crates/feltdb/src/phase_3_durability.rs +12 -3
  77. package/dist/server-source/crates/feltdb/src/phase_4_baseline.rs +41 -11
  78. package/dist/server-source/crates/feltdb/src/phase_5_soak.rs +56 -25
  79. package/dist/server-source/crates/feltdb/src/policy_evaluation.rs +701 -245
  80. package/dist/server-source/crates/feltdb/src/production_api.rs +31 -13
  81. package/dist/server-source/crates/feltdb/src/query_execution_diagnostics.rs +126 -0
  82. package/dist/server-source/crates/feltdb/src/query_performance.rs +6 -8
  83. package/dist/server-source/crates/feltdb/src/replay_fuzzing.rs +5 -5
  84. package/dist/server-source/crates/feltdb/src/replica_acknowledgements.rs +48 -18
  85. package/dist/server-source/crates/feltdb/src/replica_membership.rs +30 -11
  86. package/dist/server-source/crates/feltdb/src/replication_manager.rs +6 -3
  87. package/dist/server-source/crates/feltdb/src/replication_protocol.rs +4 -3
  88. package/dist/server-source/crates/feltdb/src/sharding.rs +36 -10
  89. package/dist/server-source/crates/feltdb/src/state_conflict_contract.rs +516 -0
  90. package/dist/server-source/crates/feltdb/src/state_contract.rs +305 -6
  91. package/dist/server-source/crates/feltdb/src/state_diff_contract.rs +222 -0
  92. package/dist/server-source/crates/feltdb/src/state_facade.rs +82 -54
  93. package/dist/server-source/crates/feltdb/src/state_hash.rs +2 -2
  94. package/dist/server-source/crates/feltdb/src/state_model.rs +1514 -537
  95. package/dist/server-source/crates/feltdb/src/state_transition_store.rs +6 -3
  96. package/dist/server-source/crates/feltdb/src/state_trigger.rs +672 -0
  97. package/dist/server-source/crates/feltdb/src/submission.rs +5 -11
  98. package/dist/server-source/crates/feltdb/src/sync.rs +12 -0
  99. package/dist/server-source/crates/feltdb/src/tcp_transport.rs +6 -8
  100. package/dist/server-source/crates/feltdb/src/transaction_api.rs +24 -35
  101. package/dist/server-source/crates/feltdb/src/transaction_invariants.rs +24 -8
  102. package/dist/server-source/crates/feltdb/src/transaction_preconditions.rs +248 -59
  103. package/dist/server-source/crates/feltdb/src/transactions.rs +17 -20
  104. package/dist/server-source/crates/feltdb/src/trigger_contract.rs +749 -0
  105. package/dist/server-source/crates/feltdb/src/worker_mesh.rs +1 -0
  106. package/dist/server-source/crates/feltdb/src/workload.rs +512 -4
  107. package/dist/server-source/crates/feltdb/src/workload_diagnostics.rs +442 -0
  108. package/dist/server-source/crates/feltdb/tests/branching_evidence.rs +299 -0
  109. package/dist/server-source/crates/feltdb/tests/current_revision_authority_evidence.rs +288 -0
  110. package/dist/server-source/crates/feltdb/tests/durable_format_compatibility.rs +392 -0
  111. package/dist/server-source/crates/feltdb/tests/feltdb_state_boundary_tests.rs +436 -220
  112. package/dist/server-source/crates/feltdb/tests/fixtures/state_conflict_contract_corpus.json +1916 -0
  113. package/dist/server-source/crates/feltdb/tests/fixtures/state_diff_contract_corpus.json +1878 -0
  114. package/dist/server-source/crates/feltdb/tests/fixtures/trigger_contract_corpus.json +1862 -0
  115. package/dist/server-source/crates/feltdb/tests/pr34_query_collection.rs +234 -0
  116. package/dist/server-source/crates/feltdb/tests/pr35_equality_index.rs +947 -0
  117. package/dist/server-source/crates/feltdb/tests/pr7_self_authorization_proof.rs +5 -8
  118. package/dist/server-source/crates/feltdb/tests/pr8_vocabulary_assessment.rs +52 -44
  119. package/dist/server-source/crates/feltdb/tests/pr9_phase2_boundary_tests.rs +33 -16
  120. package/dist/server-source/crates/feltdb/tests/pr9_phase3a_path_a_tests.rs +22 -7
  121. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_authorized_mutations.rs +41 -22
  122. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_role_based_authorization.rs +25 -8
  123. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_simple_auth_delete.rs +9 -6
  124. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_team_delete_role_authorization.rs +120 -69
  125. package/dist/server-source/crates/feltdb/tests/pr9_teams_role_based_access.rs +21 -10
  126. package/dist/server-source/crates/feltdb/tests/production_readiness_contract.rs +1032 -0
  127. package/dist/server-source/crates/feltdb/tests/reconciliation_application.rs +868 -0
  128. package/dist/server-source/crates/feltdb/tests/reconciliation_wire_format_evidence.rs +221 -0
  129. package/dist/server-source/crates/feltdb/tests/resource_scoped_revisions.rs +338 -0
  130. package/dist/server-source/crates/feltdb/tests/revision_identity_contract.rs +1039 -0
  131. package/dist/server-source/crates/feltdb/tests/revision_model_decision.rs +739 -0
  132. package/dist/server-source/crates/feltdb/tests/revision_retention_boundary_evidence.rs +427 -0
  133. package/dist/server-source/crates/feltdb/tests/saas_authorization_integration.rs +3 -3
  134. package/dist/server-source/crates/feltdb/tests/saas_invitation_lifecycle.rs +25 -22
  135. package/dist/server-source/crates/feltdb/tests/state_conflict_contract_conformance.rs +1799 -0
  136. package/dist/server-source/crates/feltdb/tests/state_diff_contract_conformance.rs +1316 -0
  137. package/dist/server-source/crates/feltdb/tests/state_model_integration.rs +53 -61
  138. package/dist/server-source/crates/feltdb/tests/state_persistence_integration.rs +156 -61
  139. package/dist/server-source/crates/feltdb/tests/state_store_boundary_evidence.rs +299 -0
  140. package/dist/server-source/crates/feltdb/tests/sync_divergence_evidence.rs +255 -0
  141. package/dist/server-source/crates/feltdb/tests/three_way_input_boundary_evidence.rs +249 -0
  142. package/dist/server-source/crates/feltdb/tests/trigger_contract_conformance.rs +994 -0
  143. package/dist/server-source/crates/feltdb-server/src/app_state.rs +2 -1
  144. package/dist/server-source/crates/feltdb-server/src/audit.rs +1137 -29
  145. package/dist/server-source/crates/feltdb-server/src/auth.rs +164 -13
  146. package/dist/server-source/crates/feltdb-server/src/main.rs +800 -34
  147. package/package.json +1 -1
@@ -372,9 +372,7 @@ impl IndexManager {
372
372
  let values: Vec<&str> = idx
373
373
  .fields
374
374
  .iter()
375
- .filter_map(|field| {
376
- obj.get(field).and_then(|v| v.as_str())
377
- })
375
+ .filter_map(|field| obj.get(field).and_then(|v| v.as_str()))
378
376
  .collect();
379
377
  if values.len() == idx.fields.len() {
380
378
  idx.remove(record_id, values);
@@ -393,9 +391,7 @@ impl IndexManager {
393
391
  let values: Vec<&str> = idx
394
392
  .fields
395
393
  .iter()
396
- .filter_map(|field| {
397
- obj.get(field).and_then(|v| v.as_str())
398
- })
394
+ .filter_map(|field| obj.get(field).and_then(|v| v.as_str()))
399
395
  .collect();
400
396
  if values.len() == idx.fields.len() {
401
397
  idx.add(record_id, values);
@@ -452,7 +448,12 @@ impl IndexManager {
452
448
  _ => unreachable!(),
453
449
  }
454
450
  }
455
- _ => return Err(format!("Sorted index does not support {} operator", operator)),
451
+ _ => {
452
+ return Err(format!(
453
+ "Sorted index does not support {} operator",
454
+ operator
455
+ ))
456
+ }
456
457
  }
457
458
  }
458
459
  IndexInner::Compound(_) => {
@@ -510,7 +511,7 @@ impl IndexManager {
510
511
  IndexInner::Compound(idx) => idx.size(),
511
512
  IndexInner::Text(idx) => idx.size(),
512
513
  },
513
- size: 0, // TODO: implement size calculation
514
+ size: 0, // TODO: implement size calculation
514
515
  last_updated: 0, // TODO: track timestamp
515
516
  reads: e.reads,
516
517
  writes: e.writes,
@@ -545,11 +546,7 @@ impl IndexManager {
545
546
  })
546
547
  }
547
548
 
548
- pub fn plan_query(
549
- &self,
550
- index_name: &str,
551
- operator: &str,
552
- ) -> Result<QueryPlan, String> {
549
+ pub fn plan_query(&self, index_name: &str, operator: &str) -> Result<QueryPlan, String> {
553
550
  let entry = self
554
551
  .indexes
555
552
  .get(index_name)
@@ -582,12 +579,22 @@ impl IndexManager {
582
579
  })
583
580
  }
584
581
 
585
- pub fn count_indexed(&mut self, index_name: &str, operator: &str, value: &str) -> Result<usize, String> {
582
+ pub fn count_indexed(
583
+ &mut self,
584
+ index_name: &str,
585
+ operator: &str,
586
+ value: &str,
587
+ ) -> Result<usize, String> {
586
588
  let results = self.query_index(index_name, operator, value)?;
587
589
  Ok(results.len())
588
590
  }
589
591
 
590
- pub fn exists_indexed(&mut self, index_name: &str, operator: &str, value: &str) -> Result<bool, String> {
592
+ pub fn exists_indexed(
593
+ &mut self,
594
+ index_name: &str,
595
+ operator: &str,
596
+ value: &str,
597
+ ) -> Result<bool, String> {
591
598
  let count = self.count_indexed(index_name, operator, value)?;
592
599
  Ok(count > 0)
593
600
  }
@@ -619,19 +626,11 @@ mod tests {
619
626
  })
620
627
  .unwrap();
621
628
 
622
- manager
623
- .update_record("1", None, "active")
624
- .unwrap();
625
- manager
626
- .update_record("2", None, "inactive")
627
- .unwrap();
628
- manager
629
- .update_record("3", None, "active")
630
- .unwrap();
629
+ manager.update_record("1", None, "active").unwrap();
630
+ manager.update_record("2", None, "inactive").unwrap();
631
+ manager.update_record("3", None, "active").unwrap();
631
632
 
632
- let results = manager
633
- .query_index("status_idx", "eq", "active")
634
- .unwrap();
633
+ let results = manager.query_index("status_idx", "eq", "active").unwrap();
635
634
  assert_eq!(results.len(), 2);
636
635
  }
637
636
 
@@ -651,15 +650,9 @@ mod tests {
651
650
  })
652
651
  .unwrap();
653
652
 
654
- manager
655
- .update_record("1", None, "2024-01-01")
656
- .unwrap();
657
- manager
658
- .update_record("2", None, "2024-02-01")
659
- .unwrap();
660
- manager
661
- .update_record("3", None, "2024-03-01")
662
- .unwrap();
653
+ manager.update_record("1", None, "2024-01-01").unwrap();
654
+ manager.update_record("2", None, "2024-02-01").unwrap();
655
+ manager.update_record("3", None, "2024-03-01").unwrap();
663
656
 
664
657
  let results = manager
665
658
  .query_index("created_idx", "range", "2024-01-01,2024-02-01")
@@ -750,8 +743,12 @@ mod tests {
750
743
 
751
744
  manager.update_record("1", None, "active").unwrap();
752
745
 
753
- assert!(manager.exists_indexed("status_idx", "eq", "active").unwrap());
754
- assert!(!manager.exists_indexed("status_idx", "eq", "inactive").unwrap());
746
+ assert!(manager
747
+ .exists_indexed("status_idx", "eq", "active")
748
+ .unwrap());
749
+ assert!(!manager
750
+ .exists_indexed("status_idx", "eq", "inactive")
751
+ .unwrap());
755
752
  }
756
753
 
757
754
  #[test]