Compare commits
No commits in common. "master" and "v0.2.2" have entirely different histories.
42
README.md
42
README.md
|
@ -1,21 +1,17 @@
|
|||
# FileBazaar
|
||||
|
||||
[![npm release](https://img.shields.io/npm/v/filebazaar.svg)](https://www.npmjs.com/package/filebazaar)
|
||||
[![MIT license](https://img.shields.io/github/license/elementsproject/filebazaar.svg)](https://github.com/elementsproject/filebazaar/blob/master/LICENSE)
|
||||
[![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
|
||||
[![IRC](https://img.shields.io/badge/chat-on%20freenode-brightgreen.svg)](https://webchat.freenode.net/?channels=lightning-charge)
|
||||
Sell digital files with Lightning!
|
||||
|
||||
Sell digital files with Bitcoin & Lightning.
|
||||
|
||||
- Simple setup and minimal configuration, just put some files in a directory and start the server.
|
||||
- Simple setup and minimal configuration, just put a bunch of files in a directory and run the server.
|
||||
|
||||
- Lightweight web browsing interface, works without JavaScript.
|
||||
|
||||
- Generates previews for images, videos, audio, pdf and text documents.
|
||||
|
||||
Powered by :zap: [Lightning Charge](https://github.com/ElementsProject/lightning-charge).
|
||||
|
||||
![FileBazaar demo](https://i.imgur.com/UhQD0Tg.gif)
|
||||
<img src="https://i.imgur.com/Tdwcuhm.png" width="23%" title="FileBazaar screenshot - directory index"></img>
|
||||
<img src="https://i.imgur.com/6SFNRiq.png" width="23%" title="FileBazaar screenshot - file preview"></img>
|
||||
<img src="https://i.imgur.com/MDRaie2.png" width="23%" title="FileBazaar screenshot - checkout"></img>
|
||||
<img src="https://i.imgur.com/yjwjfT8.png" width="23%" title="FileBazaar screenshot - download"></img>
|
||||
|
||||
## Quickstart
|
||||
|
||||
|
@ -23,10 +19,10 @@ Setup [Lightning Charge](https://github.com/ElementsProject/lightning-charge), t
|
|||
|
||||
```bash
|
||||
# Install dependencies for EXIF extraction and preview generation
|
||||
$ apt install exiftool ffmpeg graphicsmagick unoconv
|
||||
$ apt-get install exiftool ffmpeg graphicsmagick unoconv
|
||||
|
||||
# Install dependencies for node-canvas (see https://github.com/Automattic/node-canvas#installation)
|
||||
$ apt install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++
|
||||
# node-canvas dependencies, see https://github.com/Automattic/node-canvas#installation
|
||||
$ apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++
|
||||
|
||||
# Install filebazaar
|
||||
$ npm install -g filebazaar
|
||||
|
@ -34,10 +30,10 @@ $ npm install -g filebazaar
|
|||
# Prepare a directory with the files you wish to sell and cd to it
|
||||
$ mkdir ~/ForSale && cd ~/ForSale
|
||||
|
||||
# Initialize the `_filebazaar.yaml` config file
|
||||
# Initialize the `_filebazaar.yaml` config file (generates a random `token_secret`)
|
||||
$ filebazaar init
|
||||
|
||||
# Edit the config file (`charge_token` is required, `token_secret` is auto-generated)
|
||||
# Edit the config file (`charge_token` is the only required option)
|
||||
$ edit _filebazaar.yaml
|
||||
|
||||
# Start filebazaar!
|
||||
|
@ -47,8 +43,8 @@ $ filebazaar
|
|||
## Configuration
|
||||
|
||||
FileBazaar's configuration options can be managed using the `_filebazaar.yaml` file or via environment variables.
|
||||
All config options are optional and have sane defaults except for `charge_token` and `token_secret`, which are required.
|
||||
See [`lib/config.js`](https://github.com/elementsproject/filebazaar/blob/master/src/lib/config.js) for more details.
|
||||
All config options are optional and have sane defaults, except for `charge_token` and `token_secret` which are required.
|
||||
See [`lib/config.js`](https://github.com/shesek/filebazaar/blob/master/lib/config.js) for more details.
|
||||
|
||||
Below is an example `_filebazaar.yaml` file:
|
||||
|
||||
|
@ -126,21 +122,15 @@ files:
|
|||
|
||||
## CLI
|
||||
|
||||
#### Initializing `_filebazaar.yaml`
|
||||
You can use `$ filebazaar init [directory]` to initialize a new `_filebazaar.yaml` config file. A random `token_secret` will be added for you. If no `[directory]` is specified, the file will be created in the working directory.
|
||||
|
||||
You can use `$ filebazaar init [directory]` to initialize a new `_filebazaar.yaml` config file.
|
||||
A random `token_secret` will be added for you. If no `[directory]` is specified, the file will be created in the working directory.
|
||||
|
||||
#### Running FileBazaar
|
||||
|
||||
To start FileBazaar, run `$ filebazaar [path]`. You can either specify the path to the files directory or to the `_filebazaar.yaml` file.
|
||||
If no `[path]` is specified, defaults to the working directory.
|
||||
To start FileBazaar, run `$ filebazaar [path]`. You can either specify the path to the files directory or to the `_filebazaar.yaml` file. If none is specified, defaults to the working directory.
|
||||
|
||||
## File Preview
|
||||
|
||||
FileBazaar can currently generate previews for the following file types:
|
||||
|
||||
- Images: a preview image will be generated by pixelating the left half of the image and adding watermark text using [node-canvas](https://github.com/Automattic/node-canvas) and [graphicsmagick](http://www.graphicsmagick.org) (see [example image](https://i.imgur.com/OmrUysL.png)).
|
||||
- Images: a preview image will be generated by pixelating the left-half and adding watermark text using [node-canvas](https://github.com/Automattic/node-canvas) and [graphicsmagick](http://www.graphicsmagick.org) (see [example image](https://i.imgur.com/OmrUysL.png)).
|
||||
|
||||
- Videos & audio: a preview will be generated by slicing off the first 30 seconds using [ffmpeg](http://ffmpeg.org).
|
||||
|
||||
|
|
|
@ -1,28 +1,15 @@
|
|||
{
|
||||
"name": "filebazaar",
|
||||
"version": "0.2.3",
|
||||
"version": "0.2.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/babel-types": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.1.tgz",
|
||||
"integrity": "sha512-EkcOk09rjhivbovP8WreGRbXW20YRfe/qdgXOGq3it3u3aAOWDRNsQhL/XPAWFF7zhZZ+uR+nT+3b+TCkIap1w=="
|
||||
},
|
||||
"@types/babylon": {
|
||||
"version": "6.16.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz",
|
||||
"integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==",
|
||||
"requires": {
|
||||
"@types/babel-types": "7.0.1"
|
||||
}
|
||||
},
|
||||
"accepts": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
|
||||
"integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
|
||||
"requires": {
|
||||
"mime-types": "2.1.18",
|
||||
"mime-types": "2.1.17",
|
||||
"negotiator": "0.6.1"
|
||||
}
|
||||
},
|
||||
|
@ -32,9 +19,9 @@
|
|||
"integrity": "sha1-h91BA+/39EYPHhhvXGd+1s9WaIM="
|
||||
},
|
||||
"acorn": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
|
||||
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
|
||||
"version": "4.0.13",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
|
||||
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
|
||||
},
|
||||
"acorn-globals": {
|
||||
"version": "3.1.0",
|
||||
|
@ -42,13 +29,6 @@
|
|||
"integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
|
||||
"requires": {
|
||||
"acorn": "4.0.13"
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "4.0.13",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
|
||||
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
|
||||
}
|
||||
}
|
||||
},
|
||||
"align-text": {
|
||||
|
@ -64,8 +44,7 @@
|
|||
"amdefine": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
|
@ -91,9 +70,9 @@
|
|||
}
|
||||
},
|
||||
"argparse": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
|
||||
"integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
|
||||
"requires": {
|
||||
"sprintf-js": "1.0.3"
|
||||
}
|
||||
|
@ -824,6 +803,7 @@
|
|||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
|
||||
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-runtime": "6.26.0",
|
||||
"esutils": "2.0.2",
|
||||
|
@ -834,7 +814,8 @@
|
|||
"babylon": {
|
||||
"version": "6.18.0",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
|
||||
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
|
||||
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
|
||||
"dev": true
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
|
@ -871,22 +852,22 @@
|
|||
"on-finished": "2.3.0",
|
||||
"qs": "6.5.1",
|
||||
"raw-body": "2.3.2",
|
||||
"type-is": "1.6.16"
|
||||
"type-is": "1.6.15"
|
||||
}
|
||||
},
|
||||
"bootstrap": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz",
|
||||
"integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA=="
|
||||
"version": "4.0.0-beta.2",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-beta.2.tgz",
|
||||
"integrity": "sha512-DzGtdTlKbrMoGMpz0LigKSqJ+MgtFKxA791PU/q062OlRG0HybNZcTLH7rpDAmLS66Y3esN9yzKHLLbqa5UR3w=="
|
||||
},
|
||||
"bootswatch": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-4.0.0.tgz",
|
||||
"integrity": "sha1-38qwKMA8CaWIiNN9fOn2yMM0mMw=",
|
||||
"version": "4.0.0-beta.2",
|
||||
"resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-4.0.0-beta.2.tgz",
|
||||
"integrity": "sha1-6KKUf9iCuDnLGMuOm7KtaCtPJxA=",
|
||||
"requires": {
|
||||
"bootstrap": "4.0.0",
|
||||
"jquery": "3.3.1",
|
||||
"popper.js": "1.14.1"
|
||||
"bootstrap": "4.0.0-beta.2",
|
||||
"jquery": "3.2.1",
|
||||
"popper.js": "1.12.9"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
|
@ -994,11 +975,30 @@
|
|||
}
|
||||
},
|
||||
"clean-css": {
|
||||
"version": "4.1.11",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
|
||||
"integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
|
||||
"version": "3.4.28",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
|
||||
"integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
|
||||
"requires": {
|
||||
"source-map": "0.5.7"
|
||||
"commander": "2.8.1",
|
||||
"source-map": "0.4.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
|
||||
"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
|
||||
"requires": {
|
||||
"graceful-readlink": "1.0.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
|
||||
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
|
||||
"requires": {
|
||||
"amdefine": "1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"cliui": {
|
||||
|
@ -1037,14 +1037,19 @@
|
|||
"dev": true
|
||||
},
|
||||
"constantinople": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
|
||||
"integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz",
|
||||
"integrity": "sha1-dWnKqKo/jVk11i4fqW+fcCzYHHk=",
|
||||
"requires": {
|
||||
"@types/babel-types": "7.0.1",
|
||||
"@types/babylon": "6.16.2",
|
||||
"babel-types": "6.26.0",
|
||||
"babylon": "6.18.0"
|
||||
"acorn": "3.3.0",
|
||||
"is-expression": "2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
|
||||
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
|
||||
}
|
||||
}
|
||||
},
|
||||
"content-disposition": {
|
||||
|
@ -1145,9 +1150,9 @@
|
|||
}
|
||||
},
|
||||
"currency-formatter": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/currency-formatter/-/currency-formatter-1.4.2.tgz",
|
||||
"integrity": "sha512-rQ5HB3DenCZwfVPdpVTuVcAORodVO0VoqIbjhdUSuy0sE2b9jBdCaVKbA355NUc2KhPbu5ojHs3WypuEwPLfNg==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/currency-formatter/-/currency-formatter-1.3.1.tgz",
|
||||
"integrity": "sha1-0v4wkuqdn7gfaT4PxpfMp8lH2es=",
|
||||
"requires": {
|
||||
"accounting": "0.4.1",
|
||||
"locale-currency": "0.0.1",
|
||||
|
@ -1208,9 +1213,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
|
||||
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
|
||||
},
|
||||
"entities": {
|
||||
"version": "1.1.1",
|
||||
|
@ -1236,7 +1241,8 @@
|
|||
"esutils": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
|
||||
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
|
||||
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
|
||||
"dev": true
|
||||
},
|
||||
"etag": {
|
||||
"version": "1.8.1",
|
||||
|
@ -1272,11 +1278,11 @@
|
|||
}
|
||||
},
|
||||
"express": {
|
||||
"version": "4.16.3",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
||||
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
||||
"version": "4.16.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
|
||||
"integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
|
||||
"requires": {
|
||||
"accepts": "1.3.5",
|
||||
"accepts": "1.3.4",
|
||||
"array-flatten": "1.1.1",
|
||||
"body-parser": "1.18.2",
|
||||
"content-disposition": "0.5.2",
|
||||
|
@ -1284,40 +1290,28 @@
|
|||
"cookie": "0.3.1",
|
||||
"cookie-signature": "1.0.6",
|
||||
"debug": "2.6.9",
|
||||
"depd": "1.1.2",
|
||||
"encodeurl": "1.0.2",
|
||||
"depd": "1.1.1",
|
||||
"encodeurl": "1.0.1",
|
||||
"escape-html": "1.0.3",
|
||||
"etag": "1.8.1",
|
||||
"finalhandler": "1.1.1",
|
||||
"finalhandler": "1.1.0",
|
||||
"fresh": "0.5.2",
|
||||
"merge-descriptors": "1.0.1",
|
||||
"methods": "1.1.2",
|
||||
"on-finished": "2.3.0",
|
||||
"parseurl": "1.3.2",
|
||||
"path-to-regexp": "0.1.7",
|
||||
"proxy-addr": "2.0.3",
|
||||
"proxy-addr": "2.0.2",
|
||||
"qs": "6.5.1",
|
||||
"range-parser": "1.2.0",
|
||||
"safe-buffer": "5.1.1",
|
||||
"send": "0.16.2",
|
||||
"serve-static": "1.13.2",
|
||||
"send": "0.16.1",
|
||||
"serve-static": "1.13.1",
|
||||
"setprototypeof": "1.1.0",
|
||||
"statuses": "1.4.0",
|
||||
"type-is": "1.6.16",
|
||||
"statuses": "1.3.1",
|
||||
"type-is": "1.6.15",
|
||||
"utils-merge": "1.0.1",
|
||||
"vary": "1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
|
@ -1336,14 +1330,14 @@
|
|||
}
|
||||
},
|
||||
"file-extension": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/file-extension/-/file-extension-4.0.2.tgz",
|
||||
"integrity": "sha512-J6iOYob7wnONbiYJ8eP9vku0VXqsVKzGhyrXtXbDP8aMcNABluorelDBFKpX8DgVsq5WKwhFwa4G2ZVcvyWYCw=="
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-extension/-/file-extension-4.0.1.tgz",
|
||||
"integrity": "sha512-6YLhv9tYlvzUcYzKhKWjOM1/3MFABj/TaAglgyKk7s7CSKB0Y51pdgpjV3YmowEMNpUOVCxCfblMsFyjldFnNg=="
|
||||
},
|
||||
"file-type": {
|
||||
"version": "7.6.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-7.6.0.tgz",
|
||||
"integrity": "sha512-EAogdjMKf0PEU26Wk+N/Qkg8JXpMRo9t70dg7+t9QvcYUZb/XfA66Hdt15g4xRdam4wgiQsg/qycKUIuZQDJog=="
|
||||
"version": "7.4.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-7.4.0.tgz",
|
||||
"integrity": "sha1-KnyU9ioAMBULt9m2xwz6HT51nIY="
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.1",
|
||||
|
@ -1367,32 +1361,17 @@
|
|||
}
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
|
||||
"integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "1.0.2",
|
||||
"encodeurl": "1.0.1",
|
||||
"escape-html": "1.0.3",
|
||||
"on-finished": "2.3.0",
|
||||
"parseurl": "1.3.2",
|
||||
"statuses": "1.4.0",
|
||||
"statuses": "1.3.1",
|
||||
"unpipe": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"statuses": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"fmtbtc": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fmtbtc/-/fmtbtc-0.0.3.tgz",
|
||||
"integrity": "sha512-3awolswh6476ce5gIvzjw6OgT7ae2WD5NSinOC/de8gLeaDQPdYlW94Hb6nCoTXMUP6AFe3eh3IQiuT+dp4c8A==",
|
||||
"requires": {
|
||||
"move-decimal-point": "0.0.4"
|
||||
}
|
||||
},
|
||||
"for-in": {
|
||||
|
@ -1419,7 +1398,7 @@
|
|||
"requires": {
|
||||
"asynckit": "0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"mime-types": "2.1.18"
|
||||
"mime-types": "2.1.17"
|
||||
}
|
||||
},
|
||||
"formidable": {
|
||||
|
@ -2409,23 +2388,28 @@
|
|||
"dev": true
|
||||
},
|
||||
"gm": {
|
||||
"version": "1.23.1",
|
||||
"resolved": "https://registry.npmjs.org/gm/-/gm-1.23.1.tgz",
|
||||
"integrity": "sha1-Lt7rlYCE0PjqeYjl2ZWxx9/BR3c=",
|
||||
"version": "1.23.0",
|
||||
"resolved": "https://registry.npmjs.org/gm/-/gm-1.23.0.tgz",
|
||||
"integrity": "sha1-gKL+nL8TFRUCSEZERlhGEmn1JmE=",
|
||||
"requires": {
|
||||
"array-parallel": "0.1.3",
|
||||
"array-series": "0.1.5",
|
||||
"cross-spawn": "4.0.2",
|
||||
"debug": "3.1.0"
|
||||
"debug": "2.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
"ms": "0.7.1"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2434,6 +2418,11 @@
|
|||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
||||
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
|
||||
},
|
||||
"graceful-readlink": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
||||
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
|
||||
|
@ -2509,9 +2498,9 @@
|
|||
}
|
||||
},
|
||||
"ipaddr.js": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
|
||||
"integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs="
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
|
||||
"integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
|
||||
},
|
||||
"is-binary-path": {
|
||||
"version": "1.0.1",
|
||||
|
@ -2546,18 +2535,18 @@
|
|||
}
|
||||
},
|
||||
"is-expression": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
|
||||
"integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-2.1.0.tgz",
|
||||
"integrity": "sha1-kb6dR968/vB3l36XIr5tz7RGXvA=",
|
||||
"requires": {
|
||||
"acorn": "4.0.13",
|
||||
"acorn": "3.3.0",
|
||||
"object-assign": "4.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "4.0.13",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
|
||||
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
|
||||
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2650,9 +2639,9 @@
|
|||
}
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
|
||||
"integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz",
|
||||
"integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c="
|
||||
},
|
||||
"js-stringify": {
|
||||
"version": "1.0.2",
|
||||
|
@ -2666,11 +2655,11 @@
|
|||
"dev": true
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.11.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
|
||||
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
|
||||
"version": "3.10.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
|
||||
"integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
|
||||
"requires": {
|
||||
"argparse": "1.0.10",
|
||||
"argparse": "1.0.9",
|
||||
"esprima": "4.0.0"
|
||||
}
|
||||
},
|
||||
|
@ -2708,7 +2697,7 @@
|
|||
"resolved": "https://registry.npmjs.org/jstransformer-markdown-it/-/jstransformer-markdown-it-2.0.0.tgz",
|
||||
"integrity": "sha1-i0Su28lGXck10oC+kDObZxwWzrg=",
|
||||
"requires": {
|
||||
"markdown-it": "8.4.1"
|
||||
"markdown-it": "8.4.0"
|
||||
}
|
||||
},
|
||||
"kind-of": {
|
||||
|
@ -2739,7 +2728,7 @@
|
|||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
|
||||
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
|
||||
"requires": {
|
||||
"uc.micro": "1.0.5"
|
||||
"uc.micro": "1.0.3"
|
||||
}
|
||||
},
|
||||
"locale-currency": {
|
||||
|
@ -2750,7 +2739,8 @@
|
|||
"lodash": {
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
||||
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
|
||||
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
||||
"dev": true
|
||||
},
|
||||
"longest": {
|
||||
"version": "1.0.1",
|
||||
|
@ -2782,15 +2772,15 @@
|
|||
}
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "8.4.1",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.1.tgz",
|
||||
"integrity": "sha512-CzzqSSNkFRUf9vlWvhK1awpJreMRqdCrBvZ8DIoDWTOkESMIF741UPAhuAmbyWmdiFPA6WARNhnu2M6Nrhwa+A==",
|
||||
"version": "8.4.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.0.tgz",
|
||||
"integrity": "sha512-tNuOCCfunY5v5uhcO2AUMArvKAyKMygX8tfup/JrgnsDqcCATQsAExBq7o5Ml9iMmO82bk6jYNLj6khcrl0JGA==",
|
||||
"requires": {
|
||||
"argparse": "1.0.10",
|
||||
"argparse": "1.0.9",
|
||||
"entities": "1.1.1",
|
||||
"linkify-it": "2.0.3",
|
||||
"mdurl": "1.0.1",
|
||||
"uc.micro": "1.0.5"
|
||||
"uc.micro": "1.0.3"
|
||||
}
|
||||
},
|
||||
"mdurl": {
|
||||
|
@ -2841,16 +2831,16 @@
|
|||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
|
||||
"integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
|
||||
"version": "1.30.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
|
||||
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.18",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
|
||||
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
||||
"version": "2.1.17",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
|
||||
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
|
||||
"requires": {
|
||||
"mime-db": "1.33.0"
|
||||
"mime-db": "1.30.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
|
@ -3035,9 +3025,9 @@
|
|||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
|
||||
},
|
||||
"popper.js": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.1.tgz",
|
||||
"integrity": "sha1-uIFeXNpvYvwgQuR2GGSfdYZuZ1M="
|
||||
"version": "1.12.9",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz",
|
||||
"integrity": "sha1-DfvC3/lsRRuzMu3Pz6r1ZtMx1bM="
|
||||
},
|
||||
"preserve": {
|
||||
"version": "0.2.0",
|
||||
|
@ -3071,12 +3061,12 @@
|
|||
}
|
||||
},
|
||||
"proxy-addr": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
|
||||
"integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
|
||||
"integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
|
||||
"requires": {
|
||||
"forwarded": "0.1.2",
|
||||
"ipaddr.js": "1.6.0"
|
||||
"ipaddr.js": "1.5.2"
|
||||
}
|
||||
},
|
||||
"pseudomap": {
|
||||
|
@ -3085,41 +3075,41 @@
|
|||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
|
||||
},
|
||||
"pug": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz",
|
||||
"integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=",
|
||||
"version": "2.0.0-rc.4",
|
||||
"resolved": "https://registry.npmjs.org/pug/-/pug-2.0.0-rc.4.tgz",
|
||||
"integrity": "sha512-SL7xovj6E2Loq9N0UgV6ynjMLW4urTFY/L/Fprhvz13Xc5vjzkjZjI1QHKq31200+6PSD8PyU6MqrtCTJj6/XA==",
|
||||
"requires": {
|
||||
"pug-code-gen": "2.0.1",
|
||||
"pug-filters": "3.1.0",
|
||||
"pug-lexer": "4.0.0",
|
||||
"pug-linker": "3.0.5",
|
||||
"pug-load": "2.0.11",
|
||||
"pug-parser": "5.0.0",
|
||||
"pug-runtime": "2.0.4",
|
||||
"pug-strip-comments": "1.0.3"
|
||||
"pug-code-gen": "2.0.0",
|
||||
"pug-filters": "2.1.5",
|
||||
"pug-lexer": "3.1.0",
|
||||
"pug-linker": "3.0.3",
|
||||
"pug-load": "2.0.9",
|
||||
"pug-parser": "4.0.0",
|
||||
"pug-runtime": "2.0.3",
|
||||
"pug-strip-comments": "1.0.2"
|
||||
}
|
||||
},
|
||||
"pug-attrs": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz",
|
||||
"integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.2.tgz",
|
||||
"integrity": "sha1-i+KyIlVo/6ddG4Zpgr/59BEa/8s=",
|
||||
"requires": {
|
||||
"constantinople": "3.1.2",
|
||||
"constantinople": "3.1.0",
|
||||
"js-stringify": "1.0.2",
|
||||
"pug-runtime": "2.0.4"
|
||||
"pug-runtime": "2.0.3"
|
||||
}
|
||||
},
|
||||
"pug-code-gen": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz",
|
||||
"integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.0.tgz",
|
||||
"integrity": "sha512-E4oiJT+Jn5tyEIloj8dIJQognbiNNp0i0cAJmYtQTFS0soJ917nlIuFtqVss3IXMEyQKUew3F4gIkBpn18KbVg==",
|
||||
"requires": {
|
||||
"constantinople": "3.1.2",
|
||||
"constantinople": "3.1.0",
|
||||
"doctypes": "1.1.0",
|
||||
"js-stringify": "1.0.2",
|
||||
"pug-attrs": "2.0.3",
|
||||
"pug-attrs": "2.0.2",
|
||||
"pug-error": "1.3.2",
|
||||
"pug-runtime": "2.0.4",
|
||||
"pug-runtime": "2.0.3",
|
||||
"void-elements": "2.0.1",
|
||||
"with": "5.1.1"
|
||||
}
|
||||
|
@ -3130,73 +3120,84 @@
|
|||
"integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY="
|
||||
},
|
||||
"pug-filters": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz",
|
||||
"integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=",
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-2.1.5.tgz",
|
||||
"integrity": "sha512-xkw71KtrC4sxleKiq+cUlQzsiLn8pM5+vCgkChW2E6oNOzaqTSIBKIQ5cl4oheuDzvJYCTSYzRaVinMUrV4YLQ==",
|
||||
"requires": {
|
||||
"clean-css": "4.1.11",
|
||||
"constantinople": "3.1.2",
|
||||
"clean-css": "3.4.28",
|
||||
"constantinople": "3.1.0",
|
||||
"jstransformer": "1.0.0",
|
||||
"pug-error": "1.3.2",
|
||||
"pug-walk": "1.1.7",
|
||||
"resolve": "1.6.0",
|
||||
"pug-walk": "1.1.5",
|
||||
"resolve": "1.5.0",
|
||||
"uglify-js": "2.8.29"
|
||||
}
|
||||
},
|
||||
"pug-lexer": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz",
|
||||
"integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-3.1.0.tgz",
|
||||
"integrity": "sha1-/QhzdtSmdbT1n4/vQiiDQ06VgaI=",
|
||||
"requires": {
|
||||
"character-parser": "2.2.0",
|
||||
"is-expression": "3.0.0",
|
||||
"pug-error": "1.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-expression": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
|
||||
"integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
|
||||
"requires": {
|
||||
"acorn": "4.0.13",
|
||||
"object-assign": "4.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"pug-linker": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz",
|
||||
"integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.3.tgz",
|
||||
"integrity": "sha512-DCKczglCXOzJ1lr4xUj/lVHYvS+lGmR2+KTCjZjtIpdwaN7lNOoX2SW6KFX5X4ElvW+6ThwB+acSUg08UJFN5A==",
|
||||
"requires": {
|
||||
"pug-error": "1.3.2",
|
||||
"pug-walk": "1.1.7"
|
||||
"pug-walk": "1.1.5"
|
||||
}
|
||||
},
|
||||
"pug-load": {
|
||||
"version": "2.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz",
|
||||
"integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=",
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.9.tgz",
|
||||
"integrity": "sha512-BDdZOCru4mg+1MiZwRQZh25+NTRo/R6/qArrdWIf308rHtWA5N9kpoUskRe4H6FslaQujC+DigH9LqlBA4gf6Q==",
|
||||
"requires": {
|
||||
"object-assign": "4.1.1",
|
||||
"pug-walk": "1.1.7"
|
||||
"pug-walk": "1.1.5"
|
||||
}
|
||||
},
|
||||
"pug-parser": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz",
|
||||
"integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-4.0.0.tgz",
|
||||
"integrity": "sha512-ocEUFPdLG9awwFj0sqi1uiZLNvfoodCMULZzkRqILryIWc/UUlDlxqrKhKjAIIGPX/1SNsvxy63+ayEGocGhQg==",
|
||||
"requires": {
|
||||
"pug-error": "1.3.2",
|
||||
"token-stream": "0.0.1"
|
||||
}
|
||||
},
|
||||
"pug-runtime": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz",
|
||||
"integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g="
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.3.tgz",
|
||||
"integrity": "sha1-mBYmB7D86eJU1CfzOYelrucWi9o="
|
||||
},
|
||||
"pug-strip-comments": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz",
|
||||
"integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.2.tgz",
|
||||
"integrity": "sha1-0xOvoBvMN0mA4TmeI+vy65vchRM=",
|
||||
"requires": {
|
||||
"pug-error": "1.3.2"
|
||||
}
|
||||
},
|
||||
"pug-walk": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz",
|
||||
"integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM="
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.5.tgz",
|
||||
"integrity": "sha512-rJlH1lXerCIAtImXBze3dtKq/ykZMA4rpO9FnPcIgsWcxZLOvd8zltaoeOVFyBSSqCkhhJWbEbTMga8UxWUUSA=="
|
||||
},
|
||||
"qruri": {
|
||||
"version": "0.0.3",
|
||||
|
@ -3416,9 +3417,9 @@
|
|||
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz",
|
||||
"integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==",
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
|
||||
"integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
|
||||
"requires": {
|
||||
"path-parse": "1.0.5"
|
||||
}
|
||||
|
@ -3454,14 +3455,14 @@
|
|||
"dev": true
|
||||
},
|
||||
"send": {
|
||||
"version": "0.16.2",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
||||
"version": "0.16.1",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
|
||||
"integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"depd": "1.1.2",
|
||||
"depd": "1.1.1",
|
||||
"destroy": "1.0.4",
|
||||
"encodeurl": "1.0.2",
|
||||
"encodeurl": "1.0.1",
|
||||
"escape-html": "1.0.3",
|
||||
"etag": "1.8.1",
|
||||
"fresh": "0.5.2",
|
||||
|
@ -3470,30 +3471,18 @@
|
|||
"ms": "2.0.0",
|
||||
"on-finished": "2.3.0",
|
||||
"range-parser": "1.2.0",
|
||||
"statuses": "1.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
}
|
||||
"statuses": "1.3.1"
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
||||
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
||||
"version": "1.13.1",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
|
||||
"integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
|
||||
"requires": {
|
||||
"encodeurl": "1.0.2",
|
||||
"encodeurl": "1.0.1",
|
||||
"escape-html": "1.0.3",
|
||||
"parseurl": "1.3.2",
|
||||
"send": "0.16.2"
|
||||
"send": "0.16.1"
|
||||
}
|
||||
},
|
||||
"set-immediate-shim": {
|
||||
|
@ -3651,7 +3640,8 @@
|
|||
"to-fast-properties": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
|
||||
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
|
||||
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
|
||||
"dev": true
|
||||
},
|
||||
"token-stream": {
|
||||
"version": "0.0.1",
|
||||
|
@ -3670,18 +3660,18 @@
|
|||
"integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc="
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.16",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
|
||||
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
||||
"version": "1.6.15",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
|
||||
"integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
|
||||
"requires": {
|
||||
"media-typer": "0.3.0",
|
||||
"mime-types": "2.1.18"
|
||||
"mime-types": "2.1.17"
|
||||
}
|
||||
},
|
||||
"uc.micro": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
|
||||
"integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg=="
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz",
|
||||
"integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI="
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.8.29",
|
||||
|
@ -3781,6 +3771,13 @@
|
|||
"requires": {
|
||||
"acorn": "3.3.0",
|
||||
"acorn-globals": "3.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
|
||||
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
|
||||
}
|
||||
}
|
||||
},
|
||||
"wordwrap": {
|
||||
|
|
26
package.json
26
package.json
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "filebazaar",
|
||||
"version": "0.2.3",
|
||||
"version": "0.2.2",
|
||||
"description": "",
|
||||
"scripts": {
|
||||
"start": "./start.sh",
|
||||
|
@ -10,7 +10,7 @@
|
|||
"bin": "dist/cli.js",
|
||||
"author": "Nadav Ivgi",
|
||||
"license": "MIT",
|
||||
"repository": "https://github.com/elementsproject/filebazaar.git",
|
||||
"repository": "https://github.com/shesek/filebazaar.git",
|
||||
"keywords": [
|
||||
"bitcoin",
|
||||
"lightning",
|
||||
|
@ -19,25 +19,25 @@
|
|||
],
|
||||
"dependencies": {
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"bootswatch": "^4.0.0",
|
||||
"bootswatch": "^4.0.0-beta.2",
|
||||
"cookie-parser": "^1.4.3",
|
||||
"csurf": "^1.9.0",
|
||||
"currency-formatter": "^1.4.2",
|
||||
"express": "^4.16.3",
|
||||
"file-extension": "^4.0.2",
|
||||
"file-type": "^7.6.0",
|
||||
"fmtbtc": "0.0.3",
|
||||
"currency-formatter": "^1.3.1",
|
||||
"express": "^4.16.2",
|
||||
"file-extension": "^4.0.1",
|
||||
"file-type": "^7.4.0",
|
||||
"fs-extra": "^5.0.0",
|
||||
"gm": "^1.23.1",
|
||||
"js-yaml": "^3.11.0",
|
||||
"gm": "^1.23.0",
|
||||
"js-yaml": "^3.10.0",
|
||||
"jstransformer-markdown-it": "^2.0.0",
|
||||
"lightning-charge-client": "^0.1.7",
|
||||
"lru-memoize": "github:neilk/lru-memoize",
|
||||
"markdown-it": "^8.4.1",
|
||||
"mime-types": "^2.1.18",
|
||||
"markdown-it": "^8.4.0",
|
||||
"mime-types": "^2.1.17",
|
||||
"morgan": "^1.9.0",
|
||||
"move-decimal-point": "0.0.4",
|
||||
"pretty-bytes": "^4.0.2",
|
||||
"pug": "^2.0.3",
|
||||
"pug": "^2.0.0-rc.4",
|
||||
"qruri": "0.0.3",
|
||||
"read-chunk": "^2.1.0"
|
||||
},
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import { msat2milli } from 'fmtbtc'
|
||||
import { pwrap, pick, fcurrency, pngPixel } from './lib/util'
|
||||
import { pwrap, pick, fcurrency, fmsat, pngPixel } from './lib/util'
|
||||
|
||||
// Setup
|
||||
const app = require('express')()
|
||||
|
@ -24,7 +23,7 @@ app.enable('case sensitive routing')
|
|||
|
||||
// View locals
|
||||
Object.assign(app.locals, {
|
||||
conf, msat2milli, fcurrency
|
||||
conf, fmsat, fcurrency
|
||||
, prettybytes: require('pretty-bytes')
|
||||
, markdown: require('markdown-it')()
|
||||
, qruri: require('qruri')
|
||||
|
|
|
@ -41,7 +41,7 @@ module.exports = basePath => {
|
|||
const parsePrice = str => {
|
||||
const m = str.match(/^([\d.]+) ([a-z]+)$/i)
|
||||
if (!m) throw new Error(`invalid price: ${ str }`)
|
||||
return { amount: m[1], currency: m[2].toUpperCase() }
|
||||
return { amount: m[1], currency: m[2] }
|
||||
}
|
||||
|
||||
const parseFiles = (files, prefix='') =>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { execFile } from 'child_process'
|
||||
import { btc2milli } from 'fmtbtc'
|
||||
import CurrencyF from 'currency-formatter'
|
||||
import { execFile } from 'child_process'
|
||||
import moveDec from 'move-decimal-point'
|
||||
import CurrencyF from 'currency-formatter'
|
||||
|
||||
// Promise wrapper for express handler functions
|
||||
const pwrap = fn => (req, res, next, ...a) =>
|
||||
|
@ -14,12 +14,13 @@ const exec = (cmd, ...args) => new Promise((resolve, reject) =>
|
|||
// Pick specified object properties
|
||||
const pick = (O, ...K) => K.reduce((o, k) => (o[k]=O[k], o), {})
|
||||
|
||||
// Format milli-satoshis as milli-bitcoins
|
||||
const fmsat = msat => moveDec(msat, -8)
|
||||
|
||||
// Format price with currency symbol
|
||||
//
|
||||
const fcurrency = p => p.currency === 'BTC' ? `${btc2milli(p.amount, true)} mBTC`
|
||||
: CurrencyF.format(p.amount, { code: p.currency })
|
||||
const fcurrency = p => CurrencyF.format(p.amount, { code: p.currency.toUpperCase() })
|
||||
|
||||
// Empty 1x1 PNG pixel
|
||||
const pngPixel = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=', 'base64')
|
||||
|
||||
module.exports = { pwrap, exec, pick, fcurrency, pngPixel }
|
||||
module.exports = { pwrap, exec, pick, fmsat, fcurrency, pngPixel }
|
||||
|
|
|
@ -7,10 +7,7 @@ if invoice.status == 'expired'
|
|||
else
|
||||
.checkout
|
||||
h3 Pay with Lightning
|
||||
if invoice.quoted_currency && invoice.quoted_currency != 'BTC'
|
||||
h4 #[strong= invoice.quoted_amount] #{invoice.quoted_currency} ≈ #[strong= msat2milli(invoice.msatoshi)] mBTC
|
||||
else
|
||||
h4 #[strong= msat2milli(invoice.msatoshi)] mBTC
|
||||
h4 #[strong= invoice.quoted_amount] #{invoice.quoted_currency } = #[strong= fmsat(invoice.msatoshi)] mBTC
|
||||
.row
|
||||
.pay.col-sm-8
|
||||
pre= invoice.payreq
|
||||
|
|
Loading…
Reference in New Issue