Compare commits

..

1 Commits

Author SHA1 Message Date
Kevin Jahns
256d08cb2a v13.0.0-18 -- distribution files 2017-09-20 11:34:24 +02:00
11 changed files with 16 additions and 23739 deletions

View File

@@ -7,9 +7,9 @@ Y({
},
connector: {
name: 'websockets-client',
url: 'http://127.0.0.1:1234',
// url: 'http://127.0.0.1:1234',
url: 'http://192.168.178.81:1234',
room: 'html-editor-example6'
// maxBufferLength: 100
},
share: {
xml: 'XmlFragment()' // y.share.xml is of type Y.Xml with tagname "p"

View File

@@ -1,6 +1,6 @@
{
"name": "yjs",
"version": "13.0.0-21",
"version": "13.0.0-18",
"description": "A framework for real-time p2p shared editing on any data",
"main": "./y.node.js",
"browser": "./y.js",

View File

@@ -42,11 +42,6 @@ export default function extendConnector (Y/* :any */) {
if (opts.generateUserId !== false) {
this.setUserId(Y.utils.generateUserId())
}
if (opts.maxBufferLength == null) {
this.maxBufferLength = -1
} else {
this.maxBufferLength = opts.maxBufferLength
}
}
reconnect () {
@@ -202,19 +197,14 @@ export default function extendConnector (Y/* :any */) {
encoder.writeVarString(self.opts.room)
encoder.writeVarString('update')
let ops = self.broadcastOpBuffer
self.broadcastOpBuffer = []
let length = ops.length
let encoderPosLen = encoder.pos
encoder.writeUint32(0)
for (var i = 0; i < length && (self.maxBufferLength < 0 || encoder.length < self.maxBufferLength); i++) {
encoder.writeUint32(length)
for (var i = 0; i < length; i++) {
let op = ops[i]
Y.Struct[op.struct].binaryEncode(encoder, op)
}
encoder.setUint32(encoderPosLen, i)
self.broadcastOpBuffer = ops.slice(i)
self.broadcast(encoder.createBuffer())
if (i !== length) {
self.whenRemoteResponsive().then(broadcastOperations)
}
}
}
if (this.broadcastOpBuffer.length === 0) {
@@ -225,20 +215,6 @@ export default function extendConnector (Y/* :any */) {
}
}
/*
* Somehow check the responsiveness of the remote clients/server
* Default behavior:
* Wait 100ms before broadcasting the next batch of operations
*
* Only used when maxBufferLength is set
*
*/
whenRemoteResponsive () {
return new Promise(function (resolve) {
setTimeout(resolve, 100)
})
}
/*
You received a raw message, and you know that it is intended for Yjs. Then call this function.
*/

View File

@@ -8,10 +8,6 @@ export class BinaryEncoder {
this.data = []
}
get length () {
return this.data.length
}
get pos () {
return this.data.length
}

View File

@@ -49,51 +49,6 @@ export default function Utils (Y) {
}
}
Y.utils.getRelativePosition = function (type, offset) {
if (type == null) {
return null
} else {
if (type._content.length <= offset) {
return ['endof', type._model[0], type._model[1]]
} else {
return type._content[offset].id
}
}
}
Y.utils.fromRelativePosition = function (y, id) {
var offset = 0
var op
if (id[0] === 'endof') {
id = y.db.os.find(id.slice(1)).end
op = y.db.os.findNodeWithUpperBound(id).val
if (!op.deleted) {
offset = op.content != null ? op.content.length : 1
}
} else {
op = y.db.os.findNodeWithUpperBound(id).val
if (!op.deleted) {
offset = id[1] - op.id[1]
}
}
var type = y.db.getType(op.parent)
if (type == null || y.db.os.find(op.parent).deleted) {
return null
}
while (op.left != null) {
op = y.db.os.findNodeWithUpperBound(op.left).val
if (!op.deleted) {
offset += op.content != null ? op.content.length : 1
}
}
return {
type: type,
offset: offset
}
}
class NamedEventHandler {
constructor () {
this._eventListener = {}

8
y.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
/**
* yjs - A framework for real-time p2p shared editing on any data
* @version v13.0.0-21
* @version v13.0.0-18
* @license MIT
*/
@@ -292,10 +292,6 @@ class BinaryEncoder {
this.data = [];
}
get length () {
return this.data.length
}
get pos () {
return this.data.length
}
@@ -670,11 +666,6 @@ function extendConnector (Y/* :any */) {
if (opts.generateUserId !== false) {
this.setUserId(Y.utils.generateUserId());
}
if (opts.maxBufferLength == null) {
this.maxBufferLength = -1;
} else {
this.maxBufferLength = opts.maxBufferLength;
}
}
reconnect () {
@@ -830,19 +821,14 @@ function extendConnector (Y/* :any */) {
encoder.writeVarString(self.opts.room);
encoder.writeVarString('update');
let ops = self.broadcastOpBuffer;
self.broadcastOpBuffer = [];
let length = ops.length;
let encoderPosLen = encoder.pos;
encoder.writeUint32(0);
for (var i = 0; i < length && (self.maxBufferLength < 0 || encoder.length < self.maxBufferLength); i++) {
encoder.writeUint32(length);
for (var i = 0; i < length; i++) {
let op = ops[i];
Y.Struct[op.struct].binaryEncode(encoder, op);
}
encoder.setUint32(encoderPosLen, i);
self.broadcastOpBuffer = ops.slice(i);
self.broadcast(encoder.createBuffer());
if (i !== length) {
self.whenRemoteResponsive().then(broadcastOperations);
}
}
}
if (this.broadcastOpBuffer.length === 0) {
@@ -853,20 +839,6 @@ function extendConnector (Y/* :any */) {
}
}
/*
* Somehow check the responsiveness of the remote clients/server
* Default behavior:
* Wait 100ms before broadcasting the next batch of operations
*
* Only used when maxBufferLength is set
*
*/
whenRemoteResponsive () {
return new Promise(function (resolve) {
setTimeout(resolve, 100);
})
}
/*
You received a raw message, and you know that it is intended for Yjs. Then call this function.
*/
@@ -3462,51 +3434,6 @@ function Utils (Y) {
}
};
Y.utils.getRelativePosition = function (type, offset) {
if (type == null) {
return null
} else {
if (type._content.length <= offset) {
return ['endof', type._model[0], type._model[1]]
} else {
return type._content[offset].id
}
}
};
Y.utils.fromRelativePosition = function (y, id) {
var offset = 0;
var op;
if (id[0] === 'endof') {
id = y.db.os.find(id.slice(1)).end;
op = y.db.os.findNodeWithUpperBound(id).val;
if (!op.deleted) {
offset = op.content != null ? op.content.length : 1;
}
} else {
op = y.db.os.findNodeWithUpperBound(id).val;
if (!op.deleted) {
offset = id[1] - op.id[1];
}
}
var type = y.db.getType(op.parent);
if (type == null || y.db.os.find(op.parent).deleted) {
return null
}
while (op.left != null) {
op = y.db.os.findNodeWithUpperBound(op.left).val;
if (!op.deleted) {
offset += op.content != null ? op.content.length : 1;
}
}
return {
type: type,
offset: offset
}
};
class NamedEventHandler {
constructor () {
this._eventListener = {};

File diff suppressed because one or more lines are too long

23576
y.test.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long