chore: Prepare the release of 0.0.4 with serverpod-4.0.0-rc.1 support (#113)
This commit is contained in:
parent
852c81c64a
commit
fbad5c61fe
27 changed files with 22326 additions and 805 deletions
|
|
@ -17,8 +17,8 @@ typedef CrdtSyncTransport =
|
|||
class CrdtSyncSession {
|
||||
CrdtSyncSession._({
|
||||
required this.done,
|
||||
required Future<void> Function() cancel,
|
||||
}) : _cancel = cancel;
|
||||
required this._cancel,
|
||||
});
|
||||
|
||||
/// Completes when the sync session ends normally or after [cancel].
|
||||
final Future<void> done;
|
||||
|
|
|
|||
|
|
@ -55,18 +55,16 @@ bool _grantsEqual(List<CrdtScopeGrant>? a, List<CrdtScopeGrant> b) {
|
|||
/// control flow); this owns the scopes. It needs only a [DatabaseSession] and
|
||||
/// the membership helpers, so it carries no protocol or transport concerns.
|
||||
class CrdtScopeSyncSession {
|
||||
/// Creates a scope session for [userId] acting in [mode] against [_session].
|
||||
/// Creates a scope session for [_userId] acting in [_mode] against [_session].
|
||||
///
|
||||
/// [peerNodeId] is the remote peer's CRDT node, learned from its connect
|
||||
/// [_peerNodeId] is the remote peer's CRDT node, learned from its connect
|
||||
/// handshake before this session is constructed.
|
||||
CrdtScopeSyncSession(
|
||||
this._session, {
|
||||
required UuidValue userId,
|
||||
required CrdtSyncPeerMode mode,
|
||||
required UuidValue peerNodeId,
|
||||
}) : _userId = userId,
|
||||
_mode = mode,
|
||||
_peerNodeId = peerNodeId;
|
||||
required this._userId,
|
||||
required this._mode,
|
||||
required this._peerNodeId,
|
||||
});
|
||||
|
||||
final DatabaseSession _session;
|
||||
final UuidValue _userId;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class CrdtSync {
|
|||
int syncBatchSize = defaultSyncBatchSize,
|
||||
|
||||
/// Delay between continuous sync rounds.
|
||||
Duration continuousSyncInterval = defaultContinuousSyncInterval,
|
||||
this._continuousSyncInterval = defaultContinuousSyncInterval,
|
||||
}) : _syncTables = syncTables,
|
||||
_serializationManager = serializationManager,
|
||||
_databaseContext =
|
||||
|
|
@ -55,8 +55,7 @@ class CrdtSync {
|
|||
syncTables: syncTables,
|
||||
serializationManager: serializationManager,
|
||||
),
|
||||
_syncBatchSize = syncBatchSize,
|
||||
_continuousSyncInterval = continuousSyncInterval {
|
||||
_syncBatchSize = syncBatchSize {
|
||||
if (syncBatchSize < 1) {
|
||||
throw ArgumentError.value(syncBatchSize, 'syncBatchSize', 'Must be >= 1');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,14 +67,11 @@ class CrdtDatabase implements Database {
|
|||
CrdtDatabase._(
|
||||
this._delegate,
|
||||
this._context, {
|
||||
required List<Table> syncTables,
|
||||
required int syncBatchSize,
|
||||
required Duration continuousSyncInterval,
|
||||
required this._syncTables,
|
||||
required this._syncBatchSize,
|
||||
required this._continuousSyncInterval,
|
||||
required UuidValue? persistentUserId,
|
||||
}) : _syncTables = syncTables,
|
||||
_syncBatchSize = syncBatchSize,
|
||||
_continuousSyncInterval = continuousSyncInterval,
|
||||
_recorder = CrdtMutationRecorder(
|
||||
}) : _recorder = CrdtMutationRecorder(
|
||||
_delegate,
|
||||
context: _context,
|
||||
persistentUserId: persistentUserId,
|
||||
|
|
|
|||
|
|
@ -56,10 +56,9 @@ class CrdtForeignKeyProjector {
|
|||
/// Creates a projector over the given recorder context.
|
||||
CrdtForeignKeyProjector(
|
||||
this._context, {
|
||||
required CrdtForeignKeyGraph foreignKeys,
|
||||
required CrdtUniqueConflictResolver uniqueResolver,
|
||||
}) : _foreignKeys = foreignKeys,
|
||||
_uniqueResolver = uniqueResolver;
|
||||
required this._foreignKeys,
|
||||
required this._uniqueResolver,
|
||||
});
|
||||
|
||||
final CrdtRecorderContext _context;
|
||||
final CrdtForeignKeyGraph _foreignKeys;
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
||||
|
||||
/// Why a synced user tombstone changed row visibility.
|
||||
|
|
@ -18,8 +19,7 @@ enum CrdtDataDeletedReason implements _iss.SerializableModel {
|
|||
userReinsert,
|
||||
userDelete,
|
||||
userCascadeDelete,
|
||||
uniqueLoser,
|
||||
;
|
||||
uniqueLoser;
|
||||
|
||||
static CrdtDataDeletedReason fromJson(int index) {
|
||||
switch (index) {
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
||||
|
||||
/// Why a foreign key projection override is active.
|
||||
|
|
@ -26,8 +27,7 @@ enum CrdtForeignKeyOverrideReason implements _iss.SerializableModel {
|
|||
/// cannot repair the value (restrict, no action, cascade, or the column is
|
||||
/// non-nullable), so the row is hidden by projection while the attempt is
|
||||
/// preserved.
|
||||
missingParent,
|
||||
;
|
||||
missingParent;
|
||||
|
||||
static CrdtForeignKeyOverrideReason fromJson(int index) {
|
||||
switch (index) {
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
||||
|
||||
/// Materialized visibility state for a CRDT row.
|
||||
|
|
@ -22,8 +23,7 @@ enum CrdtDataRowVisibility implements _iss.SerializableModel {
|
|||
foreignKeyRestrictRestore,
|
||||
userDelete,
|
||||
userCascadeDelete,
|
||||
foreignKeyCascade,
|
||||
;
|
||||
foreignKeyCascade;
|
||||
|
||||
static CrdtDataRowVisibility fromJson(int index) {
|
||||
switch (index) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
||||
|
||||
/// Base class for HLC timestamps.
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_null_comparison
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_null_comparison
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
// ignore_for_file: invalid_use_of_internal_member
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
|
||||
import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
||||
|
||||
/// CRDT access role for a member of a shared scope.
|
||||
|
|
@ -17,8 +18,7 @@ import 'package:serverpod_serialization/serverpod_serialization.dart' as _iss;
|
|||
/// The role gates CRDT writes only. Reads remain membership-wide.
|
||||
enum CrdtScopeRole implements _iss.SerializableModel {
|
||||
readOnly,
|
||||
readWrite,
|
||||
;
|
||||
readWrite;
|
||||
|
||||
static CrdtScopeRole fromJson(String name) {
|
||||
switch (name) {
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
// ignore_for_file: type_literal_in_constant_pattern
|
||||
// ignore_for_file: use_super_parameters
|
||||
// ignore_for_file: invalid_use_of_internal_member
|
||||
// ignore_for_file: dead_code, unnecessary_type_check
|
||||
// ignore_for_file: dead_code, no_leading_underscores_for_library_prefixes
|
||||
// ignore_for_file: unnecessary_type_check
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'package:serverpod_database/serverpod_database.dart' as _isd;
|
||||
import 'package:serverpod_offline_sync/serverpod_offline_sync.dart'
|
||||
as _icw2tu00;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue