├── .github
└── ISSUE_TEMPLATE.md
├── .gitignore
├── .npmignore
├── Gruntfile.js
├── LICENSE
├── README.md
├── build
├── phaser-nineslice.d.ts
├── phaser-nineslice.js
├── phaser-nineslice.js.map
└── phaser-nineslice.min.js
├── config
├── tsconfig.json
└── tslint.json
├── example
├── images
│ ├── atlas.json
│ ├── atlas.png
│ ├── atlas.tps
│ ├── btn_clean.png
│ ├── image.png
│ └── inputfield.png
└── index.html
├── package-lock.json
├── package.json
└── ts
├── NineSlice.ts
├── Plugin.ts
└── definitions.d.ts
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Before opening this issue _please_ check we haven't already fixed it! Check the [Closed issues](https://github.com/azerion/phaser-nineslice/issues?q=is%3Aissue+is%3Aclosed)
2 | This Issue is about (delete as applicable)
3 |
4 | * A bug in the API (always say which version you're using!)
5 | * An error in the documentation
6 | * An error in the example
7 | * A problem with my own code
8 |
9 | API errors must include example code showing what happens, and why you don't believe this is the expected behavior. Also mention the Phaser version you're using for your project. Issues posted without code take _far_ longer to get resolved, _if ever_.
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .idea
3 | .tscache
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | Gruntfile.js
2 | example
3 | ts
4 | .idea
5 | .tscache
6 | .github
--------------------------------------------------------------------------------
/Gruntfile.js:
--------------------------------------------------------------------------------
1 | module.exports = function (grunt) {
2 | 'use strict';
3 |
4 | grunt.initConfig({
5 | //Get some details from the package.json
6 | pkg: grunt.file.readJSON('package.json'),
7 | banner: '/*!\n' +
8 | ' * <%= pkg.config.name %> - version <%= pkg.version %> \n' +
9 | ' * <%= pkg.description %>\n' +
10 | ' *\n' +
11 | ' * <%= pkg.author %>\n' +
12 | ' * Build at <%= grunt.template.today("dd-mm-yyyy") %>\n' +
13 | ' * Released under MIT License \n' +
14 | ' */\n',
15 | usebanner: {
16 | dist: {
17 | options: {
18 | position: 'top',
19 | banner: '<%= banner %>'
20 | },
21 | files: {
22 | src: [ 'build/*.js' ]
23 | }
24 | }
25 | },
26 | //Typescript settings per build
27 | ts: {
28 | options: {
29 | module: 'amd',
30 | target: 'es5',
31 | sourceMap: true,
32 | declaration: true,
33 | noImplicitAny: true
34 | },
35 | dist: {
36 | src: ['ts/**/*.ts'],
37 | dest: 'build/<%= pkg.config.name %>.js'
38 | }
39 | },
40 | watch: {
41 | files: ['ts/**/*.ts'],
42 | tasks: ['ts'],
43 | options: {
44 | livereload: true
45 | }
46 | },
47 | connect: {
48 | server: {
49 | options: {
50 | port: 8080
51 | }
52 | }
53 | },
54 | uglify: {
55 | options: {
56 | compress: {
57 | sequences: true,
58 | dead_code: true,
59 | conditionals: true,
60 | booleans: true,
61 | unused: true,
62 | if_return: true,
63 | join_vars: true,
64 | drop_console: true
65 | },
66 | mangle: true,
67 | beautify: false
68 | },
69 | dist: {
70 | files: {
71 | 'build/<%= pkg.config.name %>.min.js': [
72 | 'build/<%= pkg.config.name %>.js'
73 | ]
74 | }
75 | }
76 | },
77 | clean: {
78 | dist: ['build']
79 | }
80 | });
81 |
82 | grunt.loadNpmTasks('grunt-contrib-clean');
83 | grunt.loadNpmTasks('grunt-contrib-uglify');
84 | grunt.loadNpmTasks('grunt-banner');
85 | grunt.loadNpmTasks('grunt-ts');
86 | grunt.loadNpmTasks('grunt-contrib-connect');
87 | grunt.loadNpmTasks('grunt-contrib-watch');
88 |
89 | //dist Build
90 | grunt.registerTask('dist', [
91 | 'clean:dist', //Clean the dist folder
92 | 'ts:dist',//Run typescript on the preprocessed files, for dist (client)
93 | 'uglify:dist', //Minify everything
94 | 'usebanner:dist' //Minify everything
95 | ]);
96 |
97 | grunt.registerTask('dev', [
98 | 'ts:dist',
99 | 'connect',
100 | 'watch'
101 | ]);
102 |
103 | };
104 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Gembly
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Phaser Nineslice
2 | ================
3 | Phaser-Nineslice plugin adds 9-slice scaling support to Phaser v2 and CE. An implementation for v3 is also
4 | available thanks to [jdotrjs](https://github.com/jdotrjs) as [phaser3-nineslice](https://github.com/jdotrjs/phaser3-nineslice).
5 |
6 | Key features:
7 | * Blazing fast
8 | * Low memory usage
9 | * Easy to use API
10 |
11 | *Important*
12 | From here on this library will be published and updated under [@azerion/phaser-nineslice](https://www.npmjs.com/package/@azerion/phaser-nineslice) at NPM, the old [phaser-nineslice](https://www.npmjs.com/package/phaser-nineslice) will no longer be maintained.
13 |
14 | If you are coming from v1 you can read the migration guide at the bottom
15 |
16 | Getting Started
17 | ---------------
18 | First you want to get a fresh copy of the plugin. You can get it from this repo or from npm, ain't that handy.
19 | ```
20 | npm install @azerion/phaser-nineslice --save-dev
21 | ```
22 |
23 | Next up you'd want to add it to your list of js sources you load into your game
24 | ```html
25 |
26 | ```
27 |
28 | Usage
29 | -----
30 |
31 | ### Load the plugin
32 |
33 | You still need to load the plugin in your game. This is done just like any other plugin in Phaser.
34 | So, to load the plugin, include it in one of the Phaser States.
35 |
36 | ```javascript
37 | function preload(){
38 | game.plugins.add(PhaserNineSlice.Plugin);
39 | }
40 | ```
41 | The plugin will patch your Phaser game with additional load/add/make methods so the nineslice container fits up in Phaser like any normal object!
42 |
43 | ### Preloading
44 | Like any other asset in Phaser, you still need to preload the image. It's a bit different then a regular image, in the sense that it requires some extra data.
45 |
46 | Apart from the key and the url, you can also specify the sizes of top, left, right and bottom sides.
47 |
48 | If you don't specify a bottom size, it will use the value for the top. Same goes for right and left.
49 |
50 | It's also possible to only give one size. If only one value is given, this will use that for the edges.
51 |
52 | ```javascript
53 | //This will load a 9-slice texture where all sides are 25px
54 | game.load.nineSlice('my-image', '/images/my-image.jpg', 25);
55 |
56 | //This will load a 9-slice texture where the
57 | // top is 10, left is 15, right is 20 and bottom is 30 pixels in size
58 | game.load.nineSlice('my-image', '/images/my-image.jpg', 10, 15, 20, 30);
59 | ```
60 |
61 | ### Adding a container
62 | Also adding and creating of 9-slice containers is exposed through Phaser's GameObjectCreator and GameObjectFactory.
63 | So you can add a 9-slice container to your game just like any other image once it's preloaded!
64 |
65 | ```javascript
66 | //We specify the x and y position. the key for the image and the width and height of the container. It will be automaticly scaled!
67 | game.add.nineSlice(100, 100, 'my-image', 200, 50);
68 | ```
69 |
70 | Or if you'd want to do something with it first:
71 | ```javascript
72 | //Two options here, first we use Phaser
73 | var container = game.create.nineSlice(0, 0, 'my-image', 200, 50);
74 | container.x = 20;
75 | container.y = 20;
76 | game.add.existing(container);
77 |
78 | //Or we use the Constructor
79 | var nineSlice = new PhaserNineSlice.NineSlice(game, 0, 0, 'my-image', null, 200, 50);
80 | nineSlice.x = 50;
81 | nineSlice.y = 50;
82 | game.add.existing(nineSlice);
83 | ```
84 |
85 | ### Using a Texture Atlas
86 | It's also possible to use an image that's located inside a Texture atlas. The only difference then is that you don't have to preload the image, instead you use the object's constructor and pass the framedata directly on creation:
87 | ```javascript
88 | //Add an nineslice image with an texture atlas
89 | var sliceButton = new PhaserNineSlice.NineSlice(
90 | game, // Phaser.Game
91 | 150, // x position
92 | 100, // y position
93 | 'buttons', // atlas key
94 | 'btn_clean.png',// Image frame
95 | 200, // expected width
96 | 100, // expected height
97 | { //And this is the framedata, normally this is passed when preloading. Check README for details
98 | top: 20, // Amount of pixels for top
99 | bottom: 23, // Amount of pixels for bottom
100 | left: 27, // Amount of pixels for left
101 | right: 28 // Amount of pixels for right
102 | }
103 | );
104 | this.game.add.existing(sliceButton);
105 | ```
106 |
107 | ### Resize method
108 |
109 | 9-slice container has a resize method which lets you expand/shorten the width or length of the image.
110 | When using resize method, make sure values are not lower than the width of the image corners
111 |
112 | ```javascript
113 | var sliceContainer = game.add.nineSlice(5, 5, 'image', null, 48, 48);
114 | sliceContainer.resize(100, 200);
115 | ```
116 |
117 | Migrating from v1
118 | -----------------
119 | The API of the objects is the same as before but the namespace changed. We decided to remove the Fabrique namespace, and house the plugin on it's own (PhaserNineSlice).
120 | so:
121 | Fabrique.Plugins.NineSlice
122 | becomes:
123 | PhaserNineSlice.Plugin
124 |
125 | All other references of Fabrique.Plugins can be replaced with PhaserNineSlice.
126 | If you are still unsure how or what, both the example and this readme have been adjusted to work with the new namespace.
127 |
128 | Disclaimer
129 | ----------
130 | We at Azerion just love playing and creating awesome games. We aren't affiliated with Phaser.io. We just needed some awesome nine slice containers in our awesome HTML5 games. Feel free to use it for enhancing your own awesome games!
131 |
132 | Phaser NineSlice is distributed under the MIT license. All 3rd party libraries and components are distributed under their respective license terms.
133 |
--------------------------------------------------------------------------------
/build/phaser-nineslice.d.ts:
--------------------------------------------------------------------------------
1 | declare module PhaserNineSlice {
2 | import NineSliceCacheData = PhaserNineSlice.NineSliceCacheData;
3 | class NineSlice extends Phaser.Sprite {
4 | private leftSize;
5 | private topSize;
6 | private rightSize;
7 | private bottomSize;
8 | localWidth: number;
9 | localHeight: number;
10 | baseTexture: PIXI.BaseTexture;
11 | texture: Phaser.RenderTexture;
12 | private baseFrame;
13 | constructor(game: PhaserNineSlice.NineSliceGame, x: number, y: number, key: string, frame: string, width: number, height: number, data?: NineSliceCacheData);
14 | private renderTexture();
15 | resize(width: number, height: number): void;
16 | destroy(...args: any[]): void;
17 | private createTexturePart(x, y, width, height);
18 | }
19 | }
20 | declare module PhaserNineSlice {
21 | interface NineSliceObjectFactory extends Phaser.GameObjectFactory {
22 | nineSlice: (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group) => PhaserNineSlice.NineSlice;
23 | }
24 | interface NineSliceObjectCreator extends Phaser.GameObjectCreator {
25 | nineSlice: (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group) => PhaserNineSlice.NineSlice;
26 | }
27 | interface NineSliceCache extends Phaser.Cache {
28 | addNineSlice: (key: string, data: NineSliceCacheData) => void;
29 | getNineSlice: (key: string) => NineSliceCacheData;
30 | nineSlice: {
31 | [key: string]: NineSliceCacheData;
32 | };
33 | }
34 | interface NineSliceLoader extends Phaser.Loader {
35 | nineSlice: (key: string, url: string, top: number, left?: number, right?: number, bottom?: number) => void;
36 | cache: NineSliceCache;
37 | }
38 | interface NineSliceGame extends Phaser.Game {
39 | add: NineSliceObjectFactory;
40 | load: NineSliceLoader;
41 | cache: NineSliceCache;
42 | }
43 | interface NineSliceCacheData {
44 | top: number;
45 | bottom?: number;
46 | left?: number;
47 | right?: number;
48 | }
49 | class Plugin extends Phaser.Plugin {
50 | constructor(game: Phaser.Game, parent: Phaser.PluginManager);
51 | private addNineSliceLoader();
52 | private addNineSliceFactory();
53 | private addNineSliceCache();
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/build/phaser-nineslice.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * phaser-nineslice - version 2.0.1
3 | * NineSlice plugin for Phaser.io!
4 | *
5 | * Azerion
6 | * Build at 19-03-2019
7 | * Released under MIT License
8 | */
9 |
10 | var __extends = (this && this.__extends) || (function () {
11 | var extendStatics = Object.setPrototypeOf ||
12 | ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13 | function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14 | return function (d, b) {
15 | extendStatics(d, b);
16 | function __() { this.constructor = d; }
17 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18 | };
19 | })();
20 | var PhaserNineSlice;
21 | (function (PhaserNineSlice) {
22 | var NineSlice = (function (_super) {
23 | __extends(NineSlice, _super);
24 | function NineSlice(game, x, y, key, frame, width, height, data) {
25 | var _this = _super.call(this, game, x, y, key, frame) || this;
26 | _this.baseTexture = _this.texture.baseTexture;
27 | _this.baseFrame = _this.texture.frame;
28 | if (frame !== null && !data) {
29 | data = game.cache.getNineSlice(frame);
30 | }
31 | else if (!data) {
32 | data = game.cache.getNineSlice(key);
33 | }
34 | if (undefined === data) {
35 | return _this;
36 | }
37 | _this.topSize = data.top;
38 | if (!data.left) {
39 | _this.leftSize = _this.topSize;
40 | }
41 | else {
42 | _this.leftSize = data.left;
43 | }
44 | if (!data.right) {
45 | _this.rightSize = _this.leftSize;
46 | }
47 | else {
48 | _this.rightSize = data.right;
49 | }
50 | if (!data.bottom) {
51 | _this.bottomSize = _this.topSize;
52 | }
53 | else {
54 | _this.bottomSize = data.bottom;
55 | }
56 | _this.loadTexture(new Phaser.RenderTexture(_this.game, _this.localWidth, _this.localHeight));
57 | _this.resize(width, height);
58 | return _this;
59 | }
60 | NineSlice.prototype.renderTexture = function () {
61 | this.texture.resize(this.localWidth, this.localHeight, true);
62 | var textureXs = [0, this.leftSize, this.baseFrame.width - this.rightSize, this.baseFrame.width];
63 | var textureYs = [0, this.topSize, this.baseFrame.height - this.bottomSize, this.baseFrame.height];
64 | var finalXs = [0, this.leftSize, this.localWidth - this.rightSize, this.localWidth];
65 | var finalYs = [0, this.topSize, this.localHeight - this.bottomSize, this.localHeight];
66 | this.texture.clear();
67 | for (var yi = 0; yi < 3; yi++) {
68 | for (var xi = 0; xi < 3; xi++) {
69 | var s = this.createTexturePart(textureXs[xi], textureYs[yi], textureXs[xi + 1] - textureXs[xi], textureYs[yi + 1] - textureYs[yi]);
70 | s.width = finalXs[xi + 1] - finalXs[xi];
71 | s.height = finalYs[yi + 1] - finalYs[yi];
72 | this.texture.renderXY(s, finalXs[xi], finalYs[yi]);
73 | }
74 | }
75 | };
76 | NineSlice.prototype.resize = function (width, height) {
77 | this.localWidth = width;
78 | this.localHeight = height;
79 | this.renderTexture();
80 | };
81 | NineSlice.prototype.destroy = function () {
82 | var args = [];
83 | for (var _i = 0; _i < arguments.length; _i++) {
84 | args[_i] = arguments[_i];
85 | }
86 | _super.prototype.destroy.call(this, args[0]);
87 | this.texture.destroy(true);
88 | this.texture = null;
89 | this.baseTexture = null;
90 | this.baseFrame = null;
91 | };
92 | NineSlice.prototype.createTexturePart = function (x, y, width, height) {
93 | var frame = new PIXI.Rectangle(this.baseFrame.x + this.texture.frame.x + x, this.baseFrame.y + this.texture.frame.y + y, Math.max(width, 1), Math.max(height, 1));
94 | return new Phaser.Sprite(this.game, 0, 0, new PIXI.Texture(this.baseTexture, frame));
95 | };
96 | return NineSlice;
97 | }(Phaser.Sprite));
98 | PhaserNineSlice.NineSlice = NineSlice;
99 | })(PhaserNineSlice || (PhaserNineSlice = {}));
100 | var PhaserNineSlice;
101 | (function (PhaserNineSlice) {
102 | var Plugin = (function (_super) {
103 | __extends(Plugin, _super);
104 | function Plugin(game, parent) {
105 | var _this = _super.call(this, game, parent) || this;
106 | _this.addNineSliceCache();
107 | _this.addNineSliceFactory();
108 | _this.addNineSliceLoader();
109 | return _this;
110 | }
111 | Plugin.prototype.addNineSliceLoader = function () {
112 | Phaser.Loader.prototype.nineSlice = function (key, url, top, left, right, bottom) {
113 | var cacheData = {
114 | top: top
115 | };
116 | if (left) {
117 | cacheData.left = left;
118 | }
119 | if (right) {
120 | cacheData.right = right;
121 | }
122 | if (bottom) {
123 | cacheData.bottom = bottom;
124 | }
125 | this.addToFileList('image', key, url);
126 | this.game.cache.addNineSlice(key, cacheData);
127 | };
128 | };
129 | Plugin.prototype.addNineSliceFactory = function () {
130 | Phaser.GameObjectFactory.prototype.nineSlice = function (x, y, key, frame, width, height, group) {
131 | if (group === undefined) {
132 | group = this.world;
133 | }
134 | var nineSliceObject = new PhaserNineSlice.NineSlice(this.game, x, y, key, frame, width, height);
135 | return group.add(nineSliceObject);
136 | };
137 | Phaser.GameObjectCreator.prototype.nineSlice = function (x, y, key, frame, width, height) {
138 | return new PhaserNineSlice.NineSlice(this.game, x, y, key, frame, width, height);
139 | };
140 | };
141 | Plugin.prototype.addNineSliceCache = function () {
142 | Phaser.Cache.prototype.nineSlice = {};
143 | Phaser.Cache.prototype.addNineSlice = function (key, data) {
144 | this.nineSlice[key] = data;
145 | };
146 | Phaser.Cache.prototype.getNineSlice = function (key) {
147 | var data = this.nineSlice[key];
148 | if (undefined === data) {
149 | console.warn('Phaser.Cache.getNineSlice: Key "' + key + '" not found in Cache.');
150 | }
151 | return data;
152 | };
153 | };
154 | return Plugin;
155 | }(Phaser.Plugin));
156 | PhaserNineSlice.Plugin = Plugin;
157 | })(PhaserNineSlice || (PhaserNineSlice = {}));
158 | //# sourceMappingURL=phaser-nineslice.js.map
--------------------------------------------------------------------------------
/build/phaser-nineslice.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"phaser-nineslice.js","sourceRoot":"","sources":["../ts/NineSlice.ts","../ts/Plugin.ts"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/build/phaser-nineslice.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * phaser-nineslice - version 2.0.1
3 | * NineSlice plugin for Phaser.io!
4 | *
5 | * Azerion
6 | * Build at 19-03-2019
7 | * Released under MIT License
8 | */
9 |
10 | var __extends=this&&this.__extends||function(){var a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return function(b,c){function d(){this.constructor=b}a(b,c),b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),PhaserNineSlice;!function(a){var b=function(a){function b(b,c,d,e,f,g,h,i){var j=a.call(this,b,c,d,e,f)||this;return j.baseTexture=j.texture.baseTexture,j.baseFrame=j.texture.frame,null===f||i?i||(i=b.cache.getNineSlice(e)):i=b.cache.getNineSlice(f),void 0===i?j:(j.topSize=i.top,i.left?j.leftSize=i.left:j.leftSize=j.topSize,i.right?j.rightSize=i.right:j.rightSize=j.leftSize,i.bottom?j.bottomSize=i.bottom:j.bottomSize=j.topSize,j.loadTexture(new Phaser.RenderTexture(j.game,j.localWidth,j.localHeight)),j.resize(g,h),j)}return __extends(b,a),b.prototype.renderTexture=function(){this.texture.resize(this.localWidth,this.localHeight,!0);var a=[0,this.leftSize,this.baseFrame.width-this.rightSize,this.baseFrame.width],b=[0,this.topSize,this.baseFrame.height-this.bottomSize,this.baseFrame.height],c=[0,this.leftSize,this.localWidth-this.rightSize,this.localWidth],d=[0,this.topSize,this.localHeight-this.bottomSize,this.localHeight];this.texture.clear();for(var e=0;e<3;e++)for(var f=0;f<3;f++){var g=this.createTexturePart(a[f],b[e],a[f+1]-a[f],b[e+1]-b[e]);g.width=c[f+1]-c[f],g.height=d[e+1]-d[e],this.texture.renderXY(g,c[f],d[e])}},b.prototype.resize=function(a,b){this.localWidth=a,this.localHeight=b,this.renderTexture()},b.prototype.destroy=function(){for(var b=[],c=0;c
2 |
3 |
4 | fileFormatVersion
5 | 4
6 | texturePackerVersion
7 | 4.3.1
8 | fileName
9 | /home/zale/dev/tools/phaser-nineslice/example/images/atlas.tps
10 | autoSDSettings
11 |
12 |
13 | scale
14 | 1
15 | extension
16 |
17 | spriteFilter
18 |
19 | acceptFractionalValues
20 |
21 | maxTextureSize
22 |
23 | width
24 | -1
25 | height
26 | -1
27 |
28 |
29 |
30 | allowRotation
31 |
32 | shapeDebug
33 |
34 | dpi
35 | 72
36 | dataFormat
37 | phaser-json-array
38 | textureFileName
39 |
40 | flipPVR
41 |
42 | pvrCompressionQuality
43 | PVR_QUALITY_NORMAL
44 | atfCompressData
45 |
46 | mipMapMinSize
47 | 32768
48 | etc1CompressionQuality
49 | ETC1_QUALITY_LOW_PERCEPTUAL
50 | etc2CompressionQuality
51 | ETC2_QUALITY_LOW_PERCEPTUAL
52 | dxtCompressionMode
53 | DXT_PERCEPTUAL
54 | jxrColorFormat
55 | JXR_YUV444
56 | jxrTrimFlexBits
57 | 0
58 | jxrCompressionLevel
59 | 0
60 | ditherType
61 | NearestNeighbour
62 | backgroundColor
63 | 0
64 | libGdx
65 |
66 | filtering
67 |
68 | x
69 | Linear
70 | y
71 | Linear
72 |
73 |
74 | shapePadding
75 | 0
76 | jpgQuality
77 | 80
78 | pngOptimizationLevel
79 | 1
80 | webpQualityLevel
81 | 101
82 | textureSubPath
83 |
84 | atfFormats
85 |
86 | textureFormat
87 | png
88 | borderPadding
89 | 0
90 | maxTextureSize
91 |
92 | width
93 | 2048
94 | height
95 | 2048
96 |
97 | fixedTextureSize
98 |
99 | width
100 | -1
101 | height
102 | -1
103 |
104 | algorithmSettings
105 |
106 | algorithm
107 | MaxRects
108 | freeSizeMode
109 | Best
110 | sizeConstraints
111 | AnySize
112 | forceSquared
113 |
114 | maxRects
115 |
116 | heuristic
117 | Best
118 |
119 | basic
120 |
121 | sortBy
122 | Best
123 | order
124 | Ascending
125 |
126 | polygon
127 |
128 | alignToGrid
129 | 1
130 |
131 |
132 | andEngine
133 |
134 | minFilter
135 | Linear
136 | packageName
137 | Texture
138 | wrap
139 |
140 | s
141 | Clamp
142 | t
143 | Clamp
144 |
145 | magFilter
146 | MagLinear
147 |
148 | dataFileNames
149 |
156 | multiPack
157 |
158 | forceIdenticalLayout
159 |
160 | outputFormat
161 | RGBA8888
162 | alphaHandling
163 | ClearTransparentPixels
164 | contentProtection
165 |
166 | key
167 |
168 |
169 | autoAliasEnabled
170 |
171 | trimSpriteNames
172 |
173 | prependSmartFolderName
174 |
175 | globalSpriteSettings
176 |
177 | scale
178 | 1
179 | scaleMode
180 | Smooth
181 | extrude
182 | 1
183 | trimThreshold
184 | 1
185 | trimMargin
186 | 1
187 | trimMode
188 | Trim
189 | tracerTolerance
190 | 200
191 | heuristicMask
192 |
193 | defaultPivotPoint
194 | 0.5,0.5
195 | writePivotPoints
196 |
197 |
198 | individualSpriteSettings
199 |
227 | fileList
228 |
229 | btn_clean.png
230 | inputfield.png
231 |
232 | ignoreFileList
233 |
234 | replaceList
235 |
236 | ignoredWarnings
237 |
238 | commonDivisorX
239 | 1
240 | commonDivisorY
241 | 1
242 | packNormalMaps
243 |
244 | autodetectNormalMaps
245 |
246 | normalMapFilter
247 |
248 | normalMapSuffix
249 |
250 | normalMapSheetFileName
251 |
252 | exporterProperties
253 |
254 |
255 |
256 |
--------------------------------------------------------------------------------
/example/images/btn_clean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/azerion/phaser-nineslice/ca4d8b7c8546e57c08fb9d2d9f730ef9c31ae13c/example/images/btn_clean.png
--------------------------------------------------------------------------------
/example/images/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/azerion/phaser-nineslice/ca4d8b7c8546e57c08fb9d2d9f730ef9c31ae13c/example/images/image.png
--------------------------------------------------------------------------------
/example/images/inputfield.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/azerion/phaser-nineslice/ca4d8b7c8546e57c08fb9d2d9f730ef9c31ae13c/example/images/inputfield.png
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Example for Phaser Nine Slice
5 |
6 |
7 |
8 |
9 |
10 |
11 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@azerion/phaser-nineslice",
3 | "version": "2.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "abbrev": {
8 | "version": "1.0.9",
9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
10 | "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
11 | "dev": true
12 | },
13 | "accepts": {
14 | "version": "1.3.3",
15 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
16 | "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
17 | "dev": true,
18 | "requires": {
19 | "mime-types": "~2.1.11",
20 | "negotiator": "0.6.1"
21 | }
22 | },
23 | "align-text": {
24 | "version": "0.1.4",
25 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
26 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
27 | "dev": true,
28 | "requires": {
29 | "kind-of": "^3.0.2",
30 | "longest": "^1.0.1",
31 | "repeat-string": "^1.5.2"
32 | }
33 | },
34 | "ansi-green": {
35 | "version": "0.1.1",
36 | "resolved": false,
37 | "integrity": "sha1-il2al55FjVfEDjNYCzc5C44Q0Pc=",
38 | "dev": true,
39 | "requires": {
40 | "ansi-wrap": "0.1.0"
41 | }
42 | },
43 | "ansi-regex": {
44 | "version": "2.1.1",
45 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
46 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
47 | "dev": true
48 | },
49 | "ansi-styles": {
50 | "version": "2.2.1",
51 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
52 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
53 | "dev": true
54 | },
55 | "ansi-wrap": {
56 | "version": "0.1.0",
57 | "resolved": false,
58 | "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
59 | "dev": true
60 | },
61 | "anymatch": {
62 | "version": "1.3.0",
63 | "resolved": false,
64 | "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
65 | "dev": true,
66 | "requires": {
67 | "arrify": "^1.0.0",
68 | "micromatch": "^2.1.5"
69 | }
70 | },
71 | "argparse": {
72 | "version": "1.0.9",
73 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
74 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
75 | "dev": true,
76 | "requires": {
77 | "sprintf-js": "~1.0.2"
78 | }
79 | },
80 | "arr-diff": {
81 | "version": "2.0.0",
82 | "resolved": false,
83 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
84 | "dev": true,
85 | "requires": {
86 | "arr-flatten": "^1.0.1"
87 | }
88 | },
89 | "arr-flatten": {
90 | "version": "1.0.1",
91 | "resolved": false,
92 | "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs=",
93 | "dev": true
94 | },
95 | "array-find-index": {
96 | "version": "1.0.2",
97 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
98 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
99 | "dev": true
100 | },
101 | "array-unique": {
102 | "version": "0.2.1",
103 | "resolved": false,
104 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
105 | "dev": true
106 | },
107 | "arrify": {
108 | "version": "1.0.1",
109 | "resolved": false,
110 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
111 | "dev": true
112 | },
113 | "async": {
114 | "version": "1.5.2",
115 | "resolved": false,
116 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
117 | "dev": true
118 | },
119 | "async-each": {
120 | "version": "1.0.1",
121 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
122 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
123 | "dev": true
124 | },
125 | "balanced-match": {
126 | "version": "0.3.0",
127 | "resolved": false,
128 | "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y=",
129 | "dev": true
130 | },
131 | "basic-auth": {
132 | "version": "1.0.4",
133 | "resolved": false,
134 | "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=",
135 | "dev": true
136 | },
137 | "batch": {
138 | "version": "0.5.3",
139 | "resolved": false,
140 | "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=",
141 | "dev": true
142 | },
143 | "binary-extensions": {
144 | "version": "1.4.0",
145 | "resolved": false,
146 | "integrity": "sha1-1zPMtiiYbXsybYhlbg3b06rDUbc=",
147 | "dev": true
148 | },
149 | "brace-expansion": {
150 | "version": "1.1.2",
151 | "resolved": false,
152 | "integrity": "sha1-8hRF0EiLZY4nce/YcO/1HfKfBO8=",
153 | "dev": true,
154 | "requires": {
155 | "balanced-match": "^0.3.0",
156 | "concat-map": "0.0.1"
157 | }
158 | },
159 | "braces": {
160 | "version": "1.8.3",
161 | "resolved": false,
162 | "integrity": "sha1-NdTn3aYysz4hXTioqc9DKcnHXSw=",
163 | "dev": true,
164 | "requires": {
165 | "expand-range": "^1.8.1",
166 | "preserve": "^0.2.0",
167 | "repeat-element": "^1.1.2"
168 | }
169 | },
170 | "builtin-modules": {
171 | "version": "1.1.1",
172 | "resolved": false,
173 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
174 | "dev": true
175 | },
176 | "camelcase": {
177 | "version": "2.1.1",
178 | "resolved": false,
179 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
180 | "dev": true
181 | },
182 | "camelcase-keys": {
183 | "version": "2.1.0",
184 | "resolved": false,
185 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
186 | "dev": true,
187 | "requires": {
188 | "camelcase": "^2.0.0",
189 | "map-obj": "^1.0.0"
190 | }
191 | },
192 | "center-align": {
193 | "version": "0.1.3",
194 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
195 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
196 | "dev": true,
197 | "requires": {
198 | "align-text": "^0.1.3",
199 | "lazy-cache": "^1.0.3"
200 | }
201 | },
202 | "chalk": {
203 | "version": "1.1.3",
204 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
205 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
206 | "dev": true,
207 | "requires": {
208 | "ansi-styles": "^2.2.1",
209 | "escape-string-regexp": "^1.0.2",
210 | "has-ansi": "^2.0.0",
211 | "strip-ansi": "^3.0.0",
212 | "supports-color": "^2.0.0"
213 | }
214 | },
215 | "chokidar": {
216 | "version": "1.7.0",
217 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
218 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
219 | "dev": true,
220 | "requires": {
221 | "anymatch": "^1.3.0",
222 | "async-each": "^1.0.0",
223 | "fsevents": "^1.0.0",
224 | "glob-parent": "^2.0.0",
225 | "inherits": "^2.0.1",
226 | "is-binary-path": "^1.0.0",
227 | "is-glob": "^2.0.0",
228 | "path-is-absolute": "^1.0.0",
229 | "readdirp": "^2.0.0"
230 | }
231 | },
232 | "cliui": {
233 | "version": "2.1.0",
234 | "resolved": false,
235 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
236 | "dev": true,
237 | "requires": {
238 | "center-align": "^0.1.1",
239 | "right-align": "^0.1.1",
240 | "wordwrap": "0.0.2"
241 | }
242 | },
243 | "coffee-script": {
244 | "version": "1.10.0",
245 | "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
246 | "integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA=",
247 | "dev": true
248 | },
249 | "colors": {
250 | "version": "1.1.2",
251 | "resolved": false,
252 | "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
253 | "dev": true
254 | },
255 | "concat-map": {
256 | "version": "0.0.1",
257 | "resolved": false,
258 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
259 | "dev": true
260 | },
261 | "connect": {
262 | "version": "3.5.0",
263 | "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz",
264 | "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=",
265 | "dev": true,
266 | "requires": {
267 | "debug": "~2.2.0",
268 | "finalhandler": "0.5.0",
269 | "parseurl": "~1.3.1",
270 | "utils-merge": "1.0.0"
271 | }
272 | },
273 | "connect-livereload": {
274 | "version": "0.5.4",
275 | "resolved": false,
276 | "integrity": "sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=",
277 | "dev": true
278 | },
279 | "core-util-is": {
280 | "version": "1.0.2",
281 | "resolved": false,
282 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
283 | "dev": true
284 | },
285 | "csproj2ts": {
286 | "version": "0.0.8",
287 | "resolved": "https://registry.npmjs.org/csproj2ts/-/csproj2ts-0.0.8.tgz",
288 | "integrity": "sha1-nRxxniDELM6MTeKQCO/DVUn9Em8=",
289 | "dev": true,
290 | "requires": {
291 | "es6-promise": "^4.0.5",
292 | "lodash": "^4.17.4",
293 | "semver": "^5.3.0",
294 | "xml2js": "^0.4.17"
295 | },
296 | "dependencies": {
297 | "es6-promise": {
298 | "version": "4.0.5",
299 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz",
300 | "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=",
301 | "dev": true
302 | },
303 | "lodash": {
304 | "version": "4.17.4",
305 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
306 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
307 | "dev": true
308 | }
309 | }
310 | },
311 | "currently-unhandled": {
312 | "version": "0.4.1",
313 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
314 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
315 | "dev": true,
316 | "requires": {
317 | "array-find-index": "^1.0.1"
318 | }
319 | },
320 | "dateformat": {
321 | "version": "1.0.12",
322 | "resolved": false,
323 | "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
324 | "dev": true,
325 | "requires": {
326 | "get-stdin": "^4.0.1",
327 | "meow": "^3.3.0"
328 | }
329 | },
330 | "debug": {
331 | "version": "2.2.0",
332 | "resolved": false,
333 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
334 | "dev": true,
335 | "requires": {
336 | "ms": "0.7.1"
337 | }
338 | },
339 | "decamelize": {
340 | "version": "1.2.0",
341 | "resolved": false,
342 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
343 | "dev": true
344 | },
345 | "depd": {
346 | "version": "1.1.0",
347 | "resolved": false,
348 | "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=",
349 | "dev": true
350 | },
351 | "destroy": {
352 | "version": "1.0.4",
353 | "resolved": false,
354 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
355 | "dev": true
356 | },
357 | "detect-indent": {
358 | "version": "4.0.0",
359 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
360 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
361 | "dev": true,
362 | "requires": {
363 | "repeating": "^2.0.0"
364 | }
365 | },
366 | "detect-newline": {
367 | "version": "2.1.0",
368 | "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
369 | "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
370 | "dev": true
371 | },
372 | "duplexer": {
373 | "version": "0.1.1",
374 | "resolved": false,
375 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
376 | "dev": true
377 | },
378 | "ee-first": {
379 | "version": "1.1.1",
380 | "resolved": false,
381 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
382 | "dev": true
383 | },
384 | "encodeurl": {
385 | "version": "1.0.1",
386 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
387 | "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=",
388 | "dev": true
389 | },
390 | "error-ex": {
391 | "version": "1.3.0",
392 | "resolved": false,
393 | "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
394 | "dev": true,
395 | "requires": {
396 | "is-arrayish": "^0.2.1"
397 | }
398 | },
399 | "es6-promise": {
400 | "version": "0.1.2",
401 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-0.1.2.tgz",
402 | "integrity": "sha1-8RLCn+paCZhTn8tqL9IUQ9KPBfc=",
403 | "dev": true
404 | },
405 | "escape-html": {
406 | "version": "1.0.3",
407 | "resolved": false,
408 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
409 | "dev": true
410 | },
411 | "escape-string-regexp": {
412 | "version": "1.0.4",
413 | "resolved": false,
414 | "integrity": "sha1-uF5nm0b3LQP7voo79yWdU1whti8=",
415 | "dev": true
416 | },
417 | "esprima": {
418 | "version": "2.7.3",
419 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
420 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
421 | "dev": true
422 | },
423 | "etag": {
424 | "version": "1.7.0",
425 | "resolved": false,
426 | "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=",
427 | "dev": true
428 | },
429 | "eventemitter2": {
430 | "version": "0.4.14",
431 | "resolved": false,
432 | "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
433 | "dev": true
434 | },
435 | "exit": {
436 | "version": "0.1.2",
437 | "resolved": false,
438 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
439 | "dev": true
440 | },
441 | "expand-brackets": {
442 | "version": "0.1.4",
443 | "resolved": false,
444 | "integrity": "sha1-eXueSEEBIF9BjOyuxjEsEy9R4q4=",
445 | "dev": true
446 | },
447 | "expand-range": {
448 | "version": "1.8.1",
449 | "resolved": false,
450 | "integrity": "sha1-rL1j5W79kTlyK3VfCZudtawfM/Y=",
451 | "dev": true,
452 | "requires": {
453 | "fill-range": "^2.1.0"
454 | }
455 | },
456 | "extglob": {
457 | "version": "0.3.1",
458 | "resolved": false,
459 | "integrity": "sha1-TzEkHA3dyQrIxynLbXyHLe53yPU=",
460 | "dev": true,
461 | "requires": {
462 | "ansi-green": "^0.1.1",
463 | "is-extglob": "^1.0.0",
464 | "success-symbol": "^0.1.0"
465 | }
466 | },
467 | "faye-websocket": {
468 | "version": "0.4.4",
469 | "resolved": false,
470 | "integrity": "sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=",
471 | "dev": true
472 | },
473 | "figures": {
474 | "version": "1.7.0",
475 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
476 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
477 | "dev": true,
478 | "requires": {
479 | "escape-string-regexp": "^1.0.5",
480 | "object-assign": "^4.1.0"
481 | },
482 | "dependencies": {
483 | "escape-string-regexp": {
484 | "version": "1.0.5",
485 | "resolved": false,
486 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
487 | "dev": true
488 | }
489 | }
490 | },
491 | "filename-regex": {
492 | "version": "2.0.0",
493 | "resolved": false,
494 | "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U=",
495 | "dev": true
496 | },
497 | "fill-range": {
498 | "version": "2.2.3",
499 | "resolved": false,
500 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
501 | "dev": true,
502 | "requires": {
503 | "is-number": "^2.1.0",
504 | "isobject": "^2.0.0",
505 | "randomatic": "^1.1.3",
506 | "repeat-element": "^1.1.2",
507 | "repeat-string": "^1.5.2"
508 | }
509 | },
510 | "finalhandler": {
511 | "version": "0.5.0",
512 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz",
513 | "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=",
514 | "dev": true,
515 | "requires": {
516 | "debug": "~2.2.0",
517 | "escape-html": "~1.0.3",
518 | "on-finished": "~2.3.0",
519 | "statuses": "~1.3.0",
520 | "unpipe": "~1.0.0"
521 | }
522 | },
523 | "find-up": {
524 | "version": "1.1.2",
525 | "resolved": false,
526 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
527 | "dev": true,
528 | "requires": {
529 | "path-exists": "^2.0.0",
530 | "pinkie-promise": "^2.0.0"
531 | }
532 | },
533 | "findup-sync": {
534 | "version": "0.3.0",
535 | "resolved": false,
536 | "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
537 | "dev": true,
538 | "requires": {
539 | "glob": "~5.0.0"
540 | },
541 | "dependencies": {
542 | "glob": {
543 | "version": "5.0.15",
544 | "resolved": false,
545 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
546 | "dev": true,
547 | "requires": {
548 | "inflight": "^1.0.4",
549 | "inherits": "2",
550 | "minimatch": "2 || 3",
551 | "once": "^1.3.0",
552 | "path-is-absolute": "^1.0.0"
553 | }
554 | }
555 | }
556 | },
557 | "for-in": {
558 | "version": "0.1.4",
559 | "resolved": false,
560 | "integrity": "sha1-n1z3tP/H4a5lkaTpexd6pZ1w+y4=",
561 | "dev": true
562 | },
563 | "for-own": {
564 | "version": "0.1.3",
565 | "resolved": false,
566 | "integrity": "sha1-YGREzed8LwoRCIFp4uNU6vVudP4=",
567 | "dev": true,
568 | "requires": {
569 | "for-in": "^0.1.4"
570 | }
571 | },
572 | "fresh": {
573 | "version": "0.3.0",
574 | "resolved": false,
575 | "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=",
576 | "dev": true
577 | },
578 | "fs.realpath": {
579 | "version": "1.0.0",
580 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
581 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
582 | "dev": true
583 | },
584 | "fsevents": {
585 | "version": "1.1.2",
586 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz",
587 | "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
588 | "dev": true,
589 | "optional": true,
590 | "requires": {
591 | "nan": "^2.3.0",
592 | "node-pre-gyp": "^0.6.36"
593 | },
594 | "dependencies": {
595 | "abbrev": {
596 | "version": "1.1.0",
597 | "bundled": true,
598 | "dev": true,
599 | "optional": true
600 | },
601 | "ajv": {
602 | "version": "4.11.8",
603 | "bundled": true,
604 | "dev": true,
605 | "optional": true,
606 | "requires": {
607 | "co": "^4.6.0",
608 | "json-stable-stringify": "^1.0.1"
609 | }
610 | },
611 | "ansi-regex": {
612 | "version": "2.1.1",
613 | "bundled": true,
614 | "dev": true,
615 | "optional": true
616 | },
617 | "aproba": {
618 | "version": "1.1.1",
619 | "bundled": true,
620 | "dev": true,
621 | "optional": true
622 | },
623 | "are-we-there-yet": {
624 | "version": "1.1.4",
625 | "bundled": true,
626 | "dev": true,
627 | "optional": true,
628 | "requires": {
629 | "delegates": "^1.0.0",
630 | "readable-stream": "^2.0.6"
631 | }
632 | },
633 | "asn1": {
634 | "version": "0.2.3",
635 | "bundled": true,
636 | "dev": true,
637 | "optional": true
638 | },
639 | "assert-plus": {
640 | "version": "0.2.0",
641 | "bundled": true,
642 | "dev": true,
643 | "optional": true
644 | },
645 | "asynckit": {
646 | "version": "0.4.0",
647 | "bundled": true,
648 | "dev": true,
649 | "optional": true
650 | },
651 | "aws-sign2": {
652 | "version": "0.6.0",
653 | "bundled": true,
654 | "dev": true,
655 | "optional": true
656 | },
657 | "aws4": {
658 | "version": "1.6.0",
659 | "bundled": true,
660 | "dev": true,
661 | "optional": true
662 | },
663 | "balanced-match": {
664 | "version": "0.4.2",
665 | "bundled": true,
666 | "dev": true,
667 | "optional": true
668 | },
669 | "bcrypt-pbkdf": {
670 | "version": "1.0.1",
671 | "bundled": true,
672 | "dev": true,
673 | "optional": true,
674 | "requires": {
675 | "tweetnacl": "^0.14.3"
676 | }
677 | },
678 | "block-stream": {
679 | "version": "0.0.9",
680 | "bundled": true,
681 | "dev": true,
682 | "optional": true,
683 | "requires": {
684 | "inherits": "~2.0.0"
685 | }
686 | },
687 | "boom": {
688 | "version": "2.10.1",
689 | "bundled": true,
690 | "dev": true,
691 | "optional": true,
692 | "requires": {
693 | "hoek": "2.x.x"
694 | }
695 | },
696 | "brace-expansion": {
697 | "version": "1.1.7",
698 | "bundled": true,
699 | "dev": true,
700 | "optional": true,
701 | "requires": {
702 | "balanced-match": "^0.4.1",
703 | "concat-map": "0.0.1"
704 | }
705 | },
706 | "buffer-shims": {
707 | "version": "1.0.0",
708 | "bundled": true,
709 | "dev": true,
710 | "optional": true
711 | },
712 | "caseless": {
713 | "version": "0.12.0",
714 | "bundled": true,
715 | "dev": true,
716 | "optional": true
717 | },
718 | "co": {
719 | "version": "4.6.0",
720 | "bundled": true,
721 | "dev": true,
722 | "optional": true
723 | },
724 | "code-point-at": {
725 | "version": "1.1.0",
726 | "bundled": true,
727 | "dev": true,
728 | "optional": true
729 | },
730 | "combined-stream": {
731 | "version": "1.0.5",
732 | "bundled": true,
733 | "dev": true,
734 | "optional": true,
735 | "requires": {
736 | "delayed-stream": "~1.0.0"
737 | }
738 | },
739 | "concat-map": {
740 | "version": "0.0.1",
741 | "bundled": true,
742 | "dev": true,
743 | "optional": true
744 | },
745 | "console-control-strings": {
746 | "version": "1.1.0",
747 | "bundled": true,
748 | "dev": true,
749 | "optional": true
750 | },
751 | "core-util-is": {
752 | "version": "1.0.2",
753 | "bundled": true,
754 | "dev": true,
755 | "optional": true
756 | },
757 | "cryptiles": {
758 | "version": "2.0.5",
759 | "bundled": true,
760 | "dev": true,
761 | "optional": true,
762 | "requires": {
763 | "boom": "2.x.x"
764 | }
765 | },
766 | "dashdash": {
767 | "version": "1.14.1",
768 | "bundled": true,
769 | "dev": true,
770 | "optional": true,
771 | "requires": {
772 | "assert-plus": "^1.0.0"
773 | },
774 | "dependencies": {
775 | "assert-plus": {
776 | "version": "1.0.0",
777 | "bundled": true,
778 | "dev": true,
779 | "optional": true
780 | }
781 | }
782 | },
783 | "debug": {
784 | "version": "2.6.8",
785 | "bundled": true,
786 | "dev": true,
787 | "optional": true,
788 | "requires": {
789 | "ms": "2.0.0"
790 | }
791 | },
792 | "deep-extend": {
793 | "version": "0.4.2",
794 | "bundled": true,
795 | "dev": true,
796 | "optional": true
797 | },
798 | "delayed-stream": {
799 | "version": "1.0.0",
800 | "bundled": true,
801 | "dev": true,
802 | "optional": true
803 | },
804 | "delegates": {
805 | "version": "1.0.0",
806 | "bundled": true,
807 | "dev": true,
808 | "optional": true
809 | },
810 | "ecc-jsbn": {
811 | "version": "0.1.1",
812 | "bundled": true,
813 | "dev": true,
814 | "optional": true,
815 | "requires": {
816 | "jsbn": "~0.1.0"
817 | }
818 | },
819 | "extend": {
820 | "version": "3.0.1",
821 | "bundled": true,
822 | "dev": true,
823 | "optional": true
824 | },
825 | "extsprintf": {
826 | "version": "1.0.2",
827 | "bundled": true,
828 | "dev": true,
829 | "optional": true
830 | },
831 | "forever-agent": {
832 | "version": "0.6.1",
833 | "bundled": true,
834 | "dev": true,
835 | "optional": true
836 | },
837 | "form-data": {
838 | "version": "2.1.4",
839 | "bundled": true,
840 | "dev": true,
841 | "optional": true,
842 | "requires": {
843 | "asynckit": "^0.4.0",
844 | "combined-stream": "^1.0.5",
845 | "mime-types": "^2.1.12"
846 | }
847 | },
848 | "fs.realpath": {
849 | "version": "1.0.0",
850 | "bundled": true,
851 | "dev": true,
852 | "optional": true
853 | },
854 | "fstream": {
855 | "version": "1.0.11",
856 | "bundled": true,
857 | "dev": true,
858 | "optional": true,
859 | "requires": {
860 | "graceful-fs": "^4.1.2",
861 | "inherits": "~2.0.0",
862 | "mkdirp": ">=0.5 0",
863 | "rimraf": "2"
864 | }
865 | },
866 | "fstream-ignore": {
867 | "version": "1.0.5",
868 | "bundled": true,
869 | "dev": true,
870 | "optional": true,
871 | "requires": {
872 | "fstream": "^1.0.0",
873 | "inherits": "2",
874 | "minimatch": "^3.0.0"
875 | }
876 | },
877 | "gauge": {
878 | "version": "2.7.4",
879 | "bundled": true,
880 | "dev": true,
881 | "optional": true,
882 | "requires": {
883 | "aproba": "^1.0.3",
884 | "console-control-strings": "^1.0.0",
885 | "has-unicode": "^2.0.0",
886 | "object-assign": "^4.1.0",
887 | "signal-exit": "^3.0.0",
888 | "string-width": "^1.0.1",
889 | "strip-ansi": "^3.0.1",
890 | "wide-align": "^1.1.0"
891 | }
892 | },
893 | "getpass": {
894 | "version": "0.1.7",
895 | "bundled": true,
896 | "dev": true,
897 | "optional": true,
898 | "requires": {
899 | "assert-plus": "^1.0.0"
900 | },
901 | "dependencies": {
902 | "assert-plus": {
903 | "version": "1.0.0",
904 | "bundled": true,
905 | "dev": true,
906 | "optional": true
907 | }
908 | }
909 | },
910 | "glob": {
911 | "version": "7.1.2",
912 | "bundled": true,
913 | "dev": true,
914 | "optional": true,
915 | "requires": {
916 | "fs.realpath": "^1.0.0",
917 | "inflight": "^1.0.4",
918 | "inherits": "2",
919 | "minimatch": "^3.0.4",
920 | "once": "^1.3.0",
921 | "path-is-absolute": "^1.0.0"
922 | }
923 | },
924 | "graceful-fs": {
925 | "version": "4.1.11",
926 | "bundled": true,
927 | "dev": true,
928 | "optional": true
929 | },
930 | "har-schema": {
931 | "version": "1.0.5",
932 | "bundled": true,
933 | "dev": true,
934 | "optional": true
935 | },
936 | "har-validator": {
937 | "version": "4.2.1",
938 | "bundled": true,
939 | "dev": true,
940 | "optional": true,
941 | "requires": {
942 | "ajv": "^4.9.1",
943 | "har-schema": "^1.0.5"
944 | }
945 | },
946 | "has-unicode": {
947 | "version": "2.0.1",
948 | "bundled": true,
949 | "dev": true,
950 | "optional": true
951 | },
952 | "hawk": {
953 | "version": "3.1.3",
954 | "bundled": true,
955 | "dev": true,
956 | "optional": true,
957 | "requires": {
958 | "boom": "2.x.x",
959 | "cryptiles": "2.x.x",
960 | "hoek": "2.x.x",
961 | "sntp": "1.x.x"
962 | }
963 | },
964 | "hoek": {
965 | "version": "2.16.3",
966 | "bundled": true,
967 | "dev": true,
968 | "optional": true
969 | },
970 | "http-signature": {
971 | "version": "1.1.1",
972 | "bundled": true,
973 | "dev": true,
974 | "optional": true,
975 | "requires": {
976 | "assert-plus": "^0.2.0",
977 | "jsprim": "^1.2.2",
978 | "sshpk": "^1.7.0"
979 | }
980 | },
981 | "inflight": {
982 | "version": "1.0.6",
983 | "bundled": true,
984 | "dev": true,
985 | "optional": true,
986 | "requires": {
987 | "once": "^1.3.0",
988 | "wrappy": "1"
989 | }
990 | },
991 | "inherits": {
992 | "version": "2.0.3",
993 | "bundled": true,
994 | "dev": true,
995 | "optional": true
996 | },
997 | "ini": {
998 | "version": "1.3.4",
999 | "bundled": true,
1000 | "dev": true,
1001 | "optional": true
1002 | },
1003 | "is-fullwidth-code-point": {
1004 | "version": "1.0.0",
1005 | "bundled": true,
1006 | "dev": true,
1007 | "optional": true,
1008 | "requires": {
1009 | "number-is-nan": "^1.0.0"
1010 | }
1011 | },
1012 | "is-typedarray": {
1013 | "version": "1.0.0",
1014 | "bundled": true,
1015 | "dev": true,
1016 | "optional": true
1017 | },
1018 | "isarray": {
1019 | "version": "1.0.0",
1020 | "bundled": true,
1021 | "dev": true,
1022 | "optional": true
1023 | },
1024 | "isstream": {
1025 | "version": "0.1.2",
1026 | "bundled": true,
1027 | "dev": true,
1028 | "optional": true
1029 | },
1030 | "jodid25519": {
1031 | "version": "1.0.2",
1032 | "bundled": true,
1033 | "dev": true,
1034 | "optional": true,
1035 | "requires": {
1036 | "jsbn": "~0.1.0"
1037 | }
1038 | },
1039 | "jsbn": {
1040 | "version": "0.1.1",
1041 | "bundled": true,
1042 | "dev": true,
1043 | "optional": true
1044 | },
1045 | "json-schema": {
1046 | "version": "0.2.3",
1047 | "bundled": true,
1048 | "dev": true,
1049 | "optional": true
1050 | },
1051 | "json-stable-stringify": {
1052 | "version": "1.0.1",
1053 | "bundled": true,
1054 | "dev": true,
1055 | "optional": true,
1056 | "requires": {
1057 | "jsonify": "~0.0.0"
1058 | }
1059 | },
1060 | "json-stringify-safe": {
1061 | "version": "5.0.1",
1062 | "bundled": true,
1063 | "dev": true,
1064 | "optional": true
1065 | },
1066 | "jsonify": {
1067 | "version": "0.0.0",
1068 | "bundled": true,
1069 | "dev": true,
1070 | "optional": true
1071 | },
1072 | "jsprim": {
1073 | "version": "1.4.0",
1074 | "bundled": true,
1075 | "dev": true,
1076 | "optional": true,
1077 | "requires": {
1078 | "assert-plus": "1.0.0",
1079 | "extsprintf": "1.0.2",
1080 | "json-schema": "0.2.3",
1081 | "verror": "1.3.6"
1082 | },
1083 | "dependencies": {
1084 | "assert-plus": {
1085 | "version": "1.0.0",
1086 | "bundled": true,
1087 | "dev": true,
1088 | "optional": true
1089 | }
1090 | }
1091 | },
1092 | "mime-db": {
1093 | "version": "1.27.0",
1094 | "bundled": true,
1095 | "dev": true,
1096 | "optional": true
1097 | },
1098 | "mime-types": {
1099 | "version": "2.1.15",
1100 | "bundled": true,
1101 | "dev": true,
1102 | "optional": true,
1103 | "requires": {
1104 | "mime-db": "~1.27.0"
1105 | }
1106 | },
1107 | "minimatch": {
1108 | "version": "3.0.4",
1109 | "bundled": true,
1110 | "dev": true,
1111 | "optional": true,
1112 | "requires": {
1113 | "brace-expansion": "^1.1.7"
1114 | }
1115 | },
1116 | "minimist": {
1117 | "version": "0.0.8",
1118 | "bundled": true,
1119 | "dev": true,
1120 | "optional": true
1121 | },
1122 | "mkdirp": {
1123 | "version": "0.5.1",
1124 | "bundled": true,
1125 | "dev": true,
1126 | "optional": true,
1127 | "requires": {
1128 | "minimist": "0.0.8"
1129 | }
1130 | },
1131 | "ms": {
1132 | "version": "2.0.0",
1133 | "bundled": true,
1134 | "dev": true,
1135 | "optional": true
1136 | },
1137 | "node-pre-gyp": {
1138 | "version": "0.6.36",
1139 | "bundled": true,
1140 | "dev": true,
1141 | "optional": true,
1142 | "requires": {
1143 | "mkdirp": "^0.5.1",
1144 | "nopt": "^4.0.1",
1145 | "npmlog": "^4.0.2",
1146 | "rc": "^1.1.7",
1147 | "request": "^2.81.0",
1148 | "rimraf": "^2.6.1",
1149 | "semver": "^5.3.0",
1150 | "tar": "^2.2.1",
1151 | "tar-pack": "^3.4.0"
1152 | }
1153 | },
1154 | "nopt": {
1155 | "version": "4.0.1",
1156 | "bundled": true,
1157 | "dev": true,
1158 | "optional": true,
1159 | "requires": {
1160 | "abbrev": "1",
1161 | "osenv": "^0.1.4"
1162 | }
1163 | },
1164 | "npmlog": {
1165 | "version": "4.1.0",
1166 | "bundled": true,
1167 | "dev": true,
1168 | "optional": true,
1169 | "requires": {
1170 | "are-we-there-yet": "~1.1.2",
1171 | "console-control-strings": "~1.1.0",
1172 | "gauge": "~2.7.3",
1173 | "set-blocking": "~2.0.0"
1174 | }
1175 | },
1176 | "number-is-nan": {
1177 | "version": "1.0.1",
1178 | "bundled": true,
1179 | "dev": true,
1180 | "optional": true
1181 | },
1182 | "oauth-sign": {
1183 | "version": "0.8.2",
1184 | "bundled": true,
1185 | "dev": true,
1186 | "optional": true
1187 | },
1188 | "object-assign": {
1189 | "version": "4.1.1",
1190 | "bundled": true,
1191 | "dev": true,
1192 | "optional": true
1193 | },
1194 | "once": {
1195 | "version": "1.4.0",
1196 | "bundled": true,
1197 | "dev": true,
1198 | "optional": true,
1199 | "requires": {
1200 | "wrappy": "1"
1201 | }
1202 | },
1203 | "os-homedir": {
1204 | "version": "1.0.2",
1205 | "bundled": true,
1206 | "dev": true,
1207 | "optional": true
1208 | },
1209 | "os-tmpdir": {
1210 | "version": "1.0.2",
1211 | "bundled": true,
1212 | "dev": true,
1213 | "optional": true
1214 | },
1215 | "osenv": {
1216 | "version": "0.1.4",
1217 | "bundled": true,
1218 | "dev": true,
1219 | "optional": true,
1220 | "requires": {
1221 | "os-homedir": "^1.0.0",
1222 | "os-tmpdir": "^1.0.0"
1223 | }
1224 | },
1225 | "path-is-absolute": {
1226 | "version": "1.0.1",
1227 | "bundled": true,
1228 | "dev": true,
1229 | "optional": true
1230 | },
1231 | "performance-now": {
1232 | "version": "0.2.0",
1233 | "bundled": true,
1234 | "dev": true,
1235 | "optional": true
1236 | },
1237 | "process-nextick-args": {
1238 | "version": "1.0.7",
1239 | "bundled": true,
1240 | "dev": true,
1241 | "optional": true
1242 | },
1243 | "punycode": {
1244 | "version": "1.4.1",
1245 | "bundled": true,
1246 | "dev": true,
1247 | "optional": true
1248 | },
1249 | "qs": {
1250 | "version": "6.4.0",
1251 | "bundled": true,
1252 | "dev": true,
1253 | "optional": true
1254 | },
1255 | "rc": {
1256 | "version": "1.2.1",
1257 | "bundled": true,
1258 | "dev": true,
1259 | "optional": true,
1260 | "requires": {
1261 | "deep-extend": "~0.4.0",
1262 | "ini": "~1.3.0",
1263 | "minimist": "^1.2.0",
1264 | "strip-json-comments": "~2.0.1"
1265 | },
1266 | "dependencies": {
1267 | "minimist": {
1268 | "version": "1.2.0",
1269 | "bundled": true,
1270 | "dev": true,
1271 | "optional": true
1272 | }
1273 | }
1274 | },
1275 | "readable-stream": {
1276 | "version": "2.2.9",
1277 | "bundled": true,
1278 | "dev": true,
1279 | "optional": true,
1280 | "requires": {
1281 | "buffer-shims": "~1.0.0",
1282 | "core-util-is": "~1.0.0",
1283 | "inherits": "~2.0.1",
1284 | "isarray": "~1.0.0",
1285 | "process-nextick-args": "~1.0.6",
1286 | "string_decoder": "~1.0.0",
1287 | "util-deprecate": "~1.0.1"
1288 | }
1289 | },
1290 | "request": {
1291 | "version": "2.81.0",
1292 | "bundled": true,
1293 | "dev": true,
1294 | "optional": true,
1295 | "requires": {
1296 | "aws-sign2": "~0.6.0",
1297 | "aws4": "^1.2.1",
1298 | "caseless": "~0.12.0",
1299 | "combined-stream": "~1.0.5",
1300 | "extend": "~3.0.0",
1301 | "forever-agent": "~0.6.1",
1302 | "form-data": "~2.1.1",
1303 | "har-validator": "~4.2.1",
1304 | "hawk": "~3.1.3",
1305 | "http-signature": "~1.1.0",
1306 | "is-typedarray": "~1.0.0",
1307 | "isstream": "~0.1.2",
1308 | "json-stringify-safe": "~5.0.1",
1309 | "mime-types": "~2.1.7",
1310 | "oauth-sign": "~0.8.1",
1311 | "performance-now": "^0.2.0",
1312 | "qs": "~6.4.0",
1313 | "safe-buffer": "^5.0.1",
1314 | "stringstream": "~0.0.4",
1315 | "tough-cookie": "~2.3.0",
1316 | "tunnel-agent": "^0.6.0",
1317 | "uuid": "^3.0.0"
1318 | }
1319 | },
1320 | "rimraf": {
1321 | "version": "2.6.1",
1322 | "bundled": true,
1323 | "dev": true,
1324 | "optional": true,
1325 | "requires": {
1326 | "glob": "^7.0.5"
1327 | }
1328 | },
1329 | "safe-buffer": {
1330 | "version": "5.0.1",
1331 | "bundled": true,
1332 | "dev": true,
1333 | "optional": true
1334 | },
1335 | "semver": {
1336 | "version": "5.3.0",
1337 | "bundled": true,
1338 | "dev": true,
1339 | "optional": true
1340 | },
1341 | "set-blocking": {
1342 | "version": "2.0.0",
1343 | "bundled": true,
1344 | "dev": true,
1345 | "optional": true
1346 | },
1347 | "signal-exit": {
1348 | "version": "3.0.2",
1349 | "bundled": true,
1350 | "dev": true,
1351 | "optional": true
1352 | },
1353 | "sntp": {
1354 | "version": "1.0.9",
1355 | "bundled": true,
1356 | "dev": true,
1357 | "optional": true,
1358 | "requires": {
1359 | "hoek": "2.x.x"
1360 | }
1361 | },
1362 | "sshpk": {
1363 | "version": "1.13.0",
1364 | "bundled": true,
1365 | "dev": true,
1366 | "optional": true,
1367 | "requires": {
1368 | "asn1": "~0.2.3",
1369 | "assert-plus": "^1.0.0",
1370 | "bcrypt-pbkdf": "^1.0.0",
1371 | "dashdash": "^1.12.0",
1372 | "ecc-jsbn": "~0.1.1",
1373 | "getpass": "^0.1.1",
1374 | "jodid25519": "^1.0.0",
1375 | "jsbn": "~0.1.0",
1376 | "tweetnacl": "~0.14.0"
1377 | },
1378 | "dependencies": {
1379 | "assert-plus": {
1380 | "version": "1.0.0",
1381 | "bundled": true,
1382 | "dev": true,
1383 | "optional": true
1384 | }
1385 | }
1386 | },
1387 | "string-width": {
1388 | "version": "1.0.2",
1389 | "bundled": true,
1390 | "dev": true,
1391 | "optional": true,
1392 | "requires": {
1393 | "code-point-at": "^1.0.0",
1394 | "is-fullwidth-code-point": "^1.0.0",
1395 | "strip-ansi": "^3.0.0"
1396 | }
1397 | },
1398 | "string_decoder": {
1399 | "version": "1.0.1",
1400 | "bundled": true,
1401 | "dev": true,
1402 | "optional": true,
1403 | "requires": {
1404 | "safe-buffer": "^5.0.1"
1405 | }
1406 | },
1407 | "stringstream": {
1408 | "version": "0.0.5",
1409 | "bundled": true,
1410 | "dev": true,
1411 | "optional": true
1412 | },
1413 | "strip-ansi": {
1414 | "version": "3.0.1",
1415 | "bundled": true,
1416 | "dev": true,
1417 | "optional": true,
1418 | "requires": {
1419 | "ansi-regex": "^2.0.0"
1420 | }
1421 | },
1422 | "strip-json-comments": {
1423 | "version": "2.0.1",
1424 | "bundled": true,
1425 | "dev": true,
1426 | "optional": true
1427 | },
1428 | "tar": {
1429 | "version": "2.2.1",
1430 | "bundled": true,
1431 | "dev": true,
1432 | "optional": true,
1433 | "requires": {
1434 | "block-stream": "*",
1435 | "fstream": "^1.0.2",
1436 | "inherits": "2"
1437 | }
1438 | },
1439 | "tar-pack": {
1440 | "version": "3.4.0",
1441 | "bundled": true,
1442 | "dev": true,
1443 | "optional": true,
1444 | "requires": {
1445 | "debug": "^2.2.0",
1446 | "fstream": "^1.0.10",
1447 | "fstream-ignore": "^1.0.5",
1448 | "once": "^1.3.3",
1449 | "readable-stream": "^2.1.4",
1450 | "rimraf": "^2.5.1",
1451 | "tar": "^2.2.1",
1452 | "uid-number": "^0.0.6"
1453 | }
1454 | },
1455 | "tough-cookie": {
1456 | "version": "2.3.2",
1457 | "bundled": true,
1458 | "dev": true,
1459 | "optional": true,
1460 | "requires": {
1461 | "punycode": "^1.4.1"
1462 | }
1463 | },
1464 | "tunnel-agent": {
1465 | "version": "0.6.0",
1466 | "bundled": true,
1467 | "dev": true,
1468 | "optional": true,
1469 | "requires": {
1470 | "safe-buffer": "^5.0.1"
1471 | }
1472 | },
1473 | "tweetnacl": {
1474 | "version": "0.14.5",
1475 | "bundled": true,
1476 | "dev": true,
1477 | "optional": true
1478 | },
1479 | "uid-number": {
1480 | "version": "0.0.6",
1481 | "bundled": true,
1482 | "dev": true,
1483 | "optional": true
1484 | },
1485 | "util-deprecate": {
1486 | "version": "1.0.2",
1487 | "bundled": true,
1488 | "dev": true,
1489 | "optional": true
1490 | },
1491 | "uuid": {
1492 | "version": "3.0.1",
1493 | "bundled": true,
1494 | "dev": true,
1495 | "optional": true
1496 | },
1497 | "verror": {
1498 | "version": "1.3.6",
1499 | "bundled": true,
1500 | "dev": true,
1501 | "optional": true,
1502 | "requires": {
1503 | "extsprintf": "1.0.2"
1504 | }
1505 | },
1506 | "wide-align": {
1507 | "version": "1.1.2",
1508 | "bundled": true,
1509 | "dev": true,
1510 | "optional": true,
1511 | "requires": {
1512 | "string-width": "^1.0.2"
1513 | }
1514 | },
1515 | "wrappy": {
1516 | "version": "1.0.2",
1517 | "bundled": true,
1518 | "dev": true,
1519 | "optional": true
1520 | }
1521 | }
1522 | },
1523 | "gaze": {
1524 | "version": "0.5.2",
1525 | "resolved": false,
1526 | "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
1527 | "dev": true,
1528 | "requires": {
1529 | "globule": "~0.1.0"
1530 | }
1531 | },
1532 | "get-stdin": {
1533 | "version": "4.0.1",
1534 | "resolved": false,
1535 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
1536 | "dev": true
1537 | },
1538 | "getobject": {
1539 | "version": "0.1.0",
1540 | "resolved": false,
1541 | "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
1542 | "dev": true
1543 | },
1544 | "glob": {
1545 | "version": "7.0.6",
1546 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
1547 | "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
1548 | "dev": true,
1549 | "requires": {
1550 | "fs.realpath": "^1.0.0",
1551 | "inflight": "^1.0.4",
1552 | "inherits": "2",
1553 | "minimatch": "^3.0.2",
1554 | "once": "^1.3.0",
1555 | "path-is-absolute": "^1.0.0"
1556 | }
1557 | },
1558 | "glob-base": {
1559 | "version": "0.3.0",
1560 | "resolved": false,
1561 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1562 | "dev": true,
1563 | "requires": {
1564 | "glob-parent": "^2.0.0",
1565 | "is-glob": "^2.0.0"
1566 | }
1567 | },
1568 | "glob-parent": {
1569 | "version": "2.0.0",
1570 | "resolved": false,
1571 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1572 | "dev": true,
1573 | "requires": {
1574 | "is-glob": "^2.0.0"
1575 | }
1576 | },
1577 | "globule": {
1578 | "version": "0.1.0",
1579 | "resolved": false,
1580 | "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
1581 | "dev": true,
1582 | "requires": {
1583 | "glob": "~3.1.21",
1584 | "lodash": "~1.0.1",
1585 | "minimatch": "~0.2.11"
1586 | },
1587 | "dependencies": {
1588 | "glob": {
1589 | "version": "3.1.21",
1590 | "resolved": false,
1591 | "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
1592 | "dev": true,
1593 | "requires": {
1594 | "graceful-fs": "~1.2.0",
1595 | "inherits": "1",
1596 | "minimatch": "~0.2.11"
1597 | }
1598 | },
1599 | "graceful-fs": {
1600 | "version": "1.2.3",
1601 | "resolved": false,
1602 | "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
1603 | "dev": true
1604 | },
1605 | "inherits": {
1606 | "version": "1.0.2",
1607 | "resolved": false,
1608 | "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
1609 | "dev": true
1610 | },
1611 | "lodash": {
1612 | "version": "1.0.2",
1613 | "resolved": false,
1614 | "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
1615 | "dev": true
1616 | },
1617 | "minimatch": {
1618 | "version": "0.2.14",
1619 | "resolved": false,
1620 | "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
1621 | "dev": true,
1622 | "requires": {
1623 | "lru-cache": "2",
1624 | "sigmund": "~1.0.0"
1625 | }
1626 | }
1627 | }
1628 | },
1629 | "graceful-fs": {
1630 | "version": "4.1.11",
1631 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1632 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1633 | "dev": true
1634 | },
1635 | "grunt": {
1636 | "version": "1.0.1",
1637 | "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
1638 | "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=",
1639 | "dev": true,
1640 | "requires": {
1641 | "coffee-script": "~1.10.0",
1642 | "dateformat": "~1.0.12",
1643 | "eventemitter2": "~0.4.13",
1644 | "exit": "~0.1.1",
1645 | "findup-sync": "~0.3.0",
1646 | "glob": "~7.0.0",
1647 | "grunt-cli": "~1.2.0",
1648 | "grunt-known-options": "~1.1.0",
1649 | "grunt-legacy-log": "~1.0.0",
1650 | "grunt-legacy-util": "~1.0.0",
1651 | "iconv-lite": "~0.4.13",
1652 | "js-yaml": "~3.5.2",
1653 | "minimatch": "~3.0.0",
1654 | "nopt": "~3.0.6",
1655 | "path-is-absolute": "~1.0.0",
1656 | "rimraf": "~2.2.8"
1657 | },
1658 | "dependencies": {
1659 | "grunt-cli": {
1660 | "version": "1.2.0",
1661 | "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
1662 | "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
1663 | "dev": true,
1664 | "requires": {
1665 | "findup-sync": "~0.3.0",
1666 | "grunt-known-options": "~1.1.0",
1667 | "nopt": "~3.0.6",
1668 | "resolve": "~1.1.0"
1669 | }
1670 | }
1671 | }
1672 | },
1673 | "grunt-banner": {
1674 | "version": "0.6.0",
1675 | "resolved": false,
1676 | "integrity": "sha1-P4eQIdEj+linuloLb7a+QStYhaw=",
1677 | "dev": true,
1678 | "requires": {
1679 | "chalk": "^1.1.0"
1680 | },
1681 | "dependencies": {
1682 | "ansi-regex": {
1683 | "version": "2.0.0",
1684 | "resolved": false,
1685 | "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
1686 | "dev": true
1687 | },
1688 | "ansi-styles": {
1689 | "version": "2.1.0",
1690 | "resolved": false,
1691 | "integrity": "sha1-mQ90cUaSe1Wakyv5KVkWPWDA0OI=",
1692 | "dev": true
1693 | },
1694 | "chalk": {
1695 | "version": "1.1.1",
1696 | "resolved": false,
1697 | "integrity": "sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk=",
1698 | "dev": true,
1699 | "requires": {
1700 | "ansi-styles": "^2.1.0",
1701 | "escape-string-regexp": "^1.0.2",
1702 | "has-ansi": "^2.0.0",
1703 | "strip-ansi": "^3.0.0",
1704 | "supports-color": "^2.0.0"
1705 | }
1706 | },
1707 | "has-ansi": {
1708 | "version": "2.0.0",
1709 | "resolved": false,
1710 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1711 | "dev": true,
1712 | "requires": {
1713 | "ansi-regex": "^2.0.0"
1714 | }
1715 | },
1716 | "strip-ansi": {
1717 | "version": "3.0.0",
1718 | "resolved": false,
1719 | "integrity": "sha1-dRC2ZVZ8qRTMtdfgcnY6yWi+NyQ=",
1720 | "dev": true,
1721 | "requires": {
1722 | "ansi-regex": "^2.0.0"
1723 | }
1724 | },
1725 | "supports-color": {
1726 | "version": "2.0.0",
1727 | "resolved": false,
1728 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1729 | "dev": true
1730 | }
1731 | }
1732 | },
1733 | "grunt-contrib-clean": {
1734 | "version": "0.6.0",
1735 | "resolved": false,
1736 | "integrity": "sha1-9TLbpLghJnTHwBPhRr2mY4uQSPY=",
1737 | "dev": true,
1738 | "requires": {
1739 | "rimraf": "~2.2.1"
1740 | }
1741 | },
1742 | "grunt-contrib-connect": {
1743 | "version": "0.11.2",
1744 | "resolved": false,
1745 | "integrity": "sha1-HAoHB9OzKNnPO0tJDrhMSV2Tau0=",
1746 | "dev": true,
1747 | "requires": {
1748 | "async": "^0.9.0",
1749 | "connect": "^3.4.0",
1750 | "connect-livereload": "^0.5.0",
1751 | "morgan": "^1.6.1",
1752 | "opn": "^1.0.0",
1753 | "portscanner": "^1.0.0",
1754 | "serve-index": "^1.7.1",
1755 | "serve-static": "^1.10.0"
1756 | },
1757 | "dependencies": {
1758 | "async": {
1759 | "version": "0.9.2",
1760 | "resolved": false,
1761 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
1762 | "dev": true
1763 | }
1764 | }
1765 | },
1766 | "grunt-contrib-uglify": {
1767 | "version": "0.11.1",
1768 | "resolved": false,
1769 | "integrity": "sha1-XiKi9nbNEdhx/CoPCKqbKXMEUyU=",
1770 | "dev": true,
1771 | "requires": {
1772 | "chalk": "^1.0.0",
1773 | "lodash": "^4.0.1",
1774 | "maxmin": "^2.0.0",
1775 | "uglify-js": "~2.6.0",
1776 | "uri-path": "^1.0.0"
1777 | },
1778 | "dependencies": {
1779 | "lodash": {
1780 | "version": "4.17.4",
1781 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
1782 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
1783 | "dev": true
1784 | }
1785 | }
1786 | },
1787 | "grunt-contrib-watch": {
1788 | "version": "0.6.1",
1789 | "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.6.1.tgz",
1790 | "integrity": "sha1-ZP3LolpjX1tNobbOb5DaCutuPxU=",
1791 | "dev": true,
1792 | "requires": {
1793 | "async": "~0.2.9",
1794 | "gaze": "~0.5.1",
1795 | "lodash": "~2.4.1",
1796 | "tiny-lr-fork": "0.0.5"
1797 | },
1798 | "dependencies": {
1799 | "async": {
1800 | "version": "0.2.10",
1801 | "resolved": false,
1802 | "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
1803 | "dev": true
1804 | },
1805 | "lodash": {
1806 | "version": "2.4.2",
1807 | "resolved": false,
1808 | "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1809 | "dev": true
1810 | }
1811 | }
1812 | },
1813 | "grunt-known-options": {
1814 | "version": "1.1.0",
1815 | "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
1816 | "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=",
1817 | "dev": true
1818 | },
1819 | "grunt-legacy-log": {
1820 | "version": "1.0.0",
1821 | "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
1822 | "integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=",
1823 | "dev": true,
1824 | "requires": {
1825 | "colors": "~1.1.2",
1826 | "grunt-legacy-log-utils": "~1.0.0",
1827 | "hooker": "~0.2.3",
1828 | "lodash": "~3.10.1",
1829 | "underscore.string": "~3.2.3"
1830 | }
1831 | },
1832 | "grunt-legacy-log-utils": {
1833 | "version": "1.0.0",
1834 | "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
1835 | "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=",
1836 | "dev": true,
1837 | "requires": {
1838 | "chalk": "~1.1.1",
1839 | "lodash": "~4.3.0"
1840 | },
1841 | "dependencies": {
1842 | "lodash": {
1843 | "version": "4.3.0",
1844 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
1845 | "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
1846 | "dev": true
1847 | }
1848 | }
1849 | },
1850 | "grunt-legacy-util": {
1851 | "version": "1.0.0",
1852 | "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
1853 | "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=",
1854 | "dev": true,
1855 | "requires": {
1856 | "async": "~1.5.2",
1857 | "exit": "~0.1.1",
1858 | "getobject": "~0.1.0",
1859 | "hooker": "~0.2.3",
1860 | "lodash": "~4.3.0",
1861 | "underscore.string": "~3.2.3",
1862 | "which": "~1.2.1"
1863 | },
1864 | "dependencies": {
1865 | "lodash": {
1866 | "version": "4.3.0",
1867 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
1868 | "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
1869 | "dev": true
1870 | }
1871 | }
1872 | },
1873 | "grunt-ts": {
1874 | "version": "6.0.0-beta.16",
1875 | "resolved": "https://registry.npmjs.org/grunt-ts/-/grunt-ts-6.0.0-beta.16.tgz",
1876 | "integrity": "sha1-wC9P+cgRAE7suTOJBaBds/hpIMM=",
1877 | "dev": true,
1878 | "requires": {
1879 | "chokidar": "^1.6.1",
1880 | "csproj2ts": "^0.0.8",
1881 | "detect-indent": "^4.0.0",
1882 | "detect-newline": "^2.1.0",
1883 | "es6-promise": "~0.1.1",
1884 | "jsmin2": "^1.2.1",
1885 | "lodash": "^4.17.4",
1886 | "ncp": "0.5.1",
1887 | "rimraf": "2.2.6",
1888 | "semver": "^5.3.0",
1889 | "strip-bom": "^2.0.0"
1890 | },
1891 | "dependencies": {
1892 | "lodash": {
1893 | "version": "4.17.4",
1894 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
1895 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
1896 | "dev": true
1897 | },
1898 | "rimraf": {
1899 | "version": "2.2.6",
1900 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz",
1901 | "integrity": "sha1-xZWXVpsU2VatKcrMQr3d9fDqT0w=",
1902 | "dev": true
1903 | }
1904 | }
1905 | },
1906 | "gzip-size": {
1907 | "version": "3.0.0",
1908 | "resolved": false,
1909 | "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
1910 | "dev": true,
1911 | "requires": {
1912 | "duplexer": "^0.1.1"
1913 | }
1914 | },
1915 | "has-ansi": {
1916 | "version": "2.0.0",
1917 | "resolved": false,
1918 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1919 | "dev": true,
1920 | "requires": {
1921 | "ansi-regex": "^2.0.0"
1922 | }
1923 | },
1924 | "hooker": {
1925 | "version": "0.2.3",
1926 | "resolved": false,
1927 | "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
1928 | "dev": true
1929 | },
1930 | "hosted-git-info": {
1931 | "version": "2.1.5",
1932 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
1933 | "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
1934 | "dev": true
1935 | },
1936 | "http-errors": {
1937 | "version": "1.5.1",
1938 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
1939 | "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=",
1940 | "dev": true,
1941 | "requires": {
1942 | "inherits": "2.0.3",
1943 | "setprototypeof": "1.0.2",
1944 | "statuses": ">= 1.3.1 < 2"
1945 | },
1946 | "dependencies": {
1947 | "inherits": {
1948 | "version": "2.0.3",
1949 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1950 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1951 | "dev": true
1952 | }
1953 | }
1954 | },
1955 | "iconv-lite": {
1956 | "version": "0.4.15",
1957 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
1958 | "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
1959 | "dev": true
1960 | },
1961 | "indent-string": {
1962 | "version": "2.1.0",
1963 | "resolved": false,
1964 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
1965 | "dev": true,
1966 | "requires": {
1967 | "repeating": "^2.0.0"
1968 | }
1969 | },
1970 | "inflight": {
1971 | "version": "1.0.6",
1972 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1973 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1974 | "dev": true,
1975 | "requires": {
1976 | "once": "^1.3.0",
1977 | "wrappy": "1"
1978 | }
1979 | },
1980 | "inherits": {
1981 | "version": "2.0.1",
1982 | "resolved": false,
1983 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
1984 | "dev": true
1985 | },
1986 | "is-arrayish": {
1987 | "version": "0.2.1",
1988 | "resolved": false,
1989 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1990 | "dev": true
1991 | },
1992 | "is-binary-path": {
1993 | "version": "1.0.1",
1994 | "resolved": false,
1995 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
1996 | "dev": true,
1997 | "requires": {
1998 | "binary-extensions": "^1.0.0"
1999 | }
2000 | },
2001 | "is-buffer": {
2002 | "version": "1.1.1",
2003 | "resolved": false,
2004 | "integrity": "sha1-MFjenKRUVk6LvluN0nGajXCJ59c=",
2005 | "dev": true
2006 | },
2007 | "is-builtin-module": {
2008 | "version": "1.0.0",
2009 | "resolved": false,
2010 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2011 | "dev": true,
2012 | "requires": {
2013 | "builtin-modules": "^1.0.0"
2014 | }
2015 | },
2016 | "is-dotfile": {
2017 | "version": "1.0.2",
2018 | "resolved": false,
2019 | "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=",
2020 | "dev": true
2021 | },
2022 | "is-equal-shallow": {
2023 | "version": "0.1.3",
2024 | "resolved": false,
2025 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
2026 | "dev": true,
2027 | "requires": {
2028 | "is-primitive": "^2.0.0"
2029 | }
2030 | },
2031 | "is-extendable": {
2032 | "version": "0.1.1",
2033 | "resolved": false,
2034 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2035 | "dev": true
2036 | },
2037 | "is-extglob": {
2038 | "version": "1.0.0",
2039 | "resolved": false,
2040 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
2041 | "dev": true
2042 | },
2043 | "is-finite": {
2044 | "version": "1.0.2",
2045 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
2046 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
2047 | "dev": true,
2048 | "requires": {
2049 | "number-is-nan": "^1.0.0"
2050 | }
2051 | },
2052 | "is-glob": {
2053 | "version": "2.0.1",
2054 | "resolved": false,
2055 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
2056 | "dev": true,
2057 | "requires": {
2058 | "is-extglob": "^1.0.0"
2059 | }
2060 | },
2061 | "is-number": {
2062 | "version": "2.1.0",
2063 | "resolved": false,
2064 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
2065 | "dev": true,
2066 | "requires": {
2067 | "kind-of": "^3.0.2"
2068 | },
2069 | "dependencies": {
2070 | "kind-of": {
2071 | "version": "3.0.2",
2072 | "resolved": false,
2073 | "integrity": "sha1-GH20JwRufpCUVpLmdoZovWkA3qA=",
2074 | "dev": true,
2075 | "requires": {
2076 | "is-buffer": "^1.0.2"
2077 | }
2078 | }
2079 | }
2080 | },
2081 | "is-primitive": {
2082 | "version": "2.0.0",
2083 | "resolved": false,
2084 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
2085 | "dev": true
2086 | },
2087 | "is-utf8": {
2088 | "version": "0.2.1",
2089 | "resolved": false,
2090 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
2091 | "dev": true
2092 | },
2093 | "isarray": {
2094 | "version": "0.0.1",
2095 | "resolved": false,
2096 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
2097 | "dev": true
2098 | },
2099 | "isexe": {
2100 | "version": "1.1.2",
2101 | "resolved": false,
2102 | "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=",
2103 | "dev": true
2104 | },
2105 | "isobject": {
2106 | "version": "2.0.0",
2107 | "resolved": false,
2108 | "integrity": "sha1-II3ocr1zeMKpKvlCij9W65GhIsQ=",
2109 | "dev": true,
2110 | "requires": {
2111 | "isarray": "0.0.1"
2112 | }
2113 | },
2114 | "js-yaml": {
2115 | "version": "3.5.5",
2116 | "resolved": false,
2117 | "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
2118 | "dev": true,
2119 | "requires": {
2120 | "argparse": "^1.0.2",
2121 | "esprima": "^2.6.0"
2122 | }
2123 | },
2124 | "jsmin2": {
2125 | "version": "1.2.1",
2126 | "resolved": "https://registry.npmjs.org/jsmin2/-/jsmin2-1.2.1.tgz",
2127 | "integrity": "sha1-iPvi+/dfCpH2YCD9mBzWk/S/5X4=",
2128 | "dev": true
2129 | },
2130 | "kind-of": {
2131 | "version": "3.1.0",
2132 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
2133 | "integrity": "sha1-R11pil5J/15T0U4+cyQp3Iv0z0c=",
2134 | "dev": true,
2135 | "requires": {
2136 | "is-buffer": "^1.0.2"
2137 | }
2138 | },
2139 | "lazy-cache": {
2140 | "version": "1.0.4",
2141 | "resolved": false,
2142 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
2143 | "dev": true
2144 | },
2145 | "load-json-file": {
2146 | "version": "1.1.0",
2147 | "resolved": false,
2148 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2149 | "dev": true,
2150 | "requires": {
2151 | "graceful-fs": "^4.1.2",
2152 | "parse-json": "^2.2.0",
2153 | "pify": "^2.0.0",
2154 | "pinkie-promise": "^2.0.0",
2155 | "strip-bom": "^2.0.0"
2156 | }
2157 | },
2158 | "lodash": {
2159 | "version": "3.10.1",
2160 | "resolved": false,
2161 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
2162 | "dev": true
2163 | },
2164 | "longest": {
2165 | "version": "1.0.1",
2166 | "resolved": false,
2167 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
2168 | "dev": true
2169 | },
2170 | "loud-rejection": {
2171 | "version": "1.6.0",
2172 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
2173 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
2174 | "dev": true,
2175 | "requires": {
2176 | "currently-unhandled": "^0.4.1",
2177 | "signal-exit": "^3.0.0"
2178 | }
2179 | },
2180 | "lru-cache": {
2181 | "version": "2.7.3",
2182 | "resolved": false,
2183 | "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
2184 | "dev": true
2185 | },
2186 | "map-obj": {
2187 | "version": "1.0.1",
2188 | "resolved": false,
2189 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
2190 | "dev": true
2191 | },
2192 | "maxmin": {
2193 | "version": "2.1.0",
2194 | "resolved": false,
2195 | "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=",
2196 | "dev": true,
2197 | "requires": {
2198 | "chalk": "^1.0.0",
2199 | "figures": "^1.0.1",
2200 | "gzip-size": "^3.0.0",
2201 | "pretty-bytes": "^3.0.0"
2202 | }
2203 | },
2204 | "meow": {
2205 | "version": "3.7.0",
2206 | "resolved": false,
2207 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
2208 | "dev": true,
2209 | "requires": {
2210 | "camelcase-keys": "^2.0.0",
2211 | "decamelize": "^1.1.2",
2212 | "loud-rejection": "^1.0.0",
2213 | "map-obj": "^1.0.1",
2214 | "minimist": "^1.1.3",
2215 | "normalize-package-data": "^2.3.4",
2216 | "object-assign": "^4.0.1",
2217 | "read-pkg-up": "^1.0.1",
2218 | "redent": "^1.0.0",
2219 | "trim-newlines": "^1.0.0"
2220 | }
2221 | },
2222 | "micromatch": {
2223 | "version": "2.3.7",
2224 | "resolved": false,
2225 | "integrity": "sha1-Ly6F70YUDb6my1XnObaxGzDqpQk=",
2226 | "dev": true,
2227 | "requires": {
2228 | "arr-diff": "^2.0.0",
2229 | "array-unique": "^0.2.1",
2230 | "braces": "^1.8.2",
2231 | "expand-brackets": "^0.1.4",
2232 | "extglob": "^0.3.1",
2233 | "filename-regex": "^2.0.0",
2234 | "is-extglob": "^1.0.0",
2235 | "is-glob": "^2.0.1",
2236 | "kind-of": "^3.0.2",
2237 | "normalize-path": "^2.0.1",
2238 | "object.omit": "^2.0.0",
2239 | "parse-glob": "^3.0.4",
2240 | "regex-cache": "^0.4.2"
2241 | },
2242 | "dependencies": {
2243 | "kind-of": {
2244 | "version": "3.0.2",
2245 | "resolved": false,
2246 | "integrity": "sha1-GH20JwRufpCUVpLmdoZovWkA3qA=",
2247 | "dev": true,
2248 | "requires": {
2249 | "is-buffer": "^1.0.2"
2250 | }
2251 | }
2252 | }
2253 | },
2254 | "mime": {
2255 | "version": "1.3.4",
2256 | "resolved": false,
2257 | "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
2258 | "dev": true
2259 | },
2260 | "mime-db": {
2261 | "version": "1.26.0",
2262 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz",
2263 | "integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8=",
2264 | "dev": true
2265 | },
2266 | "mime-types": {
2267 | "version": "2.1.14",
2268 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
2269 | "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=",
2270 | "dev": true,
2271 | "requires": {
2272 | "mime-db": "~1.26.0"
2273 | }
2274 | },
2275 | "minimatch": {
2276 | "version": "3.0.3",
2277 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2278 | "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
2279 | "dev": true,
2280 | "requires": {
2281 | "brace-expansion": "^1.0.0"
2282 | }
2283 | },
2284 | "minimist": {
2285 | "version": "1.2.0",
2286 | "resolved": false,
2287 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
2288 | "dev": true
2289 | },
2290 | "morgan": {
2291 | "version": "1.7.0",
2292 | "resolved": false,
2293 | "integrity": "sha1-6xDKjlDRq+D409rVwCAdBS2YHGI=",
2294 | "dev": true,
2295 | "requires": {
2296 | "basic-auth": "~1.0.3",
2297 | "debug": "~2.2.0",
2298 | "depd": "~1.1.0",
2299 | "on-finished": "~2.3.0",
2300 | "on-headers": "~1.0.1"
2301 | }
2302 | },
2303 | "ms": {
2304 | "version": "0.7.1",
2305 | "resolved": false,
2306 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
2307 | "dev": true
2308 | },
2309 | "nan": {
2310 | "version": "2.6.2",
2311 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
2312 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=",
2313 | "dev": true,
2314 | "optional": true
2315 | },
2316 | "ncp": {
2317 | "version": "0.5.1",
2318 | "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz",
2319 | "integrity": "sha1-dDmFMW49tFkoG1hxaehFc1oFQ58=",
2320 | "dev": true
2321 | },
2322 | "negotiator": {
2323 | "version": "0.6.1",
2324 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
2325 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
2326 | "dev": true
2327 | },
2328 | "nopt": {
2329 | "version": "3.0.6",
2330 | "resolved": false,
2331 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
2332 | "dev": true,
2333 | "requires": {
2334 | "abbrev": "1"
2335 | }
2336 | },
2337 | "noptify": {
2338 | "version": "0.0.3",
2339 | "resolved": false,
2340 | "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=",
2341 | "dev": true,
2342 | "requires": {
2343 | "nopt": "~2.0.0"
2344 | },
2345 | "dependencies": {
2346 | "nopt": {
2347 | "version": "2.0.0",
2348 | "resolved": false,
2349 | "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=",
2350 | "dev": true,
2351 | "requires": {
2352 | "abbrev": "1"
2353 | }
2354 | }
2355 | }
2356 | },
2357 | "normalize-package-data": {
2358 | "version": "2.3.5",
2359 | "resolved": false,
2360 | "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
2361 | "dev": true,
2362 | "requires": {
2363 | "hosted-git-info": "^2.1.4",
2364 | "is-builtin-module": "^1.0.0",
2365 | "semver": "2 || 3 || 4 || 5",
2366 | "validate-npm-package-license": "^3.0.1"
2367 | }
2368 | },
2369 | "normalize-path": {
2370 | "version": "2.0.1",
2371 | "resolved": false,
2372 | "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=",
2373 | "dev": true
2374 | },
2375 | "number-is-nan": {
2376 | "version": "1.0.1",
2377 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2378 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
2379 | "dev": true
2380 | },
2381 | "object-assign": {
2382 | "version": "4.1.1",
2383 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2384 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2385 | "dev": true
2386 | },
2387 | "object.omit": {
2388 | "version": "2.0.0",
2389 | "resolved": false,
2390 | "integrity": "sha1-hoWXMz1U5gZilAu0WGBd1q4S/pQ=",
2391 | "dev": true,
2392 | "requires": {
2393 | "for-own": "^0.1.3",
2394 | "is-extendable": "^0.1.1"
2395 | }
2396 | },
2397 | "on-finished": {
2398 | "version": "2.3.0",
2399 | "resolved": false,
2400 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
2401 | "dev": true,
2402 | "requires": {
2403 | "ee-first": "1.1.1"
2404 | }
2405 | },
2406 | "on-headers": {
2407 | "version": "1.0.1",
2408 | "resolved": false,
2409 | "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
2410 | "dev": true
2411 | },
2412 | "once": {
2413 | "version": "1.4.0",
2414 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2415 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2416 | "dev": true,
2417 | "requires": {
2418 | "wrappy": "1"
2419 | }
2420 | },
2421 | "opn": {
2422 | "version": "1.0.2",
2423 | "resolved": false,
2424 | "integrity": "sha1-uQlkM0bQChq8l3qLlvPOPFPVz18=",
2425 | "dev": true
2426 | },
2427 | "parse-glob": {
2428 | "version": "3.0.4",
2429 | "resolved": false,
2430 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
2431 | "dev": true,
2432 | "requires": {
2433 | "glob-base": "^0.3.0",
2434 | "is-dotfile": "^1.0.0",
2435 | "is-extglob": "^1.0.0",
2436 | "is-glob": "^2.0.0"
2437 | }
2438 | },
2439 | "parse-json": {
2440 | "version": "2.2.0",
2441 | "resolved": false,
2442 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
2443 | "dev": true,
2444 | "requires": {
2445 | "error-ex": "^1.2.0"
2446 | }
2447 | },
2448 | "parseurl": {
2449 | "version": "1.3.1",
2450 | "resolved": false,
2451 | "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=",
2452 | "dev": true
2453 | },
2454 | "path-exists": {
2455 | "version": "2.1.0",
2456 | "resolved": false,
2457 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
2458 | "dev": true,
2459 | "requires": {
2460 | "pinkie-promise": "^2.0.0"
2461 | }
2462 | },
2463 | "path-is-absolute": {
2464 | "version": "1.0.0",
2465 | "resolved": false,
2466 | "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=",
2467 | "dev": true
2468 | },
2469 | "path-type": {
2470 | "version": "1.1.0",
2471 | "resolved": false,
2472 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
2473 | "dev": true,
2474 | "requires": {
2475 | "graceful-fs": "^4.1.2",
2476 | "pify": "^2.0.0",
2477 | "pinkie-promise": "^2.0.0"
2478 | }
2479 | },
2480 | "phaser": {
2481 | "version": "2.6.2",
2482 | "resolved": "https://registry.npmjs.org/phaser/-/phaser-2.6.2.tgz",
2483 | "integrity": "sha1-6zkSFyWiFJxJ9GtdFEMYwivAkkk=",
2484 | "dev": true
2485 | },
2486 | "pify": {
2487 | "version": "2.3.0",
2488 | "resolved": false,
2489 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2490 | "dev": true
2491 | },
2492 | "pinkie": {
2493 | "version": "2.0.4",
2494 | "resolved": false,
2495 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
2496 | "dev": true
2497 | },
2498 | "pinkie-promise": {
2499 | "version": "2.0.1",
2500 | "resolved": false,
2501 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
2502 | "dev": true,
2503 | "requires": {
2504 | "pinkie": "^2.0.0"
2505 | }
2506 | },
2507 | "portscanner": {
2508 | "version": "1.2.0",
2509 | "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-1.2.0.tgz",
2510 | "integrity": "sha1-sUu9olfRTDEPqcwJaCrwLUCWGAI=",
2511 | "dev": true,
2512 | "requires": {
2513 | "async": "1.5.2"
2514 | }
2515 | },
2516 | "preserve": {
2517 | "version": "0.2.0",
2518 | "resolved": false,
2519 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
2520 | "dev": true
2521 | },
2522 | "pretty-bytes": {
2523 | "version": "3.0.1",
2524 | "resolved": false,
2525 | "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
2526 | "dev": true,
2527 | "requires": {
2528 | "number-is-nan": "^1.0.0"
2529 | }
2530 | },
2531 | "process-nextick-args": {
2532 | "version": "1.0.6",
2533 | "resolved": false,
2534 | "integrity": "sha1-D5awAc6pCxJZLOVm7bl+wR5pvQU=",
2535 | "dev": true
2536 | },
2537 | "qs": {
2538 | "version": "0.5.6",
2539 | "resolved": false,
2540 | "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=",
2541 | "dev": true
2542 | },
2543 | "randomatic": {
2544 | "version": "1.1.5",
2545 | "resolved": false,
2546 | "integrity": "sha1-Xp718tVzxnvSuBJK6QtRVuRXhAs=",
2547 | "dev": true,
2548 | "requires": {
2549 | "is-number": "^2.0.2",
2550 | "kind-of": "^3.0.2"
2551 | },
2552 | "dependencies": {
2553 | "kind-of": {
2554 | "version": "3.0.2",
2555 | "resolved": false,
2556 | "integrity": "sha1-GH20JwRufpCUVpLmdoZovWkA3qA=",
2557 | "dev": true,
2558 | "requires": {
2559 | "is-buffer": "^1.0.2"
2560 | }
2561 | }
2562 | }
2563 | },
2564 | "range-parser": {
2565 | "version": "1.2.0",
2566 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
2567 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
2568 | "dev": true
2569 | },
2570 | "read-pkg": {
2571 | "version": "1.1.0",
2572 | "resolved": false,
2573 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
2574 | "dev": true,
2575 | "requires": {
2576 | "load-json-file": "^1.0.0",
2577 | "normalize-package-data": "^2.3.2",
2578 | "path-type": "^1.0.0"
2579 | }
2580 | },
2581 | "read-pkg-up": {
2582 | "version": "1.0.1",
2583 | "resolved": false,
2584 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
2585 | "dev": true,
2586 | "requires": {
2587 | "find-up": "^1.0.0",
2588 | "read-pkg": "^1.0.0"
2589 | }
2590 | },
2591 | "readable-stream": {
2592 | "version": "2.0.5",
2593 | "resolved": false,
2594 | "integrity": "sha1-okJvjc1FUcd6M/lu3yiGojyClmk=",
2595 | "dev": true,
2596 | "requires": {
2597 | "core-util-is": "~1.0.0",
2598 | "inherits": "~2.0.1",
2599 | "isarray": "0.0.1",
2600 | "process-nextick-args": "~1.0.6",
2601 | "string_decoder": "~0.10.x",
2602 | "util-deprecate": "~1.0.1"
2603 | }
2604 | },
2605 | "readdirp": {
2606 | "version": "2.0.0",
2607 | "resolved": false,
2608 | "integrity": "sha1-zAm6XRLY/rhkvHX24uvBNwYMvYI=",
2609 | "dev": true,
2610 | "requires": {
2611 | "graceful-fs": "^4.1.2",
2612 | "minimatch": "^2.0.10",
2613 | "readable-stream": "^2.0.2"
2614 | },
2615 | "dependencies": {
2616 | "graceful-fs": {
2617 | "version": "4.1.2",
2618 | "resolved": false,
2619 | "integrity": "sha1-/iI5t1dJcuZ+QfgIgj+b+kqZHjc=",
2620 | "dev": true
2621 | },
2622 | "minimatch": {
2623 | "version": "2.0.10",
2624 | "resolved": false,
2625 | "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
2626 | "dev": true,
2627 | "requires": {
2628 | "brace-expansion": "^1.0.0"
2629 | }
2630 | }
2631 | }
2632 | },
2633 | "redent": {
2634 | "version": "1.0.0",
2635 | "resolved": false,
2636 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
2637 | "dev": true,
2638 | "requires": {
2639 | "indent-string": "^2.1.0",
2640 | "strip-indent": "^1.0.1"
2641 | }
2642 | },
2643 | "regex-cache": {
2644 | "version": "0.4.2",
2645 | "resolved": false,
2646 | "integrity": "sha1-bk+Jwma8A8M/0SnAYhhGh/RmNIc=",
2647 | "dev": true,
2648 | "requires": {
2649 | "is-equal-shallow": "^0.1.1",
2650 | "is-primitive": "^2.0.0"
2651 | }
2652 | },
2653 | "repeat-element": {
2654 | "version": "1.1.2",
2655 | "resolved": false,
2656 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
2657 | "dev": true
2658 | },
2659 | "repeat-string": {
2660 | "version": "1.5.2",
2661 | "resolved": false,
2662 | "integrity": "sha1-IQZfcHJ60FOg3V6VesngDHVg2Qo=",
2663 | "dev": true
2664 | },
2665 | "repeating": {
2666 | "version": "2.0.1",
2667 | "resolved": false,
2668 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
2669 | "dev": true,
2670 | "requires": {
2671 | "is-finite": "^1.0.0"
2672 | }
2673 | },
2674 | "resolve": {
2675 | "version": "1.1.7",
2676 | "resolved": false,
2677 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
2678 | "dev": true
2679 | },
2680 | "right-align": {
2681 | "version": "0.1.3",
2682 | "resolved": false,
2683 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
2684 | "dev": true,
2685 | "requires": {
2686 | "align-text": "^0.1.1"
2687 | }
2688 | },
2689 | "rimraf": {
2690 | "version": "2.2.8",
2691 | "resolved": false,
2692 | "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
2693 | "dev": true
2694 | },
2695 | "sax": {
2696 | "version": "1.2.1",
2697 | "resolved": false,
2698 | "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=",
2699 | "dev": true
2700 | },
2701 | "semver": {
2702 | "version": "5.3.0",
2703 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
2704 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
2705 | "dev": true
2706 | },
2707 | "send": {
2708 | "version": "0.14.1",
2709 | "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz",
2710 | "integrity": "sha1-qVSYQyU5L1FTKndgdg5FlZjIn3o=",
2711 | "dev": true,
2712 | "requires": {
2713 | "debug": "~2.2.0",
2714 | "depd": "~1.1.0",
2715 | "destroy": "~1.0.4",
2716 | "encodeurl": "~1.0.1",
2717 | "escape-html": "~1.0.3",
2718 | "etag": "~1.7.0",
2719 | "fresh": "0.3.0",
2720 | "http-errors": "~1.5.0",
2721 | "mime": "1.3.4",
2722 | "ms": "0.7.1",
2723 | "on-finished": "~2.3.0",
2724 | "range-parser": "~1.2.0",
2725 | "statuses": "~1.3.0"
2726 | }
2727 | },
2728 | "serve-index": {
2729 | "version": "1.8.0",
2730 | "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz",
2731 | "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=",
2732 | "dev": true,
2733 | "requires": {
2734 | "accepts": "~1.3.3",
2735 | "batch": "0.5.3",
2736 | "debug": "~2.2.0",
2737 | "escape-html": "~1.0.3",
2738 | "http-errors": "~1.5.0",
2739 | "mime-types": "~2.1.11",
2740 | "parseurl": "~1.3.1"
2741 | }
2742 | },
2743 | "serve-static": {
2744 | "version": "1.11.1",
2745 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz",
2746 | "integrity": "sha1-1sznaTUF9zPHWd5Xvvwa92wPCAU=",
2747 | "dev": true,
2748 | "requires": {
2749 | "encodeurl": "~1.0.1",
2750 | "escape-html": "~1.0.3",
2751 | "parseurl": "~1.3.1",
2752 | "send": "0.14.1"
2753 | }
2754 | },
2755 | "setprototypeof": {
2756 | "version": "1.0.2",
2757 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
2758 | "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=",
2759 | "dev": true
2760 | },
2761 | "sigmund": {
2762 | "version": "1.0.1",
2763 | "resolved": false,
2764 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
2765 | "dev": true
2766 | },
2767 | "signal-exit": {
2768 | "version": "3.0.2",
2769 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2770 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2771 | "dev": true
2772 | },
2773 | "source-map": {
2774 | "version": "0.5.6",
2775 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
2776 | "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
2777 | "dev": true
2778 | },
2779 | "spdx-correct": {
2780 | "version": "1.0.2",
2781 | "resolved": false,
2782 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
2783 | "dev": true,
2784 | "requires": {
2785 | "spdx-license-ids": "^1.0.2"
2786 | }
2787 | },
2788 | "spdx-expression-parse": {
2789 | "version": "1.0.4",
2790 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
2791 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
2792 | "dev": true
2793 | },
2794 | "spdx-license-ids": {
2795 | "version": "1.2.2",
2796 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
2797 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
2798 | "dev": true
2799 | },
2800 | "sprintf-js": {
2801 | "version": "1.0.3",
2802 | "resolved": false,
2803 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2804 | "dev": true
2805 | },
2806 | "statuses": {
2807 | "version": "1.3.1",
2808 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
2809 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
2810 | "dev": true
2811 | },
2812 | "string_decoder": {
2813 | "version": "0.10.31",
2814 | "resolved": false,
2815 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
2816 | "dev": true
2817 | },
2818 | "strip-ansi": {
2819 | "version": "3.0.1",
2820 | "resolved": false,
2821 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2822 | "dev": true,
2823 | "requires": {
2824 | "ansi-regex": "^2.0.0"
2825 | }
2826 | },
2827 | "strip-bom": {
2828 | "version": "2.0.0",
2829 | "resolved": false,
2830 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
2831 | "dev": true,
2832 | "requires": {
2833 | "is-utf8": "^0.2.0"
2834 | }
2835 | },
2836 | "strip-indent": {
2837 | "version": "1.0.1",
2838 | "resolved": false,
2839 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
2840 | "dev": true,
2841 | "requires": {
2842 | "get-stdin": "^4.0.1"
2843 | }
2844 | },
2845 | "success-symbol": {
2846 | "version": "0.1.0",
2847 | "resolved": false,
2848 | "integrity": "sha1-JAIuSG878c3KCUKDt2nEctO3KJc=",
2849 | "dev": true
2850 | },
2851 | "supports-color": {
2852 | "version": "2.0.0",
2853 | "resolved": false,
2854 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2855 | "dev": true
2856 | },
2857 | "tiny-lr-fork": {
2858 | "version": "0.0.5",
2859 | "resolved": false,
2860 | "integrity": "sha1-Hpnh4qhGm3NquX2X7vqYxx927Qo=",
2861 | "dev": true,
2862 | "requires": {
2863 | "debug": "~0.7.0",
2864 | "faye-websocket": "~0.4.3",
2865 | "noptify": "~0.0.3",
2866 | "qs": "~0.5.2"
2867 | },
2868 | "dependencies": {
2869 | "debug": {
2870 | "version": "0.7.4",
2871 | "resolved": false,
2872 | "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
2873 | "dev": true
2874 | }
2875 | }
2876 | },
2877 | "trim-newlines": {
2878 | "version": "1.0.0",
2879 | "resolved": false,
2880 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
2881 | "dev": true
2882 | },
2883 | "typescript": {
2884 | "version": "2.4.1",
2885 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.1.tgz",
2886 | "integrity": "sha1-w8yxbdqgsjFN4DHn5v7onlujRrw=",
2887 | "dev": true
2888 | },
2889 | "uglify-js": {
2890 | "version": "2.6.4",
2891 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
2892 | "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=",
2893 | "dev": true,
2894 | "requires": {
2895 | "async": "~0.2.6",
2896 | "source-map": "~0.5.1",
2897 | "uglify-to-browserify": "~1.0.0",
2898 | "yargs": "~3.10.0"
2899 | },
2900 | "dependencies": {
2901 | "async": {
2902 | "version": "0.2.10",
2903 | "resolved": false,
2904 | "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
2905 | "dev": true
2906 | }
2907 | }
2908 | },
2909 | "uglify-to-browserify": {
2910 | "version": "1.0.2",
2911 | "resolved": false,
2912 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
2913 | "dev": true
2914 | },
2915 | "underscore.string": {
2916 | "version": "3.2.3",
2917 | "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
2918 | "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=",
2919 | "dev": true
2920 | },
2921 | "unpipe": {
2922 | "version": "1.0.0",
2923 | "resolved": false,
2924 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
2925 | "dev": true
2926 | },
2927 | "uri-path": {
2928 | "version": "1.0.0",
2929 | "resolved": false,
2930 | "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
2931 | "dev": true
2932 | },
2933 | "util-deprecate": {
2934 | "version": "1.0.2",
2935 | "resolved": false,
2936 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2937 | "dev": true
2938 | },
2939 | "utils-merge": {
2940 | "version": "1.0.0",
2941 | "resolved": false,
2942 | "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
2943 | "dev": true
2944 | },
2945 | "validate-npm-package-license": {
2946 | "version": "3.0.1",
2947 | "resolved": false,
2948 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
2949 | "dev": true,
2950 | "requires": {
2951 | "spdx-correct": "~1.0.0",
2952 | "spdx-expression-parse": "~1.0.0"
2953 | }
2954 | },
2955 | "which": {
2956 | "version": "1.2.12",
2957 | "resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz",
2958 | "integrity": "sha1-3me15FAmnxlJCe8j7OTr5Bb6EZI=",
2959 | "dev": true,
2960 | "requires": {
2961 | "isexe": "^1.1.1"
2962 | }
2963 | },
2964 | "window-size": {
2965 | "version": "0.1.0",
2966 | "resolved": false,
2967 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
2968 | "dev": true
2969 | },
2970 | "wordwrap": {
2971 | "version": "0.0.2",
2972 | "resolved": false,
2973 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
2974 | "dev": true
2975 | },
2976 | "wrappy": {
2977 | "version": "1.0.2",
2978 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2979 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2980 | "dev": true
2981 | },
2982 | "xml2js": {
2983 | "version": "0.4.17",
2984 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
2985 | "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
2986 | "dev": true,
2987 | "requires": {
2988 | "sax": ">=0.6.0",
2989 | "xmlbuilder": "^4.1.0"
2990 | }
2991 | },
2992 | "xmlbuilder": {
2993 | "version": "4.2.1",
2994 | "resolved": false,
2995 | "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
2996 | "dev": true,
2997 | "requires": {
2998 | "lodash": "^4.0.0"
2999 | },
3000 | "dependencies": {
3001 | "lodash": {
3002 | "version": "4.17.4",
3003 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
3004 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
3005 | "dev": true
3006 | }
3007 | }
3008 | },
3009 | "yargs": {
3010 | "version": "3.10.0",
3011 | "resolved": false,
3012 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
3013 | "dev": true,
3014 | "requires": {
3015 | "camelcase": "^1.0.2",
3016 | "cliui": "^2.1.0",
3017 | "decamelize": "^1.0.0",
3018 | "window-size": "0.1.0"
3019 | },
3020 | "dependencies": {
3021 | "camelcase": {
3022 | "version": "1.2.1",
3023 | "resolved": false,
3024 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
3025 | "dev": true
3026 | }
3027 | }
3028 | }
3029 | }
3030 | }
3031 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@azerion/phaser-nineslice",
3 | "author": "Azerion",
4 | "version": "2.0.1",
5 | "description": "NineSlice plugin for Phaser.io!",
6 | "contributors": [
7 | {
8 | "name": "Ale Bles",
9 | "email": "a.bles@azerion.com"
10 | }
11 | ],
12 | "repository": {
13 | "type": "git",
14 | "url": "git@github.com:azerion/phaser-nineslice.git"
15 | },
16 | "licenses": [
17 | {
18 | "type": "MIT",
19 | "url": "https://github.com/azerion/phaser-nineslice/raw/master/LICENSE"
20 | }
21 | ],
22 | "config": {
23 | "name": "phaser-nineslice"
24 | },
25 | "devDependencies": {
26 | "grunt": "1.0.x",
27 | "grunt-banner": "^0.6.0",
28 | "grunt-contrib-clean": "0.6.0",
29 | "grunt-contrib-connect": "^0.11.2",
30 | "grunt-contrib-uglify": "^0.11.0",
31 | "grunt-contrib-watch": "^0.6.1",
32 | "grunt-ts": "^6.0.0-beta.16",
33 | "phaser": "2.6.2",
34 | "typescript": "2.4.x"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/ts/NineSlice.ts:
--------------------------------------------------------------------------------
1 | module PhaserNineSlice {
2 | import NineSliceCacheData = PhaserNineSlice.NineSliceCacheData;
3 | export class NineSlice extends Phaser.Sprite {
4 | /**
5 | * The sizes of the edges
6 | */
7 | private leftSize:number;
8 | private topSize:number;
9 | private rightSize:number;
10 | private bottomSize:number;
11 |
12 | /**
13 | * The eventual sizes of the container
14 | */
15 | public localWidth:number;
16 | public localHeight:number;
17 |
18 | /**
19 | * The original texture, unmodified
20 | */
21 | public baseTexture: PIXI.BaseTexture;
22 | public texture: Phaser.RenderTexture;
23 | private baseFrame: PIXI.Rectangle;
24 |
25 | constructor(game: PhaserNineSlice.NineSliceGame, x:number, y:number, key: string, frame: string, width:number, height:number, data?: NineSliceCacheData) {
26 | super(game, x, y, key, frame);
27 |
28 | this.baseTexture = this.texture.baseTexture;
29 | this.baseFrame = this.texture.frame;
30 |
31 | if (frame !== null && !data) {
32 | data = game.cache.getNineSlice(frame);
33 | } else if (!data) {
34 | data = game.cache.getNineSlice(key);
35 | }
36 |
37 | if (undefined === data) {
38 | return;
39 | }
40 |
41 | this.topSize = data.top;
42 | if (!data.left) {
43 | this.leftSize = this.topSize;
44 | } else {
45 | this.leftSize = data.left;
46 | }
47 |
48 | if (!data.right) {
49 | this.rightSize = this.leftSize;
50 | } else {
51 | this.rightSize = data.right;
52 | }
53 |
54 | if (!data.bottom) {
55 | this.bottomSize = this.topSize;
56 | } else {
57 | this.bottomSize = data.bottom;
58 | }
59 |
60 | this.loadTexture(new Phaser.RenderTexture(this.game, this.localWidth, this.localHeight));
61 | this.resize(width, height);
62 | }
63 |
64 | /**
65 | * Redraw the the current texture to adjust for the new sizes;
66 | */
67 | private renderTexture():void {
68 | //Set a new empty texture
69 | this.texture.resize(this.localWidth, this.localHeight, true);
70 |
71 | //The positions we want from the base texture
72 | var textureXs:number[] = [0, this.leftSize, this.baseFrame.width - this.rightSize, this.baseFrame.width];
73 | var textureYs:number[] = [0, this.topSize, this.baseFrame.height - this.bottomSize, this.baseFrame.height];
74 |
75 | //These are the positions we need the eventual texture to have
76 | var finalXs:number[] = [0, this.leftSize, this.localWidth - this.rightSize, this.localWidth];
77 | var finalYs:number[] = [0, this.topSize, this.localHeight - this.bottomSize, this.localHeight];
78 |
79 | (this.texture).clear();
80 | for (var yi = 0; yi < 3; yi++) {
81 | for (var xi = 0; xi < 3; xi++) {
82 | var s = this.createTexturePart(
83 | textureXs[xi], //x
84 | textureYs[yi], //y
85 | textureXs[xi + 1] - textureXs[xi], //width
86 | textureYs[yi + 1] - textureYs[yi] //height
87 | );
88 |
89 | s.width = finalXs[xi + 1] - finalXs[xi];
90 | s.height = finalYs[yi + 1] - finalYs[yi];
91 |
92 | (this.texture).renderXY(s, finalXs[xi], finalYs[yi]);
93 | }
94 | }
95 | }
96 |
97 | /**
98 | * Set the size of the container, then update all the parts
99 | *
100 | * @param width
101 | * @param height
102 | */
103 | public resize(width:number, height:number):void {
104 | this.localWidth = width;
105 | this.localHeight = height;
106 |
107 | this.renderTexture();
108 | }
109 |
110 | /**
111 | * Override the destroy to fix PIXI leaking CanvasBuffers
112 | *
113 | * @param args
114 | */
115 | public destroy(...args: any[]): void {
116 | super.destroy(args[0]);
117 | this.texture.destroy(true);
118 | this.texture = null;
119 | this.baseTexture = null;
120 | this.baseFrame = null;
121 | }
122 |
123 | /**
124 | * Here we create a sprite part for the container based on the given input
125 | *
126 | * @param x
127 | * @param y
128 | * @param width
129 | * @param height
130 | * @returns {PIXI.Sprite}
131 | */
132 | private createTexturePart(x:number, y:number, width:number, height:number): Phaser.Image {
133 | var frame = new PIXI.Rectangle(
134 | this.baseFrame.x + this.texture.frame.x + x,
135 | this.baseFrame.y + this.texture.frame.y + y,
136 | Math.max(width, 1),
137 | Math.max(height, 1)
138 | );
139 |
140 | return new Phaser.Sprite(this.game, 0, 0, new PIXI.Texture(this.baseTexture, frame));
141 | }
142 | }
143 | }
--------------------------------------------------------------------------------
/ts/Plugin.ts:
--------------------------------------------------------------------------------
1 | module PhaserNineSlice {
2 | export interface NineSliceObjectFactory extends Phaser.GameObjectFactory {
3 | nineSlice: (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group) => PhaserNineSlice.NineSlice;
4 | }
5 | export interface NineSliceObjectCreator extends Phaser.GameObjectCreator {
6 | nineSlice: (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group) => PhaserNineSlice.NineSlice;
7 | }
8 |
9 | export interface NineSliceCache extends Phaser.Cache {
10 | addNineSlice: (key: string, data: NineSliceCacheData) => void;
11 | getNineSlice: (key: string) => NineSliceCacheData;
12 | nineSlice: {[key: string]: NineSliceCacheData};
13 | }
14 |
15 | export interface NineSliceLoader extends Phaser.Loader {
16 | nineSlice: (key: string, url: string, top: number, left?: number, right?: number, bottom?: number) => void;
17 | cache: NineSliceCache;
18 | }
19 |
20 | export interface NineSliceGame extends Phaser.Game {
21 | add: NineSliceObjectFactory;
22 | load: NineSliceLoader;
23 | cache: NineSliceCache;
24 | }
25 |
26 | export interface NineSliceCacheData {
27 | top: number;
28 | bottom?: number;
29 | left?: number;
30 | right?: number;
31 | }
32 |
33 | export class Plugin extends Phaser.Plugin {
34 | constructor(game: Phaser.Game, parent: Phaser.PluginManager) {
35 | super(game, parent);
36 |
37 | this.addNineSliceCache();
38 | this.addNineSliceFactory();
39 | this.addNineSliceLoader();
40 | }
41 |
42 | private addNineSliceLoader() {
43 | (Phaser.Loader.prototype).nineSlice = function (key: string, url: string, top: number, left?: number, right?: number, bottom?: number) {
44 | let cacheData: NineSliceCacheData = {
45 | top: top
46 | };
47 |
48 | if (left) {
49 | cacheData.left = left;
50 | }
51 |
52 | if (right) {
53 | cacheData.right = right;
54 | }
55 |
56 | if (bottom) {
57 | cacheData.bottom = bottom;
58 | }
59 |
60 | this.addToFileList('image', key, url);
61 |
62 | this.game.cache.addNineSlice(key, cacheData);
63 | };
64 | }
65 |
66 | /**
67 | * Extends the GameObjectFactory prototype with the support of adding NineSlice. this allows us to add NineSlice methods to the game just like any other object:
68 | * game.add.NineSlice();
69 | */
70 | private addNineSliceFactory() {
71 | (Phaser.GameObjectFactory.prototype).nineSlice = function (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group): PhaserNineSlice.NineSlice {
72 | if (group === undefined) {
73 | group = this.world;
74 | }
75 |
76 | var nineSliceObject = new PhaserNineSlice.NineSlice(this.game, x, y, key, frame, width, height);
77 |
78 | return group.add(nineSliceObject);
79 | };
80 |
81 | (Phaser.GameObjectCreator.prototype).nineSlice = function (x: number, y: number, key: string, frame: string, width: number, height: number): PhaserNineSlice.NineSlice {
82 | return new PhaserNineSlice.NineSlice(this.game, x, y, key, frame, width, height);
83 | };
84 | }
85 |
86 | /**
87 | * Extends the Phaser.Cache prototype with NineSlice properties
88 | */
89 | private addNineSliceCache(): void {
90 | //Create the cache space
91 | (Phaser.Cache.prototype).nineSlice = {};
92 |
93 | //Method for adding a NineSlice dict to the cache space
94 | (Phaser.Cache.prototype).addNineSlice = function (key: string, data: any) {
95 | this.nineSlice[key] = data;
96 | };
97 |
98 | //Method for fetching a NineSlice dict from the cache space
99 | (Phaser.Cache.prototype).getNineSlice = function (key: string): any {
100 | var data = this.nineSlice[key];
101 |
102 | if (undefined === data) {
103 | console.warn('Phaser.Cache.getNineSlice: Key "' + key + '" not found in Cache.');
104 | }
105 |
106 | return data;
107 | };
108 | }
109 | }
110 | }
111 |
--------------------------------------------------------------------------------
/ts/definitions.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
--------------------------------------------------------------------------------