├── .gitignore
├── .vscode
└── settings.json
├── README.md
├── app
├── css
│ ├── app.css
│ └── bootstrap.min.css
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
├── index.html
├── index.js
├── js
│ ├── bmfont-writer.js
│ └── index.js
├── package-lock.json
└── package.json
├── build
├── background.tiff
├── icon.icns
├── icon.ico
└── icons
│ ├── 1024x1024.png
│ ├── 128x128.png
│ ├── 16x16.png
│ ├── 24x24.png
│ ├── 256x256.png
│ ├── 32x32.png
│ ├── 48x48.png
│ ├── 512x512.png
│ ├── 64x64.png
│ └── 96x96.png
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.exclude": {
3 | "**/.git": true,
4 | "**/.svn": true,
5 | "**/.hg": true,
6 | "**/CVS": true,
7 | "**/.DS_Store": true,
8 | "**/node_modules": true
9 | }
10 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 使用 Electron 重写了这个工具, 你可以在 [Release Page][1] 下载.
2 |
--------------------------------------------------------------------------------
/app/css/app.css:
--------------------------------------------------------------------------------
1 | .table > tbody > tr > td {
2 | vertical-align: middle;
3 | }
4 |
5 | /*
6 | * STYLE 4
7 | */
8 |
9 | .style-4::-webkit-scrollbar-track
10 | {
11 | -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
12 | background-color: #F5F5F5;
13 | }
14 |
15 | .style-4::-webkit-scrollbar
16 | {
17 | width: 10px;
18 | background-color: #F5F5F5;
19 | }
20 |
21 | .style-4::-webkit-scrollbar-thumb
22 | {
23 | background-color: #000000;
24 | border: 2px solid #555555;
25 | }
26 |
27 |
28 |
29 |
30 |
31 | .header-fixed {
32 | width: 100%
33 | }
34 |
35 | .header-fixed > thead,
36 | .header-fixed > tbody,
37 | .header-fixed > thead > tr,
38 | .header-fixed > tbody > tr,
39 | .header-fixed > thead > tr > th,
40 | .header-fixed > tbody > tr > td {
41 | display: block;
42 | }
43 |
44 | .header-fixed > tbody > tr:after,
45 | .header-fixed > thead > tr:after {
46 | content: ' ';
47 | display: block;
48 | visibility: hidden;
49 | clear: both;
50 | }
51 |
52 | .header-fixed > tbody {
53 | overflow-y: auto;
54 | height: 500px;
55 | }
56 |
57 | .header-fixed > tbody > tr > td,
58 | .header-fixed > thead > tr > th {
59 | width: 20%;
60 | float: left;
61 | }
--------------------------------------------------------------------------------
/app/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/app/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/app/fonts/glyphicons-halflings-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/app/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/app/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/app/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/app/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/app/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/app/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/app/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/index.js:
--------------------------------------------------------------------------------
1 | const {app, BrowserWindow, Menu} = require('electron')
2 | const path = require('path')
3 | const url = require('url')
4 |
5 | // 保持一个对于 window 对象的全局引用,如果你不这样做,
6 | // 当 JavaScript 对象被垃圾回收, window 会被自动地关闭
7 | let win
8 |
9 | function createWindow () {
10 | // 创建浏览器窗口。
11 | win = new BrowserWindow({width: 400, height: 670, titleBarStyle: "hiddend-inset", title: app.getName()+"@"+app.getVersion()});
12 |
13 | win.setMenu(null);
14 |
15 | // 加载应用的 index.html。
16 | win.loadURL(url.format({
17 | pathname: path.join(__dirname, 'index.html'),
18 | protocol: 'file:',
19 | slashes: true
20 | }))
21 |
22 | // 打开开发者工具。
23 | // win.webContents.openDevTools()
24 |
25 | // 当 window 被关闭,这个事件会被触发。
26 | win.on('closed', () => {
27 | // 取消引用 window 对象,如果你的应用支持多窗口的话,
28 | // 通常会把多个 window 对象存放在一个数组里面,
29 | // 与此同时,你应该删除相应的元素。
30 | win = null
31 | })
32 | }
33 |
34 |
35 | // Electron 会在初始化后并准备
36 | // 创建浏览器窗口时,调用这个函数。
37 | // 部分 API 在 ready 事件触发后才能使用。
38 | app.on('ready', createWindow)
39 |
40 | // 当全部窗口关闭时退出。
41 | app.on('window-all-closed', () => {
42 | // 在 macOS 上,除非用户用 Cmd + Q 确定地退出,
43 | // 否则绝大部分应用及其菜单栏会保持激活。
44 | if (process.platform !== 'darwin') {
45 | app.quit()
46 | }
47 | })
48 |
49 | app.on('activate', () => {
50 | console.log("activate")
51 |
52 | // 在这文件,你可以续写应用剩下主进程代码。
53 | // 也可以拆分成几个文件,然后用 require 导入。
54 | if (win === null) {
55 | createWindow()
56 | }
57 | })
58 |
59 | // 在这文件,你可以续写应用剩下主进程代码。
60 | // 也可以拆分成几个文件,然后用 require 导入。
--------------------------------------------------------------------------------
/app/js/bmfont-writer.js:
--------------------------------------------------------------------------------
1 | //
2 | // info face="Arial-Black" size=30 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
3 | // common lineHeight=54 base=30 scaleW=319 scaleH=54 pages=1 packed=0
4 | // page id=0 file="attack_num.png"
5 | // chars count=11
6 | // char id=45 x=0 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="-"
7 | // char id=48 x=30 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="0"
8 | // char id=49 x=60 y=0 width=19 height=54 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=0 letter="1"
9 | // char id=50 x=79 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="2"
10 | // char id=51 x=109 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="3"
11 | // char id=52 x=139 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="4"
12 | // char id=53 x=169 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="5"
13 | // char id=54 x=199 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="6"
14 | // char id=55 x=229 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="7"
15 | // char id=56 x=259 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="8"
16 | // char id=57 x=289 y=0 width=30 height=54 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="9"
17 |
18 | const fs = require("fs")
19 | const path = require("path");
20 | const nativeImage = require('electron').nativeImage;
21 | var Jimp = require("jimp");
22 |
23 | class BMFontWriter {
24 | constructor(){
25 | this._charList = Array();
26 | this._font = "Arial"
27 | this._fontSize = 10
28 | }
29 |
30 | setFont(_name, _size) {
31 | this._font = _name;
32 | this._size = _size;
33 | }
34 |
35 | appendItem(_image, _char) {
36 | this._charList.push({image: _image, char: _char});
37 | }
38 |
39 | _appendLine(_config, _image, _charcode, _char) {
40 | var line = Array();
41 |
42 | line.push("char");
43 | line.push("id=" + _charcode);
44 | line.push("x=" + _config.x);
45 | line.push("y=" + _config.y);
46 | line.push("width=" + _image.width);
47 | line.push("height=" + _image.height);
48 | line.push("xoffset=" + 0);
49 | line.push("yoffset=" + 0);
50 | line.push("xadvance=" + _image.width);
51 | line.push("page=" + 0);
52 | line.push("chnl=" + 0);
53 | line.push("page=" + 0);
54 | line.push(String.format("letter=\"{0}\"", _char));
55 |
56 | _config.lines.push(line.join(" "));
57 |
58 | _config.x = _config.x + _image.width;
59 | _config.max_h = Math.max(_config.max_h, _image.height);
60 | _config.min_w = Math.max(_config.min_w, _image.width);
61 | _config.w = _config.w + _image.width;
62 | }
63 |
64 | save(_file) {
65 |
66 | if (path.extname(_file) != ".fnt") {
67 | return
68 | }
69 |
70 | var lines = Array()
71 | var imageName = path.basename(_file, path.extname(_file)) + ".png";
72 | var imagePathName = path.join(path.dirname(_file), imageName);
73 |
74 | var config = {
75 | x: 0,
76 | y: 0,
77 | w: 0,
78 | max_h: this._charList[0].image.bitmap.height,
79 | min_w: this._charList[0].image.bitmap.width,
80 | lines: Array()
81 | }
82 |
83 | for (var index = 0; index < this._charList.length; index++) {
84 | var element = this._charList[index];
85 | var bmp = element.image.bitmap;
86 |
87 | this._appendLine(config, bmp, element.char.charCodeAt(0), element.char);
88 | }
89 |
90 | var space = {width: config.min_w, height: config.max_h};
91 | this._appendLine(config, space, " ".charCodeAt(0), "space");
92 |
93 | config.lines.splice(
94 | 0,
95 | 0,
96 | String.format("info face=\"{0}\" size={1} bold=0 italic=0 charset=\"\" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2", this._font, this._fontSize),
97 | String.format("common lineHeight={0} base={2} scaleW={1} scaleH={0} pages=1 packed=0", config.max_h, config.w, this._fontSize),
98 | String.format("page id=0 file=\"{0}\"", imageName),
99 | String.format("chars count={0}", config.lines.length)
100 | )
101 |
102 | fs.writeFileSync(_file, config.lines.join("\n"));
103 |
104 | config.x = 0;
105 | config.y = 0;
106 | var image = new Jimp(config.w, config.max_h, function (err, image) {
107 | for (var index = 0; index < this._charList.length; index++) {
108 | var element = this._charList[index];
109 | var bmp = element.image.bitmap;
110 |
111 | image.composite(element.image, config.x, config.y);
112 | config.x = config.x + bmp.width;
113 | }
114 | image.write(imagePathName);
115 | }.bind(this));
116 | }
117 | }
118 |
119 | exports.BMFontWriter = BMFontWriter;
--------------------------------------------------------------------------------
/app/js/index.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const nativeImage = require('electron').nativeImage;
3 | const remote = require("electron").remote;
4 | const BMFontWriter = require("./js/bmfont-writer").BMFontWriter;
5 | const Jimp = require("jimp");
6 |
7 | var ITEM_PARENT = document.getElementById("item-list");
8 | var FNTITEMARRAY = Array();
9 | var UID = 0;
10 | var CURRENTFONT = {
11 | name: "Arial",
12 | size: 10
13 | }
14 |
15 | function onClickTableItemRemove(o) {
16 | var id = Number(o.id);
17 | for (var index = 0; index < FNTITEMARRAY.length; index++) {
18 | var element = FNTITEMARRAY[index];
19 | if(element.uid == id)
20 | {
21 | FNTITEMARRAY.splice(index, 1);
22 | var p = o.parentNode.parentNode;
23 | p.parentNode.removeChild(p);
24 | break;
25 | }
26 | }
27 |
28 | }
29 |
30 | function onClickSaveFnt(event) {
31 | remote.dialog.showSaveDialog({ title: "untitle.fnt" }, function (filename) {
32 | if (!filename) {
33 | return;
34 | }
35 |
36 | if (path.extname(filename) != ".fnt") {
37 | filename = filename + ".fnt";
38 | }
39 |
40 | var writer = new BMFontWriter();
41 |
42 | writer.setFont(CURRENTFONT.name, CURRENTFONT.size);
43 |
44 | for (var index = 0; index < FNTITEMARRAY.length; index++) {
45 | var element = FNTITEMARRAY[index];
46 | writer.appendItem(element.image, element.input.value);
47 | }
48 |
49 | writer.save(filename);
50 | });
51 | }
52 |
53 | function onClickClear(event) {
54 | UID = 0;
55 | FNTITEMARRAY = Array();
56 | while (ITEM_PARENT.firstChild) {
57 | ITEM_PARENT.removeChild(ITEM_PARENT.firstChild);
58 | }
59 | }
60 |
61 | if (!String.format) {
62 | String.format = function (format) {
63 | var args = Array.prototype.slice.call(arguments, 1);
64 | return format.replace(/{(\d+)}/g, function (match, number) {
65 | return typeof args[number] != 'undefined'
66 | ? args[number]
67 | : match
68 | ;
69 | });
70 | };
71 | }
72 |
73 | function calcImageKey(imagePath) {
74 | var char = path.basename(imagePath, path.extname(imagePath));
75 | var split = char.split("_")
76 | if (split.length >= 2) {
77 | var temp = Number(split[split.length-1]);
78 | if (temp) {
79 | char = String.fromCharCode(temp)
80 | }
81 | }
82 | return char
83 | }
84 |
85 | function appendFntItem(imagePath, char) {
86 | if (!char) {
87 | char = calcImageKey(imagePath);
88 | }
89 | var basename = path.basename(imagePath);
90 |
91 | var text1 = document.createTextNode(basename);
92 | var image = document.createElement("img");
93 | var text3 = document.createTextNode("");
94 | var input = document.createElement("input");
95 | input.className = "form-control input-sm";
96 | input.value = char[0];
97 | input.maxLength = 1;
98 |
99 | var index = FNTITEMARRAY.push({ input: input, uid: UID }) - 1;
100 |
101 | Jimp.read(imagePath, function (err, lenna) {
102 | if (err) { throw err };
103 | FNTITEMARRAY[index].image = lenna;
104 | text3.nodeValue = String.format("{0}x{1}", lenna.bitmap.width, lenna.bitmap.height);
105 |
106 | var baseW = 50;
107 | var baseH = 50;
108 |
109 | var scacle = Math.min(baseW / lenna.bitmap.width, baseH / lenna.bitmap.height);
110 | image.src = imagePath;
111 | image.width = lenna.bitmap.width * scacle;
112 | image.height = lenna.bitmap.height * scacle;
113 | })
114 |
115 | var tr = document.createElement('tr');
116 | var tdList = Array();
117 |
118 | tdList[0] = document.createElement('td');
119 | tdList[0].appendChild(text1);
120 |
121 | tdList[1] = document.createElement('td');
122 | tdList[1].appendChild(image);
123 |
124 | tdList[2] = document.createElement('td');
125 | tdList[2].appendChild(text3);
126 |
127 | tdList[3] = document.createElement('td');
128 | tdList[3].appendChild(input);
129 |
130 | tdList[4] = document.createElement('td');
131 | tdList[4].innerHTML = String.format("", UID);
132 |
133 | tdList.forEach(function (element) {
134 | element.className = "text-center";
135 | tr.appendChild(element);
136 | }, this);
137 |
138 | ITEM_PARENT.appendChild(tr);
139 |
140 | UID = UID + 1;
141 | }
142 |
143 | document.ondragover = document.ondrop = (ev) => {
144 | ev.preventDefault()
145 | }
146 |
147 | document.body.ondrop = (ev) => {
148 | for (var i = 0; i < ev.dataTransfer.files.length; i++) {
149 | var filePath = ev.dataTransfer.files[i].path;
150 | if (path.extname(filePath) == ".png") {
151 | appendFntItem(filePath)
152 | }
153 | }
154 | ev.preventDefault()
155 | }
156 |
157 | document.getElementById("btn-save").addEventListener("click", onClickSaveFnt);
158 | document.getElementById("btn-clear").addEventListener("click", onClickClear);
159 |
--------------------------------------------------------------------------------
/app/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "convert2fnt",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "dependencies": {
6 | "ajv": {
7 | "version": "5.2.3",
8 | "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-5.2.3.tgz",
9 | "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
10 | "requires": {
11 | "co": "4.6.0",
12 | "fast-deep-equal": "1.0.0",
13 | "json-schema-traverse": "0.3.1",
14 | "json-stable-stringify": "1.0.1"
15 | }
16 | },
17 | "asn1": {
18 | "version": "0.2.3",
19 | "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz",
20 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
21 | },
22 | "assert-plus": {
23 | "version": "1.0.0",
24 | "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
25 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
26 | },
27 | "asynckit": {
28 | "version": "0.4.0",
29 | "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
30 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
31 | },
32 | "aws-sign2": {
33 | "version": "0.7.0",
34 | "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
35 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
36 | },
37 | "aws4": {
38 | "version": "1.6.0",
39 | "resolved": "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz",
40 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
41 | },
42 | "bcrypt-pbkdf": {
43 | "version": "1.0.1",
44 | "resolved": "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz",
45 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
46 | "optional": true,
47 | "requires": {
48 | "tweetnacl": "0.14.5"
49 | }
50 | },
51 | "bignumber.js": {
52 | "version": "2.4.0",
53 | "resolved": "http://registry.npm.taobao.org/bignumber.js/download/bignumber.js-2.4.0.tgz",
54 | "integrity": "sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg="
55 | },
56 | "bmp-js": {
57 | "version": "0.0.3",
58 | "resolved": "http://registry.npm.taobao.org/bmp-js/download/bmp-js-0.0.3.tgz",
59 | "integrity": "sha1-ZBE+nHzxICs3btYHvzBibr5XsYo="
60 | },
61 | "boom": {
62 | "version": "4.3.1",
63 | "resolved": "http://registry.npm.taobao.org/boom/download/boom-4.3.1.tgz",
64 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
65 | "requires": {
66 | "hoek": "4.2.0"
67 | }
68 | },
69 | "buffer-equal": {
70 | "version": "0.0.1",
71 | "resolved": "http://registry.npm.taobao.org/buffer-equal/download/buffer-equal-0.0.1.tgz",
72 | "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs="
73 | },
74 | "caseless": {
75 | "version": "0.12.0",
76 | "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
77 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
78 | },
79 | "co": {
80 | "version": "4.6.0",
81 | "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
82 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
83 | },
84 | "combined-stream": {
85 | "version": "1.0.5",
86 | "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz",
87 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
88 | "requires": {
89 | "delayed-stream": "1.0.0"
90 | }
91 | },
92 | "core-util-is": {
93 | "version": "1.0.2",
94 | "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
95 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
96 | },
97 | "cryptiles": {
98 | "version": "3.1.2",
99 | "resolved": "http://registry.npm.taobao.org/cryptiles/download/cryptiles-3.1.2.tgz",
100 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
101 | "requires": {
102 | "boom": "5.2.0"
103 | },
104 | "dependencies": {
105 | "boom": {
106 | "version": "5.2.0",
107 | "resolved": "http://registry.npm.taobao.org/boom/download/boom-5.2.0.tgz",
108 | "integrity": "sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI=",
109 | "requires": {
110 | "hoek": "4.2.0"
111 | }
112 | }
113 | }
114 | },
115 | "dashdash": {
116 | "version": "1.14.1",
117 | "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
118 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
119 | "requires": {
120 | "assert-plus": "1.0.0"
121 | }
122 | },
123 | "delayed-stream": {
124 | "version": "1.0.0",
125 | "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
126 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
127 | },
128 | "dom-walk": {
129 | "version": "0.1.1",
130 | "resolved": "http://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.1.tgz",
131 | "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
132 | },
133 | "ecc-jsbn": {
134 | "version": "0.1.1",
135 | "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz",
136 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
137 | "optional": true,
138 | "requires": {
139 | "jsbn": "0.1.1"
140 | }
141 | },
142 | "es6-promise": {
143 | "version": "3.3.1",
144 | "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-3.3.1.tgz",
145 | "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM="
146 | },
147 | "exif-parser": {
148 | "version": "0.1.12",
149 | "resolved": "http://registry.npm.taobao.org/exif-parser/download/exif-parser-0.1.12.tgz",
150 | "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI="
151 | },
152 | "extend": {
153 | "version": "3.0.1",
154 | "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz",
155 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
156 | },
157 | "extsprintf": {
158 | "version": "1.3.0",
159 | "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
160 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
161 | },
162 | "fast-deep-equal": {
163 | "version": "1.0.0",
164 | "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.0.0.tgz",
165 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
166 | },
167 | "file-type": {
168 | "version": "3.9.0",
169 | "resolved": "http://registry.npm.taobao.org/file-type/download/file-type-3.9.0.tgz",
170 | "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
171 | },
172 | "for-each": {
173 | "version": "0.3.2",
174 | "resolved": "http://registry.npm.taobao.org/for-each/download/for-each-0.3.2.tgz",
175 | "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=",
176 | "requires": {
177 | "is-function": "1.0.1"
178 | }
179 | },
180 | "forever-agent": {
181 | "version": "0.6.1",
182 | "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
183 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
184 | },
185 | "form-data": {
186 | "version": "2.3.1",
187 | "resolved": "http://registry.npm.taobao.org/form-data/download/form-data-2.3.1.tgz",
188 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
189 | "requires": {
190 | "asynckit": "0.4.0",
191 | "combined-stream": "1.0.5",
192 | "mime-types": "2.1.17"
193 | }
194 | },
195 | "getpass": {
196 | "version": "0.1.7",
197 | "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
198 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
199 | "requires": {
200 | "assert-plus": "1.0.0"
201 | }
202 | },
203 | "global": {
204 | "version": "4.3.2",
205 | "resolved": "http://registry.npm.taobao.org/global/download/global-4.3.2.tgz",
206 | "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
207 | "requires": {
208 | "min-document": "2.19.0",
209 | "process": "0.5.2"
210 | }
211 | },
212 | "har-schema": {
213 | "version": "2.0.0",
214 | "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
215 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
216 | },
217 | "har-validator": {
218 | "version": "5.0.3",
219 | "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-5.0.3.tgz",
220 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
221 | "requires": {
222 | "ajv": "5.2.3",
223 | "har-schema": "2.0.0"
224 | }
225 | },
226 | "hawk": {
227 | "version": "6.0.2",
228 | "resolved": "http://registry.npm.taobao.org/hawk/download/hawk-6.0.2.tgz",
229 | "integrity": "sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg=",
230 | "requires": {
231 | "boom": "4.3.1",
232 | "cryptiles": "3.1.2",
233 | "hoek": "4.2.0",
234 | "sntp": "2.0.2"
235 | }
236 | },
237 | "hoek": {
238 | "version": "4.2.0",
239 | "resolved": "http://registry.npm.taobao.org/hoek/download/hoek-4.2.0.tgz",
240 | "integrity": "sha1-ctnQdU9/4lyi0BrY+PmpRJqJUm0="
241 | },
242 | "http-signature": {
243 | "version": "1.2.0",
244 | "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz",
245 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
246 | "requires": {
247 | "assert-plus": "1.0.0",
248 | "jsprim": "1.4.1",
249 | "sshpk": "1.13.1"
250 | }
251 | },
252 | "ip-regex": {
253 | "version": "1.0.3",
254 | "resolved": "http://registry.npm.taobao.org/ip-regex/download/ip-regex-1.0.3.tgz",
255 | "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0="
256 | },
257 | "is-function": {
258 | "version": "1.0.1",
259 | "resolved": "http://registry.npm.taobao.org/is-function/download/is-function-1.0.1.tgz",
260 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU="
261 | },
262 | "is-typedarray": {
263 | "version": "1.0.0",
264 | "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
265 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
266 | },
267 | "isstream": {
268 | "version": "0.1.2",
269 | "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
270 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
271 | },
272 | "jimp": {
273 | "version": "0.2.28",
274 | "resolved": "http://registry.npm.taobao.org/jimp/download/jimp-0.2.28.tgz",
275 | "integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=",
276 | "requires": {
277 | "bignumber.js": "2.4.0",
278 | "bmp-js": "0.0.3",
279 | "es6-promise": "3.3.1",
280 | "exif-parser": "0.1.12",
281 | "file-type": "3.9.0",
282 | "jpeg-js": "0.2.0",
283 | "load-bmfont": "1.3.0",
284 | "mime": "1.4.1",
285 | "mkdirp": "0.5.1",
286 | "pixelmatch": "4.0.2",
287 | "pngjs": "3.3.0",
288 | "read-chunk": "1.0.1",
289 | "request": "2.83.0",
290 | "stream-to-buffer": "0.1.0",
291 | "tinycolor2": "1.4.1",
292 | "url-regex": "3.2.0"
293 | }
294 | },
295 | "jpeg-js": {
296 | "version": "0.2.0",
297 | "resolved": "http://registry.npm.taobao.org/jpeg-js/download/jpeg-js-0.2.0.tgz",
298 | "integrity": "sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII="
299 | },
300 | "jsbn": {
301 | "version": "0.1.1",
302 | "resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
303 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
304 | "optional": true
305 | },
306 | "json-schema": {
307 | "version": "0.2.3",
308 | "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz",
309 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
310 | },
311 | "json-schema-traverse": {
312 | "version": "0.3.1",
313 | "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz",
314 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
315 | },
316 | "json-stable-stringify": {
317 | "version": "1.0.1",
318 | "resolved": "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz",
319 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
320 | "requires": {
321 | "jsonify": "0.0.0"
322 | }
323 | },
324 | "json-stringify-safe": {
325 | "version": "5.0.1",
326 | "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
327 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
328 | },
329 | "jsonify": {
330 | "version": "0.0.0",
331 | "resolved": "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz",
332 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
333 | },
334 | "jsprim": {
335 | "version": "1.4.1",
336 | "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
337 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
338 | "requires": {
339 | "assert-plus": "1.0.0",
340 | "extsprintf": "1.3.0",
341 | "json-schema": "0.2.3",
342 | "verror": "1.10.0"
343 | }
344 | },
345 | "load-bmfont": {
346 | "version": "1.3.0",
347 | "resolved": "http://registry.npm.taobao.org/load-bmfont/download/load-bmfont-1.3.0.tgz",
348 | "integrity": "sha1-u358cQ3mvK/LE8s7jIHgwBMey8k=",
349 | "requires": {
350 | "buffer-equal": "0.0.1",
351 | "mime": "1.4.1",
352 | "parse-bmfont-ascii": "1.0.6",
353 | "parse-bmfont-binary": "1.0.6",
354 | "parse-bmfont-xml": "1.1.3",
355 | "xhr": "2.4.0",
356 | "xtend": "4.0.1"
357 | }
358 | },
359 | "mime": {
360 | "version": "1.4.1",
361 | "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz",
362 | "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY="
363 | },
364 | "mime-db": {
365 | "version": "1.30.0",
366 | "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.30.0.tgz",
367 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
368 | },
369 | "mime-types": {
370 | "version": "2.1.17",
371 | "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.17.tgz",
372 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
373 | "requires": {
374 | "mime-db": "1.30.0"
375 | }
376 | },
377 | "min-document": {
378 | "version": "2.19.0",
379 | "resolved": "http://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz",
380 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
381 | "requires": {
382 | "dom-walk": "0.1.1"
383 | }
384 | },
385 | "minimist": {
386 | "version": "0.0.8",
387 | "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
388 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
389 | },
390 | "mkdirp": {
391 | "version": "0.5.1",
392 | "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz",
393 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
394 | "requires": {
395 | "minimist": "0.0.8"
396 | }
397 | },
398 | "oauth-sign": {
399 | "version": "0.8.2",
400 | "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz",
401 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
402 | },
403 | "parse-bmfont-ascii": {
404 | "version": "1.0.6",
405 | "resolved": "http://registry.npm.taobao.org/parse-bmfont-ascii/download/parse-bmfont-ascii-1.0.6.tgz",
406 | "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU="
407 | },
408 | "parse-bmfont-binary": {
409 | "version": "1.0.6",
410 | "resolved": "http://registry.npm.taobao.org/parse-bmfont-binary/download/parse-bmfont-binary-1.0.6.tgz",
411 | "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY="
412 | },
413 | "parse-bmfont-xml": {
414 | "version": "1.1.3",
415 | "resolved": "http://registry.npm.taobao.org/parse-bmfont-xml/download/parse-bmfont-xml-1.1.3.tgz",
416 | "integrity": "sha1-1rZqNxr9OcUAfZ8O6yYqTyzOe3w=",
417 | "requires": {
418 | "xml-parse-from-string": "1.0.1",
419 | "xml2js": "0.4.19"
420 | }
421 | },
422 | "parse-headers": {
423 | "version": "2.0.1",
424 | "resolved": "http://registry.npm.taobao.org/parse-headers/download/parse-headers-2.0.1.tgz",
425 | "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=",
426 | "requires": {
427 | "for-each": "0.3.2",
428 | "trim": "0.0.1"
429 | }
430 | },
431 | "performance-now": {
432 | "version": "2.1.0",
433 | "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
434 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
435 | },
436 | "pixelmatch": {
437 | "version": "4.0.2",
438 | "resolved": "http://registry.npm.taobao.org/pixelmatch/download/pixelmatch-4.0.2.tgz",
439 | "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
440 | "requires": {
441 | "pngjs": "3.3.0"
442 | }
443 | },
444 | "pngjs": {
445 | "version": "3.3.0",
446 | "resolved": "http://registry.npm.taobao.org/pngjs/download/pngjs-3.3.0.tgz",
447 | "integrity": "sha1-H1cwwYnJSTO4G+2iqy+OKFUmOo8="
448 | },
449 | "process": {
450 | "version": "0.5.2",
451 | "resolved": "http://registry.npm.taobao.org/process/download/process-0.5.2.tgz",
452 | "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
453 | },
454 | "punycode": {
455 | "version": "1.4.1",
456 | "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
457 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
458 | },
459 | "qs": {
460 | "version": "6.5.1",
461 | "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz",
462 | "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg="
463 | },
464 | "read-chunk": {
465 | "version": "1.0.1",
466 | "resolved": "http://registry.npm.taobao.org/read-chunk/download/read-chunk-1.0.1.tgz",
467 | "integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ="
468 | },
469 | "request": {
470 | "version": "2.83.0",
471 | "resolved": "http://registry.npm.taobao.org/request/download/request-2.83.0.tgz",
472 | "integrity": "sha1-ygtl2gLtYpNYh4COb1EDgQNOM1Y=",
473 | "requires": {
474 | "aws-sign2": "0.7.0",
475 | "aws4": "1.6.0",
476 | "caseless": "0.12.0",
477 | "combined-stream": "1.0.5",
478 | "extend": "3.0.1",
479 | "forever-agent": "0.6.1",
480 | "form-data": "2.3.1",
481 | "har-validator": "5.0.3",
482 | "hawk": "6.0.2",
483 | "http-signature": "1.2.0",
484 | "is-typedarray": "1.0.0",
485 | "isstream": "0.1.2",
486 | "json-stringify-safe": "5.0.1",
487 | "mime-types": "2.1.17",
488 | "oauth-sign": "0.8.2",
489 | "performance-now": "2.1.0",
490 | "qs": "6.5.1",
491 | "safe-buffer": "5.1.1",
492 | "stringstream": "0.0.5",
493 | "tough-cookie": "2.3.3",
494 | "tunnel-agent": "0.6.0",
495 | "uuid": "3.1.0"
496 | }
497 | },
498 | "safe-buffer": {
499 | "version": "5.1.1",
500 | "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz",
501 | "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
502 | },
503 | "sax": {
504 | "version": "1.2.4",
505 | "resolved": "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
506 | "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk="
507 | },
508 | "sntp": {
509 | "version": "2.0.2",
510 | "resolved": "http://registry.npm.taobao.org/sntp/download/sntp-2.0.2.tgz",
511 | "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=",
512 | "requires": {
513 | "hoek": "4.2.0"
514 | }
515 | },
516 | "sshpk": {
517 | "version": "1.13.1",
518 | "resolved": "http://registry.npm.taobao.org/sshpk/download/sshpk-1.13.1.tgz",
519 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
520 | "requires": {
521 | "asn1": "0.2.3",
522 | "assert-plus": "1.0.0",
523 | "bcrypt-pbkdf": "1.0.1",
524 | "dashdash": "1.14.1",
525 | "ecc-jsbn": "0.1.1",
526 | "getpass": "0.1.7",
527 | "jsbn": "0.1.1",
528 | "tweetnacl": "0.14.5"
529 | }
530 | },
531 | "stream-to": {
532 | "version": "0.2.2",
533 | "resolved": "http://registry.npm.taobao.org/stream-to/download/stream-to-0.2.2.tgz",
534 | "integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0="
535 | },
536 | "stream-to-buffer": {
537 | "version": "0.1.0",
538 | "resolved": "http://registry.npm.taobao.org/stream-to-buffer/download/stream-to-buffer-0.1.0.tgz",
539 | "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=",
540 | "requires": {
541 | "stream-to": "0.2.2"
542 | }
543 | },
544 | "stringstream": {
545 | "version": "0.0.5",
546 | "resolved": "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz",
547 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
548 | },
549 | "tinycolor2": {
550 | "version": "1.4.1",
551 | "resolved": "http://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.1.tgz",
552 | "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g="
553 | },
554 | "tough-cookie": {
555 | "version": "2.3.3",
556 | "resolved": "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.3.tgz",
557 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
558 | "requires": {
559 | "punycode": "1.4.1"
560 | }
561 | },
562 | "trim": {
563 | "version": "0.0.1",
564 | "resolved": "http://registry.npm.taobao.org/trim/download/trim-0.0.1.tgz",
565 | "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0="
566 | },
567 | "tunnel-agent": {
568 | "version": "0.6.0",
569 | "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
570 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
571 | "requires": {
572 | "safe-buffer": "5.1.1"
573 | }
574 | },
575 | "tweetnacl": {
576 | "version": "0.14.5",
577 | "resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
578 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
579 | "optional": true
580 | },
581 | "url-regex": {
582 | "version": "3.2.0",
583 | "resolved": "http://registry.npm.taobao.org/url-regex/download/url-regex-3.2.0.tgz",
584 | "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=",
585 | "requires": {
586 | "ip-regex": "1.0.3"
587 | }
588 | },
589 | "uuid": {
590 | "version": "3.1.0",
591 | "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz",
592 | "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ="
593 | },
594 | "verror": {
595 | "version": "1.10.0",
596 | "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
597 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
598 | "requires": {
599 | "assert-plus": "1.0.0",
600 | "core-util-is": "1.0.2",
601 | "extsprintf": "1.3.0"
602 | }
603 | },
604 | "xhr": {
605 | "version": "2.4.0",
606 | "resolved": "http://registry.npm.taobao.org/xhr/download/xhr-2.4.0.tgz",
607 | "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=",
608 | "requires": {
609 | "global": "4.3.2",
610 | "is-function": "1.0.1",
611 | "parse-headers": "2.0.1",
612 | "xtend": "4.0.1"
613 | }
614 | },
615 | "xml-parse-from-string": {
616 | "version": "1.0.1",
617 | "resolved": "http://registry.npm.taobao.org/xml-parse-from-string/download/xml-parse-from-string-1.0.1.tgz",
618 | "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig="
619 | },
620 | "xml2js": {
621 | "version": "0.4.19",
622 | "resolved": "http://registry.npm.taobao.org/xml2js/download/xml2js-0.4.19.tgz",
623 | "integrity": "sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c=",
624 | "requires": {
625 | "sax": "1.2.4",
626 | "xmlbuilder": "9.0.4"
627 | }
628 | },
629 | "xmlbuilder": {
630 | "version": "9.0.4",
631 | "resolved": "http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.4.tgz",
632 | "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8="
633 | },
634 | "xtend": {
635 | "version": "4.0.1",
636 | "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz",
637 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
638 | }
639 | }
640 | }
641 |
--------------------------------------------------------------------------------
/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "convert2fnt",
3 | "version": "0.0.2",
4 | "description": "Convert images to fnt file.",
5 | "main": "index.js",
6 | "author": "justbilt",
7 | "license": "ISC",
8 | "dependencies": {
9 | "jimp": "^0.2.28"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/build/background.tiff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/background.tiff
--------------------------------------------------------------------------------
/build/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icon.icns
--------------------------------------------------------------------------------
/build/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icon.ico
--------------------------------------------------------------------------------
/build/icons/1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/1024x1024.png
--------------------------------------------------------------------------------
/build/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/128x128.png
--------------------------------------------------------------------------------
/build/icons/16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/16x16.png
--------------------------------------------------------------------------------
/build/icons/24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/24x24.png
--------------------------------------------------------------------------------
/build/icons/256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/256x256.png
--------------------------------------------------------------------------------
/build/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/32x32.png
--------------------------------------------------------------------------------
/build/icons/48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/48x48.png
--------------------------------------------------------------------------------
/build/icons/512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/512x512.png
--------------------------------------------------------------------------------
/build/icons/64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/64x64.png
--------------------------------------------------------------------------------
/build/icons/96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/justbilt/convert2fnt/3bee424d3bd9bb5c63c9f544a101c5983ebdc504/build/icons/96x96.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "repository": "justbilt/convert2fnt",
3 | "author": "justbilt",
4 | "license": "ISC",
5 | "scripts": {
6 | "start": "electron app",
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "postinstall": "electron-builder install-app-deps",
9 | "pack": "electron-builder --dir",
10 | "dist": "electron-builder"
11 | },
12 | "devDependencies": {
13 | "electron-builder": "^19.33.0",
14 | "electron": "^1.7.8",
15 | "jimp": "^0.2.28"
16 | },
17 | "build": {
18 | "asar": false,
19 | "appId": "com.justbilt.convert2fnt",
20 | "mac": {
21 | "category": "your.app.category.type",
22 | "identity": null,
23 | "target": "zip"
24 | },
25 | "win": {
26 | "target": "zip"
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------