136 lines
16 KiB
JavaScript
136 lines
16 KiB
JavaScript
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
var createIwcConnector;
|
|
|
|
createIwcConnector = function(callback, options) {
|
|
var IwcConnector, duiClient, init, iwcHandler, received_HB, userIwcHandler;
|
|
if (options != null) {
|
|
userIwcHandler = options.iwcHandler;
|
|
}
|
|
iwcHandler = {};
|
|
duiClient = new DUIClient();
|
|
duiClient.connect(function(intent) {
|
|
var _ref;
|
|
if ((_ref = iwcHandler[intent.action]) != null) {
|
|
_ref.map(function(f) {
|
|
return setTimeout(function() {
|
|
return f(intent);
|
|
}, 0);
|
|
});
|
|
}
|
|
if (userIwcHandler != null) {
|
|
return userIwcHandler(intent);
|
|
}
|
|
});
|
|
duiClient.initOK();
|
|
received_HB = null;
|
|
IwcConnector = (function() {
|
|
function IwcConnector(engine, HB, execution_listener, yatta) {
|
|
var receiveHB, receive_, sendHistoryBuffer, send_;
|
|
this.engine = engine;
|
|
this.HB = HB;
|
|
this.execution_listener = execution_listener;
|
|
this.yatta = yatta;
|
|
this.duiClient = duiClient;
|
|
this.iwcHandler = iwcHandler;
|
|
send_ = (function(_this) {
|
|
return function(o) {
|
|
if (Object.getOwnPropertyNames(_this.initialized).length !== 0) {
|
|
return _this.send(o);
|
|
}
|
|
};
|
|
})(this);
|
|
this.execution_listener.push(send_);
|
|
this.initialized = {};
|
|
receiveHB = (function(_this) {
|
|
return function(json) {
|
|
var him;
|
|
HB = json.extras.HB;
|
|
him = json.extras.user;
|
|
_this.engine.applyOpsCheckDouble(HB);
|
|
return _this.initialized[him] = true;
|
|
};
|
|
})(this);
|
|
iwcHandler["Yatta_push_HB_element"] = [receiveHB];
|
|
this.sendIwcIntent("Yatta_get_HB_element", {});
|
|
receive_ = (function(_this) {
|
|
return function(intent) {
|
|
var o;
|
|
o = intent.extras;
|
|
if (_this.initialized[o.uid.creator] != null) {
|
|
return _this.receive(o);
|
|
}
|
|
};
|
|
})(this);
|
|
this.iwcHandler["Yatta_new_operation"] = [receive_];
|
|
if (received_HB != null) {
|
|
this.engine.applyOpsCheckDouble(received_HB);
|
|
}
|
|
sendHistoryBuffer = (function(_this) {
|
|
return function() {
|
|
var json;
|
|
json = {
|
|
HB: _this.yatta.getHistoryBuffer()._encode(),
|
|
user: _this.yatta.getUserId()
|
|
};
|
|
return _this.sendIwcIntent("Yatta_push_HB_element", json);
|
|
};
|
|
})(this);
|
|
this.iwcHandler["Yatta_get_HB_element"] = [sendHistoryBuffer];
|
|
}
|
|
|
|
IwcConnector.prototype.send = function(o) {
|
|
if (o.uid.creator === this.HB.getUserId() && (typeof o.uid.op_number !== "string")) {
|
|
return this.sendIwcIntent("Yatta_new_operation", o);
|
|
}
|
|
};
|
|
|
|
IwcConnector.prototype.receive = function(o) {
|
|
if (o.uid.creator !== this.HB.getUserId()) {
|
|
return this.engine.applyOp(o);
|
|
}
|
|
};
|
|
|
|
IwcConnector.prototype.sendIwcIntent = function(action_name, content) {
|
|
var intent;
|
|
intent = null;
|
|
if (arguments.length >= 2) {
|
|
action_name = arguments[0], content = arguments[1];
|
|
intent = {
|
|
action: action_name,
|
|
component: "",
|
|
data: "",
|
|
dataType: "",
|
|
flags: ["PUBLISH_GLOBAL"],
|
|
extras: content
|
|
};
|
|
} else {
|
|
intent = arguments[0];
|
|
}
|
|
return this.duiClient.sendIntent(intent);
|
|
};
|
|
|
|
return IwcConnector;
|
|
|
|
})();
|
|
init = function() {
|
|
var proposed_user_id;
|
|
proposed_user_id = Math.floor(Math.random() * 1000000);
|
|
return callback(IwcConnector, proposed_user_id);
|
|
};
|
|
setTimeout(init, 5000);
|
|
return void 0;
|
|
};
|
|
|
|
module.exports = createIwcConnector;
|
|
|
|
if (typeof window !== "undefined" && window !== null) {
|
|
if (window.Y == null) {
|
|
window.Y = {};
|
|
}
|
|
window.Y.createIwcConnector = createIwcConnector;
|
|
}
|
|
|
|
|
|
},{}]},{},[1])
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL2Rtb25hZC9Ecm9wYm94L1lhdHRhIS9ub2RlX21vZHVsZXMvZ3VscC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvaG9tZS9kbW9uYWQvRHJvcGJveC9ZYXR0YSEvbGliL0Nvbm5lY3RvcnMvSXdjQ29ubmVjdG9yLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0tBLElBQUEsa0JBQUE7O0FBQUEsa0JBQUEsR0FBcUIsU0FBQyxRQUFELEVBQVcsT0FBWCxHQUFBO0FBQ25CLE1BQUEsc0VBQUE7QUFBQSxFQUFBLElBQUcsZUFBSDtBQUNFLElBQWEsaUJBQWtCLFFBQTlCLFVBQUQsQ0FERjtHQUFBO0FBQUEsRUFFQSxVQUFBLEdBQWEsRUFGYixDQUFBO0FBQUEsRUFHQSxTQUFBLEdBQWdCLElBQUEsU0FBQSxDQUFBLENBSGhCLENBQUE7QUFBQSxFQUtBLFNBQVMsQ0FBQyxPQUFWLENBQWtCLFNBQUMsTUFBRCxHQUFBO0FBQ2hCLFFBQUEsSUFBQTs7VUFBeUIsQ0FBRSxHQUEzQixDQUErQixTQUFDLENBQUQsR0FBQTtlQUM3QixVQUFBLENBQVcsU0FBQSxHQUFBO2lCQUNULENBQUEsQ0FBRSxNQUFGLEVBRFM7UUFBQSxDQUFYLEVBRUUsQ0FGRixFQUQ2QjtNQUFBLENBQS9CO0tBQUE7QUFJQSxJQUFBLElBQUcsc0JBQUg7YUFDRSxjQUFBLENBQWUsTUFBZixFQURGO0tBTGdCO0VBQUEsQ0FBbEIsQ0FMQSxDQUFBO0FBQUEsRUFhQSxTQUFTLENBQUMsTUFBVixDQUFBLENBYkEsQ0FBQTtBQUFBLEVBZUEsV0FBQSxHQUFjLElBZmQsQ0FBQTtBQUFBLEVBc0JNO0FBUVMsSUFBQSxzQkFBRSxNQUFGLEVBQVcsRUFBWCxFQUFnQixrQkFBaEIsRUFBcUMsS0FBckMsR0FBQTtBQUNYLFVBQUEsNkNBQUE7QUFBQSxNQURZLElBQUMsQ0FBQSxTQUFB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QTs7TUE5QkYsQ0FBQTtBQUFBLEVBNEdBLElBQUEsR0FBTyxTQUFBLEdBQUE7QUFFTCxRQUFBLGdCQUFBO0FBQUEsSUFBQSxnQkFBQSxHQUFtQixJQUFJLENBQUMsS0FBTCxDQUFXLElBQUksQ0FBQyxNQUFMLENBQUEsQ0FBQSxHQUFjLE9BQXpCLENBQW5CLENBQUE7V0FDQSxRQUFBLENBQVMsWUFBVCxFQUF1QixnQkFBdkIsRUFISztFQUFBLENBNUdQLENBQUE7QUFBQSxFQWlIQSxVQUFBLENBQVcsSUFBWCxFQUFpQixJQUFqQixDQWpIQSxDQUFBO1NBbUhBLE9BcEhtQjtBQUFBLENBQXJCLENBQUE7O0FBQUEsTUF1SE0sQ0FBQyxPQUFQLEdBQWlCLGtCQXZIakIsQ0FBQTs7QUF3SEEsSUFBRyxnREFBSDtBQUNFLEVBQUEsSUFBTyxnQkFBUDtBQUNFLElBQUEsTUFBTSxDQUFDLENBQVAsR0FBVyxFQUFYLENBREY7R0FBQTtBQUFBLEVBRUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxrQkFBVCxHQUE4QixrQkFGOUIsQ0FERjtDQXhIQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpfXZhciBmPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChmLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGYsZi5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJcbiNcbiMgQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGlzIGNhbGxlZCB3aGVuIHRoZSBjb25uZWN0b3IgaXMgaW5pdGlhbGl6ZWQuXG4jIEBwYXJhbSB7U3RyaW5nfSBpbml0aWFsX3VzZXJfaWQgT3B0aW9uYWwuIFlvdSBjYW4gc2V0IHlvdSBvd24gdXNlcl9pZCAoc2luY2UgdGhlIGlkcyBvZiBkdWljbGllbnQgYXJlIG5vdCBhbHdheXMgdW5pcXVlKVxuI1xuY3JlYXRlSXdjQ29ubmVjdG9yID0gKGNhbGxiYWNrLCBvcHRpb25zKS0+XG4gIGlmIG9wdGlvbnM/XG4gICAge2l3Y0hhbmRsZXI6IHVzZXJJd2NIYW5kbGVyfSA9IG9wdGlvbnNcbiAgaXdjSGFuZGxlciA9IHt9XG4gIGR1aUNsaWVudCA9IG5ldyBEVUlDbGllbnQoKVxuICAjQGR1aUNsaWVudCA9IG5ldyBpd2MuQ2xpZW50KClcbiAgZHVpQ2xpZW50LmNvbm5lY3QgKGludGVudCktPlxuICAgIGl3Y0hhbmRsZXJbaW50ZW50LmFjdGlvbl0/Lm1hcCAoZiktPlxuICAgICAgc2V0VGltZW91dCAoKS0+XG4gICAgICAgIGYgaW50ZW50XG4gICAgICAsIDBcbiAgICBpZiB1c2VySXdjSGFuZGxlcj9cbiAgICAgIHVzZXJJd2NIYW5kbGVyIGludGVudFxuXG4gIGR1aUNsaWVudC5pbml0T0soKVxuXG4gIHJlY2VpdmVkX0hCID0gbnVsbFxuXG4gICNcbiAgIyBUaGUgSXdjIENvbm5lY3RvciBhZGRzIHN1cHBvcnQgZm9yIHRoZSBJbnRlci1XaWRnZXQtQ29tbXVuaWNhdGlvbiBwcm90b2NvbCB0aGF0IGlzIHVzZWQgaW4gdGhlIFJvbGUtU0RLLlxuICAjIEBzZWUgaHR0cDovL2RiaXMucnd0aC1hYWNoZW4uZGUvY21zL3Byb2plY3RzL3RoZS14bXBwLWV4cGVyaWVuY2UjaW50ZXJ3aWRnZXQtY29tbXVuaWNhdGlvblxuICAjIEBzZWUgaHR0cDovL2RiaXMucnd0aC1hYWNoZW4uZGUvY21zL3Byb2plY3RzL1JPTEVcbiAgI1xuICBjbGFzcyBJd2NDb25uZWN0b3JcblxuICAgICNcbiAgICAjIEBwYXJhbSB7RW5naW5lfSBlbmdpbmUgVGhlIHRyYW5zZm9ybWF0aW9uIGVuZ2luZVxuICAgICMgQHBhcmFtIHtIaXN0b3J5QnVmZmVyfSBIQlxuICAgICMgQHBhcmFtIHtBcnJheTxGdW5jdGlvbj59IGV4ZWN1dGlvbl9saXN0ZW5lciBZb3UgbXVzdCBlbnN1cmUgdGhhdCB3aGVuZXZlciBhbiBvcGVyYXRpb24gaXMgZXhlY3V0ZWQsIGV2ZXJ5IGZ1bmN0aW9uIGluIHRoaXMgQXJyYXkgaXMgY2FsbGVkLlxuICAgICMgQHBhcmFtIHtZYXR0YX0geWF0dGEgVGhlIFlhdHRhIGZyYW1ld29yay5cbiAgICAjXG4gICAgY29uc3RydWN0b3I6IChAZW5naW5lLCBASEIsIEBleGVjdXRpb25fbGlzdGVuZXIsIEB5YXR0YSktPlxuICAgICAgQGR1aUNsaWVudCA9IGR1aUNsaWVudFxuICAgICAgQGl3Y0hhbmRsZXIgPSBpd2NIYW5kbGVyXG5cbiAgICAgIHNlbmRfID0gKG8pPT5cbiAgICAgICAgaWYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQGluaXRpYWxpemVkKS5sZW5ndGggaXNudCAwXG4gICAgICAgICAgQHNlbmQgb1xuICAgICAgQGV4ZWN1dGlvbl9saXN0ZW5lci5wdXNoIHNlbmRfXG5cbiAgICAgIEBpbml0aWFsaXplZCA9IHt9XG4gICAgICByZWNlaXZlSEIgPSAoanNvbik9PlxuICAgICAgICBIQiA9IGpzb24uZXh0cmFzLkhCXG4gICAgICAgIGhpbSA9IGpzb24uZXh0cmFzLnVzZXJcbiAgICAgICAgdGhpcy5lbmdpbmUuYXBwbHlPcHNDaGVja0RvdWJsZSBIQlxuICAgICAgICBAaW5pdGlhbGl6ZWRbaGltXSA9IHRydWVcbiAgICAgIGl3Y0hhbmRsZXJbXCJZYXR0YV9wdXNoX0hCX2VsZW1lbnRcIl0gPSBbcmVjZWl2ZUhCXVxuXG4gICAgICBAc2VuZEl3Y0ludGVudCBcIllhdHRhX2dldF9IQl9lbGVtZW50XCIsIHt9XG5cbiAgICAgIHJlY2VpdmVfID0gKGludGVudCk9PlxuICAgICAgICBvID0gaW50ZW50LmV4dHJhc1xuICAgICAgICBpZiBAaW5pdGlhbGl6ZWRbby51aWQuY3JlYXRvcl0/ICMgaW5pdGlhbGl6ZSBmaXJzdFxuICAgICAgICAgIEByZWNlaXZlIG9cblxuICAgICAgQGl3Y0hhbmRsZXJbXCJZYXR0YV9uZXdfb3BlcmF0aW9uXCJdID0gW3JlY2VpdmVfXVxuXG4gICAgICBpZiByZWNlaXZlZF9IQj9cbiAgICAgICAgQGVuZ2luZS5hcHBseU9wc0NoZWNrRG91YmxlIHJlY2VpdmVkX0hCXG5cbiAgICAgIHNlbmRIaXN0b3J5QnVmZmVyID0gKCk9PlxuICAgICAgICBqc29uID1cbiAgICAgICAgICBIQiA6IEB5YXR0YS5nZXRIaXN0b3J5QnVmZmVyKCkuX2VuY29kZSgpXG4gICAgICAgICAgdXNlciA6IEB5YXR0YS5nZXRVc2VySWQoKVxuICAgICAgICBAc2VuZEl3Y0ludGVudCBcIllhdHRhX3B1c2hfSEJfZWxlbWVudFwiLCBqc29uXG4gICAgICBAaXdjSGFuZGxlcltcIllhdHRhX2dldF9IQl9lbGVtZW50XCJdID0gW3NlbmRIaXN0b3J5QnVmZmVyXVxuXG4gICAgI1xuICAgICMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2ZXIgYW4gb3BlcmF0aW9uIHdhcyBleGVjdXRlZC5cbiAgICAjIEBwYXJhbSB7T3BlcmF0aW9ufSBvIFRoZSBvcGVyYXRpb24gdGhhdCB3YXMgZXhlY3V0ZWQuXG4gICAgI1xuICAgIHNlbmQ6IChvKS0+XG4gICAgICBpZiBvLnVpZC5jcmVhdG9yIGlzIEBIQi5nZXRVc2VySWQoKSBhbmQgKHR5cGVvZiBvLnVpZC5vcF9udW1iZXIgaXNudCBcInN0cmluZ1wiKVxuICAgICAgICBAc2VuZEl3Y0ludGVudCBcIllhdHRhX25ld19vcGVyYXRpb25cIiwgb1xuXG4gICAgI1xuICAgICMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2ZXIgYW4gb3BlcmF0aW9uIHdhcyByZWNlaXZlZCBmcm9tIGFub3RoZXIgcGVlci5cbiAgICAjIEBwYXJhbSB7T3BlcmF0aW9ufSBvIFRoZSBvcGVyYXRpb24gdGhhdCB3YXMgcmVjZWl2ZWQuXG4gICAgI1xuICAgIHJlY2VpdmU6IChvKS0+XG4gICAgICBpZiBvLnVpZC5jcmVhdG9yIGlzbnQgQEhCLmdldFVzZXJJZCgpXG4gICAgICAgIEBlbmdpbmUuYXBwbHlPcCBvXG5cbiAgICAjXG4gICAgIyBIZWxwZXIgZm9yIHNlbmRpbmcgaXdjIGludGVudHMuXG4gICAgIyBAb3ZlcmxvYWQgc2VuZEl3Y0ludGVudCBpbnRlbnRcbiAgICAjICAgQHBhcmFtIHtPYmplY3R9IGludGVudCBUaGUgaW50ZW50IG9iamVjdC5cbiAgICAjIEBvdmVybG9hZCBzZW5kSXdjSW50ZW50IGFjdGlvbl9uYW1lLCBjb250ZW50XG4gICAgIyAgIEBwYXJhbSB7U3RyaW5nfSBhY3Rpb25fbmFtZSBUaGUgbmFtZSBvZiB0aGUgYWN0aW9uIHRoYXQgaXMgZ29pbmcgdG8gYmUgc2VuZC5cbiAgICAjICAgQHBhcmFtIHtTdHJpbmd9IGNvbnRlbnQgVGhlIGNvbnRlbnQgdGhhdCBpcyBhdHRlY2hlZCB0byB0aGUgaW50ZW50LlxuICAgICNcbiAgICBzZW5kSXdjSW50ZW50OiAoYWN0aW9uX25hbWUsIGNvbnRlbnQpLT5cbiAgICAgIGludGVudCA9IG51bGxcbiAgICAgIGlmIGFyZ3VtZW50cy5sZW5ndGggPj0gMlxuICAgICAgICBbYWN0aW9uX25hbWUsIGNvbnRlbnRdID0gYXJndW1lbnRzXG4gICAgICAgIGludGVudCA9XG4gICAgICAgICAgYWN0aW9uOiBhY3Rpb25fbmFtZVxuICAgICAgICAgIGNvbXBvbmVudDogXCJcIlxuICAgICAgICAgIGRhdGE6IFwiXCJcbiAgICAgICAgICBkYXRhVHlwZTogXCJcIlxuICAgICAgICAgIGZsYWdzOiBbXCJQVUJMSVNIX0dMT0JBTFwiXVxuICAgICAgICAgIGV4dHJhczogY29udGVudFxuICAgICAgZWxzZVxuICAgICAgICBpbnRlbnQgPSBhcmd1bWVudHNbMF1cblxuICAgICAgQGR1aUNsaWVudC5zZW5kSW50ZW50KGludGVudClcblxuXG5cbiAgaW5pdCA9ICgpLT5cbiAgICAjIHByb3Bvc2VkX3VzZXJfaWQgPSBkdWlDbGllbnQuZ2V0SXdjQ2xpZW50KCkuX2NvbXBvbmVudE5hbWUgI1RPRE86IFRoaXMgaXMgc3R1cGlkISB3aHkgY2FuJ3QgaSB1c2UgdGhpcz9cbiAgICBwcm9wb3NlZF91c2VyX2lkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDAwMDApXG4gICAgY2FsbGJhY2sgSXdjQ29ubmVjdG9yLCBwcm9wb3NlZF91c2VyX2lkXG5cbiAgc2V0VGltZW91dCBpbml0LCA1MDAwXG5cbiAgdW5kZWZpbmVkXG5cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVJd2NDb25uZWN0b3JcbmlmIHdpbmRvdz9cbiAgaWYgbm90IHdpbmRvdy5ZP1xuICAgIHdpbmRvdy5ZID0ge31cbiAgd2luZG93LlkuY3JlYXRlSXdjQ29ubmVjdG9yID0gY3JlYXRlSXdjQ29ubmVjdG9yXG5cbiJdfQ==
|