use json-ot from bower

pull/1/head
ansuz 9 years ago
parent dccf5e8dcf
commit ff0f7d15dc

@ -32,6 +32,7 @@
"hyperjson": "~1.2.2",
"textpatcher": "^1.2.0",
"proxy-polyfill": "^0.1.5",
"chainpad": "^0.2.2"
"chainpad": "^0.2.2",
"chainpad-json-validator": "^0.1.1"
}
}

@ -9,7 +9,7 @@ define([
'/common/crypto.js',
'/bower_components/textpatcher/TextPatcher.amd.js',
'json.sortify',
'/common/json-ot.js',
'/bower_components/chainpad-json-validator/json-ot.js',
'/bower_components/fabric.js/dist/fabric.min.js',
'/bower_components/jquery/dist/jquery.min.js',
'/customize/pad.js'

@ -3,7 +3,7 @@ define([
'/api/config?cb=' + Math.random().toString(16).substring(2),
'/common/crypto.js',
'/common/realtime-input.js',
'/common/json-ot.js',
'/bower_components/chainpad-json-validator/json-ot.js',
'json.sortify',
'/bower_components/textpatcher/TextPatcher.amd.js',
'/bower_components/jquery/dist/jquery.min.js',

@ -1,68 +0,0 @@
define([
'/common/realtime-input.js'
], function () {
var ChainPad = window.ChainPad;
var JsonOT = {};
var validate = JsonOT.validate = function (text, toTransform, transformBy) {
var DEBUG = window.REALTIME_DEBUG = window.REALTIME_DEBUG || {};
var resultOp, text2, text3;
try {
// text = O (mutual common ancestor)
// toTransform = A (the first incoming operation)
// transformBy = B (the second incoming operation)
// threeway merge (0, A, B)
resultOp = ChainPad.Operation.transform0(text, toTransform, transformBy);
/* if after operational transform we find that no op is necessary
return null to ignore this patch */
if (!resultOp) { return null; }
text2 = ChainPad.Operation.apply(transformBy, text);
text3 = ChainPad.Operation.apply(resultOp, text2);
try {
JSON.parse(text3);
return resultOp;
} catch (e) {
console.error(e);
var info = DEBUG.ot_parseError = {
type: 'resultParseError',
resultOp: resultOp,
toTransform: toTransform,
transformBy: transformBy,
text1: text,
text2: text2,
text3: text3,
error: e
};
console.log('Debugging info available at `window.REALTIME_DEBUG.ot_parseError`');
}
} catch (x) {
console.error(x);
window.DEBUG.ot_applyError = {
type: 'resultParseError',
resultOp: resultOp,
toTransform: toTransform,
transformBy: transformBy,
text1: text,
text2: text2,
text3: text3,
error: x
};
console.log('Debugging info available at `window.REALTIME_DEBUG.ot_applyError`');
}
// returning **null** breaks out of the loop
// which transforms conflicting operations
// in theory this should prevent us from producing bad JSON
return null;
};
return JsonOT;
});

@ -8,7 +8,7 @@ define([
'/common/hyperscript.js',
'/common/toolbar.js',
'/common/cursor.js',
'/common/json-ot.js',
'/bower_components/chainpad-json-validator/json-ot.js',
'/common/TypingTests.js',
'json.sortify',
'/bower_components/textpatcher/TextPatcher.amd.js',

Loading…
Cancel
Save