├── .gitignore
├── README.md
├── chat_client
├── .gitignore
├── README.md
├── assets
│ ├── Chat.fire
│ ├── Chat.fire.meta
│ ├── Loading.fire
│ ├── Loading.fire.meta
│ ├── prefab.meta
│ ├── prefab
│ │ ├── OtherMsg.prefab
│ │ ├── OtherMsg.prefab.meta
│ │ ├── SelfMsg.prefab
│ │ ├── SelfMsg.prefab.meta
│ │ ├── userNode.prefab
│ │ └── userNode.prefab.meta
│ ├── scripts.meta
│ ├── scripts
│ │ ├── ctrls.meta
│ │ ├── ctrls
│ │ │ ├── ChatCtrl.ts
│ │ │ ├── ChatCtrl.ts.meta
│ │ │ ├── LoadingCtrl.ts
│ │ │ ├── LoadingCtrl.ts.meta
│ │ │ ├── LoginCtrl.ts
│ │ │ └── LoginCtrl.ts.meta
│ │ ├── libs.meta
│ │ ├── libs
│ │ │ ├── md5.min.js
│ │ │ ├── md5.min.js.meta
│ │ │ ├── socket.meta
│ │ │ └── socket
│ │ │ │ ├── socket.io.js
│ │ │ │ └── socket.io.js.meta
│ │ ├── nodes.meta
│ │ ├── nodes
│ │ │ ├── UserNode.ts
│ │ │ └── UserNode.ts.meta
│ │ ├── objs.meta
│ │ ├── objs
│ │ │ ├── Params.ts
│ │ │ └── Params.ts.meta
│ │ ├── utils.meta
│ │ └── utils
│ │ │ ├── GameUtil.ts
│ │ │ ├── GameUtil.ts.meta
│ │ │ ├── IoUtil.ts
│ │ │ ├── IoUtil.ts.meta
│ │ │ ├── NetUtil.ts
│ │ │ ├── NetUtil.ts.meta
│ │ │ ├── Toast.ts
│ │ │ └── Toast.ts.meta
│ ├── textures.meta
│ └── textures
│ │ ├── bg.meta
│ │ ├── bg
│ │ ├── bg1.png
│ │ └── bg1.png.meta
│ │ ├── blue.png
│ │ ├── blue.png.meta
│ │ ├── green.png
│ │ ├── green.png.meta
│ │ ├── green_pressed.png
│ │ ├── green_pressed.png.meta
│ │ ├── grey.png
│ │ ├── grey.png.meta
│ │ ├── head.jpg
│ │ ├── head.jpg.meta
│ │ ├── msg_tip_left.png
│ │ ├── msg_tip_left.png.meta
│ │ ├── msg_tip_right.png
│ │ ├── msg_tip_right.png.meta
│ │ ├── normal_board.png
│ │ ├── normal_board.png.meta
│ │ ├── white_inlay.png
│ │ ├── white_inlay.png.meta
│ │ ├── yellow.png
│ │ └── yellow.png.meta
├── creator.d.ts
├── jsconfig.json
├── package-lock.json
├── project.json
├── settings
│ ├── builder.json
│ ├── builder.panel.json
│ └── project.json
├── template-banner.png
├── template.json
└── tsconfig.json
└── chat_server
├── DbClient.js
├── app.js
├── db
└── db.sqlite
├── models
├── Message.js
└── User.js
├── package-lock.json
├── package.json
├── yarn-error.log
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | /chat_client/node_modules
2 | /chat_server/node_modules
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### 写在前头
2 |
3 | **本实例主要给刚接触CocosCreator和网络开发小白使用。老司机可以马上调头,这是开往幼儿园的专列。**
4 |
5 | ### 背景
6 |
7 | **聊天室作为大多数网络游戏开发人员的第一个项目,实现了一对多,一对一的数据交互,作为基石一般的存在,可以在上面搭建出各种复杂多变的网络程序,此篇作为我网络游戏开发的第一篇,希望与大家共勉。**
8 |
9 | ### 服务器的选择
10 |
11 | > 与CocosCretor搭配的全栈解决方案当然是Nodejs了
12 |
13 | - [Pomelo](https://github.com/NetEase/pomelo)
14 | - 网易开源的游戏应用服务器
15 | - 能用简单的代码搭建一个稳定的服务器
16 | - 丰富的组件
17 | - 完善的客户端类库
18 | - [WebSocket](https://github.com/websockets/ws)
19 | - 浏览器原生支持
20 | - 方法监听简单明了
21 | - [阮一峰大大的详细解释](http://www.ruanyifeng.com/blog/2017/05/websocket.html)
22 | - [Socket.io](https://github.com/socketio/socket.io)
23 | - 建立在webSicket之上
24 | - 拥有完善的处理方法
25 | - 类库更新十分勤快 拥有大量的用户
26 |
27 | 选型 | 结果
28 | ---|--
29 | **Pomelo** 比较适合有一定的网络开发基础的人使用。 |**PASS** |
30 | 纯**WebSocket**的开发相对比较简单,但是有更好的方案. |**PASS** |
31 | **Socket.io** 反正我没找到更好的... |**Bingo** |
32 |
33 | ### 服务器的开发
34 |
35 | > 码第一行代码之前默念 善哉善哉 bug去也
36 |
37 | **1.安装npm包**
38 | 找到你的项目目录执行以下包安装命令
39 | ```bash
40 | npm install express --save
41 | npm install socket.io --save
42 | npm install underscore --save
43 | ```
44 | **2.引入包**
45 | 编写一个app.js的文件
46 |
47 | ```js
48 | const express = require('express');
49 | const app = express();
50 | const http = require('http').Server(app);
51 | const sio = require('socket.io')(http);
52 | const _ = require('underscore');
53 | ```
54 |
55 | **3.设置跨域访问**
56 | 之后使用express做工具服务器的时候会用到
57 | ```js
58 | //设置跨域访问
59 | app.all('*', function(req, res, next) {
60 | res.header("Access-Control-Allow-Origin", "*");
61 | res.header("Access-Control-Allow-Headers", "X-Requested-With");
62 | res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
63 | res.header("X-Powered-By",' 3.2.1')
64 | res.header("Content-Type", "application/json;charset=utf-8");
65 | next();
66 | });
67 | ```
68 | **4.绑定端口**
69 |
70 | ```js
71 | app.get('/',(req,res)=>{
72 | res.send('
Hello world
');
73 | });
74 |
75 | http.listen(3000, ()=>{
76 | console.log('listening on http://127.0.0.1:3000');
77 | });
78 | ```
79 | **5.测试绑定**
80 |
81 | 启动服务器
82 | ```bash
83 | node app
84 | ```
85 | 打开网址查看 出现HelloWorld即为成功
86 |
87 | [http://127.0.0.1:3000](http://127.0.0.1:3000)
88 |
89 | **6.编写一个简单聊天服务器**
90 | - 代码量50行左右 有完整的注释
91 | - 简单的分析一下
92 | - sio的on和emit与nodejs的事件监听和触发相似
93 | - **connection**用来监听客户端的链接
94 | - socket是获得的客户句柄
95 | - socket.on 用于注册自定义事件
96 | - user和msgObj的内容在客户端的Params.ts里
97 |
98 | ```js
99 | /**********************关于聊天的相关操作*************************/
100 | //保存用户的数组
101 | var userList = [];
102 | //接收客户端的连接
103 | sio.on('connection',socket=>{
104 | //登录
105 | socket.on('login',(user)=>{
106 | console.log('login');
107 | console.log(user);
108 | user.id = socket.id;
109 | userList.push(user);
110 | //群发用户列表
111 | sio.emit('userList',userList);
112 | //发送当前用户列表信息
113 | socket.emit('userInfo',user);
114 | //除自己外广播用户登录信息
115 | socket.broadcast.emit('loginInfo',user.name+"上线了。");
116 | });
117 | //客户端断开
118 | socket.on('disconnect',()=>{
119 | //查出当前离开的用户
120 | let user = _.findWhere(userList,{id:socket.id});
121 | if(user){
122 | //剔除当前离线用户
123 | userList = _.without(userList,user);
124 | //发送当前用户列表信息
125 | sio.emit('userList',userList);
126 | //除自己外广播用户断线信息
127 | socket.broadcast.emit('loginInfo',user.name+"下线了。");
128 | }
129 |
130 | });
131 | //群发事件
132 | socket.on('toAll',function(msgObj){
133 | socket.broadcast.emit('toAll',msgObj);
134 | });
135 | //单发事件
136 | socket.on('toOne',function(msgObj){
137 | let toSocket = _.findWhere(sio.sockets.sockets,{id:msgObj.to});
138 | toSocket.emit('toOne', msgObj);
139 | });
140 |
141 | /**
142 | * 心跳包
143 | */
144 | socket.on('game_ping',function(data){
145 | socket.emit('game_pong');
146 | });
147 | });
148 | ```
149 |
150 |
151 |
152 | ### 聊天室基本界面
153 |
154 | ```
155 | graph TD
156 | H(loading界面)-->A
157 | A(用户名输入界面)-->B(聊天室界面)
158 | B-->D(群聊界面)
159 | B-->E(私聊界面)
160 | ```
161 |
162 | ### 项目的实际界面截图
163 |
164 | > 登录界面
165 |
166 | 
167 |
168 | > 聊天室的界面
169 |
170 | 
171 |
172 | > 发群聊消息
173 |
174 | 
175 |
176 | > 发私聊消息
177 |
178 | 
179 |
180 | > 简单起见 私聊消息红色显示
181 |
182 | 
183 |
184 | > 用户下线通知
185 |
186 | 
187 |
188 | > 用户上线通知
189 |
190 | 
191 |
192 |
193 | ### 客户端的开发
194 | **客户端代码会在后面放出 简单的分析下几个类**
195 |
196 | > NetUtil.ts 参考麒麟子的net.js
197 |
198 | - ts中window.io是不存在的需要使用转化获得
199 |
200 | ```ts
201 | const io = (window as any).io || {};
202 | ```
203 |
204 | - 使用io.connect连接到服务器
205 |
206 | ```ts
207 | init(){
208 | let opts = {
209 | 'reconnection':false,
210 | 'force new connection': true,
211 | 'transports':['websocket', 'polling']
212 | }
213 | this.sio = io.connect('http://127.0.0.1:3000',opts);
214 |
215 | this.sio.on('connect',(data)=>{
216 | console.log('connect');
217 | this.connected = true;
218 | })
219 |
220 | this.sio.on('disconnect',(data)=>{
221 | console.log("disconnect");
222 | this.connected = false;
223 | });
224 |
225 | this.startHearbeat();
226 | }
227 | ```
228 | - 封装on / emit方法 方便使用
229 |
230 | ```ts
231 | /**
232 | * 绑定事件
233 | * @param event
234 | * @param cb
235 | */
236 | on(event:string,cb){
237 | this.sio.on(event,cb);
238 | }
239 |
240 | /**
241 | * 击发服务器事件
242 | * @param event
243 | * @param data
244 | */
245 | emit(event:string,data?:any){
246 | if(data){
247 | this.sio.emit(event,data);
248 | return;
249 | }
250 | this.sio.emit(event);
251 | }
252 | ```
253 |
254 | > LoadingCtrl.ts
255 |
256 | - 就干了一件事情初始化连接
257 | - 之后要优于其他操作的初始化都放到这里 比如 i18n
258 | ```ts
259 | //初始化项目
260 | initGame(){
261 | NetUtil.Instance.init();
262 |
263 | }
264 | ```
265 |
266 | > LoginCtrl.ts
267 |
268 | - 获得用户名 并发送给服务器
269 |
270 | ```ts
271 | login(){
272 | let name = this.userBox.string;
273 | if(name.length<2){
274 | return;
275 | }
276 | let user:User ={id:"",name,imgUrl:""};
277 | NetUtil.Instance.emit('login',user);
278 | }
279 | ```
280 |
281 | > ChatCtrl.ts
282 |
283 | - 注册服务器的事件
284 |
285 | ```ts
286 | onLoad () {
287 | //注册用户登入登出信息
288 | NetUtil.Instance.on('loginInfo',(msg:string)=>{
289 | cc.log(msg);
290 | Toast.makeText(msg,Toast.LENGTH_LONG).show();
291 | })
292 | //获得当前用户信息
293 | NetUtil.Instance.on('userInfo',(user:User)=>{
294 | GameUtil.Instance.userInfo = user;
295 | cc.log(user);
296 | })
297 | //广播的用户列表信息
298 | NetUtil.Instance.on('userList',(userList)=>{
299 | cc.find('Canvas/login_room').active = false;
300 | //获取当前的用户列表
301 | this.userList = userList;
302 | //更新容器
303 | this.updateUserList(this.userList);
304 | });
305 | //注册发送给全部人的消息
306 | NetUtil.Instance.on('toAll',(msg:Message)=>{
307 | let node = cc.instantiate(this.otherMsgItem);
308 | node.getChildByName('name').getComponent(cc.Label).string = msg.from.name;
309 | node.getChildByName('msgBox').getChildByName('msg').getComponent(cc.Label).string = msg.msg;
310 | this.msgContent.addChild(node);
311 | if(this.msgContent.height>480){
312 | this.msgScrollView.scrollToBottom(0.3);
313 | }
314 | });
315 | //注册发送给一个人的消息
316 | NetUtil.Instance.on('toOne',(msg:Message)=>{
317 | let node = cc.instantiate(this.otherMsgItem);
318 | node.getChildByName('name').getComponent(cc.Label).string = msg.from.name;
319 | node.getChildByName('msgBox').getChildByName('msg').getComponent(cc.Label).string = msg.msg;
320 | node.getChildByName('msgBox').getChildByName('msg').color = cc.Color.RED;
321 | this.msgContent.addChild(node);
322 | if(this.msgContent.height>480){
323 | this.msgScrollView.scrollToBottom(0.3);
324 | }
325 | });
326 | }
327 | ```
328 |
329 | > UserNode.ts
330 |
331 | - 预制件通过user初始化
332 | - 注册了点击事件
333 | - 点击展示单独发送的面板
334 |
335 | ```ts
336 | init(user:User){
337 | this.user = user;
338 | this.node.on(cc.Node.EventType.TOUCH_END,event=>{
339 | //获得控制脚本
340 | let chatCtrl = cc.find('Canvas/chat_room').getComponent(ChatCtrl);
341 | chatCtrl.showSingleBox(this.user);
342 | });
343 | }
344 | ```
345 |
346 | > Params.ts
347 |
348 | - 定义了两个接口
349 |
350 | ```ts
351 | export interface User{
352 | id:string; //用户的id
353 | name:string; //用户名
354 | imgUrl:string; //用户头像的图片地址
355 | }
356 |
357 | export interface Message{
358 | from:User ; //发送的用户
359 | msg:string ; //发送的信息
360 | to?:string ; //发送给的人 没有则发送全部
361 | }
362 | ```
363 |
364 | ### 下载:
365 | GitHub地址:[https://github.com/SeaPlanet/cocoscreator_chat](https://github.com/SeaPlanet/cocoscreator_chat)
366 |
367 |
368 | ### 加入频道,实现分频道聊天
369 |
370 | - 频道的概念即为游戏中分房间的概念,游戏房间中的数据只对房间内的人广播,可以大大提高效率,减少消耗
371 |
372 | 
373 |
374 | 
375 |
376 |
377 | **之前用于保存用户的数组改为了对象**
378 |
379 | ```js
380 | //保存用户的数组
381 | var userList = {};
382 | ```
383 |
384 | **修改后的用户登录接口**
385 |
386 | - **userList[user.channel]** 用来保存用户
387 | - **join**方法用于创建和加入频道
388 | - **to**方法用于切换到频道
389 | - 下面会出现的**leave**用于离开频道
390 |
391 | ```js
392 | //登录
393 | socket.on('login',(user)=>{
394 | console.log('login');
395 | console.log(user);
396 | user.id = socket.id;
397 | if(!userList[user.channel]){
398 | userList[user.channel]=[];
399 | }
400 | userList[user.channel].push(user);
401 | socket.join(user.channel);
402 | //将频道赋值给socket
403 | socket.channel = user.channel;
404 | //群发用户列表
405 | sio.to(user.channel).emit('userList',userList[user.channel]);
406 | //发送当前用户列表信息
407 | socket.emit('userInfo',user);
408 | //除自己外广播用户登录信息
409 | socket.broadcast.to(user.channel).emit('loginInfo',user.name+"上线了。");
410 | });
411 | ```
412 |
413 | **客户端处修改**
414 |
415 | - 加入频道输入框
416 | - 加入频道属性
417 |
418 |
419 | ```ts
420 | export interface User{
421 | id:string; //用户的id
422 | name:string; //用户名
423 | channel:string; //当前的频道
424 | imgUrl:string; //用户头像的图片地址
425 | }
426 |
427 | ```
428 |
429 | ### 更新下载:
430 | GitHub地址:[https://github.com/SeaPlanet/cocoscreator_chat](https://github.com/SeaPlanet/cocoscreator_chat)
431 |
432 |
433 | ### Tips:
434 |
435 | #### Socket.io的默认事件列表
436 |
437 | > 服务端事件
438 |
439 | 事件名称 | 事件解释
440 | ---|---
441 | connection | socket连接成功之后触发,用于初始化
442 | message | 客户端通过socket.send来传送消息时触发此事件
443 | anything | 收到任何事件时触发
444 | disconnect | socket失去连接时触发
445 |
446 |
447 | > 客户端事件
448 |
449 | 事件名称 | 事件解释
450 | ---|---
451 | connect|连接成功
452 | connecting|正在连接
453 | disconnect|断开连接
454 | connect_failed|连接失败
455 | error|错误发生,并且无法被其他事件类型所处理
456 | message|同服务器端message事件
457 | anything|同服务器端anything事件
458 | reconnect_failed|重连失败
459 | reconnect|成功重连
460 | reconnecting|正在重连
461 |
462 |
463 |
464 |
--------------------------------------------------------------------------------
/chat_client/.gitignore:
--------------------------------------------------------------------------------
1 | #/////////////////////////////////////////////////////////////////////////////
2 | # Fireball Projects
3 | #/////////////////////////////////////////////////////////////////////////////
4 |
5 | library/
6 | temp/
7 | local/
8 | build/
9 |
10 | #/////////////////////////////////////////////////////////////////////////////
11 | # Logs and databases
12 | #/////////////////////////////////////////////////////////////////////////////
13 |
14 | *.log
15 | *.sql
16 | *.sqlite
17 |
18 | #/////////////////////////////////////////////////////////////////////////////
19 | # files for debugger
20 | #/////////////////////////////////////////////////////////////////////////////
21 |
22 | *.sln
23 | *.csproj
24 | *.pidb
25 | *.unityproj
26 | *.suo
27 |
28 | #/////////////////////////////////////////////////////////////////////////////
29 | # OS generated files
30 | #/////////////////////////////////////////////////////////////////////////////
31 |
32 | .DS_Store
33 | ehthumbs.db
34 | Thumbs.db
35 |
36 | #/////////////////////////////////////////////////////////////////////////////
37 | # exvim files
38 | #/////////////////////////////////////////////////////////////////////////////
39 |
40 | *UnityVS.meta
41 | *.err
42 | *.err.meta
43 | *.exvim
44 | *.exvim.meta
45 | *.vimentry
46 | *.vimentry.meta
47 | *.vimproject
48 | *.vimproject.meta
49 | .vimfiles.*/
50 | .exvim.*/
51 | quick_gen_project_*_autogen.bat
52 | quick_gen_project_*_autogen.bat.meta
53 | quick_gen_project_*_autogen.sh
54 | quick_gen_project_*_autogen.sh.meta
55 | .exvim.app
56 |
57 | #/////////////////////////////////////////////////////////////////////////////
58 | # webstorm files
59 | #/////////////////////////////////////////////////////////////////////////////
60 |
61 | .idea/
62 |
63 | #//////////////////////////
64 | # VS Code
65 | #//////////////////////////
66 |
67 | .vscode/
--------------------------------------------------------------------------------
/chat_client/README.md:
--------------------------------------------------------------------------------
1 | # hello-world
2 | Hello world new project template.
3 |
--------------------------------------------------------------------------------
/chat_client/assets/Chat.fire.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "3b5e6389-969e-411f-a4d0-e94a4ad28e39",
4 | "asyncLoadAssets": false,
5 | "autoReleaseAssets": false,
6 | "subMetas": {}
7 | }
--------------------------------------------------------------------------------
/chat_client/assets/Loading.fire:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "__type__": "cc.SceneAsset",
4 | "_name": "",
5 | "_objFlags": 0,
6 | "_rawFiles": null,
7 | "scene": {
8 | "__id__": 1
9 | }
10 | },
11 | {
12 | "__type__": "cc.Scene",
13 | "_objFlags": 0,
14 | "_parent": null,
15 | "_children": [
16 | {
17 | "__id__": 2
18 | }
19 | ],
20 | "_tag": -1,
21 | "_active": true,
22 | "_components": [],
23 | "_prefab": null,
24 | "_id": "77b2a6f9-40ac-4aa5-bde9-2ba95d1ac264",
25 | "_opacity": 255,
26 | "_color": {
27 | "__type__": "cc.Color",
28 | "r": 255,
29 | "g": 255,
30 | "b": 255,
31 | "a": 255
32 | },
33 | "_cascadeOpacityEnabled": true,
34 | "_anchorPoint": {
35 | "__type__": "cc.Vec2",
36 | "x": 0,
37 | "y": 0
38 | },
39 | "_contentSize": {
40 | "__type__": "cc.Size",
41 | "width": 0,
42 | "height": 0
43 | },
44 | "_localZOrder": 0,
45 | "_globalZOrder": 0,
46 | "_opacityModifyRGB": false,
47 | "groupIndex": 0,
48 | "autoReleaseAssets": false
49 | },
50 | {
51 | "__type__": "cc.Node",
52 | "_name": "Canvas",
53 | "_objFlags": 0,
54 | "_parent": {
55 | "__id__": 1
56 | },
57 | "_children": [
58 | {
59 | "__id__": 3
60 | },
61 | {
62 | "__id__": 5
63 | }
64 | ],
65 | "_tag": -1,
66 | "_active": true,
67 | "_components": [
68 | {
69 | "__id__": 7
70 | },
71 | {
72 | "__id__": 8
73 | }
74 | ],
75 | "_prefab": null,
76 | "_id": "70Mv40cylBrJkPb+9NJc+f",
77 | "_opacity": 255,
78 | "_color": {
79 | "__type__": "cc.Color",
80 | "r": 255,
81 | "g": 255,
82 | "b": 255,
83 | "a": 255
84 | },
85 | "_cascadeOpacityEnabled": true,
86 | "_anchorPoint": {
87 | "__type__": "cc.Vec2",
88 | "x": 0.5,
89 | "y": 0.5
90 | },
91 | "_contentSize": {
92 | "__type__": "cc.Size",
93 | "width": 960,
94 | "height": 640
95 | },
96 | "_rotationX": 0,
97 | "_rotationY": 0,
98 | "_scaleX": 1,
99 | "_scaleY": 1,
100 | "_position": {
101 | "__type__": "cc.Vec2",
102 | "x": 480,
103 | "y": 320
104 | },
105 | "_skewX": 0,
106 | "_skewY": 0,
107 | "_localZOrder": 0,
108 | "_globalZOrder": 0,
109 | "_opacityModifyRGB": false,
110 | "groupIndex": 0
111 | },
112 | {
113 | "__type__": "cc.Node",
114 | "_name": "bg",
115 | "_objFlags": 0,
116 | "_parent": {
117 | "__id__": 2
118 | },
119 | "_children": [],
120 | "_tag": -1,
121 | "_active": true,
122 | "_components": [
123 | {
124 | "__id__": 4
125 | }
126 | ],
127 | "_prefab": null,
128 | "_id": "edWDANksBCd4j2iMyMt76e",
129 | "_opacity": 255,
130 | "_color": {
131 | "__type__": "cc.Color",
132 | "r": 255,
133 | "g": 255,
134 | "b": 255,
135 | "a": 255
136 | },
137 | "_cascadeOpacityEnabled": true,
138 | "_anchorPoint": {
139 | "__type__": "cc.Vec2",
140 | "x": 0.5,
141 | "y": 0.5
142 | },
143 | "_contentSize": {
144 | "__type__": "cc.Size",
145 | "width": 1643,
146 | "height": 804
147 | },
148 | "_rotationX": 0,
149 | "_rotationY": 0,
150 | "_scaleX": 1,
151 | "_scaleY": 1,
152 | "_position": {
153 | "__type__": "cc.Vec2",
154 | "x": 0,
155 | "y": 0
156 | },
157 | "_skewX": 0,
158 | "_skewY": 0,
159 | "_localZOrder": 0,
160 | "_globalZOrder": 0,
161 | "_opacityModifyRGB": false,
162 | "groupIndex": 0
163 | },
164 | {
165 | "__type__": "cc.Sprite",
166 | "_name": "",
167 | "_objFlags": 0,
168 | "node": {
169 | "__id__": 3
170 | },
171 | "_enabled": true,
172 | "_spriteFrame": {
173 | "__uuid__": "806b88f6-e41a-4b7c-a2b2-6ebe74b8f484"
174 | },
175 | "_type": 0,
176 | "_sizeMode": 1,
177 | "_fillType": 0,
178 | "_fillCenter": {
179 | "__type__": "cc.Vec2",
180 | "x": 0,
181 | "y": 0
182 | },
183 | "_fillStart": 0,
184 | "_fillRange": 0,
185 | "_isTrimmedMode": true,
186 | "_srcBlendFactor": 770,
187 | "_dstBlendFactor": 771,
188 | "_atlas": null
189 | },
190 | {
191 | "__type__": "cc.Node",
192 | "_name": "New Label",
193 | "_objFlags": 0,
194 | "_parent": {
195 | "__id__": 2
196 | },
197 | "_children": [],
198 | "_tag": -1,
199 | "_active": true,
200 | "_components": [
201 | {
202 | "__id__": 6
203 | }
204 | ],
205 | "_prefab": null,
206 | "_id": "43QNnvcWBD5oXNC79ezmwW",
207 | "_opacity": 255,
208 | "_color": {
209 | "__type__": "cc.Color",
210 | "r": 255,
211 | "g": 255,
212 | "b": 255,
213 | "a": 255
214 | },
215 | "_cascadeOpacityEnabled": true,
216 | "_anchorPoint": {
217 | "__type__": "cc.Vec2",
218 | "x": 0.5,
219 | "y": 0.5
220 | },
221 | "_contentSize": {
222 | "__type__": "cc.Size",
223 | "width": 153.34,
224 | "height": 40
225 | },
226 | "_rotationX": 0,
227 | "_rotationY": 0,
228 | "_scaleX": 1,
229 | "_scaleY": 1,
230 | "_position": {
231 | "__type__": "cc.Vec2",
232 | "x": 0,
233 | "y": 0
234 | },
235 | "_skewX": 0,
236 | "_skewY": 0,
237 | "_localZOrder": 0,
238 | "_globalZOrder": 0,
239 | "_opacityModifyRGB": false,
240 | "groupIndex": 0
241 | },
242 | {
243 | "__type__": "cc.Label",
244 | "_name": "",
245 | "_objFlags": 0,
246 | "node": {
247 | "__id__": 5
248 | },
249 | "_enabled": true,
250 | "_useOriginalSize": false,
251 | "_actualFontSize": 40,
252 | "_fontSize": 40,
253 | "_lineHeight": 40,
254 | "_enableWrapText": true,
255 | "_N$file": null,
256 | "_isSystemFontUsed": true,
257 | "_spacingX": 0,
258 | "_N$string": "加载中...",
259 | "_N$horizontalAlign": 1,
260 | "_N$verticalAlign": 1,
261 | "_N$fontFamily": "Arial",
262 | "_N$overflow": 0
263 | },
264 | {
265 | "__type__": "cc.Canvas",
266 | "_name": "",
267 | "_objFlags": 0,
268 | "node": {
269 | "__id__": 2
270 | },
271 | "_enabled": true,
272 | "_designResolution": {
273 | "__type__": "cc.Size",
274 | "width": 960,
275 | "height": 640
276 | },
277 | "_fitWidth": false,
278 | "_fitHeight": true
279 | },
280 | {
281 | "__type__": "c09abma/YNBer0jiF72D0TX",
282 | "_name": "",
283 | "_objFlags": 0,
284 | "node": {
285 | "__id__": 2
286 | },
287 | "_enabled": true
288 | }
289 | ]
--------------------------------------------------------------------------------
/chat_client/assets/Loading.fire.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "77b2a6f9-40ac-4aa5-bde9-2ba95d1ac264",
4 | "asyncLoadAssets": false,
5 | "autoReleaseAssets": false,
6 | "subMetas": {}
7 | }
--------------------------------------------------------------------------------
/chat_client/assets/prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "9372a1a5-f751-40af-82ee-f228bb951d60",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/prefab/OtherMsg.prefab:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "__type__": "cc.Prefab",
4 | "_name": "",
5 | "_objFlags": 0,
6 | "_rawFiles": null,
7 | "data": {
8 | "__id__": 1
9 | }
10 | },
11 | {
12 | "__type__": "cc.Node",
13 | "_name": "OtherMsg",
14 | "_objFlags": 0,
15 | "_parent": null,
16 | "_children": [
17 | {
18 | "__id__": 2
19 | },
20 | {
21 | "__id__": 8
22 | },
23 | {
24 | "__id__": 11
25 | },
26 | {
27 | "__id__": 14
28 | }
29 | ],
30 | "_tag": -1,
31 | "_active": true,
32 | "_components": [],
33 | "_prefab": {
34 | "__id__": 21
35 | },
36 | "_id": "",
37 | "_opacity": 255,
38 | "_color": {
39 | "__type__": "cc.Color",
40 | "r": 255,
41 | "g": 255,
42 | "b": 255,
43 | "a": 255
44 | },
45 | "_cascadeOpacityEnabled": true,
46 | "_anchorPoint": {
47 | "__type__": "cc.Vec2",
48 | "x": 0.5,
49 | "y": 0.5
50 | },
51 | "_contentSize": {
52 | "__type__": "cc.Size",
53 | "width": 700,
54 | "height": 100
55 | },
56 | "_rotationX": 0,
57 | "_rotationY": 0,
58 | "_scaleX": 1,
59 | "_scaleY": 1,
60 | "_position": {
61 | "__type__": "cc.Vec2",
62 | "x": 0,
63 | "y": -50
64 | },
65 | "_skewX": 0,
66 | "_skewY": 0,
67 | "_localZOrder": 0,
68 | "_globalZOrder": 0,
69 | "_opacityModifyRGB": false,
70 | "groupIndex": 0
71 | },
72 | {
73 | "__type__": "cc.Node",
74 | "_name": "imgMask",
75 | "_objFlags": 0,
76 | "_parent": {
77 | "__id__": 1
78 | },
79 | "_children": [
80 | {
81 | "__id__": 3
82 | }
83 | ],
84 | "_tag": -1,
85 | "_active": true,
86 | "_components": [
87 | {
88 | "__id__": 6
89 | }
90 | ],
91 | "_prefab": {
92 | "__id__": 7
93 | },
94 | "_id": "",
95 | "_opacity": 255,
96 | "_color": {
97 | "__type__": "cc.Color",
98 | "r": 255,
99 | "g": 255,
100 | "b": 255,
101 | "a": 255
102 | },
103 | "_cascadeOpacityEnabled": true,
104 | "_anchorPoint": {
105 | "__type__": "cc.Vec2",
106 | "x": 0.5,
107 | "y": 0.5
108 | },
109 | "_contentSize": {
110 | "__type__": "cc.Size",
111 | "width": 80,
112 | "height": 80
113 | },
114 | "_rotationX": 0,
115 | "_rotationY": 0,
116 | "_scaleX": 1,
117 | "_scaleY": 1,
118 | "_position": {
119 | "__type__": "cc.Vec2",
120 | "x": -300,
121 | "y": 0
122 | },
123 | "_skewX": 0,
124 | "_skewY": 0,
125 | "_localZOrder": 0,
126 | "_globalZOrder": 0,
127 | "_opacityModifyRGB": false,
128 | "groupIndex": 0
129 | },
130 | {
131 | "__type__": "cc.Node",
132 | "_name": "img",
133 | "_objFlags": 0,
134 | "_parent": {
135 | "__id__": 2
136 | },
137 | "_children": [],
138 | "_tag": -1,
139 | "_active": true,
140 | "_components": [
141 | {
142 | "__id__": 4
143 | }
144 | ],
145 | "_prefab": {
146 | "__id__": 5
147 | },
148 | "_id": "",
149 | "_opacity": 255,
150 | "_color": {
151 | "__type__": "cc.Color",
152 | "r": 255,
153 | "g": 255,
154 | "b": 255,
155 | "a": 255
156 | },
157 | "_cascadeOpacityEnabled": true,
158 | "_anchorPoint": {
159 | "__type__": "cc.Vec2",
160 | "x": 0.5,
161 | "y": 0.5
162 | },
163 | "_contentSize": {
164 | "__type__": "cc.Size",
165 | "width": 100,
166 | "height": 100
167 | },
168 | "_rotationX": 0,
169 | "_rotationY": 0,
170 | "_scaleX": 1,
171 | "_scaleY": 1,
172 | "_position": {
173 | "__type__": "cc.Vec2",
174 | "x": 0,
175 | "y": 0
176 | },
177 | "_skewX": 0,
178 | "_skewY": 0,
179 | "_localZOrder": 0,
180 | "_globalZOrder": 0,
181 | "_opacityModifyRGB": false,
182 | "groupIndex": 0
183 | },
184 | {
185 | "__type__": "cc.Sprite",
186 | "_name": "",
187 | "_objFlags": 0,
188 | "node": {
189 | "__id__": 3
190 | },
191 | "_enabled": true,
192 | "_spriteFrame": {
193 | "__uuid__": "b29db6a7-7857-4fa6-a5ff-e0f3c26069ac"
194 | },
195 | "_type": 0,
196 | "_sizeMode": 1,
197 | "_fillType": 0,
198 | "_fillCenter": {
199 | "__type__": "cc.Vec2",
200 | "x": 0,
201 | "y": 0
202 | },
203 | "_fillStart": 0,
204 | "_fillRange": 0,
205 | "_isTrimmedMode": true,
206 | "_srcBlendFactor": 770,
207 | "_dstBlendFactor": 771,
208 | "_atlas": null
209 | },
210 | {
211 | "__type__": "cc.PrefabInfo",
212 | "root": {
213 | "__id__": 1
214 | },
215 | "asset": {
216 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
217 | },
218 | "fileId": "16g1T+7EtKQY3SiuOJiOiO",
219 | "sync": false
220 | },
221 | {
222 | "__type__": "cc.Mask",
223 | "_name": "",
224 | "_objFlags": 0,
225 | "node": {
226 | "__id__": 2
227 | },
228 | "_enabled": true,
229 | "_type": 1,
230 | "_segements": 64,
231 | "_N$spriteFrame": null,
232 | "_N$alphaThreshold": 1,
233 | "_N$inverted": false
234 | },
235 | {
236 | "__type__": "cc.PrefabInfo",
237 | "root": {
238 | "__id__": 1
239 | },
240 | "asset": {
241 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
242 | },
243 | "fileId": "b3ZH6iiQpGabUM3Y0iVzId",
244 | "sync": false
245 | },
246 | {
247 | "__type__": "cc.Node",
248 | "_name": "cover",
249 | "_objFlags": 0,
250 | "_parent": {
251 | "__id__": 1
252 | },
253 | "_children": [],
254 | "_tag": -1,
255 | "_active": true,
256 | "_components": [
257 | {
258 | "__id__": 9
259 | }
260 | ],
261 | "_prefab": {
262 | "__id__": 10
263 | },
264 | "_id": "",
265 | "_opacity": 200,
266 | "_color": {
267 | "__type__": "cc.Color",
268 | "r": 255,
269 | "g": 255,
270 | "b": 255,
271 | "a": 255
272 | },
273 | "_cascadeOpacityEnabled": true,
274 | "_anchorPoint": {
275 | "__type__": "cc.Vec2",
276 | "x": 0.5,
277 | "y": 0.5
278 | },
279 | "_contentSize": {
280 | "__type__": "cc.Size",
281 | "width": 80,
282 | "height": 30
283 | },
284 | "_rotationX": 0,
285 | "_rotationY": 0,
286 | "_scaleX": 1,
287 | "_scaleY": 1,
288 | "_position": {
289 | "__type__": "cc.Vec2",
290 | "x": -300,
291 | "y": -30
292 | },
293 | "_skewX": 0,
294 | "_skewY": 0,
295 | "_localZOrder": 0,
296 | "_globalZOrder": 0,
297 | "_opacityModifyRGB": false,
298 | "groupIndex": 0
299 | },
300 | {
301 | "__type__": "cc.Sprite",
302 | "_name": "",
303 | "_objFlags": 0,
304 | "node": {
305 | "__id__": 8
306 | },
307 | "_enabled": true,
308 | "_spriteFrame": {
309 | "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91"
310 | },
311 | "_type": 0,
312 | "_sizeMode": 0,
313 | "_fillType": 0,
314 | "_fillCenter": {
315 | "__type__": "cc.Vec2",
316 | "x": 0,
317 | "y": 0
318 | },
319 | "_fillStart": 0,
320 | "_fillRange": 0,
321 | "_isTrimmedMode": true,
322 | "_srcBlendFactor": 770,
323 | "_dstBlendFactor": 771,
324 | "_atlas": null
325 | },
326 | {
327 | "__type__": "cc.PrefabInfo",
328 | "root": {
329 | "__id__": 1
330 | },
331 | "asset": {
332 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
333 | },
334 | "fileId": "ddnCyzjIZPEo1v1mTGKee5",
335 | "sync": false
336 | },
337 | {
338 | "__type__": "cc.Node",
339 | "_name": "name",
340 | "_objFlags": 0,
341 | "_parent": {
342 | "__id__": 1
343 | },
344 | "_children": [],
345 | "_tag": -1,
346 | "_active": true,
347 | "_components": [
348 | {
349 | "__id__": 12
350 | }
351 | ],
352 | "_prefab": {
353 | "__id__": 13
354 | },
355 | "_id": "",
356 | "_opacity": 255,
357 | "_color": {
358 | "__type__": "cc.Color",
359 | "r": 0,
360 | "g": 0,
361 | "b": 0,
362 | "a": 255
363 | },
364 | "_cascadeOpacityEnabled": true,
365 | "_anchorPoint": {
366 | "__type__": "cc.Vec2",
367 | "x": 0.5,
368 | "y": 0.5
369 | },
370 | "_contentSize": {
371 | "__type__": "cc.Size",
372 | "width": 72,
373 | "height": 20
374 | },
375 | "_rotationX": 0,
376 | "_rotationY": 0,
377 | "_scaleX": 1,
378 | "_scaleY": 1,
379 | "_position": {
380 | "__type__": "cc.Vec2",
381 | "x": -300,
382 | "y": -31
383 | },
384 | "_skewX": 0,
385 | "_skewY": 0,
386 | "_localZOrder": 0,
387 | "_globalZOrder": 0,
388 | "_opacityModifyRGB": false,
389 | "groupIndex": 0
390 | },
391 | {
392 | "__type__": "cc.Label",
393 | "_name": "",
394 | "_objFlags": 0,
395 | "node": {
396 | "__id__": 11
397 | },
398 | "_enabled": true,
399 | "_useOriginalSize": false,
400 | "_actualFontSize": 18,
401 | "_fontSize": 18,
402 | "_lineHeight": 20,
403 | "_enableWrapText": true,
404 | "_N$file": null,
405 | "_isSystemFontUsed": true,
406 | "_spacingX": 0,
407 | "_N$string": "斤斤计较",
408 | "_N$horizontalAlign": 1,
409 | "_N$verticalAlign": 1,
410 | "_N$fontFamily": "Arial",
411 | "_N$overflow": 0
412 | },
413 | {
414 | "__type__": "cc.PrefabInfo",
415 | "root": {
416 | "__id__": 1
417 | },
418 | "asset": {
419 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
420 | },
421 | "fileId": "5flcJJ2rtJ6bjU+LjpFbKx",
422 | "sync": false
423 | },
424 | {
425 | "__type__": "cc.Node",
426 | "_name": "msgBox",
427 | "_objFlags": 0,
428 | "_parent": {
429 | "__id__": 1
430 | },
431 | "_children": [
432 | {
433 | "__id__": 15
434 | }
435 | ],
436 | "_tag": -1,
437 | "_active": true,
438 | "_components": [
439 | {
440 | "__id__": 18
441 | },
442 | {
443 | "__id__": 19
444 | }
445 | ],
446 | "_prefab": {
447 | "__id__": 20
448 | },
449 | "_id": "",
450 | "_opacity": 255,
451 | "_color": {
452 | "__type__": "cc.Color",
453 | "r": 255,
454 | "g": 255,
455 | "b": 255,
456 | "a": 255
457 | },
458 | "_cascadeOpacityEnabled": true,
459 | "_anchorPoint": {
460 | "__type__": "cc.Vec2",
461 | "x": 0.43,
462 | "y": 0.5
463 | },
464 | "_contentSize": {
465 | "__type__": "cc.Size",
466 | "width": 160,
467 | "height": 65
468 | },
469 | "_rotationX": 0,
470 | "_rotationY": 0,
471 | "_scaleX": 1,
472 | "_scaleY": 1,
473 | "_position": {
474 | "__type__": "cc.Vec2",
475 | "x": -180,
476 | "y": 0
477 | },
478 | "_skewX": 0,
479 | "_skewY": 0,
480 | "_localZOrder": 0,
481 | "_globalZOrder": 0,
482 | "_opacityModifyRGB": false,
483 | "groupIndex": 0
484 | },
485 | {
486 | "__type__": "cc.Node",
487 | "_name": "msg",
488 | "_objFlags": 0,
489 | "_parent": {
490 | "__id__": 14
491 | },
492 | "_children": [],
493 | "_tag": -1,
494 | "_active": true,
495 | "_components": [
496 | {
497 | "__id__": 16
498 | }
499 | ],
500 | "_prefab": {
501 | "__id__": 17
502 | },
503 | "_id": "",
504 | "_opacity": 255,
505 | "_color": {
506 | "__type__": "cc.Color",
507 | "r": 0,
508 | "g": 0,
509 | "b": 0,
510 | "a": 255
511 | },
512 | "_cascadeOpacityEnabled": true,
513 | "_anchorPoint": {
514 | "__type__": "cc.Vec2",
515 | "x": 0,
516 | "y": 0.5
517 | },
518 | "_contentSize": {
519 | "__type__": "cc.Size",
520 | "width": 100,
521 | "height": 25
522 | },
523 | "_rotationX": 0,
524 | "_rotationY": 0,
525 | "_scaleX": 1,
526 | "_scaleY": 1,
527 | "_position": {
528 | "__type__": "cc.Vec2",
529 | "x": -39,
530 | "y": 0
531 | },
532 | "_skewX": 0,
533 | "_skewY": 0,
534 | "_localZOrder": 0,
535 | "_globalZOrder": 0,
536 | "_opacityModifyRGB": false,
537 | "groupIndex": 0
538 | },
539 | {
540 | "__type__": "cc.Label",
541 | "_name": "",
542 | "_objFlags": 0,
543 | "node": {
544 | "__id__": 15
545 | },
546 | "_enabled": true,
547 | "_useOriginalSize": false,
548 | "_actualFontSize": 20,
549 | "_fontSize": 20,
550 | "_lineHeight": 25,
551 | "_enableWrapText": true,
552 | "_N$file": null,
553 | "_isSystemFontUsed": true,
554 | "_spacingX": 0,
555 | "_N$string": "这是一句话",
556 | "_N$horizontalAlign": 1,
557 | "_N$verticalAlign": 1,
558 | "_N$fontFamily": "Arial",
559 | "_N$overflow": 0
560 | },
561 | {
562 | "__type__": "cc.PrefabInfo",
563 | "root": {
564 | "__id__": 1
565 | },
566 | "asset": {
567 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
568 | },
569 | "fileId": "49HSnvyyRLtrLaTU3UsDyQ",
570 | "sync": false
571 | },
572 | {
573 | "__type__": "cc.Sprite",
574 | "_name": "",
575 | "_objFlags": 0,
576 | "node": {
577 | "__id__": 14
578 | },
579 | "_enabled": true,
580 | "_spriteFrame": {
581 | "__uuid__": "8455a556-e16c-4400-8f84-798e952f8168"
582 | },
583 | "_type": 1,
584 | "_sizeMode": 0,
585 | "_fillType": 0,
586 | "_fillCenter": {
587 | "__type__": "cc.Vec2",
588 | "x": 0,
589 | "y": 0
590 | },
591 | "_fillStart": 0,
592 | "_fillRange": 0,
593 | "_isTrimmedMode": true,
594 | "_srcBlendFactor": 770,
595 | "_dstBlendFactor": 771,
596 | "_atlas": null
597 | },
598 | {
599 | "__type__": "cc.Layout",
600 | "_name": "",
601 | "_objFlags": 0,
602 | "node": {
603 | "__id__": 14
604 | },
605 | "_enabled": true,
606 | "_layoutSize": {
607 | "__type__": "cc.Size",
608 | "width": 160,
609 | "height": 65
610 | },
611 | "_resize": 1,
612 | "_N$layoutType": 0,
613 | "_N$padding": 0,
614 | "_N$cellSize": {
615 | "__type__": "cc.Size",
616 | "width": 40,
617 | "height": 40
618 | },
619 | "_N$startAxis": 0,
620 | "_N$paddingLeft": 30,
621 | "_N$paddingRight": 30,
622 | "_N$paddingTop": 20,
623 | "_N$paddingBottom": 20,
624 | "_N$spacingX": 0,
625 | "_N$spacingY": 0,
626 | "_N$verticalDirection": 1,
627 | "_N$horizontalDirection": 0
628 | },
629 | {
630 | "__type__": "cc.PrefabInfo",
631 | "root": {
632 | "__id__": 1
633 | },
634 | "asset": {
635 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
636 | },
637 | "fileId": "e5XuDqCMVCEaXLJzk9U5Z6",
638 | "sync": false
639 | },
640 | {
641 | "__type__": "cc.PrefabInfo",
642 | "root": {
643 | "__id__": 1
644 | },
645 | "asset": {
646 | "__uuid__": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78"
647 | },
648 | "fileId": "7d0qUSub1LlqMaA0s/dADI",
649 | "sync": false
650 | }
651 | ]
--------------------------------------------------------------------------------
/chat_client/assets/prefab/OtherMsg.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "2afd8bdd-44c8-4c08-84f4-c92af0f3bf78",
4 | "asyncLoadAssets": false,
5 | "subMetas": {}
6 | }
--------------------------------------------------------------------------------
/chat_client/assets/prefab/SelfMsg.prefab:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "__type__": "cc.Prefab",
4 | "_name": "",
5 | "_objFlags": 0,
6 | "_rawFiles": null,
7 | "data": {
8 | "__id__": 1
9 | }
10 | },
11 | {
12 | "__type__": "cc.Node",
13 | "_name": "SelfMsg",
14 | "_objFlags": 0,
15 | "_parent": null,
16 | "_children": [
17 | {
18 | "__id__": 2
19 | },
20 | {
21 | "__id__": 8
22 | },
23 | {
24 | "__id__": 11
25 | },
26 | {
27 | "__id__": 14
28 | }
29 | ],
30 | "_tag": -1,
31 | "_active": true,
32 | "_components": [],
33 | "_prefab": {
34 | "__id__": 21
35 | },
36 | "_id": "",
37 | "_opacity": 255,
38 | "_color": {
39 | "__type__": "cc.Color",
40 | "r": 255,
41 | "g": 255,
42 | "b": 255,
43 | "a": 255
44 | },
45 | "_cascadeOpacityEnabled": true,
46 | "_anchorPoint": {
47 | "__type__": "cc.Vec2",
48 | "x": 0.5,
49 | "y": 0.5
50 | },
51 | "_contentSize": {
52 | "__type__": "cc.Size",
53 | "width": 700,
54 | "height": 100
55 | },
56 | "_rotationX": 0,
57 | "_rotationY": 0,
58 | "_scaleX": 1,
59 | "_scaleY": 1,
60 | "_position": {
61 | "__type__": "cc.Vec2",
62 | "x": 0,
63 | "y": -50
64 | },
65 | "_skewX": 0,
66 | "_skewY": 0,
67 | "_localZOrder": 0,
68 | "_globalZOrder": 0,
69 | "_opacityModifyRGB": false,
70 | "groupIndex": 0
71 | },
72 | {
73 | "__type__": "cc.Node",
74 | "_name": "imgMask",
75 | "_objFlags": 0,
76 | "_parent": {
77 | "__id__": 1
78 | },
79 | "_children": [
80 | {
81 | "__id__": 3
82 | }
83 | ],
84 | "_tag": -1,
85 | "_active": true,
86 | "_components": [
87 | {
88 | "__id__": 6
89 | }
90 | ],
91 | "_prefab": {
92 | "__id__": 7
93 | },
94 | "_id": "",
95 | "_opacity": 255,
96 | "_color": {
97 | "__type__": "cc.Color",
98 | "r": 255,
99 | "g": 255,
100 | "b": 255,
101 | "a": 255
102 | },
103 | "_cascadeOpacityEnabled": true,
104 | "_anchorPoint": {
105 | "__type__": "cc.Vec2",
106 | "x": 0.5,
107 | "y": 0.5
108 | },
109 | "_contentSize": {
110 | "__type__": "cc.Size",
111 | "width": 80,
112 | "height": 80
113 | },
114 | "_rotationX": 0,
115 | "_rotationY": 0,
116 | "_scaleX": 1,
117 | "_scaleY": 1,
118 | "_position": {
119 | "__type__": "cc.Vec2",
120 | "x": 299,
121 | "y": 0
122 | },
123 | "_skewX": 0,
124 | "_skewY": 0,
125 | "_localZOrder": 0,
126 | "_globalZOrder": 0,
127 | "_opacityModifyRGB": false,
128 | "groupIndex": 0
129 | },
130 | {
131 | "__type__": "cc.Node",
132 | "_name": "img",
133 | "_objFlags": 0,
134 | "_parent": {
135 | "__id__": 2
136 | },
137 | "_children": [],
138 | "_tag": -1,
139 | "_active": true,
140 | "_components": [
141 | {
142 | "__id__": 4
143 | }
144 | ],
145 | "_prefab": {
146 | "__id__": 5
147 | },
148 | "_id": "",
149 | "_opacity": 255,
150 | "_color": {
151 | "__type__": "cc.Color",
152 | "r": 255,
153 | "g": 255,
154 | "b": 255,
155 | "a": 255
156 | },
157 | "_cascadeOpacityEnabled": true,
158 | "_anchorPoint": {
159 | "__type__": "cc.Vec2",
160 | "x": 0.5,
161 | "y": 0.5
162 | },
163 | "_contentSize": {
164 | "__type__": "cc.Size",
165 | "width": 80,
166 | "height": 80
167 | },
168 | "_rotationX": 0,
169 | "_rotationY": 0,
170 | "_scaleX": 1,
171 | "_scaleY": 1,
172 | "_position": {
173 | "__type__": "cc.Vec2",
174 | "x": 0,
175 | "y": 0
176 | },
177 | "_skewX": 0,
178 | "_skewY": 0,
179 | "_localZOrder": 0,
180 | "_globalZOrder": 0,
181 | "_opacityModifyRGB": false,
182 | "groupIndex": 0
183 | },
184 | {
185 | "__type__": "cc.Sprite",
186 | "_name": "",
187 | "_objFlags": 0,
188 | "node": {
189 | "__id__": 3
190 | },
191 | "_enabled": true,
192 | "_spriteFrame": {
193 | "__uuid__": "b29db6a7-7857-4fa6-a5ff-e0f3c26069ac"
194 | },
195 | "_type": 0,
196 | "_sizeMode": 0,
197 | "_fillType": 0,
198 | "_fillCenter": {
199 | "__type__": "cc.Vec2",
200 | "x": 0,
201 | "y": 0
202 | },
203 | "_fillStart": 0,
204 | "_fillRange": 0,
205 | "_isTrimmedMode": true,
206 | "_srcBlendFactor": 770,
207 | "_dstBlendFactor": 771,
208 | "_atlas": null
209 | },
210 | {
211 | "__type__": "cc.PrefabInfo",
212 | "root": {
213 | "__id__": 1
214 | },
215 | "asset": {
216 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
217 | },
218 | "fileId": "94RsvK4aBBdrxSz5ebI0dO",
219 | "sync": false
220 | },
221 | {
222 | "__type__": "cc.Mask",
223 | "_name": "",
224 | "_objFlags": 0,
225 | "node": {
226 | "__id__": 2
227 | },
228 | "_enabled": true,
229 | "_type": 1,
230 | "_segements": 64,
231 | "_N$spriteFrame": null,
232 | "_N$alphaThreshold": 1,
233 | "_N$inverted": false
234 | },
235 | {
236 | "__type__": "cc.PrefabInfo",
237 | "root": {
238 | "__id__": 1
239 | },
240 | "asset": {
241 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
242 | },
243 | "fileId": "29c61q0ZdP3pf1EbeZ4f5+",
244 | "sync": false
245 | },
246 | {
247 | "__type__": "cc.Node",
248 | "_name": "cover",
249 | "_objFlags": 0,
250 | "_parent": {
251 | "__id__": 1
252 | },
253 | "_children": [],
254 | "_tag": -1,
255 | "_active": true,
256 | "_components": [
257 | {
258 | "__id__": 9
259 | }
260 | ],
261 | "_prefab": {
262 | "__id__": 10
263 | },
264 | "_id": "",
265 | "_opacity": 200,
266 | "_color": {
267 | "__type__": "cc.Color",
268 | "r": 255,
269 | "g": 255,
270 | "b": 255,
271 | "a": 255
272 | },
273 | "_cascadeOpacityEnabled": true,
274 | "_anchorPoint": {
275 | "__type__": "cc.Vec2",
276 | "x": 0.5,
277 | "y": 0.5
278 | },
279 | "_contentSize": {
280 | "__type__": "cc.Size",
281 | "width": 80,
282 | "height": 30
283 | },
284 | "_rotationX": 0,
285 | "_rotationY": 0,
286 | "_scaleX": 1,
287 | "_scaleY": 1,
288 | "_position": {
289 | "__type__": "cc.Vec2",
290 | "x": 300,
291 | "y": -30
292 | },
293 | "_skewX": 0,
294 | "_skewY": 0,
295 | "_localZOrder": 0,
296 | "_globalZOrder": 0,
297 | "_opacityModifyRGB": false,
298 | "groupIndex": 0
299 | },
300 | {
301 | "__type__": "cc.Sprite",
302 | "_name": "",
303 | "_objFlags": 0,
304 | "node": {
305 | "__id__": 8
306 | },
307 | "_enabled": true,
308 | "_spriteFrame": {
309 | "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91"
310 | },
311 | "_type": 0,
312 | "_sizeMode": 0,
313 | "_fillType": 0,
314 | "_fillCenter": {
315 | "__type__": "cc.Vec2",
316 | "x": 0,
317 | "y": 0
318 | },
319 | "_fillStart": 0,
320 | "_fillRange": 0,
321 | "_isTrimmedMode": true,
322 | "_srcBlendFactor": 770,
323 | "_dstBlendFactor": 771,
324 | "_atlas": null
325 | },
326 | {
327 | "__type__": "cc.PrefabInfo",
328 | "root": {
329 | "__id__": 1
330 | },
331 | "asset": {
332 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
333 | },
334 | "fileId": "5ajKdg2bRH+bEiW+GeU27W",
335 | "sync": false
336 | },
337 | {
338 | "__type__": "cc.Node",
339 | "_name": "name",
340 | "_objFlags": 0,
341 | "_parent": {
342 | "__id__": 1
343 | },
344 | "_children": [],
345 | "_tag": -1,
346 | "_active": true,
347 | "_components": [
348 | {
349 | "__id__": 12
350 | }
351 | ],
352 | "_prefab": {
353 | "__id__": 13
354 | },
355 | "_id": "",
356 | "_opacity": 255,
357 | "_color": {
358 | "__type__": "cc.Color",
359 | "r": 0,
360 | "g": 0,
361 | "b": 0,
362 | "a": 255
363 | },
364 | "_cascadeOpacityEnabled": true,
365 | "_anchorPoint": {
366 | "__type__": "cc.Vec2",
367 | "x": 0.5,
368 | "y": 0.5
369 | },
370 | "_contentSize": {
371 | "__type__": "cc.Size",
372 | "width": 72,
373 | "height": 20
374 | },
375 | "_rotationX": 0,
376 | "_rotationY": 0,
377 | "_scaleX": 1,
378 | "_scaleY": 1,
379 | "_position": {
380 | "__type__": "cc.Vec2",
381 | "x": 300,
382 | "y": -31
383 | },
384 | "_skewX": 0,
385 | "_skewY": 0,
386 | "_localZOrder": 0,
387 | "_globalZOrder": 0,
388 | "_opacityModifyRGB": false,
389 | "groupIndex": 0
390 | },
391 | {
392 | "__type__": "cc.Label",
393 | "_name": "",
394 | "_objFlags": 0,
395 | "node": {
396 | "__id__": 11
397 | },
398 | "_enabled": true,
399 | "_useOriginalSize": false,
400 | "_actualFontSize": 18,
401 | "_fontSize": 18,
402 | "_lineHeight": 20,
403 | "_enableWrapText": true,
404 | "_N$file": null,
405 | "_isSystemFontUsed": true,
406 | "_spacingX": 0,
407 | "_N$string": "斤斤计较",
408 | "_N$horizontalAlign": 1,
409 | "_N$verticalAlign": 1,
410 | "_N$fontFamily": "Arial",
411 | "_N$overflow": 0
412 | },
413 | {
414 | "__type__": "cc.PrefabInfo",
415 | "root": {
416 | "__id__": 1
417 | },
418 | "asset": {
419 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
420 | },
421 | "fileId": "3chD64sQFN7qQs+p4+3UGs",
422 | "sync": false
423 | },
424 | {
425 | "__type__": "cc.Node",
426 | "_name": "msgBox",
427 | "_objFlags": 0,
428 | "_parent": {
429 | "__id__": 1
430 | },
431 | "_children": [
432 | {
433 | "__id__": 15
434 | }
435 | ],
436 | "_tag": -1,
437 | "_active": true,
438 | "_components": [
439 | {
440 | "__id__": 18
441 | },
442 | {
443 | "__id__": 19
444 | }
445 | ],
446 | "_prefab": {
447 | "__id__": 20
448 | },
449 | "_id": "",
450 | "_opacity": 255,
451 | "_color": {
452 | "__type__": "cc.Color",
453 | "r": 255,
454 | "g": 255,
455 | "b": 255,
456 | "a": 255
457 | },
458 | "_cascadeOpacityEnabled": true,
459 | "_anchorPoint": {
460 | "__type__": "cc.Vec2",
461 | "x": -0.94,
462 | "y": 0.5
463 | },
464 | "_contentSize": {
465 | "__type__": "cc.Size",
466 | "width": 220,
467 | "height": 65
468 | },
469 | "_rotationX": 0,
470 | "_rotationY": 0,
471 | "_scaleX": 1,
472 | "_scaleY": 1,
473 | "_position": {
474 | "__type__": "cc.Vec2",
475 | "x": -180,
476 | "y": 0
477 | },
478 | "_skewX": 0,
479 | "_skewY": 0,
480 | "_localZOrder": 0,
481 | "_globalZOrder": 0,
482 | "_opacityModifyRGB": false,
483 | "groupIndex": 0
484 | },
485 | {
486 | "__type__": "cc.Node",
487 | "_name": "msg",
488 | "_objFlags": 0,
489 | "_parent": {
490 | "__id__": 14
491 | },
492 | "_children": [],
493 | "_tag": -1,
494 | "_active": true,
495 | "_components": [
496 | {
497 | "__id__": 16
498 | }
499 | ],
500 | "_prefab": {
501 | "__id__": 17
502 | },
503 | "_id": "",
504 | "_opacity": 255,
505 | "_color": {
506 | "__type__": "cc.Color",
507 | "r": 0,
508 | "g": 0,
509 | "b": 0,
510 | "a": 255
511 | },
512 | "_cascadeOpacityEnabled": true,
513 | "_anchorPoint": {
514 | "__type__": "cc.Vec2",
515 | "x": 1,
516 | "y": 0.5
517 | },
518 | "_contentSize": {
519 | "__type__": "cc.Size",
520 | "width": 160,
521 | "height": 25
522 | },
523 | "_rotationX": 0,
524 | "_rotationY": 0,
525 | "_scaleX": 1,
526 | "_scaleY": 1,
527 | "_position": {
528 | "__type__": "cc.Vec2",
529 | "x": 396,
530 | "y": 0
531 | },
532 | "_skewX": 0,
533 | "_skewY": 0,
534 | "_localZOrder": 0,
535 | "_globalZOrder": 0,
536 | "_opacityModifyRGB": false,
537 | "groupIndex": 0
538 | },
539 | {
540 | "__type__": "cc.Label",
541 | "_name": "",
542 | "_objFlags": 0,
543 | "node": {
544 | "__id__": 15
545 | },
546 | "_enabled": true,
547 | "_useOriginalSize": false,
548 | "_actualFontSize": 20,
549 | "_fontSize": 20,
550 | "_lineHeight": 25,
551 | "_enableWrapText": true,
552 | "_N$file": null,
553 | "_isSystemFontUsed": true,
554 | "_spacingX": 0,
555 | "_N$string": "你好这是一段文字",
556 | "_N$horizontalAlign": 1,
557 | "_N$verticalAlign": 1,
558 | "_N$fontFamily": "Arial",
559 | "_N$overflow": 0
560 | },
561 | {
562 | "__type__": "cc.PrefabInfo",
563 | "root": {
564 | "__id__": 1
565 | },
566 | "asset": {
567 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
568 | },
569 | "fileId": "5cJNVRqgBERLyj1F34ls7b",
570 | "sync": false
571 | },
572 | {
573 | "__type__": "cc.Sprite",
574 | "_name": "",
575 | "_objFlags": 0,
576 | "node": {
577 | "__id__": 14
578 | },
579 | "_enabled": true,
580 | "_spriteFrame": {
581 | "__uuid__": "88245198-d644-45c6-8157-9730bcbfac7b"
582 | },
583 | "_type": 1,
584 | "_sizeMode": 0,
585 | "_fillType": 0,
586 | "_fillCenter": {
587 | "__type__": "cc.Vec2",
588 | "x": 0,
589 | "y": 0
590 | },
591 | "_fillStart": 0,
592 | "_fillRange": 0,
593 | "_isTrimmedMode": true,
594 | "_srcBlendFactor": 770,
595 | "_dstBlendFactor": 771,
596 | "_atlas": null
597 | },
598 | {
599 | "__type__": "cc.Layout",
600 | "_name": "",
601 | "_objFlags": 0,
602 | "node": {
603 | "__id__": 14
604 | },
605 | "_enabled": true,
606 | "_layoutSize": {
607 | "__type__": "cc.Size",
608 | "width": 220,
609 | "height": 65
610 | },
611 | "_resize": 1,
612 | "_N$layoutType": 0,
613 | "_N$padding": 0,
614 | "_N$cellSize": {
615 | "__type__": "cc.Size",
616 | "width": 40,
617 | "height": 40
618 | },
619 | "_N$startAxis": 0,
620 | "_N$paddingLeft": 30,
621 | "_N$paddingRight": 30,
622 | "_N$paddingTop": 20,
623 | "_N$paddingBottom": 20,
624 | "_N$spacingX": 0,
625 | "_N$spacingY": 0,
626 | "_N$verticalDirection": 1,
627 | "_N$horizontalDirection": 0
628 | },
629 | {
630 | "__type__": "cc.PrefabInfo",
631 | "root": {
632 | "__id__": 1
633 | },
634 | "asset": {
635 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
636 | },
637 | "fileId": "6cKAHLCYJNQL9n4QMceCSK",
638 | "sync": false
639 | },
640 | {
641 | "__type__": "cc.PrefabInfo",
642 | "root": {
643 | "__id__": 1
644 | },
645 | "asset": {
646 | "__uuid__": "2608a079-0dfa-4728-9a9a-a3d77757572a"
647 | },
648 | "fileId": "23IEQOK3JPVJsUlaN0IDe6",
649 | "sync": false
650 | }
651 | ]
--------------------------------------------------------------------------------
/chat_client/assets/prefab/SelfMsg.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "2608a079-0dfa-4728-9a9a-a3d77757572a",
4 | "asyncLoadAssets": false,
5 | "subMetas": {}
6 | }
--------------------------------------------------------------------------------
/chat_client/assets/prefab/userNode.prefab:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "__type__": "cc.Prefab",
4 | "_name": "",
5 | "_objFlags": 0,
6 | "_rawFiles": null,
7 | "data": {
8 | "__id__": 1
9 | }
10 | },
11 | {
12 | "__type__": "cc.Node",
13 | "_name": "userNode",
14 | "_objFlags": 0,
15 | "_parent": null,
16 | "_children": [
17 | {
18 | "__id__": 2
19 | },
20 | {
21 | "__id__": 5
22 | },
23 | {
24 | "__id__": 8
25 | }
26 | ],
27 | "_tag": -1,
28 | "_active": true,
29 | "_components": [
30 | {
31 | "__id__": 11
32 | },
33 | {
34 | "__id__": 12
35 | }
36 | ],
37 | "_prefab": {
38 | "__id__": 13
39 | },
40 | "_id": "",
41 | "_opacity": 255,
42 | "_color": {
43 | "__type__": "cc.Color",
44 | "r": 255,
45 | "g": 255,
46 | "b": 255,
47 | "a": 255
48 | },
49 | "_cascadeOpacityEnabled": true,
50 | "_anchorPoint": {
51 | "__type__": "cc.Vec2",
52 | "x": 0.5,
53 | "y": 0.5
54 | },
55 | "_contentSize": {
56 | "__type__": "cc.Size",
57 | "width": 145,
58 | "height": 50
59 | },
60 | "_rotationX": 0,
61 | "_rotationY": 0,
62 | "_scaleX": 1,
63 | "_scaleY": 1,
64 | "_position": {
65 | "__type__": "cc.Vec2",
66 | "x": 0,
67 | "y": -25
68 | },
69 | "_skewX": 0,
70 | "_skewY": 0,
71 | "_localZOrder": 0,
72 | "_globalZOrder": 0,
73 | "_opacityModifyRGB": false,
74 | "groupIndex": 0
75 | },
76 | {
77 | "__type__": "cc.Node",
78 | "_name": "img",
79 | "_objFlags": 0,
80 | "_parent": {
81 | "__id__": 1
82 | },
83 | "_children": [],
84 | "_tag": -1,
85 | "_active": true,
86 | "_components": [
87 | {
88 | "__id__": 3
89 | }
90 | ],
91 | "_prefab": {
92 | "__id__": 4
93 | },
94 | "_id": "",
95 | "_opacity": 255,
96 | "_color": {
97 | "__type__": "cc.Color",
98 | "r": 255,
99 | "g": 255,
100 | "b": 255,
101 | "a": 255
102 | },
103 | "_cascadeOpacityEnabled": true,
104 | "_anchorPoint": {
105 | "__type__": "cc.Vec2",
106 | "x": 0.5,
107 | "y": 0.5
108 | },
109 | "_contentSize": {
110 | "__type__": "cc.Size",
111 | "width": 40,
112 | "height": 40
113 | },
114 | "_rotationX": 0,
115 | "_rotationY": 0,
116 | "_scaleX": 1,
117 | "_scaleY": 1,
118 | "_position": {
119 | "__type__": "cc.Vec2",
120 | "x": -47.1,
121 | "y": 0
122 | },
123 | "_skewX": 0,
124 | "_skewY": 0,
125 | "_localZOrder": 0,
126 | "_globalZOrder": 0,
127 | "_opacityModifyRGB": false,
128 | "groupIndex": 0
129 | },
130 | {
131 | "__type__": "cc.Sprite",
132 | "_name": "",
133 | "_objFlags": 0,
134 | "node": {
135 | "__id__": 2
136 | },
137 | "_enabled": true,
138 | "_spriteFrame": {
139 | "__uuid__": "b29db6a7-7857-4fa6-a5ff-e0f3c26069ac"
140 | },
141 | "_type": 0,
142 | "_sizeMode": 0,
143 | "_fillType": 0,
144 | "_fillCenter": {
145 | "__type__": "cc.Vec2",
146 | "x": 0,
147 | "y": 0
148 | },
149 | "_fillStart": 0,
150 | "_fillRange": 0,
151 | "_isTrimmedMode": true,
152 | "_srcBlendFactor": 770,
153 | "_dstBlendFactor": 771,
154 | "_atlas": null
155 | },
156 | {
157 | "__type__": "cc.PrefabInfo",
158 | "root": {
159 | "__id__": 1
160 | },
161 | "asset": {
162 | "__uuid__": "6f2e9698-ea00-46dc-9a09-dda3c94ccf14"
163 | },
164 | "fileId": "29LR6nfGBHc6oiZ/+kiwGm",
165 | "sync": false
166 | },
167 | {
168 | "__type__": "cc.Node",
169 | "_name": "name",
170 | "_objFlags": 0,
171 | "_parent": {
172 | "__id__": 1
173 | },
174 | "_children": [],
175 | "_tag": -1,
176 | "_active": true,
177 | "_components": [
178 | {
179 | "__id__": 6
180 | }
181 | ],
182 | "_prefab": {
183 | "__id__": 7
184 | },
185 | "_id": "",
186 | "_opacity": 255,
187 | "_color": {
188 | "__type__": "cc.Color",
189 | "r": 0,
190 | "g": 0,
191 | "b": 0,
192 | "a": 255
193 | },
194 | "_cascadeOpacityEnabled": true,
195 | "_anchorPoint": {
196 | "__type__": "cc.Vec2",
197 | "x": 0,
198 | "y": 0.5
199 | },
200 | "_contentSize": {
201 | "__type__": "cc.Size",
202 | "width": 64,
203 | "height": 20
204 | },
205 | "_rotationX": 0,
206 | "_rotationY": 0,
207 | "_scaleX": 1,
208 | "_scaleY": 1,
209 | "_position": {
210 | "__type__": "cc.Vec2",
211 | "x": -25.4,
212 | "y": 10
213 | },
214 | "_skewX": 0,
215 | "_skewY": 0,
216 | "_localZOrder": 0,
217 | "_globalZOrder": 0,
218 | "_opacityModifyRGB": false,
219 | "groupIndex": 0
220 | },
221 | {
222 | "__type__": "cc.Label",
223 | "_name": "",
224 | "_objFlags": 0,
225 | "node": {
226 | "__id__": 5
227 | },
228 | "_enabled": true,
229 | "_useOriginalSize": false,
230 | "_actualFontSize": 16,
231 | "_fontSize": 16,
232 | "_lineHeight": 20,
233 | "_enableWrapText": true,
234 | "_N$file": null,
235 | "_isSystemFontUsed": true,
236 | "_spacingX": 0,
237 | "_N$string": "斤斤计较",
238 | "_N$horizontalAlign": 1,
239 | "_N$verticalAlign": 1,
240 | "_N$fontFamily": "Arial",
241 | "_N$overflow": 0
242 | },
243 | {
244 | "__type__": "cc.PrefabInfo",
245 | "root": {
246 | "__id__": 1
247 | },
248 | "asset": {
249 | "__uuid__": "6f2e9698-ea00-46dc-9a09-dda3c94ccf14"
250 | },
251 | "fileId": "4e7+DqZHBFBK3QWk+Fc4pi",
252 | "sync": false
253 | },
254 | {
255 | "__type__": "cc.Node",
256 | "_name": "lv",
257 | "_objFlags": 0,
258 | "_parent": {
259 | "__id__": 1
260 | },
261 | "_children": [],
262 | "_tag": -1,
263 | "_active": true,
264 | "_components": [
265 | {
266 | "__id__": 9
267 | }
268 | ],
269 | "_prefab": {
270 | "__id__": 10
271 | },
272 | "_id": "",
273 | "_opacity": 255,
274 | "_color": {
275 | "__type__": "cc.Color",
276 | "r": 255,
277 | "g": 163,
278 | "b": 0,
279 | "a": 255
280 | },
281 | "_cascadeOpacityEnabled": true,
282 | "_anchorPoint": {
283 | "__type__": "cc.Vec2",
284 | "x": 0,
285 | "y": 0.5
286 | },
287 | "_contentSize": {
288 | "__type__": "cc.Size",
289 | "width": 22.11,
290 | "height": 20
291 | },
292 | "_rotationX": 0,
293 | "_rotationY": 0,
294 | "_scaleX": 1,
295 | "_scaleY": 1,
296 | "_position": {
297 | "__type__": "cc.Vec2",
298 | "x": -24.4,
299 | "y": -10.8
300 | },
301 | "_skewX": 0,
302 | "_skewY": 0,
303 | "_localZOrder": 0,
304 | "_globalZOrder": 0,
305 | "_opacityModifyRGB": false,
306 | "groupIndex": 0
307 | },
308 | {
309 | "__type__": "cc.Label",
310 | "_name": "",
311 | "_objFlags": 0,
312 | "node": {
313 | "__id__": 8
314 | },
315 | "_enabled": true,
316 | "_useOriginalSize": false,
317 | "_actualFontSize": 12,
318 | "_fontSize": 12,
319 | "_lineHeight": 20,
320 | "_enableWrapText": true,
321 | "_N$file": null,
322 | "_isSystemFontUsed": true,
323 | "_spacingX": 0,
324 | "_N$string": "Lv.0",
325 | "_N$horizontalAlign": 1,
326 | "_N$verticalAlign": 1,
327 | "_N$fontFamily": "Arial",
328 | "_N$overflow": 0
329 | },
330 | {
331 | "__type__": "cc.PrefabInfo",
332 | "root": {
333 | "__id__": 1
334 | },
335 | "asset": {
336 | "__uuid__": "6f2e9698-ea00-46dc-9a09-dda3c94ccf14"
337 | },
338 | "fileId": "7d6Uj2POZAI7/ls8U+oSd2",
339 | "sync": false
340 | },
341 | {
342 | "__type__": "cc.Sprite",
343 | "_name": "",
344 | "_objFlags": 0,
345 | "node": {
346 | "__id__": 1
347 | },
348 | "_enabled": true,
349 | "_spriteFrame": {
350 | "__uuid__": "c6b0607b-9440-4082-b1e6-27e10730ed92"
351 | },
352 | "_type": 1,
353 | "_sizeMode": 0,
354 | "_fillType": 0,
355 | "_fillCenter": {
356 | "__type__": "cc.Vec2",
357 | "x": 0,
358 | "y": 0
359 | },
360 | "_fillStart": 0,
361 | "_fillRange": 0,
362 | "_isTrimmedMode": true,
363 | "_srcBlendFactor": 770,
364 | "_dstBlendFactor": 771,
365 | "_atlas": null
366 | },
367 | {
368 | "__type__": "dc690PKQh5Ibp6NPO8+EF97",
369 | "_name": "",
370 | "_objFlags": 0,
371 | "node": {
372 | "__id__": 1
373 | },
374 | "_enabled": true
375 | },
376 | {
377 | "__type__": "cc.PrefabInfo",
378 | "root": {
379 | "__id__": 1
380 | },
381 | "asset": {
382 | "__uuid__": "6f2e9698-ea00-46dc-9a09-dda3c94ccf14"
383 | },
384 | "fileId": "43oBzdlyBIjZxhRdZr6Xdt",
385 | "sync": false
386 | }
387 | ]
--------------------------------------------------------------------------------
/chat_client/assets/prefab/userNode.prefab.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "6f2e9698-ea00-46dc-9a09-dda3c94ccf14",
4 | "asyncLoadAssets": false,
5 | "subMetas": {}
6 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "3f97ec73-bfca-4b56-8e8a-3ec0308323e6",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "432dea04-0969-48d6-91a9-ebb8945dfc67",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls/ChatCtrl.ts:
--------------------------------------------------------------------------------
1 | import NetUtil from "../utils/NetUtil";
2 | import { User, Message } from "../objs/Params";
3 | import GameUtil from "../utils/GameUtil";
4 | import UserNode from "../nodes/UserNode";
5 | import Toast from "../utils/Toast";
6 |
7 | const {ccclass, property} = cc._decorator;
8 |
9 | @ccclass
10 | export default class ChatCtrl extends cc.Component {
11 |
12 | @property(cc.Node) userContent:cc.Node = null;
13 | @property(cc.Prefab) userItem:cc.Prefab = null;
14 |
15 | @property(cc.Node) msgContent:cc.Node = null;
16 | @property(cc.Prefab) otherMsgItem:cc.Prefab = null;
17 | @property(cc.Prefab) selfMsgItem:cc.Prefab = null;
18 |
19 | @property(cc.EditBox) sendAllBox:cc.EditBox = null;
20 | @property(cc.EditBox) sendOneBox:cc.EditBox = null;
21 | @property(cc.ScrollView) msgScrollView:cc.ScrollView = null;
22 |
23 | @property(cc.Node) singleBox:cc.Node = null;
24 |
25 | @property(cc.Label) userInfoLabel:cc.Label = null;
26 |
27 | userList:Array = [];
28 |
29 | singleUser:User = null;
30 |
31 |
32 | onLoad () {
33 | //注册用户登入登出信息
34 | NetUtil.Instance.on('loginInfo',(msg:string)=>{
35 | cc.log(msg);
36 | Toast.makeText(msg,Toast.LENGTH_LONG).show();
37 | })
38 | //获得当前用户信息
39 | NetUtil.Instance.on('userInfo',(user:User)=>{
40 | GameUtil.Instance.userInfo = user;
41 | cc.log(user);
42 | this.userInfoLabel.string = `当前用户是:${user.name} 当前所处的频道是:${user.channel}`
43 |
44 | })
45 | //广播的用户列表信息
46 | NetUtil.Instance.on('userList',(userList)=>{
47 | cc.find('Canvas/login_room').active = false;
48 | //获取当前的用户列表
49 | this.userList = userList;
50 | //更新容器
51 | this.updateUserList(this.userList);
52 | });
53 | //注册发送给全部人的消息
54 | NetUtil.Instance.on('toAll',(msg:Message)=>{
55 | let node = cc.instantiate(this.otherMsgItem);
56 | node.getChildByName('name').getComponent(cc.Label).string = msg.from.name;
57 | node.getChildByName('msgBox').getChildByName('msg').getComponent(cc.Label).string = msg.msg;
58 | this.msgContent.addChild(node);
59 | if(this.msgContent.height>480){
60 | this.msgScrollView.scrollToBottom(0.3);
61 | }
62 | });
63 | //注册发送给一个人的消息
64 | NetUtil.Instance.on('toOne',(msg:Message)=>{
65 | let node = cc.instantiate(this.otherMsgItem);
66 | node.getChildByName('name').getComponent(cc.Label).string = msg.from.name;
67 | node.getChildByName('msgBox').getChildByName('msg').getComponent(cc.Label).string = msg.msg;
68 | node.getChildByName('msgBox').getChildByName('msg').color = cc.Color.RED;
69 | this.msgContent.addChild(node);
70 | if(this.msgContent.height>480){
71 | this.msgScrollView.scrollToBottom(0.3);
72 | }
73 | });
74 | }
75 |
76 | //更新用户列表的方法
77 | updateUserList(userList:Array){
78 | //首先清空容器
79 | this.userContent.removeAllChildren();
80 | userList.forEach(user=>{
81 | //将用户数据加入容器
82 | let node = cc.instantiate(this.userItem);
83 | node.getComponent(UserNode).init(user);
84 | node.getChildByName('name').getComponent(cc.Label).string = user.name;
85 | this.userContent.addChild(node);
86 | })
87 | }
88 | //发送给所有人的方法
89 | sendToAll(){
90 | let str = this.sendAllBox.string;
91 | if(str.length<1){
92 | return;
93 | }
94 | this.sendAllBox.string = "";
95 | let node = cc.instantiate(this.selfMsgItem);
96 | node.getChildByName('name').getComponent(cc.Label).string = GameUtil.Instance.userInfo.name;
97 | node.getChildByName('msgBox').getChildByName('msg').getComponent(cc.Label).string = str;
98 | this.msgContent.addChild(node);
99 |
100 | let msg:Message ={from:GameUtil.Instance.userInfo,msg:str};
101 | NetUtil.Instance.emit('toAll',msg);
102 | if(this.msgContent.height>480){
103 | this.msgScrollView.scrollToBottom(0.3);
104 | }
105 |
106 | }
107 | //发送给一个人的方法
108 | sendToOne(){
109 | let str = this.sendOneBox.string;
110 | if(str.length<1){
111 | return;
112 | }
113 | this.sendOneBox.string = "";
114 | let node = cc.instantiate(this.selfMsgItem);
115 | node.getChildByName('name').getComponent(cc.Label).string = GameUtil.Instance.userInfo.name;
116 | node.getChildByName('msgBox').getChildByName('msg').getComponent(cc.Label).string = str;
117 | this.msgContent.addChild(node);
118 |
119 | let msg:Message ={from:GameUtil.Instance.userInfo,msg:str,to:this.singleUser.id};
120 | NetUtil.Instance.emit('toOne',msg)
121 | if(this.msgContent.height>480){
122 | this.msgScrollView.scrollToBottom(0.3);
123 | }
124 | this.singleBox.active = false;
125 | }
126 | //显示当然消息界面的方法
127 | showSingleBox(user:User){
128 | //缓存需要发送的人的消息
129 | this.singleUser = user;
130 | this.singleBox.getChildByName('board').getChildByName('to').getComponent(cc.Label).string = user.name;
131 | this.singleBox.active = true;
132 | }
133 | }
134 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls/ChatCtrl.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "23f1b4a3-91c7-457d-b8b9-5f26155300b4",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls/LoadingCtrl.ts:
--------------------------------------------------------------------------------
1 | import NetUtil from "../utils/NetUtil";
2 |
3 | const {ccclass, property} = cc._decorator;
4 |
5 | @ccclass
6 | export default class Loading extends cc.Component {
7 |
8 | //初始化项目
9 | initGame(){
10 | NetUtil.Instance.init();
11 |
12 | }
13 |
14 | onLoad () {
15 | this.initGame();
16 | setTimeout(()=>{
17 | cc.director.loadScene('Chat');
18 | },1000);
19 |
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls/LoadingCtrl.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "c09ab99a-fd83-417a-bd23-885ef60f44d7",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls/LoginCtrl.ts:
--------------------------------------------------------------------------------
1 | import NetUtil from "../utils/NetUtil";
2 | import GameUtil from "../utils/GameUtil";
3 | import IoUtils from "../utils/IoUtil";
4 | import { User } from "../objs/Params";
5 | import Toast from "../utils/Toast";
6 |
7 | const {ccclass, property} = cc._decorator;
8 |
9 | const md5 = require('../libs/md5.min');
10 |
11 | @ccclass
12 | export default class LoginCtrl extends cc.Component {
13 |
14 | @property(cc.Label) label: cc.Label = null;
15 | @property(cc.EditBox) userBox: cc.EditBox = null;
16 | @property(cc.EditBox) passwordBox: cc.EditBox = null;
17 | @property(cc.EditBox) channelBox: cc.EditBox = null;
18 |
19 | onLoad(){
20 | NetUtil.Instance.on('registerInfo',msg=>{
21 | Toast.makeText(msg,Toast.LENGTH_LONG).show();
22 | });
23 |
24 | NetUtil.Instance.on('loginInfo',msg=>{
25 | Toast.makeText(msg,Toast.LENGTH_LONG).show();
26 | });
27 |
28 | }
29 |
30 | register(){
31 | let name = this.userBox.string;
32 | if(name.length<2){
33 | return;
34 | }
35 |
36 | let password = this.passwordBox.string;
37 | if(password.length<2){
38 | return;
39 | }
40 | password = md5(password);
41 |
42 | let user ={name,password};
43 | NetUtil.Instance.emit('register',user);
44 | }
45 |
46 |
47 | login(){
48 | let name = this.userBox.string;
49 | if(name.length<2){
50 | return;
51 | }
52 |
53 | let channel = this.channelBox.string;
54 | if(channel.length<2){
55 | return;
56 | }
57 |
58 | let password = this.passwordBox.string;
59 | if(password.length<2){
60 | return;
61 | }
62 | password = md5(password);
63 |
64 | let user:User ={id:"",name,password,imgUrl:"",channel};
65 | NetUtil.Instance.emit('login',user);
66 | }
67 |
68 | update (dt) {
69 | this.label.string = `${NetUtil.Instance.delayMS}ms`;
70 |
71 | if(NetUtil.Instance.delayMS<50){
72 | this.label.node.color = cc.Color.GREEN;
73 | }
74 | else{
75 | this.label.node.color = cc.Color.RED;
76 | }
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/ctrls/LoginCtrl.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "1b4f1860-8fd8-4495-ab75-9c7e111a1b3f",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/libs.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "f2932635-4595-4959-b65b-d47a948b97b0",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/libs/md5.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * [js-md5]{@link https://github.com/emn178/js-md5}
3 | *
4 | * @namespace md5
5 | * @version 0.7.3
6 | * @author Chen, Yi-Cyuan [emn178@gmail.com]
7 | * @copyright Chen, Yi-Cyuan 2014-2017
8 | * @license MIT
9 | */
10 | !function(){"use strict";function t(t){if(t)d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d,this.buffer8=l;else if(a){var r=new ArrayBuffer(68);this.buffer8=new Uint8Array(r),this.blocks=new Uint32Array(r)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}var r="input is invalid type",e="object"==typeof window,i=e?window:{};i.JS_MD5_NO_WINDOW&&(e=!1);var s=!e&&"object"==typeof self,h=!i.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;h?i=global:s&&(i=self);var f=!i.JS_MD5_NO_COMMON_JS&&"object"==typeof module&&module.exports,o="function"==typeof define&&define.amd,a=!i.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,n="0123456789abcdef".split(""),u=[128,32768,8388608,-2147483648],y=[0,8,16,24],c=["hex","array","digest","buffer","arrayBuffer","base64"],p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),d=[],l;if(a){var A=new ArrayBuffer(68);l=new Uint8Array(A),d=new Uint32Array(A)}!i.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!a||!i.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var b=function(r){return function(e){return new t(!0).update(e)[r]()}},v=function(){var r=b("hex");h&&(r=w(r)),r.create=function(){return new t},r.update=function(t){return r.create().update(t)};for(var e=0;e>2]|=t[f]<>6,u[h++]=128|63&s):s<55296||s>=57344?(u[h++]=224|s>>12,u[h++]=128|s>>6&63,u[h++]=128|63&s):(s=65536+((1023&s)<<10|1023&t.charCodeAt(++f)),u[h++]=240|s>>18,u[h++]=128|s>>12&63,u[h++]=128|s>>6&63,u[h++]=128|63&s);else for(h=this.start;f>2]|=s<>2]|=(192|s>>6)<>2]|=(128|63&s)<=57344?(n[h>>2]|=(224|s>>12)<>2]|=(128|s>>6&63)<>2]|=(128|63&s)<>2]|=(240|s>>18)<>2]|=(128|s>>12&63)<>2]|=(128|s>>6&63)<>2]|=(128|63&s)<=64?(this.start=h-64,this.hash(),this.hashed=!0):this.start=h}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},t.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,r=this.lastByteIndex;t[r>>2]|=u[3&r],r>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,t[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},t.prototype.hash=function(){var t,r,e,i,s,h,f=this.blocks;this.first?r=((r=((t=((t=f[0]-680876937)<<7|t>>>25)-271733879<<0)^(e=((e=(-271733879^(i=((i=(-1732584194^2004318071&t)+f[1]-117830708)<<12|i>>>20)+t<<0)&(-271733879^t))+f[2]-1126478375)<<17|e>>>15)+i<<0)&(i^t))+f[3]-1316259209)<<22|r>>>10)+e<<0:(t=this.h0,r=this.h1,e=this.h2,r=((r+=((t=((t+=((i=this.h3)^r&(e^i))+f[0]-680876936)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[1]-389564586)<<12|i>>>20)+t<<0)&(t^r))+f[2]+606105819)<<17|e>>>15)+i<<0)&(i^t))+f[3]-1044525330)<<22|r>>>10)+e<<0),r=((r+=((t=((t+=(i^r&(e^i))+f[4]-176418897)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[5]+1200080426)<<12|i>>>20)+t<<0)&(t^r))+f[6]-1473231341)<<17|e>>>15)+i<<0)&(i^t))+f[7]-45705983)<<22|r>>>10)+e<<0,r=((r+=((t=((t+=(i^r&(e^i))+f[8]+1770035416)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[9]-1958414417)<<12|i>>>20)+t<<0)&(t^r))+f[10]-42063)<<17|e>>>15)+i<<0)&(i^t))+f[11]-1990404162)<<22|r>>>10)+e<<0,r=((r+=((t=((t+=(i^r&(e^i))+f[12]+1804603682)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[13]-40341101)<<12|i>>>20)+t<<0)&(t^r))+f[14]-1502002290)<<17|e>>>15)+i<<0)&(i^t))+f[15]+1236535329)<<22|r>>>10)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[1]-165796510)<<5|t>>>27)+r<<0)^r))+f[6]-1069501632)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[11]+643717713)<<14|e>>>18)+i<<0)^i))+f[0]-373897302)<<20|r>>>12)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[5]-701558691)<<5|t>>>27)+r<<0)^r))+f[10]+38016083)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[15]-660478335)<<14|e>>>18)+i<<0)^i))+f[4]-405537848)<<20|r>>>12)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[9]+568446438)<<5|t>>>27)+r<<0)^r))+f[14]-1019803690)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[3]-187363961)<<14|e>>>18)+i<<0)^i))+f[8]+1163531501)<<20|r>>>12)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[13]-1444681467)<<5|t>>>27)+r<<0)^r))+f[2]-51403784)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[7]+1735328473)<<14|e>>>18)+i<<0)^i))+f[12]-1926607734)<<20|r>>>12)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[5]-378558)<<4|t>>>28)+r<<0))+f[8]-2022574463)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[11]+1839030562)<<16|e>>>16)+i<<0))+f[14]-35309556)<<23|r>>>9)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[1]-1530992060)<<4|t>>>28)+r<<0))+f[4]+1272893353)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[7]-155497632)<<16|e>>>16)+i<<0))+f[10]-1094730640)<<23|r>>>9)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[13]+681279174)<<4|t>>>28)+r<<0))+f[0]-358537222)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[3]-722521979)<<16|e>>>16)+i<<0))+f[6]+76029189)<<23|r>>>9)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[9]-640364487)<<4|t>>>28)+r<<0))+f[12]-421815835)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[15]+530742520)<<16|e>>>16)+i<<0))+f[2]-995338651)<<23|r>>>9)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[0]-198630844)<<6|t>>>26)+r<<0)|~e))+f[7]+1126891415)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[14]-1416354905)<<15|e>>>17)+i<<0)|~t))+f[5]-57434055)<<21|r>>>11)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[12]+1700485571)<<6|t>>>26)+r<<0)|~e))+f[3]-1894986606)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[10]-1051523)<<15|e>>>17)+i<<0)|~t))+f[1]-2054922799)<<21|r>>>11)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[8]+1873313359)<<6|t>>>26)+r<<0)|~e))+f[15]-30611744)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[6]-1560198380)<<15|e>>>17)+i<<0)|~t))+f[13]+1309151649)<<21|r>>>11)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[4]-145523070)<<6|t>>>26)+r<<0)|~e))+f[11]-1120210379)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[2]+718787259)<<15|e>>>17)+i<<0)|~t))+f[9]-343485551)<<21|r>>>11)+e<<0,this.first?(this.h0=t+1732584193<<0,this.h1=r-271733879<<0,this.h2=e-1732584194<<0,this.h3=i+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+r<<0,this.h2=this.h2+e<<0,this.h3=this.h3+i<<0)},t.prototype.hex=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,i=this.h3;return n[t>>4&15]+n[15&t]+n[t>>12&15]+n[t>>8&15]+n[t>>20&15]+n[t>>16&15]+n[t>>28&15]+n[t>>24&15]+n[r>>4&15]+n[15&r]+n[r>>12&15]+n[r>>8&15]+n[r>>20&15]+n[r>>16&15]+n[r>>28&15]+n[r>>24&15]+n[e>>4&15]+n[15&e]+n[e>>12&15]+n[e>>8&15]+n[e>>20&15]+n[e>>16&15]+n[e>>28&15]+n[e>>24&15]+n[i>>4&15]+n[15&i]+n[i>>12&15]+n[i>>8&15]+n[i>>20&15]+n[i>>16&15]+n[i>>28&15]+n[i>>24&15]},t.prototype.toString=t.prototype.hex,t.prototype.digest=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,i=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255,255&e,e>>8&255,e>>16&255,e>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255]},t.prototype.array=t.prototype.digest,t.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),r=new Uint32Array(t);return r[0]=this.h0,r[1]=this.h1,r[2]=this.h2,r[3]=this.h3,t},t.prototype.buffer=t.prototype.arrayBuffer,t.prototype.base64=function(){for(var t,r,e,i="",s=this.array(),h=0;h<15;)t=s[h++],r=s[h++],e=s[h++],i+=p[t>>>2]+p[63&(t<<4|r>>>4)]+p[63&(r<<2|e>>>6)]+p[63&e];return t=s[h],i+=p[t>>>2]+p[t<<4&63]+"=="};var _=v();f?module.exports=_:(i.md5=_,o&&define(function(){return _}))}();
--------------------------------------------------------------------------------
/chat_client/assets/scripts/libs/md5.min.js.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "b78abf14-9bea-4d87-a341-3b627aa2e4bd",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/libs/socket.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "41587032-2508-4f81-b4c1-3d8b16c012ff",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/libs/socket/socket.io.js.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "e074f634-bc6d-4134-863f-bb4cfdcb282f",
4 | "isPlugin": true,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/nodes.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "cdadffe0-2cbb-4f11-9fc0-280bdbcbcc07",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/nodes/UserNode.ts:
--------------------------------------------------------------------------------
1 | import { User } from "../objs/Params";
2 | import ChatCtrl from "../ctrls/ChatCtrl";
3 |
4 | const {ccclass, property} = cc._decorator;
5 |
6 | @ccclass
7 | export default class UserNode extends cc.Component {
8 |
9 | user:User = null;
10 |
11 | /**
12 | * 初始化
13 | * @param user
14 | */
15 | init(user:User){
16 | this.user = user;
17 | this.node.on(cc.Node.EventType.TOUCH_END,event=>{
18 | //获得控制脚本
19 | let chatCtrl = cc.find('Canvas/chat_room').getComponent(ChatCtrl);
20 | chatCtrl.showSingleBox(this.user);
21 | });
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/nodes/UserNode.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "dc6903ca-421e-486e-9e8d-3cef3e105f7b",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/objs.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "f6ef41f1-e18d-4d57-b11f-b36fe2a64b86",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/objs/Params.ts:
--------------------------------------------------------------------------------
1 | export interface User{
2 | id:string; //用户的id
3 | name:string; //用户名
4 | password:string; //密码
5 | channel:string; //当前的频道
6 | imgUrl:string; //用户头像的图片地址
7 | }
8 |
9 | export interface Message{
10 | from:User ; //发送的用户
11 | msg:string ; //发送的信息
12 | to?:string ; //发送给的人 没有则发送全部
13 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/objs/Params.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "d333b8a7-1e99-48b2-92ae-82ec4ac8286d",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "a2edaf1e-6163-487d-a51a-dc3fd05058f4",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/GameUtil.ts:
--------------------------------------------------------------------------------
1 | import { User } from "../objs/Params";
2 |
3 | export default class GameUtil {
4 |
5 | public static readonly Instance: GameUtil = new GameUtil();
6 | private GameUtil(){}
7 |
8 | //用户信息
9 | userInfo:User;
10 |
11 | /**
12 | * 获得guid
13 | */
14 | guid() {
15 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
16 | var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
17 | return v.toString(16);
18 | });
19 | }
20 |
21 |
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/GameUtil.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "e1e399c6-88ec-41a4-96bb-3d3540fa086c",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/IoUtil.ts:
--------------------------------------------------------------------------------
1 | export default class IoUtils {
2 | /**
3 | * 获取数据
4 | * @param key 键
5 | */
6 | static get(key:string):string{
7 | return cc.sys.localStorage.getItem(key);
8 | }
9 |
10 | /**
11 | * 保存数据
12 | * @param key 键
13 | * @param value 值
14 | */
15 | static put(key:string, value:string){
16 | cc.sys.localStorage.setItem(key, value);
17 | }
18 |
19 | /**
20 | * 删除数据
21 | * @param key 键
22 | */
23 | static remove(key:string){
24 | cc.sys.localStorage.removeItem(key) ;
25 | }
26 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/IoUtil.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "c6f55ebc-1dfd-42f6-bb40-91aed063348a",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/NetUtil.ts:
--------------------------------------------------------------------------------
1 | const io = (window as any).io || {};
2 | export default class NetUtil{
3 | public static readonly Instance: NetUtil = new NetUtil();
4 | private NetUtil(){}
5 | //网络延时 ms
6 | delayMS:number = 0;
7 | private sio = null;
8 | private connected:boolean = false;
9 | private isPinging:boolean = false;
10 | private lastRecieveTime:number = 0;
11 | private lastSendTime:number = 0;
12 | /**
13 | * 初始化
14 | */
15 | init(){
16 | let opts = {
17 | 'reconnection':false,
18 | 'force new connection': true,
19 | 'transports':['websocket', 'polling']
20 | }
21 | this.sio = io.connect('http://127.0.0.1:3000',opts);
22 |
23 | this.sio.on('connect',(data)=>{
24 | console.log('connect');
25 | this.connected = true;
26 | })
27 |
28 | this.sio.on('disconnect',(data)=>{
29 | console.log("disconnect");
30 | this.connected = false;
31 | });
32 |
33 | this.startHearbeat();
34 | }
35 |
36 | /**
37 | * 获取客户端实体
38 | */
39 | getClient(){
40 | return this.sio;
41 | }
42 |
43 | /**
44 | * 开启心跳包
45 | */
46 | startHearbeat(){
47 | this.sio.on('game_pong',()=>{
48 | //console.log('game_pong');
49 | this.lastRecieveTime = Date.now();
50 | this.delayMS = this.lastRecieveTime - this.lastSendTime;
51 | //console.log(this.delayMS);
52 | });
53 | this.lastRecieveTime = Date.now();
54 | if(!this.isPinging){
55 | this.isPinging = true;
56 | cc.game.on(cc.game.EVENT_HIDE,()=>{
57 | this.ping();
58 | });
59 | setInterval(()=>{
60 | if(this.sio){
61 | this.ping();
62 | }
63 | },2000);
64 | setInterval(()=>{
65 | if(this.sio){
66 | if(Date.now() - this.lastRecieveTime > 10000){
67 | this.close();
68 | }
69 | }
70 | },500);
71 | }
72 | }
73 |
74 | /**
75 | * ping
76 | */
77 | ping(){
78 | if(this.sio){
79 | this.lastSendTime = Date.now();
80 | this.sio.emit('game_ping');
81 | }
82 | }
83 |
84 | /**
85 | * 关闭
86 | */
87 | close(){
88 | console.log('close');
89 | this.delayMS = null;
90 | if(this.sio && this.connected){
91 | this.connected = false;
92 | this.sio.disconnect();
93 | }
94 | this.sio = null;
95 | }
96 |
97 | /**
98 | * 绑定事件
99 | * @param event
100 | * @param cb
101 | */
102 | on(event:string,cb){
103 | this.sio.on(event,cb);
104 | }
105 |
106 | /**
107 | * 击发服务器事件
108 | * @param event
109 | * @param data
110 | */
111 | emit(event:string,data?:any){
112 | if(data){
113 | this.sio.emit(event,data);
114 | return;
115 | }
116 | this.sio.emit(event);
117 | }
118 |
119 |
120 |
121 | }
122 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/NetUtil.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "8941711e-e46a-4713-8630-b6daecdbdef5",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/Toast.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * 吐司的显示任务
3 | */
4 | interface ToastTask{
5 | text:string,
6 | duration:number
7 | }
8 |
9 | /**
10 | * 吐司的实体
11 | */
12 | class ToastObject{
13 | private _text;
14 | private _duration;
15 | private _gravity;
16 | private _x = 0;
17 | private _y = 0;
18 |
19 | /**
20 | * 初始化
21 | * @param text
22 | * @param duration
23 | */
24 | constructor(text:string,duration:number){
25 | this._text = text;
26 | this._duration = duration;
27 | }
28 |
29 | /**
30 | * 显示Toast的方法
31 | */
32 | show() {
33 | if(Toast.showing){
34 | let text = this._text;
35 | let duration = this._duration;
36 | Toast.TaskArray.push({text,duration});
37 |
38 | //超过5条之前的直接舍弃
39 | if(Toast.TaskArray.length>Toast.MAX_ARRAY){
40 | Toast.TaskArray.shift();
41 | }
42 |
43 | return;
44 | }
45 | // 加载背景纹理
46 | if (Toast.bgSpriteFrame == null) {
47 | cc.loader.load({ 'uuid': 'b43ff3c2-02bb-4874-81f7-f2dea6970f18' },(error, result)=>{
48 | if (error) {
49 | cc.error(error);
50 | return;
51 | }
52 | Toast.bgSpriteFrame = new cc.SpriteFrame(result);
53 | Toast.bgSpriteFrame.insetTop = 3;
54 | Toast.bgSpriteFrame.insetBottom = 3;
55 | Toast.bgSpriteFrame.insetLeft = 4;
56 | Toast.bgSpriteFrame.insetRight = 4;
57 | //加载完再调用
58 | this.show();
59 | });
60 | return;
61 | }
62 | Toast.showing = true;
63 | // canvas
64 | var canvas = cc.director.getScene().getComponentInChildren(cc.Canvas);
65 | var width = canvas.node.width;
66 | var height = canvas.node.height;
67 | if (this._duration === undefined) {
68 | this._duration = Toast.LENGTH_SHORT;
69 | }
70 | // 背景图片设置
71 | let bgNode = new cc.Node();
72 | // 背景图片透明度
73 | bgNode.opacity = 200;
74 | let bgSprite = bgNode.addComponent(cc.Sprite);
75 | bgSprite.type = cc.Sprite.Type.SLICED;
76 | let bgLayout = bgNode.addComponent(cc.Layout);
77 | bgLayout.resizeMode = cc.Layout.ResizeMode.CONTAINER;
78 |
79 | // Lable文本格式设置
80 | let textNode = new cc.Node();
81 | let textLabel = textNode.addComponent(cc.Label);
82 | textLabel.horizontalAlign = cc.Label.HorizontalAlign.CENTER;
83 | textLabel.verticalAlign = cc.Label.VerticalAlign.CENTER;
84 | textLabel.fontSize = 20;
85 | textLabel.string = this._text;
86 |
87 | //背景图片与文本内容的间距
88 | let hPadding = textLabel.fontSize / 8;
89 | let vPadding = 2;
90 | bgLayout.paddingLeft = hPadding;
91 | bgLayout.paddingRight = hPadding;
92 | bgLayout.paddingTop = vPadding;
93 | bgLayout.paddingBottom = vPadding;
94 |
95 | // 当文本宽度过长时,设置为自动换行格式
96 | if (this._text.length * textLabel.fontSize > width / 3) {
97 | textNode.width = width / 3;
98 | textLabel.overflow = cc.Label.Overflow.RESIZE_HEIGHT;
99 | }
100 |
101 | bgNode.addChild(textNode);
102 | if (Toast.bgSpriteFrame) {
103 | bgSprite.spriteFrame = Toast.bgSpriteFrame;
104 | }
105 | // gravity 设置Toast显示的位置
106 | if (this._gravity == Toast.CENTER) {
107 | textNode.y = 0;
108 | textNode.x = 0;
109 | } else if (this._gravity == Toast.TOP) {
110 | textNode.y = textNode.y + (height / 5) * 2;
111 | } else if (this._gravity == Toast.TOP_LEFT) {
112 | textNode.y = textNode.y + (height / 5) * 2;
113 | textNode.x = textNode.x + (width / 5);
114 | } else if (this._gravity == Toast.LEFT) {
115 | textNode.x = textNode.x + (width / 5);
116 | } else if (this._gravity == Toast.BOTTOM_LEFT) {
117 | textNode.y = textNode.y - (height / 5) * 2;
118 | textNode.x = textNode.x + (width / 5);
119 | } else if (this._gravity == Toast.BOTTOM) {
120 | textNode.y = textNode.y - (height / 5) * 2;
121 | } else if (this._gravity == Toast.BOTTOM_RIGHT) {
122 | textNode.y = textNode.y - (height / 5) * 2;
123 | textNode.x = textNode.x - (width / 5);
124 | } else if (this._gravity == Toast.RIGHT) {
125 | textNode.x = textNode.x - (width / 5);
126 | } else if (this._gravity == Toast.TOP_RIGHT) {
127 | textNode.y = textNode.y + (height / 5) * 2;
128 | textNode.x = textNode.x - (width / 5);
129 | } else {
130 | // 默认情况 BOTTOM
131 | textNode.y = textNode.y - (height / 5) * 2;
132 | }
133 | textNode.x = textNode.x + this._x;
134 | textNode.y = textNode.y + this._y;
135 |
136 | canvas.node.addChild(bgNode);
137 |
138 | let finished = cc.callFunc((target)=>{
139 | bgNode.destroy();
140 | Toast.showing = false;
141 | //showing
142 | if(Toast.TaskArray.length==0){
143 |
144 | }
145 | else{
146 | let task = Toast.TaskArray.shift();
147 | Toast.showText(task.text,task.duration);
148 | }
149 | });
150 | let action = cc.sequence(cc.moveBy(this._duration,cc.p(0,0)),cc.fadeOut(0.3), finished);
151 | bgNode.runAction(action);
152 | }
153 |
154 | /**
155 | *
156 | * @param gravity 位置
157 | * @param x 偏移值x
158 | * @param y 偏移值y
159 | */
160 | setGravity(gravity:number, x:number, y:number) {
161 | this._gravity = gravity;
162 | this._x = x;
163 | this._y = y;
164 | }
165 | }
166 |
167 |
168 | export default class Toast{
169 | /**
170 | * 时长
171 | */
172 | static LENGTH_LONG:number = 3.5;
173 | static LENGTH_SHORT:number = 1;
174 | /**
175 | * 位置
176 | */
177 | static CENTER:number = 0;
178 | static TOP:number = 1;
179 | static TOP_LEFT:number = 2;
180 | static LEFT:number = 3;
181 | static BOTTOM_LEFT:number = 4;
182 | static BOTTOM:number = 5;
183 | static BOTTOM_RIGHT:number = 6;
184 | static RIGHT:number = 7;
185 | static TOP_RIGHT:number = 8;
186 |
187 | static bgSpriteFrame:cc.SpriteFrame = null;
188 |
189 | //任务队列
190 | static TaskArray:Array = [];
191 |
192 | //是否正在显示
193 | static showing:boolean = false;
194 |
195 | static MAX_ARRAY:number = 5;
196 | /**
197 | *
198 | * 创建一个吐司
199 | * @param text 文本
200 | * @param duration 时长
201 | */
202 | static makeText(text:string,duration:number){
203 | return new ToastObject(text, duration);
204 | }
205 |
206 | /**
207 | *
208 | * 显示一个吐司
209 | * @param text 文本
210 | * @param duration 时长
211 | */
212 | static showText(text:string,duration:number){
213 | Toast.makeText(text, duration).show();
214 | }
215 |
216 | }
217 |
--------------------------------------------------------------------------------
/chat_client/assets/scripts/utils/Toast.ts.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.5",
3 | "uuid": "f23dac96-b7dd-464b-bf5d-0b200beb2146",
4 | "isPlugin": false,
5 | "loadPluginInWeb": true,
6 | "loadPluginInNative": true,
7 | "loadPluginInEditor": false,
8 | "subMetas": {}
9 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "de131051-8343-4a4b-bec9-72993c522935",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/bg.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.1",
3 | "uuid": "0d6c74e4-956f-45e2-a05f-997847938b0c",
4 | "subMetas": {}
5 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/bg/bg1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/bg/bg1.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/bg/bg1.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "c56ea067-8b73-4026-8298-647563532926",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "bg1": {
9 | "ver": "1.0.3",
10 | "uuid": "806b88f6-e41a-4b7c-a2b2-6ebe74b8f484",
11 | "rawTextureUuid": "c56ea067-8b73-4026-8298-647563532926",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 1643,
20 | "height": 804,
21 | "rawWidth": 1643,
22 | "rawHeight": 804,
23 | "borderTop": 0,
24 | "borderBottom": 0,
25 | "borderLeft": 0,
26 | "borderRight": 0,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/blue.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/blue.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "dae7dba5-ec91-4edd-8b8c-5e6f196014cb",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "blue": {
9 | "ver": "1.0.3",
10 | "uuid": "afb1397b-d55c-453d-b603-07e8c60b1caf",
11 | "rawTextureUuid": "dae7dba5-ec91-4edd-8b8c-5e6f196014cb",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 48,
20 | "height": 48,
21 | "rawWidth": 48,
22 | "rawHeight": 48,
23 | "borderTop": 6,
24 | "borderBottom": 9,
25 | "borderLeft": 8,
26 | "borderRight": 8,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/green.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/green.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "a4775f84-84a1-499e-9365-4d1169cadf7a",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "green": {
9 | "ver": "1.0.3",
10 | "uuid": "89c91f85-34b2-4c32-b0cc-a14e7c8b96f8",
11 | "rawTextureUuid": "a4775f84-84a1-499e-9365-4d1169cadf7a",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 48,
20 | "height": 48,
21 | "rawWidth": 48,
22 | "rawHeight": 48,
23 | "borderTop": 8,
24 | "borderBottom": 8,
25 | "borderLeft": 8,
26 | "borderRight": 8,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/green_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/green_pressed.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/green_pressed.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "e1e266a8-8aec-4cff-8795-fb2f5ca5b594",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "green_pressed": {
9 | "ver": "1.0.3",
10 | "uuid": "c6b0607b-9440-4082-b1e6-27e10730ed92",
11 | "rawTextureUuid": "e1e266a8-8aec-4cff-8795-fb2f5ca5b594",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 48,
20 | "height": 48,
21 | "rawWidth": 48,
22 | "rawHeight": 48,
23 | "borderTop": 5,
24 | "borderBottom": 5,
25 | "borderLeft": 5,
26 | "borderRight": 5,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/grey.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/grey.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "3288485c-0b1b-404f-8983-6b5b26dadf48",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "grey": {
9 | "ver": "1.0.3",
10 | "uuid": "1a021a97-43f7-4d97-8651-542b5f7249e6",
11 | "rawTextureUuid": "3288485c-0b1b-404f-8983-6b5b26dadf48",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 48,
20 | "height": 48,
21 | "rawWidth": 48,
22 | "rawHeight": 48,
23 | "borderTop": 7,
24 | "borderBottom": 9,
25 | "borderLeft": 7,
26 | "borderRight": 7,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/head.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/head.jpg
--------------------------------------------------------------------------------
/chat_client/assets/textures/head.jpg.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "e1fcfebf-1ff7-40dc-9df8-335327904954",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "head": {
9 | "ver": "1.0.3",
10 | "uuid": "b29db6a7-7857-4fa6-a5ff-e0f3c26069ac",
11 | "rawTextureUuid": "e1fcfebf-1ff7-40dc-9df8-335327904954",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 100,
20 | "height": 100,
21 | "rawWidth": 100,
22 | "rawHeight": 100,
23 | "borderTop": 0,
24 | "borderBottom": 0,
25 | "borderLeft": 0,
26 | "borderRight": 0,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/msg_tip_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/msg_tip_left.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/msg_tip_left.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "f35feeef-afc6-4319-b8f1-949e9ccec1d6",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "msg_tip_left": {
9 | "ver": "1.0.3",
10 | "uuid": "8455a556-e16c-4400-8f84-798e952f8168",
11 | "rawTextureUuid": "f35feeef-afc6-4319-b8f1-949e9ccec1d6",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 121,
20 | "height": 87,
21 | "rawWidth": 121,
22 | "rawHeight": 87,
23 | "borderTop": 39,
24 | "borderBottom": 31,
25 | "borderLeft": 44,
26 | "borderRight": 61,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/msg_tip_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/msg_tip_right.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/msg_tip_right.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "f1783e7f-4001-446c-a5f9-bddf300d7525",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "msg_tip_right": {
9 | "ver": "1.0.3",
10 | "uuid": "88245198-d644-45c6-8157-9730bcbfac7b",
11 | "rawTextureUuid": "f1783e7f-4001-446c-a5f9-bddf300d7525",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 121,
20 | "height": 87,
21 | "rawWidth": 121,
22 | "rawHeight": 87,
23 | "borderTop": 39,
24 | "borderBottom": 31,
25 | "borderLeft": 58,
26 | "borderRight": 49,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/normal_board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/normal_board.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/normal_board.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "7d559be0-f2d2-4a3a-97de-7e3fce2a7f6d",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "normal_board": {
9 | "ver": "1.0.3",
10 | "uuid": "2fc145fe-581a-44c3-84aa-a7ca424b65a7",
11 | "rawTextureUuid": "7d559be0-f2d2-4a3a-97de-7e3fce2a7f6d",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 44,
20 | "height": 47,
21 | "rawWidth": 44,
22 | "rawHeight": 47,
23 | "borderTop": 16,
24 | "borderBottom": 19,
25 | "borderLeft": 18,
26 | "borderRight": 17,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/white_inlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/white_inlay.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/white_inlay.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "ac97d53a-82ea-4ac9-b3b9-f246aa85f8c5",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "white_inlay": {
9 | "ver": "1.0.3",
10 | "uuid": "6c62a9ed-2dd7-40a7-a427-cf36b17e7d21",
11 | "rawTextureUuid": "ac97d53a-82ea-4ac9-b3b9-f246aa85f8c5",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 44,
20 | "height": 44,
21 | "rawWidth": 44,
22 | "rawHeight": 44,
23 | "borderTop": 12,
24 | "borderBottom": 10,
25 | "borderLeft": 6,
26 | "borderRight": 9,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/assets/textures/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/assets/textures/yellow.png
--------------------------------------------------------------------------------
/chat_client/assets/textures/yellow.png.meta:
--------------------------------------------------------------------------------
1 | {
2 | "ver": "1.0.0",
3 | "uuid": "eaa3c103-eff0-43d8-9064-fa2833e0a9af",
4 | "type": "sprite",
5 | "wrapMode": "clamp",
6 | "filterMode": "bilinear",
7 | "subMetas": {
8 | "yellow": {
9 | "ver": "1.0.3",
10 | "uuid": "5a0cf95d-90b9-4d41-9748-9b94bfcbf351",
11 | "rawTextureUuid": "eaa3c103-eff0-43d8-9064-fa2833e0a9af",
12 | "trimType": "custom",
13 | "trimThreshold": 1,
14 | "rotated": false,
15 | "offsetX": 0,
16 | "offsetY": 0,
17 | "trimX": 0,
18 | "trimY": 0,
19 | "width": 48,
20 | "height": 48,
21 | "rawWidth": 48,
22 | "rawHeight": 48,
23 | "borderTop": 0,
24 | "borderBottom": 0,
25 | "borderLeft": 0,
26 | "borderRight": 0,
27 | "subMetas": {}
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/chat_client/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6",
4 | "module": "commonjs",
5 | "experimentalDecorators": true
6 | },
7 | "exclude": [
8 | "node_modules",
9 | ".vscode",
10 | "library",
11 | "local",
12 | "settings",
13 | "temp"
14 | ]
15 | }
--------------------------------------------------------------------------------
/chat_client/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "requires": true,
3 | "lockfileVersion": 1,
4 | "dependencies": {
5 | "@types/node": {
6 | "version": "9.4.6",
7 | "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-9.4.6.tgz",
8 | "integrity": "sha1-2Bdthk7kh1PQU3g+TkY67Ia42C4="
9 | },
10 | "@types/socket.io": {
11 | "version": "1.4.31",
12 | "resolved": "http://registry.npm.taobao.org/@types/socket.io/download/@types/socket.io-1.4.31.tgz",
13 | "integrity": "sha1-epKFGKNVFvzNkEMflFOO0/3auhk=",
14 | "requires": {
15 | "@types/node": "9.4.6"
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/chat_client/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "engine": "cocos2d-html5",
3 | "packages": "packages"
4 | }
--------------------------------------------------------------------------------
/chat_client/settings/builder.json:
--------------------------------------------------------------------------------
1 | {
2 | "excludeScenes": [],
3 | "orientation": {
4 | "landscapeLeft": true,
5 | "landscapeRight": true,
6 | "portrait": false,
7 | "upsideDown": false
8 | },
9 | "packageName": "org.cocos2d.helloworld",
10 | "startScene": "2d2f792f-a40c-49bb-a189-ed176a246e49",
11 | "title": "hello_world",
12 | "webOrientation": "auto"
13 | }
--------------------------------------------------------------------------------
/chat_client/settings/builder.panel.json:
--------------------------------------------------------------------------------
1 | {
2 | "excludeScenes": [],
3 | "packageName": "org.cocos2d.helloworld",
4 | "platform": "web-mobile",
5 | "startScene": "2d2f792f-a40c-49bb-a189-ed176a246e49",
6 | "title": "HelloWorld"
7 | }
--------------------------------------------------------------------------------
/chat_client/settings/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "cocos-analytics": {
3 | "appID": "13798",
4 | "appSecret": "959b3ac0037d0f3c2fdce94f8421a9b2",
5 | "channel": "",
6 | "enable": false,
7 | "version": ""
8 | },
9 | "collision-matrix": [
10 | [
11 | true
12 | ]
13 | ],
14 | "design-resolution-height": 640,
15 | "design-resolution-width": 960,
16 | "excluded-modules": [],
17 | "fit-height": true,
18 | "fit-width": false,
19 | "group-list": [
20 | "default"
21 | ],
22 | "simulator-orientation": false,
23 | "simulator-resolution": {
24 | "height": 640,
25 | "width": 960
26 | },
27 | "start-scene": "77b2a6f9-40ac-4aa5-bde9-2ba95d1ac264",
28 | "use-customize-simulator": false,
29 | "use-project-simulator-setting": false
30 | }
--------------------------------------------------------------------------------
/chat_client/template-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_client/template-banner.png
--------------------------------------------------------------------------------
/chat_client/template.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "TEMPLATES.helloworld-ts.name",
3 | "desc": "TEMPLATES.helloworld-ts.desc",
4 | "banner": "template-banner.png"
5 | }
--------------------------------------------------------------------------------
/chat_client/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "lib": [ "dom", "es5", "es2015.promise" ],
5 | "target": "es5",
6 | "allowJs": true,
7 | "experimentalDecorators": true,
8 | "skipLibCheck": true
9 | },
10 | "exclude": [
11 | "node_modules",
12 | "library",
13 | "local",
14 | "temp",
15 | "build",
16 | "settings"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/chat_server/DbClient.js:
--------------------------------------------------------------------------------
1 | const Sequelize = require('sequelize');
2 |
3 | const sequelize = new Sequelize('super', 'root', '123123', {
4 | host: '127.0.0.1',
5 | port: 3306,
6 | //dialect: 'mysql',
7 | dialect: 'sqlite',
8 | operatorsAliases: false,
9 | pool: {
10 | max: 5,
11 | min: 0,
12 | acquire: 30000,
13 | idle: 10000
14 | },
15 | //sqlite只需要这个参数
16 | storage:'./db/db.sqlite'
17 | });
18 |
19 | sequelize.authenticate().then(() => {
20 | console.log('数据库连接成功');
21 | }).catch(err => {
22 | console.error('数据库连接失败', err);
23 | });
24 |
25 | module.exports = sequelize;
--------------------------------------------------------------------------------
/chat_server/app.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const app = express();
3 | const http = require('http').Server(app);
4 | const sio = require('socket.io')(http);
5 | const _ = require('underscore');
6 |
7 | const User = require('./models/User');
8 | const Message = require('./models/Message');
9 |
10 | //设置跨域访问
11 | app.all('*', function(req, res, next) {
12 | res.header("Access-Control-Allow-Origin", "*");
13 | res.header("Access-Control-Allow-Headers", "X-Requested-With");
14 | res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
15 | res.header("X-Powered-By",' 3.2.1')
16 | res.header("Content-Type", "application/json;charset=utf-8");
17 | next();
18 | });
19 |
20 |
21 | app.get('/',(req,res)=>{
22 | res.send('Hello world
');
23 | });
24 |
25 | http.listen(3000, ()=>{
26 | console.log('listening on *:3000');
27 | });
28 |
29 |
30 | /**********************关于聊天的相关操作*************************/
31 | //保存用户的数组
32 | var userList = {};
33 | //接收客户端的连接
34 | sio.on('connection',socket=>{
35 | //注册
36 | socket.on('register',registerObj=>{
37 | User.findOrCreate({where: {account: registerObj.name}, defaults: {password:registerObj.password}})
38 | .spread((user, created) => {
39 | // console.log(user.get({
40 | // plain: true
41 | // }))
42 | // console.log(created)
43 | socket.uid = user.get('uid');
44 | if(created){
45 | //发送当前用户列表信息
46 | socket.emit('registerInfo','注册成功');
47 | }
48 | else{
49 | //发送当前用户列表信息
50 | socket.emit('registerInfo','用户名已经存在');
51 | }
52 | })
53 | });
54 |
55 |
56 |
57 | //登录
58 | socket.on('login',(user)=>{
59 | console.log('login');
60 | console.log(user);
61 |
62 | User.findOne({where: {account: user.name,password:user.password}}).then(user=>{
63 | console.log(user);
64 | if(user){
65 | socket.uid = user.get('uid');
66 | }
67 | else{
68 | //发送当前用户列表信息
69 | socket.emit('loginInfo','登录失败');
70 | return;
71 | }
72 | });
73 |
74 | user.id = socket.id;
75 | if(!userList[user.channel]){
76 | userList[user.channel]=[];
77 | }
78 | userList[user.channel].push(user);
79 | socket.join(user.channel);
80 | socket.channel = user.channel;
81 | //群发用户列表
82 | sio.to(user.channel).emit('userList',userList[user.channel]);
83 | //发送当前用户列表信息
84 | socket.emit('userInfo',user);
85 | //除自己外广播用户登录信息
86 | socket.broadcast.to(user.channel).emit('loginInfo',user.name+"上线了。");
87 | });
88 | //客户端断开
89 | socket.on('disconnect',()=>{
90 | //查出当前离开的用户
91 | //console.log(socket.channel);
92 | if(socket.channel){
93 | socket.leave(socket.channel,()=>{
94 | //用户离开频道的回调
95 | })
96 | }
97 |
98 | let user = _.findWhere(userList[socket.channel],{id:socket.id});
99 | if(user){
100 | //剔除当前离线用户
101 | userList[socket.channel] = _.without(userList[socket.channel],user);
102 | //发送当前用户列表信息
103 | sio.to(socket.channel).emit('userList',userList[socket.channel]);
104 | //除自己外广播用户断线信息
105 | socket.broadcast.to(user.channel).emit('loginInfo',user.name+"下线了。");
106 |
107 | //删除当前的频道
108 | if(userList[socket.channel].length==0){
109 | delete userList[socket.channel];
110 | delete socket.channel;
111 | }
112 | }
113 | });
114 | //群发事件
115 | socket.on('toAll',function(msgObj){
116 | Message.create({
117 | fromuid:socket.uid,
118 | message:msgObj.msg,
119 | }).then(value=>{
120 | console.log(`插入数据 ${value}`);
121 | });
122 |
123 | console.log(`++++++++++++++${msgObj.from.channel}+++++++++++++++`);
124 | socket.broadcast.to(msgObj.from.channel).emit('toAll',msgObj);
125 | });
126 | //单发事件
127 | socket.on('toOne',function(msgObj){
128 | let toSocket = _.findWhere(sio.sockets.sockets,{id:msgObj.to});
129 | toSocket.emit('toOne', msgObj);
130 | });
131 |
132 | /**
133 | * 心跳包
134 | */
135 | socket.on('game_ping',function(data){
136 | socket.emit('game_pong');
137 | });
138 | });
139 |
--------------------------------------------------------------------------------
/chat_server/db/db.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allknowboy/cocoscreator_chat/ceda54c8de6a5940079434a9eb52c1a57767826c/chat_server/db/db.sqlite
--------------------------------------------------------------------------------
/chat_server/models/Message.js:
--------------------------------------------------------------------------------
1 | const Sequelize = require('sequelize');
2 | const dbClient = require('../DbClient');
3 |
4 | //定义表结构
5 | let Message = dbClient.define('tb_messages', {
6 | uid:{type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true},
7 | fromuid:{type: Sequelize.INTEGER , allowNull:true},
8 | message:{type:Sequelize.STRING(1024) , allowNull:false},
9 | touid:{type:Sequelize.STRING , defaultValue:""}
10 | });
11 |
12 | //没有表的时候创建表
13 | Message.sync();
14 |
15 | module.exports = Message;
--------------------------------------------------------------------------------
/chat_server/models/User.js:
--------------------------------------------------------------------------------
1 | const Sequelize = require('sequelize');
2 | const dbClient = require('../DbClient');
3 |
4 | //定义表结构
5 | let User = dbClient.define('tb_users', {
6 | uid:{type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true},
7 | account:{type:Sequelize.STRING , allowNull:false},
8 | password:{type:Sequelize.STRING , allowNull:false},
9 | imgurl:{type:Sequelize.STRING , },
10 | channel:{type:Sequelize.STRING , },
11 | age:{type:Sequelize.INTEGER, defaultValue:0},
12 | });
13 |
14 | //没有表的时候创建表
15 | User.sync();
16 |
17 | module.exports = User;
--------------------------------------------------------------------------------
/chat_server/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chat_server",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "accepts": {
8 | "version": "1.3.5",
9 | "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.5.tgz",
10 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
11 | "requires": {
12 | "mime-types": "2.1.18",
13 | "negotiator": "0.6.1"
14 | }
15 | },
16 | "after": {
17 | "version": "0.8.2",
18 | "resolved": "http://registry.npm.taobao.org/after/download/after-0.8.2.tgz",
19 | "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
20 | },
21 | "array-flatten": {
22 | "version": "1.1.1",
23 | "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz",
24 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
25 | },
26 | "arraybuffer.slice": {
27 | "version": "0.0.7",
28 | "resolved": "http://registry.npm.taobao.org/arraybuffer.slice/download/arraybuffer.slice-0.0.7.tgz",
29 | "integrity": "sha1-O7xCdd1YTMGxCAm4nU6LY6aednU="
30 | },
31 | "async-limiter": {
32 | "version": "1.0.0",
33 | "resolved": "http://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz",
34 | "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg="
35 | },
36 | "backo2": {
37 | "version": "1.0.2",
38 | "resolved": "http://registry.npm.taobao.org/backo2/download/backo2-1.0.2.tgz",
39 | "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
40 | },
41 | "base64-arraybuffer": {
42 | "version": "0.1.5",
43 | "resolved": "http://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz",
44 | "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
45 | },
46 | "base64id": {
47 | "version": "1.0.0",
48 | "resolved": "http://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz",
49 | "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
50 | },
51 | "better-assert": {
52 | "version": "1.0.2",
53 | "resolved": "http://registry.npm.taobao.org/better-assert/download/better-assert-1.0.2.tgz",
54 | "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
55 | "requires": {
56 | "callsite": "1.0.0"
57 | }
58 | },
59 | "blob": {
60 | "version": "0.0.4",
61 | "resolved": "http://registry.npm.taobao.org/blob/download/blob-0.0.4.tgz",
62 | "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE="
63 | },
64 | "body-parser": {
65 | "version": "1.18.2",
66 | "resolved": "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.2.tgz",
67 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
68 | "requires": {
69 | "bytes": "3.0.0",
70 | "content-type": "1.0.4",
71 | "debug": "2.6.9",
72 | "depd": "1.1.2",
73 | "http-errors": "1.6.2",
74 | "iconv-lite": "0.4.19",
75 | "on-finished": "2.3.0",
76 | "qs": "6.5.1",
77 | "raw-body": "2.3.2",
78 | "type-is": "1.6.16"
79 | }
80 | },
81 | "bytes": {
82 | "version": "3.0.0",
83 | "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
84 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
85 | },
86 | "callsite": {
87 | "version": "1.0.0",
88 | "resolved": "http://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz",
89 | "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
90 | },
91 | "component-bind": {
92 | "version": "1.0.0",
93 | "resolved": "http://registry.npm.taobao.org/component-bind/download/component-bind-1.0.0.tgz",
94 | "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
95 | },
96 | "component-emitter": {
97 | "version": "1.2.1",
98 | "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz",
99 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
100 | },
101 | "component-inherit": {
102 | "version": "0.0.3",
103 | "resolved": "http://registry.npm.taobao.org/component-inherit/download/component-inherit-0.0.3.tgz",
104 | "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
105 | },
106 | "content-disposition": {
107 | "version": "0.5.2",
108 | "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz",
109 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
110 | },
111 | "content-type": {
112 | "version": "1.0.4",
113 | "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
114 | "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
115 | },
116 | "cookie": {
117 | "version": "0.3.1",
118 | "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz",
119 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
120 | },
121 | "cookie-signature": {
122 | "version": "1.0.6",
123 | "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
124 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
125 | },
126 | "debug": {
127 | "version": "2.6.9",
128 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
129 | "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
130 | "requires": {
131 | "ms": "2.0.0"
132 | }
133 | },
134 | "depd": {
135 | "version": "1.1.2",
136 | "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
137 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
138 | },
139 | "destroy": {
140 | "version": "1.0.4",
141 | "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
142 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
143 | },
144 | "ee-first": {
145 | "version": "1.1.1",
146 | "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
147 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
148 | },
149 | "encodeurl": {
150 | "version": "1.0.2",
151 | "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
152 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
153 | },
154 | "engine.io": {
155 | "version": "3.1.5",
156 | "resolved": "http://registry.npm.taobao.org/engine.io/download/engine.io-3.1.5.tgz",
157 | "integrity": "sha1-Dn751pDrCzVZfx1K0Comyi26OEU=",
158 | "requires": {
159 | "accepts": "1.3.5",
160 | "base64id": "1.0.0",
161 | "cookie": "0.3.1",
162 | "debug": "3.1.0",
163 | "engine.io-parser": "2.1.2",
164 | "uws": "9.14.0",
165 | "ws": "3.3.3"
166 | },
167 | "dependencies": {
168 | "debug": {
169 | "version": "3.1.0",
170 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
171 | "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
172 | "requires": {
173 | "ms": "2.0.0"
174 | }
175 | }
176 | }
177 | },
178 | "engine.io-client": {
179 | "version": "3.1.5",
180 | "resolved": "http://registry.npm.taobao.org/engine.io-client/download/engine.io-client-3.1.5.tgz",
181 | "integrity": "sha1-hd4XZmVgMn7xgXl49uP4EB3tLEc=",
182 | "requires": {
183 | "component-emitter": "1.2.1",
184 | "component-inherit": "0.0.3",
185 | "debug": "3.1.0",
186 | "engine.io-parser": "2.1.2",
187 | "has-cors": "1.1.0",
188 | "indexof": "0.0.1",
189 | "parseqs": "0.0.5",
190 | "parseuri": "0.0.5",
191 | "ws": "3.3.3",
192 | "xmlhttprequest-ssl": "1.5.5",
193 | "yeast": "0.1.2"
194 | },
195 | "dependencies": {
196 | "debug": {
197 | "version": "3.1.0",
198 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
199 | "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
200 | "requires": {
201 | "ms": "2.0.0"
202 | }
203 | }
204 | }
205 | },
206 | "engine.io-parser": {
207 | "version": "2.1.2",
208 | "resolved": "http://registry.npm.taobao.org/engine.io-parser/download/engine.io-parser-2.1.2.tgz",
209 | "integrity": "sha1-TA9M/3mq7su9z96maoI8YIVAkZY=",
210 | "requires": {
211 | "after": "0.8.2",
212 | "arraybuffer.slice": "0.0.7",
213 | "base64-arraybuffer": "0.1.5",
214 | "blob": "0.0.4",
215 | "has-binary2": "1.0.2"
216 | }
217 | },
218 | "escape-html": {
219 | "version": "1.0.3",
220 | "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
221 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
222 | },
223 | "etag": {
224 | "version": "1.8.1",
225 | "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
226 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
227 | },
228 | "express": {
229 | "version": "4.16.2",
230 | "resolved": "http://registry.npm.taobao.org/express/download/express-4.16.2.tgz",
231 | "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
232 | "requires": {
233 | "accepts": "1.3.5",
234 | "array-flatten": "1.1.1",
235 | "body-parser": "1.18.2",
236 | "content-disposition": "0.5.2",
237 | "content-type": "1.0.4",
238 | "cookie": "0.3.1",
239 | "cookie-signature": "1.0.6",
240 | "debug": "2.6.9",
241 | "depd": "1.1.2",
242 | "encodeurl": "1.0.2",
243 | "escape-html": "1.0.3",
244 | "etag": "1.8.1",
245 | "finalhandler": "1.1.0",
246 | "fresh": "0.5.2",
247 | "merge-descriptors": "1.0.1",
248 | "methods": "1.1.2",
249 | "on-finished": "2.3.0",
250 | "parseurl": "1.3.2",
251 | "path-to-regexp": "0.1.7",
252 | "proxy-addr": "2.0.3",
253 | "qs": "6.5.1",
254 | "range-parser": "1.2.0",
255 | "safe-buffer": "5.1.1",
256 | "send": "0.16.1",
257 | "serve-static": "1.13.1",
258 | "setprototypeof": "1.1.0",
259 | "statuses": "1.3.1",
260 | "type-is": "1.6.16",
261 | "utils-merge": "1.0.1",
262 | "vary": "1.1.2"
263 | }
264 | },
265 | "finalhandler": {
266 | "version": "1.1.0",
267 | "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz",
268 | "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
269 | "requires": {
270 | "debug": "2.6.9",
271 | "encodeurl": "1.0.2",
272 | "escape-html": "1.0.3",
273 | "on-finished": "2.3.0",
274 | "parseurl": "1.3.2",
275 | "statuses": "1.3.1",
276 | "unpipe": "1.0.0"
277 | }
278 | },
279 | "forwarded": {
280 | "version": "0.1.2",
281 | "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
282 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
283 | },
284 | "fresh": {
285 | "version": "0.5.2",
286 | "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
287 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
288 | },
289 | "has-binary2": {
290 | "version": "1.0.2",
291 | "resolved": "http://registry.npm.taobao.org/has-binary2/download/has-binary2-1.0.2.tgz",
292 | "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=",
293 | "requires": {
294 | "isarray": "2.0.1"
295 | }
296 | },
297 | "has-cors": {
298 | "version": "1.1.0",
299 | "resolved": "http://registry.npm.taobao.org/has-cors/download/has-cors-1.1.0.tgz",
300 | "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
301 | },
302 | "http-errors": {
303 | "version": "1.6.2",
304 | "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz",
305 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
306 | "requires": {
307 | "depd": "1.1.1",
308 | "inherits": "2.0.3",
309 | "setprototypeof": "1.0.3",
310 | "statuses": "1.3.1"
311 | },
312 | "dependencies": {
313 | "depd": {
314 | "version": "1.1.1",
315 | "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz",
316 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
317 | },
318 | "setprototypeof": {
319 | "version": "1.0.3",
320 | "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz",
321 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
322 | }
323 | }
324 | },
325 | "iconv-lite": {
326 | "version": "0.4.19",
327 | "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz",
328 | "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs="
329 | },
330 | "indexof": {
331 | "version": "0.0.1",
332 | "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz",
333 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
334 | },
335 | "inherits": {
336 | "version": "2.0.3",
337 | "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
338 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
339 | },
340 | "ipaddr.js": {
341 | "version": "1.6.0",
342 | "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz",
343 | "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs="
344 | },
345 | "isarray": {
346 | "version": "2.0.1",
347 | "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-2.0.1.tgz",
348 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
349 | },
350 | "media-typer": {
351 | "version": "0.3.0",
352 | "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
353 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
354 | },
355 | "merge-descriptors": {
356 | "version": "1.0.1",
357 | "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
358 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
359 | },
360 | "methods": {
361 | "version": "1.1.2",
362 | "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
363 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
364 | },
365 | "mime": {
366 | "version": "1.4.1",
367 | "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz",
368 | "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY="
369 | },
370 | "mime-db": {
371 | "version": "1.33.0",
372 | "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz",
373 | "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s="
374 | },
375 | "mime-types": {
376 | "version": "2.1.18",
377 | "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz",
378 | "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=",
379 | "requires": {
380 | "mime-db": "1.33.0"
381 | }
382 | },
383 | "ms": {
384 | "version": "2.0.0",
385 | "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
386 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
387 | },
388 | "negotiator": {
389 | "version": "0.6.1",
390 | "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz",
391 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
392 | },
393 | "object-component": {
394 | "version": "0.0.3",
395 | "resolved": "http://registry.npm.taobao.org/object-component/download/object-component-0.0.3.tgz",
396 | "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
397 | },
398 | "on-finished": {
399 | "version": "2.3.0",
400 | "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
401 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
402 | "requires": {
403 | "ee-first": "1.1.1"
404 | }
405 | },
406 | "parseqs": {
407 | "version": "0.0.5",
408 | "resolved": "http://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz",
409 | "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
410 | "requires": {
411 | "better-assert": "1.0.2"
412 | }
413 | },
414 | "parseuri": {
415 | "version": "0.0.5",
416 | "resolved": "http://registry.npm.taobao.org/parseuri/download/parseuri-0.0.5.tgz",
417 | "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
418 | "requires": {
419 | "better-assert": "1.0.2"
420 | }
421 | },
422 | "parseurl": {
423 | "version": "1.3.2",
424 | "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz",
425 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
426 | },
427 | "path-to-regexp": {
428 | "version": "0.1.7",
429 | "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
430 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
431 | },
432 | "proxy-addr": {
433 | "version": "2.0.3",
434 | "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.3.tgz",
435 | "integrity": "sha1-NV8mJQWmIWRrMTCnKOtkfiIFU0E=",
436 | "requires": {
437 | "forwarded": "0.1.2",
438 | "ipaddr.js": "1.6.0"
439 | }
440 | },
441 | "qs": {
442 | "version": "6.5.1",
443 | "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz",
444 | "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg="
445 | },
446 | "range-parser": {
447 | "version": "1.2.0",
448 | "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz",
449 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
450 | },
451 | "raw-body": {
452 | "version": "2.3.2",
453 | "resolved": "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.2.tgz",
454 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
455 | "requires": {
456 | "bytes": "3.0.0",
457 | "http-errors": "1.6.2",
458 | "iconv-lite": "0.4.19",
459 | "unpipe": "1.0.0"
460 | }
461 | },
462 | "safe-buffer": {
463 | "version": "5.1.1",
464 | "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz",
465 | "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
466 | },
467 | "send": {
468 | "version": "0.16.1",
469 | "resolved": "http://registry.npm.taobao.org/send/download/send-0.16.1.tgz",
470 | "integrity": "sha1-pw4coh0TgsEdDZ9iMd6ygQgNerM=",
471 | "requires": {
472 | "debug": "2.6.9",
473 | "depd": "1.1.2",
474 | "destroy": "1.0.4",
475 | "encodeurl": "1.0.2",
476 | "escape-html": "1.0.3",
477 | "etag": "1.8.1",
478 | "fresh": "0.5.2",
479 | "http-errors": "1.6.2",
480 | "mime": "1.4.1",
481 | "ms": "2.0.0",
482 | "on-finished": "2.3.0",
483 | "range-parser": "1.2.0",
484 | "statuses": "1.3.1"
485 | }
486 | },
487 | "serve-static": {
488 | "version": "1.13.1",
489 | "resolved": "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.1.tgz",
490 | "integrity": "sha1-TFfVNASnYdjy58HooYpH2/J4pxk=",
491 | "requires": {
492 | "encodeurl": "1.0.2",
493 | "escape-html": "1.0.3",
494 | "parseurl": "1.3.2",
495 | "send": "0.16.1"
496 | }
497 | },
498 | "setprototypeof": {
499 | "version": "1.1.0",
500 | "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz",
501 | "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY="
502 | },
503 | "socket.io": {
504 | "version": "2.0.4",
505 | "resolved": "http://registry.npm.taobao.org/socket.io/download/socket.io-2.0.4.tgz",
506 | "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=",
507 | "requires": {
508 | "debug": "2.6.9",
509 | "engine.io": "3.1.5",
510 | "socket.io-adapter": "1.1.1",
511 | "socket.io-client": "2.0.4",
512 | "socket.io-parser": "3.1.3"
513 | }
514 | },
515 | "socket.io-adapter": {
516 | "version": "1.1.1",
517 | "resolved": "http://registry.npm.taobao.org/socket.io-adapter/download/socket.io-adapter-1.1.1.tgz",
518 | "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
519 | },
520 | "socket.io-client": {
521 | "version": "2.0.4",
522 | "resolved": "http://registry.npm.taobao.org/socket.io-client/download/socket.io-client-2.0.4.tgz",
523 | "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=",
524 | "requires": {
525 | "backo2": "1.0.2",
526 | "base64-arraybuffer": "0.1.5",
527 | "component-bind": "1.0.0",
528 | "component-emitter": "1.2.1",
529 | "debug": "2.6.9",
530 | "engine.io-client": "3.1.5",
531 | "has-cors": "1.1.0",
532 | "indexof": "0.0.1",
533 | "object-component": "0.0.3",
534 | "parseqs": "0.0.5",
535 | "parseuri": "0.0.5",
536 | "socket.io-parser": "3.1.3",
537 | "to-array": "0.1.4"
538 | }
539 | },
540 | "socket.io-parser": {
541 | "version": "3.1.3",
542 | "resolved": "http://registry.npm.taobao.org/socket.io-parser/download/socket.io-parser-3.1.3.tgz",
543 | "integrity": "sha1-7S2l7nnxCVUDbj2kE7/X8eTYbI4=",
544 | "requires": {
545 | "component-emitter": "1.2.1",
546 | "debug": "3.1.0",
547 | "has-binary2": "1.0.2",
548 | "isarray": "2.0.1"
549 | },
550 | "dependencies": {
551 | "debug": {
552 | "version": "3.1.0",
553 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
554 | "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
555 | "requires": {
556 | "ms": "2.0.0"
557 | }
558 | }
559 | }
560 | },
561 | "statuses": {
562 | "version": "1.3.1",
563 | "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz",
564 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
565 | },
566 | "to-array": {
567 | "version": "0.1.4",
568 | "resolved": "http://registry.npm.taobao.org/to-array/download/to-array-0.1.4.tgz",
569 | "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
570 | },
571 | "type-is": {
572 | "version": "1.6.16",
573 | "resolved": "http://registry.npm.taobao.org/type-is/download/type-is-1.6.16.tgz",
574 | "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=",
575 | "requires": {
576 | "media-typer": "0.3.0",
577 | "mime-types": "2.1.18"
578 | }
579 | },
580 | "ultron": {
581 | "version": "1.1.1",
582 | "resolved": "http://registry.npm.taobao.org/ultron/download/ultron-1.1.1.tgz",
583 | "integrity": "sha1-n+FTahCmZKZSZqHjzPhf02MCvJw="
584 | },
585 | "underscore": {
586 | "version": "1.8.3",
587 | "resolved": "http://registry.npm.taobao.org/underscore/download/underscore-1.8.3.tgz",
588 | "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
589 | },
590 | "unpipe": {
591 | "version": "1.0.0",
592 | "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
593 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
594 | },
595 | "utils-merge": {
596 | "version": "1.0.1",
597 | "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
598 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
599 | },
600 | "uws": {
601 | "version": "9.14.0",
602 | "resolved": "http://registry.npm.taobao.org/uws/download/uws-9.14.0.tgz",
603 | "integrity": "sha1-+sg4a+/DOno3BcvVjcR7Qwyk3ZU=",
604 | "optional": true
605 | },
606 | "vary": {
607 | "version": "1.1.2",
608 | "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
609 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
610 | },
611 | "ws": {
612 | "version": "3.3.3",
613 | "resolved": "http://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz",
614 | "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=",
615 | "requires": {
616 | "async-limiter": "1.0.0",
617 | "safe-buffer": "5.1.1",
618 | "ultron": "1.1.1"
619 | }
620 | },
621 | "xmlhttprequest-ssl": {
622 | "version": "1.5.5",
623 | "resolved": "http://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.5.tgz",
624 | "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
625 | },
626 | "yeast": {
627 | "version": "0.1.2",
628 | "resolved": "http://registry.npm.taobao.org/yeast/download/yeast-0.1.2.tgz",
629 | "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
630 | }
631 | }
632 | }
633 |
--------------------------------------------------------------------------------
/chat_server/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chat_server",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "@types/sequelize": "^4.27.12",
13 | "express": "^4.16.2",
14 | "sequelize": "^4.37.5",
15 | "socket.io": "^2.0.4",
16 | "sqlite3": "^4.0.0",
17 | "underscore": "^1.8.3"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/chat_server/yarn-error.log:
--------------------------------------------------------------------------------
1 | Arguments:
2 | D:\Program Files\nodejs\node.exe D:\Program Files (x86)\Yarn\bin\yarn.js add @typessSequelize
3 |
4 | PATH:
5 | C:\cmder_mini\bin;C:\cmder_mini\vendor\conemu-maximus5\ConEmu\Scripts;C:\cmder_mini\vendor\conemu-maximus5;C:\cmder_mini\vendor\conemu-maximus5\ConEmu;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows7Master;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Common Files\Autodesk Shared\;C:\Program Files (x86)\backburner 2\;C:\Go\bin;D:\Program Files\nodejs\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\TortoiseGit\bin;C:\ProgramData\chocolatey\bin;C:\Program Files\MySQL\MySQL Utilities 1.6\;D:\Program Files (x86)\Yarn\bin\;;C:\apache-maven-3.5.2\bin;D:\Program Files\MongoDB\Server\3.4\bin;C:\Go\bin;D:\disunity_v0.5.0;C:\Users\Administrator\.sdkbox\bin;C:\cygwin\bin;%ANDROID_HOMR%\tools;%ANDROID_HOMR%\platform-tools;D:\Cocos2d\cocos2d-x-3.4\templates;D:\Cocos2d\cocos2d-x-3.4\tools\cocos2d-console\bin;D:\AndroidAll\gradle-3.5\bin;C:\Program Files\Java\jdk1.8.0_121\bin;Cocos\Cocos2d-x\Cocos2d-x-3.10\tools\cocos2d-console\bin;Cocos2d\cocos2d-x-3.4\templates;D:\AndroidAll\gradle-3.5\bin;C:\cmder_mini\bin;C:\cmder_mini;C:\Python27;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Users\Administrator\AppData\Local\.meteor\;C:\Users\Administrator\AppData\Roaming\npm;C:\Program Files\Heroku\bin;D:\Program Files\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Local\Yarn\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\share\vim\vim74;C:\cmder_mini\
6 |
7 | Yarn version:
8 | 1.5.1
9 |
10 | Node version:
11 | 8.4.0
12 |
13 | Platform:
14 | win32 x64
15 |
16 | npm manifest:
17 | {
18 | "name": "chat_server",
19 | "version": "1.0.0",
20 | "description": "",
21 | "main": "index.js",
22 | "scripts": {
23 | "test": "echo \"Error: no test specified\" && exit 1"
24 | },
25 | "author": "",
26 | "license": "ISC",
27 | "dependencies": {
28 | "express": "^4.16.2",
29 | "sequelize": "^4.37.5",
30 | "socket.io": "^2.0.4",
31 | "sqlite3": "^4.0.0",
32 | "underscore": "^1.8.3"
33 | }
34 | }
35 |
36 | yarn manifest:
37 | No manifest
38 |
39 | Lockfile:
40 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
41 | # yarn lockfile v1
42 |
43 |
44 | "@types/geojson@^1.0.0":
45 | version "1.0.6"
46 | resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf"
47 |
48 | "@types/node@*":
49 | version "9.6.1"
50 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.1.tgz#e2d374ef15b315b48e7efc308fa1a7cd51faa06c"
51 |
52 | abbrev@1:
53 | version "1.1.1"
54 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
55 |
56 | accepts@~1.3.4, accepts@~1.3.5:
57 | version "1.3.5"
58 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
59 | dependencies:
60 | mime-types "~2.1.18"
61 | negotiator "0.6.1"
62 |
63 | after@0.8.2:
64 | version "0.8.2"
65 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
66 |
67 | ansi-regex@^2.0.0:
68 | version "2.1.1"
69 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
70 |
71 | aproba@^1.0.3:
72 | version "1.2.0"
73 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
74 |
75 | are-we-there-yet@~1.1.2:
76 | version "1.1.4"
77 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
78 | dependencies:
79 | delegates "^1.0.0"
80 | readable-stream "^2.0.6"
81 |
82 | array-flatten@1.1.1:
83 | version "1.1.1"
84 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
85 |
86 | arraybuffer.slice@~0.0.7:
87 | version "0.0.7"
88 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
89 |
90 | async-limiter@~1.0.0:
91 | version "1.0.0"
92 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
93 |
94 | backo2@1.0.2:
95 | version "1.0.2"
96 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
97 |
98 | balanced-match@^1.0.0:
99 | version "1.0.0"
100 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
101 |
102 | base64-arraybuffer@0.1.5:
103 | version "0.1.5"
104 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
105 |
106 | base64id@1.0.0:
107 | version "1.0.0"
108 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
109 |
110 | better-assert@~1.0.0:
111 | version "1.0.2"
112 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
113 | dependencies:
114 | callsite "1.0.0"
115 |
116 | blob@0.0.4:
117 | version "0.0.4"
118 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
119 |
120 | bluebird@^3.4.6, bluebird@^3.5.0:
121 | version "3.5.1"
122 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
123 |
124 | body-parser@1.18.2:
125 | version "1.18.2"
126 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
127 | dependencies:
128 | bytes "3.0.0"
129 | content-type "~1.0.4"
130 | debug "2.6.9"
131 | depd "~1.1.1"
132 | http-errors "~1.6.2"
133 | iconv-lite "0.4.19"
134 | on-finished "~2.3.0"
135 | qs "6.5.1"
136 | raw-body "2.3.2"
137 | type-is "~1.6.15"
138 |
139 | brace-expansion@^1.1.7:
140 | version "1.1.11"
141 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
142 | dependencies:
143 | balanced-match "^1.0.0"
144 | concat-map "0.0.1"
145 |
146 | bytes@3.0.0:
147 | version "3.0.0"
148 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
149 |
150 | callsite@1.0.0:
151 | version "1.0.0"
152 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
153 |
154 | chownr@^1.0.1:
155 | version "1.0.1"
156 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
157 |
158 | cls-bluebird@^2.1.0:
159 | version "2.1.0"
160 | resolved "https://registry.yarnpkg.com/cls-bluebird/-/cls-bluebird-2.1.0.tgz#37ef1e080a8ffb55c2f4164f536f1919e7968aee"
161 | dependencies:
162 | is-bluebird "^1.0.2"
163 | shimmer "^1.1.0"
164 |
165 | code-point-at@^1.0.0:
166 | version "1.1.0"
167 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
168 |
169 | component-bind@1.0.0:
170 | version "1.0.0"
171 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
172 |
173 | component-emitter@1.2.1:
174 | version "1.2.1"
175 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
176 |
177 | component-inherit@0.0.3:
178 | version "0.0.3"
179 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
180 |
181 | concat-map@0.0.1:
182 | version "0.0.1"
183 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
184 |
185 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
186 | version "1.1.0"
187 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
188 |
189 | content-disposition@0.5.2:
190 | version "0.5.2"
191 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
192 |
193 | content-type@~1.0.4:
194 | version "1.0.4"
195 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
196 |
197 | cookie-signature@1.0.6:
198 | version "1.0.6"
199 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
200 |
201 | cookie@0.3.1:
202 | version "0.3.1"
203 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
204 |
205 | core-util-is@~1.0.0:
206 | version "1.0.2"
207 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
208 |
209 | debug@2.6.9, debug@^2.1.2, debug@^2.6.9:
210 | version "2.6.9"
211 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
212 | dependencies:
213 | ms "2.0.0"
214 |
215 | debug@^3.1.0, debug@~3.1.0:
216 | version "3.1.0"
217 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
218 | dependencies:
219 | ms "2.0.0"
220 |
221 | deep-extend@~0.4.0:
222 | version "0.4.2"
223 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
224 |
225 | delegates@^1.0.0:
226 | version "1.0.0"
227 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
228 |
229 | depd@1.1.1:
230 | version "1.1.1"
231 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
232 |
233 | depd@^1.1.0, depd@~1.1.1, depd@~1.1.2:
234 | version "1.1.2"
235 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
236 |
237 | destroy@~1.0.4:
238 | version "1.0.4"
239 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
240 |
241 | detect-libc@^1.0.2:
242 | version "1.0.3"
243 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
244 |
245 | dottie@^2.0.0:
246 | version "2.0.0"
247 | resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.0.tgz#da191981c8b8d713ca0115d5898cf397c2f0ddd0"
248 |
249 | ee-first@1.1.1:
250 | version "1.1.1"
251 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
252 |
253 | encodeurl@~1.0.2:
254 | version "1.0.2"
255 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
256 |
257 | engine.io-client@~3.2.0:
258 | version "3.2.1"
259 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
260 | dependencies:
261 | component-emitter "1.2.1"
262 | component-inherit "0.0.3"
263 | debug "~3.1.0"
264 | engine.io-parser "~2.1.1"
265 | has-cors "1.1.0"
266 | indexof "0.0.1"
267 | parseqs "0.0.5"
268 | parseuri "0.0.5"
269 | ws "~3.3.1"
270 | xmlhttprequest-ssl "~1.5.4"
271 | yeast "0.1.2"
272 |
273 | engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
274 | version "2.1.2"
275 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
276 | dependencies:
277 | after "0.8.2"
278 | arraybuffer.slice "~0.0.7"
279 | base64-arraybuffer "0.1.5"
280 | blob "0.0.4"
281 | has-binary2 "~1.0.2"
282 |
283 | engine.io@~3.2.0:
284 | version "3.2.0"
285 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
286 | dependencies:
287 | accepts "~1.3.4"
288 | base64id "1.0.0"
289 | cookie "0.3.1"
290 | debug "~3.1.0"
291 | engine.io-parser "~2.1.0"
292 | ws "~3.3.1"
293 |
294 | escape-html@~1.0.3:
295 | version "1.0.3"
296 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
297 |
298 | etag@~1.8.1:
299 | version "1.8.1"
300 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
301 |
302 | express@^4.16.2:
303 | version "4.16.3"
304 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
305 | dependencies:
306 | accepts "~1.3.5"
307 | array-flatten "1.1.1"
308 | body-parser "1.18.2"
309 | content-disposition "0.5.2"
310 | content-type "~1.0.4"
311 | cookie "0.3.1"
312 | cookie-signature "1.0.6"
313 | debug "2.6.9"
314 | depd "~1.1.2"
315 | encodeurl "~1.0.2"
316 | escape-html "~1.0.3"
317 | etag "~1.8.1"
318 | finalhandler "1.1.1"
319 | fresh "0.5.2"
320 | merge-descriptors "1.0.1"
321 | methods "~1.1.2"
322 | on-finished "~2.3.0"
323 | parseurl "~1.3.2"
324 | path-to-regexp "0.1.7"
325 | proxy-addr "~2.0.3"
326 | qs "6.5.1"
327 | range-parser "~1.2.0"
328 | safe-buffer "5.1.1"
329 | send "0.16.2"
330 | serve-static "1.13.2"
331 | setprototypeof "1.1.0"
332 | statuses "~1.4.0"
333 | type-is "~1.6.16"
334 | utils-merge "1.0.1"
335 | vary "~1.1.2"
336 |
337 | finalhandler@1.1.1:
338 | version "1.1.1"
339 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
340 | dependencies:
341 | debug "2.6.9"
342 | encodeurl "~1.0.2"
343 | escape-html "~1.0.3"
344 | on-finished "~2.3.0"
345 | parseurl "~1.3.2"
346 | statuses "~1.4.0"
347 | unpipe "~1.0.0"
348 |
349 | forwarded@~0.1.2:
350 | version "0.1.2"
351 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
352 |
353 | fresh@0.5.2:
354 | version "0.5.2"
355 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
356 |
357 | fs-minipass@^1.2.5:
358 | version "1.2.5"
359 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
360 | dependencies:
361 | minipass "^2.2.1"
362 |
363 | fs.realpath@^1.0.0:
364 | version "1.0.0"
365 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
366 |
367 | gauge@~2.7.3:
368 | version "2.7.4"
369 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
370 | dependencies:
371 | aproba "^1.0.3"
372 | console-control-strings "^1.0.0"
373 | has-unicode "^2.0.0"
374 | object-assign "^4.1.0"
375 | signal-exit "^3.0.0"
376 | string-width "^1.0.1"
377 | strip-ansi "^3.0.1"
378 | wide-align "^1.1.0"
379 |
380 | generic-pool@^3.4.0:
381 | version "3.4.2"
382 | resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.4.2.tgz#92ff7196520d670839a67308092a12aadf2f6a59"
383 |
384 | glob@^7.0.5:
385 | version "7.1.2"
386 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
387 | dependencies:
388 | fs.realpath "^1.0.0"
389 | inflight "^1.0.4"
390 | inherits "2"
391 | minimatch "^3.0.4"
392 | once "^1.3.0"
393 | path-is-absolute "^1.0.0"
394 |
395 | has-binary2@~1.0.2:
396 | version "1.0.2"
397 | resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
398 | dependencies:
399 | isarray "2.0.1"
400 |
401 | has-cors@1.1.0:
402 | version "1.1.0"
403 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
404 |
405 | has-unicode@^2.0.0:
406 | version "2.0.1"
407 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
408 |
409 | http-errors@1.6.2:
410 | version "1.6.2"
411 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
412 | dependencies:
413 | depd "1.1.1"
414 | inherits "2.0.3"
415 | setprototypeof "1.0.3"
416 | statuses ">= 1.3.1 < 2"
417 |
418 | http-errors@~1.6.2:
419 | version "1.6.3"
420 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
421 | dependencies:
422 | depd "~1.1.2"
423 | inherits "2.0.3"
424 | setprototypeof "1.1.0"
425 | statuses ">= 1.4.0 < 2"
426 |
427 | iconv-lite@0.4.19, iconv-lite@^0.4.4:
428 | version "0.4.19"
429 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
430 |
431 | ignore-walk@^3.0.1:
432 | version "3.0.1"
433 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
434 | dependencies:
435 | minimatch "^3.0.4"
436 |
437 | indexof@0.0.1:
438 | version "0.0.1"
439 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
440 |
441 | inflection@1.12.0:
442 | version "1.12.0"
443 | resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
444 |
445 | inflight@^1.0.4:
446 | version "1.0.6"
447 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
448 | dependencies:
449 | once "^1.3.0"
450 | wrappy "1"
451 |
452 | inherits@2, inherits@2.0.3, inherits@~2.0.3:
453 | version "2.0.3"
454 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
455 |
456 | ini@~1.3.0:
457 | version "1.3.5"
458 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
459 |
460 | ipaddr.js@1.6.0:
461 | version "1.6.0"
462 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
463 |
464 | is-bluebird@^1.0.2:
465 | version "1.0.2"
466 | resolved "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz#096439060f4aa411abee19143a84d6a55346d6e2"
467 |
468 | is-fullwidth-code-point@^1.0.0:
469 | version "1.0.0"
470 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
471 | dependencies:
472 | number-is-nan "^1.0.0"
473 |
474 | isarray@2.0.1:
475 | version "2.0.1"
476 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
477 |
478 | isarray@~1.0.0:
479 | version "1.0.0"
480 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
481 |
482 | lodash@^4.17.1:
483 | version "4.17.5"
484 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
485 |
486 | media-typer@0.3.0:
487 | version "0.3.0"
488 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
489 |
490 | merge-descriptors@1.0.1:
491 | version "1.0.1"
492 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
493 |
494 | methods@~1.1.2:
495 | version "1.1.2"
496 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
497 |
498 | mime-db@~1.33.0:
499 | version "1.33.0"
500 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
501 |
502 | mime-types@~2.1.18:
503 | version "2.1.18"
504 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
505 | dependencies:
506 | mime-db "~1.33.0"
507 |
508 | mime@1.4.1:
509 | version "1.4.1"
510 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
511 |
512 | minimatch@^3.0.4:
513 | version "3.0.4"
514 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
515 | dependencies:
516 | brace-expansion "^1.1.7"
517 |
518 | minimist@0.0.8:
519 | version "0.0.8"
520 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
521 |
522 | minimist@^1.2.0:
523 | version "1.2.0"
524 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
525 |
526 | minipass@^2.2.1, minipass@^2.2.4:
527 | version "2.2.4"
528 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40"
529 | dependencies:
530 | safe-buffer "^5.1.1"
531 | yallist "^3.0.0"
532 |
533 | minizlib@^1.1.0:
534 | version "1.1.0"
535 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
536 | dependencies:
537 | minipass "^2.2.1"
538 |
539 | mkdirp@^0.5.0, mkdirp@^0.5.1:
540 | version "0.5.1"
541 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
542 | dependencies:
543 | minimist "0.0.8"
544 |
545 | moment-timezone@^0.5.14:
546 | version "0.5.14"
547 | resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.14.tgz#4eb38ff9538b80108ba467a458f3ed4268ccfcb1"
548 | dependencies:
549 | moment ">= 2.9.0"
550 |
551 | "moment@>= 2.9.0", moment@^2.20.0:
552 | version "2.22.0"
553 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.0.tgz#7921ade01017dd45186e7fee5f424f0b8663a730"
554 |
555 | ms@2.0.0:
556 | version "2.0.0"
557 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
558 |
559 | nan@~2.9.2:
560 | version "2.9.2"
561 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866"
562 |
563 | needle@^2.2.0:
564 | version "2.2.0"
565 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.0.tgz#f14efc69cee1024b72c8b21c7bdf94a731dc12fa"
566 | dependencies:
567 | debug "^2.1.2"
568 | iconv-lite "^0.4.4"
569 | sax "^1.2.4"
570 |
571 | negotiator@0.6.1:
572 | version "0.6.1"
573 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
574 |
575 | node-pre-gyp@~0.9.0:
576 | version "0.9.0"
577 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.0.tgz#bdd4c3afac9b1b1ebff0a9ff3362859eb6781bb8"
578 | dependencies:
579 | detect-libc "^1.0.2"
580 | mkdirp "^0.5.1"
581 | needle "^2.2.0"
582 | nopt "^4.0.1"
583 | npm-packlist "^1.1.6"
584 | npmlog "^4.0.2"
585 | rc "^1.1.7"
586 | rimraf "^2.6.1"
587 | semver "^5.3.0"
588 | tar "^4"
589 |
590 | nopt@^4.0.1:
591 | version "4.0.1"
592 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
593 | dependencies:
594 | abbrev "1"
595 | osenv "^0.1.4"
596 |
597 | npm-bundled@^1.0.1:
598 | version "1.0.3"
599 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308"
600 |
601 | npm-packlist@^1.1.6:
602 | version "1.1.10"
603 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a"
604 | dependencies:
605 | ignore-walk "^3.0.1"
606 | npm-bundled "^1.0.1"
607 |
608 | npmlog@^4.0.2:
609 | version "4.1.2"
610 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
611 | dependencies:
612 | are-we-there-yet "~1.1.2"
613 | console-control-strings "~1.1.0"
614 | gauge "~2.7.3"
615 | set-blocking "~2.0.0"
616 |
617 | number-is-nan@^1.0.0:
618 | version "1.0.1"
619 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
620 |
621 | object-assign@^4.1.0:
622 | version "4.1.1"
623 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
624 |
625 | object-component@0.0.3:
626 | version "0.0.3"
627 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
628 |
629 | on-finished@~2.3.0:
630 | version "2.3.0"
631 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
632 | dependencies:
633 | ee-first "1.1.1"
634 |
635 | once@^1.3.0:
636 | version "1.4.0"
637 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
638 | dependencies:
639 | wrappy "1"
640 |
641 | os-homedir@^1.0.0:
642 | version "1.0.2"
643 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
644 |
645 | os-tmpdir@^1.0.0:
646 | version "1.0.2"
647 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
648 |
649 | osenv@^0.1.4:
650 | version "0.1.5"
651 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
652 | dependencies:
653 | os-homedir "^1.0.0"
654 | os-tmpdir "^1.0.0"
655 |
656 | parseqs@0.0.5:
657 | version "0.0.5"
658 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
659 | dependencies:
660 | better-assert "~1.0.0"
661 |
662 | parseuri@0.0.5:
663 | version "0.0.5"
664 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
665 | dependencies:
666 | better-assert "~1.0.0"
667 |
668 | parseurl@~1.3.2:
669 | version "1.3.2"
670 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
671 |
672 | path-is-absolute@^1.0.0:
673 | version "1.0.1"
674 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
675 |
676 | path-to-regexp@0.1.7:
677 | version "0.1.7"
678 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
679 |
680 | process-nextick-args@~2.0.0:
681 | version "2.0.0"
682 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
683 |
684 | proxy-addr@~2.0.3:
685 | version "2.0.3"
686 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
687 | dependencies:
688 | forwarded "~0.1.2"
689 | ipaddr.js "1.6.0"
690 |
691 | qs@6.5.1:
692 | version "6.5.1"
693 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
694 |
695 | range-parser@~1.2.0:
696 | version "1.2.0"
697 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
698 |
699 | raw-body@2.3.2:
700 | version "2.3.2"
701 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
702 | dependencies:
703 | bytes "3.0.0"
704 | http-errors "1.6.2"
705 | iconv-lite "0.4.19"
706 | unpipe "1.0.0"
707 |
708 | rc@^1.1.7:
709 | version "1.2.6"
710 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092"
711 | dependencies:
712 | deep-extend "~0.4.0"
713 | ini "~1.3.0"
714 | minimist "^1.2.0"
715 | strip-json-comments "~2.0.1"
716 |
717 | readable-stream@^2.0.6:
718 | version "2.3.5"
719 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
720 | dependencies:
721 | core-util-is "~1.0.0"
722 | inherits "~2.0.3"
723 | isarray "~1.0.0"
724 | process-nextick-args "~2.0.0"
725 | safe-buffer "~5.1.1"
726 | string_decoder "~1.0.3"
727 | util-deprecate "~1.0.1"
728 |
729 | retry-as-promised@^2.3.2:
730 | version "2.3.2"
731 | resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-2.3.2.tgz#cd974ee4fd9b5fe03cbf31871ee48221c07737b7"
732 | dependencies:
733 | bluebird "^3.4.6"
734 | debug "^2.6.9"
735 |
736 | rimraf@^2.6.1:
737 | version "2.6.2"
738 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
739 | dependencies:
740 | glob "^7.0.5"
741 |
742 | safe-buffer@5.1.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
743 | version "5.1.1"
744 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
745 |
746 | sax@^1.2.4:
747 | version "1.2.4"
748 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
749 |
750 | semver@^5.3.0, semver@^5.5.0:
751 | version "5.5.0"
752 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
753 |
754 | send@0.16.2:
755 | version "0.16.2"
756 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
757 | dependencies:
758 | debug "2.6.9"
759 | depd "~1.1.2"
760 | destroy "~1.0.4"
761 | encodeurl "~1.0.2"
762 | escape-html "~1.0.3"
763 | etag "~1.8.1"
764 | fresh "0.5.2"
765 | http-errors "~1.6.2"
766 | mime "1.4.1"
767 | ms "2.0.0"
768 | on-finished "~2.3.0"
769 | range-parser "~1.2.0"
770 | statuses "~1.4.0"
771 |
772 | sequelize@^4.37.5:
773 | version "4.37.5"
774 | resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.37.5.tgz#08a464a4f0f2563a41f77a1fc1067344f3144b52"
775 | dependencies:
776 | bluebird "^3.5.0"
777 | cls-bluebird "^2.1.0"
778 | debug "^3.1.0"
779 | depd "^1.1.0"
780 | dottie "^2.0.0"
781 | generic-pool "^3.4.0"
782 | inflection "1.12.0"
783 | lodash "^4.17.1"
784 | moment "^2.20.0"
785 | moment-timezone "^0.5.14"
786 | retry-as-promised "^2.3.2"
787 | semver "^5.5.0"
788 | terraformer-wkt-parser "^1.1.2"
789 | toposort-class "^1.0.1"
790 | uuid "^3.2.1"
791 | validator "^9.4.1"
792 | wkx "^0.4.1"
793 |
794 | serve-static@1.13.2:
795 | version "1.13.2"
796 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
797 | dependencies:
798 | encodeurl "~1.0.2"
799 | escape-html "~1.0.3"
800 | parseurl "~1.3.2"
801 | send "0.16.2"
802 |
803 | set-blocking@~2.0.0:
804 | version "2.0.0"
805 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
806 |
807 | setprototypeof@1.0.3:
808 | version "1.0.3"
809 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
810 |
811 | setprototypeof@1.1.0:
812 | version "1.1.0"
813 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
814 |
815 | shimmer@^1.1.0:
816 | version "1.2.0"
817 | resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.0.tgz#f966f7555789763e74d8841193685a5e78736665"
818 |
819 | signal-exit@^3.0.0:
820 | version "3.0.2"
821 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
822 |
823 | socket.io-adapter@~1.1.0:
824 | version "1.1.1"
825 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
826 |
827 | socket.io-client@2.1.0:
828 | version "2.1.0"
829 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.0.tgz#0d0b21d460dc4ed36e57085136f2be0137ff20ff"
830 | dependencies:
831 | backo2 "1.0.2"
832 | base64-arraybuffer "0.1.5"
833 | component-bind "1.0.0"
834 | component-emitter "1.2.1"
835 | debug "~3.1.0"
836 | engine.io-client "~3.2.0"
837 | has-binary2 "~1.0.2"
838 | has-cors "1.1.0"
839 | indexof "0.0.1"
840 | object-component "0.0.3"
841 | parseqs "0.0.5"
842 | parseuri "0.0.5"
843 | socket.io-parser "~3.2.0"
844 | to-array "0.1.4"
845 |
846 | socket.io-parser@~3.2.0:
847 | version "3.2.0"
848 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
849 | dependencies:
850 | component-emitter "1.2.1"
851 | debug "~3.1.0"
852 | isarray "2.0.1"
853 |
854 | socket.io@^2.0.4:
855 | version "2.1.0"
856 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.0.tgz#de77161795b6303e7aefc982ea04acb0cec17395"
857 | dependencies:
858 | debug "~3.1.0"
859 | engine.io "~3.2.0"
860 | has-binary2 "~1.0.2"
861 | socket.io-adapter "~1.1.0"
862 | socket.io-client "2.1.0"
863 | socket.io-parser "~3.2.0"
864 |
865 | sqlite3@^4.0.0:
866 | version "4.0.0"
867 | resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.0.0.tgz#cc0e093ab51873f50d9dfc4126fcbef15d486570"
868 | dependencies:
869 | nan "~2.9.2"
870 | node-pre-gyp "~0.9.0"
871 |
872 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
873 | version "1.5.0"
874 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
875 |
876 | statuses@~1.4.0:
877 | version "1.4.0"
878 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
879 |
880 | string-width@^1.0.1, string-width@^1.0.2:
881 | version "1.0.2"
882 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
883 | dependencies:
884 | code-point-at "^1.0.0"
885 | is-fullwidth-code-point "^1.0.0"
886 | strip-ansi "^3.0.0"
887 |
888 | string_decoder@~1.0.3:
889 | version "1.0.3"
890 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
891 | dependencies:
892 | safe-buffer "~5.1.0"
893 |
894 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
895 | version "3.0.1"
896 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
897 | dependencies:
898 | ansi-regex "^2.0.0"
899 |
900 | strip-json-comments@~2.0.1:
901 | version "2.0.1"
902 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
903 |
904 | tar@^4:
905 | version "4.4.1"
906 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749"
907 | dependencies:
908 | chownr "^1.0.1"
909 | fs-minipass "^1.2.5"
910 | minipass "^2.2.4"
911 | minizlib "^1.1.0"
912 | mkdirp "^0.5.0"
913 | safe-buffer "^5.1.1"
914 | yallist "^3.0.2"
915 |
916 | terraformer-wkt-parser@^1.1.2:
917 | version "1.1.2"
918 | resolved "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.1.2.tgz#336a0c8fc82094a5aff83288f69aedecd369bf0c"
919 | dependencies:
920 | terraformer "~1.0.5"
921 |
922 | terraformer@~1.0.5:
923 | version "1.0.8"
924 | resolved "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.8.tgz#51e0ad89746fcf2161dc6f65aa70e42377c8b593"
925 | dependencies:
926 | "@types/geojson" "^1.0.0"
927 |
928 | to-array@0.1.4:
929 | version "0.1.4"
930 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
931 |
932 | toposort-class@^1.0.1:
933 | version "1.0.1"
934 | resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
935 |
936 | type-is@~1.6.15, type-is@~1.6.16:
937 | version "1.6.16"
938 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
939 | dependencies:
940 | media-typer "0.3.0"
941 | mime-types "~2.1.18"
942 |
943 | ultron@~1.1.0:
944 | version "1.1.1"
945 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
946 |
947 | underscore@^1.8.3:
948 | version "1.8.3"
949 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
950 |
951 | unpipe@1.0.0, unpipe@~1.0.0:
952 | version "1.0.0"
953 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
954 |
955 | util-deprecate@~1.0.1:
956 | version "1.0.2"
957 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
958 |
959 | utils-merge@1.0.1:
960 | version "1.0.1"
961 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
962 |
963 | uuid@^3.2.1:
964 | version "3.2.1"
965 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
966 |
967 | validator@^9.4.1:
968 | version "9.4.1"
969 | resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
970 |
971 | vary@~1.1.2:
972 | version "1.1.2"
973 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
974 |
975 | wide-align@^1.1.0:
976 | version "1.1.2"
977 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
978 | dependencies:
979 | string-width "^1.0.2"
980 |
981 | wkx@^0.4.1:
982 | version "0.4.4"
983 | resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.4.tgz#cf751b672e4b45e162f9fd30124878e73d96c9b2"
984 | dependencies:
985 | "@types/node" "*"
986 |
987 | wrappy@1:
988 | version "1.0.2"
989 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
990 |
991 | ws@~3.3.1:
992 | version "3.3.3"
993 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
994 | dependencies:
995 | async-limiter "~1.0.0"
996 | safe-buffer "~5.1.0"
997 | ultron "~1.1.0"
998 |
999 | xmlhttprequest-ssl@~1.5.4:
1000 | version "1.5.5"
1001 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
1002 |
1003 | yallist@^3.0.0, yallist@^3.0.2:
1004 | version "3.0.2"
1005 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
1006 |
1007 | yeast@0.1.2:
1008 | version "0.1.2"
1009 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
1010 |
1011 | Trace:
1012 | Error: https://registry.yarnpkg.com/@typessSequelize: Not found
1013 | at Request.params.callback [as _callback] (D:\Program Files (x86)\Yarn\lib\cli.js:65019:18)
1014 | at Request.self.callback (D:\Program Files (x86)\Yarn\lib\cli.js:132430:22)
1015 | at emitTwo (events.js:125:13)
1016 | at Request.emit (events.js:213:7)
1017 | at Request. (D:\Program Files (x86)\Yarn\lib\cli.js:133413:10)
1018 | at emitOne (events.js:115:13)
1019 | at Request.emit (events.js:210:7)
1020 | at IncomingMessage. (D:\Program Files (x86)\Yarn\lib\cli.js:133333:12)
1021 | at Object.onceWrapper (events.js:314:30)
1022 | at emitNone (events.js:110:20)
1023 |
--------------------------------------------------------------------------------
/chat_server/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@types/bluebird@*":
6 | version "3.5.20"
7 | resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.20.tgz#f6363172add6f4eabb8cada53ca9af2781e8d6a1"
8 |
9 | "@types/continuation-local-storage@*":
10 | version "3.2.1"
11 | resolved "https://registry.yarnpkg.com/@types/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#a33e0df9dce9b424d1c98fc4fdebd8578dceec7e"
12 | dependencies:
13 | "@types/node" "*"
14 |
15 | "@types/geojson@^1.0.0":
16 | version "1.0.6"
17 | resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf"
18 |
19 | "@types/lodash@*":
20 | version "4.14.106"
21 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.106.tgz#6093e9a02aa567ddecfe9afadca89e53e5dce4dd"
22 |
23 | "@types/node@*":
24 | version "9.6.1"
25 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.1.tgz#e2d374ef15b315b48e7efc308fa1a7cd51faa06c"
26 |
27 | "@types/sequelize@^4.27.12":
28 | version "4.27.12"
29 | resolved "https://registry.yarnpkg.com/@types/sequelize/-/sequelize-4.27.12.tgz#531f647c57752ca44618de84b4d60cf3d64bcbfe"
30 | dependencies:
31 | "@types/bluebird" "*"
32 | "@types/continuation-local-storage" "*"
33 | "@types/lodash" "*"
34 | "@types/validator" "*"
35 |
36 | "@types/validator@*":
37 | version "9.4.0"
38 | resolved "https://registry.yarnpkg.com/@types/validator/-/validator-9.4.0.tgz#a4a80a31d3e4e094806ec446557808423379858d"
39 |
40 | abbrev@1:
41 | version "1.1.1"
42 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
43 |
44 | accepts@~1.3.4, accepts@~1.3.5:
45 | version "1.3.5"
46 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
47 | dependencies:
48 | mime-types "~2.1.18"
49 | negotiator "0.6.1"
50 |
51 | after@0.8.2:
52 | version "0.8.2"
53 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
54 |
55 | ansi-regex@^2.0.0:
56 | version "2.1.1"
57 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
58 |
59 | aproba@^1.0.3:
60 | version "1.2.0"
61 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
62 |
63 | are-we-there-yet@~1.1.2:
64 | version "1.1.4"
65 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
66 | dependencies:
67 | delegates "^1.0.0"
68 | readable-stream "^2.0.6"
69 |
70 | array-flatten@1.1.1:
71 | version "1.1.1"
72 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
73 |
74 | arraybuffer.slice@~0.0.7:
75 | version "0.0.7"
76 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
77 |
78 | async-limiter@~1.0.0:
79 | version "1.0.0"
80 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
81 |
82 | backo2@1.0.2:
83 | version "1.0.2"
84 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
85 |
86 | balanced-match@^1.0.0:
87 | version "1.0.0"
88 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
89 |
90 | base64-arraybuffer@0.1.5:
91 | version "0.1.5"
92 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
93 |
94 | base64id@1.0.0:
95 | version "1.0.0"
96 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
97 |
98 | better-assert@~1.0.0:
99 | version "1.0.2"
100 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
101 | dependencies:
102 | callsite "1.0.0"
103 |
104 | blob@0.0.4:
105 | version "0.0.4"
106 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
107 |
108 | bluebird@^3.4.6, bluebird@^3.5.0:
109 | version "3.5.1"
110 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
111 |
112 | body-parser@1.18.2:
113 | version "1.18.2"
114 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
115 | dependencies:
116 | bytes "3.0.0"
117 | content-type "~1.0.4"
118 | debug "2.6.9"
119 | depd "~1.1.1"
120 | http-errors "~1.6.2"
121 | iconv-lite "0.4.19"
122 | on-finished "~2.3.0"
123 | qs "6.5.1"
124 | raw-body "2.3.2"
125 | type-is "~1.6.15"
126 |
127 | brace-expansion@^1.1.7:
128 | version "1.1.11"
129 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
130 | dependencies:
131 | balanced-match "^1.0.0"
132 | concat-map "0.0.1"
133 |
134 | bytes@3.0.0:
135 | version "3.0.0"
136 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
137 |
138 | callsite@1.0.0:
139 | version "1.0.0"
140 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
141 |
142 | chownr@^1.0.1:
143 | version "1.0.1"
144 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
145 |
146 | cls-bluebird@^2.1.0:
147 | version "2.1.0"
148 | resolved "https://registry.yarnpkg.com/cls-bluebird/-/cls-bluebird-2.1.0.tgz#37ef1e080a8ffb55c2f4164f536f1919e7968aee"
149 | dependencies:
150 | is-bluebird "^1.0.2"
151 | shimmer "^1.1.0"
152 |
153 | code-point-at@^1.0.0:
154 | version "1.1.0"
155 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
156 |
157 | component-bind@1.0.0:
158 | version "1.0.0"
159 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
160 |
161 | component-emitter@1.2.1:
162 | version "1.2.1"
163 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
164 |
165 | component-inherit@0.0.3:
166 | version "0.0.3"
167 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
168 |
169 | concat-map@0.0.1:
170 | version "0.0.1"
171 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
172 |
173 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
174 | version "1.1.0"
175 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
176 |
177 | content-disposition@0.5.2:
178 | version "0.5.2"
179 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
180 |
181 | content-type@~1.0.4:
182 | version "1.0.4"
183 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
184 |
185 | cookie-signature@1.0.6:
186 | version "1.0.6"
187 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
188 |
189 | cookie@0.3.1:
190 | version "0.3.1"
191 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
192 |
193 | core-util-is@~1.0.0:
194 | version "1.0.2"
195 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
196 |
197 | debug@2.6.9, debug@^2.1.2, debug@^2.6.9:
198 | version "2.6.9"
199 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
200 | dependencies:
201 | ms "2.0.0"
202 |
203 | debug@^3.1.0, debug@~3.1.0:
204 | version "3.1.0"
205 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
206 | dependencies:
207 | ms "2.0.0"
208 |
209 | deep-extend@~0.4.0:
210 | version "0.4.2"
211 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
212 |
213 | delegates@^1.0.0:
214 | version "1.0.0"
215 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
216 |
217 | depd@1.1.1:
218 | version "1.1.1"
219 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
220 |
221 | depd@^1.1.0, depd@~1.1.1, depd@~1.1.2:
222 | version "1.1.2"
223 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
224 |
225 | destroy@~1.0.4:
226 | version "1.0.4"
227 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
228 |
229 | detect-libc@^1.0.2:
230 | version "1.0.3"
231 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
232 |
233 | dottie@^2.0.0:
234 | version "2.0.0"
235 | resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.0.tgz#da191981c8b8d713ca0115d5898cf397c2f0ddd0"
236 |
237 | ee-first@1.1.1:
238 | version "1.1.1"
239 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
240 |
241 | encodeurl@~1.0.2:
242 | version "1.0.2"
243 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
244 |
245 | engine.io-client@~3.2.0:
246 | version "3.2.1"
247 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
248 | dependencies:
249 | component-emitter "1.2.1"
250 | component-inherit "0.0.3"
251 | debug "~3.1.0"
252 | engine.io-parser "~2.1.1"
253 | has-cors "1.1.0"
254 | indexof "0.0.1"
255 | parseqs "0.0.5"
256 | parseuri "0.0.5"
257 | ws "~3.3.1"
258 | xmlhttprequest-ssl "~1.5.4"
259 | yeast "0.1.2"
260 |
261 | engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
262 | version "2.1.2"
263 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
264 | dependencies:
265 | after "0.8.2"
266 | arraybuffer.slice "~0.0.7"
267 | base64-arraybuffer "0.1.5"
268 | blob "0.0.4"
269 | has-binary2 "~1.0.2"
270 |
271 | engine.io@~3.2.0:
272 | version "3.2.0"
273 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
274 | dependencies:
275 | accepts "~1.3.4"
276 | base64id "1.0.0"
277 | cookie "0.3.1"
278 | debug "~3.1.0"
279 | engine.io-parser "~2.1.0"
280 | ws "~3.3.1"
281 |
282 | escape-html@~1.0.3:
283 | version "1.0.3"
284 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
285 |
286 | etag@~1.8.1:
287 | version "1.8.1"
288 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
289 |
290 | express@^4.16.2:
291 | version "4.16.3"
292 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
293 | dependencies:
294 | accepts "~1.3.5"
295 | array-flatten "1.1.1"
296 | body-parser "1.18.2"
297 | content-disposition "0.5.2"
298 | content-type "~1.0.4"
299 | cookie "0.3.1"
300 | cookie-signature "1.0.6"
301 | debug "2.6.9"
302 | depd "~1.1.2"
303 | encodeurl "~1.0.2"
304 | escape-html "~1.0.3"
305 | etag "~1.8.1"
306 | finalhandler "1.1.1"
307 | fresh "0.5.2"
308 | merge-descriptors "1.0.1"
309 | methods "~1.1.2"
310 | on-finished "~2.3.0"
311 | parseurl "~1.3.2"
312 | path-to-regexp "0.1.7"
313 | proxy-addr "~2.0.3"
314 | qs "6.5.1"
315 | range-parser "~1.2.0"
316 | safe-buffer "5.1.1"
317 | send "0.16.2"
318 | serve-static "1.13.2"
319 | setprototypeof "1.1.0"
320 | statuses "~1.4.0"
321 | type-is "~1.6.16"
322 | utils-merge "1.0.1"
323 | vary "~1.1.2"
324 |
325 | finalhandler@1.1.1:
326 | version "1.1.1"
327 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
328 | dependencies:
329 | debug "2.6.9"
330 | encodeurl "~1.0.2"
331 | escape-html "~1.0.3"
332 | on-finished "~2.3.0"
333 | parseurl "~1.3.2"
334 | statuses "~1.4.0"
335 | unpipe "~1.0.0"
336 |
337 | forwarded@~0.1.2:
338 | version "0.1.2"
339 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
340 |
341 | fresh@0.5.2:
342 | version "0.5.2"
343 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
344 |
345 | fs-minipass@^1.2.5:
346 | version "1.2.5"
347 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
348 | dependencies:
349 | minipass "^2.2.1"
350 |
351 | fs.realpath@^1.0.0:
352 | version "1.0.0"
353 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
354 |
355 | gauge@~2.7.3:
356 | version "2.7.4"
357 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
358 | dependencies:
359 | aproba "^1.0.3"
360 | console-control-strings "^1.0.0"
361 | has-unicode "^2.0.0"
362 | object-assign "^4.1.0"
363 | signal-exit "^3.0.0"
364 | string-width "^1.0.1"
365 | strip-ansi "^3.0.1"
366 | wide-align "^1.1.0"
367 |
368 | generic-pool@^3.4.0:
369 | version "3.4.2"
370 | resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.4.2.tgz#92ff7196520d670839a67308092a12aadf2f6a59"
371 |
372 | glob@^7.0.5:
373 | version "7.1.2"
374 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
375 | dependencies:
376 | fs.realpath "^1.0.0"
377 | inflight "^1.0.4"
378 | inherits "2"
379 | minimatch "^3.0.4"
380 | once "^1.3.0"
381 | path-is-absolute "^1.0.0"
382 |
383 | has-binary2@~1.0.2:
384 | version "1.0.2"
385 | resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
386 | dependencies:
387 | isarray "2.0.1"
388 |
389 | has-cors@1.1.0:
390 | version "1.1.0"
391 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
392 |
393 | has-unicode@^2.0.0:
394 | version "2.0.1"
395 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
396 |
397 | http-errors@1.6.2:
398 | version "1.6.2"
399 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
400 | dependencies:
401 | depd "1.1.1"
402 | inherits "2.0.3"
403 | setprototypeof "1.0.3"
404 | statuses ">= 1.3.1 < 2"
405 |
406 | http-errors@~1.6.2:
407 | version "1.6.3"
408 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
409 | dependencies:
410 | depd "~1.1.2"
411 | inherits "2.0.3"
412 | setprototypeof "1.1.0"
413 | statuses ">= 1.4.0 < 2"
414 |
415 | iconv-lite@0.4.19, iconv-lite@^0.4.4:
416 | version "0.4.19"
417 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
418 |
419 | ignore-walk@^3.0.1:
420 | version "3.0.1"
421 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
422 | dependencies:
423 | minimatch "^3.0.4"
424 |
425 | indexof@0.0.1:
426 | version "0.0.1"
427 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
428 |
429 | inflection@1.12.0:
430 | version "1.12.0"
431 | resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
432 |
433 | inflight@^1.0.4:
434 | version "1.0.6"
435 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
436 | dependencies:
437 | once "^1.3.0"
438 | wrappy "1"
439 |
440 | inherits@2, inherits@2.0.3, inherits@~2.0.3:
441 | version "2.0.3"
442 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
443 |
444 | ini@~1.3.0:
445 | version "1.3.5"
446 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
447 |
448 | ipaddr.js@1.6.0:
449 | version "1.6.0"
450 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
451 |
452 | is-bluebird@^1.0.2:
453 | version "1.0.2"
454 | resolved "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz#096439060f4aa411abee19143a84d6a55346d6e2"
455 |
456 | is-fullwidth-code-point@^1.0.0:
457 | version "1.0.0"
458 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
459 | dependencies:
460 | number-is-nan "^1.0.0"
461 |
462 | isarray@2.0.1:
463 | version "2.0.1"
464 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
465 |
466 | isarray@~1.0.0:
467 | version "1.0.0"
468 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
469 |
470 | lodash@^4.17.1:
471 | version "4.17.5"
472 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
473 |
474 | media-typer@0.3.0:
475 | version "0.3.0"
476 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
477 |
478 | merge-descriptors@1.0.1:
479 | version "1.0.1"
480 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
481 |
482 | methods@~1.1.2:
483 | version "1.1.2"
484 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
485 |
486 | mime-db@~1.33.0:
487 | version "1.33.0"
488 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
489 |
490 | mime-types@~2.1.18:
491 | version "2.1.18"
492 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
493 | dependencies:
494 | mime-db "~1.33.0"
495 |
496 | mime@1.4.1:
497 | version "1.4.1"
498 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
499 |
500 | minimatch@^3.0.4:
501 | version "3.0.4"
502 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
503 | dependencies:
504 | brace-expansion "^1.1.7"
505 |
506 | minimist@0.0.8:
507 | version "0.0.8"
508 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
509 |
510 | minimist@^1.2.0:
511 | version "1.2.0"
512 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
513 |
514 | minipass@^2.2.1, minipass@^2.2.4:
515 | version "2.2.4"
516 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40"
517 | dependencies:
518 | safe-buffer "^5.1.1"
519 | yallist "^3.0.0"
520 |
521 | minizlib@^1.1.0:
522 | version "1.1.0"
523 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
524 | dependencies:
525 | minipass "^2.2.1"
526 |
527 | mkdirp@^0.5.0, mkdirp@^0.5.1:
528 | version "0.5.1"
529 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
530 | dependencies:
531 | minimist "0.0.8"
532 |
533 | moment-timezone@^0.5.14:
534 | version "0.5.14"
535 | resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.14.tgz#4eb38ff9538b80108ba467a458f3ed4268ccfcb1"
536 | dependencies:
537 | moment ">= 2.9.0"
538 |
539 | "moment@>= 2.9.0", moment@^2.20.0:
540 | version "2.22.0"
541 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.0.tgz#7921ade01017dd45186e7fee5f424f0b8663a730"
542 |
543 | ms@2.0.0:
544 | version "2.0.0"
545 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
546 |
547 | nan@~2.9.2:
548 | version "2.9.2"
549 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866"
550 |
551 | needle@^2.2.0:
552 | version "2.2.0"
553 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.0.tgz#f14efc69cee1024b72c8b21c7bdf94a731dc12fa"
554 | dependencies:
555 | debug "^2.1.2"
556 | iconv-lite "^0.4.4"
557 | sax "^1.2.4"
558 |
559 | negotiator@0.6.1:
560 | version "0.6.1"
561 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
562 |
563 | node-pre-gyp@~0.9.0:
564 | version "0.9.0"
565 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.0.tgz#bdd4c3afac9b1b1ebff0a9ff3362859eb6781bb8"
566 | dependencies:
567 | detect-libc "^1.0.2"
568 | mkdirp "^0.5.1"
569 | needle "^2.2.0"
570 | nopt "^4.0.1"
571 | npm-packlist "^1.1.6"
572 | npmlog "^4.0.2"
573 | rc "^1.1.7"
574 | rimraf "^2.6.1"
575 | semver "^5.3.0"
576 | tar "^4"
577 |
578 | nopt@^4.0.1:
579 | version "4.0.1"
580 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
581 | dependencies:
582 | abbrev "1"
583 | osenv "^0.1.4"
584 |
585 | npm-bundled@^1.0.1:
586 | version "1.0.3"
587 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308"
588 |
589 | npm-packlist@^1.1.6:
590 | version "1.1.10"
591 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a"
592 | dependencies:
593 | ignore-walk "^3.0.1"
594 | npm-bundled "^1.0.1"
595 |
596 | npmlog@^4.0.2:
597 | version "4.1.2"
598 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
599 | dependencies:
600 | are-we-there-yet "~1.1.2"
601 | console-control-strings "~1.1.0"
602 | gauge "~2.7.3"
603 | set-blocking "~2.0.0"
604 |
605 | number-is-nan@^1.0.0:
606 | version "1.0.1"
607 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
608 |
609 | object-assign@^4.1.0:
610 | version "4.1.1"
611 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
612 |
613 | object-component@0.0.3:
614 | version "0.0.3"
615 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
616 |
617 | on-finished@~2.3.0:
618 | version "2.3.0"
619 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
620 | dependencies:
621 | ee-first "1.1.1"
622 |
623 | once@^1.3.0:
624 | version "1.4.0"
625 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
626 | dependencies:
627 | wrappy "1"
628 |
629 | os-homedir@^1.0.0:
630 | version "1.0.2"
631 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
632 |
633 | os-tmpdir@^1.0.0:
634 | version "1.0.2"
635 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
636 |
637 | osenv@^0.1.4:
638 | version "0.1.5"
639 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
640 | dependencies:
641 | os-homedir "^1.0.0"
642 | os-tmpdir "^1.0.0"
643 |
644 | parseqs@0.0.5:
645 | version "0.0.5"
646 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
647 | dependencies:
648 | better-assert "~1.0.0"
649 |
650 | parseuri@0.0.5:
651 | version "0.0.5"
652 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
653 | dependencies:
654 | better-assert "~1.0.0"
655 |
656 | parseurl@~1.3.2:
657 | version "1.3.2"
658 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
659 |
660 | path-is-absolute@^1.0.0:
661 | version "1.0.1"
662 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
663 |
664 | path-to-regexp@0.1.7:
665 | version "0.1.7"
666 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
667 |
668 | process-nextick-args@~2.0.0:
669 | version "2.0.0"
670 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
671 |
672 | proxy-addr@~2.0.3:
673 | version "2.0.3"
674 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
675 | dependencies:
676 | forwarded "~0.1.2"
677 | ipaddr.js "1.6.0"
678 |
679 | qs@6.5.1:
680 | version "6.5.1"
681 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
682 |
683 | range-parser@~1.2.0:
684 | version "1.2.0"
685 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
686 |
687 | raw-body@2.3.2:
688 | version "2.3.2"
689 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
690 | dependencies:
691 | bytes "3.0.0"
692 | http-errors "1.6.2"
693 | iconv-lite "0.4.19"
694 | unpipe "1.0.0"
695 |
696 | rc@^1.1.7:
697 | version "1.2.6"
698 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092"
699 | dependencies:
700 | deep-extend "~0.4.0"
701 | ini "~1.3.0"
702 | minimist "^1.2.0"
703 | strip-json-comments "~2.0.1"
704 |
705 | readable-stream@^2.0.6:
706 | version "2.3.5"
707 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
708 | dependencies:
709 | core-util-is "~1.0.0"
710 | inherits "~2.0.3"
711 | isarray "~1.0.0"
712 | process-nextick-args "~2.0.0"
713 | safe-buffer "~5.1.1"
714 | string_decoder "~1.0.3"
715 | util-deprecate "~1.0.1"
716 |
717 | retry-as-promised@^2.3.2:
718 | version "2.3.2"
719 | resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-2.3.2.tgz#cd974ee4fd9b5fe03cbf31871ee48221c07737b7"
720 | dependencies:
721 | bluebird "^3.4.6"
722 | debug "^2.6.9"
723 |
724 | rimraf@^2.6.1:
725 | version "2.6.2"
726 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
727 | dependencies:
728 | glob "^7.0.5"
729 |
730 | safe-buffer@5.1.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
731 | version "5.1.1"
732 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
733 |
734 | sax@^1.2.4:
735 | version "1.2.4"
736 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
737 |
738 | semver@^5.3.0, semver@^5.5.0:
739 | version "5.5.0"
740 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
741 |
742 | send@0.16.2:
743 | version "0.16.2"
744 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
745 | dependencies:
746 | debug "2.6.9"
747 | depd "~1.1.2"
748 | destroy "~1.0.4"
749 | encodeurl "~1.0.2"
750 | escape-html "~1.0.3"
751 | etag "~1.8.1"
752 | fresh "0.5.2"
753 | http-errors "~1.6.2"
754 | mime "1.4.1"
755 | ms "2.0.0"
756 | on-finished "~2.3.0"
757 | range-parser "~1.2.0"
758 | statuses "~1.4.0"
759 |
760 | sequelize@^4.37.5:
761 | version "4.37.5"
762 | resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.37.5.tgz#08a464a4f0f2563a41f77a1fc1067344f3144b52"
763 | dependencies:
764 | bluebird "^3.5.0"
765 | cls-bluebird "^2.1.0"
766 | debug "^3.1.0"
767 | depd "^1.1.0"
768 | dottie "^2.0.0"
769 | generic-pool "^3.4.0"
770 | inflection "1.12.0"
771 | lodash "^4.17.1"
772 | moment "^2.20.0"
773 | moment-timezone "^0.5.14"
774 | retry-as-promised "^2.3.2"
775 | semver "^5.5.0"
776 | terraformer-wkt-parser "^1.1.2"
777 | toposort-class "^1.0.1"
778 | uuid "^3.2.1"
779 | validator "^9.4.1"
780 | wkx "^0.4.1"
781 |
782 | serve-static@1.13.2:
783 | version "1.13.2"
784 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
785 | dependencies:
786 | encodeurl "~1.0.2"
787 | escape-html "~1.0.3"
788 | parseurl "~1.3.2"
789 | send "0.16.2"
790 |
791 | set-blocking@~2.0.0:
792 | version "2.0.0"
793 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
794 |
795 | setprototypeof@1.0.3:
796 | version "1.0.3"
797 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
798 |
799 | setprototypeof@1.1.0:
800 | version "1.1.0"
801 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
802 |
803 | shimmer@^1.1.0:
804 | version "1.2.0"
805 | resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.0.tgz#f966f7555789763e74d8841193685a5e78736665"
806 |
807 | signal-exit@^3.0.0:
808 | version "3.0.2"
809 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
810 |
811 | socket.io-adapter@~1.1.0:
812 | version "1.1.1"
813 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
814 |
815 | socket.io-client@2.1.0:
816 | version "2.1.0"
817 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.0.tgz#0d0b21d460dc4ed36e57085136f2be0137ff20ff"
818 | dependencies:
819 | backo2 "1.0.2"
820 | base64-arraybuffer "0.1.5"
821 | component-bind "1.0.0"
822 | component-emitter "1.2.1"
823 | debug "~3.1.0"
824 | engine.io-client "~3.2.0"
825 | has-binary2 "~1.0.2"
826 | has-cors "1.1.0"
827 | indexof "0.0.1"
828 | object-component "0.0.3"
829 | parseqs "0.0.5"
830 | parseuri "0.0.5"
831 | socket.io-parser "~3.2.0"
832 | to-array "0.1.4"
833 |
834 | socket.io-parser@~3.2.0:
835 | version "3.2.0"
836 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
837 | dependencies:
838 | component-emitter "1.2.1"
839 | debug "~3.1.0"
840 | isarray "2.0.1"
841 |
842 | socket.io@^2.0.4:
843 | version "2.1.0"
844 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.0.tgz#de77161795b6303e7aefc982ea04acb0cec17395"
845 | dependencies:
846 | debug "~3.1.0"
847 | engine.io "~3.2.0"
848 | has-binary2 "~1.0.2"
849 | socket.io-adapter "~1.1.0"
850 | socket.io-client "2.1.0"
851 | socket.io-parser "~3.2.0"
852 |
853 | sqlite3@^4.0.0:
854 | version "4.0.0"
855 | resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.0.0.tgz#cc0e093ab51873f50d9dfc4126fcbef15d486570"
856 | dependencies:
857 | nan "~2.9.2"
858 | node-pre-gyp "~0.9.0"
859 |
860 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
861 | version "1.5.0"
862 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
863 |
864 | statuses@~1.4.0:
865 | version "1.4.0"
866 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
867 |
868 | string-width@^1.0.1, string-width@^1.0.2:
869 | version "1.0.2"
870 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
871 | dependencies:
872 | code-point-at "^1.0.0"
873 | is-fullwidth-code-point "^1.0.0"
874 | strip-ansi "^3.0.0"
875 |
876 | string_decoder@~1.0.3:
877 | version "1.0.3"
878 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
879 | dependencies:
880 | safe-buffer "~5.1.0"
881 |
882 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
883 | version "3.0.1"
884 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
885 | dependencies:
886 | ansi-regex "^2.0.0"
887 |
888 | strip-json-comments@~2.0.1:
889 | version "2.0.1"
890 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
891 |
892 | tar@^4:
893 | version "4.4.1"
894 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749"
895 | dependencies:
896 | chownr "^1.0.1"
897 | fs-minipass "^1.2.5"
898 | minipass "^2.2.4"
899 | minizlib "^1.1.0"
900 | mkdirp "^0.5.0"
901 | safe-buffer "^5.1.1"
902 | yallist "^3.0.2"
903 |
904 | terraformer-wkt-parser@^1.1.2:
905 | version "1.1.2"
906 | resolved "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.1.2.tgz#336a0c8fc82094a5aff83288f69aedecd369bf0c"
907 | dependencies:
908 | terraformer "~1.0.5"
909 |
910 | terraformer@~1.0.5:
911 | version "1.0.8"
912 | resolved "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.8.tgz#51e0ad89746fcf2161dc6f65aa70e42377c8b593"
913 | dependencies:
914 | "@types/geojson" "^1.0.0"
915 |
916 | to-array@0.1.4:
917 | version "0.1.4"
918 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
919 |
920 | toposort-class@^1.0.1:
921 | version "1.0.1"
922 | resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
923 |
924 | type-is@~1.6.15, type-is@~1.6.16:
925 | version "1.6.16"
926 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
927 | dependencies:
928 | media-typer "0.3.0"
929 | mime-types "~2.1.18"
930 |
931 | ultron@~1.1.0:
932 | version "1.1.1"
933 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
934 |
935 | underscore@^1.8.3:
936 | version "1.8.3"
937 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
938 |
939 | unpipe@1.0.0, unpipe@~1.0.0:
940 | version "1.0.0"
941 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
942 |
943 | util-deprecate@~1.0.1:
944 | version "1.0.2"
945 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
946 |
947 | utils-merge@1.0.1:
948 | version "1.0.1"
949 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
950 |
951 | uuid@^3.2.1:
952 | version "3.2.1"
953 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
954 |
955 | validator@^9.4.1:
956 | version "9.4.1"
957 | resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
958 |
959 | vary@~1.1.2:
960 | version "1.1.2"
961 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
962 |
963 | wide-align@^1.1.0:
964 | version "1.1.2"
965 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
966 | dependencies:
967 | string-width "^1.0.2"
968 |
969 | wkx@^0.4.1:
970 | version "0.4.4"
971 | resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.4.tgz#cf751b672e4b45e162f9fd30124878e73d96c9b2"
972 | dependencies:
973 | "@types/node" "*"
974 |
975 | wrappy@1:
976 | version "1.0.2"
977 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
978 |
979 | ws@~3.3.1:
980 | version "3.3.3"
981 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
982 | dependencies:
983 | async-limiter "~1.0.0"
984 | safe-buffer "~5.1.0"
985 | ultron "~1.1.0"
986 |
987 | xmlhttprequest-ssl@~1.5.4:
988 | version "1.5.5"
989 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
990 |
991 | yallist@^3.0.0, yallist@^3.0.2:
992 | version "3.0.2"
993 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
994 |
995 | yeast@0.1.2:
996 | version "0.1.2"
997 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
998 |
--------------------------------------------------------------------------------