nw-builder 3.5.7 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{CHANGELOG.md → .github/CHANGELOG.md} +18 -2
- package/.github/ISSUE_REQUEST_TEMPLATE.md +16 -0
- package/{LICENSE → .github/LICENSE} +0 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +5 -0
- package/.github/workflows/cd.yml +24 -0
- package/.github/workflows/ci.yml +27 -0
- package/README.md +94 -96
- package/bin/nwbuild +19 -22
- package/demo.js +22 -0
- package/example/icons/README.md +7 -0
- package/example/icons/icon.icns +0 -0
- package/example/icons/icon.ico +0 -0
- package/example/nwapp/Credits.html +9 -0
- package/example/nwapp/README.md +7 -0
- package/example/nwapp/images/README.md +7 -0
- package/example/nwapp/images/kitten.jpg +0 -0
- package/example/nwapp/index.html +22 -0
- package/example/nwapp/package.json +23 -0
- package/example/package.json +7 -0
- package/lib/index.js +16 -6
- package/package.json +65 -60
- package/test/downloader.js +87 -0
- package/test/expected/README.md +7 -0
- package/test/expected/merged +1 -0
- package/test/expected/oneOveriddenRestNot/README.md +7 -0
- package/test/expected/oneOveriddenRestNot/osx32.json +9 -0
- package/test/expected/oneOveriddenRestNot/osx64.json +9 -0
- package/test/expected/osx-plist/1.plist +47 -0
- package/test/expected/osx-plist/2.plist +40 -0
- package/test/expected/osx-plist/README.md +7 -0
- package/test/expected/platformOverrides/README.md +7 -0
- package/test/expected/platformOverrides/linux32.json +13 -0
- package/test/expected/platformOverrides/linux64.json +9 -0
- package/test/expected/platformOverrides/osx32.json +12 -0
- package/test/expected/platformOverrides/osx64.json +12 -0
- package/test/expected/platformOverrides/win32.json +12 -0
- package/test/expected/platformOverrides/win64.json +12 -0
- package/test/fixtures/README.md +7 -0
- package/test/fixtures/invalid.json +3 -0
- package/test/fixtures/manifest/README.md +7 -0
- package/test/fixtures/manifest/versions.json +23 -0
- package/test/fixtures/nwapp/README.md +7 -0
- package/test/fixtures/nwapp/images/imagefile.img +1 -0
- package/test/fixtures/nwapp/index.html +10 -0
- package/test/fixtures/nwapp/javascript/bower_packages/simple/package.json +1 -0
- package/test/fixtures/nwapp/javascript/jsfile.js +1 -0
- package/test/fixtures/nwapp/package.json +5 -0
- package/test/fixtures/oneOveriddenRestNot/README.md +7 -0
- package/test/fixtures/oneOveriddenRestNot/package.json +16 -0
- package/test/fixtures/osx-plist/Info.plist +93 -0
- package/test/fixtures/osx-plist/README.md +7 -0
- package/test/fixtures/platformOverrides/README.md +7 -0
- package/test/fixtures/platformOverrides/package.json +52 -0
- package/test/fixtures/test-strip.zip +0 -0
- package/test/fixtures/test.tar.gz +0 -0
- package/test/fixtures/test.zip +0 -0
- package/test/fixtures/testVersions.html +17 -0
- package/test/nwBuilder.js +237 -0
- package/test/utils.js +232 -0
- package/test/versions.js +330 -0
- package/bin/README.md +0 -7
- package/lib/README.md +0 -7
package/lib/index.js
CHANGED
|
@@ -55,7 +55,7 @@ function NwBuilder(options) {
|
|
|
55
55
|
files: null,
|
|
56
56
|
appName: false,
|
|
57
57
|
appVersion: false,
|
|
58
|
-
platforms: [
|
|
58
|
+
platforms: [detectCurrentPlatform()],
|
|
59
59
|
currentPlatform: detectCurrentPlatform(),
|
|
60
60
|
version: 'latest',
|
|
61
61
|
buildDir: './build',
|
|
@@ -73,7 +73,7 @@ function NwBuilder(options) {
|
|
|
73
73
|
macPlist: false,
|
|
74
74
|
winVersionString: {},
|
|
75
75
|
winIco: null,
|
|
76
|
-
argv:
|
|
76
|
+
argv: []
|
|
77
77
|
};
|
|
78
78
|
// Intercept the platforms and check for the legacy platforms of 'osx' and 'win' and
|
|
79
79
|
// replace with 'osx32', 'osx64', and 'win32', 'win64' respectively.
|
|
@@ -147,6 +147,10 @@ NwBuilder.prototype.build = function (callback) {
|
|
|
147
147
|
};
|
|
148
148
|
|
|
149
149
|
NwBuilder.prototype.run = function (callback) {
|
|
150
|
+
// We do not want to download nwjs for other platforms if are going to run the App
|
|
151
|
+
var platforms = this.options.platforms;
|
|
152
|
+
this.options.platforms = [this.options.currentPlatform];
|
|
153
|
+
|
|
150
154
|
// Let's run this NWjs app
|
|
151
155
|
var run = this.checkFiles()
|
|
152
156
|
.then(this.resolveLatestVersion.bind(this))
|
|
@@ -157,9 +161,11 @@ NwBuilder.prototype.run = function (callback) {
|
|
|
157
161
|
|
|
158
162
|
if(typeof callback === 'function'){
|
|
159
163
|
run.then(function(result){
|
|
164
|
+
this.options.platforms = platforms
|
|
160
165
|
callback(false, result);
|
|
161
166
|
})
|
|
162
167
|
.catch(function(error){
|
|
168
|
+
this.options.platforms = platforms
|
|
163
169
|
callback(true, error);
|
|
164
170
|
});
|
|
165
171
|
return true;
|
|
@@ -439,11 +445,12 @@ NwBuilder.prototype.copyNwjs = function () {
|
|
|
439
445
|
var options = {};
|
|
440
446
|
|
|
441
447
|
if(['nw', 'nwjs.app', 'nw.exe'].indexOf(destFile) !== -1){
|
|
442
|
-
// ignore nwjs.app/Contents/Resources/*.lproj,
|
|
443
|
-
// Finder
|
|
448
|
+
// ignore nwjs.app/Contents/Resources/*.lproj/InfoPlist.strings,
|
|
449
|
+
// otherwise the app name will show as nwjs.app in Finder.
|
|
450
|
+
// *.lproj directory itself needs to be kept to support multiple locales.
|
|
444
451
|
if(destFile === 'nwjs.app'){
|
|
445
452
|
options.filter = function(filepath){
|
|
446
|
-
return !/nwjs\.app\/Contents\/Resources\/[^.]+\.lproj
|
|
453
|
+
return !/nwjs\.app\/Contents\/Resources\/[^.]+\.lproj\/InfoPlist\.strings$/.test(filepath);
|
|
447
454
|
};
|
|
448
455
|
}
|
|
449
456
|
// rename executable to app name
|
|
@@ -762,7 +769,10 @@ NwBuilder.prototype.runApp = function () {
|
|
|
762
769
|
self.emit('log', 'Launching App');
|
|
763
770
|
return new Promise(function(resolve, reject) {
|
|
764
771
|
var parentDirectory = (_.isArray(self.options.files) ? self.options.files[0] : self.options.files ).replace(/\*[\/\*]*/,"");
|
|
765
|
-
var nwProcess = self._nwProcess = spawn(executable, [
|
|
772
|
+
var nwProcess = self._nwProcess = spawn(executable, [parentDirectory].concat(self.options.argv), {
|
|
773
|
+
detached: true,
|
|
774
|
+
windowsHide: true
|
|
775
|
+
});
|
|
766
776
|
|
|
767
777
|
self.emit('appstart');
|
|
768
778
|
|
package/package.json
CHANGED
|
@@ -1,73 +1,78 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nw-builder",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.6.0",
|
|
4
|
+
"description": "Build NW.js applications for Mac, Windows and Linux.",
|
|
5
|
+
"keywords": ["NW.js", "Desktop", "Application"],
|
|
6
|
+
"author": "Steffen Müller",
|
|
7
|
+
"license": "MIT",
|
|
5
8
|
"main": "index.js",
|
|
6
|
-
"
|
|
7
|
-
"test": "tape test/*.js"
|
|
8
|
-
},
|
|
9
|
+
"homepage": "https://github.com/nwjs-community/nw-builder",
|
|
9
10
|
"repository": {
|
|
10
11
|
"type": "git",
|
|
11
|
-
"url": "
|
|
12
|
-
},
|
|
13
|
-
"bin": {
|
|
14
|
-
"nwbuild": "./bin/nwbuild"
|
|
15
|
-
},
|
|
16
|
-
"author": {
|
|
17
|
-
"name": "Steffen Müller"
|
|
18
|
-
},
|
|
19
|
-
"contributors": [
|
|
20
|
-
{
|
|
21
|
-
"name": "Adam Lynch",
|
|
22
|
-
"email": "contact@adamlynch.com"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"engines": {
|
|
26
|
-
"node": ">= 4.0.0"
|
|
12
|
+
"url": "https://github.com/nwjs-community/nw-builder.git"
|
|
27
13
|
},
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
"
|
|
14
|
+
"scripts": {
|
|
15
|
+
"format": "prettier --write ./lib",
|
|
16
|
+
"lint": "eslint --ext .js ./lib",
|
|
17
|
+
"test": "tape test/*.js",
|
|
18
|
+
"demo": "node ./demo.js"
|
|
31
19
|
},
|
|
32
|
-
"homepage": "https://github.com/mllrsohn/nw-builder",
|
|
33
|
-
"keywords": [
|
|
34
|
-
"NW.js",
|
|
35
|
-
"node-webkit",
|
|
36
|
-
"desktop",
|
|
37
|
-
"application"
|
|
38
|
-
],
|
|
39
20
|
"devDependencies": {
|
|
40
|
-
"decompress-zip": "0.3.
|
|
41
|
-
"eol": "
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
21
|
+
"decompress-zip": "0.3.3",
|
|
22
|
+
"eol": "0.9.1",
|
|
23
|
+
"eslint": "8.15.0",
|
|
24
|
+
"nock": "9.0.5",
|
|
25
|
+
"prettier": "2.6.2",
|
|
26
|
+
"redtape": "1.0.0",
|
|
27
|
+
"tap-spec": "4.1.1",
|
|
28
|
+
"tape": "4.9.0"
|
|
46
29
|
},
|
|
47
30
|
"dependencies": {
|
|
48
|
-
"archiver": "
|
|
49
|
-
"boxen": "
|
|
50
|
-
"chalk": "
|
|
51
|
-
"deprecate": "
|
|
52
|
-
"extract-zip": "
|
|
53
|
-
"graceful-fs-extra": "
|
|
54
|
-
"graceful-ncp": "
|
|
55
|
-
"inherits": "
|
|
56
|
-
"lazy-req": "
|
|
57
|
-
"lodash": "
|
|
58
|
-
"optimist": "
|
|
59
|
-
"plist": "
|
|
60
|
-
"progress": "
|
|
61
|
-
"rcedit": "
|
|
62
|
-
"recursive-readdir-sync": "
|
|
63
|
-
"request": "
|
|
64
|
-
"rimraf": "
|
|
65
|
-
"semver": "
|
|
66
|
-
"simple-glob": "
|
|
67
|
-
"tar-fs": "
|
|
31
|
+
"archiver": "2.1.1",
|
|
32
|
+
"boxen": "1.1.0",
|
|
33
|
+
"chalk": "2.3.2",
|
|
34
|
+
"deprecate": "1.1.1",
|
|
35
|
+
"extract-zip": "1.6.5",
|
|
36
|
+
"graceful-fs-extra": "2.0.0",
|
|
37
|
+
"graceful-ncp": "3.0.0",
|
|
38
|
+
"inherits": "2.0.4",
|
|
39
|
+
"lazy-req": "2.0.0",
|
|
40
|
+
"lodash": "4.17.21",
|
|
41
|
+
"optimist": "0.6.1",
|
|
42
|
+
"plist": "3.0.5",
|
|
43
|
+
"progress": "2.0.3",
|
|
44
|
+
"rcedit": "1.0.0",
|
|
45
|
+
"recursive-readdir-sync": "1.0.6",
|
|
46
|
+
"request": "2.88.2",
|
|
47
|
+
"rimraf": "2.5.2",
|
|
48
|
+
"semver": "5.5.0",
|
|
49
|
+
"simple-glob": "0.2.0",
|
|
50
|
+
"tar-fs": "1.16.2",
|
|
68
51
|
"temp": "github:adam-lynch/node-temp#remove_tmpdir_dep",
|
|
69
|
-
"thenify": "
|
|
70
|
-
"update-notifier": "
|
|
71
|
-
"winresourcer": "
|
|
52
|
+
"thenify": "3.3.1",
|
|
53
|
+
"update-notifier": "2.4.0",
|
|
54
|
+
"winresourcer": "0.9.0"
|
|
55
|
+
},
|
|
56
|
+
"bin": {
|
|
57
|
+
"nwbuild": "./bin/nwbuild"
|
|
58
|
+
},
|
|
59
|
+
"prettier": {
|
|
60
|
+
"printWidth": 80,
|
|
61
|
+
"tabWidth": 2,
|
|
62
|
+
"useTabs": false,
|
|
63
|
+
"semi": true,
|
|
64
|
+
"singleQuote": false,
|
|
65
|
+
"quoteProps": "consistent",
|
|
66
|
+
"trailingComma": "all",
|
|
67
|
+
"bracketSpacing": true,
|
|
68
|
+
"bracketSameLine": false,
|
|
69
|
+
"arrowParens": "always",
|
|
70
|
+
"proseWrap": "preserve",
|
|
71
|
+
"htmlWhitespaceSensitivity": "strict",
|
|
72
|
+
"endOfLine": "lf",
|
|
73
|
+
"singleAttributePerLine": true
|
|
74
|
+
},
|
|
75
|
+
"eslintConfig": {
|
|
76
|
+
"extends": "eslint:recommended"
|
|
72
77
|
}
|
|
73
78
|
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
var test = require('tape'),
|
|
2
|
+
nock = require('nock'),
|
|
3
|
+
temp = require('temp'),
|
|
4
|
+
path = require('path'),
|
|
5
|
+
fs = require('fs');
|
|
6
|
+
|
|
7
|
+
temp.track();
|
|
8
|
+
|
|
9
|
+
var downloader = require('./../lib/downloader');
|
|
10
|
+
var fixturesCache = './test/fixtures/cache/v0.8.3';
|
|
11
|
+
var fixturesZip = './test/fixtures/test.zip';
|
|
12
|
+
var fixturesZipStrip = './test/fixtures/test-strip.zip';
|
|
13
|
+
var fixturesTar = './test/fixtures/test.tar.gz';
|
|
14
|
+
var isWindows = process.platform === 'win32';
|
|
15
|
+
|
|
16
|
+
test('checkCache', function (t) {
|
|
17
|
+
t.plan(2);
|
|
18
|
+
t.ok(downloader.checkCache(fixturesCache + '/osx', ['node-webkit.app']));
|
|
19
|
+
t.notOk(downloader.checkCache(fixturesCache + '/linux32', ['nwsnapshot', 'nwsnapshot2']));
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('downloadAndUnpack: zip', function (t) {
|
|
23
|
+
t.plan(isWindows ? 3 : 6);
|
|
24
|
+
nock('https://amazon.s3.nw.com').get('/test.zip').replyWithFile(200, fixturesZip);
|
|
25
|
+
temp.mkdir('tmpcache', function(err, dirPath) {
|
|
26
|
+
downloader.downloadAndUnpack(dirPath, 'https://amazon.s3.nw.com/test.zip').then(function (files) {
|
|
27
|
+
files.forEach(function (file) {
|
|
28
|
+
t.ok(fs.existsSync(path.join(dirPath, file.path)), file.path + ' unpacked');
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
if(!isWindows) {
|
|
32
|
+
t.ok(fs.statSync(path.join(dirPath, 'file1')).mode.toString(8) == 100444, '444 file permission');
|
|
33
|
+
t.ok(fs.statSync(path.join(dirPath, 'file2')).mode.toString(8) == 100666, '666 file permission');
|
|
34
|
+
t.ok(fs.statSync(path.join(dirPath, 'file3')).mode.toString(8) == 100644, '644 file permission'); // DOES NOT WORK ON WINDOWS
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('downloadAndUnpack: zip+strip', function (t) {
|
|
41
|
+
t.plan(isWindows ? 3 : 6);
|
|
42
|
+
nock('https://amazon.s3.nw.com').get('/test-strip.zip').replyWithFile(200, fixturesZipStrip);
|
|
43
|
+
temp.mkdir('tmpcache', function(err, dirPath) {
|
|
44
|
+
downloader.downloadAndUnpack(dirPath, 'https://amazon.s3.nw.com/test-strip.zip').then(function (files) {
|
|
45
|
+
files.forEach(function (file) {
|
|
46
|
+
t.ok(fs.existsSync(path.join(dirPath, file.path)), file.path + ' unpacked');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
if(!isWindows) {
|
|
50
|
+
t.ok(fs.statSync(path.join(dirPath, 'file1')).mode.toString(8) == 100444, '444 file permission');
|
|
51
|
+
t.ok(fs.statSync(path.join(dirPath, 'file2')).mode.toString(8) == 100666, '666 file permission');
|
|
52
|
+
t.ok(fs.statSync(path.join(dirPath, 'file3')).mode.toString(8) == 100644, '644 file permission'); // DOES NOT WORK ON WINDOWS
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
test('downloadAndUnpack: tar', function (t) {
|
|
59
|
+
t.plan(isWindows ? 3 : 6);
|
|
60
|
+
nock('https://amazon.s3.nw.com').get('/test.tar.gz').replyWithFile(200, fixturesTar);
|
|
61
|
+
temp.mkdir('tmpcache', function(err, dirPath) {
|
|
62
|
+
downloader.downloadAndUnpack(dirPath, 'https://amazon.s3.nw.com/test.tar.gz').then(function (files) {
|
|
63
|
+
files.forEach(function (file) {
|
|
64
|
+
t.ok(fs.existsSync(path.join(dirPath, file.path)), file.path + ' unpacked');
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
if(!isWindows) {
|
|
68
|
+
t.ok(fs.statSync(path.join(dirPath, 'file1')).mode.toString(8) == 100444, '444 file permission'); // DOES NOT WORK ON WINDOWS
|
|
69
|
+
t.ok(fs.statSync(path.join(dirPath, 'file2')).mode.toString(8) == 100666, '666 file permission');
|
|
70
|
+
t.ok(fs.statSync(path.join(dirPath, 'file3')).mode.toString(8) == 100644, '644 file permission'); // DOES NOT WORK ON WINDOWS
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test('Should throw an error if you try to download a file that is not available', function (t) {
|
|
78
|
+
t.plan(2);
|
|
79
|
+
nock('https://doesnot.com').get('/exist.zip').reply(404);
|
|
80
|
+
downloader.downloadAndUnpack('/', 'https://doesnot.com/exist.zip').catch(function (err) {
|
|
81
|
+
t.equal(err.statusCode, 404, err.msg);
|
|
82
|
+
});
|
|
83
|
+
nock('https://doesnot.com').get('/exist.tar').reply(404);
|
|
84
|
+
downloader.downloadAndUnpack('/', 'https://doesnot.com/exist.tar').catch(function (err) {
|
|
85
|
+
t.equal(err.statusCode, 404, err.msg);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
imagefilejsfile
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
|
6
|
+
<string>en</string>
|
|
7
|
+
<key>CFBundleDisplayName</key>
|
|
8
|
+
<string>My cool TestApp</string>
|
|
9
|
+
<key>CFBundleDocumentTypes</key>
|
|
10
|
+
<array/>
|
|
11
|
+
<key>CFBundleExecutable</key>
|
|
12
|
+
<string>nwjs</string>
|
|
13
|
+
<key>CFBundleIconFile</key>
|
|
14
|
+
<string>nw.icns</string>
|
|
15
|
+
<key>CFBundleIdentifier</key>
|
|
16
|
+
<string>com.nw-builder.testapp</string>
|
|
17
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
|
18
|
+
<string>6.0</string>
|
|
19
|
+
<key>CFBundleName</key>
|
|
20
|
+
<string>TestApp</string>
|
|
21
|
+
<key>CFBundlePackageType</key>
|
|
22
|
+
<string>APPL</string>
|
|
23
|
+
<key>CFBundleShortVersionString</key>
|
|
24
|
+
<string>Version 1.3.3.7</string>
|
|
25
|
+
<key>CFBundleVersion</key>
|
|
26
|
+
<string>1.3.3.7</string>
|
|
27
|
+
<key>LSFileQuarantineEnabled</key>
|
|
28
|
+
<true/>
|
|
29
|
+
<key>LSMinimumSystemVersion</key>
|
|
30
|
+
<string>10.6.0</string>
|
|
31
|
+
<key>NSPrincipalClass</key>
|
|
32
|
+
<string>NSApplication</string>
|
|
33
|
+
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
|
34
|
+
<true/>
|
|
35
|
+
<key>SCMRevision</key>
|
|
36
|
+
<string>222137</string>
|
|
37
|
+
<key>UTExportedTypeDeclarations</key>
|
|
38
|
+
<array/>
|
|
39
|
+
<key>NSHumanReadableCopyright</key>
|
|
40
|
+
<string>(c) by me</string>
|
|
41
|
+
<key>LSEnvironment</key>
|
|
42
|
+
<dict>
|
|
43
|
+
<key>PATH</key>
|
|
44
|
+
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
|
|
45
|
+
</dict>
|
|
46
|
+
</dict>
|
|
47
|
+
</plist>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
|
6
|
+
<string>en</string>
|
|
7
|
+
<key>CFBundleDisplayName</key>
|
|
8
|
+
<string>TestApp</string>
|
|
9
|
+
<key>CFBundleDocumentTypes</key>
|
|
10
|
+
<array/>
|
|
11
|
+
<key>CFBundleExecutable</key>
|
|
12
|
+
<string>nwjs</string>
|
|
13
|
+
<key>CFBundleIconFile</key>
|
|
14
|
+
<string>nw.icns</string>
|
|
15
|
+
<key>CFBundleIdentifier</key>
|
|
16
|
+
<string>com.nw-builder.testapp</string>
|
|
17
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
|
18
|
+
<string>6.0</string>
|
|
19
|
+
<key>CFBundleName</key>
|
|
20
|
+
<string>TestApp</string>
|
|
21
|
+
<key>CFBundlePackageType</key>
|
|
22
|
+
<string>APPL</string>
|
|
23
|
+
<key>CFBundleShortVersionString</key>
|
|
24
|
+
<string>Version 1.3.3.7</string>
|
|
25
|
+
<key>CFBundleVersion</key>
|
|
26
|
+
<string>1.3.3.7</string>
|
|
27
|
+
<key>LSFileQuarantineEnabled</key>
|
|
28
|
+
<true/>
|
|
29
|
+
<key>LSMinimumSystemVersion</key>
|
|
30
|
+
<string>10.6.0</string>
|
|
31
|
+
<key>NSPrincipalClass</key>
|
|
32
|
+
<string>NSApplication</string>
|
|
33
|
+
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
|
34
|
+
<true/>
|
|
35
|
+
<key>SCMRevision</key>
|
|
36
|
+
<string>222137</string>
|
|
37
|
+
<key>UTExportedTypeDeclarations</key>
|
|
38
|
+
<array/>
|
|
39
|
+
</dict>
|
|
40
|
+
</plist>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
{
|
|
3
|
+
"latest": "v0.16.0-beta1",
|
|
4
|
+
"stable": "v0.15.2",
|
|
5
|
+
"lts": "v0.14.6",
|
|
6
|
+
"versions": [
|
|
7
|
+
{
|
|
8
|
+
"version": "v0.15.2",
|
|
9
|
+
"files": ["win-x64", "win-ia32", "linux-x64", "linux-ia32", "osx-x64"],
|
|
10
|
+
"flavors": ["normal", "sdk"]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"version": "v0.13.2",
|
|
14
|
+
"files": ["win-x64", "linux-ia32", "osx-x64"],
|
|
15
|
+
"flavors": ["normal", "sdk", "nacl"]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"version": "v0.12.3",
|
|
19
|
+
"files": ["win-x64", "win-ia32", "linux-x64", "linux-ia32", "osx-x64", "osx-ia32"],
|
|
20
|
+
"flavors": ["normal", "macappstore"]
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
This directory contains example app related [test fixtures](https://en.wikipedia.org/wiki/Test_fixture). Have a look over the tests to see how they're used.
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## See something which could be improved?
|
|
6
|
+
|
|
7
|
+
Great, see [CONTRIBUTING.md](../../../CONTRIBUTING.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
imagefile
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
jsfile
|