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.png) -上述每项任务无顺序依赖关系,三项任务都可参与或独立参与。 +![生命和关卡显示界面](2.png) -## 三、奖品设置及发放规则 -| 序号 | 任务名称 | 任务奖励 | 领取条件 | 发放规则 | 人数限制 | -| ---- | ---- | ---- | ---- | ---- | ---- | -| 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 | +![游戏中。。。](3.png) -## 四、参与任务入口 -| 序号 | 任务名称 | 任务入口 | -| ---- | ---- | ---- | -| 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) | +![放子弹效果](4.png) +![第一关过关](5.png) -## 五、活动交流 -开源活动官方交流群(仅参与者之间讨论和交流)。扫码进入选手沟通群。活动重要节点通知会在群内第一时间告知,请所有参与者尽量加群。 +## 主要功能 - +- **游戏地图的创建**: 地图的样式展现,陆地,石头,管道,岩石,带属性硬石,碉堡,城堡岩,旗帜,旗杆等。 +- **游戏关卡的设置**:障碍物、玛丽奥、敌人、隐藏物等位置属性。 -## 六、活动点评 +- **玛丽奥的功能设置**:实现定位、缓动效果移动、跳跃、成长、降级、发射子弹、死亡和障碍物及敌人碰撞检测。 -### 活动建议 -如果大家对本次活动有建议,可以直接在本项目中提交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 - - - - - - - - - - - - + +超级玛丽 + + + + - -
-
-

2048

-
-
0
-
0
-
-
- -
-

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

+
+
+
WORLD0
+
×3
+
+
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; - } - } -}