Skip to content

Commit a3923b3

Browse files
authoredOct 22, 2023
Merge pull request Meteor-Community-Packages#13 from Meteor-Community-Packages/fix/bug-12
Fix bugs in 3.1
2 parents f6f824a + be792ba commit a3923b3

28 files changed

+3445
-3025
lines changed
 

‎.babelrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"presets": [
33
["@babel/env", {
44
"targets": {
5-
"node": "12"
5+
"node": "14"
66
}
77
}]
88
],

‎.eslintrc

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"electron-debug",
2727
"rimraf",
2828
"process",
29-
"devtron",
3029
"ava",
3130
"send",
3231
"meteor-desktop-test-suite"

‎.github/workflows/test.yml

+48-37
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,80 @@
1-
21
on:
3-
push:
4-
branches:
5-
- master
62
pull_request:
3+
push:
74
branches:
85
- master
96

7+
env:
8+
METEOR_VERSION: 2.6.1
9+
1010
jobs:
1111
build:
1212
name: Build and Install
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v3
16-
- name: Cache dependencies
15+
- uses: actions/checkout@v4
16+
- name: Get Cache dependencies
1717
uses: actions/cache@v3
1818
id: files-cache
1919
with:
20-
path: |
21-
node_modules
22-
dist/
23-
~/.meteor
24-
/tmp/tests/.__tmp_int
25-
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
20+
path: |
21+
dist
22+
node_modules
23+
/tmp/.__tmp_int
24+
~/.meteor
25+
~/.npm
26+
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
2627
- name: Install/Retrieve Meteor
2728
if: steps.files-cache.outputs.cache-hit != 'true'
28-
run: curl https://install.meteor.com/?release=2.6 | /bin/sh
29+
run: curl https://install.meteor.com/?release=${{ env.METEOR_VERSION }} | /bin/sh
2930
- name: Install NPM Dependencies
31+
# Creates dist/ through postinstall->build script
3032
if: steps.files-cache.outputs.cache-hit != 'true'
31-
run: meteor npm ci
33+
run: ~/.meteor/meteor npm ci
34+
- name: Run build script
35+
# Make sure dist/ is up-to-date when package-lock.json hasn't changed
36+
if: steps.files-cache.outputs.cache-hit == 'true'
37+
run: ~/.meteor/meteor npm run build
3238

33-
test:
39+
unit-tests:
3440
needs: build
3541
name: Unit Tests
3642
runs-on: ubuntu-latest
3743
steps:
38-
- uses: actions/checkout@v3
39-
- name: Get Cache dependencies
40-
uses: actions/cache@v3
41-
id: files-cache
42-
with:
43-
path: |
44-
node_modules
45-
dist/
46-
~/.meteor
47-
/tmp/tests/.__tmp_int
48-
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
49-
- name: Unit Tests
50-
run: ~/.meteor/meteor npm run test
44+
- uses: actions/checkout@v4
45+
- name: Get Cache dependencies
46+
uses: actions/cache@v3
47+
id: files-cache
48+
with:
49+
path: |
50+
dist
51+
node_modules
52+
/tmp/.__tmp_int
53+
~/.meteor
54+
~/.npm
55+
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
56+
- name: Run test script
57+
run: ~/.meteor/meteor npm run test
5158

52-
test-integration:
59+
integration-tests:
5360
needs: build
5461
name: Integration Tests
5562
runs-on: ubuntu-latest
5663
steps:
57-
- uses: actions/checkout@v3
64+
- uses: actions/checkout@v4
5865
- name: Get Cache dependencies
5966
uses: actions/cache@v3
6067
id: files-cache
6168
with:
62-
path: |
63-
node_modules
64-
dist/
65-
~/.meteor
66-
/tmp/tests/.__tmp_int
67-
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
69+
path: |
70+
dist
71+
node_modules
72+
/tmp/.__tmp_int
73+
~/.meteor
74+
~/.npm
75+
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
6876
- run: ~/.meteor/meteor npm run prepare-integration-tests
69-
- run: ~/.meteor/meteor npm run test-integration
77+
- name: Run test-integration script (using Xvfb)
78+
uses: coactions/setup-xvfb@v1
79+
with: # needs full path to meteor
80+
run: /home/runner/.meteor/meteor npm run test-integration

‎.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ node_modules
33
dist
44
tests/_tmp_
55
tests/.__tmp_int
6+
tests/integration/chrome.log
67
.npm
78
.versions
89
npm-debug*

‎CHANGELOG.md

+22-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
1-
## v3.1.0 <sup>xx.xx.2022</sup>
1+
## v3.1.2 <sup>XX.XX.2023</sup>
2+
3+
## v3.1.1 <sup>XX.10.2023</sup>
4+
* Fix issue with single instance, which causes error with opening already opened app on windows
5+
* Fixes for devEnvSetup.js
6+
* Fix: do not download new version when desktopHCP is set to false
7+
* Dynamically get preset-env version
8+
* Fix addition of desktop script
9+
* Don't SIGKILL Meteor when a desktop build terminates normally
10+
* Fix integration tests
11+
12+
## v3.1.0 <sup>09.03.2022</sup>
213
* Updated Electron to v11
314

415
## v3.0.1 <sup>12.04.2022</sup>
@@ -47,15 +58,15 @@ Now you are free to use any version with your meteor project. Just add them to y
4758
If you will not, `meteor-desktop` adds the recommended versions automatically when needed.
4859

4960
From now every `meteor-desktop` release will provide a recommended versions numbers of these dependencies.
50-
By default I will try to make `meteor-desktop` compatible within the compatibility version of the recommended version i.e. if the recommended electron version is `2.0.10` you should still be able to use any `2.x.x` version without problems.
61+
By default, I will try to make `meteor-desktop` compatible within the compatibility version of the recommended version i.e. if the recommended electron version is `2.0.10` you should still be able to use any `2.x.x` version without problems.
5162

5263
**Recommended versions:**
5364
* [`electron`](https://github.com/electron/electron) -> `2.0.10`
5465
* [`electron-builder`](https://github.com/electron-userland/electron-builder) -> `20.28.4`
5566

5667

5768
**BREAKING:**
58-
* support for Squirrel autoupdate mechanism ended, if you wish to continue with it, add the `electron-builder-squirrel-windows` dependency to your `devDependencies` and move it's settings to `squirrel` section in settings i.e.:
69+
* support for Squirrel autoupdate mechanism ended, if you wish to continue with it, add the `electron-builder-squirrel-windows` dependency to your `devDependencies` and move its settings to `squirrel` section in settings i.e.:
5970
```
6071
"squirrel": {
6172
"autoUpdateFeedUrl": "http://127.0.0.1/update/:platform/:version",
@@ -109,7 +120,7 @@ You do not have to put the whole line, just any part of it that should only be f
109120
110121
**FIXES**
111122
* fix [#165](https://github.com/wojtkowiak/meteor-desktop/issues/174) `meteor://` protocol is now registered as secure origin
112-
* `bundler` caching was disabled for production builds as you might have accidentally get a development `desktop.asar` build into your production build
123+
* `bundler` caching was disabled for production builds as you might have accidentally got a development `desktop.asar` build into your production build
113124
114125
## v1.0.0 <sup>21.05.2018</sup>
115126
Meteor App serving mechanism was changed to utilise `registerStreamProtocol` and serve
@@ -121,7 +132,7 @@ Please verify thoroughly if your app is working fine after this change and repor
121132
122133
The localstorage contents will be migrated if you are updating your app from pre `1.0.0`.
123134
124-
However if you are using the `meteor-desktop-localstorage` plugin you have to make a migration yourself. The easiest way is to copy the plugin desktop code as your module in `.desktop` and on your app start get the contents with `getAll` and save them to the browser's localstorage.
135+
However, if you are using the `meteor-desktop-localstorage` plugin you have to make a migration yourself. The easiest way is to copy the plugin desktop code as your module in `.desktop` and on your app start get the contents with `getAll` and save them to the browser's localstorage.
125136
126137
* [`electron`](https://github.com/electron/electron) was updated to `2.0.1`
127138
* `MD_LOG_LEVEL` is now respected
@@ -223,7 +234,7 @@ However if you are using the `meteor-desktop-localstorage` plugin you have to ma
223234
* **DEPRECATIONS**:
224235
- building for `squirrel.windows` is not encouraged and from `1.0.0` the default Windows target will be `nsis`
225236
226-
it's more than sure that you will have to update your [`electron-builder`](https://github.com/electron-userland/electron-builder)/[`electron-packager`](https://github.com/electron-userland/electron-packager) configuration since it's a big shift from the old versions, create a new meteor project with blank scaffold (`npm run desktop -- init`) and take a look a the new `settings.json` as that might give you some hints
237+
it's more than sure that you will have to update your [`electron-builder`](https://github.com/electron-userland/electron-builder)/[`electron-packager`](https://github.com/electron-userland/electron-packager) configuration since it's a big shift from the old versions, create a new meteor project with blank scaffold (`npm run desktop -- init`) and take a look at the new `settings.json` as that might give you some hints
227238
228239
#### v0.11.3 <sup>17.01.2018</sup>
229240
- added `desktopHCPCompatibilityVersion` setting to restore ability to override desktopHCP compatibility version
@@ -251,7 +262,7 @@ it's more than sure that you will have to update your [`electron-builder`](https
251262
252263
## v0.8.0 <sup>05.07.2017</sup>
253264
254-
- added `builderCliOptions` that allow you to specify additional electron-builder CLI options e.g
265+
- added `builderCliOptions` that allow you to specify additional electron-builder CLI options e.g.
255266
for publishing artifacts (thanks to [ramijarrar](https://github.com/ramijarrar), related
256267
[PR](https://github.com/wojtkowiak/meteor-desktop/pull/112))
257268
@@ -317,7 +328,7 @@ will be published in form of epics
317328
* `localServer` was rewritten to use `send` instead of `serve-static`
318329
[[5f084e6](https://github.com/wojtkowiak/meteor-desktop/commit/5f084e64fa11e4894e4c7c8d541b0b02a8676111)]
319330
* url aliases for local filesystem and `.desktop/assets` added
320-
([more](#accessing-local-filesystem-in-meteor))
331+
([more](README.md#accessing-local-filesystem-in-meteor))
321332
* building for Windows Store is now possible (thanks to hard work of
322333
[@develar](https://github.com/develar))
323334
* default dependencies for `Skeleton App` were updated
@@ -343,7 +354,7 @@ updates)
343354
- fixed [#33](https://github.com/wojtkowiak/meteor-desktop/issues/33)
344355
345356
#### v0.2.2 <sup>29.11.2016</sup>
346-
- republished `0.2.1` because of published plugins being in a unknown, erroneous
357+
- republished `0.2.1` because of published plugins being in an unknown, erroneous
347358
state [meteor#8113](https://github.com/meteor/meteor/issues/8113)
348359
349360
#### v0.2.1 <sup>23.11.2016</sup>
@@ -352,10 +363,10 @@ state [meteor#8113](https://github.com/meteor/meteor/issues/8113)
352363
353364
## v0.2.0 <sup>17.10.2016</sup>
354365
* several types of npm dependencies versions declarations are now supported i.e.: local paths,
355-
file protocol, github links and http(s) links -> [npm documentation](https://docs.npmjs.com/files/package.json#dependencies)
366+
file protocol, GitHub links and http(s) links -> [npm documentation](https://docs.npmjs.com/files/package.json#dependencies)
356367
* development environment setup script was added
357368
* specifying target platforms for `build-installer` is now not restricted -
358-
check [Building installer](#building-installer), fixes [#14](https://github.com/wojtkowiak/meteor-desktop/issues/14)
369+
check [Building installer](README.md#building-installer), fixes [#14](https://github.com/wojtkowiak/meteor-desktop/issues/14)
359370
* [`electron`](https://github.com/electron/electron) was updated to `1.4.6`
360371
* [`electron-builder`](https://github.com/electron-userland/electron-builder) was updated to `8.6.0`
361372

‎README.md

+38-41
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,27 @@ To migrate from the original `meteor-desktop`:
2727

2828
## Prerequisites
2929

30-
- Meteor >= `1.4`
30+
- Meteor >= `1.12.1`
3131
- at least basic [Electron](http://electron.atom.io/) framework knowledge
3232
- mobile platform added to project<sup>__*1__</sup>
3333

3434
<sup>__*1__ you can always build with `--server-only` if you do not want to have mobile clients, you do not actually have to have android sdk or xcode to go on with your project</sup>
3535

36-
### Quick start
36+
## Quick start
3737
```bash
38-
cd /your/meteor/app
39-
meteor npm install --save-dev @meteor-community/meteor-desktop
40-
# you need to have any mobile platform added (ios/android)
41-
meteor --mobile-server=127.0.0.1:3000
42-
43-
# open new terminal
38+
cd /your/meteor/app
39+
meteor npm install --save-dev @meteor-community/meteor-desktop
40+
meteor add-platform ios # or android
41+
npm run desktop -- init
4442

45-
npm run desktop -- init
46-
npm run desktop
43+
meteor --mobile-server=127.0.0.1:3000
4744

48-
# or in one command `npm run desktop -- --scaffold`
45+
# open new terminal
46+
npm run desktop
4947
```
5048

49+
The first time, you can also combine `npm run desktop -- init` and `npm run desktop` into `npm run desktop -- --scaffold` once meteor is running.
50+
5151
## Usage `--help`
5252

5353
```
@@ -130,7 +130,6 @@ Documentation
130130
* [List of known plugins:](#list-of-known-plugins)
131131
* [Squirrel autoupdate support](#squirrel-autoupdate-support)
132132
* [Native modules support](#native-modules-support)
133-
* [Devtron](#devtron)
134133
* [Testing desktop app and modules](#testing-desktop-app-and-modules)
135134
* [MD_LOG_LEVEL](#md_log_level)
136135
* [Packaging](#packaging)
@@ -238,7 +237,6 @@ field|description
238237
`version`|version of the desktop app
239238
`projectName`|this will be used as a `name` in the generated app's package.json
240239
`devTools`|whether to install and open `devTools`, set automatically to false when building with `--production`
241-
`devtron`|check whether to install [`devtron`](http://electron.atom.io/devtron/), set automatically to false when building with `--production`, [more](#devtron)
242240
`singleInstance`|sets the single instance mode - [more](https://github.com/electron/electron/blob/master/docs/api/app.md#appmakesingleinstancecallback)
243241
`desktopHCP`|whether to use `.desktop` hot code push module - [more](#desktophcp---desktop-hot-code-push)
244242
<sup>`desktopHCPIgnoreCompatibilityVersion`</sup>|ignore the `.desktop` compatibility version and install new versions even if they can be incompatible
@@ -489,9 +487,6 @@ not updated, nor checked for changes!
489487
in `.desktop` will not trigger rebuilds, in that case you need to make any
490488
change in `version` field in the `desktop.version` to trigger rebuild (this file is in the root of
491489
your project) - this can be any change like just adding random char to the hash
492-
- if your run a production build of your desktop app it will not receive updates from project run
493-
from `meteor` command unless you run it with `--production` - that is because development build
494-
has `devtron` added and therefore the `compatibilityVersion` is different
495490
- after reload logs will no longer be shown in the console
496491

497492
## How to write plugins
@@ -537,14 +532,6 @@ https://github.com/ArekSredzki/electron-release-server
537532
This integration fully supports rebuilding native modules (npm packages with native node modules)
538533
against `Electron's` `node` version. The mechanism is enabled by default.
539534

540-
## Devtron
541-
542-
[`Devtron`](http://electron.atom.io/devtron/) is installed and activated by default. It is
543-
automatically removed when building with `--production`. As the communication between your Meteor
544-
app and the desktop side goes through IPC, this tool can be very handy because it can sniff on
545-
IPC messages.
546-
<kbd>![devtron IPC sniff](docs/devtron_ipc.gif)</kbd>
547-
548535
## Testing desktop app and modules
549536

550537
For unit tests you should not have problems with using [electron-mocha](https://github.com/jprichardson/electron-mocha).
@@ -601,25 +588,35 @@ Currently there are some defaults provided only for `Windows` and `Mac`. If you
601588
Change `target: ["appx"]` in `win` section of `builderOptions`. In case of problems please refer to
602589
[electron-builder](https://github.com/electron-userland/electron-builder) documentation.
603590

604-
##### ! devEnvSetup.js !
605-
To help you contribute, there is a development environment setup script. If you have this repo
606-
cloned and already did a `npm install`, you can just run it with `node devEnvSetup.js`.
607-
However if you did not yet clone this repo just do:
608-
```
609-
mkdir tmp
610-
cd tmp
611-
wget https://raw.githubusercontent.com/wojtkowiak/meteor-desktop/master/devEnvSetup.js
612-
npm install cross-spawn shelljs npm
591+
## Developing meteor-desktop
592+
593+
No matter which method below you choose, run `npm run build-watch` in your local meteor-desktop folder before making changes to the code, if you want them reflected in Meteor apps that depend on the package.
594+
595+
### Using devEnvSetup.js
596+
To help you contribute, there is a development environment setup script. It also runs default tests.
597+
598+
This script assumes you have `npm`, `git` and `meteor` available from the command line. Note that by default, the script will install packages in the *parent* directory of where it is, so it is recommended to clone meteor-desktop inside an empty dir.
599+
600+
```bash
601+
mkdir meteor-desktop-dev && cd meteor-desktop-dev
602+
git clone https://github.com/Meteor-Community-Packages/meteor-desktop.git
603+
cd meteor-desktop
604+
npm install
613605
node devEnvSetup.js
614606
```
615-
This script assumes you have `npm`, `git` and `meteor` available from the command line.
616-
617-
Currently this package does not work when linked with `npm link`. To set up your dev environment
618-
it is best to create a clean `Meteor` project, add `@meteor-community/meteor-desktop` to dependencies with a relative
619-
path to the place where you have cloned this repo and in scripts add `desktop` with `node
620-
./path/to/meteor-desktop/dist/bin/cli.js`.
621-
Also to make changes in the desktop HCP plugins run `Meteor` project with `METEOR_PACKAGE_DIRS`
622-
set to `/absolute/path/to/meteor-desktop/plugins` so that they will be taken from the cloned repo.
607+
608+
### Without using devEnvSetup.js
609+
610+
1. Clone and install meteor-desktop as above
611+
2. From a clean Meteor project, install meteor-desktop from its local folder: `meteor npm i --save-dev /path/to/meteor-desktop` (doesn't work with npm link, tbc)
612+
3. In your Meteor app's `package.json`:
613+
1. Add a script `desktop` with `METEOR_PACKAGE_DIRS=/path/to/meteor-desktop/plugins node /path/to/meteor-desktop/dist/bin/cli.js`
614+
2. Add `METEOR_PACKAGE_DIRS=/path/to/meteor-desktop/plugins` to the `start` script as well.
615+
616+
The last step is so that the desktop HCP Meteor packages are also taken from your local meteor-desktop repo.
617+
Make sure to run Meteor with `meteor npm start` rather than just `meteor`.
618+
619+
Finally, follow the above "Quick start" steps (except the npm install) from your Meteor app.
623620

624621
## Built with `meteor-desktop`
625622

‎appveyor.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ skip_tags: true
66

77
environment:
88
matrix:
9-
- nodejs_version: "12"
9+
- nodejs_version: "14"
1010
test: "normal"
1111
platform: x64
12-
- nodejs_version: "12"
12+
- nodejs_version: "14"
1313
test: "integration"
1414
platform: x64
1515

@@ -30,7 +30,7 @@ install:
3030
- ps: >-
3131
if ($env:test -eq "integration") {
3232
if ((Get-Command "meteor" -ErrorAction SilentlyContinue) -eq $null) {
33-
choco install meteor --params "'/RELEASE:2.6'"
33+
choco install meteor --params "'/RELEASE:2.6.1'"
3434
}
3535
}
3636
- ps: refreshenv

‎devEnvSetup.js

+37-29
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
require('shelljs/global');
2-
var path = require('path');
3-
var readline = require('readline');
4-
var fs = require('fs');
5-
var crossSpawn = require('cross-spawn');
2+
const path = require('path');
3+
const readline = require('readline');
4+
const fs = require('fs');
5+
const crossSpawn = require('cross-spawn');
66

7-
var rl;
7+
let rl;
88

99
console.log('\n');
1010
console.log('┌┬┐┌─┐┌┬┐┌─┐┌─┐┬─┐ ┌┬┐┌─┐┌─┐┬┌─┌┬┐┌─┐┌─┐');
@@ -16,9 +16,10 @@ console.log('\n');
1616
console.log('This script will git clone other meteor-desktop related repos and create a test' +
1717
' application.\n\n');
1818

19-
var projectsDir = path.resolve('./..');
20-
var resolvedPath;
21-
var npm = path.resolve('./node_modules/.bin/npm');
19+
const projectsDir = path.resolve('./..');
20+
const npm = 'npm'; // Or use a custom explicit path, just as path.resolve('./node_modules/.bin/npm')
21+
let resolvedPath;
22+
let runTests = false;
2223

2324
console.log('Assuming your projects directory is: ' + projectsDir + '\n\n');
2425

@@ -59,12 +60,12 @@ function finish() {
5960
' options set in `settings.json` so it will also use linked plugins.');
6061
}
6162

62-
var cloneMeteorDesktop = false;
63-
var forks = false;
64-
var username = '';
65-
var projects = [ 'meteor-desktop-test-suite', 'meteor-desktop-splash-screen' ];
63+
let cloneMeteorDesktop = false;
64+
let forks = false;
65+
let username = '';
66+
const projects = [ 'meteor-desktop-test-suite', 'meteor-desktop-splash-screen' ];
6667

67-
question('Do you want to use another path (yes/no)? ')
68+
question('Do you want to use another path (yes/no [no])? ')
6869
.then(function(answer) {
6970
answer = answer.toLowerCase();
7071
if (answer === 'y' || answer === 'yes') {
@@ -112,7 +113,7 @@ question('Do you want to use another path (yes/no)? ')
112113
exec('git clone ' + projectRepo);
113114
});
114115
} else {
115-
var code;
116+
let code;
116117
projects.forEach(function (project) {
117118
code = exec('git clone https://github.com/' + username + '/' + project).code;
118119
if (code !== 0) {
@@ -140,7 +141,7 @@ question('Do you want to use another path (yes/no)? ')
140141
});
141142
}
142143
console.log('\nCreating meteor-desktop-test-app');
143-
exec('meteor create meteor-desktop-test-app --release=METEOR@2.6');
144+
exec('meteor create meteor-desktop-test-app --release=2.6.1');
144145

145146
console.log('Installing deps in meteor-desktop...\n');
146147
return spawn(npm, ['install'], path.join(resolvedPath, 'meteor-desktop'));
@@ -174,46 +175,53 @@ question('Do you want to use another path (yes/no)? ')
174175
exec(npm + ' install --save-dev cross-env');
175176
exec(npm + ' install --save @babel/runtime');
176177
cd(resolvedPath);
177-
var packageJsonPath = path.join(resolvedPath, 'meteor-desktop-test-app', 'package.json');
178-
var packageJson = JSON.parse(fs.readFileSync(packageJsonPath), 'utf8');
178+
const packageJsonPath = path.join(resolvedPath, 'meteor-desktop-test-app', 'package.json');
179+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath), 'utf8');
179180
packageJson.scripts.desktop = 'cross-env METEOR_PACKAGE_DIRS=' + path.join(resolvedPath, 'meteor-desktop', 'plugins') + ' node ../meteor-desktop/dist/bin/cli.js';
180-
packageJson.scripts.start = 'cross-env METEOR_PACKAGE_DIRS=' + path.join(resolvedPath, 'meteor-desktop', 'plugins') + ' meteor run' ;
181+
packageJson.scripts.start = 'cross-env METEOR_PACKAGE_DIRS=' + path.join(resolvedPath, 'meteor-desktop', 'plugins') + ' meteor run';
181182
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
182183

183184
console.log('Running npm run desktop -- init');
184185
exec(npm + ' run desktop -- init', { cwd: path.join(resolvedPath, 'meteor-desktop-test-app') });
185186

186-
var settingsJsonPath = path.join(resolvedPath, 'meteor-desktop-test-app', '.desktop', 'settings.json');
187-
var settingsJson = JSON.parse(fs.readFileSync(settingsJsonPath), 'utf8');
187+
const settingsJsonPath = path.join(resolvedPath, 'meteor-desktop-test-app', '.desktop', 'settings.json');
188+
const settingsJson = JSON.parse(fs.readFileSync(settingsJsonPath), 'utf8');
188189
settingsJson.linkPackages = ['meteor-desktop-splash-screen'];
189190
fs.writeFileSync(settingsJsonPath, JSON.stringify(settingsJson, null, 2));
190-
191-
return spawn(npm, ['run', 'desktop', '--', 'init-tests-support'], path.join(resolvedPath, 'meteor-desktop-test-app'));
192191
})
193192
.then(function() {
194193
console.log('\n\n\n');
195-
return question('Do you want to run tests (yes/no)? ');
194+
return question('Do you want to run tests (yes/no [yes])? ');
196195
})
197196
.then(function(answer) {
198197
answer = answer.toLowerCase();
199-
if (answer === 'n' || answer === 'no') {
200-
finish();
201-
}
198+
runTests = (answer !== 'n' && answer !== 'no');
199+
})
200+
.then(function() {
201+
if (!runTests) return;
202202
return spawn(npm, ['run', 'test'], path.join(resolvedPath, 'meteor-desktop'));
203203
})
204204
.then(function() {
205+
if (!runTests) return;
205206
return spawn(npm, ['run', 'test'], path.join(resolvedPath, 'meteor-desktop-splash-screen'));
206207
})
207208
.then(function() {
208-
return spawn(npm, ['run', 'test'], path.join(resolvedPath, 'meteor-desktop-localstorage'));
209+
if (!runTests) return;
210+
// Consider manually running `npm run test-integration` in meteor-desktop/, which also runs
211+
// `desktop -- build -b` but tests its output and runs more tests. Not done automatically
212+
// here because test-integration creates its own temp meteor project (a different approach
213+
// to this script, which uses meteor-desktop-test-app) and overlaps this test here.
214+
return spawn(npm, ['run', 'desktop', '--', 'build', '-b'], path.join(resolvedPath, 'meteor-desktop-test-app'));
209215
})
210216
.then(function() {
211-
return spawn(npm, ['run', 'desktop', '--', 'build', '-b'], path.join(resolvedPath, 'meteor-desktop-test-app'));
217+
if (!runTests) return;
218+
return spawn(npm, ['run', 'desktop', '--', 'init-tests-support'], path.join(resolvedPath, 'meteor-desktop-test-app'));
212219
})
213220
.then(function() {
221+
if (!runTests) return;
214222
return spawn(npm, ['run', 'test-desktop'], path.join(resolvedPath, 'meteor-desktop-test-app'));
215223
})
216224
.then(function() {
217-
finish();
225+
finish();
218226
})
219227
.catch(function(e) { console.log(e); });

‎lib/desktop.js

-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,6 @@ export default class Desktop {
225225
* @property {string} name
226226
* @property {string} projectName
227227
* @property {boolean} devTools
228-
* @property {boolean} devtron
229228
* @property {boolean} desktopHCP
230229
* @property {Object} squirrel
231230
* @property {string} squirrel.autoUpdateFeedUrl

‎lib/electronApp.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,6 @@ export default class ElectronApp {
840840
], { force: true });
841841
}
842842

843-
844843
/**
845844
* Runs babel and uglify over .desktop if requested.
846845
*/
@@ -852,7 +851,10 @@ export default class ElectronApp {
852851

853852
const uglifyingEnabled = 'uglify' in settings && !!settings.uglify;
854853

855-
const preset = presetEnv({ assertVersion: () => { } }, { targets: { node: '12' } });
854+
const preset = presetEnv({
855+
version: require('../package.json').dependencies['@babel/preset-env'],
856+
assertVersion: () => { }
857+
}, { targets: { node: '14' } });
856858

857859
const { data: files } = await this.$.utils.readDir(this.$.env.paths.desktopTmp.root);
858860

‎lib/electronAppScaffold.js

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ export default class ElectronAppScaffold {
3131
};
3232

3333
if (!this.$.env.isProductionBuild() || this.$.env.options.prodDebug) {
34-
this.packageJson.dependencies.devtron = '1.4.0';
3534
this.packageJson.dependencies['electron-debug'] = '1.5.0';
3635
}
3736
}

‎lib/index.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,7 @@ class MeteorDesktop {
6868
this.log.error(`error while trying to read ${path.join(__dirname, 'package.json')}`, e);
6969
process.exit(1);
7070
}
71-
if (process.env.PLUGIN_VERSION &&
72-
(version.includes('rc') || version.includes('beta') || version.includes('alpha'))
73-
) {
74-
version = process.env.PLUGIN_VERSION;
75-
}
71+
7672
return version;
7773
}
7874

‎lib/meteorApp.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -423,9 +423,9 @@ export default class MeteorApp {
423423
);
424424

425425
// Kills the currently running meteor command.
426-
function kill() {
426+
function kill(signal = 'SIGKILL') {
427427
sll('');
428-
child.kill('SIGKILL');
428+
child.kill(signal);
429429
if (self.$.env.os.isWindows) {
430430
windowsKill(child.pid);
431431
}
@@ -435,7 +435,7 @@ export default class MeteorApp {
435435
killTimeout = setTimeout(() => {
436436
clearTimeoutsAndIntervals();
437437
desiredExit = true;
438-
kill();
438+
kill('SIGTERM');
439439
resolve();
440440
}, 500);
441441
}

‎lib/scripts/addToScripts.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
/* eslint-disable no-console */
2-
import path from 'path';
3-
42
import addScript from './utils/addScript';
3+
4+
const path = require('path');
5+
56
/**
67
* This script adds a 'desktop' entry to 'scripts' in package.json. If the entry already exists
78
* it leaves it untouched.
89
*/
10+
911
function fail() {
1012
console.error('[meteor-desktop] failed to add meteor-desktop to your package.json scripts, ' +
1113
'please add it manually as \'desktop\': \'meteor-desktop\'');
1214
process.exit(0);
1315
}
1416

1517
const packageJsonPath = path.resolve(
16-
path.join(__dirname, '..', '..', '..', '..', 'package.json')
18+
// For registry installs, __dirname = node_modules/@meteor-community/meteor-desktop/dist/scripts
19+
path.join(__dirname, '..', '..', '..', '..', '..', 'package.json')
1720
);
1821

1922
addScript('desktop', 'meteor-desktop', packageJsonPath, fail);

‎lib/skeletonDependencies.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
export default {
2-
connect: '3.6.6',
2+
'@meteorjs/reify': '0.25.0',
3+
connect: '3.7.0',
34
'server-destroy': '1.0.1',
4-
winston: '2.3.0',
5+
winston: '2.4.7',
56
'find-port': '2.0.1',
6-
rimraf: '2.6.2',
7-
shelljs: '0.7.5',
8-
lodash: '4.17.15',
9-
request: '2.88.0',
7+
rimraf: '2.7.1',
8+
shelljs: '0.7.8',
9+
lodash: '4.17.21',
10+
request: '2.88.2',
1011
queue: '4.0.1',
11-
reify: '0.17.3',
1212
send: '0.16.2',
13-
mime: '2.0.3',
13+
mime: '2.0.5',
1414
'fs-extra': '3.0.1',
1515
'fs-plus': '2.9.3'
1616
};

‎package-lock.json

+3,199-2,819
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+29-26
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
22
"name": "@meteor-community/meteor-desktop",
3-
"version": "3.1.0",
3+
"version": "3.1.1-rc.2",
44
"bin": {
55
"meteor-desktop": "dist/bin/cli.js"
66
},
77
"engines": {
8-
"node": ">=4.0.0 <=14"
8+
"node": ">=12 <=18"
99
},
1010
"description": "Build a Meteor's desktop client with hot code push.",
1111
"main": "dist/index.js",
1212
"scripts": {
1313
"test": "cross-env NODE_ENV=test nyc mocha -t 10000 -r ./tests/helpers/clear.js \"tests/+(unit|functional)/**/*.test.js\"",
14-
"test-integration": "mocha -t 10000 -r reify \"tests/+(integration)/**/*.test.js\"",
14+
"test-integration": "mocha -t 10000 -r @meteorjs/reify \"tests/+(integration)/**/*.test.js\"",
1515
"test-watch": "mocha -r ./tests/helpers/clear.js --compilers js:@babel/register \"tests/+(unit|functional)/**/*.test.js\" --watch",
1616
"lint": "eslint lib plugins scaffold skeleton tests",
1717
"prepare-integration-tests": "node tests/integration/prepare.js",
@@ -20,10 +20,11 @@
2020
"report-coverage": "nyc report --reporter=lcov > coverage.lcov && codecov",
2121
"version": "node dist/scripts/propagateVersion.js && git add plugins",
2222
"postversion": "npm run publish-all",
23-
"postinstall": "npm run build && node dist/scripts/addToScripts || echo",
24-
"publish-plugins": "(cls || reset) && cd plugins/bundler && (meteor publish --release=METEOR@2.6) && cd ../watcher && (meteor publish --release=METEOR@2.6)",
23+
"postinstall": "path-exists dist/scripts/addToScripts.js && node dist/scripts/addToScripts || echo",
24+
"publish-plugins": "(cls || reset) && cd plugins/bundler && (meteor publish --release=METEOR@2.6.1) && cd ../watcher && (meteor publish --release=METEOR@2.6.1)",
2525
"prepublish": "npm run build || echo",
26-
"publish-all": "npm run publish-plugins && npm publish",
26+
"publish-all": "npm run publish-plugins && npm prune --production && npm publish && meteor npm i",
27+
"publish-all-preview": "npm run publish-plugins && npm prune --production && npm publish --tag preview && meteor npm i",
2728
"build": "babel lib --out-dir dist --source-maps inline --copy-files",
2829
"build-watch": "babel lib --watch --out-dir dist --source-maps inline --copy-files",
2930
"develop": "npm-run-all --parallel build-watch test-watch",
@@ -33,20 +34,21 @@
3334
"author": "Bartosz Wojtkowiak <bartosz@wojtkowiak.it>",
3435
"license": "MIT",
3536
"devDependencies": {
36-
"@babel/cli": "7.21.0",
37-
"@babel/register": "7.21.0",
38-
"babel-plugin-istanbul": "^5.2.0",
37+
"@babel/cli": "7.22.15",
38+
"@babel/register": "7.22.15",
39+
"@meteorjs/reify": "0.25.0",
40+
"babel-plugin-istanbul": "5.2.0",
3941
"chai": "3.5.0",
4042
"chai-as-promised": "6.0.0",
41-
"codecov": "1.0.1",
43+
"codecov": "3.8.3",
4244
"connect": "3.7.0",
43-
"connect-modrewrite": "^0.10.2",
45+
"connect-modrewrite": "0.10.2",
4446
"coveralls": "3.1.1",
4547
"cross-env": "3.2.4",
4648
"dirty-chai": "1.2.2",
47-
"eslint": "4.19.1",
48-
"eslint-config-airbnb-base": "12.1.0",
49-
"eslint-plugin-import": "2.27.5",
49+
"eslint": "8.48.0",
50+
"eslint-config-airbnb-base": "15.0.0",
51+
"eslint-plugin-import": "2.28.1",
5052
"find-port": "2.0.1",
5153
"fs-extra": "4.0.3",
5254
"fs-plus": "2.10.1",
@@ -59,11 +61,10 @@
5961
"nyc": "14.1.1",
6062
"proxyquire": "1.8.0",
6163
"queue": "4.5.1",
62-
"reify": "0.20.12",
6364
"request": "2.88.2",
6465
"rewire": "3.0.2",
6566
"run-sequence": "1.2.2",
66-
"semistandard": "^16.0.1",
67+
"semistandard": "16.0.1",
6768
"send": "0.18.0",
6869
"serve-static": "1.15.0",
6970
"server-destroy": "1.0.1",
@@ -75,22 +76,24 @@
7576
"watch": "1.0.2"
7677
},
7778
"dependencies": {
78-
"@babel/core": "7.18.13",
79-
"@babel/preset-env": "7.18.10",
80-
"@babel/runtime": "7.18.9",
81-
"@electron/asar": "3.2.3",
82-
"cacache": "17.0.5",
79+
"@babel/core": "7.22.20",
80+
"@babel/preset-env": "7.22.20",
81+
"@babel/runtime": "7.22.15",
82+
"@electron/asar": "3.2.7",
83+
"acorn": "8.10.0",
84+
"cacache": "17.1.4",
8385
"commander": "2.20.3",
84-
"cross-spawn": "5.0.1",
86+
"cross-spawn": "5.1.0",
8587
"del": "2.2.2",
8688
"install-local": "0.6.2",
8789
"isbinaryfile": "3.0.3",
8890
"lodash": "4.17.21",
8991
"md5": "2.3.0",
90-
"node-fetch": "2.6.9",
91-
"regenerator-runtime": "0.12.1",
92-
"rimraf": "2.6.3",
93-
"semver": "5.5.1",
92+
"node-fetch": "2.7.0",
93+
"path-exists-cli": "^2.0.0",
94+
"regenerator-runtime": "0.14.0",
95+
"rimraf": "3.0.2",
96+
"semver": "5.7.2",
9497
"shelljs": "0.8.5",
9598
"single-line-log": "1.1.2",
9699
"terser": "4.8.1"

‎plugins/bundler/bundler.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,6 @@ class MeteorDesktopBundler {
713713
terser,
714714
md5
715715
} = deps);
716-
console.log(deps);
717716
} catch (e) {
718717
// Look at the declaration of StringPrototypeToOriginal for explanation.
719718
String.prototype.to = StringPrototypeToOriginal; // eslint-disable-line
@@ -813,7 +812,10 @@ class MeteorDesktopBundler {
813812
if (babelPresetEnv.default) {
814813
babelPresetEnv = babelPresetEnv.default;
815814
}
816-
const preset = babelPresetEnv({ assertVersion: () => { } }, { targets: { node: '12' } });
815+
const preset = babelPresetEnv({
816+
version: this.getPackageJsonField('dependencies')['@babel/preset-env'],
817+
assertVersion: () => { }
818+
}, { targets: { node: '14' } });
817819

818820
this.stampPerformance('babel/uglify');
819821
const promises = [];

‎plugins/bundler/package.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable prefer-arrow-callback */
22
Package.describe({
33
name: 'communitypackages:meteor-desktop-bundler',
4-
version: '3.1.0',
4+
version: '3.1.1-rc.2',
55
summary: 'Bundles .desktop dir into desktop.asar.',
66
git: 'https://github.com/Meteor-Community-Packages/meteor-desktop',
77
documentation: 'README.md'
@@ -15,7 +15,7 @@ Package.registerBuildPlugin({
1515
});
1616

1717
Package.onUse(function onUse(api) {
18-
api.versionsFrom('1.3.3');
18+
api.versionsFrom('1.4.4.6');
1919
api.use('isobuild:compiler-plugin@1.0.0');
2020
api.addFiles([
2121
'version._desktop_.js'

‎plugins/watcher/package.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable prefer-arrow-callback */
22
Package.describe({
33
name: 'communitypackages:meteor-desktop-watcher',
4-
version: '3.1.0',
4+
version: '3.1.1-rc.2',
55
summary: 'Watches .desktop dir and triggers rebuilds on file change.',
66
git: 'https://github.com/Meteor-Community-Packages/meteor-desktop',
77
documentation: 'README.md',
@@ -13,10 +13,10 @@ Npm.depends({
1313
});
1414

1515
Package.onUse(function onUse(api) {
16-
api.versionsFrom('METEOR@1.3.3');
16+
api.versionsFrom('METEOR@1.4.4.6');
1717
api.use('ecmascript');
1818
api.use([
19-
'communitypackages:meteor-desktop-bundler@3.1.0',
19+
'communitypackages:meteor-desktop-bundler@3.1.1-rc.0',
2020
], ['server'], {
2121
weak: true
2222
});

‎scaffold/settings.json

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"version": "0.0.1",
44
"projectName": "MyMeteorApp",
55
"devTools": true,
6-
"devtron": true,
76
"desktopHCP": true,
87
"desktopHCPIgnoreCompatibilityVersion": false,
98
"squirrel": {

‎skeleton/app.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@ export default class App {
584584

585585
windowSettings.webPreferences.nodeIntegration = false; // node integration must to be off
586586
windowSettings.webPreferences.preload = join(__dirname, 'preload.js');
587+
windowSettings.webPreferences.enableRemoteModule = true; // needed since Electron 10
587588

588589
this.currentPort = port;
589590

@@ -594,7 +595,7 @@ export default class App {
594595

595596
this.webContents = this.window.webContents;
596597

597-
if (this.settings.devtron && !this.isProduction()) {
598+
if (!this.isProduction()) {
598599
this.webContents.on('did-finish-load', () => {
599600
// Print some fancy status to the console if in development.
600601
this.webContents.executeJavaScript(`
@@ -684,9 +685,6 @@ export default class App {
684685
this.emit('beforeLoadFinish');
685686
this.window.show();
686687
this.window.focus();
687-
if (this.settings.devtron && !this.isProduction()) {
688-
this.webContents.executeJavaScript('Desktop.devtron.install()');
689-
}
690688
}
691689
} else {
692690
this.l.debug('window already loaded');

‎skeleton/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// Init reify.
2-
require('reify');
2+
require('@meteorjs/reify');
33
// Load the app.
44
require('./app.js');

‎skeleton/preload.js

-9
Original file line numberDiff line numberDiff line change
@@ -294,20 +294,11 @@ const Desktop = new (class {
294294

295295

296296
process.once('loaded', () => {
297-
let devtron = null;
298-
299-
try {
300-
devtron = require('devtron'); // eslint-disable-line global-require
301-
global.__devtron = { require, process }; // eslint-disable-line no-underscore-dangle
302-
} catch (e) {
303-
// If that fails, then this is a production build and devtron is not available.
304-
}
305297
if (process.env.NODE_ENV === 'test') {
306298
global.electronRequire = require;
307299
global.process = process;
308300
}
309301

310-
Desktop.devtron = devtron;
311302
Desktop.electron = [];
312303

313304
exposedModules.forEach((module) => {

‎tests/fixtures/.desktop/settings.json

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"version": "0.0.1",
44
"projectName": "MyMeteorApp",
55
"devTools": true,
6-
"devtron": true,
76
"desktopHCP": true,
87
"desktopHCPIgnoreCompatibilityVersion": false,
98
"autoUpdateFeedUrl": "http://127.0.0.1/update/:platform/:version",

‎tests/functional/desktop.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('desktop', () => {
6363
const logStub = new StubLog(MeteorDesktop.desktop, ['info']);
6464
MeteorDesktop.env.paths.desktop.root = paths.fixtures.desktop;
6565
const version = await MeteorDesktop.desktop.getHashVersion();
66-
expect(version).to.be.equal('c18b45f899ee04cea7f5704e98d88d9ecf0239b9');
66+
expect(version).to.be.equal('ab8e701a7b8951681479a95a9c1b47e2d3e784bb');
6767
logStub.restore();
6868
});
6969
});

‎tests/integration/integration.test.js

+30-8
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ function waitFor(functionReturningPromise, ms = 10000) {
4141
const invokeFunction = () =>
4242
functionReturningPromise()
4343
.then((result) => {
44-
console.log(result);
4544
if (result) {
4645
clearTimeout(invokerTimeout);
4746
clearTimeout(timeout);
@@ -80,7 +79,27 @@ async function waitForApp(app) {
8079
return { app, window };
8180
}
8281

83-
process.env.PLUGIN_VERSION = '1.7.0';
82+
/**
83+
* Because the test app's meteor-desktop node module is installed locally, electronBuilder will look
84+
* for relative paths in the meteor-desktop project directory instead of in the test app. This leads
85+
* to "InvalidConfigurationError: cannot find specified resource" errors.
86+
* @param {string} settingJsonPath - path to test app's .desktop/settings.json
87+
*/
88+
function makeMandatoryPathsInBuilderSettingsAbsolute(settingJsonPath) {
89+
const settingJson = JSON.parse(fs.readFileSync(settingJsonPath));
90+
91+
const dmgOptions = settingJson && settingJson.builderOptions && settingJson.builderOptions.dmg;
92+
if (!dmgOptions) return;
93+
94+
if (dmgOptions.icon && !path.isAbsolute(dmgOptions.icon)) {
95+
dmgOptions.icon = path.join(appDir, dmgOptions.icon);
96+
}
97+
if (dmgOptions.background && !path.isAbsolute(dmgOptions.background)) {
98+
dmgOptions.background = path.join(appDir, dmgOptions.background);
99+
}
100+
101+
fs.writeFileSync(settingJsonPath, JSON.stringify(settingJson, null, 2));
102+
}
84103

85104
describe('desktop', () => {
86105
let MeteorDesktop;
@@ -151,8 +170,9 @@ describe('desktop', () => {
151170
await waitForApp(app);
152171
const title = await app.client.getTitle();
153172
expect(title).to.equal('test-desktop');
154-
const text = await app.client.getText('h1');
155-
expect(text).to.equal('Welcome to Meteor!');
173+
const h1Element = await app.client.$('h1');
174+
const h1Text = await h1Element.getText();
175+
expect(h1Text).to.equal('Welcome to Meteor!');
156176
} catch (e) {
157177
console.log(e);
158178
console.log(e.trace);
@@ -182,8 +202,8 @@ describe('desktop', () => {
182202
it('expose electron modules', async () => {
183203
const platformsPath = path.join(appDir, '.meteor', 'platforms');
184204
let platforms = fs.readFileSync(platformsPath);
185-
if (!platforms.includes('android')) {
186-
platforms += '\nandroid\n';
205+
if (!platforms.includes('android') && !platforms.includes('ios')) {
206+
platforms += process.platform === 'darwin' ? '\nios\n' : '\nandroid\n';
187207
fs.writeFileSync(platformsPath, platforms);
188208
}
189209

@@ -218,10 +238,10 @@ describe('desktop', () => {
218238
await runIt();
219239

220240
// Test the exposedModules functionality.
221-
const result = await app.client.execute(
241+
const currentFrameZoomFactor = await app.client.execute(
222242
() => Desktop.electron.webFrame.getZoomFactor()
223243
);
224-
expect(result.value).to.equal(1);
244+
expect(currentFrameZoomFactor).to.equal(1);
225245
}).timeout(10 * 60000);
226246

227247
it('should build installer', async () => {
@@ -243,6 +263,8 @@ describe('desktop', () => {
243263
shell.rm('-rf', MeteorDesktop.env.paths.installerDir);
244264
}
245265

266+
makeMandatoryPathsInBuilderSettingsAbsolute(MeteorDesktop.env.paths.desktop.settings);
267+
246268
// Build the installer.
247269
try {
248270
await MeteorDesktop.buildInstaller(true);

‎tests/integration/prepare.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable no-console */
2-
require('reify');
2+
require('@meteorjs/reify');
33
// CI cache version: 1
44

55
const tempDir = require('temp-dir');
@@ -9,7 +9,7 @@ const fs = require('fs');
99

1010
const testsTmpPath = path.resolve(path.join(tempDir, '.__tmp_int'));
1111

12-
const meteorVersion = '2.6';
12+
const meteorVersion = '2.6.1';
1313

1414
shell.config.fatal = true;
1515
const appDir = path.join(testsTmpPath, 'test-desktop');

0 commit comments

Comments
 (0)
Please sign in to comment.