784 Commits

Author SHA1 Message Date
Jaifroid
8579bbeb72
Recompile Emscripten binaries, implement WASM with fallback, add API info, add compile scripts (#740)
Fixes #739, #652 and #511. Instructions and helper scripts are included for easy future recompiling of the binaries with docker.
2021-08-22 08:54:47 +01:00
Jaifroid
bd0c296198
tests: Update Karma to 6.3.4 (#742)
Upgrade Karma, without upgrading Nightwatch.
2021-07-23 16:37:30 +01:00
Jaifroid
8fb07bb5a4
Use Promise polyfill instead of Q #735 (#736) 2021-07-22 18:56:08 +01:00
Jaifroid
5a2ea27df1
Correct usage of classList method (#738) 2021-07-19 09:43:22 +01:00
Jaifroid
5270bcf155
Optimize title search by removing redundant cycles (#733)
Fixes #696 (now gets up to 100 search results) and optimizes the code for #637.
2021-07-18 19:00:56 +01:00
Mossroy
c82b4398da
Merge pull request #731 from kiwix/dependabot/npm_and_yarn/glob-parent-5.1.2
Bump glob-parent from 5.1.1 to 5.1.2
2021-06-13 10:22:24 +02:00
dependabot[bot]
0997290752
Bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-12 14:47:48 +00:00
dependabot[bot]
ac98ef7757
Bump ws from 7.4.0 to 7.4.6 (#728)
Bumps [ws](https://github.com/websockets/ws) from 7.4.0 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.0...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-31 05:49:17 +01:00
Jaifroid
d35cd19ca1
Pre-calculate position and size of article namespace in legacy ZIMs #720 (#724)
Emulates a v1 article pointerlist for legacy v0 ZIMs, fixes the random function and also speeds up binary search for articles.
2021-05-26 17:18:48 +01:00
dependabot[bot]
a8fb1a0fef
Bump lodash from 4.17.20 to 4.17.21 (#723)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-14 07:35:13 +01:00
Ismael Grimaldo Vega
302c462f87
v3.1.0 milestone URL added (#721)
Detailed changelog url
2021-05-01 08:53:55 +02:00
Jaifroid
2d792b9c13
Support new v1 directory listings #708 (#709) 2021-04-07 14:42:46 +01:00
dependabot[bot]
5f16fe39c9
Bump y18n from 4.0.0 to 4.0.1 (#715)
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-01 07:09:44 +01:00
Hrishi Raj
1cbdb326f9
Focus search form on Home key press #704 (#714) 2021-03-31 08:50:43 +01:00
Mossroy
3c043eef1c
Merge pull request #702 from kiwix/Update-URL-for-Ubuntu-Touch-app
Update URL for Ubuntu Touch app
2021-02-16 10:41:30 +01:00
Mossroy
c74763c953
Update URL for Ubuntu Touch app
The previous one does not work any more
2021-02-16 10:02:58 +01:00
Jaifroid
7ee993e843
Revamp documentation and provide technical information (#700) 2021-02-07 06:58:03 +00:00
Jaifroid
18c51f1ab9
Preliminary support for ZIM archives with no namespace (#698)
Partially implements #684.
2021-02-06 17:00:05 +00:00
Timo Tijhof
dfc9bbf822 tests: Run "sauce" job for same-repo push instead of push+pr
There is no need to run the job on both since one always implies
the other. A same-repo PR by definition has every commit in it
trigger a push.

Triggering the job both ways is not only inefficient, but means
SauceLabs connection end up refused during the Nightwatch test
since it will find its free concurrency limit being reached from
the two parallel versions of the same job.

The Karma version seems to not suffer from this as it re-tries
and merely waits a little bit. We may encounter this issue more
in the future e.g. from unrelated commits being worked on, but
alas, this is an improvement either way.
2021-01-27 07:13:16 +00:00
Timo Tijhof
1e6f357ed2 tests: Use Chrome for 'npm test' in GitHub CI
Follows-up 55186c8. I had this check originally, but then
removed it after GitHub merged the upstream improvement.
It looks like some CI runners might not yet have it applied,
so keep it a little longer for now.
2021-01-27 07:13:16 +00:00
Timo Tijhof
33308af132 tests: On Linux, let npm test default to Chromium instead of Chrome
By default `npm test` will run concurrenty in Firefox and one of
Chromium/Chrome. Chrome for macOS and Win, and Chromium on Linux
unless CHROME_BIN is configured by the user's env variables, in
which case they're likely to prefer that and/or not have Chromium
installed.

Also provide `npm run test-unit-…` commands which run unit tests
in a single specific browser only (overrides the conf array).

Follows-up https://github.com/kiwix/kiwix-js/pull/672.
2021-01-27 06:13:40 +00:00
Timo Tijhof
3d448b3119 tests: Document npm dependency for unit tests in README
Follows-up https://github.com/kiwix/kiwix-js/pull/672.
2021-01-27 06:13:40 +00:00
Mossroy
c6cbe2c79b
Merge pull request #697 from kiwix/dependabot/npm_and_yarn/socket.io-2.4.1
Bump socket.io from 2.3.0 to 2.4.1
2021-01-23 17:22:53 +01:00
dependabot[bot]
2dcc4d80c8
Bump socket.io from 2.3.0 to 2.4.1
Bumps [socket.io](https://github.com/socketio/socket.io) from 2.3.0 to 2.4.1.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/2.4.1/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/2.3.0...2.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-21 16:42:00 +00:00
Timo Tijhof
8b3a5c3a1e
update QUnit, use Karma, make some of CI work locally as well (#672)
* workflows: Rename "CI" to "Release"

Rename this to make space for a separate "CI" workflow that will
run continuous integration and testing jobs for commits and PRs.

* workflows: add CI workflow for unit tests and support running locally

* Load qunit package from npm, this is the start of a larger transition.
  ref at https://github.com/kiwix/kiwix-js/issues/554.

* Update QUnit from 2.3 to 2.13.

* Use Karma for the running of unit tests (instead of Nightwatch).

  While it was possible to use a fake "UI" test to open the QUnit
  web page with Nightwatch, this had numerous limitations:

  - relies on fragile and unsupported DOM scraping to collect
    test results, which breaks between framework versions.
    ref https://github.com/kiwix/kiwix-js/pull/660.

  - severely limits debugging information for failing tests.

  - cannot easily be reproduced or debugged locally from the command-line
    as the Nightwatch config was pinned to Sauce Labs, and creating
    a local configuration is not easy because Nightwatch has a hard
    requirement for installing and running a WebDriver server.
    People usually do not have this installed and it's non-trivial
    to set up and keep working in the long term, and across multiple
    different software projects.

  - cannot easily be run in a secure container separate from your
    personal computer, thus putting personal data at risk.

  - lacks wider integration and plugins to enrich unit testing,
    such as test coverage reports.

  Using Karma means:
  - We can run 'npm test' locally during development and have it
    automatically run the tests in headless Firefox and Chrome
    and report back, all from the command-line.
  - The same exact same stack is also used in CI with SauceLabs
    for additional browser coverage (same as before).
  - It has no external dependencies other than the plain web
    browser itself. This means if you have a development container
    (e.g. based on Docker) that has Node.js + Firefox + Chromium,
    you can run the tests there without exposing anything from
    your personal computer, besides the current directory.
    <https://timotijhof.net/posts/2019/protect-yourself-from-npm/>
  - In a future change, we can plug in karma-coverage to generate
    a test coverage report, to submit to Codecov or Coveralls.
    ref https://github.com/kiwix/kiwix-js/issues/528.

* I have pinned the version of 'http-server' and 'nightwatch'
  in package.json so that these don't silently upgrade in a way
  that may introduce security issues or drop compatibility for
  the environment we currently support.

Fixes https://github.com/kiwix/kiwix-js/issues/653.

* Re-enable unit and UI tests in latest Edge

The tests were disabled after https://github.com/kiwix/kiwix-js/pull/499
due to an issue with the Edge version that was the default "edge" on
SauceLabs in May 2019 (not sure which version that was, the last pre-Chromium
Edge version was 44, which was passing, so perhaps SauceLabs defaulted
to a beta release, or used a much older version like 15-18?)

Now that Edge uses Chromium, try re-enabling the tests.

Fixes https://github.com/kiwix/kiwix-js/issues/502.
2021-01-03 14:49:18 +01:00
Jaifroid
aea8a7bb2b
Action: changemod before upload (#692) 2020-12-19 09:51:00 +00:00
Kelson
53d3aa2dda
Slightly better ZIM download URL (#689) 2020-12-13 18:14:10 +01:00
Jaifroid
99ec91fb49
Prepare source code for 3.2 (#688) 2020-12-13 15:41:11 +00:00
Kelson
afd03eb0f1
New badges (#687)
* New badges

* Use standard workflow naming

* Better badge for MS Edge
2020-12-13 16:32:02 +01:00
Jaifroid
de7b2e0297 Corrections to GitHub Action nightly or release build (#686) 2020-12-13 15:16:51 +00:00
Jaifroid
8a43ed014a
Finalize GitHub Action for nightly and release builds (#685) 2020-12-12 08:41:41 +00:00
Jaifroid
2d14569215 Update .gitattributes 2020-12-10 21:41:17 +00:00
Jaifroid
4a8efd48ed
GitHub Action: Create all packages on release [dryrun] (#683) 2020-12-10 09:56:42 +00:00
Jaifroid
21a3a3b218
Changelog for v3.1 (#682) 2020-12-06 16:53:30 +00:00
Jaifroid
34579987f5
Extract images sequentially in jQuery mode #671 (#677) 2020-11-29 07:36:32 +00:00
Timo Tijhof
cbc967e0da
tests: Remove redundant xzdec.js include (#676)
Follows-up 0c530101573cf95b, which removed this from www/index.html,
but it was still present in the test suite.

This is now loaded automatically by RequireJS.
2020-11-28 09:49:30 +01:00
Jaifroid
74cccba19a
Add WebP Polyfills in jQuery mode #650 (#670)
Fixes #650.
2020-11-22 09:50:18 +00:00
Jaifroid
56386914c7
Update supported platform information in README.md (#669) 2020-11-08 10:19:52 +00:00
ram690514
e1b572b7ae
Minor changes suggested by codefactor (#663) 2020-11-07 16:39:08 +00:00
Jaifroid
59a2fbc7d5
Exempt articleId assignment from Active Content Warning #667 (#668) 2020-11-07 09:08:39 +00:00
Jaifroid
158024d5a5
Add a low level block cache #619 (#658) 2020-11-05 18:07:48 +00:00
Jaifroid
cff7dece3b
Enable quick and complete cancellation of running searches #637 (#642) 2020-10-25 17:38:13 +00:00
Jaifroid
388bb33761
Prepare source code for 3.1 (#657) 2020-10-10 09:39:25 +01:00
Jaifroid
184a29ec9b Ignore package-lock.json 2020-10-08 14:41:05 +01:00
Jaifroid
01df82a1bc
Update CHANGELOG for v3.0.0 (#655) 3.0.0 2020-10-04 11:01:10 +01:00
Jaifroid
0c53010157
Add zstd decompression support #611 (#648)
Closes #611.
2020-09-29 11:42:18 +01:00
Jaifroid
b002ed2853
Make Privacy Policy publicly accessible (#640) 2020-07-11 18:00:26 +01:00
Mossroy
e126ee8c47 Prepare version 2.9 2020-07-11 16:04:06 +02:00
Jaifroid
ef31082d01
Update CHANGELOG for v2.8.0 (#634) 2.8.0 2020-07-11 14:20:48 +01:00
Jaifroid
823d1836bf
Better handling of case transformations in search (#617)
Fixes #179 and #184. A complete solution to cancelling some running binary searches after user has initiated a new search will be dealt with in #637.
2020-07-11 14:08:54 +01:00