diff --git a/.travis.yml b/.travis.yml index 5686814f715..6d7be5f7e10 100755 --- a/.travis.yml +++ b/.travis.yml @@ -28,12 +28,13 @@ before_install: - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install gnu-tar dpkg libicns graphicsmagick git-lfs; fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then git lfs pull; fi - gem install --no-rdoc --no-ri fpm + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then curl -L https://github.com/github/git-lfs/releases/download/v1.1.2/git-lfs-linux-amd64-1.1.2.tar.gz | tar -xz; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then git-lfs-1.1.2/git-lfs pull; fi install: - nvm install $NODE_VERSION - npm install npm -g - npm prune -- npm install Microsoft/TypeScript - npm install script: diff --git a/docs/multi-platform-build.md b/docs/multi-platform-build.md index 242282e6232..b191c71272f 100755 --- a/docs/multi-platform-build.md +++ b/docs/multi-platform-build.md @@ -31,9 +31,26 @@ gem install fpm ## Linux To build app in distributable format for Linux: ``` -sudo apt-get install icnsutils graphicsmagick +sudo apt-get install ruby-dev gcc make icnsutils graphicsmagick +gem install fpm ``` +To build app in distributable format for Windows on Linux: +* Install Wine: + ``` + sudo add-apt-repository ppa:ubuntu-wine/ppa + sudo apt-get update + sudo apt-get install wine1.8 winetricks + winetricks -q vcrun2013 + ``` +* Install [Mono](http://www.mono-project.com/docs/getting-started/install/linux/#usage): + ``` + sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF + echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list + sudo apt-get update + sudo apt-get install mono-complete + ``` + ## Windows Not documented yet. \ No newline at end of file diff --git a/package.json b/package.json index 3c0d2a5d1e4..3925290435c 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,7 @@ "main": "out/index.js", "files": [ "out", - "templates", - "vendor" + "templates" ], "bin": { "build": "./out/build-cli.js", @@ -55,12 +54,11 @@ "dependencies": { "bluebird": "^3.3.4", "command-line-args": "^2.1.6", - "electron-packager": "^6.0.0", - "electron-winstaller-fixed": "^2.0.6-beta.7", + "electron-packager": "^6.0.1", + "electron-winstaller-fixed": "^2.0.6-beta.8", "fs-extra": "^0.26.7", "fs-extra-p": "^0.2.0", "globby": "^4.0.0", - "gm": "^1.21.1", "hosted-git-info": "^2.1.4", "image-size": "^0.5.0", "lodash.template": "^4.2.4", @@ -69,7 +67,8 @@ "progress-stream": "^1.2.0", "read-package-json": "^2.0.3", "source-map-support": "^0.4.0", - "tmp": "0.0.28" + "tmp": "0.0.28", + "7zip-bin": "^0.0.3" }, "optionalDependencies": { "appdmg": "^0.3.6" @@ -90,7 +89,7 @@ "ts-babel": "^0.6.9", "tsconfig-glob": "^0.4.3", "tslint": "next", - "typescript": "^1.9.0-dev.20160405", + "typescript": "^1.9.0-dev.20160408", "validate-commit-msg": "^2.5.0" }, "babel": { diff --git a/src/builder.ts b/src/builder.ts index 2ddf42b7f6a..c08fd1f8bc8 100644 --- a/src/builder.ts +++ b/src/builder.ts @@ -40,7 +40,7 @@ export async function build(originalOptions?: BuildOptions): Promise { options.dist = true } else if (options.dist === undefined) { - options.dist = lifecycleEvent === "dist" || lifecycleEvent === "build" || lifecycleEvent.startsWith("dist:") + options.dist = lifecycleEvent === "dist" || lifecycleEvent === "build" || (lifecycleEvent != null && lifecycleEvent.startsWith("dist:")) } let isPublishOptionGuessed = false diff --git a/src/linuxPackager.ts b/src/linuxPackager.ts index 1ce44807555..08866dd6bbe 100755 --- a/src/linuxPackager.ts +++ b/src/linuxPackager.ts @@ -5,7 +5,6 @@ import { Platform, LinuxBuildOptions } from "./metadata" import { dir as _tpmDir, TmpOptions } from "tmp" import { exec, log } from "./util" import { outputFile, readFile, readdir } from "fs-extra-p" -import { State as Gm } from "gm" const template = require("lodash.template") //noinspection JSUnusedLocalSymbols @@ -100,16 +99,11 @@ Icon=${this.metadata.name} const output = outputs[0].toString() log(output) - const gm = require("gm") - const imagePath = path.join(tempDir, "icon_256x256x32.png") function resize(size: number): BluebirdPromise { - return new BluebirdPromise((resolve, reject) => { - (gm(imagePath)) - .resize(size, size) - .write(path.join(tempDir, `icon_${size}x${size}x32.png`), error => error == null ? resolve() : reject(error)) - }) + const sizeArg = `${size}x${size}` + return exec("gm", ["convert", "-size", sizeArg, imagePath, "-resize", sizeArg, path.join(tempDir, `icon_${size}x${size}x32.png`)]) } const promises: Array> = [resize(24), resize(96)] diff --git a/src/macPackager.ts b/src/macPackager.ts index 2da574bb504..63b4fd601a4 100644 --- a/src/macPackager.ts +++ b/src/macPackager.ts @@ -5,6 +5,7 @@ import { Promise as BluebirdPromise } from "bluebird" import { log, spawn } from "./util" import { createKeychain, deleteKeychain, CodeSigningInfo, generateKeychainName, sign } from "./codeSign" import { stat } from "fs-extra-p" +import { path7za } from "7zip-bin" //noinspection JSUnusedLocalSymbols const __awaiter = require("./awaiter") @@ -112,7 +113,7 @@ export default class MacPackager extends PlatformPackager { } args.push(resultPath, this.appName + ".app") - return spawn(path.join(__dirname, "..", "vendor", "osx", "7za"), args, { + return spawn(path7za, args, { cwd: outDir, stdio: ["ignore", "ignore", "inherit"], }) diff --git a/src/util.ts b/src/util.ts index 86bec49a3a9..33fe8d273c6 100644 --- a/src/util.ts +++ b/src/util.ts @@ -35,7 +35,7 @@ export function installDependencies(appDir: string, electronVersion: string, arc let npmExecPath = process.env.npm_execpath || process.env.NPM_CLI_JS const npmExecArgs = [command, "--production"] if (npmExecPath == null) { - npmExecPath = "npm" + npmExecPath = process.platform === "win32" ? "npm.cmd" : "npm" } else { npmExecArgs.unshift(npmExecPath) diff --git a/test/README.md b/test/README.md index 56e42b3b00e..e288ed823cd 100755 --- a/test/README.md +++ b/test/README.md @@ -1,16 +1,4 @@ -# Running Windows tests on OS X - -``` -brew install Caskroom/cask/xquartz wine mono -``` - -# Running Linux tests on OS X -Do not use OS X bundled Ruby. Install using `brew`. - -``` -brew install ruby gnu-tar dpkg libicns graphicsmagick -gem install fpm -``` +In addition to [required system packages](./multi-platform-build.md), on OS X `dpkg` is required to run Linux tests: `brew install dpkg` # Inspect output if test uses temporary directory Set environment variable `TEST_APP_TMP_DIR` (e.g. `/tmp/electron-builder-test`). diff --git a/test/fixtures/test-app-one/package.json b/test/fixtures/test-app-one/package.json index 0c9ae13a31c..581fc0d9985 100755 --- a/test/fixtures/test-app-one/package.json +++ b/test/fixtures/test-app-one/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "TestApp", - "version": "1.0.0", + "version": "1.1.0", "homepage": "http://foo.example.com", "description": "Test Application", "scripts": { @@ -10,15 +10,12 @@ "author": "Foo Bar ", "license": "MIT", "devDependencies": { - "electron-prebuilt": "^0.37.3" + "electron-prebuilt": "^0.37.5" }, "build": { "app-bundle-id": "your.id", "app-category-type": "your.app.category.type", "iconUrl": "https://raw.githubusercontent.com/szwacz/electron-boilerplate/master/resources/windows/icon.ico", - "compression": "store", - "win": { - "title": "My App" - } + "compression": "store" } } diff --git a/test/fixtures/test-app/app/package.json b/test/fixtures/test-app/app/package.json index ef4581b7a44..ab098c08610 100644 --- a/test/fixtures/test-app/app/package.json +++ b/test/fixtures/test-app/app/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "TestApp", - "version": "1.0.0", + "version": "1.1.0", "description": "Test Application", "author": "Foo Bar", "homepage": "https://github.com/atom/electron-quick-start#readme", diff --git a/test/fixtures/test-app/package.json b/test/fixtures/test-app/package.json index acf80facadd..adbf45ec20e 100755 --- a/test/fixtures/test-app/package.json +++ b/test/fixtures/test-app/package.json @@ -4,7 +4,7 @@ "start": "electron ." }, "devDependencies": { - "electron-prebuilt": "^0.37.3" + "electron-prebuilt": "^0.37.5" }, "build": { "app-bundle-id": "your.id", diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 94f7bdbbc1c..2e1a2711dfa 100755 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -9,37 +9,29 @@ import { Platform, PackagerOptions } from "out" //noinspection JSUnusedLocalSymbols const __awaiter = require("out/awaiter") -test("custom app dir", async () => { - await assertPack("test-app-one", allPlatformsAndCurrentArch(), { - tempDirCreated: (projectDir) => { - return BluebirdPromise.all([ - modifyPackageJson(projectDir, data => { - data.directories = { - buildResources: "custom" - } - }), - move(path.join(projectDir, "build"), path.join(projectDir, "custom")) - ]) - } - }) -}) +test("custom buildResources dir", () => assertPack("test-app-one", allPlatformsAndCurrentArch(), { + tempDirCreated: projectDir => BluebirdPromise.all([ + modifyPackageJson(projectDir, data => { + data.directories = { + buildResources: "custom" + } + }), + move(path.join(projectDir, "build"), path.join(projectDir, "custom")) + ]) +})) test("productName with space", () => assertPack("test-app-one", allPlatformsAndCurrentArch(), { - tempDirCreated: projectDir => { - return modifyPackageJson(projectDir, data => { - data.productName = "Test App" - }) - } + tempDirCreated: projectDir => modifyPackageJson(projectDir, data => { + data.productName = "Test App" + }) })) test("build in the app package.json", t => t.throws(assertPack("test-app", allPlatformsAndCurrentArch(), { - tempDirCreated: projectDir => { - return modifyPackageJson(projectDir, data => { - data.build = { - "iconUrl": "bar", - } - }, true) - } + tempDirCreated: projectDir => modifyPackageJson(projectDir, data => { + data.build = { + "iconUrl": "bar", + } + }, true) }), /'build' in the application package\.json .+/)) test("version from electron-prebuilt dependency", () => assertPack("test-app-one", { @@ -49,7 +41,7 @@ test("version from electron-prebuilt dependency", () => assertPack("test-app-one tempDirCreated: projectDir => { return BluebirdPromise.all([ outputJson(path.join(projectDir, "node_modules", "electron-prebuilt", "package.json"), { - version: "0.37.3" + version: "0.37.5" }), modifyPackageJson(projectDir, data => { data.devDependencies = {} @@ -133,7 +125,7 @@ test("copy extra resource", async () => { "lib/net45/foo/nameWithoutDot", "lib/net45/locales/en-US.pak", "lib/net45/resources/app.asar", - "lib/net45/resources/atom.asar", + "lib/net45/resources/electron.asar", "lib/net45/win/x64.txt", "TestApp.nuspec", "[Content_Types].xml", diff --git a/test/src/helpers/expectedContents.ts b/test/src/helpers/expectedContents.ts index a289e621aa1..abf0259f37a 100755 --- a/test/src/helpers/expectedContents.ts +++ b/test/src/helpers/expectedContents.ts @@ -17,7 +17,7 @@ export const expectedLinuxContents = [ "/usr/share/", "/opt/TestApp/resources/", "/opt/TestApp/resources/app.asar", - "/opt/TestApp/resources/atom.asar", + "/opt/TestApp/resources/electron.asar", "/usr/share/applications/", "/usr/share/applications/TestApp.desktop", "/usr/share/doc/", @@ -76,7 +76,7 @@ export const expectedWinContents = [ "lib/net45/xinput1_3.dll", "lib/net45/locales/en-US.pak", "lib/net45/resources/app.asar", - "lib/net45/resources/atom.asar", + "lib/net45/resources/electron.asar", "TestApp.nuspec", "[Content_Types].xml", "_rels/.rels" diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 46e81195955..b868b391745 100755 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -131,10 +131,10 @@ async function checkLinuxResult(projectDir: string, packager: Packager, packager // console.log(JSON.stringify(await getContents(projectDir + "/dist/TestApp-1.0.0-amd64.deb", productName), null, 2)) // console.log(JSON.stringify(await getContents(projectDir + "/dist/TestApp-1.0.0-i386.deb", productName), null, 2)) - const packageFile = projectDir + "/dist/TestApp-1.0.0-amd64.deb" + const packageFile = projectDir + "/dist/TestApp-1.1.0-amd64.deb" assertThat(await getContents(packageFile, productName)).deepEqual(expectedContents) if (packagerOptions.arch === "all" || packagerOptions.arch === "ia32") { - assertThat(await getContents(projectDir + "/dist/TestApp-1.0.0-i386.deb", productName)).deepEqual(expectedContents) + assertThat(await getContents(projectDir + "/dist/TestApp-1.1.0-i386.deb", productName)).deepEqual(expectedContents) } const regexp = /^ *(\w+): *(.+)$/gm @@ -161,20 +161,20 @@ async function checkOsXResult(packager: Packager, artifacts: Array path.basename(it.file)).sort()).deepEqual([ - `${productName}-1.0.0-mac.zip`, - `${productName}-1.0.0.dmg`, + `${productName}-1.1.0-mac.zip`, + `${productName}-1.1.0.dmg`, ].sort()) assertThat(artifacts.map(it => it.artifactName).sort()).deepEqual([ - "TestApp-1.0.0-mac.zip", - "TestApp-1.0.0.dmg", + "TestApp-1.1.0-mac.zip", + "TestApp-1.1.0.dmg", ].sort()) } @@ -184,8 +184,8 @@ async function checkWindowsResult(packager: Packager, packagerOptions: PackagerO function getWinExpected(archSuffix: string) { return [ `RELEASES${archSuffix}`, - `${productName}Setup-1.0.0${archSuffix}.exe`, - `TestApp-1.0.0${archSuffix}-full.nupkg`, + `${productName}Setup-1.1.0${archSuffix}.exe`, + `TestApp-1.1.0${archSuffix}-full.nupkg`, ] } @@ -202,11 +202,11 @@ async function checkWindowsResult(packager: Packager, packagerOptions: PackagerO if (archSuffix == "") { const expectedArtifactNames = expected.slice() - expectedArtifactNames[1] = `TestAppSetup-1.0.0${archSuffix}.exe` - assertThat(artifacts.map(it => it.artifactName).filter(it => it != null)).deepEqual([`TestAppSetup-1.0.0${archSuffix}.exe`]) + expectedArtifactNames[1] = `TestAppSetup-1.1.0${archSuffix}.exe` + assertThat(artifacts.map(it => it.artifactName).filter(it => it != null)).deepEqual([`TestAppSetup-1.1.0${archSuffix}.exe`]) } - const packageFile = path.join(path.dirname(artifacts[0].file), `TestApp-1.0.0${archSuffix}-full.nupkg`) + const packageFile = path.join(path.dirname(artifacts[0].file), `TestApp-1.1.0${archSuffix}-full.nupkg`) const unZipper = new DecompressZip(packageFile) const fileDescriptors = await unZipper.getFiles() @@ -231,8 +231,8 @@ async function checkWindowsResult(packager: Packager, packagerOptions: PackagerO TestApp - 1.0.0 - My App + 1.1.0 + ${productName} Foo Bar Foo Bar http://foo.example.com diff --git a/test/src/helpers/runTests.ts b/test/src/helpers/runTests.ts index 942b4e03501..474d99f64c5 100755 --- a/test/src/helpers/runTests.ts +++ b/test/src/helpers/runTests.ts @@ -14,7 +14,7 @@ const rootDir = path.join(__dirname, "..", "..", "..") const testPackageDir = path.join(require("os").tmpdir(), "electron_builder_published") const testNodeModules = path.join(testPackageDir, "node_modules") -const electronVersion = "0.37.3" +const electronVersion = "0.37.5" BluebirdPromise.all([ deleteOldElectronVersion(), diff --git a/test/src/winPackagerTest.ts b/test/src/winPackagerTest.ts index 1a06f24ce12..dcb5554bd66 100755 --- a/test/src/winPackagerTest.ts +++ b/test/src/winPackagerTest.ts @@ -1,12 +1,20 @@ import test from "./helpers/avaEx" -import { assertPack, platform } from "./helpers/packTester" +import { assertPack, platform, modifyPackageJson } from "./helpers/packTester" import { move } from "fs-extra-p" import * as path from "path" //noinspection JSUnusedLocalSymbols const __awaiter = require("out/awaiter") -test.ifNotTravis("win", () => assertPack("test-app-one", platform("win32"))) +test.ifNotTravis("win", () => assertPack("test-app-one", { + platform: ["win32"], +}, { + tempDirCreated: it => modifyPackageJson(it, data => { + // data.build.win = { + // remoteReleases: "https://github.com/develar/__test-app-releases", + // } + }) +})) test.ifNotTravis("icon < 256", (t: any) => t.throws(assertPack("test-app-one", platform("win32"), { tempDirCreated: projectDir => move(path.join(projectDir, "build", "incorrect.ico"), path.join(projectDir, "build", "icon.ico"), {clobber: true}) diff --git a/test/tsconfig.json b/test/tsconfig.json index f93fa2efcdf..da214150368 100755 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -33,7 +33,6 @@ "../typings/gh-api.d.ts", "../typings/globby.d.ts", "../typings/hosted-git-info.d.ts", - "../typings/main/ambient/gm/gm.d.ts", "../typings/main/ambient/mime/mime.d.ts", "../typings/main/ambient/progress/progress.d.ts", "../typings/main/ambient/tmp/tmp.d.ts", diff --git a/tsconfig.json b/tsconfig.json index bca952e10bc..c45b09e2656 100755 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,6 +27,7 @@ "!typings/main.d.ts", "node_modules/typescript/lib/lib.es7.d.ts", "node_modules/fs-extra-p/index.d.ts", + "node_modules/7zip-bin/index.d.ts", "node_modules/fs-extra-p/bluebird.d.ts" ], "files": [ @@ -36,7 +37,6 @@ "typings/gh-api.d.ts", "typings/globby.d.ts", "typings/hosted-git-info.d.ts", - "typings/main/ambient/gm/gm.d.ts", "typings/main/ambient/mime/mime.d.ts", "typings/main/ambient/progress/progress.d.ts", "typings/main/ambient/tmp/tmp.d.ts", @@ -46,6 +46,7 @@ "typings/read-package-json.d.ts", "node_modules/typescript/lib/lib.es7.d.ts", "node_modules/fs-extra-p/index.d.ts", + "node_modules/7zip-bin/index.d.ts", "node_modules/fs-extra-p/bluebird.d.ts", "src/awaiter.ts", "src/build-cli.ts", diff --git a/typings.json b/typings.json index c56f1b2c7f1..15bc2a0c3f9 100755 --- a/typings.json +++ b/typings.json @@ -1,6 +1,5 @@ { "ambientDependencies": { - "gm": "github:DefinitelyTyped/DefinitelyTyped/gm/gm.d.ts#71545cc025fee8da192cbe6db6e6d2b24aca814f", "mime": "github:DefinitelyTyped/DefinitelyTyped/mime/mime.d.ts#cb5206a8ac1c9a3ddfd126f5ecea6729b2361452", "progress": "github:DefinitelyTyped/DefinitelyTyped/progress/progress.d.ts#d54b18e0ac3277376700b6026ef9e9e3f380df50", "tmp": "github:DefinitelyTyped/DefinitelyTyped/tmp/tmp.d.ts#48f20e97bfaf70fc1a9537b38aed98e9749be0ae" diff --git a/typings/main/ambient/gm/gm.d.ts b/typings/main/ambient/gm/gm.d.ts deleted file mode 100644 index 7001413848d..00000000000 --- a/typings/main/ambient/gm/gm.d.ts +++ /dev/null @@ -1,625 +0,0 @@ -// Compiled using typings@0.6.8 -// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/71545cc025fee8da192cbe6db6e6d2b24aca814f/gm/gm.d.ts -// Type definitions for gm 1.17.0 -// Project: https://github.com/aheckmann/gm -// Definitions by: Joel Spadin -// Definitions: https://github.com/borisyankov/DefinitelyTyped - - -declare module "gm" { - import stream = require('stream'); - - function m(image: string): m.State; - - module m { - export interface ClassOptions { - imageMagick?: boolean; - nativeAutoOrient?: boolean; - } - - export interface CompareCallback { - (err: Error, isEqual: boolean, equality: number, raw: number): any; - } - - export interface GetterCallback { - (err: Error, value: T): any; - } - - export interface WriteCallback { - (err: Error, stdout: string, stderr: string, cmd: string): any; - } - - export interface ChannelInfo { - Red: T; - Green: T; - Blue: T; - } - - export interface CompareOptions { - file?: string; - highlightColor?: string; - highlightStyle?: string; - tolerance?: number; - } - - export interface ColorStatistics { - Minimum: string; - Maximum: string; - Mean: string; - 'Standard Deviation': string; - } - - export interface Dimensions { - width: number; - height: number; - } - - export interface ImageInfo { - 'Background Color': string; - 'Border Color': string; - 'Channel Depths': ChannelInfo; - 'Channel Statistics': ChannelInfo; - Class: string; - color: number; - Compose: string; - Compression: string; - depth: number; - Depth: string; - Dispose: string; - Filesize: string; - format: string; - Format: string; - Geometry: string; - Interlace: string; - Iterations: string; - 'JPEG-Quality'?: string; - 'JPEG-Colorspace'?: string; - 'JPEG-Colorspace-Name'?: string; - 'JPEG-Sampling-factors'?: string; - 'Matte Color': string; - Orientation: string; - 'Page geometry': string; - path: string; - - 'Profile-color'?: string; - 'Profile-iptc'?: { - [key: string]: string; - }; - 'Profile-EXIF'?: { - [key: string]: string; - }; - 'Profile-XMP'?: string; - Resolution?: string; - size: Dimensions; - Signature: string; - Software: string; - Tainted: string; - Type: string; - } - - export interface State { - // Image Operations - adjoin(): State; - affine(matrix: string): State; - antialias(enable: boolean): State; - append(image: string, ltr?: boolean): State; - authenticate(password: string): State; - autoOrient(): State; - backdrop(): State; - bitdepth(bits: number): State; - blackThreshold(intensity: number): State; - blackThreshold(red: number, green: number, blue: number, opacity?: number): State; - bluePrimary(x: number, y: number): State; - blur(radius: number, sigma?: number): State; - border(width: number, height: number): State; - borderColor(color: string): State; - box(color: string): State; - channel(type: 'Red'): State; - channel(type: 'Green'): State; - channel(type: 'Blue'): State; - channel(type: 'Opacity'): State; - channel(type: 'Matte'): State; - channel(type: 'Cyan'): State; - channel(type: 'Magenta'): State; - channel(type: 'Yellow'): State; - channel(type: 'Black'): State; - channel(type: 'Gray'): State; - channel(type: string): State; - charcoal(factor: number): State; - chop(width: number, height: number, x?: number, y?: number): State; - clip(): State; - coalesce(): State; - colorize(red: number, green: number, blue: number): State; - colorMap(type: 'shared'): State; - colorMap(type: 'private'): State; - colorMap(type: string): State; - colors(colors: number): State; - colorspace(space: 'CineonLog'): State; - colorspace(space: 'CMYK'): State; - colorspace(space: 'GRAY'): State; - colorspace(space: 'HSL'): State; - colorspace(space: 'HSB'): State; - colorspace(space: 'OHTA'): State; - colorspace(space: 'RGB'): State; - colorspace(space: 'Rec601Luma'): State; - colorspace(space: 'Rec709Luma'): State; - colorspace(space: 'Rec601YCbCr'): State; - colorspace(space: 'Rec709YCbCr'): State; - colorspace(space: 'Transparent'): State; - colorspace(space: 'XYZ'): State; - colorspace(space: 'YCbCr'): State; - colorspace(space: 'YIQ'): State; - colorspace(space: 'YPbPr'): State; - colorspace(space: 'YUV'): State; - colorspace(space: string): State; - compose(operator: 'Over'): State; - compose(operator: 'In'): State; - compose(operator: 'Out'): State; - compose(operator: 'Atop'): State; - compose(operator: 'Xor'): State; - compose(operator: 'Plus'): State; - compose(operator: 'Minus'): State; - compose(operator: 'Add'): State; - compose(operator: 'Subtract'): State; - compose(operator: 'Difference'): State; - compose(operator: 'Divide'): State; - compose(operator: 'Multiply'): State; - compose(operator: 'Bumpmap'): State; - compose(operator: 'Copy'): State; - compose(operator: 'CopyRed'): State; - compose(operator: 'CopyGreen'): State; - compose(operator: 'CopyBlue'): State; - compose(operator: 'CopyOpacity'): State; - compose(operator: 'CopyCyan'): State; - compose(operator: 'CopyMagenta'): State; - compose(operator: 'CopyYellow'): State; - compose(operator: 'CopyBlack'): State; - compose(operator: string): State; - compress(type: 'None'): State; - compress(type: 'BZip'): State; - compress(type: 'Fax'): State; - compress(type: 'Group4'): State; - compress(type: 'JPEG'): State; - compress(type: 'Lossless'): State; - compress(type: 'LZW'): State; - compress(type: 'RLE'): State; - compress(type: 'Zip'): State; - compress(type: 'LZMA'): State; - compress(type: string): State; - contrast(multiplier: number): State; - convolve(kernel: string): State; - createDirectories(): State; - crop(width: number, height: number, x?: number, y?: number, percent?: boolean): State; - cycle(amount: number): State; - deconstruct(): State; - define(): State; - delay(milliseconds: number): State; - density(width: number, height: number): State; - despeckle(): State; - displace(horizontal: number, vertical: number): State; - display(xServer: string): State; - dispose(method: 'Undefined'): State; - dispose(method: 'None'): State; - dispose(method: 'Background'): State; - dispose(method: 'Previous'): State; - dispose(method: string): State; - dissolve(percent: number): State; - dither(enable?: boolean): State; - edge(radius?: number): State; - emboss(radius?: number): State; - encoding(encoding: 'AdobeCustom'): State; - encoding(encoding: 'AdobeExpert'): State; - encoding(encoding: 'AdobeStandard'): State; - encoding(encoding: 'AppleRoman'): State; - encoding(encoding: 'BIG5'): State; - encoding(encoding: 'GB2312'): State; - encoding(encoding: 'Latin 2'): State; - encoding(encoding: 'None'): State; - encoding(encoding: 'SJIScode'): State; - encoding(encoding: 'Symbol'): State; - encoding(encoding: 'Unicode'): State; - encoding(encoding: 'Wansung'): State; - encoding(encoding: string): State; - endian(type: 'MSB'): State; - endian(type: 'LSB'): State; - endian(type: 'Native'): State; - endian(type: string): State; - enhance(): State; - equalize(): State; - extent(width: number, height: number, options?: string): State; - file(filename: string): State; - filter(type: 'Point'): State; - filter(type: 'Box'): State; - filter(type: 'Triangle'): State; - filter(type: 'Hermite'): State; - filter(type: 'Hanning'): State; - filter(type: 'Hamming'): State; - filter(type: 'Blackman'): State; - filter(type: 'Gaussian'): State; - filter(type: 'Quadratic'): State; - filter(type: 'Cubic'): State; - filter(type: 'Catrom'): State; - filter(type: 'Mitchell'): State; - filter(type: 'Lanczos'): State; - filter(type: 'Bessel'): State; - filter(type: 'Sinc'): State; - filter(type: string): State; - flatten(): State; - flip(): State; - flop(): State; - foreground(color: string): State; - frame(width: number, height: number, outerBevelWidth: number, outBevelHeight: number): State; - fuzz(distance: number, percent?: boolean): State; - gamma(r: number, g: number, b: number): State; - gaussian(radius: number, sigma?: number): State; - /** Width and height are specified in percents */ - geometry(width: number, height: number, option: '%'): State; - /** Specify maximum area in pixels */ - geometry(width: number, height: number, option: '@'): State; - /** Ignore aspect ratio */ - geometry(width: number, height: number, option: '!'): State; - /** Width and height are minimum values */ - geometry(width: number, height: number, option: '^'): State; - /** Change dimensions only if image is smaller than width or height */ - geometry(width: number, height: number, option: '<'): State; - /** Change dimensions only if image is larger than width or height */ - geometry(width: number, height: number, option: '>'): State; - geometry(width: number, height?: number, option?: string): State; - geometry(geometry: string): State; - greenPrimary(x: number, y: number): State; - gravity(direction: 'NorthWest'): State; - gravity(direction: 'North'): State; - gravity(direction: 'NorthEast'): State; - gravity(direction: 'West'): State; - gravity(direction: 'Center'): State; - gravity(direction: 'East'): State; - gravity(direction: 'SouthWest'): State; - gravity(direction: 'South'): State; - gravity(direction: 'SouthEast'): State; - gravity(direction: string): State; - highlightColor(color: string): State; - highlightStyle(style: 'Assign'): State; - highlightStyle(style: 'Threshold'): State; - highlightStyle(style: 'Tint'): State; - highlightStyle(style: 'XOR'): State; - highlightStyle(style: string): State; - iconGeometry(geometry: string): State; - implode(factor?: number): State; - intent(type: 'Absolute'): State; - intent(type: 'Perceptual'): State; - intent(type: 'Relative'): State; - intent(type: 'Saturation'): State; - intent(type: string): State; - interlace(type: 'None'): State; - interlace(type: 'Line'): State; - interlace(type: 'Plane'): State; - interlace(type: 'Partition'): State; - interlace(type: string): State; - label(name: string): State; - lat(width: number, height: number, offset: number, percent?: boolean): State; - level(blackPoint: number, gamma: number, whitePoint: number, percent?: boolean): State; - limit(type: 'disk', val: string): State; - limit(type: 'file', val: string): State; - limit(type: 'map', val: string): State; - limit(type: 'memory', val: string): State; - limit(type: 'pixels', val: string): State; - limit(type: 'threads', val: string): State; - limit(type: string, val: string): State; - list(type: string): State; - list(type: 'Color'): State; - list(type: 'Delegate'): State; - list(type: 'Format'): State; - list(type: 'Magic'): State; - list(type: 'Module'): State; - list(type: 'Resource'): State; - list(type: 'Type'): State; - log(format: string): State; - loop(iterations: number): State; - lower(width: number, height: number): State; - magnify(factor: number): State; - map(filename: string): State; - mask(filename: string): State; - matte(): State; - matteColor(color: string): State; - maximumError(limit: number): State; - median(radius?: number): State; - minify(factor: number): State; - mode(mode: 'frame'): State; - mode(mode: 'unframe'): State; - mode(mode: 'concatenate'): State; - mode(mode: string): State; - modulate(b: number, s: number, h: number): State; - monitor(): State; - monochrome(): State; - morph(otherImg: string, outName: string, callback?: WriteCallback): State; - morph(otherImg: string[], outName: string, callback?: WriteCallback): State; - mosaic(): State; - motionBlur(radius: number, sigma?: number, angle?: number): State; - name(): State; - negative(): State; - noise(type: 'uniform'): State; - noise(type: 'gaussian'): State; - noise(type: 'multiplicative'): State; - noise(type: 'impulse'): State; - noise(type: 'laplacian'): State; - noise(type: 'poisson'): State; - noise(type: string): State; - noise(radius: number): State; - noop(): State; - normalize(): State; - opaque(color: string): State; - operator(channel: string, operator: 'Add', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'And', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Assign', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Depth', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Divide', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Gamma', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Negate', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'LShift', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Log', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Max', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Min', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Multiply', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Or', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Pow', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'RShift', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Subtract', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Threshold', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Threshold-White', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Threshold-White-Negate', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Threshold-Black', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Threshold-Black-Negate', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Xor', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Gaussian', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Impulse', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Laplacian', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Multiplicative', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Poisson', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Random', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: 'Noise-Uniform', rvalue: number, percent?: boolean): State; - operator(channel: string, operator: string, rvalue: number, percent?: boolean): State; - orderedDither(channelType: 'All', NxN: string): State; - orderedDither(channelType: 'Intensity', NxN: string): State; - orderedDither(channelType: 'Red', NxN: string): State; - orderedDither(channelType: 'Green', NxN: string): State; - orderedDither(channelType: 'Blue', NxN: string): State; - orderedDither(channelType: 'Cyan', NxN: string): State; - orderedDither(channelType: 'Magenta', NxN: string): State; - orderedDither(channelType: 'Yellow', NxN: string): State; - orderedDither(channelType: 'Black', NxN: string): State; - orderedDither(channelType: 'Opacity', NxN: string): State; - orderedDither(channelType: string, NxN: string): State; - outputDirectory(directory: string): State; - page(width: number, height: number, arg?: '%'): State; - page(width: number, height: number, arg?: '!'): State; - page(width: number, height: number, arg?: '<'): State; - page(width: number, height: number, arg?: '>'): State; - page(width: number, height: number, arg?: string): State; - pause(seconds: number): State; - pen(color: string): State; - ping(): State; - pointSize(size: number): State; - noProfile(): State; - preview(type: 'Rotate'): State; - preview(type: 'Shear'): State; - preview(type: 'Roll'): State; - preview(type: 'Hue'): State; - preview(type: 'Saturation'): State; - preview(type: 'Brightness'): State; - preview(type: 'Gamma'): State; - preview(type: 'Spiff'): State; - preview(type: 'Dull'): State; - preview(type: 'Grayscale'): State; - preview(type: 'Quantize'): State; - preview(type: 'Despeckle'): State; - preview(type: 'ReduceNoise'): State; - preview(type: 'AddNoise'): State; - preview(type: 'Sharpen'): State; - preview(type: 'Blur'): State; - preview(type: 'Threshold'): State; - preview(type: 'EdgeDetect'): State; - preview(type: 'Spread'): State; - preview(type: 'Shade'): State; - preview(type: 'Raise'): State; - preview(type: 'Segment'): State; - preview(type: 'Solarize'): State; - preview(type: 'Swirl'): State; - preview(type: 'Implode'): State; - preview(type: 'Wave'): State; - preview(type: 'OilPaint'): State; - preview(type: 'CharcoalDrawing'): State; - preview(type: 'JPEG'): State; - preview(type: string): State; - paint(radius: number): State; - process(command: string): State; - profile(filename: string): State; - progress(): State; - randomThreshold(channelType: 'All', LOWxHIGH: string): State; - randomThreshold(channelType: 'Intensity', LOWxHIGH: string): State; - randomThreshold(channelType: 'Red', LOWxHIGH: string): State; - randomThreshold(channelType: 'Green', LOWxHIGH: string): State; - randomThreshold(channelType: 'Blue', LOWxHIGH: string): State; - randomThreshold(channelType: 'Cyan', LOWxHIGH: string): State; - randomThreshold(channelType: 'Magenta', LOWxHIGH: string): State; - randomThreshold(channelType: 'Yellow', LOWxHIGH: string): State; - randomThreshold(channelType: 'Black', LOWxHIGH: string): State; - randomThreshold(channelType: 'Opacity', LOWxHIGH: string): State; - randomThreshold(channelType: string, LOWxHIGH: string): State; - quality(level: number): State; - raise(width: number, height: number): State; - recolor(matrix: string): State; - redPrimary(x: number, y: number): State; - region(width: number, height: number, x?: number, y?: number): State; - remote(): State; - render(): State; - repage(reset: '+'): State; - repage(reset: string): State; - repage(width: number, height: number, xoff: number, yoff: number, arg?: string): State; - sample(geometry: string): State; - samplingFactor(horizontalFactor: number, verticalFactor: number): State; - rawSize(width: number, height: number, offset?: number): State; - resample(horizontal: number, vertical: number): State; - /** Width and height are specified in percents */ - resize(width: number, height: number, option: '%'): State; - /** Specify maximum area in pixels */ - resize(width: number, height: number, option: '@'): State; - /** Ignore aspect ratio */ - resize(width: number, height: number, option: '!'): State; - /** Width and height are minimum values */ - resize(width: number, height: number, option: '^'): State; - /** Change dimensions only if image is smaller than width or height */ - resize(width: number, height: number, option: '<'): State; - /** Change dimensions only if image is larger than width or height */ - resize(width: number, height: number, option: '>'): State; - resize(width: number, height?: number, option?: string): State; - roll(horizontal: number, vertical: number): State; - rotate(backgroundColor: string, degrees: number): State; - scene(index: number): State; - scenes(start: number, end: number): State; - scale(width: number, height: number): State; - screen(): State; - segment(clustherThreshold: number, smoothingThreshold: number): State; - sepia(): State; - set(attribute: string, value: string): State; - setFormat(format: string): State; - shade(azimuth: number, elevation: number): State; - shadow(radius: number, sigma?: number): State; - sharedMemory(): State; - shave(width: number, height: number, percent?: boolean): State; - sharpen(radius: number, sigma?: number): State; - shear(xDegrees: number, yDegress: number): State; - silent(): State; - snaps(count: number): State; - solarize(threshold: number): State; - spread(amount: number): State; - stegano(offset: number): State; - stereo(): State; - strip(): State; - swirl(degrees: number): State; - textFont(font: string): State; - threshold(value: number, percent?: boolean): State; - thumb(width: number, height: number, outName: string, callback: WriteCallback): State; - thumb(width: number, height: number, outName: string, quality: number, callback: WriteCallback): State; - thumb(width: number, height: number, outName: string, quality: number, align: 'topleft', callback: WriteCallback): State; - thumb(width: number, height: number, outName: string, quality: number, align: 'center', callback: WriteCallback): State; - thumb(width: number, height: number, outName: string, quality: number, align: string, callback: WriteCallback): State; - tile(filename: string): State; - title(title: string): State; - transform(color: string): State; - transparent(color: string): State; - treeDepth(depth: number): State; - trim(): State; - type(type: 'Bilevel'): State; - type(type: 'Grayscale'): State; - type(type: 'Palette'): State; - type(type: 'PaletteMatte'): State; - type(type: 'TrueColor'): State; - type(type: 'TrueColorMatte'): State; - type(type: 'ColorSeparation'): State; - type(type: 'ColorSeparationMatte'): State; - type(type: 'Optimize'): State; - type(type: string): State; - update(seconds: number): State; - units(type: 'Undefined'): State; - units(type: 'PixelsPerInch'): State; - units(type: 'PixelsPerCentimeter'): State; - units(type: string): State; - unsharp(radius: number, sigma?: number, amount?: number, threshold?: number): State; - usePixmap(): State; - view(): State; - virtualPixel(method: 'Constant'): State; - virtualPixel(method: 'Edge'): State; - virtualPixel(method: 'Mirror'): State; - virtualPixel(method: 'Tile'): State; - virtualPixel(method: string): State; - visual(type: 'StaticGray'): State; - visual(type: 'GrayScale'): State; - visual(type: 'StaticColor'): State; - visual(type: 'PseudoColor'): State; - visual(type: 'TrueColor'): State; - visual(type: 'DirectColor'): State; - visual(type: 'default'): State; - visual(type: string): State; - watermark(brightness: number, saturation: number): State; - wave(amplitude: number, wavelength: number): State; - whitePoint(x: number, y: number): State; - whiteThreshold(intensity: number): State; - whiteThreshold(red: number, green: number, blue: number, opacity?: number): State; - window(id: string): State; - windowGroup(): State; - - // Getters - color(callback: GetterCallback): State; - depth(callback: GetterCallback): State; - filesize(callback: GetterCallback): State; - format(callback: GetterCallback): State; - identify(callback: GetterCallback): State; - res(callback: GetterCallback): State; - size(callback: GetterCallback): State; - orientation(callback: GetterCallback): State; - - // Drawing Operations - draw(args: string): State; - drawArc(x0: number, y0: number, x1: number, y1: number, r0: number, r1: number): State; - drawBezier(x0: number, y0: number, x1: number, y1: number): State; - drawBezier(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): State; - drawBezier(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, ...coords: number[]): State; - drawCircle(x0: number, y0: number, x1: number, y1: number): State; - drawEllipse(x0: number, y0: number, rx: number, ry: number, a0: number, a1: number): State; - drawLine(x0: number, y0: number, x1: number, y1: number): State; - drawPoint(x: number, y: number): State; - drawPolygon(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): State; - drawPolygon(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, ...coords: number[]): State; - drawPolyline(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): State; - drawPolyline(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, ...coords: number[]): State; - drawRectangle(x0: number, y0: number, x1: number, y1: number): State; - drawRectangle(x0: number, y0: number, x1: number, y1: number, rc: number): State; - drawRectangle(x0: number, y0: number, x1: number, y1: number, wc: number, hc: number): State; - drawText(x: number, y: number, text: string, gravity: 'NorthWest'): State; - drawText(x: number, y: number, text: string, gravity: 'North'): State; - drawText(x: number, y: number, text: string, gravity: 'NorthEast'): State; - drawText(x: number, y: number, text: string, gravity: 'West'): State; - drawText(x: number, y: number, text: string, gravity: 'Center'): State; - drawText(x: number, y: number, text: string, gravity: 'East'): State; - drawText(x: number, y: number, text: string, gravity: 'SouthWest'): State; - drawText(x: number, y: number, text: string, gravity: 'South'): State; - drawText(x: number, y: number, text: string, gravity: 'SouthEast'): State; - drawText(x: number, y: number, text: string, gravity?: string): State; - fill(color: string): State; - font(name: string, size?: number): State; - fontSize(size: number): State; - stroke(color: string, width?: number): State; - strokeWidth(width: number): State; - setDraw(property: 'color', x: number, y: number, method: 'point'): State; - setDraw(property: 'color', x: number, y: number, method: 'replace'): State; - setDraw(property: 'color', x: number, y: number, method: 'floodfill'): State; - setDraw(property: 'color', x: number, y: number, method: 'filltoborder'): State; - setDraw(property: 'color', x: number, y: number, method: 'reset'): State; - setDraw(property: 'matte', x: number, y: number, method: 'point'): State; - setDraw(property: 'matte', x: number, y: number, method: 'replace'): State; - setDraw(property: 'matte', x: number, y: number, method: 'floodfill'): State; - setDraw(property: 'matte', x: number, y: number, method: 'filltoborder'): State; - setDraw(property: 'matte', x: number, y: number, method: 'reset'): State; - setDraw(property: string, x: number, y: number, method: string): State; - - // Commands - stream(callback?: WriteCallback): stream.PassThrough; - stream(format: string, callback?: WriteCallback): stream.PassThrough; - toBuffer(callback: (err: Error, buffer: Buffer) => any): stream.PassThrough; - toBuffer(format: string, callback: (err: Error, buffer: Buffer) => any): stream.PassThrough; - write(filename: string, callback: WriteCallback): void; - } - - export interface SubClass { - (image: string): State; - } - - export function compare(filename1: string, filename2: string, callback: CompareCallback): void; - export function compare(filename1: string, filename2: string, tolerance: number, callback: CompareCallback): void; - export function compare(filename1: string, filename2: string, options: CompareOptions, callback: CompareCallback): void; - - export function subClass(options: ClassOptions): SubClass; - } - - export = m; -} \ No newline at end of file diff --git a/vendor/osx/7za b/vendor/osx/7za deleted file mode 100755 index fd31c11fca3..00000000000 --- a/vendor/osx/7za +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ee47fe33aece30af6baf9826eebcdea60ceecaa9559ee5bd305c62bea279a74 -size 1667792