aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build-server.hxml1
-rw-r--r--build/server.js1958
-rw-r--r--src/server/Main.hx10
3 files changed, 1952 insertions, 17 deletions
diff --git a/build-server.hxml b/build-server.hxml
index 49def02..1cd9607 100644
--- a/build-server.hxml
+++ b/build-server.hxml
@@ -1,5 +1,6 @@
-lib hxnodejs
-lib hxnodejs-ws
+-lib json2object
# Client libs for completion
-lib youtubeIFramePlayer:git:https://github.com/okawa-h/youtubeIFramePlayer-externs.git
-lib utest
diff --git a/build/server.js b/build/server.js
index 250581d..3be172e 100644
--- a/build/server.js
+++ b/build/server.js
@@ -276,6 +276,1535 @@ HxOverrides.iter = function(a) {
return this.arr[this.cur++];
}};
};
+var json2object_reader_BaseParser = function(errors,putils,errorType) {
+ this.errors = errors;
+ this.putils = putils;
+ this.errorType = errorType;
+};
+json2object_reader_BaseParser.__name__ = true;
+json2object_reader_BaseParser.prototype = {
+ fromJson: function(jsonString,filename) {
+ if(filename == null) {
+ filename = "";
+ }
+ this.putils = new json2object_PositionUtils(jsonString);
+ this.errors = [];
+ try {
+ this.loadJson(new hxjsonast_Parser(jsonString,filename).parseRec());
+ } catch( e ) {
+ var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
+ if(((e1) instanceof hxjsonast_Error)) {
+ var e2 = e1;
+ this.errors.push(json2object_Error.ParserError(e2.message,this.putils.convertPosition(e2.pos)));
+ } else {
+ throw e;
+ }
+ }
+ return this.value;
+ }
+ ,loadJson: function(json,variable) {
+ if(variable == null) {
+ variable = "";
+ }
+ var pos = this.putils.convertPosition(json.pos);
+ var _g = json.value;
+ switch(_g._hx_index) {
+ case 0:
+ this.loadJsonString(_g.s,pos,variable);
+ break;
+ case 1:
+ this.loadJsonNumber(_g.s,pos,variable);
+ break;
+ case 2:
+ this.loadJsonObject(_g.fields,pos,variable);
+ break;
+ case 3:
+ this.loadJsonArray(_g.values,pos,variable);
+ break;
+ case 4:
+ this.loadJsonBool(_g.b,pos,variable);
+ break;
+ case 5:
+ this.loadJsonNull(pos,variable);
+ break;
+ }
+ return this.value;
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.onIncorrectType(pos,variable);
+ }
+ ,loadJsonString: function(s,pos,variable) {
+ this.onIncorrectType(pos,variable);
+ }
+ ,loadString: function(s,pos,variable,validValues,defaultValue) {
+ if(validValues.indexOf(s) != -1) {
+ return s;
+ }
+ this.onIncorrectType(pos,variable);
+ return defaultValue;
+ }
+ ,loadJsonNumber: function(f,pos,variable) {
+ this.onIncorrectType(pos,variable);
+ }
+ ,loadJsonInt: function(f,pos,variable,value) {
+ if(Std.parseInt(f) != null && Std.parseInt(f) == parseFloat(f)) {
+ return Std.parseInt(f);
+ }
+ this.onIncorrectType(pos,variable);
+ return value;
+ }
+ ,loadJsonFloat: function(f,pos,variable,value) {
+ if(Std.parseInt(f) != null) {
+ return parseFloat(f);
+ }
+ this.onIncorrectType(pos,variable);
+ return value;
+ }
+ ,loadJsonBool: function(b,pos,variable) {
+ this.onIncorrectType(pos,variable);
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.onIncorrectType(pos,variable);
+ }
+ ,loadJsonArrayValue: function(a,loadJsonFn,variable) {
+ var _g = [];
+ var _g1 = 0;
+ while(_g1 < a.length) {
+ var j = a[_g1++];
+ var tmp;
+ try {
+ tmp = loadJsonFn(j,variable);
+ } catch( _ ) {
+ if(typeof(((_) instanceof js__$Boot_HaxeError) ? _.val : _) == "string") {
+ continue;
+ } else {
+ throw _;
+ }
+ }
+ _g.push(tmp);
+ }
+ return _g;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ this.onIncorrectType(pos,variable);
+ }
+ ,loadObjectField: function(loadJsonFn,field,name,assigned,defaultValue) {
+ try {
+ var ret = loadJsonFn(field.value,field.name);
+ this.mapSet(assigned,name,true);
+ return ret;
+ } catch( _ ) {
+ }
+ return defaultValue;
+ }
+ ,objectSetupAssign: function(assigned,keys,values) {
+ var _g = 0;
+ var _g1 = keys.length;
+ while(_g < _g1) {
+ var i = _g++;
+ this.mapSet(assigned,keys[i],values[i]);
+ }
+ }
+ ,objectErrors: function(assigned,pos) {
+ var lastPos = this.putils.convertPosition(new hxjsonast_Position(pos.file,pos.max - 1,pos.max - 1));
+ var s = assigned.keys();
+ while(s.hasNext()) {
+ var s1 = s.next();
+ if(!(__map_reserved[s1] != null ? assigned.getReserved(s1) : assigned.h[s1])) {
+ this.errors.push(json2object_Error.UninitializedVariable(s1,lastPos));
+ }
+ }
+ }
+ ,onIncorrectType: function(pos,variable) {
+ this.parsingThrow();
+ }
+ ,parsingThrow: function() {
+ if(this.errorType != 0) {
+ throw new js__$Boot_HaxeError("json2object: parsing throw");
+ }
+ }
+ ,objectThrow: function(pos,variable) {
+ if(this.errorType == 2) {
+ throw new js__$Boot_HaxeError("json2object: parsing throw");
+ } else if(this.errorType == 1) {
+ this.errors.push(json2object_Error.UninitializedVariable(variable,pos));
+ }
+ }
+ ,mapSet: function(map,key,value) {
+ if(__map_reserved[key] != null) {
+ map.setReserved(key,value);
+ } else {
+ map.h[key] = value;
+ }
+ }
+};
+var JsonParser_$1 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$1.__name__ = true;
+JsonParser_$1.__super__ = json2object_reader_BaseParser;
+JsonParser_$1.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ ?updatePlaylist : Null<{ videoList : Array<VideoItem> }>, ?updateClients : Null<{ clients : Array<ClientData> }>, type : WsEventType, ?togglePlaylistLock : Null<{ isOpen : Bool }>, ?toggleItemType : Null<{ pos : Int }>, ?skipVideo : Null<{ url : String }>, ?setTime : Null<{ time : Float }>, ?setRate : Null<{ rate : Float }>, ?setNextItem : Null<{ pos : Int }>, ?setLeader : Null<{ clientName : String }>, ?serverMessage : Null<{ textId : String }>, ?rewind : Null<{ time : Float }>, ?removeVideo : Null<{ url : String }>, ?playItem : Null<{ pos : Int }>, ?play : Null<{ time : Float }>, ?pause : Null<{ time : Float }>, ?message : Null<{ text : String, clientName : String }>, ?logout : Null<{ oldClientName : String, clients : Array<ClientData>, clientName : String }>, ?login : Null<{ ?passHash : Null<String>, ?isUnknownClient : Null<Bool>, ?clients : Null<Array<ClientData>>, clientName : String }>, ?getTime : Null<{ time : Float, ?rate : Null<Float>, ?paused : Null<Bool> }>, ?connected : Null<{ videoList : Array<VideoItem>, itemPos : Int, isUnknownClient : Bool, isPlaylistOpen : Bool, history : Array<Message>, globalIp : String, config : Config, clients : Array<ClientData>, clientName : String }>, ?addVideo : Null<{ item : VideoItem, atEnd : Bool }> }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["addVideo","connected","getTime","login","logout","message","pause","play","playItem","removeVideo","rewind","serverMessage","setLeader","setNextItem","setRate","setTime","skipVideo","toggleItemType","togglePlaylistLock","type","updateClients","updatePlaylist"],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "addVideo":
+ this.value.addVideo = this.loadObjectField(($_=new JsonParser_$3(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"addVideo",assigned,this.value.addVideo);
+ break;
+ case "connected":
+ this.value.connected = this.loadObjectField(($_=new JsonParser_$5(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"connected",assigned,this.value.connected);
+ break;
+ case "getTime":
+ this.value.getTime = this.loadObjectField(($_=new JsonParser_$7(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"getTime",assigned,this.value.getTime);
+ break;
+ case "login":
+ this.value.login = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"login",assigned,this.value.login);
+ break;
+ case "logout":
+ this.value.logout = this.loadObjectField(($_=new JsonParser_$11(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"logout",assigned,this.value.logout);
+ break;
+ case "message":
+ this.value.message = this.loadObjectField(($_=new JsonParser_$13(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"message",assigned,this.value.message);
+ break;
+ case "pause":
+ this.value.pause = this.loadObjectField(($_=new JsonParser_$15(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"pause",assigned,this.value.pause);
+ break;
+ case "play":
+ this.value.play = this.loadObjectField(($_=new JsonParser_$15(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"play",assigned,this.value.play);
+ break;
+ case "playItem":
+ this.value.playItem = this.loadObjectField(($_=new JsonParser_$17(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"playItem",assigned,this.value.playItem);
+ break;
+ case "removeVideo":
+ this.value.removeVideo = this.loadObjectField(($_=new JsonParser_$19(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"removeVideo",assigned,this.value.removeVideo);
+ break;
+ case "rewind":
+ this.value.rewind = this.loadObjectField(($_=new JsonParser_$15(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"rewind",assigned,this.value.rewind);
+ break;
+ case "serverMessage":
+ this.value.serverMessage = this.loadObjectField(($_=new JsonParser_$21(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"serverMessage",assigned,this.value.serverMessage);
+ break;
+ case "setLeader":
+ this.value.setLeader = this.loadObjectField(($_=new JsonParser_$23(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"setLeader",assigned,this.value.setLeader);
+ break;
+ case "setNextItem":
+ this.value.setNextItem = this.loadObjectField(($_=new JsonParser_$17(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"setNextItem",assigned,this.value.setNextItem);
+ break;
+ case "setRate":
+ this.value.setRate = this.loadObjectField(($_=new JsonParser_$25(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"setRate",assigned,this.value.setRate);
+ break;
+ case "setTime":
+ this.value.setTime = this.loadObjectField(($_=new JsonParser_$15(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"setTime",assigned,this.value.setTime);
+ break;
+ case "skipVideo":
+ this.value.skipVideo = this.loadObjectField(($_=new JsonParser_$19(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"skipVideo",assigned,this.value.skipVideo);
+ break;
+ case "toggleItemType":
+ this.value.toggleItemType = this.loadObjectField(($_=new JsonParser_$17(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"toggleItemType",assigned,this.value.toggleItemType);
+ break;
+ case "togglePlaylistLock":
+ this.value.togglePlaylistLock = this.loadObjectField(($_=new JsonParser_$27(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"togglePlaylistLock",assigned,this.value.togglePlaylistLock);
+ break;
+ case "type":
+ this.value.type = this.loadObjectField(($_=new JsonParser_$28(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"type",assigned,this.value.type);
+ break;
+ case "updateClients":
+ this.value.updateClients = this.loadObjectField(($_=new JsonParser_$30(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"updateClients",assigned,this.value.updateClients);
+ break;
+ case "updatePlaylist":
+ this.value.updatePlaylist = this.loadObjectField(($_=new JsonParser_$32(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"updatePlaylist",assigned,this.value.updatePlaylist);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { addVideo : new JsonParser_$3([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), connected : new JsonParser_$5([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), getTime : new JsonParser_$7([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), login : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), logout : new JsonParser_$11([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), message : new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), pause : new JsonParser_$15([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), play : new JsonParser_$15([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), playItem : new JsonParser_$17([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), removeVideo : new JsonParser_$19([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), rewind : new JsonParser_$15([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), serverMessage : new JsonParser_$21([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), setLeader : new JsonParser_$23([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), setNextItem : new JsonParser_$17([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), setRate : new JsonParser_$25([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), setTime : new JsonParser_$15([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), skipVideo : new JsonParser_$19([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), toggleItemType : new JsonParser_$17([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), togglePlaylistLock : new JsonParser_$27([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), type : new JsonParser_$28([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), updateClients : new JsonParser_$30([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), updatePlaylist : new JsonParser_$32([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$11 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$11.__name__ = true;
+JsonParser_$11.__super__ = json2object_reader_BaseParser;
+JsonParser_$11.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ oldClientName : String, clients : Array<ClientData>, clientName : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["clientName","clients","oldClientName"],[false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "clientName":
+ this.value.clientName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clientName",assigned,this.value.clientName);
+ break;
+ case "clients":
+ this.value.clients = this.loadObjectField(($_=new JsonParser_$39(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clients",assigned,this.value.clients);
+ break;
+ case "oldClientName":
+ this.value.oldClientName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"oldClientName",assigned,this.value.oldClientName);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { clientName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), clients : new JsonParser_$39([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), oldClientName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$13 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$13.__name__ = true;
+JsonParser_$13.__super__ = json2object_reader_BaseParser;
+JsonParser_$13.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ text : String, clientName : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["clientName","text"],[false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "clientName":
+ this.value.clientName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clientName",assigned,this.value.clientName);
+ break;
+ case "text":
+ this.value.text = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"text",assigned,this.value.text);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { clientName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), text : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$15 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$15.__name__ = true;
+JsonParser_$15.__super__ = json2object_reader_BaseParser;
+JsonParser_$15.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ time : Float }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["time"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "time") {
+ this.value.time = this.loadObjectField(($_=new JsonParser_$37(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"time",assigned,this.value.time);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { time : new JsonParser_$37([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$17 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$17.__name__ = true;
+JsonParser_$17.__super__ = json2object_reader_BaseParser;
+JsonParser_$17.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ pos : Int }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["pos"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "pos") {
+ this.value.pos = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"pos",assigned,this.value.pos);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { pos : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$19 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$19.__name__ = true;
+JsonParser_$19.__super__ = json2object_reader_BaseParser;
+JsonParser_$19.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ url : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["url"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "url") {
+ this.value.url = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"url",assigned,this.value.url);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { url : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$21 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$21.__name__ = true;
+JsonParser_$21.__super__ = json2object_reader_BaseParser;
+JsonParser_$21.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ textId : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["textId"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "textId") {
+ this.value.textId = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"textId",assigned,this.value.textId);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { textId : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$23 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$23.__name__ = true;
+JsonParser_$23.__super__ = json2object_reader_BaseParser;
+JsonParser_$23.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ clientName : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["clientName"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "clientName") {
+ this.value.clientName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clientName",assigned,this.value.clientName);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { clientName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$25 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$25.__name__ = true;
+JsonParser_$25.__super__ = json2object_reader_BaseParser;
+JsonParser_$25.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ rate : Float }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["rate"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "rate") {
+ this.value.rate = this.loadObjectField(($_=new JsonParser_$37(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"rate",assigned,this.value.rate);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { rate : new JsonParser_$37([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$27 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$27.__name__ = true;
+JsonParser_$27.__super__ = json2object_reader_BaseParser;
+JsonParser_$27.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ isOpen : Bool }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["isOpen"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "isOpen") {
+ this.value.isOpen = this.loadObjectField(($_=new JsonParser_$38(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"isOpen",assigned,this.value.isOpen);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { isOpen : new JsonParser_$38([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$28 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$28.__name__ = true;
+JsonParser_$28.__super__ = json2object_reader_BaseParser;
+JsonParser_$28.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.value = "Connected";
+ this.errors.push(json2object_Error.IncorrectType(variable,"WsEventType",pos));
+ this.objectThrow(pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonString: function(s,pos,variable) {
+ this.value = this.loadString(s,pos,variable,["Connected","Login","PasswordRequest","LoginError","Logout","Message","ServerMessage","UpdateClients","AddVideo","RemoveVideo","SkipVideo","VideoLoaded","Pause","Play","GetTime","SetTime","SetRate","Rewind","SetLeader","PlayItem","SetNextItem","ToggleItemType","ClearChat","ClearPlaylist","ShufflePlaylist","UpdatePlaylist","TogglePlaylistLock"],"Connected");
+ }
+});
+var JsonParser_$3 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$3.__name__ = true;
+JsonParser_$3.__super__ = json2object_reader_BaseParser;
+JsonParser_$3.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ item : VideoItem, atEnd : Bool }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["atEnd","item"],[false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "atEnd":
+ this.value.atEnd = this.loadObjectField(($_=new JsonParser_$38(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"atEnd",assigned,this.value.atEnd);
+ break;
+ case "item":
+ this.value.item = this.loadObjectField(($_=new JsonParser_$35(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"item",assigned,this.value.item);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { atEnd : new JsonParser_$38([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), item : new JsonParser_$35([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$30 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$30.__name__ = true;
+JsonParser_$30.__super__ = json2object_reader_BaseParser;
+JsonParser_$30.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ clients : Array<ClientData> }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["clients"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "clients") {
+ this.value.clients = this.loadObjectField(($_=new JsonParser_$39(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clients",assigned,this.value.clients);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { clients : new JsonParser_$39([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$32 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$32.__name__ = true;
+JsonParser_$32.__super__ = json2object_reader_BaseParser;
+JsonParser_$32.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ videoList : Array<VideoItem> }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["videoList"],[false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ if(field.name == "videoList") {
+ this.value.videoList = this.loadObjectField(($_=new JsonParser_$33(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"videoList",assigned,this.value.videoList);
+ } else {
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { videoList : new JsonParser_$33([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$33 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$33.__name__ = true;
+JsonParser_$33.__super__ = json2object_reader_BaseParser;
+JsonParser_$33.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<VideoItem>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$35(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$35 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$35.__name__ = true;
+JsonParser_$35.__super__ = json2object_reader_BaseParser;
+JsonParser_$35.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ url : String, title : String, isTemp : Bool, isIframe : Bool, duration : Float, author : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["author","duration","isIframe","isTemp","title","url"],[false,false,false,false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "author":
+ this.value.author = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"author",assigned,this.value.author);
+ break;
+ case "duration":
+ this.value.duration = this.loadObjectField(($_=new JsonParser_$37(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"duration",assigned,this.value.duration);
+ break;
+ case "isIframe":
+ this.value.isIframe = this.loadObjectField(($_=new JsonParser_$38(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"isIframe",assigned,this.value.isIframe);
+ break;
+ case "isTemp":
+ this.value.isTemp = this.loadObjectField(($_=new JsonParser_$38(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"isTemp",assigned,this.value.isTemp);
+ break;
+ case "title":
+ this.value.title = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"title",assigned,this.value.title);
+ break;
+ case "url":
+ this.value.url = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"url",assigned,this.value.url);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { author : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), duration : new JsonParser_$37([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isIframe : new JsonParser_$38([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isTemp : new JsonParser_$38([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), title : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), url : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$36 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$36.__name__ = true;
+JsonParser_$36.__super__ = json2object_reader_BaseParser;
+JsonParser_$36.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"String",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonString: function(s,pos,variable) {
+ this.value = s;
+ }
+});
+var JsonParser_$37 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+ this.value = 0;
+};
+JsonParser_$37.__name__ = true;
+JsonParser_$37.__super__ = json2object_reader_BaseParser;
+JsonParser_$37.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Float",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNumber: function(f,pos,variable) {
+ this.value = this.loadJsonFloat(f,pos,variable,this.value);
+ }
+});
+var JsonParser_$38 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+ this.value = false;
+};
+JsonParser_$38.__name__ = true;
+JsonParser_$38.__super__ = json2object_reader_BaseParser;
+JsonParser_$38.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Bool",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonBool: function(b,pos,variable) {
+ this.value = b;
+ }
+});
+var JsonParser_$39 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$39.__name__ = true;
+JsonParser_$39.__super__ = json2object_reader_BaseParser;
+JsonParser_$39.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<ClientData>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$41(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$41 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$41.__name__ = true;
+JsonParser_$41.__super__ = json2object_reader_BaseParser;
+JsonParser_$41.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ name : String, group : Int }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["group","name"],[false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "group":
+ this.value.group = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"group",assigned,this.value.group);
+ break;
+ case "name":
+ this.value.name = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { group : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), name : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$42 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+ this.value = 0;
+};
+JsonParser_$42.__name__ = true;
+JsonParser_$42.__super__ = json2object_reader_BaseParser;
+JsonParser_$42.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Int",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNumber: function(f,pos,variable) {
+ this.value = this.loadJsonInt(f,pos,variable,this.value);
+ }
+});
+var JsonParser_$44 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$44.__name__ = true;
+JsonParser_$44.__super__ = json2object_reader_BaseParser;
+JsonParser_$44.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<ClientData>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$41(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$46 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$46.__name__ = true;
+JsonParser_$46.__super__ = json2object_reader_BaseParser;
+JsonParser_$46.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Bool",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonBool: function(b,pos,variable) {
+ this.value = b;
+ }
+});
+var JsonParser_$48 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$48.__name__ = true;
+JsonParser_$48.__super__ = json2object_reader_BaseParser;
+JsonParser_$48.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"String",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonString: function(s,pos,variable) {
+ this.value = s;
+ }
+});
+var JsonParser_$5 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$5.__name__ = true;
+JsonParser_$5.__super__ = json2object_reader_BaseParser;
+JsonParser_$5.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ videoList : Array<VideoItem>, itemPos : Int, isUnknownClient : Bool, isPlaylistOpen : Bool, history : Array<Message>, globalIp : String, config : Config, clients : Array<ClientData>, clientName : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["clientName","clients","config","globalIp","history","isPlaylistOpen","isUnknownClient","itemPos","videoList"],[false,false,false,false,false,false,false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "clientName":
+ this.value.clientName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clientName",assigned,this.value.clientName);
+ break;
+ case "clients":
+ this.value.clients = this.loadObjectField(($_=new JsonParser_$39(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clients",assigned,this.value.clients);
+ break;
+ case "config":
+ this.value.config = this.loadObjectField(($_=new JsonParser_$52(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"config",assigned,this.value.config);
+ break;
+ case "globalIp":
+ this.value.globalIp = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"globalIp",assigned,this.value.globalIp);
+ break;
+ case "history":
+ this.value.history = this.loadObjectField(($_=new JsonParser_$53(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"history",assigned,this.value.history);
+ break;
+ case "isPlaylistOpen":
+ this.value.isPlaylistOpen = this.loadObjectField(($_=new JsonParser_$38(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"isPlaylistOpen",assigned,this.value.isPlaylistOpen);
+ break;
+ case "isUnknownClient":
+ this.value.isUnknownClient = this.loadObjectField(($_=new JsonParser_$38(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"isUnknownClient",assigned,this.value.isUnknownClient);
+ break;
+ case "itemPos":
+ this.value.itemPos = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"itemPos",assigned,this.value.itemPos);
+ break;
+ case "videoList":
+ this.value.videoList = this.loadObjectField(($_=new JsonParser_$33(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"videoList",assigned,this.value.videoList);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { clientName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), clients : new JsonParser_$39([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), config : new JsonParser_$52([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), globalIp : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), history : new JsonParser_$53([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isPlaylistOpen : new JsonParser_$38([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isUnknownClient : new JsonParser_$38([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), itemPos : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), videoList : new JsonParser_$33([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$50 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$50.__name__ = true;
+JsonParser_$50.__super__ = json2object_reader_BaseParser;
+JsonParser_$50.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Float",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonNumber: function(f,pos,variable) {
+ this.value = this.loadJsonFloat(f,pos,variable,this.value);
+ }
+});
+var JsonParser_$52 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$52.__name__ = true;
+JsonParser_$52.__super__ = json2object_reader_BaseParser;
+JsonParser_$52.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ youtubeApiKey : String, userVideoLimit : Int, totalVideoLimit : Int, templateUrl : String, serverChatHistory : Int, ?salt : Null<String>, port : Int, permissions : { user : Array<Permission>, leader : Array<Permission>, guest : Array<Permission>, admin : Array<Permission> }, maxMessageLength : Int, maxLoginLength : Int, filters : Array<Filter>, emotes : Array<Emote>, channelName : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["channelName","emotes","filters","maxLoginLength","maxMessageLength","permissions","port","salt","serverChatHistory","templateUrl","totalVideoLimit","userVideoLimit","youtubeApiKey"],[false,false,false,false,false,false,false,true,false,false,false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "channelName":
+ this.value.channelName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"channelName",assigned,this.value.channelName);
+ break;
+ case "emotes":
+ this.value.emotes = this.loadObjectField(($_=new JsonParser_$56(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"emotes",assigned,this.value.emotes);
+ break;
+ case "filters":
+ this.value.filters = this.loadObjectField(($_=new JsonParser_$57(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"filters",assigned,this.value.filters);
+ break;
+ case "maxLoginLength":
+ this.value.maxLoginLength = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"maxLoginLength",assigned,this.value.maxLoginLength);
+ break;
+ case "maxMessageLength":
+ this.value.maxMessageLength = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"maxMessageLength",assigned,this.value.maxMessageLength);
+ break;
+ case "permissions":
+ this.value.permissions = this.loadObjectField(($_=new JsonParser_$58(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"permissions",assigned,this.value.permissions);
+ break;
+ case "port":
+ this.value.port = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"port",assigned,this.value.port);
+ break;
+ case "salt":
+ this.value.salt = this.loadObjectField(($_=new JsonParser_$48(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"salt",assigned,this.value.salt);
+ break;
+ case "serverChatHistory":
+ this.value.serverChatHistory = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"serverChatHistory",assigned,this.value.serverChatHistory);
+ break;
+ case "templateUrl":
+ this.value.templateUrl = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"templateUrl",assigned,this.value.templateUrl);
+ break;
+ case "totalVideoLimit":
+ this.value.totalVideoLimit = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"totalVideoLimit",assigned,this.value.totalVideoLimit);
+ break;
+ case "userVideoLimit":
+ this.value.userVideoLimit = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"userVideoLimit",assigned,this.value.userVideoLimit);
+ break;
+ case "youtubeApiKey":
+ this.value.youtubeApiKey = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"youtubeApiKey",assigned,this.value.youtubeApiKey);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { channelName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), emotes : new JsonParser_$56([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), filters : new JsonParser_$57([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), maxLoginLength : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), maxMessageLength : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), permissions : new JsonParser_$58([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), port : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), salt : new JsonParser_$48([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), serverChatHistory : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), templateUrl : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), totalVideoLimit : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), userVideoLimit : new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), youtubeApiKey : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$53 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$53.__name__ = true;
+JsonParser_$53.__super__ = json2object_reader_BaseParser;
+JsonParser_$53.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<Message>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$55(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$55 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$55.__name__ = true;
+JsonParser_$55.__super__ = json2object_reader_BaseParser;
+JsonParser_$55.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ time : String, text : String, name : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["name","text","time"],[false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "name":
+ this.value.name = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name);
+ break;
+ case "text":
+ this.value.text = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"text",assigned,this.value.text);
+ break;
+ case "time":
+ this.value.time = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"time",assigned,this.value.time);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { name : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), text : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), time : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$56 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$56.__name__ = true;
+JsonParser_$56.__super__ = json2object_reader_BaseParser;
+JsonParser_$56.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<Emote>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$64(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$57 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$57.__name__ = true;
+JsonParser_$57.__super__ = json2object_reader_BaseParser;
+JsonParser_$57.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<Filter>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$62(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$58 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$58.__name__ = true;
+JsonParser_$58.__super__ = json2object_reader_BaseParser;
+JsonParser_$58.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ user : Array<Permission>, leader : Array<Permission>, guest : Array<Permission>, admin : Array<Permission> }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["admin","guest","leader","user"],[false,false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "admin":
+ this.value.admin = this.loadObjectField(($_=new JsonParser_$59(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"admin",assigned,this.value.admin);
+ break;
+ case "guest":
+ this.value.guest = this.loadObjectField(($_=new JsonParser_$59(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"guest",assigned,this.value.guest);
+ break;
+ case "leader":
+ this.value.leader = this.loadObjectField(($_=new JsonParser_$59(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"leader",assigned,this.value.leader);
+ break;
+ case "user":
+ this.value.user = this.loadObjectField(($_=new JsonParser_$59(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"user",assigned,this.value.user);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { admin : new JsonParser_$59([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), guest : new JsonParser_$59([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), leader : new JsonParser_$59([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), user : new JsonParser_$59([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$59 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$59.__name__ = true;
+JsonParser_$59.__super__ = json2object_reader_BaseParser;
+JsonParser_$59.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"Array<Permission>",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonArray: function(a,pos,variable) {
+ this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$60(this.errors,this.putils,2),$bind($_,$_.loadJson)),variable);
+ }
+});
+var JsonParser_$60 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$60.__name__ = true;
+JsonParser_$60.__super__ = json2object_reader_BaseParser;
+JsonParser_$60.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.value = "guest";
+ this.errors.push(json2object_Error.IncorrectType(variable,"Permission",pos));
+ this.objectThrow(pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonString: function(s,pos,variable) {
+ this.value = this.loadString(s,pos,variable,["guest","user","leader","admin","writeChat","addVideo","removeVideo","requestLeader","rewind","clearChat","setLeader","changeOrder","lockPlaylist"],"guest");
+ }
+});
+var JsonParser_$62 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$62.__name__ = true;
+JsonParser_$62.__super__ = json2object_reader_BaseParser;
+JsonParser_$62.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ replace : String, regex : String, name : String, flags : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["flags","name","regex","replace"],[false,false,false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "flags":
+ this.value.flags = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"flags",assigned,this.value.flags);
+ break;
+ case "name":
+ this.value.name = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name);
+ break;
+ case "regex":
+ this.value.regex = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"regex",assigned,this.value.regex);
+ break;
+ case "replace":
+ this.value.replace = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"replace",assigned,this.value.replace);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { flags : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), name : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), regex : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), replace : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$64 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$64.__name__ = true;
+JsonParser_$64.__super__ = json2object_reader_BaseParser;
+JsonParser_$64.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ name : String, image : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["image","name"],[false,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "image":
+ this.value.image = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"image",assigned,this.value.image);
+ break;
+ case "name":
+ this.value.name = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { image : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), name : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$7 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$7.__name__ = true;
+JsonParser_$7.__super__ = json2object_reader_BaseParser;
+JsonParser_$7.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ time : Float, ?rate : Null<Float>, ?paused : Null<Bool> }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["paused","rate","time"],[true,true,false]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "paused":
+ this.value.paused = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"paused",assigned,this.value.paused);
+ break;
+ case "rate":
+ this.value.rate = this.loadObjectField(($_=new JsonParser_$50(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"rate",assigned,this.value.rate);
+ break;
+ case "time":
+ this.value.time = this.loadObjectField(($_=new JsonParser_$37(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"time",assigned,this.value.time);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { paused : new JsonParser_$46([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), rate : new JsonParser_$50([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), time : new JsonParser_$37([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
+var JsonParser_$9 = function(errors,putils,errorType) {
+ if(errorType == null) {
+ errorType = 0;
+ }
+ json2object_reader_BaseParser.call(this,errors,putils,errorType);
+};
+JsonParser_$9.__name__ = true;
+JsonParser_$9.__super__ = json2object_reader_BaseParser;
+JsonParser_$9.prototype = $extend(json2object_reader_BaseParser.prototype,{
+ onIncorrectType: function(pos,variable) {
+ this.errors.push(json2object_Error.IncorrectType(variable,"{ ?passHash : Null<String>, ?isUnknownClient : Null<Bool>, ?clients : Null<Array<ClientData>>, clientName : String }",pos));
+ json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable);
+ }
+ ,loadJsonNull: function(pos,variable) {
+ this.value = null;
+ }
+ ,loadJsonObject: function(o,pos,variable) {
+ var assigned = new haxe_ds_StringMap();
+ this.objectSetupAssign(assigned,["clientName","clients","isUnknownClient","passHash"],[false,true,true,true]);
+ this.value = this.getAuto();
+ var _g = 0;
+ while(_g < o.length) {
+ var field = o[_g];
+ ++_g;
+ switch(field.name) {
+ case "clientName":
+ this.value.clientName = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clientName",assigned,this.value.clientName);
+ break;
+ case "clients":
+ this.value.clients = this.loadObjectField(($_=new JsonParser_$44(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"clients",assigned,this.value.clients);
+ break;
+ case "isUnknownClient":
+ this.value.isUnknownClient = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"isUnknownClient",assigned,this.value.isUnknownClient);
+ break;
+ case "passHash":
+ this.value.passHash = this.loadObjectField(($_=new JsonParser_$48(this.errors,this.putils,1),$bind($_,$_.loadJson)),field,"passHash",assigned,this.value.passHash);
+ break;
+ default:
+ this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos)));
+ }
+ }
+ this.objectErrors(assigned,pos);
+ }
+ ,getAuto: function() {
+ return { clientName : new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), clients : new JsonParser_$44([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isUnknownClient : new JsonParser_$46([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), passHash : new JsonParser_$48([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))};
+ }
+});
var Lambda = function() { };
Lambda.__name__ = true;
Lambda.has = function(it,elt) {
@@ -310,6 +1839,31 @@ haxe_ds_StringMap.prototype = {
return this.rh["$" + key];
}
}
+ ,existsReserved: function(key) {
+ if(this.rh == null) {
+ return false;
+ }
+ return this.rh.hasOwnProperty("$" + key);
+ }
+ ,keys: function() {
+ return HxOverrides.iter(this.arrayKeys());
+ }
+ ,arrayKeys: function() {
+ var out = [];
+ for( var key in this.h ) {
+ if(this.h.hasOwnProperty(key)) {
+ out.push(key);
+ }
+ }
+ if(this.rh != null) {
+ for( var key in this.rh ) {
+ if(key.charCodeAt(0) == 36) {
+ out.push(key.substr(1));
+ }
+ }
+ }
+ return out;
+ }
};
var Lang = function() { };
Lang.__name__ = true;
@@ -425,6 +1979,10 @@ Std.random = function(x) {
return Math.floor(Math.random() * x);
}
};
+var StringBuf = function() {
+ this.b = "";
+};
+StringBuf.__name__ = true;
var StringTools = function() { };
StringTools.__name__ = true;
StringTools.startsWith = function(s,start) {
@@ -817,6 +2375,286 @@ haxe_io_Path.prototype = {
return (this.dir == null ? "" : this.dir + (this.backslash ? "\\" : "/")) + this.file + (this.ext == null ? "" : "." + this.ext);
}
};
+var hxjsonast_Error = function(message,pos) {
+ this.message = message;
+ this.pos = pos;
+};
+hxjsonast_Error.__name__ = true;
+var hxjsonast_Json = function(value,pos) {
+ this.value = value;
+ this.pos = pos;
+};
+hxjsonast_Json.__name__ = true;
+var hxjsonast_JsonValue = $hxEnums["hxjsonast.JsonValue"] = { __ename__ : true, __constructs__ : ["JString","JNumber","JObject","JArray","JBool","JNull"]
+ ,JString: ($_=function(s) { return {_hx_index:0,s:s,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_.__params__ = ["s"],$_)
+ ,JNumber: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_.__params__ = ["s"],$_)
+ ,JObject: ($_=function(fields) { return {_hx_index:2,fields:fields,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_.__params__ = ["fields"],$_)
+ ,JArray: ($_=function(values) { return {_hx_index:3,values:values,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_.__params__ = ["values"],$_)
+ ,JBool: ($_=function(b) { return {_hx_index:4,b:b,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_.__params__ = ["b"],$_)
+ ,JNull: {_hx_index:5,__enum__:"hxjsonast.JsonValue",toString:$estr}
+};
+var hxjsonast_JObjectField = function(name,namePos,value) {
+ this.name = name;
+ this.namePos = namePos;
+ this.value = value;
+};
+hxjsonast_JObjectField.__name__ = true;
+var hxjsonast_Parser = function(source,filename) {
+ this.source = source;
+ this.filename = filename;
+ this.pos = 0;
+};
+hxjsonast_Parser.__name__ = true;
+hxjsonast_Parser.prototype = {
+ parseRec: function() {
+ while(true) {
+ var c = this.source.charCodeAt(this.pos++);
+ switch(c) {
+ case 9:case 10:case 13:case 32:
+ break;
+ case 34:
+ var save = this.pos;
+ return new hxjsonast_Json(hxjsonast_JsonValue.JString(this.parseString()),new hxjsonast_Position(this.filename,save - 1,this.pos));
+ case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
+ var start = this.pos - 1;
+ var minus = c == 45;
+ var digit = !minus;
+ var zero = c == 48;
+ var point = false;
+ var e = false;
+ var pm = false;
+ var end = false;
+ while(true) {
+ switch(this.source.charCodeAt(this.pos++)) {
+ case 43:case 45:
+ if(!e || pm) {
+ this.invalidNumber(start);
+ }
+ digit = false;
+ pm = true;
+ break;
+ case 46:
+ if(minus || point) {
+ this.invalidNumber(start);
+ }
+ digit = false;
+ point = true;
+ break;
+ case 48:
+ if(zero && !point) {
+ this.invalidNumber(start);
+ }
+ if(minus) {
+ minus = false;
+ zero = true;
+ }
+ digit = true;
+ break;
+ case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
+ if(zero && !point) {
+ this.invalidNumber(start);
+ }
+ if(minus) {
+ minus = false;
+ }
+ digit = true;
+ zero = false;
+ break;
+ case 69:case 101:
+ if(minus || zero || e) {
+ this.invalidNumber(start);
+ }
+ digit = false;
+ e = true;
+ break;
+ default:
+ if(!digit) {
+ this.invalidNumber(start);
+ }
+ this.pos--;
+ end = true;
+ }
+ if(end) {
+ break;
+ }
+ }
+ return new hxjsonast_Json(hxjsonast_JsonValue.JNumber(HxOverrides.substr(this.source,start,this.pos - start)),new hxjsonast_Position(this.filename,start,this.pos));
+ case 91:
+ var values = [];
+ var comma = null;
+ var startPos = this.pos - 1;
+ while(true) switch(this.source.charCodeAt(this.pos++)) {
+ case 9:case 10:case 13:case 32:
+ break;
+ case 44:
+ if(comma) {
+ comma = false;
+ } else {
+ this.invalidChar();
+ }
+ break;
+ case 93:
+ if(comma == false) {
+ this.invalidChar();
+ }
+ return new hxjsonast_Json(hxjsonast_JsonValue.JArray(values),new hxjsonast_Position(this.filename,startPos,this.pos));
+ default:
+ if(comma) {
+ this.invalidChar();
+ }
+ this.pos--;
+ values.push(this.parseRec());
+ comma = true;
+ }
+ break;
+ case 102:
+ var save1 = this.pos;
+ if(this.source.charCodeAt(this.pos++) != 97 || this.source.charCodeAt(this.pos++) != 108 || this.source.charCodeAt(this.pos++) != 115 || this.source.charCodeAt(this.pos++) != 101) {
+ this.pos = save1;
+ this.invalidChar();
+ }
+ return new hxjsonast_Json(hxjsonast_JsonValue.JBool(false),new hxjsonast_Position(this.filename,save1 - 1,this.pos));
+ case 110:
+ var save2 = this.pos;
+ if(this.source.charCodeAt(this.pos++) != 117 || this.source.charCodeAt(this.pos++) != 108 || this.source.charCodeAt(this.pos++) != 108) {
+ this.pos = save2;
+ this.invalidChar();
+ }
+ return new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position(this.filename,save2 - 1,this.pos));
+ case 116:
+ var save3 = this.pos;
+ if(this.source.charCodeAt(this.pos++) != 114 || this.source.charCodeAt(this.pos++) != 117 || this.source.charCodeAt(this.pos++) != 101) {
+ this.pos = save3;
+ this.invalidChar();
+ }
+ return new hxjsonast_Json(hxjsonast_JsonValue.JBool(true),new hxjsonast_Position(this.filename,save3 - 1,this.pos));
+ case 123:
+ var fields = [];
+ var names = new haxe_ds_StringMap();
+ var field = null;
+ var fieldPos = null;
+ var comma1 = null;
+ var startPos1 = this.pos - 1;
+ while(true) switch(this.source.charCodeAt(this.pos++)) {
+ case 9:case 10:case 13:case 32:
+ break;
+ case 34:
+ if(comma1) {
+ this.invalidChar();
+ }
+ var fieldStartPos = this.pos - 1;
+ field = this.parseString();
+ fieldPos = new hxjsonast_Position(this.filename,fieldStartPos,this.pos);
+ if(__map_reserved[field] != null ? names.existsReserved(field) : names.h.hasOwnProperty(field)) {
+ throw new js__$Boot_HaxeError(new hxjsonast_Error("Duplicate field name \"" + field + "\"",fieldPos));
+ } else if(__map_reserved[field] != null) {
+ names.setReserved(field,true);
+ } else {
+ names.h[field] = true;
+ }
+ break;
+ case 44:
+ if(comma1) {
+ comma1 = false;
+ } else {
+ this.invalidChar();
+ }
+ break;
+ case 58:
+ if(field == null) {
+ this.invalidChar();
+ }
+ fields.push(new hxjsonast_JObjectField(field,fieldPos,this.parseRec()));
+ field = null;
+ fieldPos = null;
+ comma1 = true;
+ break;
+ case 125:
+ if(field != null || comma1 == false) {
+ this.invalidChar();
+ }
+ return new hxjsonast_Json(hxjsonast_JsonValue.JObject(fields),new hxjsonast_Position(this.filename,startPos1,this.pos));
+ default:
+ this.invalidChar();
+ }
+ break;
+ default:
+ this.invalidChar();
+ }
+ }
+ }
+ ,parseString: function() {
+ var start = this.pos;
+ var buf = null;
+ while(true) {
+ var c = this.source.charCodeAt(this.pos++);
+ if(c == 34) {
+ break;
+ }
+ if(c == 92) {
+ if(buf == null) {
+ buf = new StringBuf();
+ }
+ var s = this.source;
+ var len = this.pos - start - 1;
+ buf.b += len == null ? HxOverrides.substr(s,start,null) : HxOverrides.substr(s,start,len);
+ c = this.source.charCodeAt(this.pos++);
+ switch(c) {
+ case 34:case 47:case 92:
+ buf.b += String.fromCodePoint(c);
+ break;
+ case 98:
+ buf.b += String.fromCodePoint(8);
+ break;
+ case 102:
+ buf.b += String.fromCodePoint(12);
+ break;
+ case 110:
+ buf.b += String.fromCodePoint(10);
+ break;
+ case 114:
+ buf.b += String.fromCodePoint(13);
+ break;
+ case 116:
+ buf.b += String.fromCodePoint(9);
+ break;
+ case 117:
+ var uc = Std.parseInt("0x" + HxOverrides.substr(this.source,this.pos,4));
+ this.pos += 4;
+ buf.b += String.fromCodePoint(uc);
+ break;
+ default:
+ throw new js__$Boot_HaxeError(new hxjsonast_Error("Invalid escape sequence \\" + String.fromCodePoint(c),new hxjsonast_Position(this.filename,this.pos - 2,this.pos)));
+ }
+ start = this.pos;
+ } else if(c != c) {
+ this.pos--;
+ throw new js__$Boot_HaxeError(new hxjsonast_Error("Unclosed string",new hxjsonast_Position(this.filename,start - 1,this.pos)));
+ }
+ }
+ if(buf == null) {
+ return HxOverrides.substr(this.source,start,this.pos - start - 1);
+ } else {
+ var s1 = this.source;
+ var len1 = this.pos - start - 1;
+ buf.b += len1 == null ? HxOverrides.substr(s1,start,null) : HxOverrides.substr(s1,start,len1);
+ return buf.b;
+ }
+ }
+ ,invalidChar: function() {
+ this.pos--;
+ throw new js__$Boot_HaxeError(new hxjsonast_Error("Invalid character: " + this.source.charAt(this.pos),new hxjsonast_Position(this.filename,this.pos,this.pos + 1)));
+ }
+ ,invalidNumber: function(start) {
+ throw new js__$Boot_HaxeError(new hxjsonast_Error("Invalid number: " + this.source.substring(start,this.pos),new hxjsonast_Position(this.filename,start,this.pos)));
+ }
+};
+var hxjsonast_Position = function(file,min,max) {
+ this.file = file;
+ this.min = min;
+ this.max = max;
+};
+hxjsonast_Position.__name__ = true;
var js__$Boot_HaxeError = function(val) {
Error.call(this);
this.val = val;
@@ -931,6 +2769,88 @@ var js_node_Path = require("path");
var js_node_Readline = require("readline");
var js_node_Url = require("url");
var js_npm_ws_Server = require("ws").Server;
+var json2object_Error = $hxEnums["json2object.Error"] = { __ename__ : true, __constructs__ : ["IncorrectType","IncorrectEnumValue","InvalidEnumConstructor","UninitializedVariable","UnknownVariable","ParserError"]
+ ,IncorrectType: ($_=function(variable,expected,pos) { return {_hx_index:0,variable:variable,expected:expected,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_.__params__ = ["variable","expected","pos"],$_)
+ ,IncorrectEnumValue: ($_=function(value,expected,pos) { return {_hx_index:1,value:value,expected:expected,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_.__params__ = ["value","expected","pos"],$_)
+ ,InvalidEnumConstructor: ($_=function(value,expected,pos) { return {_hx_index:2,value:value,expected:expected,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_.__params__ = ["value","expected","pos"],$_)
+ ,UninitializedVariable: ($_=function(variable,pos) { return {_hx_index:3,variable:variable,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_.__params__ = ["variable","pos"],$_)
+ ,UnknownVariable: ($_=function(variable,pos) { return {_hx_index:4,variable:variable,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_.__params__ = ["variable","pos"],$_)
+ ,ParserError: ($_=function(message,pos) { return {_hx_index:5,message:message,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_.__params__ = ["message","pos"],$_)
+};
+var json2object_PositionUtils = function(content) {
+ this.linesInfo = [];
+ var s = 0;
+ var e = 0;
+ var i = 0;
+ var lineCount = 0;
+ while(i < content.length) switch(content.charAt(i)) {
+ case "\n":
+ e = i;
+ this.linesInfo.push({ number : lineCount, start : s, end : e});
+ ++lineCount;
+ ++i;
+ s = i;
+ break;
+ case "\r":
+ e = i;
+ if(content.charAt(i + 1) == "\n") {
+ ++e;
+ }
+ this.linesInfo.push({ number : lineCount, start : s, end : e});
+ ++lineCount;
+ i = e + 1;
+ s = i;
+ break;
+ default:
+ ++i;
+ }
+ this.linesInfo.push({ number : lineCount, start : s, end : i});
+};
+json2object_PositionUtils.__name__ = true;
+json2object_PositionUtils.prototype = {
+ convertPosition: function(position) {
+ var min = position.min;
+ var max = position.max;
+ var pos = { file : position.file, min : min + 1, max : max + 1, lines : []};
+ var bounds_min = 0;
+ var bounds_max = this.linesInfo.length - 1;
+ if(min > this.linesInfo[0].end) {
+ while(bounds_max > bounds_min) {
+ var i = (bounds_min + bounds_max) / 2 | 0;
+ var line = this.linesInfo[i];
+ if(line.start == min) {
+ bounds_min = i;
+ bounds_max = i;
+ }
+ if(line.end < min) {
+ bounds_min = i + 1;
+ }
+ if(line.start > min || line.end >= min && line.start < min) {
+ bounds_max = i;
+ }
+ }
+ }
+ var _g = bounds_min;
+ var _g1 = this.linesInfo.length;
+ while(_g < _g1) {
+ var line1 = this.linesInfo[_g++];
+ if(line1.start <= min && line1.end >= max) {
+ pos.lines.push({ number : line1.number + 1, start : min - line1.start + 1, end : max - line1.start + 1});
+ break;
+ }
+ if(line1.start <= min && min <= line1.end) {
+ pos.lines.push({ number : line1.number + 1, start : min - line1.start + 1, end : line1.end + 1});
+ }
+ if(line1.start <= max && max <= line1.end) {
+ pos.lines.push({ number : line1.number + 1, start : line1.start + 1, end : max - line1.start + 1});
+ }
+ if(line1.start >= max || line1.end >= max) {
+ break;
+ }
+ }
+ return pos;
+ }
+};
var server_ConsoleInput = function(main) {
this.main = main;
};
@@ -1092,8 +3012,7 @@ server_HttpServer.proxyUrl = function(req,res) {
if(url1.host == req.headers["host"]) {
return false;
}
- var options = { host : url1.host, port : Std.parseInt(url1.port), path : url1.path, method : req.method};
- var proxy = (url1.protocol == "https:" ? js_node_Https.request : js_node_Http.request)(options,function(proxyRes) {
+ var proxy = (url1.protocol == "https:" ? js_node_Https.request : js_node_Http.request)({ host : url1.host, port : Std.parseInt(url1.port), path : url1.path, method : req.method},function(proxyRes) {
res.writeHead(proxyRes.statusCode,proxyRes.headers);
return proxyRes.pipe(res,{ end : true});
});
@@ -1128,6 +3047,7 @@ var server_Main = function() {
this.messages = [];
this.videoTimer = new server_VideoTimer();
this.videoList = _$VideoList_VideoList_$Impl_$._new();
+ this.wsEventParser = new JsonParser_$1();
this.freeIds = [];
this.clients = [];
this.rootDir = "" + __dirname + "/..";
@@ -1164,8 +3084,8 @@ var server_Main = function() {
}
server_Utils.getGlobalIp(function(ip) {
_gthis.globalIp = ip;
- haxe_Log.trace("Local: http://" + _gthis.localIp + ":" + _gthis.port,{ fileName : "src/server/Main.hx", lineNumber : 82, className : "server.Main", methodName : "new"});
- haxe_Log.trace("Global: http://" + _gthis.globalIp + ":" + _gthis.port,{ fileName : "src/server/Main.hx", lineNumber : 83, className : "server.Main", methodName : "new"});
+ haxe_Log.trace("Local: http://" + _gthis.localIp + ":" + _gthis.port,{ fileName : "src/server/Main.hx", lineNumber : 84, className : "server.Main", methodName : "new"});
+ haxe_Log.trace("Global: http://" + _gthis.globalIp + ":" + _gthis.port,{ fileName : "src/server/Main.hx", lineNumber : 85, className : "server.Main", methodName : "new"});
return;
});
var dir = "" + this.rootDir + "/res";
@@ -1241,7 +3161,7 @@ server_Main.prototype = {
var field = _g1[_g];
++_g;
if(Reflect.field(config,field) == null) {
- haxe_Log.trace("Warning: config field \"" + field + "\" is unknown",{ fileName : "src/server/Main.hx", lineNumber : 137, className : "server.Main", methodName : "getUserConfig"});
+ haxe_Log.trace("Warning: config field \"" + field + "\" is unknown",{ fileName : "src/server/Main.hx", lineNumber : 139, className : "server.Main", methodName : "getUserConfig"});
}
config[field] = Reflect.field(customConfig,field);
}
@@ -1253,7 +3173,7 @@ server_Main.prototype = {
++_g2;
var key = emote.name;
if(__map_reserved[key] != null ? emoteCopies.getReserved(key) : emoteCopies.h[key]) {
- haxe_Log.trace("Warning: emote name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 142, className : "server.Main", methodName : "getUserConfig"});
+ haxe_Log.trace("Warning: emote name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 144, className : "server.Main", methodName : "getUserConfig"});
}
var k = emote.name;
if(__map_reserved[k] != null) {
@@ -1266,7 +3186,7 @@ server_Main.prototype = {
}
var key1 = emote.image;
if(__map_reserved[key1] != null ? emoteCopies.getReserved(key1) : emoteCopies.h[key1]) {
- haxe_Log.trace("Warning: emote url of name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 145, className : "server.Main", methodName : "getUserConfig"});
+ haxe_Log.trace("Warning: emote url of name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 147, className : "server.Main", methodName : "getUserConfig"});
}
var k1 = emote.image;
if(__map_reserved[k1] != null) {
@@ -1292,7 +3212,7 @@ server_Main.prototype = {
js_node_Fs.writeFileSync("" + folder + "/users.json",JSON.stringify(users,null,"\t"));
}
,saveState: function() {
- haxe_Log.trace("Saving state...",{ fileName : "src/server/Main.hx", lineNumber : 169, className : "server.Main", methodName : "saveState"});
+ haxe_Log.trace("Saving state...",{ fileName : "src/server/Main.hx", lineNumber : 171, className : "server.Main", methodName : "saveState"});
var json = JSON.stringify({ videoList : this.videoList, isPlaylistOpen : this.isPlaylistOpen, itemPos : this.itemPos, messages : this.messages, timer : { time : this.videoTimer.getTime(), paused : this.videoTimer.isPaused()}},null,"\t");
js_node_Fs.writeFileSync(this.statePath,json);
}
@@ -1300,7 +3220,7 @@ server_Main.prototype = {
if(!sys_FileSystem.exists(this.statePath)) {
return;
}
- haxe_Log.trace("Loading state...",{ fileName : "src/server/Main.hx", lineNumber : 186, className : "server.Main", methodName : "loadState"});
+ haxe_Log.trace("Loading state...",{ fileName : "src/server/Main.hx", lineNumber : 188, className : "server.Main", methodName : "loadState"});
var data = JSON.parse(js_node_Fs.readFileSync(this.statePath,{ encoding : "utf8"}));
this.videoList.length = 0;
this.messages.length = 0;
@@ -1317,7 +3237,7 @@ server_Main.prototype = {
this.videoTimer.pause();
}
,logError: function(type,data) {
- haxe_Log.trace(type,{ fileName : "src/server/Main.hx", lineNumber : 200, className : "server.Main", methodName : "logError", customParams : [data]});
+ haxe_Log.trace(type,{ fileName : "src/server/Main.hx", lineNumber : 202, className : "server.Main", methodName : "logError", customParams : [data]});
var crashesFolder = "" + this.rootDir + "/user/crashes";
if(!sys_FileSystem.exists(crashesFolder)) {
sys_FileSystem.createDirectory(crashesFolder);
@@ -1335,7 +3255,7 @@ server_Main.prototype = {
if(_gthis.clients.length == 0) {
return;
}
- haxe_Log.trace("Ping " + url,{ fileName : "src/server/Main.hx", lineNumber : 215, className : "server.Main", methodName : "initIntergationHandlers"});
+ haxe_Log.trace("Ping " + url,{ fileName : "src/server/Main.hx", lineNumber : 217, className : "server.Main", methodName : "initIntergationHandlers"});
js_node_Http.get(url,function(r) {
return;
});
@@ -1350,14 +3270,14 @@ server_Main.prototype = {
}
this.userList.admins.push({ name : name, hash : hash});
this.writeUsers(this.userList);
- haxe_Log.trace("Admin " + name + " added.",{ fileName : "src/server/Main.hx", lineNumber : 230, className : "server.Main", methodName : "addAdmin"});
+ haxe_Log.trace("Admin " + name + " added.",{ fileName : "src/server/Main.hx", lineNumber : 232, className : "server.Main", methodName : "addAdmin"});
}
,onConnect: function(ws,req) {
var _gthis = this;
var ip = req.connection.remoteAddress;
var id = this.freeIds.length > 0 ? this.freeIds.shift() : this.clients.length;
var name = "Guest " + (id + 1);
- haxe_Log.trace("" + name + " connected (" + ip + ")",{ fileName : "src/server/Main.hx", lineNumber : 237, className : "server.Main", methodName : "onConnect"});
+ haxe_Log.trace("" + name + " connected (" + ip + ")",{ fileName : "src/server/Main.hx", lineNumber : 239, className : "server.Main", methodName : "onConnect"});
var client = new Client(ws,req,id,name,0);
client.setGroupFlag(ClientGroup.Admin,req.connection.localAddress == ip);
this.clients.push(client);
@@ -1376,12 +3296,17 @@ server_Main.prototype = {
this.send(client,{ type : "Connected", connected : { config : tmp, history : tmp1, isUnknownClient : true, clientName : client1, clients : _g, videoList : this.videoList, isPlaylistOpen : this.isPlaylistOpen, itemPos : this.itemPos, globalIp : this.globalIp}});
this.sendClientList();
ws.on("message",function(data) {
- var tmp2 = JSON.parse(data);
- _gthis.onMessage(client,tmp2);
+ var obj = _gthis.wsEventParser.fromJson(data);
+ if(_gthis.wsEventParser.errors.length > 0) {
+ haxe_Log.trace("Wrong request for type \"" + obj.type + "\":",{ fileName : "src/server/Main.hx", lineNumber : 268, className : "server.Main", methodName : "onConnect"});
+ haxe_Log.trace(_gthis.wsEventParser.errors.toString(),{ fileName : "src/server/Main.hx", lineNumber : 269, className : "server.Main", methodName : "onConnect"});
+ return;
+ }
+ _gthis.onMessage(client,obj);
return;
});
ws.on("close",function(err) {
- haxe_Log.trace("Client " + client.name + " disconnected",{ fileName : "src/server/Main.hx", lineNumber : 267, className : "server.Main", methodName : "onConnect"});
+ haxe_Log.trace("Client " + client.name + " disconnected",{ fileName : "src/server/Main.hx", lineNumber : 275, className : "server.Main", methodName : "onConnect"});
server_Utils.sortedPush(_gthis.freeIds,client.id);
HxOverrides.remove(_gthis.clients,client);
_gthis.sendClientList();
@@ -1994,6 +3919,7 @@ function $getIterator(o) { if( o instanceof Array ) return HxOverrides.iter(o);
function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $global.$haxeUID++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = m.bind(o); o.hx__closures__[m.__id__] = f; } return f; }
$global.$haxeUID |= 0;
var __map_reserved = {};
+if( String.fromCodePoint == null ) String.fromCodePoint = function(c) { return c < 0x10000 ? String.fromCharCode(c) : String.fromCharCode((c>>10)+0xD7C0)+String.fromCharCode((c&0x3FF)+0xDC00); }
String.__name__ = true;
Array.__name__ = true;
Date.__name__ = "Date";
diff --git a/src/server/Main.hx b/src/server/Main.hx
index 0023c5f..97e7ed7 100644
--- a/src/server/Main.hx
+++ b/src/server/Main.hx
@@ -11,6 +11,7 @@ import js.npm.ws.Server as WSServer;
import js.npm.ws.WebSocket;
import js.node.http.IncomingMessage;
import js.node.Http;
+import json2object.JsonParser;
import Client.ClientData;
import Types.Config;
import Types.Permission;
@@ -36,6 +37,7 @@ class Main {
final userList:UserList;
final clients:Array<Client> = [];
final freeIds:Array<Int> = [];
+ final wsEventParser = new JsonParser<WsEvent>();
final consoleInput:ConsoleInput;
final videoList = new VideoList();
final videoTimer = new VideoTimer();
@@ -261,7 +263,13 @@ class Main {
sendClientList();
ws.on("message", data -> {
- onMessage(client, Json.parse(data));
+ final obj = wsEventParser.fromJson(data);
+ if (wsEventParser.errors.length > 0) {
+ trace('Wrong request for type "${obj.type}":');
+ trace(wsEventParser.errors.toString());
+ return;
+ }
+ onMessage(client, obj);
});
ws.on("close", err -> {
trace('Client ${client.name} disconnected');
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage