Commit Graph

345 Commits

Author SHA1 Message Date
Ronan Jouchet e4ab2dba5b Update changelog for `v46.0.4` 2022-01-06 10:50:42 -05:00
Ronan Jouchet 776f2a846d Update changelog for `v46.0.3` 2022-01-06 10:33:22 -05:00
Ronan Jouchet 863377d814 Update changelog for `v46.0.2` 2022-01-06 10:16:45 -05:00
Ronan Jouchet 0a561a62c0 Update changelog for `v46.0.1` 2022-01-06 09:58:15 -05:00
Ronan Jouchet 5276a839bb Update changelog for `v46.0.0` 2022-01-02 06:31:08 -05:00
Adam Weeden d483597320
Upgrade Electron from 13 to 16 (PR #1288)
https://www.electronjs.org/docs/latest/breaking-changes

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2022-01-02 06:17:06 -05:00
Ronan Jouchet 24e8849564 Update changelog for `v45.0.8` 2021-12-06 23:48:19 -05:00
Ronan Jouchet e9e523d957 Update changelog for `v45.0.7` 2021-12-06 16:27:13 -05:00
Ronan Jouchet ec77741494 re-relock and fix script failing to do app if cli failed 2021-12-06 16:00:17 -05:00
Adam Weeden b9c5e2b464
Fix upgrade not working (#1286)
* Attempt to get upgrade working right; in progress

* Got it fixed in Mac

* Fix some linting errors

* Finish fixing upgrade + tests

* Integration testing for global shortcuts

* Regenerate shrinkwrap

* Get rid of deprecated rmdirSync

* Remove instead of rm for 12.x support

* Make dereferencing platform dependent

* Fix folder copy funkiness

* Whoops

* Whoops 2: Extra Whoops

* Update Electron to 13.5.1; Fix auth manual tests

* Rework relock

* Add a request for help.

* Update @types/node to 14
2021-11-29 12:01:20 -05:00
Ronan Jouchet adcf7c4c0c Update changelog for `v45.0.6` 2021-11-22 16:24:24 -05:00
Ronan Jouchet e63a275ec9 Update changelog for `v45.0.5` 2021-11-01 15:59:22 -04:00
Ronan Jouchet d68078f686 Bump axios to 0.24.0
https://github.com/axios/axios/blob/master/CHANGELOG.md
2021-11-01 15:54:03 -04:00
Ronan Jouchet 7cab31f974 Bump to eslint 8
https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0
2021-11-01 15:47:46 -04:00
Ronan Jouchet fadcb73de7 Update changelog for `v45.0.4` 2021-09-24 23:03:48 -04:00
Ronan Jouchet 0570a20c99 Work around "npm shrinkwrap" failing to include some packages in lockfile 2021-09-24 23:01:15 -04:00
Ronan Jouchet 561beda96e Actually actually (TM) include lockfile in npm artifacts
Previous attempt failed by design of `npm pack` / `npm publish`,
as documented at https://docs.npmjs.com/cli/v6/configuring-npm/package-lock-json :

> One key detail about package-lock.json is that it cannot be published,
> and it will be ignored if found in any place other than the toplevel
> package. It shares a format with npm-shrinkwrap.json, which is
> essentially the same file, but allows publication.
>
> This is not recommended unless deploying a CLI tool or otherwise using
> the publication process for producing production packages.

, and we are a CLI tool. Switching to shrinkwrap.
2021-09-24 22:44:07 -04:00
Ronan Jouchet 8fdceee4dc Update changelog for `v45.0.3` 2021-09-24 22:21:33 -04:00
Ronan Jouchet 94142955f1 Update changelog for `v45.0.2` 2021-09-24 22:16:59 -04:00
Adam Weeden d759695e5a
Workaround yargs coerce issue (#1283) 2021-09-22 09:26:49 -04:00
Ronan Jouchet 0d78978d9e Update changelog for `v45.0.1` 2021-09-20 11:45:36 -04:00
Ronan Jouchet 7ab2c14f4f Deps bumps: @types/jest, eslint-plugin-prettier 2021-09-20 11:32:47 -04:00
Ronan Jouchet 0fbe7d39cb Build: re-introduce a package-lock.json file
They were used a long time ago, then I scrapped them for simplicity to
new contributors. I'm re-considering this and re-introducing one, for
two (maybe three) reasons:

1. Reading on supply chain attacks
2. Build broken because of a dep change (see previous commit broken
   because of a change in yargs @ 17.1.0)
(3.) Performance
2021-09-20 11:25:43 -04:00
Ronan Jouchet fcc3906f52 build:watch script: make it watch project folders 2021-09-20 10:32:32 -04:00
Ronan Jouchet 167f1e3be8 Update changelog for `v45.0.0` 2021-07-19 13:36:19 -04:00
Ronan Jouchet 5d9cb91739 Fix 'npm install'-time warning about outdated companion DT types
```
npm WARN deprecated @types/loglevel@1.6.3: This is a stub types definition. loglevel provides its own type definitions, so you do not need this installed.
npm WARN deprecated @types/electron-packager@15.0.1: This is a stub types definition. electron-packager provides its own type definitions, so you do not need this installed.
```

Also, add `@types/debug` necessary to fix build, as already done by
@TheCleric in https://github.com/nativefier/nativefier/pull/1230/files

Also, for all deps, bump minimum version to current version
2021-07-16 18:55:10 -04:00
Ronan Jouchet c4327e97a7 Update changelog for `v44.0.7` 2021-07-10 16:06:47 -04:00
Ronan Jouchet af80acf7e9 Update changelog for `v44.0.6` 2021-06-26 10:55:11 -04:00
Adam Weeden b74c0bf959
Make app strict TypeScript + linting (and add a shared project) (#1231)
* Convert app to strict typing + shared library

* Fix new code post-merge

* Remove extraneous lint ignores

* Apply suggestions from code review

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* Fix prettier complaint

* Dedupe eslint files

* Fix some refs after merge

* Fix clean:full command

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2021-06-26 09:59:28 -04:00
Ronan Jouchet f8f48d2f09 Update changelog for `v44.0.5` 2021-06-25 16:17:59 -04:00
Ronan Jouchet 996183b949 Update changelog for `v44.0.4` 2021-06-15 22:36:01 -04:00
Adam Weeden 7a08a2d676
Enable TypeScript strict:true, and more typescript-eslint rules (#1223)
* Catch promise errors better

* Move subFunctions to bottom of createNewWindow

* Use parents when creating child BrowserWindow instances

* Some about:blank pages have an anchor (for some reason)

* Inject browserWindowOptions better

* Interim refactor to MainWindow object

* Split up the window functions/helpers/events some

* Further separate out window functions + tests

* Add a mock for unit testing functions that access electron

* Add unit tests for onWillPreventUnload

* Improve windowEvents tests

* Add the first test for windowHelpers

* Move WebRequest event handling to node

* insertCSS completely under test

* clearAppData completely under test

* Fix contextMenu require bug

* More tests + fixes

* Fix + add to createNewTab tests

* Convert createMainWindow back to func + work out gremlins

* Move setupWindow away from main since its shared

* Make sure contextMenu is handling promises

* Fix issues with fullscreen not working + menu refactor

* Run jest against app/dist so that we can hit app unit tests as well

* Requested PR changes

* Add strict typing; tests currently failing

* Fix failing unit tests

* Add some more eslint warnings and fixes

* More eslint fixes

* Strict typing on (still issues with the lib dir)

* Fix the package.json import/require

* Fix some funky test errors

* Warn -> Error for eslint rules

* @ts-ignore -> @ts-expect-error

* Add back the ext code I removed
2021-06-15 22:20:49 -04:00
Ronan Jouchet 7807bbb327 Update changelog for `v44.0.3` 2021-06-15 09:06:44 -04:00
Ronan Jouchet ea24a0fdeb Fix gitcloud 0.2.3 import 2021-06-14 14:39:43 -04:00
Ronan Jouchet 437ae55d2e Update changelog for `v44.0.2` 2021-06-07 17:28:34 -04:00
Ronan Jouchet 460d70f915 Update changelog for `v44.0.1` 2021-06-07 09:38:53 -04:00
Adam Weeden cdc6fa79c2
Fix fullscreen not working + menu refactor (fix #1206) (#1210)
* Catch promise errors better

* Move subFunctions to bottom of createNewWindow

* Use parents when creating child BrowserWindow instances

* Some about:blank pages have an anchor (for some reason)

* Inject browserWindowOptions better

* Interim refactor to MainWindow object

* Split up the window functions/helpers/events some

* Further separate out window functions + tests

* Add a mock for unit testing functions that access electron

* Add unit tests for onWillPreventUnload

* Improve windowEvents tests

* Add the first test for windowHelpers

* Move WebRequest event handling to node

* insertCSS completely under test

* clearAppData completely under test

* Fix contextMenu require bug

* More tests + fixes

* Fix + add to createNewTab tests

* Convert createMainWindow back to func + work out gremlins

* Move setupWindow away from main since its shared

* Make sure contextMenu is handling promises

* Fix issues with fullscreen not working + menu refactor

* Run jest against app/dist so that we can hit app unit tests as well

* Requested PR changes
2021-06-07 08:55:17 -04:00
Ronan Jouchet 69bc3306f9 Update changelog for `v44.0.0` 2021-06-04 17:03:35 -04:00
Adam Weeden 72de7b3fca
Refactor app window creation/events + add some unit tests; fix #1197 (#1203)
* Catch promise errors better

* Move subFunctions to bottom of createNewWindow

* Use parents when creating child BrowserWindow instances

* Some about:blank pages have an anchor (for some reason)

* Inject browserWindowOptions better

* Interim refactor to MainWindow object

* Split up the window functions/helpers/events some

* Further separate out window functions + tests

* Add a mock for unit testing functions that access electron

* Add unit tests for onWillPreventUnload

* Improve windowEvents tests

* Add the first test for windowHelpers

* Move WebRequest event handling to node

* insertCSS completely under test

* clearAppData completely under test

* Fix contextMenu require bug

* More tests + fixes

* Fix + add to createNewTab tests

* Convert createMainWindow back to func + work out gremlins

* Move setupWindow away from main since its shared

* Make sure contextMenu is handling promises
2021-06-02 15:18:32 -04:00
Ronan Jouchet 62ee24662c More test:watch fix: bring upgrade to Jest 27 from TheCleric' closed jest-ts PR
See https://github.com/nativefier/nativefier/pull/1204
2021-06-02 00:35:19 -04:00
Ronan Jouchet 6b09d1467f More test:watch fixes & usability
See https://github.com/nativefier/nativefier/pull/1204#issuecomment-852679403
2021-06-01 23:37:04 -04:00
Ronan Jouchet 9c5dba7f07 Fix test:watch requiring two saves to actually run the code/test you just changed
Will fix https://github.com/nativefier/nativefier/pull/1204#issuecomment-852155755
See package.json in comments for description
2021-06-01 20:43:46 -04:00
Ronan Jouchet 2b780e6c67 Test watcher: warn that it's necessary to run build:watch for the test watcher to work
See https://github.com/nativefier/nativefier/pull/1204#issuecomment-850915981
2021-05-29 19:58:46 -04:00
Ronan Jouchet 4f3b449218 Deps: bump ts-loader from 8 to 9, now that we require Node 12
See https://github.com/TypeStrong/ts-loader/releases
2021-05-21 19:44:53 -04:00
Ronan Jouchet cc02b87de7
Get rid of "docs" folder (#1194)
It contains a weird mix of stuff and hides valuable files from view at the root of the repo. Better to have:
- Docs at the root
- Rest of the github/release-related hodgepodge (screenshots, scripts) in hidden folder .github
2021-05-21 18:16:59 -04:00
Adam Weeden 1a810e5ce5
Organize CLI flags into groups (for better --help usability) (#1191)
* Organize CLI options for better UX

* Fix some documentation

* Whoops. Stupid VS Code linter.

* Fix prettier issues

* Make paths less unixy in tests

* Update src/cli.test.ts

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* Apply suggestions from code review

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* Add example to reference CATALOG.md

* Make honest appear near user-agent

* Standardize descriptions

* Hide flash options

* Add explanation of parsed._

* Redo groups in yargs

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2021-05-18 22:02:55 -04:00
Adam Weeden b3c202fd33
Bump minimum required version: node>=12.9, npm>=6.9 (#1192)
* Move minimum supported version: node=12, npm=6.9

* Add missing bits and documentation for future bumping

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2021-05-15 13:32:54 -04:00
Ronan Jouchet 9225114e77 Update changelog for `v43.1.3` 2021-05-15 13:28:16 -04:00
Ronan Jouchet 6cf533c5ac Update changelog for `v43.1.2` 2021-05-03 11:19:30 -04:00
Ronan Jouchet d9670d6bb0 Update changelog for `v43.1.1` 2021-05-02 18:15:08 -04:00
Ronan Jouchet e58823985a Update changelog for `v43.1.0` 2021-05-01 11:09:05 -04:00
Adam Weeden bcdbd58f06
App: replace console.xyz calls with loglevel.xyz, with a level controlled by app argv --verbose (#1172)
In reference to request in https://github.com/nativefier/nativefier/pull/1168/files#r623753290 ,
this PR fixes a lot of the disparity in logging in the app, and fleshes the logging out a bit.
2021-04-30 23:21:37 -04:00
Ronan Jouchet fa9bd2aba5 Update changelog for `v43.0.2` 2021-04-13 21:53:05 -04:00
Ronan Jouchet f64c05f735 Update changelog for `v43.0.1` 2021-04-11 20:58:20 -04:00
Ronan Jouchet 96f3ab4ec7 Update changelog for `v43.0.0` 2021-03-10 20:37:37 -05:00
Ronan Jouchet 21665cac5f Bump deps 2021-03-10 19:41:02 -05:00
Ronan Jouchet 7ee2f97599 Update changelog for `v42.4.0` 2021-03-04 12:46:10 -05:00
Ronan Jouchet e59e056f59 Bump deps 2021-03-04 12:37:11 -05:00
Adam Weeden adcf21a3df
macOS: Prompt for accessibility permissions if needed by Global Shortcuts using Media Keys (Fix #1120) (PR #1121)
When setting a media key (play, pause, next/previous track) as global shortcut in Mac OS 10.14+, accessibility permissions must be given to the app for it to work (see https://www.electronjs.org/docs/api/global-shortcut?q=MediaPlayPause#globalshortcutregisteraccelerator-callback).

This PR will accomplish the following on generated app launch:
- Check if global shortcuts are being setup
- Check if the host OS is Mac OS
- Check if the global shortcuts were one of the media keys
- If the above are true, check if the app has accessibility permissions
- If the app does not have the accessibility permissions it will ask the user if they would like to be prompted for these permissions, and then ask Mac OS to prompt for accessibility permissions.

~~As well, a new command line flag is added (`--no-accessibility-prompt`) to preventatively suppress these prompts if desired.~~

Screenshots of the new behavior:
![Screen Shot 2021-02-26 at 2 41 21 PM](https://user-images.githubusercontent.com/547567/109356260-76bfde00-784e-11eb-8c36-3a51b911b780.png)
![Screen Shot 2021-02-26 at 2 41 28 PM](https://user-images.githubusercontent.com/547567/109356266-79223800-784e-11eb-94eb-66437c05fd10.png)
![Screen Shot 2021-02-26 at 2 41 50 PM](https://user-images.githubusercontent.com/547567/109356270-7aebfb80-784e-11eb-9e90-e09bb49752c6.png)

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2021-02-28 10:24:14 -05:00
Ronan Jouchet 75aa10382b Move some tooling config (eslintignore, prettierrc) to package.json
To limit amount of dotfiles at repo root
2021-02-27 22:31:59 -05:00
Ronan Jouchet 5129dbafe1 Deps: bump gitcloud to 0.2 and page-icon to 0.4 2021-02-27 01:15:26 -05:00
Ronan Jouchet d90d9f3d7f Scripts: get rid of `dev-up` and `dev-up-win` scripts
They used to be necessary when we did OS-specific stuff in here, but
we're no longer, and `foo && bar` is supported by both *nixes and Windows
2021-02-26 22:41:00 -05:00
Ronan Jouchet 0aa8276922 Update changelog for `v42.3.0` 2021-02-25 19:49:22 -05:00
Ronan Jouchet 17231d707f Bump eslint-config-prettier from ^7.2.0 to ^8.1.0 2021-02-25 19:10:11 -05:00
Ronan Jouchet 1a5d79ecf8 Bump commander from ^4.1.1 to ^7.1.0
Looked at https://github.com/tj/commander.js/blob/master/CHANGELOG.md
and tested a bit, seems like no change is needed
2021-02-25 19:08:37 -05:00
Ronan Jouchet 9b52f210db Get rid of dependency "shelljs"
We don't need a fancy _"portable (Windows/Linux/macOS) implementation
of Unix shell commands on top of the Node.js API"_, we just want to run
a simple script. Replacing with using stdlib `child_process.spawnSync`.
2021-02-25 18:15:24 -05:00
Ronan Jouchet 4bf0226da0 Deps: come back to semver ^a.b.c syntax
Thinking about it again, the user-friendlier `a.x` syntax has one disadvantage
over `^a.b.c`: it doesn't force deps upgrades when they upgrade Nativefier.
`a.x` is fine on initial install, but a user with an insecure dep
(e.g. axios 0.19.0) will _not_ get fixed axios 0.21.1 on upgrading Nativefier.
-> Come back to `a.x` everywhere.

Still not introducing package locks, they're too confusing to new devs.
See https://github.com/nativefier/nativefier/pull/1099#issuecomment-761250232
2021-02-25 08:15:39 -05:00
Ronan Jouchet b99b2f9632 Deps: bump axios from 0.x to ^0.21.1, to reassure dependabot 2021-02-24 23:12:21 -05:00
Jia Hao 7a3730e5a9 Update changelog for `v42.2.1` 2021-01-30 05:04:51 +00:00
Jia Hao 6316d23762 Move to nativefier organization 2021-01-30 04:49:52 +00:00
Milo 9c784dcfaf
Move TS @types from dependencies to devDependencies (PR #1102)
Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2021-01-24 20:36:06 -05:00
Ronan Jouchet dcefe0074d Update changelog for `v42.2.0` 2021-01-18 09:24:28 -05:00
Ronan Jouchet 422f72aa3b Update changelog for `v42.1.0` 2021-01-16 08:47:17 -05:00
Ronan Jouchet b0a953eb2d Get rid of cheerio
Not sure this one will stick, maybe my regex is too naive.
Works for common websites. Let's see
2021-01-15 22:15:48 -05:00
Ronan Jouchet 17f688de63 Get rid of lodash 2021-01-15 21:50:07 -05:00
Ronan Jouchet 0eaf72ced8 Publish TS types, for them to show up in npm
See https://github.blog/changelog/2020-12-16-npm-displays-packages-with-bundled-typescript-declarations/
2020-12-17 20:59:04 -05:00
Ronan Jouchet cf11a71a7c Update changelog for `v42.0.2` 2020-12-07 16:51:49 -05:00
Ronan Jouchet 412b724292 Update changelog for `v42.0.1` 2020-12-06 23:20:07 -05:00
Ronan Jouchet 7c5b2bb68f Bump default Electron to 11.0.3, bump dep eslint-config-prettier to 7.x, bump version to something far away from current Electron version
Rationale for nonsensical major version bump: around Nativefier 8.x,
versions of Nativefier and Electron aligned, by release schedule coincidence.
Since Nativefier has little breaking changes, it was great: as Electron
releases are breaking, Nativefier had no breaking changes, I bumped our
major version on new major Electron, and everything was good.

Except *now*, as I have a breaking change, that would bump Nativefier to
12.x, which would be confusing since we'd still default to Electron 11 :-/ .

-> To keep respecting semver and reduce confusion, bumping Nativefier
   version to something far ahead. No it doesn't matter, version
   number are meaningless anyway (well, outside of semver, whose
   respect is precisely the point here).
2020-12-06 13:57:51 -05:00
Ronan Jouchet b821ade761 Update changelog for `v11.0.2` 2020-11-21 14:52:08 -05:00
Ronan Jouchet 7531c3136e Update changelog for `v10.1.5` 2020-11-08 21:52:39 -05:00
Ronan Jouchet f9815cb49f Deps: more trying getting npm7 peerDeps to play nice 2020-11-08 21:31:04 -05:00
Ronan Jouchet 571717949d Deps: try to make npm7 peerDep resolution happy
see example failed build at https://travis-ci.org/github/jiahaog/nativefier/jobs/742329221
2020-11-08 21:15:51 -05:00
Ronan Jouchet 810f4a1e6a Deps: bump webpack from 4.x to 5.x (-cli from 3.x to 4.x) 2020-11-08 21:08:24 -05:00
Ronan Jouchet 1add237878 Deps: bump ts-eslint from 3.x to 4.x 2020-11-08 20:52:42 -05:00
Ronan Jouchet 6dbe4998b6 Update changelog for `v10.1.0` 2020-08-29 17:11:55 -04:00
Ronan Jouchet b1d0d6857f Bump default Electron to 10.1.0, bump to TS 4.x 2020-08-29 16:16:25 -04:00
Ronan Jouchet e24b22ea7f Update changelog for `v9.2.0` 2020-08-10 21:47:07 -04:00
Joe Skeen 3e5f1fabad
[dev] Add unified {build,test} watch mode, using "concurrently" (#1011)
I noticed that the development README suggested using multiple console 
windows/tabs for a good development experience. Using the package `concurrently`,
we can streamline that and require only one window with output for both watch processes:

![image](https://user-images.githubusercontent.com/12286274/88694827-477d9e80-d0be-11ea-898c-ee9a509db4bb.png)


Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
2020-08-05 12:52:49 -04:00
Ronan Jouchet 8684887fc6 Bump eslint to 7.x, fix new lint errors 2020-07-18 11:19:58 -04:00
Ronan Jouchet aa5a98b5e7 Update changelog for `v9.1.0` 2020-07-18 02:19:44 -04:00
Ronan Jouchet 53a2e9b4d3 Remove @types/electron-packager, they're built-in since 15.x 2020-07-18 02:18:33 -04:00
Ronan Jouchet 792156f376 Bump deps: electron-packager, ts-loader, types 2020-07-18 01:47:46 -04:00
Ronan Jouchet 8fa394a1c0 [BREAKING CHANGE] Require Node.js >= 10
- Several deps started requiring it
- CI started breaking on Node 8
- Node 8 is end-of-life, no longer maintained
- Even latest Debian stable and Ubuntu LTS ship Node 10:
    https://packages.debian.org/search?suite=stable&keywords=nodejs
    https://packages.ubuntu.com/search?searchon=names&suite=all&section=all&keywords=nodejs

So, requiring Node 10 and npm 6 going with it.
2020-06-13 10:46:27 -04:00
Ronan Jouchet e5ba8c779f Bump default Electron to 9.0.4, bump deps (jest, electron-context-menu) 2020-06-13 10:23:15 -04:00
Alexander Weps 1d3bed5f09
Fix: notifications (fix #88, fix #956), processEnvs, using as git (#955)
1. Fix (broken since 2016): Notifications broken by lambda constructor
2. Fix: `--processEnvs` broken by additional processEnvs object, the result was:
`processEnvs: {processEnvs: {...}}` which caused the conversion of the inner object into string `[object Object]`, no nesting allowed there probably. Compatibility introduced.
3. Fix: package.json missing `prepare` (or even prepublish), which breaks using as git dependency.
2020-04-27 11:52:21 -04:00
Ronan Jouchet 9ccda87938 Update changelog for `v8.0.7` 2020-04-22 22:12:36 -04:00
Ronan Jouchet fd0395a860 Update changelog for `v8.0.6` 2020-03-27 09:11:58 -04:00
Ronan Jouchet 34e443c832 Update changelog for `v8.0.5` 2020-03-27 09:00:39 -04:00
Ronan Jouchet 0c2510f31e Bump default Electron to 8.2.0 and Prettier 2020-03-24 20:27:25 -04:00