docs: function ThaliReplicationPeerAction(peerAdvertisesDataForUs,
                                      PouchDB,
                                      localDbName,
                                      ourPublicKey) {
    assert(ThaliReplicationPeerAction.MAX_IDLE_PERIOD_SECONDS * 1000 -
      ThaliReplicationPeerAction.PUSH_LAST_SYNC_UPDATE_MILLISECONDS >
      1000, 'Need at least a seconds worth of clearance to make sure ' +
      'that at least one sync update will have gone out before we time out.');
    assert(peerAdvertisesDataForUs, 'there must be peerAdvertisesDataForUs');
    assert(PouchDB, 'there must be PouchDB');
    assert(localDbName, 'there must be localDbName');
    assert(ourPublicKey, 'there must be an ourPublicKey');
  
    ThaliReplicationPeerAction.super_.call(this, peerAdvertisesDataForUs.keyId,
      peerAdvertisesDataForUs.connectionType,
      ThaliReplicationPeerAction.ACTION_TYPE,
      peerAdvertisesDataForUs.pskIdentifyField,
      peerAdvertisesDataForUs.psk);
  
    this._peerAdvertisesDataForUs = peerAdvertisesDataForUs;
    this._PouchDB = PouchDB;
    this._localDbName = localDbName;
    this._ourPublicKey = ourPublicKey;
    this._localSeqManager = null;
    this._cancelReplication = null;
    this._resolve = null;
    this._reject = null;
    this._refreshTimerManager = null;
    this._completed = false;
  }