Compare commits

..

No commits in common. "master" and "feature/undoredo" have entirely different histories.

4 changed files with 29 additions and 59 deletions

78
package-lock.json generated
View File

@ -16,15 +16,6 @@
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true "dev": true
}, },
"argparse": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
"integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
"dev": true,
"requires": {
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": { "babel-code-frame": {
"version": "6.26.0", "version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
@ -120,9 +111,9 @@
"dev": true "dev": true
}, },
"commander": { "commander": {
"version": "2.13.0", "version": "2.11.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
"integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
"dev": true "dev": true
}, },
"concat-map": { "concat-map": {
@ -143,12 +134,6 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true "dev": true
}, },
"esprima": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
"integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
"dev": true
},
"esutils": { "esutils": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
@ -212,16 +197,6 @@
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"dev": true "dev": true
}, },
"js-yaml": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
"integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
"dev": true,
"requires": {
"argparse": "1.0.9",
"esprima": "4.0.0"
}
},
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@ -262,15 +237,9 @@
} }
}, },
"semver": { "semver": {
"version": "5.5.0", "version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
"dev": true
},
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true "dev": true
}, },
"strip-ansi": { "strip-ansi": {
@ -289,44 +258,43 @@
"dev": true "dev": true
}, },
"tslib": { "tslib": {
"version": "1.9.0", "version": "1.8.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.0.tgz",
"integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", "integrity": "sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg==",
"dev": true "dev": true
}, },
"tslint": { "tslint": {
"version": "5.9.1", "version": "5.8.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.8.0.tgz",
"integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", "integrity": "sha1-H0mtWy53x2w69N3K5VKuTjYS6xM=",
"dev": true, "dev": true,
"requires": { "requires": {
"babel-code-frame": "6.26.0", "babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1", "builtin-modules": "1.1.1",
"chalk": "2.3.0", "chalk": "2.3.0",
"commander": "2.13.0", "commander": "2.11.0",
"diff": "3.4.0", "diff": "3.4.0",
"glob": "7.1.2", "glob": "7.1.2",
"js-yaml": "3.10.0",
"minimatch": "3.0.4", "minimatch": "3.0.4",
"resolve": "1.5.0", "resolve": "1.5.0",
"semver": "5.5.0", "semver": "5.4.1",
"tslib": "1.9.0", "tslib": "1.8.0",
"tsutils": "2.19.1" "tsutils": "2.12.2"
} }
}, },
"tsutils": { "tsutils": {
"version": "2.19.1", "version": "2.12.2",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.19.1.tgz", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.12.2.tgz",
"integrity": "sha512-1B3z4H4HddgzWptqLzwrJloDEsyBt8DvZhnFO14k7A4RsQL/UhEfQjD4hpcY5NpF3veBkjJhQJ8Bl7Xp96cN+A==", "integrity": "sha1-rVikhl0X7D3bZjG2ylO+FKVlb/M=",
"dev": true, "dev": true,
"requires": { "requires": {
"tslib": "1.9.0" "tslib": "1.8.0"
} }
}, },
"typescript": { "typescript": {
"version": "2.6.2", "version": "2.6.1",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.1.tgz",
"integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", "integrity": "sha1-7znN6ierrAtQAkLWcmq5DgyEZjE=",
"dev": true "dev": true
}, },
"wrappy": { "wrappy": {

View File

@ -3,7 +3,7 @@
"version": "0.0.1", "version": "0.0.1",
"description": "BittMapp - A monochrome bitmap editor", "description": "BittMapp - A monochrome bitmap editor",
"scripts": { "scripts": {
"build": "rm -rf static/js/*.js && tslint -c tslint.json \"src/**/*.ts\" && tsc && cat static/js/linkednode.js static/js/linkedlist.js static/js/actionnode.js static/js/actionlist.js static/js/bmptools.js static/js/editor.js static/js/serialisers.js static/js/main.js > static/js/dist.js" "build": "rm -rf static/js/*.js && tslint -c tslint.json \"src/**/*.ts\" && tsc && cat static/js/*.js > static/js/dist.js"
}, },
"author": "Nathan Kunicki <me@nathankunicki.com>", "author": "Nathan Kunicki <me@nathankunicki.com>",
"license": "MIT", "license": "MIT",
@ -11,7 +11,7 @@
"node": ">=8.9.1" "node": ">=8.9.1"
}, },
"devDependencies": { "devDependencies": {
"tslint": "^5.9.1", "tslint": "^5.8.0",
"typescript": "^2.6.2" "typescript": "^2.6.1"
} }
} }

View File

@ -30,6 +30,8 @@ class BMPTools {
const pixelData: Uint8Array = inputData.slice(headerData.pixelDataOffset, headerData.fileLength); const pixelData: Uint8Array = inputData.slice(headerData.pixelDataOffset, headerData.fileLength);
const rowSize: number = (headerData.width - 1 - (headerData.width - 1) % 32 + 32) / 8; const rowSize: number = (headerData.width - 1 - (headerData.width - 1) % 32 + 32) / 8;
// console.log(headerData);
const outputData: Uint8Array = new Uint8Array(Math.ceil((headerData.width * headerData.height) / 8)); const outputData: Uint8Array = new Uint8Array(Math.ceil((headerData.width * headerData.height) / 8));
if (headerData.height > 0) { if (headerData.height > 0) {
@ -98,6 +100,7 @@ class BMPTools {
throw new Error("Data not valid (Only uncompressed data supported)"); throw new Error("Data not valid (Only uncompressed data supported)");
} }
headerData.imageSize = Serialisers.readUint32(inputData, 34, true);
headerData.imageSize = Serialisers.readUint32(inputData, 34, true); headerData.imageSize = Serialisers.readUint32(inputData, 34, true);
headerData.numberColors = Serialisers.readUint32(inputData, 46, true); headerData.numberColors = Serialisers.readUint32(inputData, 46, true);
headerData.importantColors = Serialisers.readUint32(inputData, 50, true); headerData.importantColors = Serialisers.readUint32(inputData, 50, true);

View File

@ -12,7 +12,6 @@
"max-line-length": false, "max-line-length": false,
"prefer-for-of": false, "prefer-for-of": false,
"typedef": true, "typedef": true,
"no-console": false,
"variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"] "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"]
}, },
"rulesDirectory": [] "rulesDirectory": []