瀏覽代碼

less-ified

tags/v0.2.0^2
big bad waffle 6 年之前
父節點
當前提交
ed2be1941d
共有 27 個檔案被更改,包括 814 行新增84 行删除
  1. +1
    -0
      helpers/passives/client/css/main.css
  2. +5
    -4
      helpers/passives/client/css/main.less
  3. +1
    -0
      helpers/passives/client/css/ui.less
  4. +1
    -1
      helpers/passives/client/index.html
  5. +6
    -0
      helpers/passives/client/js/client.js
  6. +8
    -2
      helpers/passives/client/js/generator.js
  7. +1
    -1
      helpers/passives/client/js/main.js
  8. +46
    -0
      helpers/passives/client/ui/templates/load/load.js
  9. +1
    -0
      helpers/passives/client/ui/templates/load/styles.css
  10. +27
    -0
      helpers/passives/client/ui/templates/load/styles.less
  11. +10
    -0
      helpers/passives/client/ui/templates/load/template.html
  12. +0
    -33
      helpers/passives/client/ui/templates/loadSave/loadSave.js
  13. +0
    -38
      helpers/passives/client/ui/templates/loadSave/styles.css
  14. +28
    -0
      helpers/passives/client/ui/templates/menu/menu.js
  15. +1
    -0
      helpers/passives/client/ui/templates/menu/styles.css
  16. +38
    -0
      helpers/passives/client/ui/templates/menu/styles.less
  17. +2
    -3
      helpers/passives/client/ui/templates/menu/template.html
  18. +0
    -0
     
  19. +30
    -0
      helpers/passives/client/ui/templates/save/save.js
  20. +1
    -0
      helpers/passives/client/ui/templates/save/styles.css
  21. +36
    -0
      helpers/passives/client/ui/templates/save/styles.less
  22. +9
    -0
      helpers/passives/client/ui/templates/save/template.html
  23. +15
    -2
      helpers/passives/server/index.js
  24. +25
    -0
      helpers/passives/server/nodemon.json
  25. +520
    -0
      helpers/passives/server/package-lock.json
  26. +1
    -0
      helpers/passives/server/package.json
  27. +1
    -0
      helpers/passives/server/saves/abc.json

+ 1
- 0
helpers/passives/client/css/main.css 查看文件

@@ -0,0 +1 @@
.q0{color:#f2f5f5}.q1{color:#3fa7dd}.q2{color:#ffeb38}.q3{color:#a24eff}.q4{color:#ff6942}.color-red{color:#d43346}.color-green{color:#80f643}html,body{width:100vw;height:100vh}body{background-color:#2d2136;padding:0;margin:0;overflow:hidden}.canvas,.ui-container{position:absolute}.ui-container{width:100%;height:100%;pointer-events:none}.ui-container>*{pointer-events:auto}

helpers/passives/client/styles.css → helpers/passives/client/css/main.less 查看文件

@@ -1,3 +1,4 @@
@import "../../../../src/client/css/colors.less";
html, body {
width: 100vw;
@@ -5,7 +6,7 @@ html, body {
}

body {
background-color: #2d2136;
background-color: @black;
padding: 0px;
margin: 0px;
overflow: hidden;
@@ -19,8 +20,8 @@ body {
width: 100%;
height: 100%;
pointer-events: none;
}

.ui-container > * {
pointer-events: auto;
> * {
pointer-events: auto;
}
}

+ 1
- 0
helpers/passives/client/css/ui.less 查看文件

@@ -0,0 +1 @@
@import "../../../../src/client/css/colors.less";

+ 1
- 1
helpers/passives/client/index.html 查看文件

@@ -2,7 +2,7 @@
<html>
<head>
<title>test</title>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="css/main.css">
<script src="plugins/require.js" data-main="js/app"></script>
</head>
<body>


+ 6
- 0
helpers/passives/client/js/client.js 查看文件

@@ -30,6 +30,12 @@ define([
}, callback);
},

getFileList: function (callback) {
this.socket.emit('request', {
action: 'getFileList'
}, callback);
},

onConnected: function (onReady) {
onReady();
}


+ 8
- 2
helpers/passives/client/js/generator.js 查看文件

@@ -176,8 +176,14 @@ define([
if (!input.isKeyDown('ctrl'))
this.nodes.forEach(n => (n.selected = false));

for (var i = from.x; i <= to.x; i++) {
for (var j = from.y; j <= to.y; j++) {
var lowX = Math.min(from.x, to.x);
var lowY = Math.min(from.y, to.y);

var highX = Math.max(from.x, to.x);
var highY = Math.max(from.y, to.y);

for (var i = lowX; i <= highX; i++) {
for (var j = lowY; j <= highY; j++) {
var node = this.findNode(i, j);
if (!node)
continue;


+ 1
- 1
helpers/passives/client/js/main.js 查看文件

@@ -37,7 +37,7 @@ define([
events.on('onMouseWheel', this.events.onMouseWheel.bind(this));
events.on('onKeyDown', this.events.onKeyDown.bind(this));

uiFactory.build('loadSave');
uiFactory.build('menu');

renderer.center(generator.nodes[0]);
this.render();


+ 46
- 0
helpers/passives/client/ui/templates/load/load.js 查看文件

@@ -0,0 +1,46 @@
define([
'html!./template',
'css!./styles',
'js/generator',
'js/client'
], function (
template,
styles,
generator,
client
) {
return {
tpl: template,
modal: true,
centered: true,

postRender: function () {
this.on('.btnLoad', 'click', this.actions.onLoad.bind(this));

client.getFileList(this.events.onGetFileList.bind(this));
},

actions: {
onLoad: function (fileName) {
client.load(fileName, generator.actions.load.bind(generator));
this.destroy();
}
},

events: {
onGetFileList: function (list) {
var el = this.find('.list').empty();

list.forEach(function (l) {
$('<div class="item">' + l + '</div>')
.appendTo(el)
.on('click', this.events.onClickItem.bind(this, l));
}, this);
},

onClickItem: function (item) {
this.actions.onLoad.call(this, item);
}
}
}
});

+ 1
- 0
helpers/passives/client/ui/templates/load/styles.css 查看文件

@@ -0,0 +1 @@
.q0{color:#f2f5f5}.q1{color:#3fa7dd}.q2{color:#ffeb38}.q3{color:#a24eff}.q4{color:#ff6942}.color-red{color:#d43346}.color-green{color:#80f643}.uiLoad{position:absolute;right:10px;top:10px;padding:10px;width:200px;background-color:#373041;text-align:center}.uiLoad .heading-text{color:#f2f5f5;margin-bottom:15px}.uiLoad .list .item{width:100%;color:#f2f5f5;background-color:#505360;padding:5px 0 5px 0}

+ 27
- 0
helpers/passives/client/ui/templates/load/styles.less 查看文件

@@ -0,0 +1,27 @@
@import "../../../css/ui.less";

.uiLoad {
position: absolute;
right: 10px;
top: 10px;
padding: 10px;
width: 200px;
background-color: #373041;
text-align: center;

.heading-text {
color: @white;
margin-bottom: 15px;
}

.list {

.item {
width: 100%;
color: @white;
background-color: @blackA;
padding: 5px 0px 5px 0px;
}
}
}

+ 10
- 0
helpers/passives/client/ui/templates/load/template.html 查看文件

@@ -0,0 +1,10 @@
<div class="uiLoad">
<div uiLoad="heading">
<div class="heading-text">Load Tree</div>
</div>
<div class="content">
<div class="list">
</div>
</div>
</div>

+ 0
- 33
helpers/passives/client/ui/templates/loadSave/loadSave.js 查看文件

@@ -1,33 +0,0 @@
define([
'html!./template',
'css!./styles',
'js/generator',
'js/client'
], function (
template,
styles,
generator,
client
) {
return {
tpl: template,

postRender: function () {
this.on('.btnLoad', 'click', this.events.onLoad.bind(this));
this.on('.btnSave', 'click', this.events.onSave.bind(this));
},

events: {
onLoad: function () {
var fileName = this.val('.fileName');
client.load(fileName, generator.actions.load.bind(generator));
},

onSave: function () {
var fileName = this.val('.fileName');
var data = generator.serialize();
client.save(fileName, data, generator.actions.load.bind(generator));
}
}
}
});

+ 0
- 38
helpers/passives/client/ui/templates/loadSave/styles.css 查看文件

@@ -1,38 +0,0 @@
.uiLoadSave {
position: absolute;
right: 10px;
top: 10px;
padding: 10px;

width: 200px;
background-color: #373041;
text-align: center;
}

.uiLoadSave .heading {
color: #fafcfc;
margin-bottom: 15px;
}

.uiLoadSave input {
border: none;
outline: none;
width: calc(100% - 10px);
height: 20px;
padding: 5px;
display: box;
}

.uiLoadSave .btn {
float: left;
width: calc((100% - 15px) / 2);
color: #fafcfc;
margin-top: 15px;
background-color: #3fa7dd;
padding: 10px;
box-sizing: border-box;
}

.uiLoadSave .btn:nth-child(2) {
margin-right: 15px;
}

+ 28
- 0
helpers/passives/client/ui/templates/menu/menu.js 查看文件

@@ -0,0 +1,28 @@
define([
'html!./template',
'css!./styles',
'ui/factory'
], function (
template,
styles,
uiFactory
) {
return {
tpl: template,

postRender: function () {
this.on('.btnLoad', 'click', this.actions.onLoad.bind(this));
this.on('.btnSave', 'click', this.actions.onSave.bind(this));
},

actions: {
onLoad: function () {
uiFactory.build('load');
},

onSave: function () {
uiFactory.build('save');
}
}
}
});

+ 1
- 0
helpers/passives/client/ui/templates/menu/styles.css 查看文件

@@ -0,0 +1 @@
.q0{color:#f2f5f5}.q1{color:#3fa7dd}.q2{color:#ffeb38}.q3{color:#a24eff}.q4{color:#ff6942}.color-red{color:#d43346}.color-green{color:#80f643}.uiMenu{position:absolute;right:10px;top:10px;padding:10px;width:200px;background-color:#373041;text-align:center}.uiMenu .heading{color:#f2f5f5;margin-bottom:15px}.uiMenu input{border:none;outline:none;width:calc(100% - 10px);height:20px;padding:5px;display:box}.uiMenu .btn{float:left;width:calc((100% - 15px) / 2);color:#f2f5f5;background-color:#3fa7dd;padding:10px;box-sizing:border-box}.uiMenu .btn:nth-child(1){margin-right:15px}

+ 38
- 0
helpers/passives/client/ui/templates/menu/styles.less 查看文件

@@ -0,0 +1,38 @@
@import "../../../css/ui.less";

.uiMenu {
position: absolute;
right: 10px;
top: 10px;
padding: 10px;
width: 200px;
background-color: @blackC;
text-align: center;

.heading {
color: @white;
margin-bottom: 15px;
}

input {
border: none;
outline: none;
width: calc(100% - 10px);
height: 20px;
padding: 5px;
display: box;
}

.btn {
float: left;
width: calc((100% - 15px) / 2);
color:@white;
background-color: @blueB;
padding: 10px;
box-sizing: border-box;

&:nth-child(1) {
margin-right: 15px;
}
}
}

helpers/passives/client/ui/templates/loadSave/template.html → helpers/passives/client/ui/templates/menu/template.html 查看文件

@@ -1,9 +1,8 @@
<div class="uiLoadSave">
<div class="uiMenu">
<div class="heading">
<div class="heading-text">Load/Save</div>
<div class="heading-text">Menu</div>
</div>
<div class="content">
<input type="text" class="fileName">
<div class="btn btnLoad">Load</div>
<div class="btn btnSave">Save</div>
</div>

+ 0
- 0
查看文件


+ 30
- 0
helpers/passives/client/ui/templates/save/save.js 查看文件

@@ -0,0 +1,30 @@
define([
'html!./template',
'css!./styles',
'js/generator',
'js/client'
], function (
template,
styles,
generator,
client
) {
return {
tpl: template,
modal: true,
centered: true,

postRender: function () {
this.on('.btnSave', 'click', this.actions.onSave.bind(this));
},

actions: {
onSave: function () {
var fileName = this.val('.fileName');
var data = generator.serialize();
client.save(fileName, data);
this.destroy();
}
}
}
});

+ 1
- 0
helpers/passives/client/ui/templates/save/styles.css 查看文件

@@ -0,0 +1 @@
.q0{color:#f2f5f5}.q1{color:#3fa7dd}.q2{color:#ffeb38}.q3{color:#a24eff}.q4{color:#ff6942}.color-red{color:#d43346}.color-green{color:#80f643}.uiSave{position:absolute;right:10px;top:10px;padding:10px;width:200px;background-color:#373041;text-align:center}.uiSave .heading{color:#f2f5f5;margin-bottom:15px}.uiSave input{border:none;outline:none;width:calc(100% - 10px);height:20px;padding:5px;display:box;margin-bottom:15px}.uiSave .btn{width:calc((100% - 15px) / 2);color:#f2f5f5;margin-top:15px;background-color:#3fa7dd;padding:10px;box-sizing:border-box;margin:0 auto}

+ 36
- 0
helpers/passives/client/ui/templates/save/styles.less 查看文件

@@ -0,0 +1,36 @@
@import "../../../css/ui.less";

.uiSave {
position: absolute;
right: 10px;
top: 10px;
padding: 10px;
width: 200px;
background-color: #373041;
text-align: center;

.heading {
color: @white;
margin-bottom: 15px;
}

input {
border: none;
outline: none;
width: calc(100% - 10px);
height: 20px;
padding: 5px;
display: box;
margin-bottom: 15px;
}

.btn {
width: calc((100% - 15px) / 2);
color: @white;
margin-top: 15px;
background-color: @blueB;
padding: 10px;
box-sizing: border-box;
margin: 0 auto;
}
}

+ 9
- 0
helpers/passives/client/ui/templates/save/template.html 查看文件

@@ -0,0 +1,9 @@
<div class="uiSave">
<div class="heading">
<div class="heading-text">Save Tree</div>
</div>
<div class="content">
<input type="text" class="fileName" placeholder="File Name...">
<div class="btn btnSave">Save</div>
</div>
</div>

+ 15
- 2
helpers/passives/server/index.js 查看文件

@@ -13,6 +13,14 @@ var mod = {
next();
});

var lessMiddleware = require('less-middleware');
app.use(lessMiddleware('../', {
force: true,
render: {
strictMath: true
}
}));

app.get('/', this.requests.root.bind(this));
app.get(/^(.*)$/, this.requests.default.bind(this));

@@ -32,10 +40,14 @@ var mod = {

onRequest: function (socket, msg, callback) {
if (msg.action == 'load') {
var res = JSON.parse(fs.readFileSync(msg.fileName + '.json'));
var res = JSON.parse(fs.readFileSync('saves/' + msg.fileName + '.json'));
callback(res);
} else if (msg.action == 'save')
fs.writeFileSync(msg.fileName + '.json', msg.data);
fs.writeFileSync('saves/' + msg.fileName + '.json', msg.data);
else if (msg.action == 'getFileList') {
callback(fs.readdirSync('saves/').map(l => (l.split('.')[0])));
return;
}

if (callback)
callback();
@@ -45,6 +57,7 @@ var mod = {
root: function (req, res) {
res.sendFile('index.html');
},

default: function (req, res, next) {
var root = req.url.split('/')[1];
var file = req.params[0];


+ 25
- 0
helpers/passives/server/nodemon.json 查看文件

@@ -0,0 +1,25 @@
{
"restartable": "rs",
"ignore": [
".git",
"node_modules/**/node_modules",
"**/*.json"
],
"verbose": true,
"execMap": {
"js": "node --harmony"
},
"events": {

},
"watch": [
"*.*"
],
"ignore": [
"client"
],
"env": {
"NODE_ENV": "development"
},
"ext": "js json"
}

+ 520
- 0
helpers/passives/server/package-lock.json 查看文件

@@ -17,6 +17,16 @@
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
},
"ajv": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"optional": true,
"requires": {
"co": "4.6.0",
"json-stable-stringify": "1.0.1"
}
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
@@ -27,11 +37,47 @@
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
},
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"optional": true
},
"asn1": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
"optional": true
},
"assert-plus": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
"integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
"optional": true
},
"async-limiter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"optional": true
},
"aws-sign2": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
"integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
"optional": true
},
"aws4": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
"optional": true
},
"backo2": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
@@ -47,6 +93,15 @@
"resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
"integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"optional": true,
"requires": {
"tweetnacl": "0.14.5"
}
},
"better-assert": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
@@ -77,6 +132,14 @@
"type-is": "1.6.15"
}
},
"boom": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"requires": {
"hoek": "2.16.3"
}
},
"bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -87,6 +150,26 @@
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"optional": true
},
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
"optional": true
},
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"requires": {
"delayed-stream": "1.0.0"
}
},
"component-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
@@ -122,6 +205,38 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"optional": true
},
"cryptiles": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
"optional": true,
"requires": {
"boom": "2.10.1"
}
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"optional": true
}
}
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -130,6 +245,11 @@
"ms": "2.0.0"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -140,6 +260,15 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -205,6 +334,15 @@
"has-binary2": "1.0.2"
}
},
"errno": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
"integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
"optional": true,
"requires": {
"prr": "1.0.1"
}
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -252,6 +390,17 @@
"vary": "1.1.2"
}
},
"extend": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
"optional": true
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"finalhandler": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
@@ -266,6 +415,23 @@
"unpipe": "1.0.0"
}
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"optional": true
},
"form-data": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
"optional": true,
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.6",
"mime-types": "2.1.17"
}
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -276,6 +442,45 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"optional": true
}
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"optional": true
},
"har-schema": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
"integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
"optional": true
},
"har-validator": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
"optional": true,
"requires": {
"ajv": "4.11.8",
"har-schema": "1.0.5"
}
},
"has-binary2": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz",
@@ -289,6 +494,23 @@
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
"integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
},
"hawk": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"optional": true,
"requires": {
"boom": "2.10.1",
"cryptiles": "2.0.5",
"hoek": "2.16.3",
"sntp": "1.0.9"
}
},
"hoek": {
"version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
},
"http-errors": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
@@ -312,11 +534,28 @@
}
}
},
"http-signature": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
"optional": true,
"requires": {
"assert-plus": "0.2.0",
"jsprim": "1.4.1",
"sshpk": "1.13.1"
}
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"image-size": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
"integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
"optional": true
},
"indexof": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
@@ -332,11 +571,106 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
"integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
},
"is": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
"integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU="
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"optional": true
},
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"optional": true
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"optional": true
},
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
"optional": true,
"requires": {
"jsonify": "0.0.0"
}
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"optional": true
},
"jsonify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
"optional": true
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"optional": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"optional": true
}
}
},
"less": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz",
"integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==",
"requires": {
"errno": "0.1.7",
"graceful-fs": "4.1.11",
"image-size": "0.5.5",
"mime": "1.4.1",
"mkdirp": "0.5.1",
"promise": "7.3.1",
"request": "2.81.0",
"source-map": "0.5.7"
}
},
"less-middleware": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/less-middleware/-/less-middleware-2.2.1.tgz",
"integrity": "sha512-1fDsyifwRGObMmqaZhkTDAmVnvgpZmdf6ZTSCbVv9vt+xhlzOz5TDNlLCbITsusEB3d0OKOEadwN9ic3PyOWCg==",
"requires": {
"less": "2.7.3",
"mkdirp": "0.5.1",
"node.extend": "2.0.0"
}
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -370,6 +704,19 @@
"mime-db": "1.30.0"
}
},
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -380,6 +727,20 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"node.extend": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/node.extend/-/node.extend-2.0.0.tgz",
"integrity": "sha1-dSWih1Z36lNHhKXhCseJVhOWFN8=",
"requires": {
"is": "3.2.1"
}
},
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
"optional": true
},
"object-component": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
@@ -419,6 +780,21 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"performance-now": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
"optional": true
},
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"optional": true,
"requires": {
"asap": "2.0.6"
}
},
"proxy-addr": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
@@ -428,6 +804,18 @@
"ipaddr.js": "1.5.2"
}
},
"prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
"integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
"optional": true
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"optional": true
},
"qs": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
@@ -449,6 +837,44 @@
"unpipe": "1.0.0"
}
},
"request": {
"version": "2.81.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
"optional": true,
"requires": {
"aws-sign2": "0.6.0",
"aws4": "1.6.0",
"caseless": "0.12.0",
"combined-stream": "1.0.6",
"extend": "3.0.1",
"forever-agent": "0.6.1",
"form-data": "2.1.4",
"har-validator": "4.2.1",
"hawk": "3.1.3",
"http-signature": "1.1.1",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
"mime-types": "2.1.17",
"oauth-sign": "0.8.2",
"performance-now": "0.2.0",
"qs": "6.4.0",
"safe-buffer": "5.1.1",
"stringstream": "0.0.5",
"tough-cookie": "2.3.3",
"tunnel-agent": "0.6.0",
"uuid": "3.2.1"
},
"dependencies": {
"qs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
"optional": true
}
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
@@ -490,6 +916,15 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
"sntp": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
"optional": true,
"requires": {
"hoek": "2.16.3"
}
},
"socket.io": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz",
@@ -538,16 +973,76 @@
"isarray": "2.0.1"
}
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"optional": true
},
"sshpk": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
"integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
"optional": true,
"requires": {
"asn1": "0.2.3",
"assert-plus": "1.0.0",
"bcrypt-pbkdf": "1.0.1",
"dashdash": "1.14.1",
"ecc-jsbn": "0.1.1",
"getpass": "0.1.7",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"optional": true
}
}
},
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
},
"stringstream": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
"optional": true
},
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
},
"tough-cookie": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
"integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
"optional": true,
"requires": {
"punycode": "1.4.1"
}
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"optional": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"optional": true
},
"type-is": {
"version": "1.6.15",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
@@ -572,6 +1067,12 @@
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
"integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
"optional": true
},
"uws": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/uws/-/uws-0.14.5.tgz",
@@ -583,6 +1084,25 @@
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"optional": true,
"requires": {
"assert-plus": "1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "1.3.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"optional": true
}
}
},
"ws": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",


+ 1
- 0
helpers/passives/server/package.json 查看文件

@@ -4,6 +4,7 @@
"description": "",
"dependencies": {
"express": "^4.16.2",
"less-middleware": "^2.2.1",
"socket.io": "^2.0.4"
}
}

+ 1
- 0
helpers/passives/server/saves/abc.json 查看文件

@@ -0,0 +1 @@
{"nodes":[{"color":0,"size":0,"pos":{"x":18,"y":11},"id":0,"selected":false},{"color":0,"size":0,"pos":{"x":17,"y":15},"id":1,"selected":false},{"color":0,"size":0,"pos":{"x":23,"y":18},"id":2,"selected":false},{"color":0,"size":0,"pos":{"x":29,"y":14},"id":3,"selected":false}],"links":[]}

Loading…
取消
儲存