Переглянути джерело

convert osc-example world proto

Nikolay Suslov 4 роки тому
батько
коміт
af3cb0e9dd
34 змінених файлів з 447 додано та 5301 видалено
  1. 3 3
      public/app.js
  2. 0 28
      public/defaults/proxy/aframe/avatar.js
  3. 0 6
      public/defaults/worlds/osc-example/assets.json
  4. 12 0
      public/defaults/worlds/osc-example/index.vwf.config.json
  5. 0 8
      public/defaults/worlds/osc-example/index.vwf.config.yaml
  6. 152 0
      public/defaults/worlds/osc-example/index.vwf.json
  7. 0 160
      public/defaults/worlds/osc-example/index.vwf.yaml
  8. 94 0
      public/defaults/worlds/osc-example/osclang.js
  9. 0 10
      public/defaults/worlds/paint/assets.json
  10. 2 1
      public/defaults/worlds/paint/controller.js
  11. 0 0
      public/defaults/worlds/paint/index.vwf.config.json
  12. 0 8
      public/defaults/worlds/paint/index.vwf.config.yaml
  13. 3 25
      public/defaults/worlds/paint/index.vwf.json
  14. 0 114
      public/defaults/worlds/paint/index.vwf.yaml
  15. 0 6
      public/defaults/worlds/paint_json/appui.js
  16. 0 10
      public/defaults/worlds/paint_json/assets.json
  17. 0 42
      public/defaults/worlds/paint_json/controller.js
  18. 0 14
      public/defaults/worlds/paint_json/info.json
  19. 0 4
      public/defaults/worlds/paint_json/pointer.js
  20. BIN
      public/defaults/worlds/paint_json/webimg.jpg
  21. 0 10
      public/defaults/worlds/webrtc/assets.json
  22. 13 0
      public/defaults/worlds/webrtc/index.vwf.config.json
  23. 0 9
      public/defaults/worlds/webrtc/index.vwf.config.yaml
  24. 121 0
      public/defaults/worlds/webrtc/index.vwf.json
  25. 0 65
      public/defaults/worlds/webrtc/index.vwf.yaml
  26. 2 0
      public/helpers.js
  27. 37 40
      public/lib/locale/en/en.json
  28. 3 6
      public/lib/locale/ru/ru.json
  29. 0 1893
      public/lib/yamljs/dist/yaml.debug.js
  30. 0 1893
      public/lib/yamljs/dist/yaml.js
  31. 0 942
      public/lib/yamljs/dist/yaml.legacy.js
  32. 0 0
      public/lib/yamljs/dist/yaml.min.js
  33. 2 2
      public/vwf/view/editor-new.js
  34. 3 2
      public/web/index-app.js

+ 3 - 3
public/app.js

@@ -1545,16 +1545,16 @@ class App {
       let myWorld = _LCSDB.user().get('worlds').get(newWorldName).put({ id: newWorldName });
       myWorld.put(worldObj, function (res) {
         if (currentState) {
-          _app.saveWorld();
+          _app.saveWorld(newWorldName);
         }
         _app.helpers.notyOK('World cloned!')
       });
     })
   }
 
-  async saveWorld() {
+  async saveWorld(wn) {
 
-    let name = this.worldName;
+    let name = wn ? wn : this.worldName;
 
     let proto = this.helpers.getWorldProto();
     _LCSDB.user().get('worlds').get(name).get('index_vwf_json').put(JSON.stringify(proto), res => {

+ 0 - 28
public/defaults/proxy/aframe/avatar.js

@@ -335,39 +335,11 @@ this.updateAvatarRotation = function (rotation) {
 
 this.followAvatarControl = function (position, rotation) {
 
-
-    //this.position = goog.vec.Vec3.createFromValues(position.x, position.y, position.z);
-
     let myRot = goog.vec.Vec3.clone(this.rotation);
     let myHeadRot = goog.vec.Vec3.clone(this.avatarNode.myHead.rotation);
-    //let myBodyRot = goog.vec.Vec3.clone(this.avatarNode.myBody.rotation);
-
-    //let myRot = AFRAME.utils.coordinates.parse(this.rotation);
-    //let myHeadRot = AFRAME.utils.coordinates.parse(this.avatarNode.myHead.rotation);
-    //let myBodyRot = AFRAME.utils.coordinates.parse(this.avatarNode.myBody.rotation);
-
-    //   if(myRot[0] == null || myRot[2] == null) {
-    //     debugger
-    // }
-
     this.rotation = [myRot[0], rotation.y, myRot[2]];
-    //this.rotation = [myRot.x, rotation.y, myRot.z];
-
-
-
-    // let myRot = this.avatarBodyModel.rotation;
-    // this.avatarBodyModel.rotation = [myRot.x, -rotation.y, myRot.z];
-
-    //this.avatarBody.rotation = [rotation.x, myRot.y, rotation.z];
-
-    //this.avatarNameNode.rotation = [myRot.x, myRot.y, rotation.z]; 
-
     this.avatarNode.myHead.rotation = [rotation.x, myHeadRot[1], rotation.z];
-    //this.avatarNode.myHead.rotation = [rotation.x, myHeadRot.y, rotation.z];
-    
-    // this.avatarNode.myCursor.rotation = [rotation.x, myHeadRot.y, rotation.z];
 
-    // this.avatarCamera.rotation = [rotation.x, myHeadRot.y, rotation.z];  
 }
 
 this.setUserAvatar = function(aName){

+ 0 - 6
public/defaults/worlds/osc-example/assets.json

@@ -1,6 +0,0 @@
-{
-     "bg2":{
-        "tag": "img",
-        "src": "/defaults/assets/checker.jpg"
-    }
-}

+ 12 - 0
public/defaults/worlds/osc-example/index.vwf.config.json

@@ -0,0 +1,12 @@
+{
+  "info":{
+    "title": "VWF & AFrame Example App"
+  },
+  "model": {
+    "vwf/model/aframe": {}
+  },
+  "view": {
+    "vwf/view/aframe": null,
+    "vwf/view/editor-new": null
+  }
+}

+ 0 - 8
public/defaults/worlds/osc-example/index.vwf.config.yaml

@@ -1,8 +0,0 @@
----
-info:
-  title: "VWF & AFrame Example App"
-model:
-  vwf/model/aframe:
-view:
-  vwf/view/aframe:
-  vwf/view/editor-new:

+ 152 - 0
public/defaults/worlds/osc-example/index.vwf.json

@@ -0,0 +1,152 @@
+{
+  "extends": "proxy/aframe/ascene.vwf",
+  "properties":{},
+  "children": {
+    "fog": {
+      "extends": "proxy/aframe/aSceneFogComponent.vwf",
+      "type": "component",
+      "properties": {
+        "fogType": "linear",
+        "fogColor": "#ECECEC",
+        "far": 20,
+        "near": 0
+      }
+    },
+    "floorTexture": {
+    "extends": "proxy/aframe/a-asset-image-item.vwf",
+    "properties": {
+        "itemID": "bg2",
+        "itemSrc": "/defaults/assets/checker.jpg"
+    }
+  },
+  "newSky":{
+    "extends": "proxy/aframe/aentity.vwf",
+    "children":{
+      "skyshader":{
+        "extends": "proxy/aframe/app-skyshader-component.vwf"
+        }
+      }
+  },
+    "groundPlane": {
+      "extends": "proxy/aframe/aplane.vwf",
+      "properties": {
+        "height": "50",
+        "width": "50",
+        "rotation": [
+          -90,
+          0,
+          0
+        ]
+      },
+      "children": {
+        "material": {
+          "extends": "proxy/aframe/aMaterialComponent.vwf",
+          "properties": {
+            "wireframe": false,
+            "src": "#bg2",
+            "repeat": "10 10"
+          }
+        }
+      }
+    },
+    "myLight": {
+      "extends": "proxy/aframe/alight.vwf",
+      "properties": {
+        "type": "point",
+        "color": "white",
+        "position": [
+          0, 10, 5
+        ],
+        "rotation": [
+          0,
+          0,
+          0
+        ]
+      }
+      },
+      "spaceText": {
+        "extends": "proxy/aframe/atext.vwf",
+        "properties": {
+          "value": "Virtual World Framework & A-Frame & OSC",
+          "color": "#2b5d83",
+          "position": [
+            -2,
+            2.5,
+            -3
+          ]
+        }
+      },
+
+    "cube": {
+      "extends": "proxy/aframe/abox.vwf",
+      "properties": {
+        "position": "0 1 -3",
+        "rotation": "0 0 0",
+        "depth": 1,
+        "height": 1,
+        "width": 1
+      },
+      "children": {
+        "material": {
+          "extends": "proxy/aframe/aMaterialComponent.vwf",
+          "properties": {
+            "color": "#3c7249"
+          }
+        },
+        "sphere": {
+          "extends": "proxy/aframe/asphere.vwf",
+          "properties": {
+            "position": "0 2 0",
+            "rotation": "0 0 0",
+            "radius": 0.4
+          },
+          "children": {
+            "material": {
+              "extends": "proxy/aframe/aMaterialComponent.vwf",
+              "properties": {
+                "color": "#3c7249"
+              }
+            }
+          }
+        }
+      }
+    },
+   "oscLang":{
+    "extends": "proxy/ohm/node.vwf",
+    "properties":{
+      "osc": true,
+      "grammar": null,
+      "semantics": null,
+      "ohmLang": {
+        "set": "this.ohmLang_set(value)",
+        "get": "return this.ohmLang_get()",
+        "value": "grammar"
+      }
+      },
+      "methods":{
+        "initialize": {},
+        "initLang": {},
+        "ohmLang_grammar": {},
+        "ohmLang_get": {},
+        "ohmLang_set": {
+          "parameters":["val"]
+        },
+        "addOperationLang": {},
+        "getOSC":{
+          "parameters":["msg"]
+        },
+        "parseOSC":{
+          "parameters":["msg"]
+        },
+        "setPropsFromOSC":{
+          "parameters":["res"]
+        }
+      },
+      "scripts":{
+        "source": "osclang.js"
+      }
+      
+    }
+
+    }
+  }

+ 0 - 160
public/defaults/worlds/osc-example/index.vwf.yaml

@@ -1,160 +0,0 @@
-# A-Frame & VWF & OSC simple scene
-# Copyright 2017 Krestianstvo.org project
----
-extends: http://vwf.example.com/aframe/ascene.vwf
-properties:
-  assets: "assets.json"
-children:
-  fog:
-    extends: http://vwf.example.com/aframe/aSceneFogComponent.vwf
-    type: "component"
-    properties:
-      fogType: "linear"
-      fogColor: "#ECECEC"
-      far: 20
-      near: 0
-  myLight:
-    extends: http://vwf.example.com/aframe/alight.vwf
-    properties:
-      type: "point"
-      color: "white"
-      position: "0 10 5"
-      rotation: "0 0 0"
-  groundPlane:
-    extends: http://vwf.example.com/aframe/aplane.vwf
-    properties:
-        height: 50
-        width: 50
-        rotation: [-90, 0, 0]
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          wireframe: false
-          src: "#bg2"
-          repeat: "10 10"
-  spaceText:
-    extends: http://vwf.example.com/aframe/atext.vwf
-    properties:
-      value: "Virtual World Framework & A-Frame & OSC"
-      color: "#2b5d83"
-      position: [-2, 2.5, -3]
-  cube:
-    extends: http://vwf.example.com/aframe/abox.vwf
-    properties:
-      position: "0 1 -3"
-      rotation: "0 0 0"
-      depth: 1
-      height: 1
-      width: 1
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          color: "#3c7249"
-      sphere:
-        extends: http://vwf.example.com/aframe/asphere.vwf
-        properties:
-          position: "0 2 0"
-          rotation: "0 0 0"
-          radius: 0.4
-        children:
-          material:
-            extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-            properties:
-              color: "#3c7249"
-  newSky:
-    extends: http://vwf.example.com/aframe/aentity.vwf
-    children:
-      skyshader:
-        extends: http://vwf.example.com/aframe/app-skyshader-component.vwf
-  oscLang:
-    extends: http://vwf.example.com/ohm/node.vwf
-    properties:
-      osc: true
-      grammar:
-      semantics:
-      ohmLang: |
-                parseOSC {
-                            all = address ":" props
-                            address = ("/" addr)*
-                            addr = ~("/") propSingle
-                            props 
-                                = propSingle row  -- single
-                                | "rgb" row       -- rgb
-                                | propSingle number -- prop
-                            row = "[" col rep "]"
-                            rep = ("," col)*
-                            col = colChar*
-                            colChar = ~("[" | "," | "]") number
-                            propSingle = ~("rgb") letter*
-                            number  (a number)
-                                = digit* "." digit+  -- fract
-                                | digit+             -- whole
-                            }
-    methods:
-      initLang:
-        body: |
-              console.log("add operations to semantics")
-              this.addOperationLang();
-      addOperationLang:
-        body: |
-              var self = this;
-              this.semantics.addOperation('parse',
-              {
-                  all: function(e, _, k){ return {"address": e.parse(), "params": k.parse()} },
-                  address: function(_, e){ return e.parse()},
-                  addr: function(e) {return e.parse() },
-                  props: function(e) {return e.parse()},
-                  props_single: function( e, k){
-                          return {'propName': e.parse(), 'propValue': k.parse()};
-                  },
-                  props_rgb: function(_, e)
-                  {
-                      return {'propName': 'color', 'propValue': ['rgb('+ e.parse() + ')']};
-                  },
-                  props_prop: function(e, k){
-                          return {'propName': e.parse(), 'propValue': k.parse()};
-                  },
-                  row: function(_l, e, k, _e){
-                         let end = k.parse();
-                          if (end.length !== 0) {
-                           return e.parse() +','+ k.parse();
-                         }
-                         return e.parse()    
-                  },
-                  rep: function(_, e){ return e.parse()},
-                  col: function(e) {return e.parse()},
-                  colChar: function(e) {return e.parse()},
-                  number: function(_) {return parseFloat(this.sourceString)},
-                  propSingle: function(_){return this.sourceString}
-              });
-      getOSC:
-        parameters:
-          - msg
-        body: |
-              this.parseOSC(msg);
-      parseOSC:
-        parameters:
-          - msg
-        body: |
-                let str = msg.address + JSON.stringify(msg.args);
-                var match = this.grammar.match(str, "all");
-                if (match.succeeded())
-                {
-                    let res = this.semantics(match).parse();
-                    this.setPropsFromOSC(res);
-                }
-      setPropsFromOSC:
-        parameters:
-          - res
-        body: |
-              //console.log(res);
-              let address = '/'+res.address.join('/');
-              let nodeID = vwf.find("", address);
-              if (res.params.propValue.length == 1) {
-                  vwf_view.kernel.setProperty(nodeID, res.params.propName, [res.params.propValue[0]])
-              }
-              if (res.params.propValue.length >= 1) {
-                  vwf_view.kernel.setProperty(nodeID, res.params.propName, [res.params.propValue])
-              }

+ 94 - 0
public/defaults/worlds/osc-example/osclang.js

@@ -0,0 +1,94 @@
+this.ohmLang_get = function () {
+    return this.ohmLang;
+}
+
+this.ohmLang_set = function (val) {
+    if (val == "grammar") {
+        this.ohmLang = this.ohmLang_grammar();
+    } else {
+        this.ohmLang = val;
+    }
+}
+
+this.ohmLang_grammar = function () {
+    return 'parseOSC { \n' +
+        'all = address ":" props \n' +
+        'address = ("/" addr)* \n' +
+        'addr = ~("/") propSingle \n' +
+        'props \n' +
+        '    = propSingle row  -- single \n' +
+        '    | "rgb" row       -- rgb \n' +
+        '    | propSingle number -- prop \n' +
+        'row = "[" col rep "]" \n' +
+        'rep = ("," col)* \n' +
+        'col = colChar* \n' +
+        'colChar = ~("[" | "," | "]") number \n' +
+        'propSingle = ~("rgb") letter* \n' +
+        'number  (a number) \n' +
+        '    = digit* "." digit+  -- fract \n' +
+        '    | digit+             -- whole \n' +
+        '}'
+}
+this.initLang = function () {
+    console.log("add operations to semantics")
+    this.addOperationLang();
+}
+
+this.addOperationLang = function () {
+
+    var self = this;
+    this.semantics.addOperation('parse',
+        {
+            all: function (e, _, k) { return { "address": e.parse(), "params": k.parse() } },
+            address: function (_, e) { return e.parse() },
+            addr: function (e) { return e.parse() },
+            props: function (e) { return e.parse() },
+            props_single: function (e, k) {
+                return { 'propName': e.parse(), 'propValue': k.parse() };
+            },
+            props_rgb: function (_, e) {
+                return { 'propName': 'color', 'propValue': ['rgb(' + e.parse() + ')'] };
+            },
+            props_prop: function (e, k) {
+                return { 'propName': e.parse(), 'propValue': k.parse() };
+            },
+            row: function (_l, e, k, _e) {
+                let end = k.parse();
+                if (end.length !== 0) {
+                    return e.parse() + ',' + k.parse();
+                }
+                return e.parse()
+            },
+            rep: function (_, e) { return e.parse() },
+            col: function (e) { return e.parse() },
+            colChar: function (e) { return e.parse() },
+            number: function (_) { return parseFloat(this.sourceString) },
+            propSingle: function (_) { return this.sourceString }
+        });
+}
+
+this.getOSC = function (msg) {
+    this.parseOSC(msg);
+}
+
+this.parseOSC = function (msg) {
+    let str = msg.address + JSON.stringify(msg.args);
+    var match = this.grammar.match(str, "all");
+    if (match.succeeded()) {
+        let res = this.semantics(match).parse();
+        this.setPropsFromOSC(res);
+    }
+}
+
+this.setPropsFromOSC = function (res) {
+    //console.log(res);
+    let address = '/' + res.address.join('/');
+    let nodeID = vwf.find("", address);
+    if (res.params.propValue.length == 1) {
+        vwf_view.kernel.setProperty(nodeID, res.params.propName, [res.params.propValue[0]])
+    }
+    if (res.params.propValue.length >= 1) {
+        vwf_view.kernel.setProperty(nodeID, res.params.propName, [res.params.propValue])
+    }
+}
+

+ 0 - 10
public/defaults/worlds/paint/assets.json

@@ -1,10 +0,0 @@
-{
-    "sky":{
-        "tag": "img",
-        "src": "/defaults/assets/skyes/sky3.jpg"
-    },
-     "bg2":{
-        "tag": "img",
-        "src": "/defaults/assets/checker.jpg"
-    }
-}

+ 2 - 1
public/defaults/worlds/paint/controller.js

@@ -21,4 +21,5 @@ this.onMove = function(){
         pen.linepath.path = path;
     }
     
-}
+}
+

+ 0 - 0
public/defaults/worlds/paint_json/index.vwf.config.json → public/defaults/worlds/paint/index.vwf.config.json


+ 0 - 8
public/defaults/worlds/paint/index.vwf.config.yaml

@@ -1,8 +0,0 @@
----
-info:
-  title: "Paint App"
-model:
-  vwf/model/aframe:
-view:
-  vwf/view/aframe:
-  vwf/view/editor-new:

+ 3 - 25
public/defaults/worlds/paint_json/index.vwf.json → public/defaults/worlds/paint/index.vwf.json

@@ -1,12 +1,6 @@
 {
   "extends": "proxy/aframe/ascene.vwf",
-  "properties":{
-    "eee": {
-      "value": "test",
-      "get": "",
-      "set": ""
-    }
-  },
+  "properties":{},
   "children": {
     "floorTexture": {
     "extends": "proxy/aframe/a-asset-image-item.vwf",
@@ -146,22 +140,12 @@
         "width": "0.01",
         "depth": "0.3",
         "penDown": false,
-        "penName": "drawNode",
-        "myProperty":{
-          "set": "this.setMyProp(value)",
-          "get": "return this.getMyProp()",
-          "value": "fancy"
-        }
+        "penName": "drawNode"
       },
       "methods": {
         "triggerdown": {},
         "triggerup": {},
-        "onMove": {},
-        "met": {},
-        "getMyProp":{},
-        "setMyProp": {
-          "parameters": ["val"]
-        }
+        "onMove": {}
       },
       "scripts":{
         "source": "controller.js"
@@ -198,11 +182,5 @@
         }
       }
     }
-  },
-  "methods": {
-    "some": {}
-  },
-  "scripts":{
-    "source": "pointer.js"
   }
 }

+ 0 - 114
public/defaults/worlds/paint/index.vwf.yaml

@@ -1,114 +0,0 @@
-# A-Frame & VWF simple scene
-# Copyright 2017 Krestianstvo.org project
----
-extends: http://vwf.example.com/aframe/ascene.vwf
-properties:
-  assets: "assets.json"
-children:
-  fog:
-    extends: http://vwf.example.com/aframe/aSceneFogComponent.vwf
-    type: "component"
-    properties:
-      fogType: "linear"
-      fogColor: "#ECECEC"
-      far: 20
-      near: 0
-  groundPlane:
-    extends: http://vwf.example.com/aframe/aplane.vwf
-    properties:
-      height: 50
-      width: 50
-      rotation: "-90 0 0"
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          wireframe: false
-          src: "#bg2"
-          repeat: "10 10"
-  myLight:
-    extends: http://vwf.example.com/aframe/alight.vwf
-    properties:
-      type: "point"
-      color: "white"
-      position: "0 3 0"
-      rotation: "0 0 0"
-  sky:
-    extends: http://vwf.example.com/aframe/asky.vwf
-    properties:
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          color: "#ECECEC"
-          src: "#sky"
-          fog: false
-          side: "back"
-  spaceText:
-    extends: http://vwf.example.com/aframe/atext.vwf
-    properties:
-      value: "Paint App"
-      color: "white"
-      position: "-2 2.5 -2"
-  box:
-    extends: http://vwf.example.com/aframe/abox.vwf
-    properties:
-      position: "0 0 -3"
-      rotation: "0 0 0"
-      depth: 3
-      height: 0.2
-      width: 3
-      myProperty:
-        set: |
-          if ( value == "fancy" ) {
-            this.myProperty = value + " coding!";
-          } else {
-            this.myProperty = value;
-          }
-        get: |
-          return this.myProperty;
-        value: "fancy"
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          color: "#3c7249"
-  drawBox:
-    extends: http://vwf.example.com/aframe/aentity.vwf
-    properties:
-      position: "0 0 0"
-  defaultXRCostume:
-    extends: http://vwf.example.com/aframe/abox.vwf
-    properties:
-      displayName: "defaultXRCostume"
-      position: "0 0 0"
-      height: 0.01
-      width: 0.01
-      depth: 0.3
-      penDown: false
-      penName: "drawNode"
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        type: "component"
-        properties:
-          color: "#6aa171"
-      pointer:
-        extends: http://vwf.example.com/aframe/abox.vwf
-        properties:
-          position: "0 0 -0.25"
-          height: 0.05
-          width: 0.05
-          depth: 0.05
-        children:
-          material:
-            extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-            type: "component"
-            properties:
-              color: "green"
-    methods:
-      triggerdown:
-      triggerup:
-      onMove:
-    scripts:
-      - source: "controller.js"

+ 0 - 6
public/defaults/worlds/paint_json/appui.js

@@ -1,6 +0,0 @@
-//-----App ui-----
-
-// function createApp() {
-    
-//     }
-    

+ 0 - 10
public/defaults/worlds/paint_json/assets.json

@@ -1,10 +0,0 @@
-{
-    "sky":{
-        "tag": "img",
-        "src": "/defaults/assets/skyes/sky3.jpg"
-    },
-     "bg2":{
-        "tag": "img",
-        "src": "/defaults/assets/checker.jpg"
-    }
-}

+ 0 - 42
public/defaults/worlds/paint_json/controller.js

@@ -1,42 +0,0 @@
-this.triggerdown = function(){
-    let scene = this.getScene();
-    this.pointer.material.color = "white";
-    this.penDown = true;
-    this.penName = 'drawNode-' + scene.GUID();
-    scene.createDrawNode(scene.drawBox, this.penName, "#f9f9f9", 0.007, "0 0 0");
-}
-
-this.triggerup = function(){
-    this.pointer.material.color = "green";
-    this.penDown = false;
-}
-
-this.onMove = function(){
-    if(this.penDown){
-        let scene = this.getScene();
-        let pen = scene.drawBox.children[this.penName];
-        let pos = this.pointer.worldPosition();
-        let path = pen.linepath.path.slice();
-        path.push(pos);
-        pen.linepath.path = path;
-    }
-    
-}
-
-this.met = function(){
-
-    console.log('FROM JS: ', this.id);
-
-}
-
-this.getMyProp =  function(){
-    return this.myProperty;
-}
-
-this.setMyProp =  function(val){
-    if ( val == "fancy" ) {
-        this.myProperty = val + " coding!";
-      } else {
-        this.myProperty = val;
-      }
-}

+ 0 - 14
public/defaults/worlds/paint_json/info.json

@@ -1,14 +0,0 @@
-{
-    "info": {
-        "en": {
-            "title": "Paint app in Web XR",
-            "imgUrl": "/defaults/worlds/webrtc/webimg.jpg",
-            "text": "Painting app using Web XR controllers"
-        },
-        "ru": {
-            "title": "Рисование в Web XR",
-            "imgUrl": "/defaults/worlds/webrtc/webimg.jpg",
-            "text": "Пример приложения для рисования с помощью контроллеров Web XR"
-        }
-    }
-}

+ 0 - 4
public/defaults/worlds/paint_json/pointer.js

@@ -1,4 +0,0 @@
-this.some = function(){
-    //console.log(this.id)
-    
-}

BIN
public/defaults/worlds/paint_json/webimg.jpg


+ 0 - 10
public/defaults/worlds/webrtc/assets.json

@@ -1,10 +0,0 @@
-{
-    "sky":{
-        "tag": "img",
-        "src": "/defaults/assets/skyes/sky3.jpg"
-    },
-     "bg2":{
-        "tag": "img",
-        "src": "/defaults/assets/checker.jpg"
-    }
-}

+ 13 - 0
public/defaults/worlds/webrtc/index.vwf.config.json

@@ -0,0 +1,13 @@
+{
+    "info":{
+      "title": "VWF & AFrame Example App"
+    },
+    "model": {
+      "vwf/model/aframe": {}
+    },
+    "view": {
+      "vwf/view/aframe": null,
+      "vwf/view/editor-new": null,
+      "vwf/view/webrtc": null
+    }
+  }

+ 0 - 9
public/defaults/worlds/webrtc/index.vwf.config.yaml

@@ -1,9 +0,0 @@
----
-info:
-  title: "VWF & AFrame Example App"
-model:
-  vwf/model/aframe:
-view:
-  vwf/view/aframe:
-  vwf/view/editor-new:
-  vwf/view/webrtc:

+ 121 - 0
public/defaults/worlds/webrtc/index.vwf.json

@@ -0,0 +1,121 @@
+{
+  "extends": "proxy/aframe/ascene.vwf",
+  "properties":{},
+  "children": {
+    "floorTexture": {
+    "extends": "proxy/aframe/a-asset-image-item.vwf",
+    "properties": {
+        "itemID": "bg2",
+        "itemSrc": "/defaults/assets/checker.jpg"
+    }
+  },
+  "skyTexture": {
+    "extends": "proxy/aframe/a-asset-image-item.vwf",
+    "properties": {
+        "itemID": "sky",
+        "itemSrc": "/defaults/assets/skyes/sky3.jpg"
+    }
+  },
+    "fog": {
+      "extends": "proxy/aframe/aSceneFogComponent.vwf",
+      "type": "component",
+      "properties": {
+        "fogType": "linear",
+        "fogColor": "#ECECEC",
+        "far": 20,
+        "near": 0
+      }
+    },
+    "groundPlane": {
+      "extends": "proxy/aframe/aplane.vwf",
+      "properties": {
+        "height": "50",
+        "width": "50",
+        "rotation": [
+          -90,
+          0,
+          0
+        ]
+      },
+      "children": {
+        "material": {
+          "extends": "proxy/aframe/aMaterialComponent.vwf",
+          "properties": {
+            "wireframe": false,
+            "src": "#bg2",
+            "repeat": "10 10"
+          }
+        }
+      }
+    },
+    "myLight": {
+      "extends": "proxy/aframe/alight.vwf",
+      "properties": {
+        "type": "point",
+        "color": "white",
+        "position": [
+          0,
+          3,
+          0
+        ],
+        "rotation": [
+          0,
+          0,
+          0
+        ]
+      }
+    },
+    "sky": {
+      "extends": "proxy/aframe/asky.vwf",
+      "children": {
+        "material": {
+          "extends": "proxy/aframe/aMaterialComponent.vwf",
+          "properties": {
+            "color": "#ECECEC",
+            "src": "#sky",
+            "fog": false,
+            "side": "back"
+          }
+        }
+      }
+    },
+    "spaceText": {
+      "extends": "proxy/aframe/atext.vwf",
+      "properties": {
+        "value": "WebRTC app",
+        "color": "white",
+        "position": [
+          -2,
+          2.5,
+          -2
+        ]
+      }
+    },
+    "box": {
+      "extends": "proxy/aframe/abox.vwf",
+      "properties": {
+        "position": [
+          0,
+          0,
+          -3
+        ],
+        "rotation": [
+          0,
+          0,
+          0
+        ],
+        "depth": "3",
+        "height": "0.2",
+        "width": "3"
+      },
+      "children": {
+        "material": {
+          "extends": "proxy/aframe/aMaterialComponent.vwf",
+          "properties": {
+            "color": "#3c7249"
+          }
+        }
+      }
+    }
+  }
+}

+ 0 - 65
public/defaults/worlds/webrtc/index.vwf.yaml

@@ -1,65 +0,0 @@
-# A-Frame & VWF simple scene
-# Copyright 2017 Krestianstvo.org project
----
-extends: http://vwf.example.com/aframe/ascene.vwf
-properties:
-  assets: "assets.json"
-children:
-  fog:
-    extends: http://vwf.example.com/aframe/aSceneFogComponent.vwf
-    type: "component"
-    properties:
-      fogType: "linear"
-      fogColor: "#ECECEC"
-      far: 20
-      near: 0
-  groundPlane:
-    extends: http://vwf.example.com/aframe/aplane.vwf
-    properties:
-      height: 50
-      width: 50
-      rotation: "-90 0 0"
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          wireframe: false
-          src: "#bg2"
-          repeat: "10 10"
-  myLight:
-    extends: http://vwf.example.com/aframe/alight.vwf
-    properties:
-      type: "hemisphere"
-      color: "white"
-      position: "0 10 5"
-      rotation: "0 0 0"
-  sky:
-    extends: http://vwf.example.com/aframe/asky.vwf
-    properties:
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          color: "#ECECEC"
-          src: "#sky"
-          fog: false
-          side: "back"
-  spaceText:
-    extends: http://vwf.example.com/aframe/atext.vwf
-    properties:
-      value: "WebRTC app"
-      color: "white"
-      position: "-2 2.5 -2"
-  box:
-    extends: http://vwf.example.com/aframe/abox.vwf
-    properties:
-      position: "0 0 -3"
-      rotation: "0 0 0"
-      depth: 3
-      height: 0.2
-      width: 3
-    children:
-      material:
-        extends: http://vwf.example.com/aframe/aMaterialComponent.vwf
-        properties:
-          color: "#3c7249"

+ 2 - 0
public/helpers.js

@@ -208,6 +208,8 @@ class Helpers {
             //source = source;//JSON.stringify(source, null, '\t');
         } else if (typeof source == 'object') {
             convert = JSON.stringify(source, null, '\t')
+        } else if (typeof source == 'string') {
+            convert = source
         }
 
         return convert

+ 37 - 40
public/lib/locale/en/en.json

@@ -1,9 +1,9 @@
 {
     "header_home": "Home",
-    "conn_settings":"Connection settings",
-    "help":"Help",
-    "en":"English",
-    "ru":"Русский",
+    "conn_settings": "Connection settings",
+    "help": "Help",
+    "en": "English",
+    "ru": "Русский",
     "home": "Home",
     "App": "App",
     "clone proto": "Clone",
@@ -12,17 +12,14 @@
     "welcome": "Welcome",
     "login": "Login",
     "password": "Password",
-   "sign up": "Sign up",
-   "sign in": "Sign in",
-   "sign out": "Sign out",
-   "profile": "My profile",
-   "show worlds": "Search for Worlds, made by other Users!",
-   "my world protos": "My protos",
-    "my world states": "My worlds",
-   "world protos": "protos",
-    "world states": "worlds",
-    "protos for": "World protos by - ",
-    "states for": "Worlds by  - ",
+    "sign up": "Sign up",
+    "sign in": "Sign in",
+    "sign out": "Sign out",
+    "profile": "My profile",
+    "show worlds": "Search for Worlds, made by other Users!",
+    "my world protos": "My Worlds",
+    "world protos": "Search",
+    "protos for": "World by - ",
     "enter user name": "Enter user name",
     "details": "details",
     "online now": "online now",
@@ -34,35 +31,35 @@
     "clone/save": "Clone/Save",
     "chat": "chat",
     "users online": "users online",
-   "methods browser": "methods browser",
+    "methods browser": "methods browser",
     "children": "children",
     "properties": "properties",
     "proto properties": "proto properties",
     "actions": "actions",
     "primitives": "Primitives",
-     "lights": "Lights",
-     "objects": "Objects",
-     "assets": "Assets",
-     "resources": "Resources",
-     "image": "IMAGE",
-     "sound": "SOUND",
-     "video": "VIDEO",
-     "enter URL to asset source": "Enter URL to asset source",
-     "enter google poly model ID ": "Enter Google Poly model ID",
-     "load from poly": "Load from Poly",
-     "reset camera view": "reset camera view",
-     "hide cursor": "hide cursor",
+    "lights": "Lights",
+    "objects": "Objects",
+    "assets": "Assets",
+    "resources": "Resources",
+    "image": "IMAGE",
+    "sound": "SOUND",
+    "video": "VIDEO",
+    "enter URL to asset source": "Enter URL to asset source",
+    "enter google poly model ID ": "Enter Google Poly model ID",
+    "load from poly": "Load from Poly",
+    "reset camera view": "reset camera view",
+    "hide cursor": "hide cursor",
     "show cursor": "show cursor",
-     "hide avatar": "hide avatar",
-     "show avatar": "show avatar",
-     "reset avatar": "reset avatar",
-     "cube simple": "cube simple ",
-     "female human": "female human",
-     "male human": "male human",
-     "wide": "WIDE",
-     "small": "SMALL",
-     "OSC settings": "OSC settings",
-     "node methods": "NODE METHODS",
-     "proto methods": "PROTO METHODS",
-     "methods name": "Methods name"
+    "hide avatar": "hide avatar",
+    "show avatar": "show avatar",
+    "reset avatar": "reset avatar",
+    "cube simple": "cube simple ",
+    "female human": "female human",
+    "male human": "male human",
+    "wide": "WIDE",
+    "small": "SMALL",
+    "OSC settings": "OSC settings",
+    "node methods": "NODE METHODS",
+    "proto methods": "PROTO METHODS",
+    "methods name": "Methods name"
 }

+ 3 - 6
public/lib/locale/ru/ru.json

@@ -17,12 +17,9 @@
     "sign out": "Выйти",
     "profile": "Мой профиль",
     "show worlds": "Найти Миры, созданные другими пользователями!",
-    "my world protos": "Мои прототипы",
-    "my world states": "Мои миры",
-    "world protos": "Прототипы",
-    "world states": "Миры",
-    "protos for": "Прототипы миров пользователя: ",
-    "states for": "Миры пользователя: ",
+    "my world protos": "Мои миры",
+    "world protos": "Найти",
+    "protos for": "Миры пользователя: ",
     "enter user name": "Введите имя пользователя",
     "details": "Подробнее",
     "online now": "онлайн",

Різницю між файлами не показано, бо вона завелика
+ 0 - 1893
public/lib/yamljs/dist/yaml.debug.js


+ 0 - 1893
public/lib/yamljs/dist/yaml.js

@@ -1,1893 +0,0 @@
-(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-var Dumper, Inline, Utils;
-
-Utils = require('./Utils');
-
-Inline = require('./Inline');
-
-Dumper = (function() {
-  function Dumper() {}
-
-  Dumper.indentation = 4;
-
-  Dumper.prototype.dump = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
-    var i, key, len, output, prefix, value, willBeInlined;
-    if (inline == null) {
-      inline = 0;
-    }
-    if (indent == null) {
-      indent = 0;
-    }
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectEncoder == null) {
-      objectEncoder = null;
-    }
-    output = '';
-    prefix = (indent ? Utils.strRepeat(' ', indent) : '');
-    if (inline <= 0 || typeof input !== 'object' || input instanceof Date || Utils.isEmpty(input)) {
-      output += prefix + Inline.dump(input, exceptionOnInvalidType, objectEncoder);
-    } else {
-      if (input instanceof Array) {
-        for (i = 0, len = input.length; i < len; i++) {
-          value = input[i];
-          willBeInlined = inline - 1 <= 0 || typeof value !== 'object' || Utils.isEmpty(value);
-          output += prefix + '-' + (willBeInlined ? ' ' : "\n") + this.dump(value, inline - 1, (willBeInlined ? 0 : indent + this.indentation), exceptionOnInvalidType, objectEncoder) + (willBeInlined ? "\n" : '');
-        }
-      } else {
-        for (key in input) {
-          value = input[key];
-          willBeInlined = inline - 1 <= 0 || typeof value !== 'object' || Utils.isEmpty(value);
-          output += prefix + Inline.dump(key, exceptionOnInvalidType, objectEncoder) + ':' + (willBeInlined ? ' ' : "\n") + this.dump(value, inline - 1, (willBeInlined ? 0 : indent + this.indentation), exceptionOnInvalidType, objectEncoder) + (willBeInlined ? "\n" : '');
-        }
-      }
-    }
-    return output;
-  };
-
-  return Dumper;
-
-})();
-
-module.exports = Dumper;
-
-
-},{"./Inline":6,"./Utils":10}],2:[function(require,module,exports){
-var Escaper, Pattern;
-
-Pattern = require('./Pattern');
-
-Escaper = (function() {
-  var ch;
-
-  function Escaper() {}
-
-  Escaper.LIST_ESCAPEES = ['\\', '\\\\', '\\"', '"', "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", (ch = String.fromCharCode)(0x0085), ch(0x00A0), ch(0x2028), ch(0x2029)];
-
-  Escaper.LIST_ESCAPED = ['\\\\', '\\"', '\\"', '\\"', "\\0", "\\x01", "\\x02", "\\x03", "\\x04", "\\x05", "\\x06", "\\a", "\\b", "\\t", "\\n", "\\v", "\\f", "\\r", "\\x0e", "\\x0f", "\\x10", "\\x11", "\\x12", "\\x13", "\\x14", "\\x15", "\\x16", "\\x17", "\\x18", "\\x19", "\\x1a", "\\e", "\\x1c", "\\x1d", "\\x1e", "\\x1f", "\\N", "\\_", "\\L", "\\P"];
-
-  Escaper.MAPPING_ESCAPEES_TO_ESCAPED = (function() {
-    var i, j, mapping, ref;
-    mapping = {};
-    for (i = j = 0, ref = Escaper.LIST_ESCAPEES.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
-      mapping[Escaper.LIST_ESCAPEES[i]] = Escaper.LIST_ESCAPED[i];
-    }
-    return mapping;
-  })();
-
-  Escaper.PATTERN_CHARACTERS_TO_ESCAPE = new Pattern('[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9');
-
-  Escaper.PATTERN_MAPPING_ESCAPEES = new Pattern(Escaper.LIST_ESCAPEES.join('|').split('\\').join('\\\\'));
-
-  Escaper.PATTERN_SINGLE_QUOTING = new Pattern('[\\s\'":{}[\\],&*#?]|^[-?|<>=!%@`]');
-
-  Escaper.requiresDoubleQuoting = function(value) {
-    return this.PATTERN_CHARACTERS_TO_ESCAPE.test(value);
-  };
-
-  Escaper.escapeWithDoubleQuotes = function(value) {
-    var result;
-    result = this.PATTERN_MAPPING_ESCAPEES.replace(value, (function(_this) {
-      return function(str) {
-        return _this.MAPPING_ESCAPEES_TO_ESCAPED[str];
-      };
-    })(this));
-    return '"' + result + '"';
-  };
-
-  Escaper.requiresSingleQuoting = function(value) {
-    return this.PATTERN_SINGLE_QUOTING.test(value);
-  };
-
-  Escaper.escapeWithSingleQuotes = function(value) {
-    return "'" + value.replace(/'/g, "''") + "'";
-  };
-
-  return Escaper;
-
-})();
-
-module.exports = Escaper;
-
-
-},{"./Pattern":8}],3:[function(require,module,exports){
-var DumpException,
-  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-  hasProp = {}.hasOwnProperty;
-
-DumpException = (function(superClass) {
-  extend(DumpException, superClass);
-
-  function DumpException(message, parsedLine, snippet) {
-    this.message = message;
-    this.parsedLine = parsedLine;
-    this.snippet = snippet;
-  }
-
-  DumpException.prototype.toString = function() {
-    if ((this.parsedLine != null) && (this.snippet != null)) {
-      return '<DumpException> ' + this.message + ' (line ' + this.parsedLine + ': \'' + this.snippet + '\')';
-    } else {
-      return '<DumpException> ' + this.message;
-    }
-  };
-
-  return DumpException;
-
-})(Error);
-
-module.exports = DumpException;
-
-
-},{}],4:[function(require,module,exports){
-var ParseException,
-  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-  hasProp = {}.hasOwnProperty;
-
-ParseException = (function(superClass) {
-  extend(ParseException, superClass);
-
-  function ParseException(message, parsedLine, snippet) {
-    this.message = message;
-    this.parsedLine = parsedLine;
-    this.snippet = snippet;
-  }
-
-  ParseException.prototype.toString = function() {
-    if ((this.parsedLine != null) && (this.snippet != null)) {
-      return '<ParseException> ' + this.message + ' (line ' + this.parsedLine + ': \'' + this.snippet + '\')';
-    } else {
-      return '<ParseException> ' + this.message;
-    }
-  };
-
-  return ParseException;
-
-})(Error);
-
-module.exports = ParseException;
-
-
-},{}],5:[function(require,module,exports){
-var ParseMore,
-  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-  hasProp = {}.hasOwnProperty;
-
-ParseMore = (function(superClass) {
-  extend(ParseMore, superClass);
-
-  function ParseMore(message, parsedLine, snippet) {
-    this.message = message;
-    this.parsedLine = parsedLine;
-    this.snippet = snippet;
-  }
-
-  ParseMore.prototype.toString = function() {
-    if ((this.parsedLine != null) && (this.snippet != null)) {
-      return '<ParseMore> ' + this.message + ' (line ' + this.parsedLine + ': \'' + this.snippet + '\')';
-    } else {
-      return '<ParseMore> ' + this.message;
-    }
-  };
-
-  return ParseMore;
-
-})(Error);
-
-module.exports = ParseMore;
-
-
-},{}],6:[function(require,module,exports){
-var DumpException, Escaper, Inline, ParseException, ParseMore, Pattern, Unescaper, Utils,
-  indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-Pattern = require('./Pattern');
-
-Unescaper = require('./Unescaper');
-
-Escaper = require('./Escaper');
-
-Utils = require('./Utils');
-
-ParseException = require('./Exception/ParseException');
-
-ParseMore = require('./Exception/ParseMore');
-
-DumpException = require('./Exception/DumpException');
-
-Inline = (function() {
-  function Inline() {}
-
-  Inline.REGEX_QUOTED_STRING = '(?:"(?:[^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'(?:[^\']*(?:\'\'[^\']*)*)\')';
-
-  Inline.PATTERN_TRAILING_COMMENTS = new Pattern('^\\s*#.*$');
-
-  Inline.PATTERN_QUOTED_SCALAR = new Pattern('^' + Inline.REGEX_QUOTED_STRING);
-
-  Inline.PATTERN_THOUSAND_NUMERIC_SCALAR = new Pattern('^(-|\\+)?[0-9,]+(\\.[0-9]+)?$');
-
-  Inline.PATTERN_SCALAR_BY_DELIMITERS = {};
-
-  Inline.settings = {};
-
-  Inline.configure = function(exceptionOnInvalidType, objectDecoder) {
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = null;
-    }
-    if (objectDecoder == null) {
-      objectDecoder = null;
-    }
-    this.settings.exceptionOnInvalidType = exceptionOnInvalidType;
-    this.settings.objectDecoder = objectDecoder;
-  };
-
-  Inline.parse = function(value, exceptionOnInvalidType, objectDecoder) {
-    var context, result;
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectDecoder == null) {
-      objectDecoder = null;
-    }
-    this.settings.exceptionOnInvalidType = exceptionOnInvalidType;
-    this.settings.objectDecoder = objectDecoder;
-    if (value == null) {
-      return '';
-    }
-    value = Utils.trim(value);
-    if (0 === value.length) {
-      return '';
-    }
-    context = {
-      exceptionOnInvalidType: exceptionOnInvalidType,
-      objectDecoder: objectDecoder,
-      i: 0
-    };
-    switch (value.charAt(0)) {
-      case '[':
-        result = this.parseSequence(value, context);
-        ++context.i;
-        break;
-      case '{':
-        result = this.parseMapping(value, context);
-        ++context.i;
-        break;
-      default:
-        result = this.parseScalar(value, null, ['"', "'"], context);
-    }
-    if (this.PATTERN_TRAILING_COMMENTS.replace(value.slice(context.i), '') !== '') {
-      throw new ParseException('Unexpected characters near "' + value.slice(context.i) + '".');
-    }
-    return result;
-  };
-
-  Inline.dump = function(value, exceptionOnInvalidType, objectEncoder) {
-    var ref, result, type;
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectEncoder == null) {
-      objectEncoder = null;
-    }
-    if (value == null) {
-      return 'null';
-    }
-    type = typeof value;
-    if (type === 'object') {
-      if (value instanceof Date) {
-        return value.toISOString();
-      } else if (objectEncoder != null) {
-        result = objectEncoder(value);
-        if (typeof result === 'string' || (result != null)) {
-          return result;
-        }
-      }
-      return this.dumpObject(value);
-    }
-    if (type === 'boolean') {
-      return (value ? 'true' : 'false');
-    }
-    if (Utils.isDigits(value)) {
-      return (type === 'string' ? "'" + value + "'" : String(parseInt(value)));
-    }
-    if (Utils.isNumeric(value)) {
-      return (type === 'string' ? "'" + value + "'" : String(parseFloat(value)));
-    }
-    if (type === 'number') {
-      return (value === Infinity ? '.Inf' : (value === -Infinity ? '-.Inf' : (isNaN(value) ? '.NaN' : value)));
-    }
-    if (Escaper.requiresDoubleQuoting(value)) {
-      return Escaper.escapeWithDoubleQuotes(value);
-    }
-    if (Escaper.requiresSingleQuoting(value)) {
-      return Escaper.escapeWithSingleQuotes(value);
-    }
-    if ('' === value) {
-      return '""';
-    }
-    if (Utils.PATTERN_DATE.test(value)) {
-      return "'" + value + "'";
-    }
-    if ((ref = value.toLowerCase()) === 'null' || ref === '~' || ref === 'true' || ref === 'false') {
-      return "'" + value + "'";
-    }
-    return value;
-  };
-
-  Inline.dumpObject = function(value, exceptionOnInvalidType, objectSupport) {
-    var j, key, len1, output, val;
-    if (objectSupport == null) {
-      objectSupport = null;
-    }
-    if (value instanceof Array) {
-      output = [];
-      for (j = 0, len1 = value.length; j < len1; j++) {
-        val = value[j];
-        output.push(this.dump(val));
-      }
-      return '[' + output.join(', ') + ']';
-    } else {
-      output = [];
-      for (key in value) {
-        val = value[key];
-        output.push(this.dump(key) + ': ' + this.dump(val));
-      }
-      return '{' + output.join(', ') + '}';
-    }
-  };
-
-  Inline.parseScalar = function(scalar, delimiters, stringDelimiters, context, evaluate) {
-    var i, joinedDelimiters, match, output, pattern, ref, ref1, strpos, tmp;
-    if (delimiters == null) {
-      delimiters = null;
-    }
-    if (stringDelimiters == null) {
-      stringDelimiters = ['"', "'"];
-    }
-    if (context == null) {
-      context = null;
-    }
-    if (evaluate == null) {
-      evaluate = true;
-    }
-    if (context == null) {
-      context = {
-        exceptionOnInvalidType: this.settings.exceptionOnInvalidType,
-        objectDecoder: this.settings.objectDecoder,
-        i: 0
-      };
-    }
-    i = context.i;
-    if (ref = scalar.charAt(i), indexOf.call(stringDelimiters, ref) >= 0) {
-      output = this.parseQuotedScalar(scalar, context);
-      i = context.i;
-      if (delimiters != null) {
-        tmp = Utils.ltrim(scalar.slice(i), ' ');
-        if (!(ref1 = tmp.charAt(0), indexOf.call(delimiters, ref1) >= 0)) {
-          throw new ParseException('Unexpected characters (' + scalar.slice(i) + ').');
-        }
-      }
-    } else {
-      if (!delimiters) {
-        output = scalar.slice(i);
-        i += output.length;
-        strpos = output.indexOf(' #');
-        if (strpos !== -1) {
-          output = Utils.rtrim(output.slice(0, strpos));
-        }
-      } else {
-        joinedDelimiters = delimiters.join('|');
-        pattern = this.PATTERN_SCALAR_BY_DELIMITERS[joinedDelimiters];
-        if (pattern == null) {
-          pattern = new Pattern('^(.+?)(' + joinedDelimiters + ')');
-          this.PATTERN_SCALAR_BY_DELIMITERS[joinedDelimiters] = pattern;
-        }
-        if (match = pattern.exec(scalar.slice(i))) {
-          output = match[1];
-          i += output.length;
-        } else {
-          throw new ParseException('Malformed inline YAML string (' + scalar + ').');
-        }
-      }
-      if (evaluate) {
-        output = this.evaluateScalar(output, context);
-      }
-    }
-    context.i = i;
-    return output;
-  };
-
-  Inline.parseQuotedScalar = function(scalar, context) {
-    var i, match, output;
-    i = context.i;
-    if (!(match = this.PATTERN_QUOTED_SCALAR.exec(scalar.slice(i)))) {
-      throw new ParseMore('Malformed inline YAML string (' + scalar.slice(i) + ').');
-    }
-    output = match[0].substr(1, match[0].length - 2);
-    if ('"' === scalar.charAt(i)) {
-      output = Unescaper.unescapeDoubleQuotedString(output);
-    } else {
-      output = Unescaper.unescapeSingleQuotedString(output);
-    }
-    i += match[0].length;
-    context.i = i;
-    return output;
-  };
-
-  Inline.parseSequence = function(sequence, context) {
-    var e, error, i, isQuoted, len, output, ref, value;
-    output = [];
-    len = sequence.length;
-    i = context.i;
-    i += 1;
-    while (i < len) {
-      context.i = i;
-      switch (sequence.charAt(i)) {
-        case '[':
-          output.push(this.parseSequence(sequence, context));
-          i = context.i;
-          break;
-        case '{':
-          output.push(this.parseMapping(sequence, context));
-          i = context.i;
-          break;
-        case ']':
-          return output;
-        case ',':
-        case ' ':
-        case "\n":
-          break;
-        default:
-          isQuoted = ((ref = sequence.charAt(i)) === '"' || ref === "'");
-          value = this.parseScalar(sequence, [',', ']'], ['"', "'"], context);
-          i = context.i;
-          if (!isQuoted && typeof value === 'string' && (value.indexOf(': ') !== -1 || value.indexOf(":\n") !== -1)) {
-            try {
-              value = this.parseMapping('{' + value + '}');
-            } catch (error) {
-              e = error;
-            }
-          }
-          output.push(value);
-          --i;
-      }
-      ++i;
-    }
-    throw new ParseMore('Malformed inline YAML string ' + sequence);
-  };
-
-  Inline.parseMapping = function(mapping, context) {
-    var done, i, key, len, output, shouldContinueWhileLoop, value;
-    output = {};
-    len = mapping.length;
-    i = context.i;
-    i += 1;
-    shouldContinueWhileLoop = false;
-    while (i < len) {
-      context.i = i;
-      switch (mapping.charAt(i)) {
-        case ' ':
-        case ',':
-        case "\n":
-          ++i;
-          context.i = i;
-          shouldContinueWhileLoop = true;
-          break;
-        case '}':
-          return output;
-      }
-      if (shouldContinueWhileLoop) {
-        shouldContinueWhileLoop = false;
-        continue;
-      }
-      key = this.parseScalar(mapping, [':', ' ', "\n"], ['"', "'"], context, false);
-      i = context.i;
-      done = false;
-      while (i < len) {
-        context.i = i;
-        switch (mapping.charAt(i)) {
-          case '[':
-            value = this.parseSequence(mapping, context);
-            i = context.i;
-            if (output[key] === void 0) {
-              output[key] = value;
-            }
-            done = true;
-            break;
-          case '{':
-            value = this.parseMapping(mapping, context);
-            i = context.i;
-            if (output[key] === void 0) {
-              output[key] = value;
-            }
-            done = true;
-            break;
-          case ':':
-          case ' ':
-          case "\n":
-            break;
-          default:
-            value = this.parseScalar(mapping, [',', '}'], ['"', "'"], context);
-            i = context.i;
-            if (output[key] === void 0) {
-              output[key] = value;
-            }
-            done = true;
-            --i;
-        }
-        ++i;
-        if (done) {
-          break;
-        }
-      }
-    }
-    throw new ParseMore('Malformed inline YAML string ' + mapping);
-  };
-
-  Inline.evaluateScalar = function(scalar, context) {
-    var cast, date, exceptionOnInvalidType, firstChar, firstSpace, firstWord, objectDecoder, raw, scalarLower, subValue, trimmedScalar;
-    scalar = Utils.trim(scalar);
-    scalarLower = scalar.toLowerCase();
-    switch (scalarLower) {
-      case 'null':
-      case '':
-      case '~':
-        return null;
-      case 'true':
-        return true;
-      case 'false':
-        return false;
-      case '.inf':
-        return Infinity;
-      case '.nan':
-        return NaN;
-      case '-.inf':
-        return Infinity;
-      default:
-        firstChar = scalarLower.charAt(0);
-        switch (firstChar) {
-          case '!':
-            firstSpace = scalar.indexOf(' ');
-            if (firstSpace === -1) {
-              firstWord = scalarLower;
-            } else {
-              firstWord = scalarLower.slice(0, firstSpace);
-            }
-            switch (firstWord) {
-              case '!':
-                if (firstSpace !== -1) {
-                  return parseInt(this.parseScalar(scalar.slice(2)));
-                }
-                return null;
-              case '!str':
-                return Utils.ltrim(scalar.slice(4));
-              case '!!str':
-                return Utils.ltrim(scalar.slice(5));
-              case '!!int':
-                return parseInt(this.parseScalar(scalar.slice(5)));
-              case '!!bool':
-                return Utils.parseBoolean(this.parseScalar(scalar.slice(6)), false);
-              case '!!float':
-                return parseFloat(this.parseScalar(scalar.slice(7)));
-              case '!!timestamp':
-                return Utils.stringToDate(Utils.ltrim(scalar.slice(11)));
-              default:
-                if (context == null) {
-                  context = {
-                    exceptionOnInvalidType: this.settings.exceptionOnInvalidType,
-                    objectDecoder: this.settings.objectDecoder,
-                    i: 0
-                  };
-                }
-                objectDecoder = context.objectDecoder, exceptionOnInvalidType = context.exceptionOnInvalidType;
-                if (objectDecoder) {
-                  trimmedScalar = Utils.rtrim(scalar);
-                  firstSpace = trimmedScalar.indexOf(' ');
-                  if (firstSpace === -1) {
-                    return objectDecoder(trimmedScalar, null);
-                  } else {
-                    subValue = Utils.ltrim(trimmedScalar.slice(firstSpace + 1));
-                    if (!(subValue.length > 0)) {
-                      subValue = null;
-                    }
-                    return objectDecoder(trimmedScalar.slice(0, firstSpace), subValue);
-                  }
-                }
-                if (exceptionOnInvalidType) {
-                  throw new ParseException('Custom object support when parsing a YAML file has been disabled.');
-                }
-                return null;
-            }
-            break;
-          case '0':
-            if ('0x' === scalar.slice(0, 2)) {
-              return Utils.hexDec(scalar);
-            } else if (Utils.isDigits(scalar)) {
-              return Utils.octDec(scalar);
-            } else if (Utils.isNumeric(scalar)) {
-              return parseFloat(scalar);
-            } else {
-              return scalar;
-            }
-            break;
-          case '+':
-            if (Utils.isDigits(scalar)) {
-              raw = scalar;
-              cast = parseInt(raw);
-              if (raw === String(cast)) {
-                return cast;
-              } else {
-                return raw;
-              }
-            } else if (Utils.isNumeric(scalar)) {
-              return parseFloat(scalar);
-            } else if (this.PATTERN_THOUSAND_NUMERIC_SCALAR.test(scalar)) {
-              return parseFloat(scalar.replace(',', ''));
-            }
-            return scalar;
-          case '-':
-            if (Utils.isDigits(scalar.slice(1))) {
-              if ('0' === scalar.charAt(1)) {
-                return -Utils.octDec(scalar.slice(1));
-              } else {
-                raw = scalar.slice(1);
-                cast = parseInt(raw);
-                if (raw === String(cast)) {
-                  return -cast;
-                } else {
-                  return -raw;
-                }
-              }
-            } else if (Utils.isNumeric(scalar)) {
-              return parseFloat(scalar);
-            } else if (this.PATTERN_THOUSAND_NUMERIC_SCALAR.test(scalar)) {
-              return parseFloat(scalar.replace(',', ''));
-            }
-            return scalar;
-          default:
-            if (date = Utils.stringToDate(scalar)) {
-              return date;
-            } else if (Utils.isNumeric(scalar)) {
-              return parseFloat(scalar);
-            } else if (this.PATTERN_THOUSAND_NUMERIC_SCALAR.test(scalar)) {
-              return parseFloat(scalar.replace(',', ''));
-            }
-            return scalar;
-        }
-    }
-  };
-
-  return Inline;
-
-})();
-
-module.exports = Inline;
-
-
-},{"./Escaper":2,"./Exception/DumpException":3,"./Exception/ParseException":4,"./Exception/ParseMore":5,"./Pattern":8,"./Unescaper":9,"./Utils":10}],7:[function(require,module,exports){
-var Inline, ParseException, ParseMore, Parser, Pattern, Utils;
-
-Inline = require('./Inline');
-
-Pattern = require('./Pattern');
-
-Utils = require('./Utils');
-
-ParseException = require('./Exception/ParseException');
-
-ParseMore = require('./Exception/ParseMore');
-
-Parser = (function() {
-  Parser.prototype.PATTERN_FOLDED_SCALAR_ALL = new Pattern('^(?:(?<type>![^\\|>]*)\\s+)?(?<separator>\\||>)(?<modifiers>\\+|\\-|\\d+|\\+\\d+|\\-\\d+|\\d+\\+|\\d+\\-)?(?<comments> +#.*)?$');
-
-  Parser.prototype.PATTERN_FOLDED_SCALAR_END = new Pattern('(?<separator>\\||>)(?<modifiers>\\+|\\-|\\d+|\\+\\d+|\\-\\d+|\\d+\\+|\\d+\\-)?(?<comments> +#.*)?$');
-
-  Parser.prototype.PATTERN_SEQUENCE_ITEM = new Pattern('^\\-((?<leadspaces>\\s+)(?<value>.+?))?\\s*$');
-
-  Parser.prototype.PATTERN_ANCHOR_VALUE = new Pattern('^&(?<ref>[^ ]+) *(?<value>.*)');
-
-  Parser.prototype.PATTERN_COMPACT_NOTATION = new Pattern('^(?<key>' + Inline.REGEX_QUOTED_STRING + '|[^ \'"\\{\\[].*?) *\\:(\\s+(?<value>.+?))?\\s*$');
-
-  Parser.prototype.PATTERN_MAPPING_ITEM = new Pattern('^(?<key>' + Inline.REGEX_QUOTED_STRING + '|[^ \'"\\[\\{].*?) *\\:(\\s+(?<value>.+?))?\\s*$');
-
-  Parser.prototype.PATTERN_DECIMAL = new Pattern('\\d+');
-
-  Parser.prototype.PATTERN_INDENT_SPACES = new Pattern('^ +');
-
-  Parser.prototype.PATTERN_TRAILING_LINES = new Pattern('(\n*)$');
-
-  Parser.prototype.PATTERN_YAML_HEADER = new Pattern('^\\%YAML[: ][\\d\\.]+.*\n', 'm');
-
-  Parser.prototype.PATTERN_LEADING_COMMENTS = new Pattern('^(\\#.*?\n)+', 'm');
-
-  Parser.prototype.PATTERN_DOCUMENT_MARKER_START = new Pattern('^\\-\\-\\-.*?\n', 'm');
-
-  Parser.prototype.PATTERN_DOCUMENT_MARKER_END = new Pattern('^\\.\\.\\.\\s*$', 'm');
-
-  Parser.prototype.PATTERN_FOLDED_SCALAR_BY_INDENTATION = {};
-
-  Parser.prototype.CONTEXT_NONE = 0;
-
-  Parser.prototype.CONTEXT_SEQUENCE = 1;
-
-  Parser.prototype.CONTEXT_MAPPING = 2;
-
-  function Parser(offset) {
-    this.offset = offset != null ? offset : 0;
-    this.lines = [];
-    this.currentLineNb = -1;
-    this.currentLine = '';
-    this.refs = {};
-  }
-
-  Parser.prototype.parse = function(value, exceptionOnInvalidType, objectDecoder) {
-    var alias, allowOverwrite, block, c, context, data, e, error, error1, error2, first, i, indent, isRef, j, k, key, l, lastKey, len, len1, len2, len3, lineCount, m, matches, mergeNode, n, name, parsed, parsedItem, parser, ref, ref1, ref2, refName, refValue, val, values;
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectDecoder == null) {
-      objectDecoder = null;
-    }
-    this.currentLineNb = -1;
-    this.currentLine = '';
-    this.lines = this.cleanup(value).split("\n");
-    data = null;
-    context = this.CONTEXT_NONE;
-    allowOverwrite = false;
-    while (this.moveToNextLine()) {
-      if (this.isCurrentLineEmpty()) {
-        continue;
-      }
-      if ("\t" === this.currentLine[0]) {
-        throw new ParseException('A YAML file cannot contain tabs as indentation.', this.getRealCurrentLineNb() + 1, this.currentLine);
-      }
-      isRef = mergeNode = false;
-      if (values = this.PATTERN_SEQUENCE_ITEM.exec(this.currentLine)) {
-        if (this.CONTEXT_MAPPING === context) {
-          throw new ParseException('You cannot define a sequence item when in a mapping');
-        }
-        context = this.CONTEXT_SEQUENCE;
-        if (data == null) {
-          data = [];
-        }
-        if ((values.value != null) && (matches = this.PATTERN_ANCHOR_VALUE.exec(values.value))) {
-          isRef = matches.ref;
-          values.value = matches.value;
-        }
-        if (!(values.value != null) || '' === Utils.trim(values.value, ' ') || Utils.ltrim(values.value, ' ').indexOf('#') === 0) {
-          if (this.currentLineNb < this.lines.length - 1 && !this.isNextLineUnIndentedCollection()) {
-            c = this.getRealCurrentLineNb() + 1;
-            parser = new Parser(c);
-            parser.refs = this.refs;
-            data.push(parser.parse(this.getNextEmbedBlock(null, true), exceptionOnInvalidType, objectDecoder));
-          } else {
-            data.push(null);
-          }
-        } else {
-          if (((ref = values.leadspaces) != null ? ref.length : void 0) && (matches = this.PATTERN_COMPACT_NOTATION.exec(values.value))) {
-            c = this.getRealCurrentLineNb();
-            parser = new Parser(c);
-            parser.refs = this.refs;
-            block = values.value;
-            indent = this.getCurrentLineIndentation();
-            if (this.isNextLineIndented(false)) {
-              block += "\n" + this.getNextEmbedBlock(indent + values.leadspaces.length + 1, true);
-            }
-            data.push(parser.parse(block, exceptionOnInvalidType, objectDecoder));
-          } else {
-            data.push(this.parseValue(values.value, exceptionOnInvalidType, objectDecoder));
-          }
-        }
-      } else if ((values = this.PATTERN_MAPPING_ITEM.exec(this.currentLine)) && values.key.indexOf(' #') === -1) {
-        if (this.CONTEXT_SEQUENCE === context) {
-          throw new ParseException('You cannot define a mapping item when in a sequence');
-        }
-        context = this.CONTEXT_MAPPING;
-        if (data == null) {
-          data = {};
-        }
-        Inline.configure(exceptionOnInvalidType, objectDecoder);
-        try {
-          key = Inline.parseScalar(values.key);
-        } catch (error) {
-          e = error;
-          e.parsedLine = this.getRealCurrentLineNb() + 1;
-          e.snippet = this.currentLine;
-          throw e;
-        }
-        if ('<<' === key) {
-          mergeNode = true;
-          allowOverwrite = true;
-          if (((ref1 = values.value) != null ? ref1.indexOf('*') : void 0) === 0) {
-            refName = values.value.slice(1);
-            if (this.refs[refName] == null) {
-              throw new ParseException('Reference "' + refName + '" does not exist.', this.getRealCurrentLineNb() + 1, this.currentLine);
-            }
-            refValue = this.refs[refName];
-            if (typeof refValue !== 'object') {
-              throw new ParseException('YAML merge keys used with a scalar value instead of an object.', this.getRealCurrentLineNb() + 1, this.currentLine);
-            }
-            if (refValue instanceof Array) {
-              for (i = j = 0, len = refValue.length; j < len; i = ++j) {
-                value = refValue[i];
-                if (data[name = String(i)] == null) {
-                  data[name] = value;
-                }
-              }
-            } else {
-              for (key in refValue) {
-                value = refValue[key];
-                if (data[key] == null) {
-                  data[key] = value;
-                }
-              }
-            }
-          } else {
-            if ((values.value != null) && values.value !== '') {
-              value = values.value;
-            } else {
-              value = this.getNextEmbedBlock();
-            }
-            c = this.getRealCurrentLineNb() + 1;
-            parser = new Parser(c);
-            parser.refs = this.refs;
-            parsed = parser.parse(value, exceptionOnInvalidType);
-            if (typeof parsed !== 'object') {
-              throw new ParseException('YAML merge keys used with a scalar value instead of an object.', this.getRealCurrentLineNb() + 1, this.currentLine);
-            }
-            if (parsed instanceof Array) {
-              for (l = 0, len1 = parsed.length; l < len1; l++) {
-                parsedItem = parsed[l];
-                if (typeof parsedItem !== 'object') {
-                  throw new ParseException('Merge items must be objects.', this.getRealCurrentLineNb() + 1, parsedItem);
-                }
-                if (parsedItem instanceof Array) {
-                  for (i = m = 0, len2 = parsedItem.length; m < len2; i = ++m) {
-                    value = parsedItem[i];
-                    k = String(i);
-                    if (!data.hasOwnProperty(k)) {
-                      data[k] = value;
-                    }
-                  }
-                } else {
-                  for (key in parsedItem) {
-                    value = parsedItem[key];
-                    if (!data.hasOwnProperty(key)) {
-                      data[key] = value;
-                    }
-                  }
-                }
-              }
-            } else {
-              for (key in parsed) {
-                value = parsed[key];
-                if (!data.hasOwnProperty(key)) {
-                  data[key] = value;
-                }
-              }
-            }
-          }
-        } else if ((values.value != null) && (matches = this.PATTERN_ANCHOR_VALUE.exec(values.value))) {
-          isRef = matches.ref;
-          values.value = matches.value;
-        }
-        if (mergeNode) {
-
-        } else if (!(values.value != null) || '' === Utils.trim(values.value, ' ') || Utils.ltrim(values.value, ' ').indexOf('#') === 0) {
-          if (!(this.isNextLineIndented()) && !(this.isNextLineUnIndentedCollection())) {
-            if (allowOverwrite || data[key] === void 0) {
-              data[key] = null;
-            }
-          } else {
-            c = this.getRealCurrentLineNb() + 1;
-            parser = new Parser(c);
-            parser.refs = this.refs;
-            val = parser.parse(this.getNextEmbedBlock(), exceptionOnInvalidType, objectDecoder);
-            if (allowOverwrite || data[key] === void 0) {
-              data[key] = val;
-            }
-          }
-        } else {
-          val = this.parseValue(values.value, exceptionOnInvalidType, objectDecoder);
-          if (allowOverwrite || data[key] === void 0) {
-            data[key] = val;
-          }
-        }
-      } else {
-        lineCount = this.lines.length;
-        if (1 === lineCount || (2 === lineCount && Utils.isEmpty(this.lines[1]))) {
-          try {
-            value = Inline.parse(this.lines[0], exceptionOnInvalidType, objectDecoder);
-          } catch (error1) {
-            e = error1;
-            e.parsedLine = this.getRealCurrentLineNb() + 1;
-            e.snippet = this.currentLine;
-            throw e;
-          }
-          if (typeof value === 'object') {
-            if (value instanceof Array) {
-              first = value[0];
-            } else {
-              for (key in value) {
-                first = value[key];
-                break;
-              }
-            }
-            if (typeof first === 'string' && first.indexOf('*') === 0) {
-              data = [];
-              for (n = 0, len3 = value.length; n < len3; n++) {
-                alias = value[n];
-                data.push(this.refs[alias.slice(1)]);
-              }
-              value = data;
-            }
-          }
-          return value;
-        } else if ((ref2 = Utils.ltrim(value).charAt(0)) === '[' || ref2 === '{') {
-          try {
-            return Inline.parse(value, exceptionOnInvalidType, objectDecoder);
-          } catch (error2) {
-            e = error2;
-            e.parsedLine = this.getRealCurrentLineNb() + 1;
-            e.snippet = this.currentLine;
-            throw e;
-          }
-        }
-        throw new ParseException('Unable to parse.', this.getRealCurrentLineNb() + 1, this.currentLine);
-      }
-      if (isRef) {
-        if (data instanceof Array) {
-          this.refs[isRef] = data[data.length - 1];
-        } else {
-          lastKey = null;
-          for (key in data) {
-            lastKey = key;
-          }
-          this.refs[isRef] = data[lastKey];
-        }
-      }
-    }
-    if (Utils.isEmpty(data)) {
-      return null;
-    } else {
-      return data;
-    }
-  };
-
-  Parser.prototype.getRealCurrentLineNb = function() {
-    return this.currentLineNb + this.offset;
-  };
-
-  Parser.prototype.getCurrentLineIndentation = function() {
-    return this.currentLine.length - Utils.ltrim(this.currentLine, ' ').length;
-  };
-
-  Parser.prototype.getNextEmbedBlock = function(indentation, includeUnindentedCollection) {
-    var data, indent, isItUnindentedCollection, newIndent, removeComments, removeCommentsPattern, unindentedEmbedBlock;
-    if (indentation == null) {
-      indentation = null;
-    }
-    if (includeUnindentedCollection == null) {
-      includeUnindentedCollection = false;
-    }
-    this.moveToNextLine();
-    if (indentation == null) {
-      newIndent = this.getCurrentLineIndentation();
-      unindentedEmbedBlock = this.isStringUnIndentedCollectionItem(this.currentLine);
-      if (!(this.isCurrentLineEmpty()) && 0 === newIndent && !unindentedEmbedBlock) {
-        throw new ParseException('Indentation problem.', this.getRealCurrentLineNb() + 1, this.currentLine);
-      }
-    } else {
-      newIndent = indentation;
-    }
-    data = [this.currentLine.slice(newIndent)];
-    if (!includeUnindentedCollection) {
-      isItUnindentedCollection = this.isStringUnIndentedCollectionItem(this.currentLine);
-    }
-    removeCommentsPattern = this.PATTERN_FOLDED_SCALAR_END;
-    removeComments = !removeCommentsPattern.test(this.currentLine);
-    while (this.moveToNextLine()) {
-      indent = this.getCurrentLineIndentation();
-      if (indent === newIndent) {
-        removeComments = !removeCommentsPattern.test(this.currentLine);
-      }
-      if (removeComments && this.isCurrentLineComment()) {
-        continue;
-      }
-      if (this.isCurrentLineBlank()) {
-        data.push(this.currentLine.slice(newIndent));
-        continue;
-      }
-      if (isItUnindentedCollection && !this.isStringUnIndentedCollectionItem(this.currentLine) && indent === newIndent) {
-        this.moveToPreviousLine();
-        break;
-      }
-      if (indent >= newIndent) {
-        data.push(this.currentLine.slice(newIndent));
-      } else if (Utils.ltrim(this.currentLine).charAt(0) === '#') {
-
-      } else if (0 === indent) {
-        this.moveToPreviousLine();
-        break;
-      } else {
-        throw new ParseException('Indentation problem.', this.getRealCurrentLineNb() + 1, this.currentLine);
-      }
-    }
-    return data.join("\n");
-  };
-
-  Parser.prototype.moveToNextLine = function() {
-    if (this.currentLineNb >= this.lines.length - 1) {
-      return false;
-    }
-    this.currentLine = this.lines[++this.currentLineNb];
-    return true;
-  };
-
-  Parser.prototype.moveToPreviousLine = function() {
-    this.currentLine = this.lines[--this.currentLineNb];
-  };
-
-  Parser.prototype.parseValue = function(value, exceptionOnInvalidType, objectDecoder) {
-    var e, error, foldedIndent, matches, modifiers, pos, ref, ref1, val;
-    if (0 === value.indexOf('*')) {
-      pos = value.indexOf('#');
-      if (pos !== -1) {
-        value = value.substr(1, pos - 2);
-      } else {
-        value = value.slice(1);
-      }
-      if (this.refs[value] === void 0) {
-        throw new ParseException('Reference "' + value + '" does not exist.', this.currentLine);
-      }
-      return this.refs[value];
-    }
-    if (matches = this.PATTERN_FOLDED_SCALAR_ALL.exec(value)) {
-      modifiers = (ref = matches.modifiers) != null ? ref : '';
-      foldedIndent = Math.abs(parseInt(modifiers));
-      if (isNaN(foldedIndent)) {
-        foldedIndent = 0;
-      }
-      val = this.parseFoldedScalar(matches.separator, this.PATTERN_DECIMAL.replace(modifiers, ''), foldedIndent);
-      if (matches.type != null) {
-        Inline.configure(exceptionOnInvalidType, objectDecoder);
-        return Inline.parseScalar(matches.type + ' ' + val);
-      } else {
-        return val;
-      }
-    }
-    if ((ref1 = value.charAt(0)) === '[' || ref1 === '{' || ref1 === '"' || ref1 === "'") {
-      while (true) {
-        try {
-          return Inline.parse(value, exceptionOnInvalidType, objectDecoder);
-        } catch (error) {
-          e = error;
-          if (e instanceof ParseMore && this.moveToNextLine()) {
-            value += "\n" + Utils.trim(this.currentLine, ' ');
-          } else {
-            e.parsedLine = this.getRealCurrentLineNb() + 1;
-            e.snippet = this.currentLine;
-            throw e;
-          }
-        }
-      }
-    } else {
-      if (this.isNextLineIndented()) {
-        value += "\n" + this.getNextEmbedBlock();
-      }
-      return Inline.parse(value, exceptionOnInvalidType, objectDecoder);
-    }
-  };
-
-  Parser.prototype.parseFoldedScalar = function(separator, indicator, indentation) {
-    var isCurrentLineBlank, j, len, line, matches, newText, notEOF, pattern, ref, text;
-    if (indicator == null) {
-      indicator = '';
-    }
-    if (indentation == null) {
-      indentation = 0;
-    }
-    notEOF = this.moveToNextLine();
-    if (!notEOF) {
-      return '';
-    }
-    isCurrentLineBlank = this.isCurrentLineBlank();
-    text = '';
-    while (notEOF && isCurrentLineBlank) {
-      if (notEOF = this.moveToNextLine()) {
-        text += "\n";
-        isCurrentLineBlank = this.isCurrentLineBlank();
-      }
-    }
-    if (0 === indentation) {
-      if (matches = this.PATTERN_INDENT_SPACES.exec(this.currentLine)) {
-        indentation = matches[0].length;
-      }
-    }
-    if (indentation > 0) {
-      pattern = this.PATTERN_FOLDED_SCALAR_BY_INDENTATION[indentation];
-      if (pattern == null) {
-        pattern = new Pattern('^ {' + indentation + '}(.*)$');
-        Parser.prototype.PATTERN_FOLDED_SCALAR_BY_INDENTATION[indentation] = pattern;
-      }
-      while (notEOF && (isCurrentLineBlank || (matches = pattern.exec(this.currentLine)))) {
-        if (isCurrentLineBlank) {
-          text += this.currentLine.slice(indentation);
-        } else {
-          text += matches[1];
-        }
-        if (notEOF = this.moveToNextLine()) {
-          text += "\n";
-          isCurrentLineBlank = this.isCurrentLineBlank();
-        }
-      }
-    } else if (notEOF) {
-      text += "\n";
-    }
-    if (notEOF) {
-      this.moveToPreviousLine();
-    }
-    if ('>' === separator) {
-      newText = '';
-      ref = text.split("\n");
-      for (j = 0, len = ref.length; j < len; j++) {
-        line = ref[j];
-        if (line.length === 0 || line.charAt(0) === ' ') {
-          newText = Utils.rtrim(newText, ' ') + line + "\n";
-        } else {
-          newText += line + ' ';
-        }
-      }
-      text = newText;
-    }
-    if ('+' !== indicator) {
-      text = Utils.rtrim(text);
-    }
-    if ('' === indicator) {
-      text = this.PATTERN_TRAILING_LINES.replace(text, "\n");
-    } else if ('-' === indicator) {
-      text = this.PATTERN_TRAILING_LINES.replace(text, '');
-    }
-    return text;
-  };
-
-  Parser.prototype.isNextLineIndented = function(ignoreComments) {
-    var EOF, currentIndentation, ret;
-    if (ignoreComments == null) {
-      ignoreComments = true;
-    }
-    currentIndentation = this.getCurrentLineIndentation();
-    EOF = !this.moveToNextLine();
-    if (ignoreComments) {
-      while (!EOF && this.isCurrentLineEmpty()) {
-        EOF = !this.moveToNextLine();
-      }
-    } else {
-      while (!EOF && this.isCurrentLineBlank()) {
-        EOF = !this.moveToNextLine();
-      }
-    }
-    if (EOF) {
-      return false;
-    }
-    ret = false;
-    if (this.getCurrentLineIndentation() > currentIndentation) {
-      ret = true;
-    }
-    this.moveToPreviousLine();
-    return ret;
-  };
-
-  Parser.prototype.isCurrentLineEmpty = function() {
-    var trimmedLine;
-    trimmedLine = Utils.trim(this.currentLine, ' ');
-    return trimmedLine.length === 0 || trimmedLine.charAt(0) === '#';
-  };
-
-  Parser.prototype.isCurrentLineBlank = function() {
-    return '' === Utils.trim(this.currentLine, ' ');
-  };
-
-  Parser.prototype.isCurrentLineComment = function() {
-    var ltrimmedLine;
-    ltrimmedLine = Utils.ltrim(this.currentLine, ' ');
-    return ltrimmedLine.charAt(0) === '#';
-  };
-
-  Parser.prototype.cleanup = function(value) {
-    var count, i, indent, j, l, len, len1, line, lines, ref, ref1, ref2, smallestIndent, trimmedValue;
-    if (value.indexOf("\r") !== -1) {
-      value = value.split("\r\n").join("\n").split("\r").join("\n");
-    }
-    count = 0;
-    ref = this.PATTERN_YAML_HEADER.replaceAll(value, ''), value = ref[0], count = ref[1];
-    this.offset += count;
-    ref1 = this.PATTERN_LEADING_COMMENTS.replaceAll(value, '', 1), trimmedValue = ref1[0], count = ref1[1];
-    if (count === 1) {
-      this.offset += Utils.subStrCount(value, "\n") - Utils.subStrCount(trimmedValue, "\n");
-      value = trimmedValue;
-    }
-    ref2 = this.PATTERN_DOCUMENT_MARKER_START.replaceAll(value, '', 1), trimmedValue = ref2[0], count = ref2[1];
-    if (count === 1) {
-      this.offset += Utils.subStrCount(value, "\n") - Utils.subStrCount(trimmedValue, "\n");
-      value = trimmedValue;
-      value = this.PATTERN_DOCUMENT_MARKER_END.replace(value, '');
-    }
-    lines = value.split("\n");
-    smallestIndent = -1;
-    for (j = 0, len = lines.length; j < len; j++) {
-      line = lines[j];
-      if (Utils.trim(line, ' ').length === 0) {
-        continue;
-      }
-      indent = line.length - Utils.ltrim(line).length;
-      if (smallestIndent === -1 || indent < smallestIndent) {
-        smallestIndent = indent;
-      }
-    }
-    if (smallestIndent > 0) {
-      for (i = l = 0, len1 = lines.length; l < len1; i = ++l) {
-        line = lines[i];
-        lines[i] = line.slice(smallestIndent);
-      }
-      value = lines.join("\n");
-    }
-    return value;
-  };
-
-  Parser.prototype.isNextLineUnIndentedCollection = function(currentIndentation) {
-    var notEOF, ret;
-    if (currentIndentation == null) {
-      currentIndentation = null;
-    }
-    if (currentIndentation == null) {
-      currentIndentation = this.getCurrentLineIndentation();
-    }
-    notEOF = this.moveToNextLine();
-    while (notEOF && this.isCurrentLineEmpty()) {
-      notEOF = this.moveToNextLine();
-    }
-    if (false === notEOF) {
-      return false;
-    }
-    ret = false;
-    if (this.getCurrentLineIndentation() === currentIndentation && this.isStringUnIndentedCollectionItem(this.currentLine)) {
-      ret = true;
-    }
-    this.moveToPreviousLine();
-    return ret;
-  };
-
-  Parser.prototype.isStringUnIndentedCollectionItem = function() {
-    return this.currentLine === '-' || this.currentLine.slice(0, 2) === '- ';
-  };
-
-  return Parser;
-
-})();
-
-module.exports = Parser;
-
-
-},{"./Exception/ParseException":4,"./Exception/ParseMore":5,"./Inline":6,"./Pattern":8,"./Utils":10}],8:[function(require,module,exports){
-var Pattern;
-
-Pattern = (function() {
-  Pattern.prototype.regex = null;
-
-  Pattern.prototype.rawRegex = null;
-
-  Pattern.prototype.cleanedRegex = null;
-
-  Pattern.prototype.mapping = null;
-
-  function Pattern(rawRegex, modifiers) {
-    var _char, capturingBracketNumber, cleanedRegex, i, len, mapping, name, part, subChar;
-    if (modifiers == null) {
-      modifiers = '';
-    }
-    cleanedRegex = '';
-    len = rawRegex.length;
-    mapping = null;
-    capturingBracketNumber = 0;
-    i = 0;
-    while (i < len) {
-      _char = rawRegex.charAt(i);
-      if (_char === '\\') {
-        cleanedRegex += rawRegex.slice(i, +(i + 1) + 1 || 9e9);
-        i++;
-      } else if (_char === '(') {
-        if (i < len - 2) {
-          part = rawRegex.slice(i, +(i + 2) + 1 || 9e9);
-          if (part === '(?:') {
-            i += 2;
-            cleanedRegex += part;
-          } else if (part === '(?<') {
-            capturingBracketNumber++;
-            i += 2;
-            name = '';
-            while (i + 1 < len) {
-              subChar = rawRegex.charAt(i + 1);
-              if (subChar === '>') {
-                cleanedRegex += '(';
-                i++;
-                if (name.length > 0) {
-                  if (mapping == null) {
-                    mapping = {};
-                  }
-                  mapping[name] = capturingBracketNumber;
-                }
-                break;
-              } else {
-                name += subChar;
-              }
-              i++;
-            }
-          } else {
-            cleanedRegex += _char;
-            capturingBracketNumber++;
-          }
-        } else {
-          cleanedRegex += _char;
-        }
-      } else {
-        cleanedRegex += _char;
-      }
-      i++;
-    }
-    this.rawRegex = rawRegex;
-    this.cleanedRegex = cleanedRegex;
-    this.regex = new RegExp(this.cleanedRegex, 'g' + modifiers.replace('g', ''));
-    this.mapping = mapping;
-  }
-
-  Pattern.prototype.exec = function(str) {
-    var index, matches, name, ref;
-    this.regex.lastIndex = 0;
-    matches = this.regex.exec(str);
-    if (matches == null) {
-      return null;
-    }
-    if (this.mapping != null) {
-      ref = this.mapping;
-      for (name in ref) {
-        index = ref[name];
-        matches[name] = matches[index];
-      }
-    }
-    return matches;
-  };
-
-  Pattern.prototype.test = function(str) {
-    this.regex.lastIndex = 0;
-    return this.regex.test(str);
-  };
-
-  Pattern.prototype.replace = function(str, replacement) {
-    this.regex.lastIndex = 0;
-    return str.replace(this.regex, replacement);
-  };
-
-  Pattern.prototype.replaceAll = function(str, replacement, limit) {
-    var count;
-    if (limit == null) {
-      limit = 0;
-    }
-    this.regex.lastIndex = 0;
-    count = 0;
-    while (this.regex.test(str) && (limit === 0 || count < limit)) {
-      this.regex.lastIndex = 0;
-      str = str.replace(this.regex, replacement);
-      count++;
-    }
-    return [str, count];
-  };
-
-  return Pattern;
-
-})();
-
-module.exports = Pattern;
-
-
-},{}],9:[function(require,module,exports){
-var Pattern, Unescaper, Utils;
-
-Utils = require('./Utils');
-
-Pattern = require('./Pattern');
-
-Unescaper = (function() {
-  function Unescaper() {}
-
-  Unescaper.PATTERN_ESCAPED_CHARACTER = new Pattern('\\\\([0abt\tnvfre "\\/\\\\N_LP]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})');
-
-  Unescaper.unescapeSingleQuotedString = function(value) {
-    return value.replace(/\'\'/g, '\'');
-  };
-
-  Unescaper.unescapeDoubleQuotedString = function(value) {
-    if (this._unescapeCallback == null) {
-      this._unescapeCallback = (function(_this) {
-        return function(str) {
-          return _this.unescapeCharacter(str);
-        };
-      })(this);
-    }
-    return this.PATTERN_ESCAPED_CHARACTER.replace(value, this._unescapeCallback);
-  };
-
-  Unescaper.unescapeCharacter = function(value) {
-    var ch;
-    ch = String.fromCharCode;
-    switch (value.charAt(1)) {
-      case '0':
-        return ch(0);
-      case 'a':
-        return ch(7);
-      case 'b':
-        return ch(8);
-      case 't':
-        return "\t";
-      case "\t":
-        return "\t";
-      case 'n':
-        return "\n";
-      case 'v':
-        return ch(11);
-      case 'f':
-        return ch(12);
-      case 'r':
-        return ch(13);
-      case 'e':
-        return ch(27);
-      case ' ':
-        return ' ';
-      case '"':
-        return '"';
-      case '/':
-        return '/';
-      case '\\':
-        return '\\';
-      case 'N':
-        return ch(0x0085);
-      case '_':
-        return ch(0x00A0);
-      case 'L':
-        return ch(0x2028);
-      case 'P':
-        return ch(0x2029);
-      case 'x':
-        return Utils.utf8chr(Utils.hexDec(value.substr(2, 2)));
-      case 'u':
-        return Utils.utf8chr(Utils.hexDec(value.substr(2, 4)));
-      case 'U':
-        return Utils.utf8chr(Utils.hexDec(value.substr(2, 8)));
-      default:
-        return '';
-    }
-  };
-
-  return Unescaper;
-
-})();
-
-module.exports = Unescaper;
-
-
-},{"./Pattern":8,"./Utils":10}],10:[function(require,module,exports){
-var Pattern, Utils,
-  hasProp = {}.hasOwnProperty;
-
-Pattern = require('./Pattern');
-
-Utils = (function() {
-  function Utils() {}
-
-  Utils.REGEX_LEFT_TRIM_BY_CHAR = {};
-
-  Utils.REGEX_RIGHT_TRIM_BY_CHAR = {};
-
-  Utils.REGEX_SPACES = /\s+/g;
-
-  Utils.REGEX_DIGITS = /^\d+$/;
-
-  Utils.REGEX_OCTAL = /[^0-7]/gi;
-
-  Utils.REGEX_HEXADECIMAL = /[^a-f0-9]/gi;
-
-  Utils.PATTERN_DATE = new Pattern('^' + '(?<year>[0-9][0-9][0-9][0-9])' + '-(?<month>[0-9][0-9]?)' + '-(?<day>[0-9][0-9]?)' + '(?:(?:[Tt]|[ \t]+)' + '(?<hour>[0-9][0-9]?)' + ':(?<minute>[0-9][0-9])' + ':(?<second>[0-9][0-9])' + '(?:\.(?<fraction>[0-9]*))?' + '(?:[ \t]*(?<tz>Z|(?<tz_sign>[-+])(?<tz_hour>[0-9][0-9]?)' + '(?::(?<tz_minute>[0-9][0-9]))?))?)?' + '$', 'i');
-
-  Utils.LOCAL_TIMEZONE_OFFSET = new Date().getTimezoneOffset() * 60 * 1000;
-
-  Utils.trim = function(str, _char) {
-    var regexLeft, regexRight;
-    if (_char == null) {
-      _char = '\\s';
-    }
-    regexLeft = this.REGEX_LEFT_TRIM_BY_CHAR[_char];
-    if (regexLeft == null) {
-      this.REGEX_LEFT_TRIM_BY_CHAR[_char] = regexLeft = new RegExp('^' + _char + '' + _char + '*');
-    }
-    regexLeft.lastIndex = 0;
-    regexRight = this.REGEX_RIGHT_TRIM_BY_CHAR[_char];
-    if (regexRight == null) {
-      this.REGEX_RIGHT_TRIM_BY_CHAR[_char] = regexRight = new RegExp(_char + '' + _char + '*$');
-    }
-    regexRight.lastIndex = 0;
-    return str.replace(regexLeft, '').replace(regexRight, '');
-  };
-
-  Utils.ltrim = function(str, _char) {
-    var regexLeft;
-    if (_char == null) {
-      _char = '\\s';
-    }
-    regexLeft = this.REGEX_LEFT_TRIM_BY_CHAR[_char];
-    if (regexLeft == null) {
-      this.REGEX_LEFT_TRIM_BY_CHAR[_char] = regexLeft = new RegExp('^' + _char + '' + _char + '*');
-    }
-    regexLeft.lastIndex = 0;
-    return str.replace(regexLeft, '');
-  };
-
-  Utils.rtrim = function(str, _char) {
-    var regexRight;
-    if (_char == null) {
-      _char = '\\s';
-    }
-    regexRight = this.REGEX_RIGHT_TRIM_BY_CHAR[_char];
-    if (regexRight == null) {
-      this.REGEX_RIGHT_TRIM_BY_CHAR[_char] = regexRight = new RegExp(_char + '' + _char + '*$');
-    }
-    regexRight.lastIndex = 0;
-    return str.replace(regexRight, '');
-  };
-
-  Utils.isEmpty = function(value) {
-    return !value || value === '' || value === '0' || (value instanceof Array && value.length === 0) || this.isEmptyObject(value);
-  };
-
-  Utils.isEmptyObject = function(value) {
-    var k;
-    return value instanceof Object && ((function() {
-      var results;
-      results = [];
-      for (k in value) {
-        if (!hasProp.call(value, k)) continue;
-        results.push(k);
-      }
-      return results;
-    })()).length === 0;
-  };
-
-  Utils.subStrCount = function(string, subString, start, length) {
-    var c, i, j, len, ref, sublen;
-    c = 0;
-    string = '' + string;
-    subString = '' + subString;
-    if (start != null) {
-      string = string.slice(start);
-    }
-    if (length != null) {
-      string = string.slice(0, length);
-    }
-    len = string.length;
-    sublen = subString.length;
-    for (i = j = 0, ref = len; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
-      if (subString === string.slice(i, sublen)) {
-        c++;
-        i += sublen - 1;
-      }
-    }
-    return c;
-  };
-
-  Utils.isDigits = function(input) {
-    this.REGEX_DIGITS.lastIndex = 0;
-    return this.REGEX_DIGITS.test(input);
-  };
-
-  Utils.octDec = function(input) {
-    this.REGEX_OCTAL.lastIndex = 0;
-    return parseInt((input + '').replace(this.REGEX_OCTAL, ''), 8);
-  };
-
-  Utils.hexDec = function(input) {
-    this.REGEX_HEXADECIMAL.lastIndex = 0;
-    input = this.trim(input);
-    if ((input + '').slice(0, 2) === '0x') {
-      input = (input + '').slice(2);
-    }
-    return parseInt((input + '').replace(this.REGEX_HEXADECIMAL, ''), 16);
-  };
-
-  Utils.utf8chr = function(c) {
-    var ch;
-    ch = String.fromCharCode;
-    if (0x80 > (c %= 0x200000)) {
-      return ch(c);
-    }
-    if (0x800 > c) {
-      return ch(0xC0 | c >> 6) + ch(0x80 | c & 0x3F);
-    }
-    if (0x10000 > c) {
-      return ch(0xE0 | c >> 12) + ch(0x80 | c >> 6 & 0x3F) + ch(0x80 | c & 0x3F);
-    }
-    return ch(0xF0 | c >> 18) + ch(0x80 | c >> 12 & 0x3F) + ch(0x80 | c >> 6 & 0x3F) + ch(0x80 | c & 0x3F);
-  };
-
-  Utils.parseBoolean = function(input, strict) {
-    var lowerInput;
-    if (strict == null) {
-      strict = true;
-    }
-    if (typeof input === 'string') {
-      lowerInput = input.toLowerCase();
-      if (!strict) {
-        if (lowerInput === 'no') {
-          return false;
-        }
-      }
-      if (lowerInput === '0') {
-        return false;
-      }
-      if (lowerInput === 'false') {
-        return false;
-      }
-      if (lowerInput === '') {
-        return false;
-      }
-      return true;
-    }
-    return !!input;
-  };
-
-  Utils.isNumeric = function(input) {
-    this.REGEX_SPACES.lastIndex = 0;
-    return typeof input === 'number' || typeof input === 'string' && !isNaN(input) && input.replace(this.REGEX_SPACES, '') !== '';
-  };
-
-  Utils.stringToDate = function(str) {
-    var date, day, fraction, hour, info, minute, month, second, tz_hour, tz_minute, tz_offset, year;
-    if (!(str != null ? str.length : void 0)) {
-      return null;
-    }
-    info = this.PATTERN_DATE.exec(str);
-    if (!info) {
-      return null;
-    }
-    year = parseInt(info.year, 10);
-    month = parseInt(info.month, 10) - 1;
-    day = parseInt(info.day, 10);
-    if (info.hour == null) {
-      date = new Date(Date.UTC(year, month, day));
-      return date;
-    }
-    hour = parseInt(info.hour, 10);
-    minute = parseInt(info.minute, 10);
-    second = parseInt(info.second, 10);
-    if (info.fraction != null) {
-      fraction = info.fraction.slice(0, 3);
-      while (fraction.length < 3) {
-        fraction += '0';
-      }
-      fraction = parseInt(fraction, 10);
-    } else {
-      fraction = 0;
-    }
-    if (info.tz != null) {
-      tz_hour = parseInt(info.tz_hour, 10);
-      if (info.tz_minute != null) {
-        tz_minute = parseInt(info.tz_minute, 10);
-      } else {
-        tz_minute = 0;
-      }
-      tz_offset = (tz_hour * 60 + tz_minute) * 60000;
-      if ('-' === info.tz_sign) {
-        tz_offset *= -1;
-      }
-    }
-    date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
-    if (tz_offset) {
-      date.setTime(date.getTime() - tz_offset);
-    }
-    return date;
-  };
-
-  Utils.strRepeat = function(str, number) {
-    var i, res;
-    res = '';
-    i = 0;
-    while (i < number) {
-      res += str;
-      i++;
-    }
-    return res;
-  };
-
-  Utils.getStringFromFile = function(path, callback) {
-    var data, fs, j, len1, name, ref, req, xhr;
-    if (callback == null) {
-      callback = null;
-    }
-    xhr = null;
-    if (typeof window !== "undefined" && window !== null) {
-      if (window.XMLHttpRequest) {
-        xhr = new XMLHttpRequest();
-      } else if (window.ActiveXObject) {
-        ref = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
-        for (j = 0, len1 = ref.length; j < len1; j++) {
-          name = ref[j];
-          try {
-            xhr = new ActiveXObject(name);
-          } catch (undefined) {}
-        }
-      }
-    }
-    if (xhr != null) {
-      if (callback != null) {
-        xhr.onreadystatechange = function() {
-          if (xhr.readyState === 4) {
-            if (xhr.status === 200 || xhr.status === 0) {
-              return callback(xhr.responseText);
-            } else {
-              return callback(null);
-            }
-          }
-        };
-        xhr.open('GET', path, true);
-        return xhr.send(null);
-      } else {
-        xhr.open('GET', path, false);
-        xhr.send(null);
-        if (xhr.status === 200 || xhr.status === 0) {
-          return xhr.responseText;
-        }
-        return null;
-      }
-    } else {
-      req = require;
-      fs = req('fs');
-      if (callback != null) {
-        return fs.readFile(path, function(err, data) {
-          if (err) {
-            return callback(null);
-          } else {
-            return callback(String(data));
-          }
-        });
-      } else {
-        data = fs.readFileSync(path);
-        if (data != null) {
-          return String(data);
-        }
-        return null;
-      }
-    }
-  };
-
-  return Utils;
-
-})();
-
-module.exports = Utils;
-
-
-},{"./Pattern":8}],11:[function(require,module,exports){
-var Dumper, Parser, Utils, Yaml;
-
-Parser = require('./Parser');
-
-Dumper = require('./Dumper');
-
-Utils = require('./Utils');
-
-Yaml = (function() {
-  function Yaml() {}
-
-  Yaml.parse = function(input, exceptionOnInvalidType, objectDecoder) {
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectDecoder == null) {
-      objectDecoder = null;
-    }
-    return new Parser().parse(input, exceptionOnInvalidType, objectDecoder);
-  };
-
-  Yaml.parseFile = function(path, callback, exceptionOnInvalidType, objectDecoder) {
-    var input;
-    if (callback == null) {
-      callback = null;
-    }
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectDecoder == null) {
-      objectDecoder = null;
-    }
-    if (callback != null) {
-      return Utils.getStringFromFile(path, (function(_this) {
-        return function(input) {
-          var result;
-          result = null;
-          if (input != null) {
-            result = _this.parse(input, exceptionOnInvalidType, objectDecoder);
-          }
-          callback(result);
-        };
-      })(this));
-    } else {
-      input = Utils.getStringFromFile(path);
-      if (input != null) {
-        return this.parse(input, exceptionOnInvalidType, objectDecoder);
-      }
-      return null;
-    }
-  };
-
-  Yaml.dump = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
-    var yaml;
-    if (inline == null) {
-      inline = 2;
-    }
-    if (indent == null) {
-      indent = 4;
-    }
-    if (exceptionOnInvalidType == null) {
-      exceptionOnInvalidType = false;
-    }
-    if (objectEncoder == null) {
-      objectEncoder = null;
-    }
-    yaml = new Dumper();
-    yaml.indentation = indent;
-    return yaml.dump(input, inline, 0, exceptionOnInvalidType, objectEncoder);
-  };
-
-  Yaml.stringify = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
-    return this.dump(input, inline, indent, exceptionOnInvalidType, objectEncoder);
-  };
-
-  Yaml.load = function(path, callback, exceptionOnInvalidType, objectDecoder) {
-    return this.parseFile(path, callback, exceptionOnInvalidType, objectDecoder);
-  };
-
-  return Yaml;
-
-})();
-
-if (typeof window !== "undefined" && window !== null) {
-  window.YAML = Yaml;
-}
-
-if (typeof window === "undefined" || window === null) {
-  this.YAML = Yaml;
-}
-
-module.exports = Yaml;
-
-
-},{"./Dumper":1,"./Parser":7,"./Utils":10}]},{},[11]);

Різницю між файлами не показано, бо вона завелика
+ 0 - 942
public/lib/yamljs/dist/yaml.legacy.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/lib/yamljs/dist/yaml.min.js


+ 2 - 2
public/vwf/view/editor-new.js

@@ -1033,8 +1033,8 @@ define([
 
                                                     _app.saveWorld();
 
-                                                    let fileName = self.helpers.getRoot().root;
-                                                    _app.saveState(fileName);
+                                                    //let fileName = self.helpers.getRoot().root;
+                                                    //_app.saveState(fileName);
 
                                                    //// let fileName = self.helpers.worldStateName;
                                                     ////_app.saveStateAsFile(fileName);

+ 3 - 2
public/web/index-app.js

@@ -164,7 +164,8 @@ class IndexApp {
                                 }
                             }),
                         {
-                            $type: "p"
+                            $type: "span",
+                            style: "padding-right: 20px;"
                         },
                         window._app.widgets.buttonStroked(
                             {
@@ -178,7 +179,7 @@ class IndexApp {
                         {
                             $type: "p"
                         },
-                        window._app.widgets.buttonStroked(
+                        window._app.widgets.buttonRaised(
                             {
                                 "label": _l.t("my world protos"),
                                 "onclick": function (e) {

Деякі файли не було показано, через те що забагато файлів було змінено