Commit Graph

274 Commits

Author SHA1 Message Date
dependabot[bot] c72dd99c00
Bump pretty-ms from 6.0.1 to 7.0.1
Bumps [pretty-ms](https://github.com/sindresorhus/pretty-ms) from 6.0.1 to 7.0.1.
- [Release notes](https://github.com/sindresorhus/pretty-ms/releases)
- [Commits](https://github.com/sindresorhus/pretty-ms/compare/v6.0.1...v7.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 01:00:09 +00:00
dependabot[bot] 83224ea2f0
Bump highlight.js from 9.18.1 to 10.4.0
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.1 to 10.4.0.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/9.18.1...10.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:59:07 +00:00
dependabot[bot] a27f7c4716
Bump @types/markdown-it from 0.0.9 to 10.0.3
Bumps [@types/markdown-it](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/markdown-it) from 0.0.9 to 10.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/markdown-it)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:57:59 +00:00
dependabot[bot] ae9da3df5b
Bump @types/sharp from 0.24.0 to 0.26.1
Bumps [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sharp) from 0.24.0 to 0.26.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sharp)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:57:17 +00:00
Christian Bundy 520ae4b2ad
Merge pull request #493 from fraction/dependabot/npm_and_yarn/sharp-0.26.3
Bump sharp from 0.25.2 to 0.26.3
2020-11-21 16:45:47 -08:00
dependabot[bot] 1478579c40
Bump sharp from 0.25.2 to 0.26.3
Bumps [sharp](https://github.com/lovell/sharp) from 0.25.2 to 0.26.3.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/master/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.25.2...v0.26.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:32:20 +00:00
dependabot[bot] 31036493eb
Bump @types/highlight.js from 9.12.3 to 10.1.0
Bumps [@types/highlight.js](https://github.com/highlightjs/highlight.js) from 9.12.3 to 10.1.0.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/commits/10.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:31:57 +00:00
Christian Bundy 8d43f62e21
Merge pull request #489 from fraction/dependabot/npm_and_yarn/markdown-it-12.0.2
Bump markdown-it from 10.0.0 to 12.0.2
2020-11-21 16:29:02 -08:00
Christian Bundy 8c1f2c0606
Merge pull request #488 from fraction/dependabot/npm_and_yarn/changelog-version-2.0.0
Bump changelog-version from 1.0.1 to 2.0.0
2020-11-21 16:27:40 -08:00
dependabot[bot] 3255b97c7b
Bump markdown-it from 10.0.0 to 12.0.2
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 10.0.0 to 12.0.2.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/10.0.0...12.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:20:09 +00:00
dependabot[bot] 8078ffb9cf
Bump changelog-version from 1.0.1 to 2.0.0
Bumps [changelog-version](https://github.com/AlbertoFdzM/changelog-version) from 1.0.1 to 2.0.0.
- [Release notes](https://github.com/AlbertoFdzM/changelog-version/releases)
- [Changelog](https://github.com/AlbertoFdzM/changelog-version/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/AlbertoFdzM/changelog-version/compare/v1.0.1...v2.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:19:47 +00:00
dependabot[bot] f0c74e8e31
Bump yargs from 15.3.1 to 16.1.1
Bumps [yargs](https://github.com/yargs/yargs) from 15.3.1 to 16.1.1.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v15.3.1...v16.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:18:42 +00:00
dependabot[bot] e046bad5c3
Bump supertest from 4.0.2 to 6.0.1
Bumps [supertest](https://github.com/visionmedia/supertest) from 4.0.2 to 6.0.1.
- [Release notes](https://github.com/visionmedia/supertest/releases)
- [Commits](https://github.com/visionmedia/supertest/compare/v4.0.2...v6.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-22 00:01:21 +00:00
Christian Bundy 0aacf3bbc3 Fix tests and remove workaround
Problem: Recently there was a PR [0] merged with a quickfix to avoid
some test failures, which is something I've been trying to avoid. While
`process.exit()` works fine, I'm worried that it means we don't
understand what's happening under the hood, *plus* I have the [maybe
unjustified?] worry that it might kill the process during a database
write or something dangerous. It looks like this particular test hang
was caused by both a stream and some number of intervals that were left
open.

Solution: Provide a way to close the stream and intervals in `index.js`
and ensure that we do that before closing the server.

[0]: https://github.com/fraction/oasis/pull/462
2020-11-11 08:25:38 -08:00
Alexander Cobleigh 4d5c571df3 restore common-good check & fix its errors
after having restored the package-lock.json to that of the master branch, this
PR now uses common-good@2.0.3, which has common-good check as a command.

i ran it manually as $(npm bin)/common-good check, and fixed whatever
it complained about.
2020-10-21 15:33:01 +02:00
Henry e7dd215f4d fix common-good setup
somehow it's cli arguments changed
2020-10-19 10:06:34 +02:00
Alexander Cobleigh 6d50e53604 remove exif data from uploaded jpegs 2020-10-19 10:06:06 +02:00
Henry 5cb4c8aff1 use file-type for mime and enhanced preview
and cleanup blob addition to text
2020-10-19 10:06:02 +02:00
Jacob Karlsson c205826b48 Merge branch 'master' of github.com:fraction/oasis into image-search 2020-05-06 20:05:37 +02:00
Christian Bundy f86b73b40e Upgrade Flotilla and SSB-CONN, remove auto-stage
Problem: The auto-stage code was a horrible hack that may be causeing an
OOM bug if too many peers are staged too quickly.

Solution: Since SSB-CONN now supports a variable number of connection
hops, we can remove the auto-stage hack and use the default scheduler
instead of trying to staple on our own hacky scheduler fix.
2020-05-04 13:27:06 -07:00
Jacob Karlsson 3b753f16ac Apply style fixes 2020-05-03 23:14:19 +02:00
Jacob Karlsson e456c1d9c5 Add image search 2020-05-03 22:16:44 +02:00
Christian Bundy 09ff4cad21 2.16.0 2020-04-13 14:32:21 -07:00
Christian Bundy 8e4a1c8e53 2.15.0 2020-04-10 12:51:36 -07:00
Christian Bundy a24b5a7acf Fix broken changelog moving logic
Problem: The `npm version` command is supposed to do some changelog
magic but the paths are broken.

Solution: Use the correct paths.
2020-04-10 12:50:45 -07:00
Christian Bundy 2968f7d80a Merge https://github.com/fraction/oasis into advisory-fix-1 2020-04-10 10:51:29 -07:00
Christian Bundy ecdd78c42e Merge branch 'master' of github.com:fraction/oasis into update-deps 2020-04-08 14:52:06 -07:00
Christian Bundy 3886b1fc53 Increase test timeout and remove log statements
Problem: The Windows tests seem to be failing, it looks like a timeout
problem? Also there are a handful of debug statements around the code
that can be safely removed.

Solution: Double the timeout length and remove debug statements.
2020-04-06 13:22:07 -07:00
Christian Bundy cb1be6bc8b Fix open sockets that weren't closing during tests
Problem: The test suite isn't closing the database because `app.close()`
only affects the HTTP server. This means that tests don't exit cleanly
and sockets remain open and all sorts of really fun stuff that we don't
want while writing tests.

Solution: Refactor `src/ssb.js` so that we can exit cleanly and have
less rope to hang ourselves with. Add a small lifecycle test that can
help us ensure that the bare minimum lifecycle events are working
correctly, plus now the previous tests are passing on my machine too.
2020-04-06 12:14:58 -07:00
Christian Bundy 3c9ec37d2f Add very basic test suite
Problem: ESLint and TypeScript help catch some types of regressions, but
they don't protect us against obvious stuff like "the server won't
start". This means that humans need to test a bunch of stuff manually,
and that can be really tedious and exhausting.

Solution: Yesterday someone invented this cool concept called "testing"
where you write automated tests for your software to ensure it actually
works the way you expect. It might have beeen invented before yesterday,
I don't know. Anyway, this solution adds a bunch of tests that send HTTP
GET requests to a bunch of endpoints to make sure the server is at least
returning HTTP 200 responses. It also fixes a race condition where HTTP
server was available before the readme / version strings were loaded.
2020-04-03 09:17:13 -07:00
Christian Bundy 182d6d68bc Update npm dependencies
Problem: Our dependencies are getting ahead of us!

Solution: Catch up with `npm update`. I think Markdown-It was the only
breaking change, and it didn't affect us.
2020-04-03 07:11:11 -07:00
Christian Bundy b01ff74dbc Clean up root of project directory
Problem: Project root has a handful of files that aren't used at all or
could be placed elsewhere.

Solution: Delete unused files and move the changelog to the
documentation directory with the other Markdown files (other than the
readme, of course).
2020-04-01 15:04:57 -07:00
Christian Bundy 555249277f Remove @ts-ignore workaround
Problem: The workaround is no longer necessary now that the new version
of @types/koa has been published. Thanks to @peterblazejewicz,
@harryparkdotio, and @orta for the quick upstream fix.

Solution: Run `npm update` and remove the `@ts-ignore` comment.
2020-03-27 09:13:31 -07:00
Christian Bundy defb57321e Merge branch 'master' of github.com:fraction/oasis into type-defs 2020-03-27 08:02:44 -07:00
Christian Bundy c4aaf47a06 Fix Markdown link bug
Problem: Some sigil links were broken because of a bug in SSB-Markdown
that was recently resolved.

Solution: Upgrade SSB-Markdown.

Fixes: https://github.com/fraction/oasis/issues/242
2020-03-25 10:15:26 -07:00
Christian Bundy e0a20e4915 Merge commit 'd9e8' 2020-03-24 14:45:33 -07:00
Nick Wynja d9e829e2e8 Removes husky to fix #346 2020-03-24 15:19:33 -04:00
Christian Bundy c9fffe2b9c Add TypeScript definitions for better guardrails
Problem: We have TypeScript enabled on the project but have been missing
lots of definition files, so there are like 500 errors when you enable
`--noImplicitAny`.

Solution: Add definitions and fix the bugs that they point out. This
reduces the number of errors with `--noImplicitAny` to 285.
2020-03-24 09:23:52 -07:00
Christian Bundy dd388feefe Revert @fraction/flotilla change 2020-03-24 08:15:05 -07:00
Christian Bundy 488852f205 Resolve Travis CI + Windows EOL bug
Problem: Travis CI is converting our EOL characters and it's causing
problems when we're parsing with Prettier.

Solution: Disable auto-conversion.
2020-03-23 19:20:38 -07:00
Christian Bundy 32465e5983 Update npm dependencies
Problem: Our dependencies are falling behind and it'd be nice to have
them up-to-date. The only big update it that Common-Good upgraded to the
latest version of Prettier.

Solution: Update them!
2020-03-23 18:59:53 -07:00
Cinnamon 3e74a5cd2e
Merge pull request #298 from christianbundy/2019-03-npm-update
Upgrade npm dependencies
2020-03-11 16:02:09 -07:00
Christian Bundy c575aebb03 2.14.0 2020-03-10 16:57:46 -07:00
Christian Bundy 9b193cda14 Upgrade npm dependencies
Problem: Patchwork is soon going to release with a new SSB-Backlinks,
and since we share a database with Patchwork we should make sure we're
on the same version. If we're on different versions, we'll be constantly
regenerating indexes and that isn't fun for anyone.

Solution: Upgrade npm dependencies.
2020-03-09 14:34:18 -07:00
Christian Bundy cb1cf5e87e Render vanilla Markdown with basic renderer
Problem: The SSB-Markdown library has some SSB-flavored quirks, like
messing with newline behavior, and is inappropriate for rendering plain
Markdown like the readme.

Solution: Since SSB-Markdown uses Markdown-It under the hood, we can use
the same library and just render our Markdown *without* the SSB-flavored
quirks. This gives us the ability to wrap text and avoid SSB-Markdown
problems without having to rewrite all of our Markdown.
2020-03-03 16:13:56 -08:00
Daan Wynen 35c42f6b95 Read settings from ~/.config/oasis/config.json
This should give pretty much expected behaviour. Each config value
can be set by three sources:

1. By command-line argument. If it is not given, then
2. By config file. Or, lastly
3. By default value in the source code.

I can't test that the config file is searched and read from the right
place on windows or macOS, but on linux it works.
2020-02-22 10:32:50 +01:00
Christian Bundy 293dcabe68 Update SSB-Mentions and remove workaround
Problem: We've been using a workaround to filter the results of
SSB-Mentions, but that's just been fixed upstream and so we don't need
the workaround anymore.

Solution: Update the SSB-Mentions package and remove the workaround.
2020-02-19 14:38:10 -08:00
Christian Bundy 8088a9aa8b Add Oasis version to settings
Problem: It was impossible to tell which version of Oasis you're
running, which makes it hard to know when you need to update.

Solution: Put the version in the settings so it's easy to reference.
2020-02-18 10:44:36 -08:00
Christian Bundy 1e28b29758 Replace cooler methods with SSB-Client promises
Problem: We started using `cooler.get()` and `cooler.read()` because it
was impossible to use promises with SSB-Client.

Solution: I made some downstream pull requests into the MuxRPC module
and the SSB-Client module, which means that both of them now natively
support promises. This commit removes the weird convenience methods and
replaces them with the native promise support, which should hopefully
make the code easier to read and write.
2020-02-11 13:20:50 -08:00
Christian Bundy 6031b11470 2.13.1 2020-02-09 16:05:36 -08:00
Christian Bundy dfb498181b 2.13.0 2020-02-09 08:11:32 -08:00
Cinnamon 22fe9763d7
Merge pull request #125 from christianbundy/no-links2
Update Flotilla to drop SSB-Links2
2020-01-31 15:29:11 -08:00
Christian Bundy 01701d5119 Fix SVG rendering by setting content-type
Problem: Most browsers parse SVG files as XML and refuse to display it
in an `<img>` tag. It's usually unsafe to have browsers try to sniff the
file type themselves, because they can be tricked into running unsafe
code, so we want to set the file type ourselves in the server.

Solution: Use the Is-SVG library for a quick-n-dirty check for whether a
buffer is an SVG. If so, we set the file type accordingly.
2020-01-31 15:04:13 -08:00
Christian Bundy dc23b8bdf2 Update Flotilla to drop SSB-Links2
Problem: We aren't using the index at all so Oasis is just wasting time
and CPU power.

Solution: Upgrade Flotilla and resolve the problem.
2020-01-31 12:59:26 -08:00
Christian Bundy 17cb550539 Specify exact Node.js engine support and test it
Problem: Targeting only the latest version of Node.js and the latest LTS
means that we have a sort of rolling backward-compatibility that's hard
to reason about. If we break compatibility, we should release those
changes as a major version, but the current strategy makes it difficult
to tell exactly when we're breaking compatibility.

Solution: Specify the exact Node.js versions that we want to support in
`package.json` and add the specific tests to `.travis.yml`. In the
future we can break compatibility if it's helpful but we'll have to do
so explicitly and release the change as a major version.
2020-01-31 10:59:10 -08:00
Christian Bundy 89b68db17e 2.12.0 2020-01-28 12:56:55 -08:00
Christian Bundy ec3e4d489a Merge branch 'master' of github.com:fraction/oasis into conn-buttons 2020-01-28 10:25:42 -08:00
Christian Bundy b56b4bcd74 Update Flotilla to fix conn.stop bug
Problem: Stopping the networking would sometimes allow peers to remain
connected, which was confusing.

Solution: Upgrade to latest SSB-CONN to pull in a bugfix for this
behavior. Huge thanks to @staltz for the quick fix!
2020-01-28 10:22:24 -08:00
Christian Bundy 681e3c6755 Add buttons to 'meta' page to manage networking
Problem: Sometimes you want to disconnect from the network but you don't
want to have to restart Oasis with the `--offline` flag
(https://github.com/fraction/oasis/issues/89). Sometimes networking gets
stuck and you need to run the equivalent of `ssb gossip reconnect`
(https://github.com/fraction/oasis/issues/63).

Solution: Buttons on the 'meta' page that let you start, stop, or
restart SSB-CONN whenever you want. Note that this commit includes an
update to SSB-CONN, but this version and the previous version both have
a bug where hitting 'stop' twice in a row will throw an error. This
commit implements a workaround for the bug, but it's something we'll
want to remove later once the underlying bug is fixed.
2020-01-26 16:55:48 -08:00
Christian Bundy dec0f42b0f Fix tangle bug when Patchwork is used as a server
Problem: Patchwork is missing a plugin that we need to set the `branch`
property when posting a message. This property is important because it
helps us sort threads, so we're throwing an error when it isn't
available. See: https://github.com/fraction/oasis/issues/21

Solution: HACK THE ~~PLANET~~ API. This commit injects the plugin we
need via Oasis, which is a bit of a duct tape solution but it *is* a
solution.
2020-01-26 12:57:42 -08:00
Christian Bundy 3c50b94fa1 Update Common-Good to stop using npm alias
Problem: CG's dependency, CSpell, had problems with Windows support, so
I was using a forked module as an alias to circumvent the problem. This
only works on very recent version of npm.

Solution: This morning the CSpell maintainer resolved the problem, so
the latest CG doesn't have to depend on an alias. This commit runs `npm
update` to get the latest version of CG so we don't have this problem.
2020-01-25 16:28:08 -08:00
Christian Bundy 8cfc7d1e00 Fix test script in package.json 2020-01-24 09:29:29 -08:00
Christian Bundy 393f7ef087 Update Common-Good to fix Windows problem 2020-01-24 09:28:37 -08:00
Christian Bundy ace1bc0314 Test spawnSync 2020-01-23 18:35:02 -08:00
Christian Bundy 6d8591b0c8 Upgrade ssb-client and common-good 2020-01-23 18:27:06 -08:00
Christian Bundy abe802910f Update npm dependencies for new common-good
Problem: Common-Good had a bug in the Prettier glob where the recursion
wasn't working correctly. This meant that we weren't actually testing or
fixing some of the deeper files.

Solution: Update CG to the latest version and run `npm run fix` to fix
the linter stuff.
2020-01-23 14:36:25 -08:00
Christian Bundy 0a10e37cee Make Travis faster by removing double-build
Problem: Travis builds PRs and branches, which means that local branches
get built twice (!).

Solution: Travis should only build `master`, and maybe tags.
2020-01-23 12:09:59 -08:00
Christian Bundy f0563d3e27 Upgrade common-good 2020-01-21 18:20:06 -08:00
Christian Bundy defe1ecc98 Upgrade to common-good 1.1.1 2020-01-21 17:03:40 -08:00
Christian Bundy b34b04c2c2 Experiment with common-good module 2020-01-21 16:22:19 -08:00
Christian Bundy cb4a6ef971 2.11.0 2020-01-16 11:58:00 -08:00
Christian Bundy 9636d673ad Add latest changes to changelog 2020-01-16 11:57:49 -08:00
Christian Bundy 5f528588b1 Change src directory to use mediator pattern 2020-01-08 08:37:52 -08:00
Christian Bundy 769a279daa 2.10.0 2020-01-06 18:16:11 -08:00
Christian Bundy 48cac575e7 Add install-systemd-service.js 2020-01-03 21:06:08 -08:00
Christian Bundy 67fcb7b19b
2.9.10 2019-12-29 16:01:22 -08:00
Christian Bundy 6ac79b124a
Bump dependencies 2019-12-29 15:51:59 -08:00
Christian Bundy 36b52a0465
2.9.9 2019-12-29 14:03:23 -08:00
Christian Bundy 0791880897
2.9.8 2019-12-27 16:29:23 -08:00
Christian Bundy 42c72e7b8d
Change to make Sharp an optional dependency 2019-12-27 16:28:36 -08:00
Christian Bundy 344d0cade9
2.9.7 2019-12-16 10:13:23 -08:00
Christian Bundy f5e1720552
2.9.6 2019-12-16 09:23:07 -08:00
Christian Bundy 7af6142a6b
2.9.5 2019-12-15 15:25:48 -08:00
Christian Bundy b19b3a7666
2.9.4 2019-12-15 14:11:39 -08:00
Christian Bundy 4a35908863
2.9.3 2019-12-14 16:33:02 -08:00
Christian Bundy 4853c7e903
Upgrade dependencies 2019-12-12 09:27:38 -08:00
Christian Bundy e8d4e0b0df
2.9.2 2019-12-11 19:15:51 -08:00
Christian Bundy 4f3dd0544c
2.9.1 2019-12-07 17:02:02 -08:00
Christian Bundy 05a4c76ca4
2.9.0 2019-12-07 15:27:58 -08:00
Christian Bundy c27d298081
Add basic search functionality 2019-12-07 15:25:24 -08:00
Christian Bundy 284471b9be
2.8.0 2019-12-06 13:34:30 -08:00
Christian Bundy cb47f2a5ca
Replace dog-food filter with popular page
Instead of trying to remove ssb-dev content explicitly I'm going to try
to experiment with a "popular" page that count all of the votes in the
past 24 hours and shows the posts with the most votes.
2019-12-06 11:31:35 -08:00
Christian Bundy 1adce167a7
Change `npm run debug` to `npm run dev` 2019-11-17 19:23:31 -08:00
Christian Bundy 3f621cbe60
Add TypeScript for linting JavaScript 2019-11-15 15:57:57 -08:00
Christian Bundy 4cfff06fc3
2.7.1 2019-11-15 12:16:53 -08:00
Christian Bundy 4e3f74fec2
Change to upgrade open and yargs 2019-11-15 12:16:26 -08:00
Christian Bundy 0142a75f15
Change from ssb-gossip to ssb-conn 2019-11-15 11:42:32 -08:00
Christian Bundy 7ab8c076a9
2.7.0 2019-11-15 10:22:18 -08:00
Christian Bundy 00890184df
Add thread and like views, rename "status" to "meta"
This should probably be separated into a few commits, but honestly I'm
feeling a bit lazy and I don't think this will hurt anything.

The `<nav>` was getting pretty hectic so I've removed "readme" and
"likes". The readme is now in the "meta" page, previously called
"status", and the likes are now available on each author's profile.

The big change here is that the default view is now the thread view, not
the comment view, so by default you're only going to see new threads
rather than random comments. This makes the feed a bit slower and more
cohesive, so you aren't seeing random comments on posts from 2 years
ago.

To be decided: should the comments view show root posts from threads? Or
should it just show comments? Right now it's basically a firehose view,
but I'm not sure that "firehose" is very accessible language for most
people.
2019-11-15 08:39:15 -08:00
Christian Bundy f0bb16542e
2.6.8 2019-11-13 07:39:18 -08:00