diff --git a/.codechina-ci.yml b/.codechina-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bd0c6575e7c9e7cc85966edce3358238bb4c163f
--- /dev/null
+++ b/.codechina-ci.yml
@@ -0,0 +1,10 @@
+# preview.yml
+autoOpen: false # 打开工作空间时是否自动开启所有应用的预览
+apps:
+ - port: 5500 # 应用的端口
+ run: npm i && npm run dev # 应用的启动命
+ command: # 使用此命令启动服务,且不执行run
+ root: ./ # 应用的启动目录
+ name: 2048 # 应用名称
+ description: 我的第一个 App。 # 应用描述
+ autoOpen: true # 打开工作空间时是否自动开启预览(优先级高于根级 autoOpen
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 75856f8b49f54ec39d2e564fcaa0587c8c8b6b78..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.sass-cache/
-node_modules
\ No newline at end of file
diff --git a/.jshintrc b/.jshintrc
deleted file mode 100644
index 87dbf9ac3d82336ccee46d3fb414fbf3dc5024af..0000000000000000000000000000000000000000
--- a/.jshintrc
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "esnext": true,
- "indent": 2,
- "maxlen": 80,
- "freeze": true,
- "camelcase": true,
- "unused": true,
- "eqnull": true,
- "proto": true,
- "supernew": true,
- "noyield": true,
- "evil": true,
- "node": true,
- "boss": true,
- "expr": true,
- "loopfunc": true,
- "white": true,
- "maxdepth": 4
-}
diff --git a/1.png b/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b623a7afa641b2de75eee4ecd56e63b7b54408e0
Binary files /dev/null and b/1.png differ
diff --git a/2.png b/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..0cb469dfda72f36f09750242bc34793e64b41400
Binary files /dev/null and b/2.png differ
diff --git a/3.png b/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..19f1ed620dcc1ae1a482fa22ccbd1e9f3957898e
Binary files /dev/null and b/3.png differ
diff --git a/4.png b/4.png
new file mode 100644
index 0000000000000000000000000000000000000000..2752e5b857faf59598ddcb8b6211a59a7bc8fb84
Binary files /dev/null and b/4.png differ
diff --git a/5.png b/5.png
new file mode 100644
index 0000000000000000000000000000000000000000..45cc0ecb3b3145a5ecdfe8362f4c4087328057c9
Binary files /dev/null and b/5.png differ
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 8b269ae253af2441f697ddf5d4db7b180ac14430..0000000000000000000000000000000000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributing
-Changes and improvements are more than welcome! Feel free to fork and open a pull request.
-
-Please follow the house rules to have a bigger chance of your contribution being merged.
-
-## House rules
-
-### How to make changes
- - To make changes, create a new branch based on `master` (do not create one from `gh-pages` unless strictly necessary) and make them there, then create a Pull Request to master.
- `gh-pages` is different from master in that it contains sharing features, analytics and other things that have no direct bearing with the game. `master` is the "pure" version of the game.
- - If you want to modify the CSS, please edit the SCSS files present in `style/`: `main.scss` and others. Don't edit the `main.css`, because it's supposed to be generated.
- In order to compile your SCSS modifications, you need to use the `sass` gem (install it by running `gem install sass` once Ruby is installed).
- To run SASS, simply use the following command:
- `sass --unix-newlines --watch style/main.scss`
- SASS will automatically recompile your css when changed.
- - `Rakefile` contains some tasks that help during development. Feel free to add useful tasks if needed.
- - Please use 2-space indentation when editing the JavaScript. A `.jshintrc` file is present, which will help your code to follow the guidelines if you install and run `jshint`.
- - Please test your modification thoroughly before submitting your Pull Request.
-
-### Changes that might not be accepted
-We have to be conservative with the core game. This means that some modifications won't be merged, or will have to be evaluated carefully before being merged:
-
- - Undo/redo features
- - Save/reload features
- - Changes to how the tiles look or their contents
- - Changes to the layout
- - Changes to the grid size
-
-### Changes that are welcome
- - Bug fixes
- - Compatibility improvements
- - "Under the hood" enhancements
- - Small changes that don't have an impact on the core gameplay
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index b0dbfa4d7526587bcc21a4883222b20805d5c065..0000000000000000000000000000000000000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Gabriele Cirulli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/README.md b/README.md
index 9040b9ddfbd130c0663533792f339b1d0ef63831..227f218db5e923a979abe931a8b4c57a414c7c73 100644
--- a/README.md
+++ b/README.md
@@ -1,60 +1,35 @@
-# 1024程序员开源挑战赛
+# 超级玛丽
-**任务快速入口**
-- 任务一,赢取 一年10核10G云实验环境会员:[GitCode平台基础操作](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E5%BC%80%E6%BA%90%E4%BB%BB%E5%8A%A11.md)
- - 2022/10/26 [37人开发者任务完成名单](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E4%BB%BB%E5%8A%A11%E4%B8%AD%E5%A5%96%E5%90%8D%E5%8D%95.md#1-20221026-%E4%BB%BB%E5%8A%A1%E5%AE%8C%E6%88%90%E5%90%8D%E5%8D%95%E5%85%AC%E5%B8%8337%E4%BA%BA)
- - 2022/10/25 [48人开发者任务完成名单](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E4%BB%BB%E5%8A%A11%E4%B8%AD%E5%A5%96%E5%90%8D%E5%8D%95.md#2-20221025-%E4%BB%BB%E5%8A%A1%E5%AE%8C%E6%88%90%E5%90%8D%E5%8D%95%E5%85%AC%E5%B8%8348%E4%BA%BA)
- - 2022/10/24 [58人开发者任务完成名单](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E4%BB%BB%E5%8A%A11%E4%B8%AD%E5%A5%96%E5%90%8D%E5%8D%95.md#3-20221024-%E4%BB%BB%E5%8A%A1%E5%AE%8C%E6%88%90%E5%90%8D%E5%8D%95%E5%85%AC%E5%B8%83%E5%85%B1%E8%AE%A158%E4%BA%BA)
- - 2022/10/23 [22人开发者任务完成名单](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E4%BB%BB%E5%8A%A11%E4%B8%AD%E5%A5%96%E5%90%8D%E5%8D%95.md#4-20221023-%E4%BB%BB%E5%8A%A1%E5%AE%8C%E6%88%90%E5%90%8D%E5%8D%95%E5%85%AC%E5%B8%83-%E5%85%B1%E8%AE%A122%E4%BA%BA)
-- 任务二,赢取 CSDN定制书包:[开源项目开发与运行](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E5%BC%80%E6%BA%90%E4%BB%BB%E5%8A%A12.md)
-- 任务三,赢取 现金大礼:[1024云IDE应用挑战赛](https://gitcode.net/cloud-ide/1024)
+## 前言
-上述每项任务无顺序依赖关系,三项任务都可参与或独立参与。
+如果你没有玩过《超级玛丽》这个游戏,我真不敢想像你的童年是什么颜色的。曾经因为它,不知道挨了老妈多少顿打,有时连饭都顾不上吃。记得上初中那年,老妈终于同意给我买了个小霸王,但是因为当时是走读,一个星期才能回一次家。而当我第二个星期回家的时候,小弟弟用委屈的眼神看着我说:哥,你的学习机不知道为什么接电视机上没反应了。。接电视机上没反应了。。。没反应了!当时我那个恨啊!
-## 一、活动介绍
-**1024开源挑战赛** 是CSDN官方在1024程序员节重磅推出的开源活动,致力让开发者使用和参与开源项目。在“开源正在吞噬世界”的大背景下,94%的开发者正在使用开源项目与软件,此次活动希望广大开发者了解开源的同时获取社区奖励。
+## 游戏介绍
-## 二、活动安排
+通过 A D 键来控制角色左右移动,K键跳,吃到子弹时使用J键射击,按H键开始游戏。游戏还是以背景运动的方式来实现人物向前跑的效果。其中主要运用了碰撞检测、抛物线运动等算法,并对大量的数据进行了分组处理。是否真实还原了游戏,由你来体验并给出答案。 当然,游戏中有些地方在操作控制上稍微有些不足,有待进一步完善。目前只有一关。
-| 序号 | 任务名称 | 用户群体 | 时间安排 |
-| ---- | ---- | ---- | ---- |
-| 1 | GitCode平台基础操作 | 开源使用者 | 2022.10.23 - 2022.11.14 |
-| 2 | 开源项目开发与运行 | 开源使用者 | 2022.10.23 - 2022.11.14 |
-| 3 | 1024云IDE应用挑战赛 | 开源贡献者 | 2022.10.23 - 2022.11.14 |
+
-上述每项任务无顺序依赖关系,三项任务都可参与或独立参与。
+
-## 三、奖品设置及发放规则
-| 序号 | 任务名称 | 任务奖励 | 领取条件 | 发放规则 | 人数限制 |
-| ---- | ---- | ---- | ---- | ---- | ---- |
-| 1 | GitCode平台基础操作 | [一年10核10G云实验环境会员](https://mydev.csdn.net/product/pod/new)(非云服务器,是云容器实验环境,详细介绍[戳我查看](https://mydev.csdn.net/product/pod/new)) | 完成任务即可发放,用户可按照任务操作步骤自行检查是否完成,官方会每天运行程序,自动统计并发放奖励。每个用户仅可领取1次。| 次日12点前在任务页面公布中奖名单,24点前完成发放奖励,成功发放后会有短信通知,若未收到短信,可点击[此链接,](https://mydev.csdn.net/product/ide/dashboard )查看VIP是否到账(成功领取到的用户,可在页面看到VIP标识及到期时间等提示) |100,000 |
-| 2 | 开源项目开发与运行 | [CSDN定制书包](https://img-home.csdnimg.cn/images/20221013053300.png) | 完成任务即可发放,用户可按照任务操作步骤自行检查是否完成,官方人员会每周统一通过检查后发放。每个用户仅可领取1次。 | 每周一12点前在任务页面公布中奖名单,工作人员会通过CSDN私信联系您,奖品在活动结束后30个工作日发放 | 2,000 |
-| 3 | 1024云IDE应用挑战赛 | 最高5000元现金奖励 | 代码提交完成,评选获奖后发放 | 11月15日在任务页面公布评选结果,工作人员会通过CSDN私信联系您,奖品在活动结束后7个工作日发放 | 88 |
+
-## 四、参与任务入口
-| 序号 | 任务名称 | 任务入口 |
-| ---- | ---- | ---- |
-| 1 | GitCode平台基础操作| [https://gitcode.net/gitcode/1024opensource/-/blob/master/%E5%BC%80%E6%BA%90%E4%BB%BB%E5%8A%A11.md](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E5%BC%80%E6%BA%90%E4%BB%BB%E5%8A%A11.md) |
-| 2 | 开源项目开发与运行 | [https://gitcode.net/gitcode/1024opensource/-/blob/master/%E5%BC%80%E6%BA%90%E4%BB%BB%E5%8A%A12.md](https://gitcode.net/gitcode/1024opensource/-/blob/master/%E5%BC%80%E6%BA%90%E4%BB%BB%E5%8A%A12.md) |
-| 3 | [1024云IDE应用挑战赛](https://gitcode.net/cloud-ide/1024) | [https://gitcode.net/cloud-ide/1024](https://gitcode.net/cloud-ide/1024) |
+
+
-## 五、活动交流
-开源活动官方交流群(仅参与者之间讨论和交流)。扫码进入选手沟通群。活动重要节点通知会在群内第一时间告知,请所有参与者尽量加群。
+## 主要功能
-
+- **游戏地图的创建**: 地图的样式展现,陆地,石头,管道,岩石,带属性硬石,碉堡,城堡岩,旗帜,旗杆等。
+- **游戏关卡的设置**:障碍物、玛丽奥、敌人、隐藏物等位置属性。
-## 六、活动点评
+- **玛丽奥的功能设置**:实现定位、缓动效果移动、跳跃、成长、降级、发射子弹、死亡和障碍物及敌人碰撞检测。
-### 活动建议
-如果大家对本次活动有建议,可以直接在本项目中提交issue,我们会认真对待每一个评论,非常感谢大家!!!
-### 活动点赞👍
-如果大家喜欢本次开源挑战赛活动,可以点击本项目的star,我们会根据大家的star数作为后期是否长期举办的重要依据,非常感谢大家!!!
-
-
-## 七、活动声明
-本活动最终解释权归CSDN所有,所有中奖名单会在活动结束后进行公示
+- **敌人的功能设置**:实现定位、移动、死亡、飞分数和障碍物及玛丽奥碰撞检测。
+- **障碍物的设置**:实现定位、实现碎石、飞金币、长蘑菇、飞分数、移动等效果、隐藏物的展现和玛丽奥的碰撞检测。
+- **属性物的设置**:子弹,成长蘑菇,加人蘑菇,子弹花,金币的属性设置及功能实现。
+- **游戏数据的展示**:游戏开始、开始关卡、游戏结束界面数据展示,游戏进行中展现倒计时、分数、金币、关卡、生命等数据。
\ No newline at end of file
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index 3e9851e615287000021e6e09e7a2d729c021639f..0000000000000000000000000000000000000000
--- a/Rakefile
+++ /dev/null
@@ -1,11 +0,0 @@
-require "date"
-
-namespace :appcache do
- desc "update the date in the appcache file (in the gh-pages branch)"
- task :update do
- appcache = File.read("cache.appcache")
- updated = "# Updated: #{DateTime.now}"
-
- File.write("cache.appcache", appcache.sub(/^# Updated:.*$/, updated))
- end
-end
diff --git a/Sounds/Sounds/mp3/Bowser Falls.mp3 b/Sounds/Sounds/mp3/Bowser Falls.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..786be571d1ba42beb0f76d0ea4c7eb3c659713f8
Binary files /dev/null and b/Sounds/Sounds/mp3/Bowser Falls.mp3 differ
diff --git a/Sounds/Sounds/mp3/Bowser Fires.mp3 b/Sounds/Sounds/mp3/Bowser Fires.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..20de7795d1787c603dad901c95646f401256088d
Binary files /dev/null and b/Sounds/Sounds/mp3/Bowser Fires.mp3 differ
diff --git a/Sounds/Sounds/mp3/Break Block.mp3 b/Sounds/Sounds/mp3/Break Block.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..e977c275db9c97416f002d7c1574cc849358c225
Binary files /dev/null and b/Sounds/Sounds/mp3/Break Block.mp3 differ
diff --git a/Sounds/Sounds/mp3/Bump.mp3 b/Sounds/Sounds/mp3/Bump.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c426283643079d8069c81487f2e2f227ec2b3e39
Binary files /dev/null and b/Sounds/Sounds/mp3/Bump.mp3 differ
diff --git a/Sounds/Sounds/mp3/Coin.mp3 b/Sounds/Sounds/mp3/Coin.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..530aa3a1640b20f31b3f4279b0addd3916467701
Binary files /dev/null and b/Sounds/Sounds/mp3/Coin.mp3 differ
diff --git a/Sounds/Sounds/mp3/Ending.mp3 b/Sounds/Sounds/mp3/Ending.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..8bf131d77b6f4594e1de41baeb180e5cb00b3440
Binary files /dev/null and b/Sounds/Sounds/mp3/Ending.mp3 differ
diff --git a/Sounds/Sounds/mp3/Fireball.mp3 b/Sounds/Sounds/mp3/Fireball.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..0b6f7f6daef6f5251ae9d10ed9d23053f6686d76
Binary files /dev/null and b/Sounds/Sounds/mp3/Fireball.mp3 differ
diff --git a/Sounds/Sounds/mp3/Firework.mp3 b/Sounds/Sounds/mp3/Firework.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..881717c973879cbcba4925703c2bbb8037f0fea7
Binary files /dev/null and b/Sounds/Sounds/mp3/Firework.mp3 differ
diff --git a/Sounds/Sounds/mp3/Flagpole.mp3 b/Sounds/Sounds/mp3/Flagpole.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..22c03bb3baf4063a5e4238d2bcb8c2a3a056a01b
Binary files /dev/null and b/Sounds/Sounds/mp3/Flagpole.mp3 differ
diff --git a/Sounds/Sounds/mp3/Gain Life.mp3 b/Sounds/Sounds/mp3/Gain Life.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..e9c8dc4c90d9cb8f2b2dc4ad31e6c3a9987539aa
Binary files /dev/null and b/Sounds/Sounds/mp3/Gain Life.mp3 differ
diff --git a/Sounds/Sounds/mp3/Game Over 2.mp3 b/Sounds/Sounds/mp3/Game Over 2.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..e9e56d3c07063b2cb27a79d36c54ab6134d63d12
Binary files /dev/null and b/Sounds/Sounds/mp3/Game Over 2.mp3 differ
diff --git a/Sounds/Sounds/mp3/Game Over.mp3 b/Sounds/Sounds/mp3/Game Over.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..378d5bdc0c1328ffc32ea3ec39dfd75c61da5716
Binary files /dev/null and b/Sounds/Sounds/mp3/Game Over.mp3 differ
diff --git a/Sounds/Sounds/mp3/Hurry.mp3 b/Sounds/Sounds/mp3/Hurry.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..afb1c098cdbbee820f2bdd23e50b627edb57427f
Binary files /dev/null and b/Sounds/Sounds/mp3/Hurry.mp3 differ
diff --git a/Sounds/Sounds/mp3/Into the Tunnel.mp3 b/Sounds/Sounds/mp3/Into the Tunnel.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c40b23fb4ee3b7662fcc01f5711527426a9f9e64
Binary files /dev/null and b/Sounds/Sounds/mp3/Into the Tunnel.mp3 differ
diff --git a/Sounds/Sounds/mp3/Jump Small.mp3 b/Sounds/Sounds/mp3/Jump Small.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b6cb42bbc8d2ab3922bf46c2a1aa3aa38b084d89
Binary files /dev/null and b/Sounds/Sounds/mp3/Jump Small.mp3 differ
diff --git a/Sounds/Sounds/mp3/Jump Super.mp3 b/Sounds/Sounds/mp3/Jump Super.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..241ba138042ec67da1d88e59cf8bbd8fa448dd16
Binary files /dev/null and b/Sounds/Sounds/mp3/Jump Super.mp3 differ
diff --git a/Sounds/Sounds/mp3/Kick.mp3 b/Sounds/Sounds/mp3/Kick.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..1bc8bed4f1e975657f8740bafa1e6bf46f64a781
Binary files /dev/null and b/Sounds/Sounds/mp3/Kick.mp3 differ
diff --git a/Sounds/Sounds/mp3/Level Complete.mp3 b/Sounds/Sounds/mp3/Level Complete.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..9e53419804356bb699bdcedfd1349b991ff0d831
Binary files /dev/null and b/Sounds/Sounds/mp3/Level Complete.mp3 differ
diff --git a/Sounds/Sounds/mp3/Pause.mp3 b/Sounds/Sounds/mp3/Pause.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..41facf8cba372f6a2c1193da1a67fc49ed74b4a9
Binary files /dev/null and b/Sounds/Sounds/mp3/Pause.mp3 differ
diff --git a/Sounds/Sounds/mp3/Pipe.mp3 b/Sounds/Sounds/mp3/Pipe.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c218140f079793a599c28bbbb6d9a89839bfc3bf
Binary files /dev/null and b/Sounds/Sounds/mp3/Pipe.mp3 differ
diff --git a/Sounds/Sounds/mp3/Player Dies.mp3 b/Sounds/Sounds/mp3/Player Dies.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..5c193f9007f2af0b66d65a22ded516fc5f91e030
Binary files /dev/null and b/Sounds/Sounds/mp3/Player Dies.mp3 differ
diff --git a/Sounds/Sounds/mp3/Power Down.mp3 b/Sounds/Sounds/mp3/Power Down.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..13b77700c2aca4333d5656462a2522bf2818fdbd
Binary files /dev/null and b/Sounds/Sounds/mp3/Power Down.mp3 differ
diff --git a/Sounds/Sounds/mp3/Powerup Appears.mp3 b/Sounds/Sounds/mp3/Powerup Appears.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..a3a25774d78a8ee99dbfd7dfae2146ca8945a0c5
Binary files /dev/null and b/Sounds/Sounds/mp3/Powerup Appears.mp3 differ
diff --git a/Sounds/Sounds/mp3/Powerup.mp3 b/Sounds/Sounds/mp3/Powerup.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c81ac49d94983e520a6e76ede51df4c9a8b382e7
Binary files /dev/null and b/Sounds/Sounds/mp3/Powerup.mp3 differ
diff --git a/Sounds/Sounds/mp3/Stage Clear.mp3 b/Sounds/Sounds/mp3/Stage Clear.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ae9681267b32c53625f78fd40fc2296d66a992b1
Binary files /dev/null and b/Sounds/Sounds/mp3/Stage Clear.mp3 differ
diff --git a/Sounds/Sounds/mp3/Vine Emerging.mp3 b/Sounds/Sounds/mp3/Vine Emerging.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b05c4602a7bbdba3feee15d15afc3a817d217597
Binary files /dev/null and b/Sounds/Sounds/mp3/Vine Emerging.mp3 differ
diff --git a/Sounds/Sounds/mp3/World Clear.mp3 b/Sounds/Sounds/mp3/World Clear.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ec4bed61be435055d12605a3a39a6696f7983674
Binary files /dev/null and b/Sounds/Sounds/mp3/World Clear.mp3 differ
diff --git a/Sounds/Sounds/mp3/You Dead.mp3 b/Sounds/Sounds/mp3/You Dead.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..4f48ef7b565933b6f7a52d3867e2807980e36e78
Binary files /dev/null and b/Sounds/Sounds/mp3/You Dead.mp3 differ
diff --git a/Sounds/Sounds/ogg/Bowser Falls.ogg b/Sounds/Sounds/ogg/Bowser Falls.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..e06db7e05ecf66d1cb3c0f1d23f90cfaaaaaa23b
Binary files /dev/null and b/Sounds/Sounds/ogg/Bowser Falls.ogg differ
diff --git a/Sounds/Sounds/ogg/Bowser Fires.ogg b/Sounds/Sounds/ogg/Bowser Fires.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..fdf2e70388264cbf65d2cf9060f33f572374f123
Binary files /dev/null and b/Sounds/Sounds/ogg/Bowser Fires.ogg differ
diff --git a/Sounds/Sounds/ogg/Break Block.ogg b/Sounds/Sounds/ogg/Break Block.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..37d1fcb7bd8d2ba3125ba31d839c5f7434085b76
Binary files /dev/null and b/Sounds/Sounds/ogg/Break Block.ogg differ
diff --git a/Sounds/Sounds/ogg/Bump.ogg b/Sounds/Sounds/ogg/Bump.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..28eacdc43212b6d952684a75dea8f0f640ac635a
Binary files /dev/null and b/Sounds/Sounds/ogg/Bump.ogg differ
diff --git a/Sounds/Sounds/ogg/Coin.ogg b/Sounds/Sounds/ogg/Coin.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..0612e1c9cba5560e17547be852c980b42f2e118a
Binary files /dev/null and b/Sounds/Sounds/ogg/Coin.ogg differ
diff --git a/Sounds/Sounds/ogg/Ending.ogg b/Sounds/Sounds/ogg/Ending.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..12434826ec8f80df9f3484726949f7372528a963
Binary files /dev/null and b/Sounds/Sounds/ogg/Ending.ogg differ
diff --git a/Sounds/Sounds/ogg/Fireball.ogg b/Sounds/Sounds/ogg/Fireball.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..e656d4bfc02d7570f19e2a8cef976fe782a35eb6
Binary files /dev/null and b/Sounds/Sounds/ogg/Fireball.ogg differ
diff --git a/Sounds/Sounds/ogg/Firework.ogg b/Sounds/Sounds/ogg/Firework.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..9341e6e6fc3359aa6cb6bf597a259406105b7261
Binary files /dev/null and b/Sounds/Sounds/ogg/Firework.ogg differ
diff --git a/Sounds/Sounds/ogg/Flagpole.ogg b/Sounds/Sounds/ogg/Flagpole.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..309120aa71d4051adc8e288a92872f4d776ea6ee
Binary files /dev/null and b/Sounds/Sounds/ogg/Flagpole.ogg differ
diff --git a/Sounds/Sounds/ogg/Gain Life.ogg b/Sounds/Sounds/ogg/Gain Life.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..e97c39f02a105fafd383ab4084d11c051046047b
Binary files /dev/null and b/Sounds/Sounds/ogg/Gain Life.ogg differ
diff --git a/Sounds/Sounds/ogg/Game Over 2.ogg b/Sounds/Sounds/ogg/Game Over 2.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..d02336c21e63a42a5b1934be7bbf46f170703505
Binary files /dev/null and b/Sounds/Sounds/ogg/Game Over 2.ogg differ
diff --git a/Sounds/Sounds/ogg/Game Over.ogg b/Sounds/Sounds/ogg/Game Over.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..e1a392d4b9de3531edf1fb573387989e83d016be
Binary files /dev/null and b/Sounds/Sounds/ogg/Game Over.ogg differ
diff --git a/Sounds/Sounds/ogg/Hurry.ogg b/Sounds/Sounds/ogg/Hurry.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..a900de94879ce93cd22a861341ad99faffdb719e
Binary files /dev/null and b/Sounds/Sounds/ogg/Hurry.ogg differ
diff --git a/Sounds/Sounds/ogg/Into the Tunnel.ogg b/Sounds/Sounds/ogg/Into the Tunnel.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..18a83b07f3884a54cab8f2a8e0016f2feb46b06e
Binary files /dev/null and b/Sounds/Sounds/ogg/Into the Tunnel.ogg differ
diff --git a/Sounds/Sounds/ogg/Jump Small.ogg b/Sounds/Sounds/ogg/Jump Small.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..93adf10059239e580ae54d472d57e581cd359f59
Binary files /dev/null and b/Sounds/Sounds/ogg/Jump Small.ogg differ
diff --git a/Sounds/Sounds/ogg/Jump Super.ogg b/Sounds/Sounds/ogg/Jump Super.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..476d6e10ff9ea867c4a550ee5c9c72fc36028264
Binary files /dev/null and b/Sounds/Sounds/ogg/Jump Super.ogg differ
diff --git a/Sounds/Sounds/ogg/Kick.ogg b/Sounds/Sounds/ogg/Kick.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..6b22463ecce63396a8841f04609e7c6f30067bc4
Binary files /dev/null and b/Sounds/Sounds/ogg/Kick.ogg differ
diff --git a/Sounds/Sounds/ogg/Level Complete.ogg b/Sounds/Sounds/ogg/Level Complete.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..5b9cc461422bd6db7b095977714c0602469ce25f
Binary files /dev/null and b/Sounds/Sounds/ogg/Level Complete.ogg differ
diff --git a/Sounds/Sounds/ogg/Pause.ogg b/Sounds/Sounds/ogg/Pause.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..66b3d6bc23a98cc754bcad457fa8ec8b54d0fae9
Binary files /dev/null and b/Sounds/Sounds/ogg/Pause.ogg differ
diff --git a/Sounds/Sounds/ogg/Pipe.ogg b/Sounds/Sounds/ogg/Pipe.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..bbbf94692f62c825036d32868df9b4ec7faacc04
Binary files /dev/null and b/Sounds/Sounds/ogg/Pipe.ogg differ
diff --git a/Sounds/Sounds/ogg/Player Dies.ogg b/Sounds/Sounds/ogg/Player Dies.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..20cc5ad16f1e6541b5f23e5dde038c13561c5eac
Binary files /dev/null and b/Sounds/Sounds/ogg/Player Dies.ogg differ
diff --git a/Sounds/Sounds/ogg/Power Down.ogg b/Sounds/Sounds/ogg/Power Down.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..bdaca144b843271675a199ea2bc79cb23c2cbc31
Binary files /dev/null and b/Sounds/Sounds/ogg/Power Down.ogg differ
diff --git a/Sounds/Sounds/ogg/Powerup Appears.ogg b/Sounds/Sounds/ogg/Powerup Appears.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..326502d63ef2023ba4eb0c49956658661e01d5e1
Binary files /dev/null and b/Sounds/Sounds/ogg/Powerup Appears.ogg differ
diff --git a/Sounds/Sounds/ogg/Powerup.ogg b/Sounds/Sounds/ogg/Powerup.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..b6a80aa2b8837587f7700e21198a885fa614ac65
Binary files /dev/null and b/Sounds/Sounds/ogg/Powerup.ogg differ
diff --git a/Sounds/Sounds/ogg/Stage Clear.ogg b/Sounds/Sounds/ogg/Stage Clear.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..f2e4d5d1b5799196ea940a7ce6d99e960ab15c27
Binary files /dev/null and b/Sounds/Sounds/ogg/Stage Clear.ogg differ
diff --git a/Sounds/Sounds/ogg/Vine Emerging.ogg b/Sounds/Sounds/ogg/Vine Emerging.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..c4fd44c52944cd6a761a765feb1127e2367e2cdb
Binary files /dev/null and b/Sounds/Sounds/ogg/Vine Emerging.ogg differ
diff --git a/Sounds/Sounds/ogg/World Clear.ogg b/Sounds/Sounds/ogg/World Clear.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..4d1740711a7575347a99871aaa8374fe07e8d395
Binary files /dev/null and b/Sounds/Sounds/ogg/World Clear.ogg differ
diff --git a/Sounds/Sounds/ogg/You Dead.ogg b/Sounds/Sounds/ogg/You Dead.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..e2bfb06bd52b0c0c9063b7c0feba37cda9e2faff
Binary files /dev/null and b/Sounds/Sounds/ogg/You Dead.ogg differ
diff --git a/Sounds/Themes/mp3/Castle Complete.mp3 b/Sounds/Themes/mp3/Castle Complete.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..7f0ffa05a869e8455f09bfc428ed44c7c8424562
Binary files /dev/null and b/Sounds/Themes/mp3/Castle Complete.mp3 differ
diff --git a/Sounds/Themes/mp3/Castle.mp3 b/Sounds/Themes/mp3/Castle.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..4c70a2f29093080bf9a821fcbb64e2083492fbe4
Binary files /dev/null and b/Sounds/Themes/mp3/Castle.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry Castle.mp3 b/Sounds/Themes/mp3/Hurry Castle.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..3a1ac7c13623fd2cff49fe55457324708db89572
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry Castle.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry Overworld.mp3 b/Sounds/Themes/mp3/Hurry Overworld.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..806d9c924a345465059a3d94057fc2713aeb5a2e
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry Overworld.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry Sky.mp3 b/Sounds/Themes/mp3/Hurry Sky.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ef8d2e63675cc5d788face46aa899610a7e5cb48
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry Sky.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry Star.mp3 b/Sounds/Themes/mp3/Hurry Star.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ef8d2e63675cc5d788face46aa899610a7e5cb48
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry Star.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry Underwater.mp3 b/Sounds/Themes/mp3/Hurry Underwater.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..4d88f519573b53561a948b7c38de06e600ad10a6
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry Underwater.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry Underworld.mp3 b/Sounds/Themes/mp3/Hurry Underworld.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..4998c04ae2bea054d81a06ed5c40b98784fe232a
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry Underworld.mp3 differ
diff --git a/Sounds/Themes/mp3/Hurry.mp3 b/Sounds/Themes/mp3/Hurry.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..293ab451732394acf02cc82b60092f06a56cbac3
Binary files /dev/null and b/Sounds/Themes/mp3/Hurry.mp3 differ
diff --git a/Sounds/Themes/mp3/Overworld.mp3 b/Sounds/Themes/mp3/Overworld.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ac758b7f51df5c1b8459f48a1fa57b14c73ee707
Binary files /dev/null and b/Sounds/Themes/mp3/Overworld.mp3 differ
diff --git a/Sounds/Themes/mp3/Sky.mp3 b/Sounds/Themes/mp3/Sky.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b98b694e41310ed1e18ced44564be98f0706095f
Binary files /dev/null and b/Sounds/Themes/mp3/Sky.mp3 differ
diff --git a/Sounds/Themes/mp3/Star.mp3 b/Sounds/Themes/mp3/Star.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b98b694e41310ed1e18ced44564be98f0706095f
Binary files /dev/null and b/Sounds/Themes/mp3/Star.mp3 differ
diff --git a/Sounds/Themes/mp3/Underwater.mp3 b/Sounds/Themes/mp3/Underwater.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..0dbe875654997163318a130345ed67e03633428b
Binary files /dev/null and b/Sounds/Themes/mp3/Underwater.mp3 differ
diff --git a/Sounds/Themes/mp3/Underworld.mp3 b/Sounds/Themes/mp3/Underworld.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..0efa01966680b6f40f27c2bceb96394735057791
Binary files /dev/null and b/Sounds/Themes/mp3/Underworld.mp3 differ
diff --git a/Sounds/Themes/ogg/Castle Complete.ogg b/Sounds/Themes/ogg/Castle Complete.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..6e8b84514361e83eb8b19c8a96447b8c920a3929
Binary files /dev/null and b/Sounds/Themes/ogg/Castle Complete.ogg differ
diff --git a/Sounds/Themes/ogg/Castle.ogg b/Sounds/Themes/ogg/Castle.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..5ad313e76cab1434c7f3efca960d9e11056150c3
Binary files /dev/null and b/Sounds/Themes/ogg/Castle.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry Castle.ogg b/Sounds/Themes/ogg/Hurry Castle.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..6c3ed6d223191f506a64c8a42d0a30addfcc5ec2
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry Castle.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry Overworld.ogg b/Sounds/Themes/ogg/Hurry Overworld.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..13992f925edbe1c55e9d1e7aa77243aa6af01aca
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry Overworld.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry Sky.ogg b/Sounds/Themes/ogg/Hurry Sky.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..c0670871ce08d67853ba188824613c271881f482
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry Sky.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry Star.ogg b/Sounds/Themes/ogg/Hurry Star.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..c0670871ce08d67853ba188824613c271881f482
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry Star.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry Underwater.ogg b/Sounds/Themes/ogg/Hurry Underwater.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..e9cdfaeefd3d7d4309f9c224fd45a29750116293
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry Underwater.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry Underworld.ogg b/Sounds/Themes/ogg/Hurry Underworld.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..12b644e1518d7595381114a24df9332fcea5ba06
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry Underworld.ogg differ
diff --git a/Sounds/Themes/ogg/Hurry.ogg b/Sounds/Themes/ogg/Hurry.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..94f18ce0be52388779c026186164b79a5d91a126
Binary files /dev/null and b/Sounds/Themes/ogg/Hurry.ogg differ
diff --git a/Sounds/Themes/ogg/Overworld.ogg b/Sounds/Themes/ogg/Overworld.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..1dae6a565de207f0ef5c9be254867bb19d3e03da
Binary files /dev/null and b/Sounds/Themes/ogg/Overworld.ogg differ
diff --git a/Sounds/Themes/ogg/Sky.ogg b/Sounds/Themes/ogg/Sky.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..14849ec7fedc8c916142fee9e4f8cfeb941b0041
Binary files /dev/null and b/Sounds/Themes/ogg/Sky.ogg differ
diff --git a/Sounds/Themes/ogg/Star.ogg b/Sounds/Themes/ogg/Star.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..14849ec7fedc8c916142fee9e4f8cfeb941b0041
Binary files /dev/null and b/Sounds/Themes/ogg/Star.ogg differ
diff --git a/Sounds/Themes/ogg/Underwater.ogg b/Sounds/Themes/ogg/Underwater.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..69ac2a420de1ac86c834ed10f35eedbd4fe4c1d8
Binary files /dev/null and b/Sounds/Themes/ogg/Underwater.ogg differ
diff --git a/Sounds/Themes/ogg/Underworld.ogg b/Sounds/Themes/ogg/Underworld.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..d365fb40fbd72393bb738bd4b6ef346b7468cc17
Binary files /dev/null and b/Sounds/Themes/ogg/Underworld.ogg differ
diff --git a/css/pressstart2p-webfont.eot b/css/pressstart2p-webfont.eot
new file mode 100644
index 0000000000000000000000000000000000000000..98aa442bad0a8bf5eccce4a954742f2a95732b34
Binary files /dev/null and b/css/pressstart2p-webfont.eot differ
diff --git a/css/pressstart2p-webfont.svg b/css/pressstart2p-webfont.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b1fb3f5c967611278f6cd13c8f753e605b004597
--- /dev/null
+++ b/css/pressstart2p-webfont.svg
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/pressstart2p-webfont.ttf b/css/pressstart2p-webfont.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..a6f43ac9fd1a7d4c87e40e5b3fff0ef17fdb39e0
Binary files /dev/null and b/css/pressstart2p-webfont.ttf differ
diff --git a/css/pressstart2p-webfont.woff b/css/pressstart2p-webfont.woff
new file mode 100644
index 0000000000000000000000000000000000000000..5b574105860a72cabe03030a1976d6e977f9aab4
Binary files /dev/null and b/css/pressstart2p-webfont.woff differ
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..cd6ea07cad0458a20274a373936c1a665ec53b93
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,137 @@
+@charset "UTF-8";
+html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin:0; padding:0; }
+fieldset, img { border:none; }
+img{display: block;}
+address, caption, cite, code, dfn, th, var { font-style:normal; font-weight:normal; }
+ul, ol { list-style:none; }
+input { padding-top:0; padding-bottom:0; font-family: "SimSun","宋体";}
+input::-moz-focus-inner { border:none; padding:0; }
+select, input { vertical-align:middle; }
+select, input, textarea { font-size:12px; margin:0; }
+input[type="text"], input[type="password"], textarea { outline-style:none; -webkit-appearance:none; }
+textarea { resize:none; }
+table { border-collapse:collapse; }
+body { color:#333; font:12px/22px "SimSun","宋体","Arial Narrow",HELVETICA; background:#fff;/* overflow-y:scroll;*/ }
+.clearfix:after { content:"."; display:block; height:0; visibility:hidden; clear:both; }
+.clearfix { zoom:1; }
+.clearit { clear:both; height:0; font-size:0; overflow:hidden; }
+a { color:#666; text-decoration:none; }
+a:visited { color:#666; }
+a:hover, a:active, a:focus { color:#ff8400; text-decoration:underline; }
+.hide-text{ white-space:nowrap; text-indent:100%; overflow:hidden;}
+
+
+#main{ width:512px; height:480px; margin:40px auto; border:1px solid #333; position:relative; overflow:hidden;}
+#person.base{ width:32px; height:32px; position:absolute;}
+.base.personR{ background:url(../img/allbgs.png) no-repeat 0 0;}
+.base.personL{ background:url(../img/allbgs.png) no-repeat -32px 0;}
+.base.personRM{ background:url(../img/move.gif) no-repeat 0 0;}
+.base.personLM{ background:url(../img/move.gif) no-repeat -32px 0;}
+.base.personRU{ background:url(../img/allbgs.png) no-repeat -64px 0;}
+.base.personLU{ background:url(../img/allbgs.png) no-repeat -96px 0;}
+.base.supportR{ background:url(../img/allbgs.png) no-repeat -128px 0;}
+.base.supportL{ background:url(../img/allbgs.png) no-repeat -160px 0;}
+.base.die{ background:url(../img/allbgs.png) no-repeat 0 -160px;}
+#person.big{ width:32px; height:64px; position:absolute; left:0;}
+.big.personR{ background:url(../img/allbgs.png) no-repeat 0 -32px;}
+.big.personL{ background:url(../img/allbgs.png) no-repeat -32px -32px;}
+.big.personRM{ background:url(../img/move.gif) no-repeat 0 -32px;}
+.big.personLM{ background:url(../img/move.gif) no-repeat -32px -32px;}
+.big.personRU{ background:url(../img/allbgs.png) no-repeat -64px -32px;}
+.big.personLU{ background:url(../img/allbgs.png) no-repeat -96px -32px;}
+.big.supportR{ background:url(../img/allbgs.png) no-repeat -128px -32px;}
+.big.supportL{ background:url(../img/allbgs.png) no-repeat -160px -32px;}
+#person.sendBullet{ width:32px; height:64px; position:absolute;}
+.sendBullet.personR{ background:url(../img/allbgs.png) no-repeat 0 -96px;}
+.sendBullet.personL{ background:url(../img/allbgs.png) no-repeat -32px -96px;}
+.sendBullet.personRM{ background:url(../img/move.gif) no-repeat 0 -96px;}
+.sendBullet.personLM{ background:url(../img/move.gif) no-repeat -32px -96px;}
+.sendBullet.personRU{ background:url(../img/allbgs.png) no-repeat -64px -96px;}
+.sendBullet.personLU{ background:url(../img/allbgs.png) no-repeat -96px -96px;}
+.sendBullet.personRF{ background:url(../img/allbgs.png) no-repeat -128px -96px;}
+.sendBullet.personLF{ background:url(../img/allbgs.png) no-repeat -160px -96px;}
+.sendBullet.supportR{ background:url(../img/allbgs.png) no-repeat -192px -96px;}
+.sendBullet.supportL{ background:url(../img/allbgs.png) no-repeat -224px -96px;}
+#person.cloaking{ background:none;}
+.map{ height:480px; background:url(../img/gk1.jpg) repeat-x left top; position:absolute; left:0; top: 0;}
+.map-list{ float:left; position:relative;}
+.map-list div{ float:left; width:32px; height:32px; background-image:url(../img/allbgs.png); background-repeat:no-repeat;}
+.maptype-bare{ background-position: 32px -256px;}
+.maptype-land{ background-position: 0 -256px;}
+.maptype-stone{ background-position: -32px -256px;}
+.maptype-ask{ background:url(../img/map-ask.gif) no-repeat !important;}
+.maptype-pipeline1{ background-position: 0 -288px;}
+.maptype-pipeline2{ background-position: -32px -288px;}
+.maptype-pipeline3{ background-position: 0 -320px;}
+.maptype-pipeline4{ background-position: -32px -320px;}
+.maptype-rock{ background-position: -64px -320px;}
+.maptype-blockhouse{ background:#000 !important;}
+.maptype-nothing{ background-position: -64px -288px;}
+.maptype-flagTop{background-position: -96px -256px;}
+.maptype-flagpole{background-position: -96px -288px;}
+.maptype-castleRock1{background-position: -128px -256px;}
+.maptype-castleRock2{background-position: -128px -288px;}
+.maptype-castleRock3{background-position: -128px -320px;}
+.maptype-castleRock4{background-position: -160px -256px;}
+.maptype-castleRock5{background-position: -160px -288px;}
+.maptype-castleRock6{background-position: -160px -320px;}
+
+.mushroom{ width:32px; height:32px; background:url(../img/mushroom.gif) no-repeat; position:absolute;}
+.mushroom.die{ background:url(../img/allbgs.png) no-repeat -32px -160px;}
+.mushroom.reverse{ background:url(../img/mushroomR.gif) no-repeat;}
+
+.data_display{ position:absolute; z-index:10; width:100%; font-family:"Press Start"; color:#fafafa; font-size:12px;}
+.data_display ul li{ float:left; width:20%; text-align:center; padding:10px 0;}
+
+.score{ font:12px/18px 'Press Start'; color:#fff; position:absolute;}
+.gold{ width:32px; height:32px; background:url(../img/gold.gif) no-repeat; position:absolute;}
+.largenMushroom{ width:32px; height:32px; background:url(../img/allbgs.png) no-repeat 0 -224px; position:absolute;}
+.lifeMushroom{ width:32px; height:32px; background:url(../img/allbgs.png) no-repeat -32px -224px; position:absolute;}
+.macadam{ width:16px; height:16px; background:url(../img/macadam.gif) no-repeat; position:absolute;}
+.flower{ width:32px; height:32px; background:url(../img/flower.gif) no-repeat; position:absolute;}
+.bullet{ width:16px; height:16px; background:url(../img/bullet.gif) no-repeat; position:absolute;}
+.explode{ width:32px; height:32px; background:url(../img/allbgs.png) no-repeat 0 -192px; position:absolute;}
+.flag{ width:32px; height:32px; background:url(../img/allbgs.png) no-repeat -96px -320px; position:absolute;}
+
+#notice{ background:#000; width:100%; height:100%; position:absolute; z-index:9; color:#fff; display:none;}
+#notice .world{ margin-top:150px; color:#fff;text-align:center; font:16px/32px 'Press Start'; }
+#notice .world span{ margin-left:20px;}
+.life{ margin:20px 0; text-align:center; font:16px/32px 'Press Start'; }
+.life span{ display:inline-block; vertical-align:top; margin:0 10px;}
+.life span.s1{ width:32px; height:32px; background:url(../img/allbgs.png) no-repeat 0 0;}
+.life span.s2{ line-height:20px; padding-top:12px;}
+
+#over{ display:none; background:#000; width:100%; height:100%; position:absolute; z-index:12; color:#fff;font:36px/480px 'Press Start'; text-align:center; }
+#text{ display:none; width:350px; margin-top:64px; position:absolute; z-index:10; left:50%; margin-left:-175px; font-family:'Press Start';}
+#text .name { background:url(../img/allbgs.png) no-repeat 0 -352px; width:352px; height:176px;}
+#text .boo{ text-align:right; color:#FFCCCC;}
+#text .explanation{ color:#fff; text-align:center; line-height:32px; font-size:14px;}
+#start{ color:#fff; font-size:12px; text-decoration:none;}
+
+
+@font-face {
+ font-family: 'Press Start';
+ src: url('pressstart2p-webfont.eot');
+ src: url('pressstart2p-webfont.eot?#iefix') format('embedded-opentype'),
+ url('pressstart2p-webfont.woff') format('woff'),
+ url('pressstart2p-webfont.ttf') format('truetype'),
+ url('pressstart2p-webfont.svg#press_start_2pregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+
+}
+
+
+
+
+@font-face {
+ font-family: 'Super Plumber Bros';
+ src: url('super_plumber_brothers-webfont.eot');
+ src: url('super_plumber_brothers-webfont.eot?#iefix') format('embedded-opentype'),
+ url('super_plumber_brothers-webfont.woff') format('woff'),
+ url('super_plumber_brothers-webfont.ttf') format('truetype'),
+ url('super_plumber_brothers-webfont.svg#super_plumber_brothersregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+
+}
diff --git a/css/super_plumber_brothers-webfont.eot b/css/super_plumber_brothers-webfont.eot
new file mode 100644
index 0000000000000000000000000000000000000000..d8bee732d78a496fb1d7a66e583fce3568e3a694
Binary files /dev/null and b/css/super_plumber_brothers-webfont.eot differ
diff --git a/css/super_plumber_brothers-webfont.svg b/css/super_plumber_brothers-webfont.svg
new file mode 100644
index 0000000000000000000000000000000000000000..602915c21402be6d5030cb2f6587764d22c95aa2
--- /dev/null
+++ b/css/super_plumber_brothers-webfont.svg
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/super_plumber_brothers-webfont.ttf b/css/super_plumber_brothers-webfont.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..24b90fc5730a2bc02a85b8fc162d909f2aa691e3
Binary files /dev/null and b/css/super_plumber_brothers-webfont.ttf differ
diff --git a/css/super_plumber_brothers-webfont.woff b/css/super_plumber_brothers-webfont.woff
new file mode 100644
index 0000000000000000000000000000000000000000..486de70540fcfbf597a9ae37d322dd72b77b0cd2
Binary files /dev/null and b/css/super_plumber_brothers-webfont.woff differ
diff --git a/favicon.ico b/favicon.ico
deleted file mode 100644
index 22109e04a9f44bde18ec7b7a4b7410d0246521bc..0000000000000000000000000000000000000000
Binary files a/favicon.ico and /dev/null differ
diff --git a/img/allbgs.png b/img/allbgs.png
new file mode 100644
index 0000000000000000000000000000000000000000..679b117c2a495909ac137f83e7d732d977873a26
Binary files /dev/null and b/img/allbgs.png differ
diff --git a/img/bullet.gif b/img/bullet.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f93a21f4394b74c763136b9a3f6d22adb9bfe00d
Binary files /dev/null and b/img/bullet.gif differ
diff --git a/img/flower.gif b/img/flower.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4f5291ffd7350d1b2c3700d55a5c24e230d6671a
Binary files /dev/null and b/img/flower.gif differ
diff --git a/img/gk1.jpg b/img/gk1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..22fc4a4d25b9dadb67d4824b429c08c7c8367703
Binary files /dev/null and b/img/gk1.jpg differ
diff --git a/img/gold.gif b/img/gold.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5ce68457861eed14d5a4eab5d7f1070042785247
Binary files /dev/null and b/img/gold.gif differ
diff --git a/img/img/basePerson.gif b/img/img/basePerson.gif
new file mode 100644
index 0000000000000000000000000000000000000000..983a0009f0a6d5c6578da83748889db0d1a176c3
Binary files /dev/null and b/img/img/basePerson.gif differ
diff --git a/img/img/basePerson.png b/img/img/basePerson.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b84c781076fda75212642e234a4a70bb3bc3b08
Binary files /dev/null and b/img/img/basePerson.png differ
diff --git a/img/img/basePersonL.gif b/img/img/basePersonL.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5219f21352aa83275cef90b1ebe8c961d040f2fd
Binary files /dev/null and b/img/img/basePersonL.gif differ
diff --git a/img/img/basePersonL.png b/img/img/basePersonL.png
new file mode 100644
index 0000000000000000000000000000000000000000..07216eb9205226b2a5cbfdef24124e62f35ec292
Binary files /dev/null and b/img/img/basePersonL.png differ
diff --git a/img/img/basePersonUp.png b/img/img/basePersonUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d20cba9a70f0fb665e984a8d3c7d0f6edd5c8a4
Binary files /dev/null and b/img/img/basePersonUp.png differ
diff --git a/img/img/basePersonUpL.png b/img/img/basePersonUpL.png
new file mode 100644
index 0000000000000000000000000000000000000000..88e1afeaa22e52d27288e85b83404447ea25ad0e
Binary files /dev/null and b/img/img/basePersonUpL.png differ
diff --git a/img/img/bigPerson.gif b/img/img/bigPerson.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c66f919b6040167f1b7d65504c74ec4e58ff51a7
Binary files /dev/null and b/img/img/bigPerson.gif differ
diff --git a/img/img/bigPerson.png b/img/img/bigPerson.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fa9314efe09eb2157266b4cd787b30ae2fddd6e
Binary files /dev/null and b/img/img/bigPerson.png differ
diff --git a/img/img/bigPersonL.gif b/img/img/bigPersonL.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8cc391a667e7261f4a99202096a95722c0884fb8
Binary files /dev/null and b/img/img/bigPersonL.gif differ
diff --git a/img/img/bigPersonL.png b/img/img/bigPersonL.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba72a378c762c3448ce5c0545a6ce2c8cc2a2221
Binary files /dev/null and b/img/img/bigPersonL.png differ
diff --git a/img/img/bigPersonUp.png b/img/img/bigPersonUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..d156069b458fd7d4852f5874bd0d2a7b6d954632
Binary files /dev/null and b/img/img/bigPersonUp.png differ
diff --git a/img/img/bigPersonUpL.png b/img/img/bigPersonUpL.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9d5a10fe3e5493cd46764738cb2512a55816a3d
Binary files /dev/null and b/img/img/bigPersonUpL.png differ
diff --git a/img/img/bulletPerson.gif b/img/img/bulletPerson.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ee7679ca64bf7c7b0dafb60c555dca59e9d674ec
Binary files /dev/null and b/img/img/bulletPerson.gif differ
diff --git a/img/img/bulletPerson.png b/img/img/bulletPerson.png
new file mode 100644
index 0000000000000000000000000000000000000000..60c06ad453f02186ff2fe4ad1110eb9d3de8b7aa
Binary files /dev/null and b/img/img/bulletPerson.png differ
diff --git a/img/img/bulletPersonF.png b/img/img/bulletPersonF.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe7aac4419ba98d81669c0e71b0bdfdec688f55a
Binary files /dev/null and b/img/img/bulletPersonF.png differ
diff --git a/img/img/bulletPersonFL.png b/img/img/bulletPersonFL.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c989084679b5094dcebe3a66cfd628950ab53c3
Binary files /dev/null and b/img/img/bulletPersonFL.png differ
diff --git a/img/img/bulletPersonL.gif b/img/img/bulletPersonL.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3f0223a7c9d0b93624770fbb6dfaf62d6488ddd6
Binary files /dev/null and b/img/img/bulletPersonL.gif differ
diff --git a/img/img/bulletPersonL.png b/img/img/bulletPersonL.png
new file mode 100644
index 0000000000000000000000000000000000000000..17e31ce912de118e23f75254b23b029c60c38fd9
Binary files /dev/null and b/img/img/bulletPersonL.png differ
diff --git a/img/img/bulletPersonUp.png b/img/img/bulletPersonUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..e93021bb97075c6b0f412b9e09e7a5bca13bd8cf
Binary files /dev/null and b/img/img/bulletPersonUp.png differ
diff --git a/img/img/bulletPersonUpL.png b/img/img/bulletPersonUpL.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6db7ce2ce45510afdd56320eacbb0a73baada56
Binary files /dev/null and b/img/img/bulletPersonUpL.png differ
diff --git a/img/img/diePerson.png b/img/img/diePerson.png
new file mode 100644
index 0000000000000000000000000000000000000000..371cd4fa19a5c19c721078118b637404a4407013
Binary files /dev/null and b/img/img/diePerson.png differ
diff --git a/img/img/explode.png b/img/img/explode.png
new file mode 100644
index 0000000000000000000000000000000000000000..92157a29ab76f599ab2a7164cfa6fe825a555345
Binary files /dev/null and b/img/img/explode.png differ
diff --git a/img/img/largenMushroom.png b/img/img/largenMushroom.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa321d49f4250b0b9d07c6eca8f98b35e3834b34
Binary files /dev/null and b/img/img/largenMushroom.png differ
diff --git a/img/img/map-ask.png b/img/img/map-ask.png
new file mode 100644
index 0000000000000000000000000000000000000000..c88bdf0e06a2921e23d749a3fbe4f6155c4fafc5
Binary files /dev/null and b/img/img/map-ask.png differ
diff --git a/img/img/map-land.png b/img/img/map-land.png
new file mode 100644
index 0000000000000000000000000000000000000000..49c6ac37c92df24453eb20519d99afb5aad2b338
Binary files /dev/null and b/img/img/map-land.png differ
diff --git a/img/img/map-nothing.png b/img/img/map-nothing.png
new file mode 100644
index 0000000000000000000000000000000000000000..90f6500ca3b85604f9b82402427966200c661a89
Binary files /dev/null and b/img/img/map-nothing.png differ
diff --git a/img/img/map-rock.png b/img/img/map-rock.png
new file mode 100644
index 0000000000000000000000000000000000000000..2475694a89d519aa83f41eb3c2cd19753bc37651
Binary files /dev/null and b/img/img/map-rock.png differ
diff --git a/img/img/map-stone.png b/img/img/map-stone.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0e39b5dfc9bb8ae1368c4e6d8ae8e1fd92d2c05
Binary files /dev/null and b/img/img/map-stone.png differ
diff --git a/img/img/mushroom-die.gif b/img/img/mushroom-die.gif
new file mode 100644
index 0000000000000000000000000000000000000000..90998e1c49ef5a5d930ea223ef1bd6a0740f02a0
Binary files /dev/null and b/img/img/mushroom-die.gif differ
diff --git a/img/img/pipelineL.png b/img/img/pipelineL.png
new file mode 100644
index 0000000000000000000000000000000000000000..609bf4be86587025a2f4ba7fca7ffec18cb63ed3
Binary files /dev/null and b/img/img/pipelineL.png differ
diff --git a/img/img/pipelineR.png b/img/img/pipelineR.png
new file mode 100644
index 0000000000000000000000000000000000000000..35a3a92126815b5b590d802fc79b6a921355661e
Binary files /dev/null and b/img/img/pipelineR.png differ
diff --git a/img/img/pipelineTopL.png b/img/img/pipelineTopL.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c06a0777cb5476ae38bb581a09546abb81a89d8
Binary files /dev/null and b/img/img/pipelineTopL.png differ
diff --git a/img/img/pipelineTopR.png b/img/img/pipelineTopR.png
new file mode 100644
index 0000000000000000000000000000000000000000..74d481403904e86189948acdd66e7d803fd44c1f
Binary files /dev/null and b/img/img/pipelineTopR.png differ
diff --git a/img/macadam.gif b/img/macadam.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d8021c02bb12009a7badae8f96d123ecbe2c492c
Binary files /dev/null and b/img/macadam.gif differ
diff --git a/img/map-ask.gif b/img/map-ask.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2d8d8cb9a48ff84ac325aec7266a8a83b84bbf3a
Binary files /dev/null and b/img/map-ask.gif differ
diff --git a/img/move.gif b/img/move.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b9ffb66bc05fac711ff1bdca8229edb28678e6fc
Binary files /dev/null and b/img/move.gif differ
diff --git a/img/mushroom.gif b/img/mushroom.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c462a7c8463209e12ee6ca5eeca877964208856b
Binary files /dev/null and b/img/mushroom.gif differ
diff --git a/img/mushroomR.gif b/img/mushroomR.gif
new file mode 100644
index 0000000000000000000000000000000000000000..082eb3812490627672a486a7c15810bdaf083915
Binary files /dev/null and b/img/mushroomR.gif differ
diff --git a/index.html b/index.html
index 0da0ee0e1b142d886c9752fe9477058d3b4b5e83..750180be936bb9e87433d927b92e1e917feeaaec 100644
--- a/index.html
+++ b/index.html
@@ -1,99 +1,34 @@
-
+
-
- 2048
-
-
-
-
-
-
-
-
-
-
-
-
+
+超级玛丽
+
+
+
+
-
-
-
-
-
-
Join the numbers and get to the 2048 tile!
-
New Game
-
-
-
-
-
- How to play: Use your arrow keys to move the tiles. When two tiles with the same number touch, they merge into one!
-
-
-
- Note: This site is the official version of 2048. You can play it on your phone via http://git.io/2048. All other apps or sites are derivatives or fakes, and should be used with caution.
-
-
-
- Created by Gabriele Cirulli. Based on 1024 by Veewo Studio and conceptually similar to Threes by Asher Vollmer.
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
©1985 NINTENDO
+
Left: A Right: D Jump: K Fire: J START GAME:H
+
+
+
GAME OVER
+
+
+
+
+
diff --git a/js/animframe_polyfill.js b/js/animframe_polyfill.js
deleted file mode 100644
index c524a994a92103b6b5dc51af82ca8041884b6eea..0000000000000000000000000000000000000000
--- a/js/animframe_polyfill.js
+++ /dev/null
@@ -1,28 +0,0 @@
-(function () {
- var lastTime = 0;
- var vendors = ['webkit', 'moz'];
- for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
- window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
- window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] ||
- window[vendors[x] + 'CancelRequestAnimationFrame'];
- }
-
- if (!window.requestAnimationFrame) {
- window.requestAnimationFrame = function (callback) {
- var currTime = new Date().getTime();
- var timeToCall = Math.max(0, 16 - (currTime - lastTime));
- var id = window.setTimeout(function () {
- callback(currTime + timeToCall);
- },
- timeToCall);
- lastTime = currTime + timeToCall;
- return id;
- };
- }
-
- if (!window.cancelAnimationFrame) {
- window.cancelAnimationFrame = function (id) {
- clearTimeout(id);
- };
- }
-}());
diff --git a/js/application.js b/js/application.js
deleted file mode 100644
index 2c1108e757a0e49af7b9ee48dcc45bd8e61cb806..0000000000000000000000000000000000000000
--- a/js/application.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Wait till the browser is ready to render the game (avoids glitches)
-window.requestAnimationFrame(function () {
- new GameManager(4, KeyboardInputManager, HTMLActuator, LocalStorageManager);
-});
diff --git a/js/base.js b/js/base.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3dc3ac956028c2a100866899a5802a7e31b2dbc
--- /dev/null
+++ b/js/base.js
@@ -0,0 +1,412 @@
+/**
+*根据id获取元素对象
+*/
+function $(id){
+ return document.getElementById(id);
+}
+/**
+*可视区高度
+*/
+function clientH(){
+ return document.documentElement.clientHeight;
+}
+/**
+*可视区宽度
+*/
+function clientW(){
+ return document.documentElement.clientWidth;
+}
+/**
+*纵向滚动条距离
+*/
+function scrollH(){
+ return document.documentElement.scrollTop || document.body.scrollTop;
+}
+/**
+*横向滚动条距离
+*/
+function scrollW(){
+ return document.documentElement.scrollLeft || document.body.scrollLeft;
+}
+/**
+*
+*相对位置Top
+*
+*/
+function posTop(obj){
+ var iTop = 0;
+ while(obj){
+ iTop += obj.offsetTop;
+ obj = obj.offsetParent;
+ };
+ return iTop;
+}
+/**
+*
+*相对位置Left
+*
+*/
+function posLeft(obj){
+ var iLeft = 0;
+ while(obj){
+ iLeft += obj.offsetLeft;
+ obj = obj.offsetParent;
+ };
+ return iLeft;
+}
+
+/**
+*
+*获取样式
+*
+*/
+function getStyle(obj,attr){
+ if(obj.currentStyle){
+ return obj.currentStyle[attr];
+ }
+ return getComputedStyle(obj,false)[attr];
+}
+/**
+* 提取oParent下class为strClass的obj元素
+*/
+function getByClass(oParent,sClass,sTag){
+ var reg = null;
+ var str = '';
+ if(typeof arguments[1] == 'string'){
+ reg = new RegExp('(^|\\s)' + sClass + '(\\s|$)');
+ }else if(typeof arguments[1] == 'object'){
+ for(var i = 0; i < sClass.length; i++){
+ if(i != sClass.length - 1){
+ str += sClass[i] + '|';
+ }else{
+ str += sClass[i];
+ }
+ }
+ reg = new RegExp('(^|\\s)(' + str + ')(\\s|$)');
+ }
+
+ var rtnElem = [];
+ var arr = [];
+ if(!sTag){
+ arr = oParent.getElementsByTagName('*');
+ }else{
+ arr = oParent.getElementsByTagName(sTag);
+ }
+ for(var i = 0,len = arr.length; i < len; i++){
+ if(reg.test(arr[i].className)){
+ rtnElem.push(arr[i]);
+ }
+ }
+ return rtnElem
+}
+
+/**
+* 运动到特定位置,速度版
+*/
+function startMove(obj,json,fn){
+ clearInterval(obj.time);
+ obj.time = setInterval(function(){
+ var bStop = true;
+ var iCur = 0;
+ var iSpeed = 0;
+ for(var attr in json){
+ if(attr == 'opacity'){
+ if(Math.round(Math.parseFloat(getStyle(obj,attr) * 100)) == 0){
+ iCur = Math.round(Math.parseFloat(getStyle(obj,attr) * 100));
+ }else{
+ iCur = Math.round(Math.parseFloat(getStyle(obj,attr) * 100)) || 100;
+ }
+ }else{
+ iCur = parseInt(getStyle(obj,attr)) || 0;
+ }
+ if(iCur != json[attr]){
+ bStop = false;
+ }
+ iSpeed = (json[attr] - iCur) / 8;
+ iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
+ if(attr == 'opacity'){
+ obj.style.filter = 'alpha(opacity=' + (iCur + iSpeed) + ')';
+ obj.style.opacity = (iCur + iSpeed) / 100;
+ }else{
+ obj.style[attr] = (iCur + iSpeed) + 'px';
+ }
+ }
+ if(bStop){
+ clearInterval(obj.time);
+ fn && fn();
+ }
+ },32);
+}
+
+var Tween = {
+ linear: function (t, b, c, d){ //匀速
+ return c*t/d + b;
+ },
+ easeIn: function(t, b, c, d){ //慢到快
+ return c*(t/=d)*t + b;
+ },
+ easeOut: function(t, b, c, d){ //快到慢
+ return -c *(t/=d)*(t-2) + b;
+ },
+ easeBoth: function(t, b, c, d){ //慢快慢
+ if ((t/=d/2) < 1) {
+ return c/2*t*t + b;
+ }
+ return -c/2 * ((--t)*(t-2) - 1) + b;
+ },
+ easeInStrong: function(t, b, c, d){
+ return c*(t/=d)*t*t*t + b;
+ },
+ easeOutStrong: function(t, b, c, d){
+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
+ },
+ easeBothStrong: function(t, b, c, d){
+ if ((t/=d/2) < 1) {
+ return c/2*t*t*t*t + b;
+ }
+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
+ },
+ elasticIn: function(t, b, c, d, a, p){
+ if (t === 0) {
+ return b;
+ }
+ if ( (t /= d) == 1 ) {
+ return b+c;
+ }
+ if (!p) {
+ p=d*0.3;
+ }
+ if (!a || a < Math.abs(c)) {
+ a = c;
+ var s = p/4;
+ } else {
+ var s = p/(2*Math.PI) * Math.asin (c/a);
+ }
+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+ },
+ elasticOut: function(t, b, c, d, a, p){
+ if (t === 0) {
+ return b;
+ }
+ if ( (t /= d) == 1 ) {
+ return b+c;
+ }
+ if (!p) {
+ p=d*0.3;
+ }
+ if (!a || a < Math.abs(c)) {
+ a = c;
+ var s = p / 4;
+ } else {
+ var s = p/(2*Math.PI) * Math.asin (c/a);
+ }
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+ },
+ elasticBoth: function(t, b, c, d, a, p){
+ if (t === 0) {
+ return b;
+ }
+ if ( (t /= d/2) == 2 ) {
+ return b+c;
+ }
+ if (!p) {
+ p = d*(0.3*1.5);
+ }
+ if ( !a || a < Math.abs(c) ) {
+ a = c;
+ var s = p/4;
+ }
+ else {
+ var s = p/(2*Math.PI) * Math.asin (c/a);
+ }
+ if (t < 1) {
+ return - 0.5*(a*Math.pow(2,10*(t-=1)) *
+ Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+ }
+ return a*Math.pow(2,-10*(t-=1)) *
+ Math.sin( (t*d-s)*(2*Math.PI)/p )*0.5 + c + b;
+ },
+ backIn: function(t, b, c, d, s){
+ if (typeof s == 'undefined') {
+ s = 1.70158;
+ }
+ return c*(t/=d)*t*((s+1)*t - s) + b;
+ },
+ backOut: function(t, b, c, d, s){
+ if (typeof s == 'undefined') {
+ s = 3.70158; //回缩的距离
+ }
+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
+ },
+ backBoth: function(t, b, c, d, s){
+ if (typeof s == 'undefined') {
+ s = 1.70158;
+ }
+ if ((t /= d/2 ) < 1) {
+ return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
+ }
+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
+ },
+ bounceIn: function(t, b, c, d){
+ return c - Tween['bounceOut'](d-t, 0, c, d) + b;
+ },
+ bounceOut: function(t, b, c, d){
+ if ((t/=d) < (1/2.75)) {
+ return c*(7.5625*t*t) + b;
+ } else if (t < (2/2.75)) {
+ return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b;
+ }
+ return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;
+ },
+ bounceBoth: function(t, b, c, d){
+ if (t < d/2) {
+ return Tween['bounceIn'](t*2, 0, c, d) * 0.5 + b;
+ }
+ return Tween['bounceOut'](t*2-d, 0, c, d) * 0.5 + c*0.5 + b;
+ }
+ }
+/**
+* 同时间运动
+*/
+function startMoveTime(obj,json,times,fx,fn){
+
+ var iCur = {};
+
+ if( typeof times == 'undefined' ){
+ times = 400;
+ fx = 'linear';
+ }
+
+ if( typeof times == 'string' ){
+ if(typeof fx == 'function'){
+ fn = fx;
+ }
+ fx = times;
+ times = 400;
+ }
+ else if(typeof times == 'function'){
+ fn = times;
+ times = 400;
+ fx = 'linear';
+ }
+ else if(typeof times == 'number'){
+ if(typeof fx == 'function'){
+ fn = fx;
+ fx = 'linear';
+ }
+ else if(typeof fx == 'undefined'){
+ fx = 'linear';
+ }
+ }
+
+ var startTime = nowTime();
+
+ for(var attr in json){
+ iCur[attr] = 0;
+
+ if(attr == 'opacity'){
+ iCur[attr] = Math.round(getStyle(obj,attr)*100);
+ }
+ else{
+ iCur[attr] = parseInt(getStyle(obj,attr));
+ }
+
+ }
+
+ clearInterval(obj.timer);
+ obj.timer = setInterval(function(){
+
+ var changeTime = nowTime();
+
+ var scale = 1 - Math.max(0,startTime + times - changeTime)/times;
+ // scale : 2000 - 0 : 1 - 0 : 0 - 1
+
+ for(var attr in json){
+
+ var value = Tween[fx](scale*times,iCur[attr],json[attr] - iCur[attr],times);
+
+ if(attr == 'opacity'){
+ obj.style.filter = 'alpha(opacity='+ value +')';
+ obj.style.opacity = value/100;
+ }
+ else{
+ obj.style[attr] = value + 'px';
+ }
+
+ }
+
+ if(scale == 1){
+ clearInterval(obj.timer);
+ if(fn){
+ fn();
+ }
+ }
+
+
+ },13);
+
+ function nowTime(){
+ return (new Date()).getTime();
+ }
+
+}
+/**
+* 给元素添加class;
+*/
+function addClass(obj,sClass){
+
+ var aClass = obj.className.split(' ');
+
+ if(!obj.className){
+ obj.className = sClass;
+ return;
+ }
+
+ for(var i=0; i= 0 && position.x < this.size &&
- position.y >= 0 && position.y < this.size;
-};
-
-Grid.prototype.serialize = function () {
- var cellState = [];
-
- for (var x = 0; x < this.size; x++) {
- var row = cellState[x] = [];
-
- for (var y = 0; y < this.size; y++) {
- row.push(this.cells[x][y] ? this.cells[x][y].serialize() : null);
- }
- }
-
- return {
- size: this.size,
- cells: cellState
- };
-};
diff --git a/js/html_actuator.js b/js/html_actuator.js
deleted file mode 100644
index 6b31f2d10785a7149e1b2aa3123b06adc1d166c7..0000000000000000000000000000000000000000
--- a/js/html_actuator.js
+++ /dev/null
@@ -1,139 +0,0 @@
-function HTMLActuator() {
- this.tileContainer = document.querySelector(".tile-container");
- this.scoreContainer = document.querySelector(".score-container");
- this.bestContainer = document.querySelector(".best-container");
- this.messageContainer = document.querySelector(".game-message");
-
- this.score = 0;
-}
-
-HTMLActuator.prototype.actuate = function (grid, metadata) {
- var self = this;
-
- window.requestAnimationFrame(function () {
- self.clearContainer(self.tileContainer);
-
- grid.cells.forEach(function (column) {
- column.forEach(function (cell) {
- if (cell) {
- self.addTile(cell);
- }
- });
- });
-
- self.updateScore(metadata.score);
- self.updateBestScore(metadata.bestScore);
-
- if (metadata.terminated) {
- if (metadata.over) {
- self.message(false); // You lose
- } else if (metadata.won) {
- self.message(true); // You win!
- }
- }
-
- });
-};
-
-// Continues the game (both restart and keep playing)
-HTMLActuator.prototype.continueGame = function () {
- this.clearMessage();
-};
-
-HTMLActuator.prototype.clearContainer = function (container) {
- while (container.firstChild) {
- container.removeChild(container.firstChild);
- }
-};
-
-HTMLActuator.prototype.addTile = function (tile) {
- var self = this;
-
- var wrapper = document.createElement("div");
- var inner = document.createElement("div");
- var position = tile.previousPosition || { x: tile.x, y: tile.y };
- var positionClass = this.positionClass(position);
-
- // We can't use classlist because it somehow glitches when replacing classes
- var classes = ["tile", "tile-" + tile.value, positionClass];
-
- if (tile.value > 2048) classes.push("tile-super");
-
- this.applyClasses(wrapper, classes);
-
- inner.classList.add("tile-inner");
- inner.textContent = tile.value;
-
- if (tile.previousPosition) {
- // Make sure that the tile gets rendered in the previous position first
- window.requestAnimationFrame(function () {
- classes[2] = self.positionClass({ x: tile.x, y: tile.y });
- self.applyClasses(wrapper, classes); // Update the position
- });
- } else if (tile.mergedFrom) {
- classes.push("tile-merged");
- this.applyClasses(wrapper, classes);
-
- // Render the tiles that merged
- tile.mergedFrom.forEach(function (merged) {
- self.addTile(merged);
- });
- } else {
- classes.push("tile-new");
- this.applyClasses(wrapper, classes);
- }
-
- // Add the inner part of the tile to the wrapper
- wrapper.appendChild(inner);
-
- // Put the tile on the board
- this.tileContainer.appendChild(wrapper);
-};
-
-HTMLActuator.prototype.applyClasses = function (element, classes) {
- element.setAttribute("class", classes.join(" "));
-};
-
-HTMLActuator.prototype.normalizePosition = function (position) {
- return { x: position.x + 1, y: position.y + 1 };
-};
-
-HTMLActuator.prototype.positionClass = function (position) {
- position = this.normalizePosition(position);
- return "tile-position-" + position.x + "-" + position.y;
-};
-
-HTMLActuator.prototype.updateScore = function (score) {
- this.clearContainer(this.scoreContainer);
-
- var difference = score - this.score;
- this.score = score;
-
- this.scoreContainer.textContent = this.score;
-
- if (difference > 0) {
- var addition = document.createElement("div");
- addition.classList.add("score-addition");
- addition.textContent = "+" + difference;
-
- this.scoreContainer.appendChild(addition);
- }
-};
-
-HTMLActuator.prototype.updateBestScore = function (bestScore) {
- this.bestContainer.textContent = bestScore;
-};
-
-HTMLActuator.prototype.message = function (won) {
- var type = won ? "game-won" : "game-over";
- var message = won ? "You win!" : "Game over!";
-
- this.messageContainer.classList.add(type);
- this.messageContainer.getElementsByTagName("p")[0].textContent = message;
-};
-
-HTMLActuator.prototype.clearMessage = function () {
- // IE only takes one value to remove at a time.
- this.messageContainer.classList.remove("game-won");
- this.messageContainer.classList.remove("game-over");
-};
diff --git a/js/js.js b/js/js.js
new file mode 100644
index 0000000000000000000000000000000000000000..923aa8669b0b7aa5edadf2d314a9d5ad8bb50aea
--- /dev/null
+++ b/js/js.js
@@ -0,0 +1,1601 @@
+var Game = {
+
+ data : ['SCORE','COINS','WORLD','TIME','LIVES'],
+
+ imgs : ['img/gk1.jpg','img/allbgs.png','img/move.gif','img/bullet.gif','img/flower.gif','img/gold.gif','img/macadam.gif','img/map-ask.gif','img/mushroom.gif','img/mushroomR.gif'],
+
+ gk : { //关卡的数据
+
+ units : 32, //宽高
+
+ type : { //地图样式
+
+ 0 : 'maptype-bare',
+ 1 : 'maptype-land',
+ 2 : 'maptype-stone',
+ 3 : 'maptype-ask',
+ 4 : 'maptype-pipeline1',
+ 5 : 'maptype-pipeline2',
+ 6 : 'maptype-pipeline3',
+ 7 : 'maptype-pipeline4',
+ 8 : 'maptype-rock',
+ 9 : 'maptype-nothing',
+ 10: 'maptype-blockhouse',
+ 11: 'maptype-flagTop',
+ 12: 'maptype-flagpole',
+ 13: 'maptype-castleRock1',
+ 14: 'maptype-castleRock2',
+ 15: 'maptype-castleRock3',
+ 16: 'maptype-castleRock4',
+ 17: 'maptype-castleRock5',
+ 18: 'maptype-castleRock6'
+
+ },
+ flag : {
+ style : 'flag',
+ score : 2000
+ },
+ annexs : [
+ {},
+ {
+ style : 'gold',
+ score : 200
+ },
+ {
+ style : 'largenMushroom',
+ score : 1000,
+ effect : 'bigStyle',
+ iSpeedX : 4,
+ iSpeedY : 8
+ },
+ {
+ style : 'flower',
+ score : 1000,
+ effect : 'sendBulletStyle'
+ },
+ {
+ style : 'lifeMushroom',
+ text : '1UP',
+ effect : 'life',
+ iSpeedX : 4,
+ iSpeedY : 8
+ },
+ ],
+
+ level_1 : { //第一关
+ style : 'map-list',
+ personX : 80,
+ personY : 384,
+ obstacles : [
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','3-1','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['3-1','0','0','0','2','3-2','2','3-1','2','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','4','5','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','6','7','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','4','5'],
+ ['0','0','0','0','0','0','4','5','0','0','0','0','0','0','6','7'],
+ ['0','0','0','0','0','0','6','7','0','0','0','0','0','0','6','7'],
+ ['0','0','0','0','0','0','6','7','0','0','0','0','0','0','6','7'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','4','5','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','6','7','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','6','7','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','6','7','0','0','0','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0-4','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','2','3-2','2'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['1','1','1','1','1','0','0','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','0','0','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+
+ ['2','2','2','2','2','2','2','2','0','0','0','2','2','2','3-1','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','2-1','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['1','1','1','1','1','1','0','0','0','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','0','0','0','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','3-2','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','2','2','0','0','0','0','3-1','0','0','3-1','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','2','2','2','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['3-1','0','0','0','0','0','2','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['2','3-1','3-1','2','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','2','2','0','0','0','0','0','0','8','0','0','8','0','0','0'],
+ ['0','0','0','0','0','0','0','0','8','8','0','0','8','8','0','0'],
+ ['0','0','0','0','0','0','0','8','8','8','0','0','8','8','8','0'],
+ ['0','0','0','0','0','0','8','8','8','8','0','0','8','8','8','8'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','8','8','0','0','8','0','0','0','0'],
+ ['0','0','0','0','0','0','8','8','8','0','0','8','8','0','0','0'],
+ ['0','0','0','0','0','8','8','8','8','0','0','8','8','8','0','0'],
+ ['0','0','0','0','8','8','8','8','8','0','0','8','8','8','8','0'],
+ ['1','1','1','1','1','1','1','1','1','0','0','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','0','0','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','2','2','3-1','2','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','4','5','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','6','7','0','0','0','0','0','0','0','0','0','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','8','8','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','8','8','8','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','8','8','8','8','0','0'],
+ ['0','0','0','0','0','0','0','0','0','8','8','8','8','8','0','0'],
+ ['0','0','0','0','0','0','0','0','8','8','8','8','8','8','0','0'],
+ ['0','0','0','0','0','0','0','8','8','8','8','8','8','8','0','0'],
+ ['0','0','0','4','5','0','8','8','8','8','8','8','8','8','0','0'],
+ ['0','0','0','6','7','8','8','8','8','8','8','8','8','8','0','0'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ],
+ [
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','11','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','0','0','0','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','13','13','13','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','0','14','18','17','0'],
+ ['0','0','0','0','0','0','0','12','0','0','0','13','15','15','15','13'],
+ ['0','0','0','0','0','0','0','12','0','0','0','18','18','16','18','18'],
+ ['0','0','0','0','0','0','0','8','0','0','0','18','18','10','18','18'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
+ ['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
+ ]
+ ],
+ enemyPosition : [
+ {
+ X : 640,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 1376,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 1664,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 1700,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 2560,
+ Y : 128,
+ type : 'mushroom'
+ },
+ {
+ X : 2608,
+ Y : 128,
+ type : 'mushroom'
+ },
+ {
+ X : 3040,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 3088,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 3616,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 3664,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 3936,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 3984,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 4064,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 4112,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 5504,
+ Y : 384,
+ type : 'mushroom'
+ },
+ {
+ X : 5552,
+ Y : 384,
+ type : 'mushroom'
+ }
+
+ ]
+ },
+ times : 400
+ },
+ start : 72,
+ mario : { //马里奥数据
+ id : 'person',
+ style : 'base',
+ bigStyle : 'big',
+ sendBulletStyle : 'sendBullet',
+ leftStyle : 'personL',
+ rightStyle : 'personR',
+ leftMoveStyle : 'personLM',
+ rightMoveStyle : 'personRM',
+ leftJumpStyle : 'personLU',
+ rightJumpStyle : 'personRU',
+ leftFStyle : 'personLF',
+ rightFStyle : 'personRF',
+ supportLStyle : 'supportL',
+ supportRStyle : 'supportR',
+ dieStyle : 'die',
+ life : 3,
+ marioSpeedX : 6,
+ marioSpeedY : 8,
+ jumpHigh : 128,
+ acceleratedSpeedX : .2,
+ bind : {
+ left : 65,
+ right : 68,
+ jump : 75,
+ sendBullet : 74
+ },
+ bullet : {
+ style : 'bullet',
+ speed : 8,
+ explode : 'explode'
+ }
+ },
+
+ enemy : { //敌人数据
+
+ mushroom : {
+ style : 'mushroom',
+ reStyle : 'reverse',
+ iSpeedX : -2,
+ iSpeedY : 8,
+ score : 100
+ }
+
+ },
+ loading : function(){
+ var iNow = 0;
+ var This = this;
+ for(var i=0; i 0){
+ playerRect.iSpeedX -= this.mario.acceleratedSpeedX;
+ if(playerRect.iSpeedX<0) playerRect.iSpeedX = 0;
+ }else if(playerRect.iSpeedX < 0){
+ playerRect.iSpeedX += this.mario.acceleratedSpeedX;
+ if(playerRect.iSpeedX>0) playerRect.iSpeedX = 0;
+ }
+ }
+ if(playerRect.iSpeedX > this.mario.marioSpeedX || playerRect.iSpeedX < -this.mario.marioSpeedX){
+ playerRect.iSpeedX = playerRect.iSpeedX > 0 ? this.mario.marioSpeedX : -this.mario.marioSpeedX;
+ }
+ // 跳跃 速度
+ if(this.key[player.jump]){
+ if(!playerRect.isJump){
+ playerRect.isJump = true;
+ playerRect.iSpeedY = -this.mario.marioSpeedY;
+ };
+ }else{
+ playerRect.iSpeedY = this.mario.marioSpeedY;
+ }
+ if(playerRect.trampleEnemy){
+ playerRect.iSpeedY = - this.mario.marioSpeedY;
+ }
+ // 马里奥 左右移动 样式
+ if(playerRect.iSpeedX < 0){
+ removeClass(playerRect,this.mario.rightMoveStyle);
+ addClass(playerRect,this.mario.leftMoveStyle);
+ }else if(playerRect.iSpeedX > 0){
+ removeClass(playerRect,this.mario.leftMoveStyle);
+ addClass(playerRect,this.mario.rightMoveStyle);
+ }else{
+ removeClass(playerRect,this.mario.leftMoveStyle);
+ removeClass(playerRect,this.mario.rightMoveStyle);
+ }
+ // 马里奥 跳跃 样式
+ removeClass(playerRect,this.mario.leftJumpStyle);
+ removeClass(playerRect,this.mario.rightJumpStyle);
+ if(playerRect.offsetTop != playerRect.iT){
+ if(playerRect.direction<0){
+ addClass(playerRect,this.mario.leftJumpStyle);
+ }else{
+ addClass(playerRect,this.mario.rightJumpStyle);
+ }
+ playerRect.isJump = true;
+ }
+ if(playerRect.isJump){
+ if(playerRect.iSpeedX>0){
+ addClass(playerRect,this.mario.rightJumpStyle);
+ }else if(playerRect.iSpeedX<0){
+ addClass(playerRect,this.mario.leftJumpStyle);
+ }
+ }
+ L = playerRect.offsetLeft + playerRect.iSpeedX;
+ T = playerRect.offsetTop + playerRect.iSpeedY;
+ var n = parseInt(L/512);
+ for(var i=n-2<0?0:n-2,l=n+2>this.mapType.length?this.mapType.length:n+2; i 0){ // 与物体碰撞
+ switch(this.pzDir(playerRect,spriteRect)){
+ case 'left':
+ if(playerRect.iSpeedX > 0){
+ playerRect.iSpeedX = 0;
+ L = this.getPos(spriteRect,this.gameMap).l - playerRect.offsetWidth;
+ if(spriteRect.type == 12){
+ iWin = true;
+ };
+ }
+ break;
+ case 'right':
+ if(playerRect.iSpeedX < 0){
+ playerRect.iSpeedX = 0;
+ L = this.getPos(spriteRect,this.gameMap).l + spriteRect.offsetWidth;
+ }
+ break;
+ case 'top':
+ if(playerRect.iSpeedY > 0){
+ playerRect.iT = T = this.getPos(spriteRect,this.gameMap).t - playerRect.offsetHeight;
+ playerRect.isJump = false;
+ }
+ break;
+ case 'bottomMid':
+ if(playerRect.iSpeedY < 0){
+
+ playerRect.iSpeedY *= -1;
+ T = this.getPos(spriteRect,this.gameMap).t + spriteRect.offsetHeight;
+ this.topHeadMario(spriteRect,playerRect);
+
+ }
+ break;
+
+ }
+ }else if(spriteRect.type == 0){
+ if(this.pzDir(playerRect,spriteRect) == 'bottomMid' && spriteRect.annexs > 0){
+ if(playerRect.iSpeedY < 0){
+
+ playerRect.iSpeedY *= -1;
+ T = this.getPos(spriteRect,this.gameMap).t + spriteRect.offsetHeight;
+ this.topHeadMario(spriteRect,playerRect);
+
+ }
+ }
+ }
+ }
+ }
+
+
+ if(T>this.gameWrap.clientHeight){
+ this.player.isCloaking = false;
+ this.delMario();
+ }
+ if(T 0){
+ iLeft = 0;
+ }else if(iLeft < (1 - this.lengthBg) * 512){
+ iLeft = (1 - this.lengthBg) * 512;
+ }
+
+ this.gameMap.style.left = iLeft + 'px';
+ this.iBgOldLeft = iLeft;
+
+ },
+
+ waneMario : function(){ // 变小
+ var This = this;
+ if(this.player.isSendBullet){
+ removeClass(this.player,this.mario.sendBulletStyle);
+ this.player.isSendBullet = false;
+ }
+ removeClass(this.player,this.mario.bigStyle);
+ this.player.isBig = false;
+ this.player.isCloaking = true;
+ this.cloaking();
+ setTimeout(function(){
+ This.player.isCloaking = false;
+ },5000)
+ },
+ cloaking : function(){ // 闪
+ var This = this;
+ var timer = setInterval(function(){
+ if(!This.player.isCloaking) clearInterval(timer);
+ addClass(This.player,'cloaking');
+ setTimeout(function(){
+ removeClass(This.player,'cloaking');
+ },100);
+ },200)
+ },
+ pauseFn : function(){ //停止
+ var This = this;
+ this.pause = true;
+ setTimeout(function(){
+ This.pause = false;
+ },1000)
+ },
+
+ changeStyle : function(sClass){ //变身
+ this.pauseFn();
+ var This = this;
+ var T = this.player.offsetTop;
+ var H = this.player.offsetHeight;
+ var timer = setInterval(function(){
+ addClass(This.player,sClass);
+ This.player.style.top = T + H - This.player.offsetHeight + 'px';
+ if(!This.pause) {
+ clearInterval(timer);
+ return;
+ }
+ setTimeout(function(){
+ removeClass(This.player,sClass);
+ This.player.style.top = T + 'px'
+ },100);
+ },200)
+
+ },
+ delMario : function(){ // 马里奥死亡
+
+ if(this.player.isCloaking) return;
+ if(this.player.isBig){
+ if(this.player.isSendBullet){
+ removeClass(this.player,this.mario.sendBulletStyle);
+ }
+ removeClass(this.player,this.mario.bigStyle);
+ }
+ var T = this.player.offsetTop;
+ var This = this;
+ clearInterval(this.player.timer);
+ clearInterval(this.timeTimer);
+ for(var i=0; i 0 ? this.mario.rightFStyle : this.mario.leftFStyle;
+ addClass(this.player,style);
+ setTimeout(function(){
+ removeClass(This.player,style);
+ },100)
+ this.bulletNum ++;
+ var oBullet = document.createElement('div');
+ oBullet.className = this.mario.bullet.style;
+ this.gameMap.appendChild(oBullet);
+ oBullet.style.left = (this.player.direction > 0 ? this.getPos(this.player,this.gameMap).l + this.player.offsetWidth : this.getPos(this.player,this.gameMap).l) - oBullet.offsetWidth + 'px';
+ oBullet.style.top = this.getPos(this.player,this.gameMap).t + (this.player.offsetHeight - oBullet.offsetHeight)/2 + 'px';
+ this.moveBullet(oBullet);
+ },
+
+ moveBullet : function(obj){ // 子弹飞
+ var speedX = this.mario.bullet.speed * this.player.direction * 2;
+ var speedY = this.mario.bullet.speed;
+ var iT = 0;
+ var This = this;
+ clearInterval(obj.timer);
+ obj.timer = setInterval(function(){
+ if(This.pause) return;
+ var T = obj.offsetTop + speedY;
+ var L = obj.offsetLeft + speedX;
+
+ if(L<-This.gameMap.offsetLeft - obj.offsetWidth || L > -This.gameMap.offsetLeft + 512 ){
+
+ This.bulletNum --;
+ clearInterval(obj.timer);
+ This.gameMap.removeChild(obj);
+
+
+ }
+ if(speedY<0 && T < iT - 1.5 * This.gk.units){
+ speedY*=-1;
+ T = iT - 1.5 * This.gk.units;
+ }
+ var n = parseInt(L/512);
+ for(var i=n-2<0?0:n-2,l=n+2>This.mapType.length?This.mapType.length:n+2; i 0){ // 与物体碰撞
+ switch(This.pzDir(obj,spriteRect)){
+ case 'left':
+ This.removeBullet(obj);
+ break;
+ case 'right':
+ This.removeBullet(obj);
+ break;
+ case 'top':
+ if(speedY>0){
+ speedY*=-1;
+ iT = T = This.getPos(spriteRect,This.gameMap).t - obj.offsetHeight;
+ }
+ break;
+ case 'bottom':
+
+ break;
+
+ }
+
+ }
+ }
+
+ }
+ for(var i=0; i 0 ? 1 : -1;
+ This.removeBullet(obj);
+ This.reverseEnemy(This.aEnemy[i],dir)
+
+ }
+
+ }
+
+ obj.style.left = L + 'px';
+ obj.style.top = T + 'px';
+ },30);
+
+ },
+
+ removeBullet : function(obj){ // 移除子弹
+ if(!obj.timer) return;
+ this.bulletNum --;
+ var This = this;
+ clearInterval(obj.timer);
+ obj.timer = null;
+ obj.className = this.mario.bullet.explode;
+ setTimeout(function(){
+ This.gameMap.removeChild(obj);
+ },100)
+ },
+ createAllEnemy : function(){ // 创建敌人容器 循环所有敌人的位置
+ this.enemyParent = document.createElement("div");
+ this.enemyParent.className = 'enemy';
+ for(var i=0; i iH){
+ clearInterval(obj.timer);
+ }
+ obj.style.top = T + 'px';
+ obj.style.left = L + 'px';
+
+ },30)
+
+ },
+
+ createData : function(){
+
+ var oDiv = document.createElement('div');
+ oDiv.className = 'data_display';
+ var oUl = document.createElement('ul');
+ for(var i=0; i0 '
+ oUl.appendChild(oLi);
+
+ }
+ oDiv.appendChild(oUl);
+ this.gameWrap.appendChild(oDiv);
+ this.oDataDisplay = oDiv;
+ this.aData = oDiv.getElementsByTagName('span');
+ this.score = this.aData[0];
+ this.coins = this.aData[1];
+ this.world = this.aData[2];
+ this.time = this.aData[3];
+ this.lives = this.aData[4];
+
+
+
+ },
+
+
+
+ scoreShow : function(obj){ // 所得分数 显示
+
+ var T = obj.offsetTop;
+ var L = obj.offsetLeft + this.gameMap.offsetLeft;
+ var oSpan = document.createElement("span");
+ var This = this;
+ oSpan.className = 'score';
+ oSpan.style.top = T + 'px';
+ oSpan.style.left = L + 'px';
+
+ if( 'score' in obj){
+ oSpan.innerHTML = obj.score;
+ this.score.innerHTML = parseInt(this.score.innerHTML) + obj.score;
+ }else if( 'text' in obj){
+ oSpan.innerHTML = obj.text;
+ }
+
+ this.gameWrap.appendChild(oSpan);
+ startMoveTime(oSpan,{top: T-2 * this.gk.units},function(){
+ This.gameWrap.removeChild(oSpan);
+ });
+
+ },
+
+ objectMove : function(obj){ // 物体移动移动 包括 敌人移动和附属物移动
+ clearInterval(obj.timer)
+ var iSpeedX = obj.iX;
+ var iSpeedY = obj.iY;
+ var This = this;
+ var L,T;
+ obj.timer = setInterval(function(){
+ if(!obj.isMove||This.pause){
+ return;
+ };//进入可视区的时候移动 增加性能
+
+ L = obj.offsetLeft + iSpeedX;
+ T = obj.offsetTop + iSpeedY;
+ if(L + obj.offsetWidth<-This.gameMap.offsetLeft){
+ clearInterval(obj.timer);
+ }
+ var n = parseInt(L/512);
+ for(var i=n-2<0?0:n-2,l=n+2>This.mapType.length?This.mapType.length:n+2; i 0){ // 与物体碰撞
+ switch(This.pzDir(obj,spriteRect)){
+ case 'left':
+ if(iSpeedX > 0){
+ iSpeedX *= -1;
+ }
+ break;
+ case 'right':
+ if(iSpeedX < 0){
+ iSpeedX *= -1;
+ }
+ break;
+ case 'top':
+ if(iSpeedY > 0){
+ T = This.getPos(spriteRect,This.gameMap).t - obj.offsetHeight;
+ }
+ break;
+ case 'bottom':
+
+ break;
+ }
+
+ }
+ }
+ }
+
+ if(obj.isEnemy){
+ if(!obj.die){
+ switch(This.pzDir(This.player,obj)){ // 做为敌人 与马里奥碰撞
+ case 'left':
+ case 'right':
+ case 'bottom':
+ case 'bottomLeft':
+ case 'bottomRight':
+ if(This.player.isBig){
+ This.waneMario();
+ }else{
+ This.delMario();
+ }
+ break;
+ case 'top':
+ This.player.trampleEnemy = true;
+ This.player.iT = obj.offsetTop - This.player.offsetHeight;
+ This.delOneEnemy(obj);
+ break;
+ }
+ }
+ }else{ // 做为附属物 与马里奥碰撞
+ if(This.pz(This.player,obj)){
+ clearInterval(obj.timer);
+ This.scoreShow(obj);
+ This.gameMap.removeChild(obj);
+ if(obj.className == This.gk.annexs[2].style){
+ if(!This.player.isBig){
+ This.changeStyle(This.mario[obj.effect]);
+
+ This.player.isBig = true;
+ }
+ }else if(obj.className == This.gk.annexs[3].style){
+ if(!This.player.isSendBullet){
+ This.changeStyle(This.mario[obj.effect]);
+ if(!This.player.isBig){
+ This.player.isBig = true;
+ }else{
+ This.player.isSendBullet = true;
+ }
+ }
+ }else if(obj.className == This.gk.annexs[4].style){
+ This.lives.innerHTML = ++This.blood;
+ }
+
+ }
+ }
+
+
+ obj.style.left = L + 'px';
+ obj.style.top = T + 'px';
+ },30)
+ },
+
+
+ showPoleScore : function(){ // 碰撞旗杆 展现相应分数
+
+ var T = this.getPos(this.player,this.gameMap).t;
+ var L ;
+ var iNow = this.flagpole.length - 1;
+ var oSpan = document.createElement("span");
+ for(var i=0; i T){
+ iNow = i;
+ break;
+ };
+ };
+ T = this.getPos(this.flagpole[iNow],this.gameMap).t;
+ L = this.getPos(this.flagpole[iNow],this.gameMap).l + this.flagpole[iNow].offsetWidth;
+ oSpan.className = 'score';
+ oSpan.style.top = T + 'px';
+ oSpan.style.left = L + 'px';
+ oSpan.innerHTML = this.flagpole[iNow].score;
+ this.score.innerHTML = parseInt(this.score.innerHTML) + this.flagpole[iNow].score;
+ this.gameMap.appendChild(oSpan);
+ startMoveTime(oSpan,{top: this.flagpole[0].offsetTop});
+
+ },
+
+
+
+ slidePole : function(obj,fn){ //滑竿
+
+ var flagBottom = this.flagpole[this.flagpole.length - 1];
+ var T = this.getPos(flagBottom,this.gameMap).t + flagBottom.offsetHeight - this.player.offsetHeight;
+ if(T < obj.offsetTop ){
+ obj.style.top = T + 'px';
+ }
+ startMoveTime(obj,{top:T},1000,fn);
+
+ },
+
+ moveToHouse : function(){ // 移动到城堡
+
+ var T = this.getPos(this.blockhouse,this.gameMap).t + this.blockhouse.offsetHeight - this.player.offsetHeight;
+ var L = this.getPos(this.blockhouse,this.gameMap).l;
+ var This = this;
+ this.player.style.top = T + 'px';
+ this.player.style.left = this.player.offsetLeft + 0.75 * this.gk.units + 'px';
+ removeClass(this.player,This.mario.supportLStyle);
+ startMoveTime(this.player,{left:L},2000,function(){
+ This.player.style.display = 'none';
+ This.timeToScore();
+ });
+
+ },
+
+ timeToScore : function(){ //剩余时间转换成分数
+ var This = this;
+ var timer = null;
+ clearInterval(timer);
+ timer = setInterval(function(){
+ This.time.innerHTML = parseInt(This.time.innerHTML) - 1;
+ This.score.innerHTML = parseInt(This.score.innerHTML) + 50;
+ if(parseInt(This.time.innerHTML) == 0) clearInterval(timer);
+ },10)
+ },
+
+ pz : function(obj1,obj2){ //碰撞检测
+ var L1 = this.getPos(obj1,this.gameMap).l;
+ var R1 = L1 + obj1.offsetWidth;
+ var T1 = this.getPos(obj1,this.gameMap).t;
+ var B1 = T1 + obj1.offsetHeight;
+
+ var L2 = this.getPos(obj2,this.gameMap).l;
+ var R2 = L2 + obj2.offsetWidth;
+ var T2 = this.getPos(obj2,this.gameMap).t;
+ var B2 = T2 + obj2.offsetHeight;
+
+ if( L1>R2 || R1B2 || B1 Math.abs(T1-T2)){
+
+ if(L1L2){
+ return 'right';
+ }
+
+ }else if(Math.abs(L1-L2) < Math.abs(T1-T2)){
+
+ if(T1 this.getPos(obj2,this.gameMap).l && L1 - obj1.offsetWidth/2 < this.getPos(obj2,this.gameMap).l + obj2.offsetWidth){
+ return 'top';
+ }
+ }else if(T1>T2){
+ if(L1 < this.getPos(obj2,this.gameMap).l){
+ return 'bottomLeft';
+ }else if(L1 > this.getPos(obj2,this.gameMap).l + obj2.offsetWidth){
+ return 'bottomRight';
+ }else{
+ return 'bottomMid';
+
+ }
+
+ }
+ }
+ return false;
+ },
+ getPos : function(obj,anc){
+
+ var aPos = {l: 0, t: 0};
+ while(obj && obj != anc){
+ aPos.l += obj.offsetLeft;
+ aPos.t += obj.offsetTop;
+ obj = obj.offsetParent;
+ }
+ return aPos;
+ },
+ imgLoad : function(url, callback) {
+ var img = new Image();
+ img.src = url;
+ if (img.complete) {
+ callback(img.width, img.height);
+ } else {
+ img.onload = function () {
+ callback(img.width, img.height);
+ img.onload = null;
+ };
+ };
+ }
+}
\ No newline at end of file
diff --git a/js/keyboard_input_manager.js b/js/keyboard_input_manager.js
deleted file mode 100644
index ca01b3ce8995a5a20ac50219712d1ef95297ed99..0000000000000000000000000000000000000000
--- a/js/keyboard_input_manager.js
+++ /dev/null
@@ -1,144 +0,0 @@
-function KeyboardInputManager() {
- this.events = {};
-
- if (window.navigator.msPointerEnabled) {
- //Internet Explorer 10 style
- this.eventTouchstart = "MSPointerDown";
- this.eventTouchmove = "MSPointerMove";
- this.eventTouchend = "MSPointerUp";
- } else {
- this.eventTouchstart = "touchstart";
- this.eventTouchmove = "touchmove";
- this.eventTouchend = "touchend";
- }
-
- this.listen();
-}
-
-KeyboardInputManager.prototype.on = function (event, callback) {
- if (!this.events[event]) {
- this.events[event] = [];
- }
- this.events[event].push(callback);
-};
-
-KeyboardInputManager.prototype.emit = function (event, data) {
- var callbacks = this.events[event];
- if (callbacks) {
- callbacks.forEach(function (callback) {
- callback(data);
- });
- }
-};
-
-KeyboardInputManager.prototype.listen = function () {
- var self = this;
-
- var map = {
- 38: 0, // Up
- 39: 1, // Right
- 40: 2, // Down
- 37: 3, // Left
- 75: 0, // Vim up
- 76: 1, // Vim right
- 74: 2, // Vim down
- 72: 3, // Vim left
- 87: 0, // W
- 68: 1, // D
- 83: 2, // S
- 65: 3 // A
- };
-
- // Respond to direction keys
- document.addEventListener("keydown", function (event) {
- var modifiers = event.altKey || event.ctrlKey || event.metaKey ||
- event.shiftKey;
- var mapped = map[event.which];
-
- if (!modifiers) {
- if (mapped !== undefined) {
- event.preventDefault();
- self.emit("move", mapped);
- }
- }
-
- // R key restarts the game
- if (!modifiers && event.which === 82) {
- self.restart.call(self, event);
- }
- });
-
- // Respond to button presses
- this.bindButtonPress(".retry-button", this.restart);
- this.bindButtonPress(".restart-button", this.restart);
- this.bindButtonPress(".keep-playing-button", this.keepPlaying);
-
- // Respond to swipe events
- var touchStartClientX, touchStartClientY;
- var gameContainer = document.getElementsByClassName("game-container")[0];
-
- gameContainer.addEventListener(this.eventTouchstart, function (event) {
- if ((!window.navigator.msPointerEnabled && event.touches.length > 1) ||
- event.targetTouches.length > 1) {
- return; // Ignore if touching with more than 1 finger
- }
-
- if (window.navigator.msPointerEnabled) {
- touchStartClientX = event.pageX;
- touchStartClientY = event.pageY;
- } else {
- touchStartClientX = event.touches[0].clientX;
- touchStartClientY = event.touches[0].clientY;
- }
-
- event.preventDefault();
- });
-
- gameContainer.addEventListener(this.eventTouchmove, function (event) {
- event.preventDefault();
- });
-
- gameContainer.addEventListener(this.eventTouchend, function (event) {
- if ((!window.navigator.msPointerEnabled && event.touches.length > 0) ||
- event.targetTouches.length > 0) {
- return; // Ignore if still touching with one or more fingers
- }
-
- var touchEndClientX, touchEndClientY;
-
- if (window.navigator.msPointerEnabled) {
- touchEndClientX = event.pageX;
- touchEndClientY = event.pageY;
- } else {
- touchEndClientX = event.changedTouches[0].clientX;
- touchEndClientY = event.changedTouches[0].clientY;
- }
-
- var dx = touchEndClientX - touchStartClientX;
- var absDx = Math.abs(dx);
-
- var dy = touchEndClientY - touchStartClientY;
- var absDy = Math.abs(dy);
-
- if (Math.max(absDx, absDy) > 10) {
- // (right : left) : (down : up)
- self.emit("move", absDx > absDy ? (dx > 0 ? 1 : 3) : (dy > 0 ? 2 : 0));
- }
- });
-};
-
-KeyboardInputManager.prototype.restart = function (event) {
- event.preventDefault();
- this.emit("restart");
-};
-
-KeyboardInputManager.prototype.keepPlaying = function (event) {
- event.preventDefault();
- this.emit("keepPlaying");
-};
-
-KeyboardInputManager.prototype.bindButtonPress = function (selector, fn) {
- var button = document.querySelector(selector);
- button.addEventListener("click", fn.bind(this));
- button.addEventListener(this.eventTouchend, fn.bind(this));
-};
diff --git a/js/local_storage_manager.js b/js/local_storage_manager.js
deleted file mode 100644
index 2ca9cc3006eb0f24c4921725eba34a99a3457dee..0000000000000000000000000000000000000000
--- a/js/local_storage_manager.js
+++ /dev/null
@@ -1,63 +0,0 @@
-window.fakeStorage = {
- _data: {},
-
- setItem: function (id, val) {
- return this._data[id] = String(val);
- },
-
- getItem: function (id) {
- return this._data.hasOwnProperty(id) ? this._data[id] : undefined;
- },
-
- removeItem: function (id) {
- return delete this._data[id];
- },
-
- clear: function () {
- return this._data = {};
- }
-};
-
-function LocalStorageManager() {
- this.bestScoreKey = "bestScore";
- this.gameStateKey = "gameState";
-
- var supported = this.localStorageSupported();
- this.storage = supported ? window.localStorage : window.fakeStorage;
-}
-
-LocalStorageManager.prototype.localStorageSupported = function () {
- var testKey = "test";
-
- try {
- var storage = window.localStorage;
- storage.setItem(testKey, "1");
- storage.removeItem(testKey);
- return true;
- } catch (error) {
- return false;
- }
-};
-
-// Best score getters/setters
-LocalStorageManager.prototype.getBestScore = function () {
- return this.storage.getItem(this.bestScoreKey) || 0;
-};
-
-LocalStorageManager.prototype.setBestScore = function (score) {
- this.storage.setItem(this.bestScoreKey, score);
-};
-
-// Game state getters/setters and clearing
-LocalStorageManager.prototype.getGameState = function () {
- var stateJSON = this.storage.getItem(this.gameStateKey);
- return stateJSON ? JSON.parse(stateJSON) : null;
-};
-
-LocalStorageManager.prototype.setGameState = function (gameState) {
- this.storage.setItem(this.gameStateKey, JSON.stringify(gameState));
-};
-
-LocalStorageManager.prototype.clearGameState = function () {
- this.storage.removeItem(this.gameStateKey);
-};
diff --git a/js/tile.js b/js/tile.js
deleted file mode 100644
index 92a670a5a60507bae99f333f0d3a9e23706f629f..0000000000000000000000000000000000000000
--- a/js/tile.js
+++ /dev/null
@@ -1,27 +0,0 @@
-function Tile(position, value) {
- this.x = position.x;
- this.y = position.y;
- this.value = value || 2;
-
- this.previousPosition = null;
- this.mergedFrom = null; // Tracks tiles that merged together
-}
-
-Tile.prototype.savePosition = function () {
- this.previousPosition = { x: this.x, y: this.y };
-};
-
-Tile.prototype.updatePosition = function (position) {
- this.x = position.x;
- this.y = position.y;
-};
-
-Tile.prototype.serialize = function () {
- return {
- position: {
- x: this.x,
- y: this.y
- },
- value: this.value
- };
-};
diff --git a/meta/apple-touch-icon.png b/meta/apple-touch-icon.png
deleted file mode 100644
index 3fd20f6092338ef464e440ec84a34c8850fd5d33..0000000000000000000000000000000000000000
Binary files a/meta/apple-touch-icon.png and /dev/null differ
diff --git a/meta/apple-touch-startup-image-640x1096.png b/meta/apple-touch-startup-image-640x1096.png
deleted file mode 100644
index 5a68ba0bcbae90bfe65e5fd936fd391f5f37a1b2..0000000000000000000000000000000000000000
Binary files a/meta/apple-touch-startup-image-640x1096.png and /dev/null differ
diff --git a/meta/apple-touch-startup-image-640x920.png b/meta/apple-touch-startup-image-640x920.png
deleted file mode 100644
index 17bc9d8322bd3787aee5020f61a4844aae7ca11a..0000000000000000000000000000000000000000
Binary files a/meta/apple-touch-startup-image-640x920.png and /dev/null differ
diff --git a/package-lock.json b/package-lock.json
index caaf37b3dfc441199edb697d3dce5de9e7e557ab..c8d54c03221675760b0320f55bb787f43758a0bf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,3765 +1,6 @@
{
- "name": "2048",
- "version": "1.0.0",
+ "name": "Super-Mario",
"lockfileVersion": 2,
"requires": true,
- "packages": {
- "": {
- "name": "2048",
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "live-server": "^1.2.2"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- }
- },
- "node_modules/anymatch/node_modules/normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/apache-crypt": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz",
- "integrity": "sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==",
- "dependencies": {
- "unix-crypt-td-js": "^1.1.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/apache-md5": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz",
- "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/async-each": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
- },
- "node_modules/atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "bin": {
- "atob": "bin/atob.js"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
- "node_modules/base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
- "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
- "dependencies": {
- "safe-buffer": "5.1.2"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
- },
- "node_modules/bcryptjs": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
- "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
- },
- "node_modules/binary-extensions": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
- "dependencies": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- },
- "optionalDependencies": {
- "fsevents": "^1.2.7"
- }
- },
- "node_modules/class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
- "dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
- },
- "node_modules/connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
- "dependencies": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-stream": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
- "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
- "dependencies": {
- "duplexer": "~0.1.1",
- "from": "~0",
- "map-stream": "~0.1.0",
- "pause-stream": "0.0.11",
- "split": "0.3",
- "stream-combiner": "~0.0.4",
- "through": "~2.3.1"
- }
- },
- "node_modules/expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "dependencies": {
- "websocket-driver": ">=0.5.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
- },
- "node_modules/fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
- "dependencies": {
- "map-cache": "^0.2.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/from": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
- "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
- },
- "node_modules/fsevents": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
- "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
- "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "dependencies": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1"
- },
- "engines": {
- "node": ">= 4.0"
- }
- },
- "node_modules/get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- }
- },
- "node_modules/glob-parent/node_modules/is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "node_modules/has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/http-auth": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz",
- "integrity": "sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==",
- "dependencies": {
- "apache-crypt": "^1.1.2",
- "apache-md5": "^1.0.6",
- "bcryptjs": "^2.3.0",
- "uuid": "^3.0.0"
- },
- "engines": {
- "node": ">=4.6.1"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-errors/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
- "dependencies": {
- "binary-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-descriptor/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/live-server": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.2.tgz",
- "integrity": "sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w==",
- "dependencies": {
- "chokidar": "^2.0.4",
- "colors": "1.4.0",
- "connect": "^3.6.6",
- "cors": "latest",
- "event-stream": "3.3.4",
- "faye-websocket": "0.11.x",
- "http-auth": "3.1.x",
- "morgan": "^1.9.1",
- "object-assign": "latest",
- "opn": "latest",
- "proxy-middleware": "latest",
- "send": "latest",
- "serve-index": "^1.9.1"
- },
- "bin": {
- "live-server": "live-server.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-stream": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
- "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g=="
- },
- "node_modules/map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
- "dependencies": {
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mixin-deep/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/morgan": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
- "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
- "dependencies": {
- "basic-auth": "~2.0.1",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-finished": "~2.3.0",
- "on-headers": "~1.0.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/nan": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
- "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
- "optional": true
- },
- "node_modules/nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
- "dependencies": {
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/opn": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz",
- "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==",
- "deprecated": "The package has been renamed to `open`",
- "dependencies": {
- "is-wsl": "^1.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q=="
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pause-stream": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
- "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
- "dependencies": {
- "through": "~2.3"
- }
- },
- "node_modules/posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/proxy-middleware": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz",
- "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="
- },
- "node_modules/repeat-element": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
- "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
- "deprecated": "https://github.com/lydell/resolve-url#deprecated"
- },
- "node_modules/ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
- "dependencies": {
- "ret": "~0.1.10"
- }
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/send/node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/send/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
- "dependencies": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-index/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
- },
- "node_modules/serve-index/node_modules/setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
- },
- "node_modules/set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "dependencies": {
- "kind-of": "^3.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "node_modules/source-map-url": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
- "deprecated": "See https://github.com/lydell/source-map-url#deprecated"
- },
- "node_modules/split": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
- "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
- "dependencies": {
- "through": "2"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "dependencies": {
- "extend-shallow": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
- "dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/stream-combiner": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
- "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
- "dependencies": {
- "duplexer": "~0.1.1"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
- },
- "node_modules/to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unix-crypt-td-js": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz",
- "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw=="
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
- "dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
- "dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
- "dependencies": {
- "isarray": "1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
- "engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
- "node_modules/urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
- "deprecated": "Please see https://github.com/lydell/urix#deprecated"
- },
- "node_modules/use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "dependencies": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "engines": {
- "node": ">=0.8.0"
- }
- }
- },
- "dependencies": {
- "accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "requires": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- },
- "dependencies": {
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- }
- }
- },
- "apache-crypt": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz",
- "integrity": "sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==",
- "requires": {
- "unix-crypt-td-js": "^1.1.4"
- }
- },
- "apache-md5": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz",
- "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA=="
- },
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA=="
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q=="
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ=="
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw=="
- },
- "async-each": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
- },
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- }
- }
- },
- "basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
- "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
- "requires": {
- "safe-buffer": "5.1.2"
- }
- },
- "batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
- },
- "bcryptjs": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
- "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
- },
- "binary-extensions": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
- },
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- }
- },
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- }
- },
- "chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "requires": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "fsevents": "^1.2.7",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- }
- },
- "class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- }
- }
- },
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
- },
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
- },
- "connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- }
- },
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw=="
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og=="
- },
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- }
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
- },
- "duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
- },
- "event-stream": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
- "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
- "requires": {
- "duplexer": "~0.1.1",
- "from": "~0",
- "map-stream": "~0.1.0",
- "pause-stream": "0.0.11",
- "split": "0.3",
- "stream-combiner": "~0.0.4",
- "through": "~2.3.1"
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- }
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- }
- }
- },
- "faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- }
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="
- },
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
- "requires": {
- "map-cache": "^0.2.2"
- }
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
- },
- "from": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
- "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
- },
- "fsevents": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
- "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
- "optional": true,
- "requires": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1"
- }
- },
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
- },
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
- "requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
- "requires": {
- "is-extglob": "^2.1.0"
- }
- }
- }
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- }
- },
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
- "requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "http-auth": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz",
- "integrity": "sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==",
- "requires": {
- "apache-crypt": "^1.1.2",
- "apache-md5": "^1.0.6",
- "bcryptjs": "^2.3.0",
- "uuid": "^3.0.0"
- }
- },
- "http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "dependencies": {
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
- }
- }
- },
- "http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- }
- }
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
- "requires": {
- "binary-extensions": "^1.0.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- }
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- }
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
- },
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw=="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- },
- "live-server": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.2.tgz",
- "integrity": "sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w==",
- "requires": {
- "chokidar": "^2.0.4",
- "colors": "1.4.0",
- "connect": "^3.6.6",
- "cors": "latest",
- "event-stream": "3.3.4",
- "faye-websocket": "0.11.x",
- "http-auth": "3.1.x",
- "morgan": "^1.9.1",
- "object-assign": "latest",
- "opn": "latest",
- "proxy-middleware": "latest",
- "send": "latest",
- "serve-index": "^1.9.1"
- }
- },
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="
- },
- "map-stream": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
- "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g=="
- },
- "map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
- "requires": {
- "object-visit": "^1.0.0"
- }
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- },
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "morgan": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
- "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
- "requires": {
- "basic-auth": "~2.0.1",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-finished": "~2.3.0",
- "on-headers": "~1.0.2"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "nan": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
- "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
- "optional": true
- },
- "nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- },
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- }
- }
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
- },
- "object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
- "requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- }
- }
- },
- "object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
- "requires": {
- "isobject": "^3.0.0"
- }
- },
- "object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
- },
- "opn": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz",
- "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==",
- "requires": {
- "is-wsl": "^1.1.0"
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
- "pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw=="
- },
- "path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q=="
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
- },
- "pause-stream": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
- "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
- "requires": {
- "through": "~2.3"
- }
- },
- "posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg=="
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "proxy-middleware": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz",
- "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q=="
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "requires": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- }
- },
- "regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="
- },
- "repeat-element": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
- "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ=="
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w=="
- },
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg=="
- },
- "ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
- "requires": {
- "ret": "~0.1.10"
- }
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "requires": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
- }
- }
- },
- "serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
- "requires": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
- },
- "http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
- },
- "setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
- }
- }
- },
- "set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- }
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- }
- }
- },
- "snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- }
- }
- },
- "snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "requires": {
- "kind-of": "^3.2.0"
- }
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
- },
- "source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "requires": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "source-map-url": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="
- },
- "split": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
- "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
- "requires": {
- "through": "2"
- }
- },
- "split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "requires": {
- "extend-shallow": "^3.0.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
- "requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- }
- }
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
- },
- "stream-combiner": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
- "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
- "requires": {
- "duplexer": "~0.1.1"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
- },
- "to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
- "requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- },
- "union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- }
- },
- "unix-crypt-td-js": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz",
- "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw=="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
- },
- "unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
- "requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
- "requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
- "requires": {
- "isarray": "1.0.0"
- }
- }
- }
- },
- "has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ=="
- }
- }
- },
- "upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
- },
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg=="
- },
- "use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
- },
- "websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "requires": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- }
- },
- "websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
- }
- }
+ "packages": {}
}
diff --git a/package.json b/package.json
index 1262925f603a55ffa3c475b5323e29b7f05b36fc..717c8f093fe40056e3f73b5ab23d206a6a06f179 100644
--- a/package.json
+++ b/package.json
@@ -1,18 +1,19 @@
{
- "name": "2048",
- "version": "1.0.0",
- "description": "A small clone of [1024](https://play.google.com/store/apps/details?id=com.veewo.a1024), based on [Saming's 2048](http://saming.fr/p/2048/) (also a clone).",
- "main": "index.js",
- "scripts": {
- "dev": "live-server"
- },
- "repository": {
- "type": "git",
- "url": "https://gitcode.net/cloud-ide/2048.git"
- },
- "author": "Aresn",
- "license": "MIT",
- "dependencies": {
- "live-server": "^1.2.2"
+ "name": "超级玛丽",
+ "version": "1.0.0",
+ "description": "A small clone of [1024](https://play.google.com/store/apps/details?id=com.veewo.a1024), based on [Saming's 2048](http://saming.fr/p/2048/) (also a clone).",
+ "main": "index.js",
+ "scripts": {
+ "dev": "live-server"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://gitcode.net/qq_21484461/Super-Mario.git"
+ },
+ "author": "Aresn",
+ "license": "MIT",
+ "dependencies": {
+ "live-server": "^1.2.2"
+ }
}
-}
+
\ No newline at end of file
diff --git a/preview.yml b/preview.yml
index bd0c6575e7c9e7cc85966edce3358238bb4c163f..3d6ed926afdd418fd6037b7c5b759beaa21b9fd6 100644
--- a/preview.yml
+++ b/preview.yml
@@ -5,6 +5,6 @@ apps:
run: npm i && npm run dev # 应用的启动命
command: # 使用此命令启动服务,且不执行run
root: ./ # 应用的启动目录
- name: 2048 # 应用名称
+ name: 我的第一个 App。 # 应用名称
description: 我的第一个 App。 # 应用描述
- autoOpen: true # 打开工作空间时是否自动开启预览(优先级高于根级 autoOpen
+ autoOpen: true # 打开工作空间时是否自动开启预览(优先级高于根级 autoOpen
\ No newline at end of file
diff --git a/style/fonts/ClearSans-Bold-webfont.eot b/style/fonts/ClearSans-Bold-webfont.eot
deleted file mode 100644
index 3678ef2a44a124fea90895bfa491093a3f2a11fc..0000000000000000000000000000000000000000
Binary files a/style/fonts/ClearSans-Bold-webfont.eot and /dev/null differ
diff --git a/style/fonts/ClearSans-Bold-webfont.svg b/style/fonts/ClearSans-Bold-webfont.svg
deleted file mode 100644
index aa985aebfd05b42b42b5d42b40cdb197cef55c1e..0000000000000000000000000000000000000000
--- a/style/fonts/ClearSans-Bold-webfont.svg
+++ /dev/null
@@ -1,640 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/style/fonts/ClearSans-Bold-webfont.woff b/style/fonts/ClearSans-Bold-webfont.woff
deleted file mode 100644
index 184a945da400fdcae4bc6445ede163079087d18a..0000000000000000000000000000000000000000
Binary files a/style/fonts/ClearSans-Bold-webfont.woff and /dev/null differ
diff --git a/style/fonts/ClearSans-Light-webfont.eot b/style/fonts/ClearSans-Light-webfont.eot
deleted file mode 100644
index 0dc609d1385c6faaaf064dd43a8cc7211404de9b..0000000000000000000000000000000000000000
Binary files a/style/fonts/ClearSans-Light-webfont.eot and /dev/null differ
diff --git a/style/fonts/ClearSans-Light-webfont.svg b/style/fonts/ClearSans-Light-webfont.svg
deleted file mode 100644
index 1d5d2ecebbff2e50a1f18f79ea72aadab4aa3eac..0000000000000000000000000000000000000000
--- a/style/fonts/ClearSans-Light-webfont.svg
+++ /dev/null
@@ -1,670 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/style/fonts/ClearSans-Light-webfont.woff b/style/fonts/ClearSans-Light-webfont.woff
deleted file mode 100644
index 44555e04e957649116504d8169f37e8c0936c92a..0000000000000000000000000000000000000000
Binary files a/style/fonts/ClearSans-Light-webfont.woff and /dev/null differ
diff --git a/style/fonts/ClearSans-Regular-webfont.eot b/style/fonts/ClearSans-Regular-webfont.eot
deleted file mode 100644
index b020e058cb0068e68d64444e48ff330fe8ac0410..0000000000000000000000000000000000000000
Binary files a/style/fonts/ClearSans-Regular-webfont.eot and /dev/null differ
diff --git a/style/fonts/ClearSans-Regular-webfont.svg b/style/fonts/ClearSans-Regular-webfont.svg
deleted file mode 100644
index 1e2cffdc2fab3eea43e67a4cf135881e1a67a782..0000000000000000000000000000000000000000
--- a/style/fonts/ClearSans-Regular-webfont.svg
+++ /dev/null
@@ -1,669 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/style/fonts/ClearSans-Regular-webfont.woff b/style/fonts/ClearSans-Regular-webfont.woff
deleted file mode 100644
index 9d58858d809454e026cdebc3e766154ee8727582..0000000000000000000000000000000000000000
Binary files a/style/fonts/ClearSans-Regular-webfont.woff and /dev/null differ
diff --git a/style/fonts/clear-sans.css b/style/fonts/clear-sans.css
deleted file mode 100644
index de2811db8b5ef12fe4f243fab6c4809363562c29..0000000000000000000000000000000000000000
--- a/style/fonts/clear-sans.css
+++ /dev/null
@@ -1,30 +0,0 @@
-@font-face {
- font-family: "Clear Sans";
- src: url("ClearSans-Light-webfont.eot");
- src: url("ClearSans-Light-webfont.eot?#iefix") format("embedded-opentype"),
- url("ClearSans-Light-webfont.svg#clear_sans_lightregular") format("svg"),
- url("ClearSans-Light-webfont.woff") format("woff");
- font-weight: 200;
- font-style: normal;
-}
-
-@font-face {
- font-family: "Clear Sans";
- src: url("ClearSans-Regular-webfont.eot");
- src: url("ClearSans-Regular-webfont.eot?#iefix") format("embedded-opentype"),
- url("ClearSans-Regular-webfont.svg#clear_sansregular") format("svg"),
- url("ClearSans-Regular-webfont.woff") format("woff");
- font-weight: normal;
- font-style: normal;
-}
-
-@font-face {
- font-family: "Clear Sans";
- src: url("ClearSans-Bold-webfont.eot");
- src: url("ClearSans-Bold-webfont.eot?#iefix") format("embedded-opentype"),
- url("ClearSans-Bold-webfont.svg#clear_sansbold") format("svg"),
- url("ClearSans-Bold-webfont.woff") format("woff");
- font-weight: 700;
- font-style: normal;
-}
-
diff --git a/style/helpers.scss b/style/helpers.scss
deleted file mode 100644
index 72693ee20df55383cc4fcd4a707b6ce07817ba91..0000000000000000000000000000000000000000
--- a/style/helpers.scss
+++ /dev/null
@@ -1,82 +0,0 @@
-// Exponent
-// From: https://github.com/Team-Sass/Sassy-math/blob/master/sass/math.scss#L36
-
-@function exponent($base, $exponent) {
- // reset value
- $value: $base;
- // positive intergers get multiplied
- @if $exponent > 1 {
- @for $i from 2 through $exponent {
- $value: $value * $base; } }
- // negitive intergers get divided. A number divided by itself is 1
- @if $exponent < 1 {
- @for $i from 0 through -$exponent {
- $value: $value / $base; } }
- // return the last value written
- @return $value;
-}
-
-@function pow($base, $exponent) {
- @return exponent($base, $exponent);
-}
-
-// Transition mixins
-@mixin transition($args...) {
- -webkit-transition: $args;
- -moz-transition: $args;
- transition: $args;
-}
-
-@mixin transition-property($args...) {
- -webkit-transition-property: $args;
- -moz-transition-property: $args;
- transition-property: $args;
-}
-
-@mixin animation($args...) {
- -webkit-animation: $args;
- -moz-animation: $args;
- animation: $args;
-}
-
-@mixin animation-fill-mode($args...) {
- -webkit-animation-fill-mode: $args;
- -moz-animation-fill-mode: $args;
- animation-fill-mode: $args;
-}
-
-@mixin transform($args...) {
- -webkit-transform: $args;
- -moz-transform: $args;
- -ms-transform: $args;
- transform: $args;
-}
-
-// Keyframe animations
-@mixin keyframes($animation-name) {
- @-webkit-keyframes $animation-name {
- @content;
- }
- @-moz-keyframes $animation-name {
- @content;
- }
- @keyframes $animation-name {
- @content;
- }
-}
-
-// Media queries
-@mixin smaller($width) {
- @media screen and (max-width: $width) {
- @content;
- }
-}
-
-// Clearfix
-@mixin clearfix {
- &:after {
- content: "";
- display: block;
- clear: both;
- }
-}
diff --git a/style/main.css b/style/main.css
deleted file mode 100644
index ea3cb19fcaf62b95379376216f643fe5e297c4b7..0000000000000000000000000000000000000000
--- a/style/main.css
+++ /dev/null
@@ -1,758 +0,0 @@
-@import url(fonts/clear-sans.css);
-html, body {
- margin: 0;
- padding: 0;
- background: #faf8ef;
- color: #776e65;
- font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;
- font-size: 18px; }
-
-body {
- margin: 80px 0; }
-
-.heading:after {
- content: "";
- display: block;
- clear: both; }
-
-h1.title {
- font-size: 80px;
- font-weight: bold;
- margin: 0;
- display: block;
- float: left; }
-
-@-webkit-keyframes move-up {
- 0% {
- top: 25px;
- opacity: 1; }
-
- 100% {
- top: -50px;
- opacity: 0; } }
-@-moz-keyframes move-up {
- 0% {
- top: 25px;
- opacity: 1; }
-
- 100% {
- top: -50px;
- opacity: 0; } }
-@keyframes move-up {
- 0% {
- top: 25px;
- opacity: 1; }
-
- 100% {
- top: -50px;
- opacity: 0; } }
-.scores-container {
- float: right;
- text-align: right; }
-
-.score-container, .best-container {
- position: relative;
- display: inline-block;
- background: #bbada0;
- padding: 15px 25px;
- font-size: 25px;
- height: 25px;
- line-height: 47px;
- font-weight: bold;
- border-radius: 3px;
- color: white;
- margin-top: 8px;
- text-align: center; }
- .score-container:after, .best-container:after {
- position: absolute;
- width: 100%;
- top: 10px;
- left: 0;
- text-transform: uppercase;
- font-size: 13px;
- line-height: 13px;
- text-align: center;
- color: #eee4da; }
- .score-container .score-addition, .best-container .score-addition {
- position: absolute;
- right: 30px;
- color: red;
- font-size: 25px;
- line-height: 25px;
- font-weight: bold;
- color: rgba(119, 110, 101, 0.9);
- z-index: 100;
- -webkit-animation: move-up 600ms ease-in;
- -moz-animation: move-up 600ms ease-in;
- animation: move-up 600ms ease-in;
- -webkit-animation-fill-mode: both;
- -moz-animation-fill-mode: both;
- animation-fill-mode: both; }
-
-.score-container:after {
- content: "Score"; }
-
-.best-container:after {
- content: "Best"; }
-
-p {
- margin-top: 0;
- margin-bottom: 10px;
- line-height: 1.65; }
-
-a {
- color: #776e65;
- font-weight: bold;
- text-decoration: underline;
- cursor: pointer; }
-
-strong.important {
- text-transform: uppercase; }
-
-hr {
- border: none;
- border-bottom: 1px solid #d8d4d0;
- margin-top: 20px;
- margin-bottom: 30px; }
-
-.container {
- width: 500px;
- margin: 0 auto; }
-
-@-webkit-keyframes fade-in {
- 0% {
- opacity: 0; }
-
- 100% {
- opacity: 1; } }
-@-moz-keyframes fade-in {
- 0% {
- opacity: 0; }
-
- 100% {
- opacity: 1; } }
-@keyframes fade-in {
- 0% {
- opacity: 0; }
-
- 100% {
- opacity: 1; } }
-.game-container {
- margin-top: 40px;
- position: relative;
- padding: 15px;
- cursor: default;
- -webkit-touch-callout: none;
- -ms-touch-callout: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -ms-touch-action: none;
- touch-action: none;
- background: #bbada0;
- border-radius: 6px;
- width: 500px;
- height: 500px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box; }
- .game-container .game-message {
- display: none;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: rgba(238, 228, 218, 0.5);
- z-index: 100;
- text-align: center;
- -webkit-animation: fade-in 800ms ease 1200ms;
- -moz-animation: fade-in 800ms ease 1200ms;
- animation: fade-in 800ms ease 1200ms;
- -webkit-animation-fill-mode: both;
- -moz-animation-fill-mode: both;
- animation-fill-mode: both; }
- .game-container .game-message p {
- font-size: 60px;
- font-weight: bold;
- height: 60px;
- line-height: 60px;
- margin-top: 222px; }
- .game-container .game-message .lower {
- display: block;
- margin-top: 59px; }
- .game-container .game-message a {
- display: inline-block;
- background: #8f7a66;
- border-radius: 3px;
- padding: 0 20px;
- text-decoration: none;
- color: #f9f6f2;
- height: 40px;
- line-height: 42px;
- margin-left: 9px; }
- .game-container .game-message a.keep-playing-button {
- display: none; }
- .game-container .game-message.game-won {
- background: rgba(237, 194, 46, 0.5);
- color: #f9f6f2; }
- .game-container .game-message.game-won a.keep-playing-button {
- display: inline-block; }
- .game-container .game-message.game-won, .game-container .game-message.game-over {
- display: block; }
-
-.grid-container {
- position: absolute;
- z-index: 1; }
-
-.grid-row {
- margin-bottom: 15px; }
- .grid-row:last-child {
- margin-bottom: 0; }
- .grid-row:after {
- content: "";
- display: block;
- clear: both; }
-
-.grid-cell {
- width: 106.25px;
- height: 106.25px;
- margin-right: 15px;
- float: left;
- border-radius: 3px;
- background: rgba(238, 228, 218, 0.35); }
- .grid-cell:last-child {
- margin-right: 0; }
-
-.tile-container {
- position: absolute;
- z-index: 2; }
-
-.tile, .tile .tile-inner {
- width: 107px;
- height: 107px;
- line-height: 107px; }
-.tile.tile-position-1-1 {
- -webkit-transform: translate(0px, 0px);
- -moz-transform: translate(0px, 0px);
- -ms-transform: translate(0px, 0px);
- transform: translate(0px, 0px); }
-.tile.tile-position-1-2 {
- -webkit-transform: translate(0px, 121px);
- -moz-transform: translate(0px, 121px);
- -ms-transform: translate(0px, 121px);
- transform: translate(0px, 121px); }
-.tile.tile-position-1-3 {
- -webkit-transform: translate(0px, 242px);
- -moz-transform: translate(0px, 242px);
- -ms-transform: translate(0px, 242px);
- transform: translate(0px, 242px); }
-.tile.tile-position-1-4 {
- -webkit-transform: translate(0px, 363px);
- -moz-transform: translate(0px, 363px);
- -ms-transform: translate(0px, 363px);
- transform: translate(0px, 363px); }
-.tile.tile-position-2-1 {
- -webkit-transform: translate(121px, 0px);
- -moz-transform: translate(121px, 0px);
- -ms-transform: translate(121px, 0px);
- transform: translate(121px, 0px); }
-.tile.tile-position-2-2 {
- -webkit-transform: translate(121px, 121px);
- -moz-transform: translate(121px, 121px);
- -ms-transform: translate(121px, 121px);
- transform: translate(121px, 121px); }
-.tile.tile-position-2-3 {
- -webkit-transform: translate(121px, 242px);
- -moz-transform: translate(121px, 242px);
- -ms-transform: translate(121px, 242px);
- transform: translate(121px, 242px); }
-.tile.tile-position-2-4 {
- -webkit-transform: translate(121px, 363px);
- -moz-transform: translate(121px, 363px);
- -ms-transform: translate(121px, 363px);
- transform: translate(121px, 363px); }
-.tile.tile-position-3-1 {
- -webkit-transform: translate(242px, 0px);
- -moz-transform: translate(242px, 0px);
- -ms-transform: translate(242px, 0px);
- transform: translate(242px, 0px); }
-.tile.tile-position-3-2 {
- -webkit-transform: translate(242px, 121px);
- -moz-transform: translate(242px, 121px);
- -ms-transform: translate(242px, 121px);
- transform: translate(242px, 121px); }
-.tile.tile-position-3-3 {
- -webkit-transform: translate(242px, 242px);
- -moz-transform: translate(242px, 242px);
- -ms-transform: translate(242px, 242px);
- transform: translate(242px, 242px); }
-.tile.tile-position-3-4 {
- -webkit-transform: translate(242px, 363px);
- -moz-transform: translate(242px, 363px);
- -ms-transform: translate(242px, 363px);
- transform: translate(242px, 363px); }
-.tile.tile-position-4-1 {
- -webkit-transform: translate(363px, 0px);
- -moz-transform: translate(363px, 0px);
- -ms-transform: translate(363px, 0px);
- transform: translate(363px, 0px); }
-.tile.tile-position-4-2 {
- -webkit-transform: translate(363px, 121px);
- -moz-transform: translate(363px, 121px);
- -ms-transform: translate(363px, 121px);
- transform: translate(363px, 121px); }
-.tile.tile-position-4-3 {
- -webkit-transform: translate(363px, 242px);
- -moz-transform: translate(363px, 242px);
- -ms-transform: translate(363px, 242px);
- transform: translate(363px, 242px); }
-.tile.tile-position-4-4 {
- -webkit-transform: translate(363px, 363px);
- -moz-transform: translate(363px, 363px);
- -ms-transform: translate(363px, 363px);
- transform: translate(363px, 363px); }
-
-.tile {
- position: absolute;
- -webkit-transition: 100ms ease-in-out;
- -moz-transition: 100ms ease-in-out;
- transition: 100ms ease-in-out;
- -webkit-transition-property: -webkit-transform;
- -moz-transition-property: -moz-transform;
- transition-property: transform; }
- .tile .tile-inner {
- border-radius: 3px;
- background: #eee4da;
- text-align: center;
- font-weight: bold;
- z-index: 10;
- font-size: 55px; }
- .tile.tile-2 .tile-inner {
- background: #eee4da;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0), inset 0 0 0 1px rgba(255, 255, 255, 0); }
- .tile.tile-4 .tile-inner {
- background: #ede0c8;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0), inset 0 0 0 1px rgba(255, 255, 255, 0); }
- .tile.tile-8 .tile-inner {
- color: #f9f6f2;
- background: #f2b179; }
- .tile.tile-16 .tile-inner {
- color: #f9f6f2;
- background: #f59563; }
- .tile.tile-32 .tile-inner {
- color: #f9f6f2;
- background: #f67c5f; }
- .tile.tile-64 .tile-inner {
- color: #f9f6f2;
- background: #f65e3b; }
- .tile.tile-128 .tile-inner {
- color: #f9f6f2;
- background: #edcf72;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.2381), inset 0 0 0 1px rgba(255, 255, 255, 0.14286);
- font-size: 45px; }
- @media screen and (max-width: 520px) {
- .tile.tile-128 .tile-inner {
- font-size: 25px; } }
- .tile.tile-256 .tile-inner {
- color: #f9f6f2;
- background: #edcc61;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.31746), inset 0 0 0 1px rgba(255, 255, 255, 0.19048);
- font-size: 45px; }
- @media screen and (max-width: 520px) {
- .tile.tile-256 .tile-inner {
- font-size: 25px; } }
- .tile.tile-512 .tile-inner {
- color: #f9f6f2;
- background: #edc850;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.39683), inset 0 0 0 1px rgba(255, 255, 255, 0.2381);
- font-size: 45px; }
- @media screen and (max-width: 520px) {
- .tile.tile-512 .tile-inner {
- font-size: 25px; } }
- .tile.tile-1024 .tile-inner {
- color: #f9f6f2;
- background: #edc53f;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.47619), inset 0 0 0 1px rgba(255, 255, 255, 0.28571);
- font-size: 35px; }
- @media screen and (max-width: 520px) {
- .tile.tile-1024 .tile-inner {
- font-size: 15px; } }
- .tile.tile-2048 .tile-inner {
- color: #f9f6f2;
- background: #edc22e;
- box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.55556), inset 0 0 0 1px rgba(255, 255, 255, 0.33333);
- font-size: 35px; }
- @media screen and (max-width: 520px) {
- .tile.tile-2048 .tile-inner {
- font-size: 15px; } }
- .tile.tile-super .tile-inner {
- color: #f9f6f2;
- background: #3c3a32;
- font-size: 30px; }
- @media screen and (max-width: 520px) {
- .tile.tile-super .tile-inner {
- font-size: 10px; } }
-
-@-webkit-keyframes appear {
- 0% {
- opacity: 0;
- -webkit-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- transform: scale(0); }
-
- 100% {
- opacity: 1;
- -webkit-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- transform: scale(1); } }
-@-moz-keyframes appear {
- 0% {
- opacity: 0;
- -webkit-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- transform: scale(0); }
-
- 100% {
- opacity: 1;
- -webkit-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- transform: scale(1); } }
-@keyframes appear {
- 0% {
- opacity: 0;
- -webkit-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- transform: scale(0); }
-
- 100% {
- opacity: 1;
- -webkit-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- transform: scale(1); } }
-.tile-new .tile-inner {
- -webkit-animation: appear 200ms ease 100ms;
- -moz-animation: appear 200ms ease 100ms;
- animation: appear 200ms ease 100ms;
- -webkit-animation-fill-mode: backwards;
- -moz-animation-fill-mode: backwards;
- animation-fill-mode: backwards; }
-
-@-webkit-keyframes pop {
- 0% {
- -webkit-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- transform: scale(0); }
-
- 50% {
- -webkit-transform: scale(1.2);
- -moz-transform: scale(1.2);
- -ms-transform: scale(1.2);
- transform: scale(1.2); }
-
- 100% {
- -webkit-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- transform: scale(1); } }
-@-moz-keyframes pop {
- 0% {
- -webkit-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- transform: scale(0); }
-
- 50% {
- -webkit-transform: scale(1.2);
- -moz-transform: scale(1.2);
- -ms-transform: scale(1.2);
- transform: scale(1.2); }
-
- 100% {
- -webkit-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- transform: scale(1); } }
-@keyframes pop {
- 0% {
- -webkit-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- transform: scale(0); }
-
- 50% {
- -webkit-transform: scale(1.2);
- -moz-transform: scale(1.2);
- -ms-transform: scale(1.2);
- transform: scale(1.2); }
-
- 100% {
- -webkit-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- transform: scale(1); } }
-.tile-merged .tile-inner {
- z-index: 20;
- -webkit-animation: pop 200ms ease 100ms;
- -moz-animation: pop 200ms ease 100ms;
- animation: pop 200ms ease 100ms;
- -webkit-animation-fill-mode: backwards;
- -moz-animation-fill-mode: backwards;
- animation-fill-mode: backwards; }
-
-.above-game:after {
- content: "";
- display: block;
- clear: both; }
-
-.game-intro {
- float: left;
- line-height: 42px;
- margin-bottom: 0; }
-
-.restart-button {
- display: inline-block;
- background: #8f7a66;
- border-radius: 3px;
- padding: 0 20px;
- text-decoration: none;
- color: #f9f6f2;
- height: 40px;
- line-height: 42px;
- display: block;
- text-align: center;
- float: right; }
-
-.game-explanation {
- margin-top: 50px; }
-
-@media screen and (max-width: 520px) {
- html, body {
- font-size: 15px; }
-
- body {
- margin: 20px 0;
- padding: 0 20px; }
-
- h1.title {
- font-size: 27px;
- margin-top: 15px; }
-
- .container {
- width: 280px;
- margin: 0 auto; }
-
- .score-container, .best-container {
- margin-top: 0;
- padding: 15px 10px;
- min-width: 40px; }
-
- .heading {
- margin-bottom: 10px; }
-
- .game-intro {
- width: 55%;
- display: block;
- box-sizing: border-box;
- line-height: 1.65; }
-
- .restart-button {
- width: 42%;
- padding: 0;
- display: block;
- box-sizing: border-box;
- margin-top: 2px; }
-
- .game-container {
- margin-top: 17px;
- position: relative;
- padding: 10px;
- cursor: default;
- -webkit-touch-callout: none;
- -ms-touch-callout: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -ms-touch-action: none;
- touch-action: none;
- background: #bbada0;
- border-radius: 6px;
- width: 280px;
- height: 280px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box; }
- .game-container .game-message {
- display: none;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: rgba(238, 228, 218, 0.5);
- z-index: 100;
- text-align: center;
- -webkit-animation: fade-in 800ms ease 1200ms;
- -moz-animation: fade-in 800ms ease 1200ms;
- animation: fade-in 800ms ease 1200ms;
- -webkit-animation-fill-mode: both;
- -moz-animation-fill-mode: both;
- animation-fill-mode: both; }
- .game-container .game-message p {
- font-size: 60px;
- font-weight: bold;
- height: 60px;
- line-height: 60px;
- margin-top: 222px; }
- .game-container .game-message .lower {
- display: block;
- margin-top: 59px; }
- .game-container .game-message a {
- display: inline-block;
- background: #8f7a66;
- border-radius: 3px;
- padding: 0 20px;
- text-decoration: none;
- color: #f9f6f2;
- height: 40px;
- line-height: 42px;
- margin-left: 9px; }
- .game-container .game-message a.keep-playing-button {
- display: none; }
- .game-container .game-message.game-won {
- background: rgba(237, 194, 46, 0.5);
- color: #f9f6f2; }
- .game-container .game-message.game-won a.keep-playing-button {
- display: inline-block; }
- .game-container .game-message.game-won, .game-container .game-message.game-over {
- display: block; }
-
- .grid-container {
- position: absolute;
- z-index: 1; }
-
- .grid-row {
- margin-bottom: 10px; }
- .grid-row:last-child {
- margin-bottom: 0; }
- .grid-row:after {
- content: "";
- display: block;
- clear: both; }
-
- .grid-cell {
- width: 57.5px;
- height: 57.5px;
- margin-right: 10px;
- float: left;
- border-radius: 3px;
- background: rgba(238, 228, 218, 0.35); }
- .grid-cell:last-child {
- margin-right: 0; }
-
- .tile-container {
- position: absolute;
- z-index: 2; }
-
- .tile, .tile .tile-inner {
- width: 58px;
- height: 58px;
- line-height: 58px; }
- .tile.tile-position-1-1 {
- -webkit-transform: translate(0px, 0px);
- -moz-transform: translate(0px, 0px);
- -ms-transform: translate(0px, 0px);
- transform: translate(0px, 0px); }
- .tile.tile-position-1-2 {
- -webkit-transform: translate(0px, 67px);
- -moz-transform: translate(0px, 67px);
- -ms-transform: translate(0px, 67px);
- transform: translate(0px, 67px); }
- .tile.tile-position-1-3 {
- -webkit-transform: translate(0px, 135px);
- -moz-transform: translate(0px, 135px);
- -ms-transform: translate(0px, 135px);
- transform: translate(0px, 135px); }
- .tile.tile-position-1-4 {
- -webkit-transform: translate(0px, 202px);
- -moz-transform: translate(0px, 202px);
- -ms-transform: translate(0px, 202px);
- transform: translate(0px, 202px); }
- .tile.tile-position-2-1 {
- -webkit-transform: translate(67px, 0px);
- -moz-transform: translate(67px, 0px);
- -ms-transform: translate(67px, 0px);
- transform: translate(67px, 0px); }
- .tile.tile-position-2-2 {
- -webkit-transform: translate(67px, 67px);
- -moz-transform: translate(67px, 67px);
- -ms-transform: translate(67px, 67px);
- transform: translate(67px, 67px); }
- .tile.tile-position-2-3 {
- -webkit-transform: translate(67px, 135px);
- -moz-transform: translate(67px, 135px);
- -ms-transform: translate(67px, 135px);
- transform: translate(67px, 135px); }
- .tile.tile-position-2-4 {
- -webkit-transform: translate(67px, 202px);
- -moz-transform: translate(67px, 202px);
- -ms-transform: translate(67px, 202px);
- transform: translate(67px, 202px); }
- .tile.tile-position-3-1 {
- -webkit-transform: translate(135px, 0px);
- -moz-transform: translate(135px, 0px);
- -ms-transform: translate(135px, 0px);
- transform: translate(135px, 0px); }
- .tile.tile-position-3-2 {
- -webkit-transform: translate(135px, 67px);
- -moz-transform: translate(135px, 67px);
- -ms-transform: translate(135px, 67px);
- transform: translate(135px, 67px); }
- .tile.tile-position-3-3 {
- -webkit-transform: translate(135px, 135px);
- -moz-transform: translate(135px, 135px);
- -ms-transform: translate(135px, 135px);
- transform: translate(135px, 135px); }
- .tile.tile-position-3-4 {
- -webkit-transform: translate(135px, 202px);
- -moz-transform: translate(135px, 202px);
- -ms-transform: translate(135px, 202px);
- transform: translate(135px, 202px); }
- .tile.tile-position-4-1 {
- -webkit-transform: translate(202px, 0px);
- -moz-transform: translate(202px, 0px);
- -ms-transform: translate(202px, 0px);
- transform: translate(202px, 0px); }
- .tile.tile-position-4-2 {
- -webkit-transform: translate(202px, 67px);
- -moz-transform: translate(202px, 67px);
- -ms-transform: translate(202px, 67px);
- transform: translate(202px, 67px); }
- .tile.tile-position-4-3 {
- -webkit-transform: translate(202px, 135px);
- -moz-transform: translate(202px, 135px);
- -ms-transform: translate(202px, 135px);
- transform: translate(202px, 135px); }
- .tile.tile-position-4-4 {
- -webkit-transform: translate(202px, 202px);
- -moz-transform: translate(202px, 202px);
- -ms-transform: translate(202px, 202px);
- transform: translate(202px, 202px); }
-
- .tile .tile-inner {
- font-size: 35px; }
-
- .game-message p {
- font-size: 30px !important;
- height: 30px !important;
- line-height: 30px !important;
- margin-top: 90px !important; }
- .game-message .lower {
- margin-top: 30px !important; } }
diff --git a/style/main.scss b/style/main.scss
deleted file mode 100644
index b0ec8da9ccb38dd9214361fe041ccb5d76fac49c..0000000000000000000000000000000000000000
--- a/style/main.scss
+++ /dev/null
@@ -1,549 +0,0 @@
-@import "helpers";
-@import "fonts/clear-sans.css";
-
-$field-width: 500px;
-$grid-spacing: 15px;
-$grid-row-cells: 4;
-$tile-size: ($field-width - $grid-spacing * ($grid-row-cells + 1)) / $grid-row-cells;
-$tile-border-radius: 3px;
-
-$mobile-threshold: $field-width + 20px;
-
-$text-color: #776E65;
-$bright-text-color: #f9f6f2;
-
-$tile-color: #eee4da;
-$tile-gold-color: #edc22e;
-$tile-gold-glow-color: lighten($tile-gold-color, 15%);
-
-$game-container-margin-top: 40px;
-$game-container-background: #bbada0;
-
-$transition-speed: 100ms;
-
-html, body {
- margin: 0;
- padding: 0;
-
- background: #faf8ef;
- color: $text-color;
- font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;
- font-size: 18px;
-}
-
-body {
- margin: 80px 0;
-}
-
-.heading {
- @include clearfix;
-}
-
-h1.title {
- font-size: 80px;
- font-weight: bold;
- margin: 0;
- display: block;
- float: left;
-}
-
-@include keyframes(move-up) {
- 0% {
- top: 25px;
- opacity: 1;
- }
-
- 100% {
- top: -50px;
- opacity: 0;
- }
-}
-
-.scores-container {
- float: right;
- text-align: right;
-}
-
-.score-container, .best-container {
- $height: 25px;
-
- position: relative;
- display: inline-block;
- background: $game-container-background;
- padding: 15px 25px;
- font-size: $height;
- height: $height;
- line-height: $height + 22px;
- font-weight: bold;
- border-radius: 3px;
- color: white;
- margin-top: 8px;
- text-align: center;
-
- &:after {
- position: absolute;
- width: 100%;
- top: 10px;
- left: 0;
- text-transform: uppercase;
- font-size: 13px;
- line-height: 13px;
- text-align: center;
- color: $tile-color;
- }
-
- .score-addition {
- position: absolute;
- right: 30px;
- color: red;
- font-size: $height;
- line-height: $height;
- font-weight: bold;
- color: rgba($text-color, .9);
- z-index: 100;
- @include animation(move-up 600ms ease-in);
- @include animation-fill-mode(both);
- }
-}
-
-.score-container:after {
- content: "Score";
-}
-
-.best-container:after {
- content: "Best";
-}
-
-p {
- margin-top: 0;
- margin-bottom: 10px;
- line-height: 1.65;
-}
-
-a {
- color: $text-color;
- font-weight: bold;
- text-decoration: underline;
- cursor: pointer;
-}
-
-strong {
- &.important {
- text-transform: uppercase;
- }
-}
-
-hr {
- border: none;
- border-bottom: 1px solid lighten($text-color, 40%);
- margin-top: 20px;
- margin-bottom: 30px;
-}
-
-.container {
- width: $field-width;
- margin: 0 auto;
-}
-
-@include keyframes(fade-in) {
- 0% {
- opacity: 0;
- }
-
- 100% {
- opacity: 1;
- }
-}
-
-// Styles for buttons
-@mixin button {
- display: inline-block;
- background: darken($game-container-background, 20%);
- border-radius: 3px;
- padding: 0 20px;
- text-decoration: none;
- color: $bright-text-color;
- height: 40px;
- line-height: 42px;
-}
-
-// Game field mixin used to render CSS at different width
-@mixin game-field {
- .game-container {
- margin-top: $game-container-margin-top;
- position: relative;
- padding: $grid-spacing;
-
- cursor: default;
- -webkit-touch-callout: none;
- -ms-touch-callout: none;
-
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
-
- -ms-touch-action: none;
- touch-action: none;
-
- background: $game-container-background;
- border-radius: $tile-border-radius * 2;
- width: $field-width;
- height: $field-width;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-
- .game-message {
- display: none;
-
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: rgba($tile-color, .5);
- z-index: 100;
-
- text-align: center;
-
- p {
- font-size: 60px;
- font-weight: bold;
- height: 60px;
- line-height: 60px;
- margin-top: 222px;
- // height: $field-width;
- // line-height: $field-width;
- }
-
- .lower {
- display: block;
- margin-top: 59px;
- }
-
- a {
- @include button;
- margin-left: 9px;
- // margin-top: 59px;
-
- &.keep-playing-button {
- display: none;
- }
- }
-
- @include animation(fade-in 800ms ease $transition-speed * 12);
- @include animation-fill-mode(both);
-
- &.game-won {
- background: rgba($tile-gold-color, .5);
- color: $bright-text-color;
-
- a.keep-playing-button {
- display: inline-block;
- }
- }
-
- &.game-won, &.game-over {
- display: block;
- }
- }
- }
-
- .grid-container {
- position: absolute;
- z-index: 1;
- }
-
- .grid-row {
- margin-bottom: $grid-spacing;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- &:after {
- content: "";
- display: block;
- clear: both;
- }
- }
-
- .grid-cell {
- width: $tile-size;
- height: $tile-size;
- margin-right: $grid-spacing;
- float: left;
-
- border-radius: $tile-border-radius;
-
- background: rgba($tile-color, .35);
-
- &:last-child {
- margin-right: 0;
- }
- }
-
- .tile-container {
- position: absolute;
- z-index: 2;
- }
-
- .tile {
- &, .tile-inner {
- width: ceil($tile-size);
- height: ceil($tile-size);
- line-height: ceil($tile-size);
- }
-
- // Build position classes
- @for $x from 1 through $grid-row-cells {
- @for $y from 1 through $grid-row-cells {
- &.tile-position-#{$x}-#{$y} {
- $xPos: floor(($tile-size + $grid-spacing) * ($x - 1));
- $yPos: floor(($tile-size + $grid-spacing) * ($y - 1));
- @include transform(translate($xPos, $yPos));
- }
- }
- }
- }
-}
-
-// End of game-field mixin
-@include game-field;
-
-.tile {
- position: absolute; // Makes transforms relative to the top-left corner
-
- .tile-inner {
- border-radius: $tile-border-radius;
-
- background: $tile-color;
- text-align: center;
- font-weight: bold;
- z-index: 10;
-
- font-size: 55px;
- }
-
- // Movement transition
- @include transition($transition-speed ease-in-out);
- -webkit-transition-property: -webkit-transform;
- -moz-transition-property: -moz-transform;
- transition-property: transform;
-
- $base: 2;
- $exponent: 1;
- $limit: 11;
-
- // Colors for all 11 states, false = no special color
- $special-colors: false false, // 2
- false false, // 4
- #f78e48 true, // 8
- #fc5e2e true, // 16
- #ff3333 true, // 32
- #ff0000 true, // 64
- false true, // 128
- false true, // 256
- false true, // 512
- false true, // 1024
- false true; // 2048
-
- // Build tile colors
- @while $exponent <= $limit {
- $power: pow($base, $exponent);
-
- &.tile-#{$power} .tile-inner {
- // Calculate base background color
- $gold-percent: ($exponent - 1) / ($limit - 1) * 100;
- $mixed-background: mix($tile-gold-color, $tile-color, $gold-percent);
-
- $nth-color: nth($special-colors, $exponent);
-
- $special-background: nth($nth-color, 1);
- $bright-color: nth($nth-color, 2);
-
- @if $special-background {
- $mixed-background: mix($special-background, $mixed-background, 55%);
- }
-
- @if $bright-color {
- color: $bright-text-color;
- }
-
- // Set background
- background: $mixed-background;
-
- // Add glow
- $glow-opacity: max($exponent - 4, 0) / ($limit - 4);
-
- @if not $special-background {
- box-shadow: 0 0 30px 10px rgba($tile-gold-glow-color, $glow-opacity / 1.8),
- inset 0 0 0 1px rgba(white, $glow-opacity / 3);
- }
-
- // Adjust font size for bigger numbers
- @if $power >= 100 and $power < 1000 {
- font-size: 45px;
-
- // Media queries placed here to avoid carrying over the rest of the logic
- @include smaller($mobile-threshold) {
- font-size: 25px;
- }
- } @else if $power >= 1000 {
- font-size: 35px;
-
- @include smaller($mobile-threshold) {
- font-size: 15px;
- }
- }
- }
-
- $exponent: $exponent + 1;
- }
-
- // Super tiles (above 2048)
- &.tile-super .tile-inner {
- color: $bright-text-color;
- background: mix(#333, $tile-gold-color, 95%);
-
- font-size: 30px;
-
- @include smaller($mobile-threshold) {
- font-size: 10px;
- }
- }
-}
-
-@include keyframes(appear) {
- 0% {
- opacity: 0;
- @include transform(scale(0));
- }
-
- 100% {
- opacity: 1;
- @include transform(scale(1));
- }
-}
-
-.tile-new .tile-inner {
- @include animation(appear 200ms ease $transition-speed);
- @include animation-fill-mode(backwards);
-}
-
-@include keyframes(pop) {
- 0% {
- @include transform(scale(0));
- }
-
- 50% {
- @include transform(scale(1.2));
- }
-
- 100% {
- @include transform(scale(1));
- }
-}
-
-.tile-merged .tile-inner {
- z-index: 20;
- @include animation(pop 200ms ease $transition-speed);
- @include animation-fill-mode(backwards);
-}
-
-.above-game {
- @include clearfix;
-}
-
-.game-intro {
- float: left;
- line-height: 42px;
- margin-bottom: 0;
-}
-
-.restart-button {
- @include button;
- display: block;
- text-align: center;
- float: right;
-}
-
-.game-explanation {
- margin-top: 50px;
-}
-
-@include smaller($mobile-threshold) {
- // Redefine variables for smaller screens
- $field-width: 280px;
- $grid-spacing: 10px;
- $grid-row-cells: 4;
- $tile-size: ($field-width - $grid-spacing * ($grid-row-cells + 1)) / $grid-row-cells;
- $tile-border-radius: 3px;
- $game-container-margin-top: 17px;
-
- html, body {
- font-size: 15px;
- }
-
- body {
- margin: 20px 0;
- padding: 0 20px;
- }
-
- h1.title {
- font-size: 27px;
- margin-top: 15px;
- }
-
- .container {
- width: $field-width;
- margin: 0 auto;
- }
-
- .score-container, .best-container {
- margin-top: 0;
- padding: 15px 10px;
- min-width: 40px;
- }
-
- .heading {
- margin-bottom: 10px;
- }
-
- // Show intro and restart button side by side
- .game-intro {
- width: 55%;
- display: block;
- box-sizing: border-box;
- line-height: 1.65;
- }
-
- .restart-button {
- width: 42%;
- padding: 0;
- display: block;
- box-sizing: border-box;
- margin-top: 2px;
- }
-
- // Render the game field at the right width
- @include game-field;
-
- // Rest of the font-size adjustments in the tile class
- .tile .tile-inner {
- font-size: 35px;
- }
-
- .game-message {
- p {
- font-size: 30px !important;
- height: 30px !important;
- line-height: 30px !important;
- margin-top: 90px !important;
- }
-
- .lower {
- margin-top: 30px !important;
- }
- }
-}