128 lines
3.3 KiB
Markdown
128 lines
3.3 KiB
Markdown
# base64url [![Build Status](https://secure.travis-ci.org/brianloveswords/base64url.png)](http://travis-ci.org/brianloveswords/base64url)
|
||
|
||
Converting to, and from, [base64url](http://en.wikipedia.org/wiki/Base64#RFC_4648)
|
||
|
||
# Install
|
||
|
||
```bash
|
||
$ npm install base64url
|
||
```
|
||
|
||
After installing with `npm` you can require this library from JavaScript or TypeScript:
|
||
|
||
JavaScript
|
||
```js
|
||
const base64url = require('base64url');
|
||
```
|
||
|
||
TypeScript:
|
||
```typescript
|
||
import base64url from "base64url";
|
||
```
|
||
|
||
# Usage
|
||
|
||
## CLI
|
||
|
||
The CLI has been removed. For the time being, please install `base64url@1.0.6` if you need the CLI.
|
||
|
||
## Library
|
||
|
||
### base64url(input: string | Buffer, encoding: string = "utf8"): string
|
||
|
||
### base64url.encode(input: string | Buffer, encoding: string = "utf8"): string
|
||
|
||
base64url encode `input`. Input should be a `string` or a `Buffer`.
|
||
|
||
|
||
Example
|
||
|
||
```js
|
||
> base64url("ladies and gentlemen we are floating in space")
|
||
'bGFkaWVzIGFuZCBnZW50bGVtYW4sIHdlIGFyZSBmbG9hdGluZyBpbiBzcGFjZQ'
|
||
```
|
||
|
||
---
|
||
|
||
### base64url.decode(input: string, encoding: string = "utf8"): string
|
||
|
||
Convert a base64url encoded string into a raw string. The `encoding` argument can be used if the input is a string that's not utf8.
|
||
|
||
```js
|
||
> base64url.decode("cmlkZTogZHJlYW1zIGJ1cm4gZG93bg")
|
||
'ride: dreams burn down'
|
||
```
|
||
|
||
---
|
||
|
||
### base64url.fromBase64(input: string): string
|
||
|
||
Convert a base64 encoded string to a base64url encoded string.
|
||
|
||
Example
|
||
|
||
```js
|
||
> base64url.fromBase64('qL8R4QIcQ/ZsRqOAbeRfcZhilN/MksRtDaErMA==')
|
||
'qL8R4QIcQ_ZsRqOAbeRfcZhilN_MksRtDaErMA'
|
||
```
|
||
|
||
---
|
||
|
||
|
||
### base64url.toBase64(input: string): string
|
||
|
||
Convert a base64url encoded string to a base64 encoded string.
|
||
|
||
```js
|
||
> base64url.toBase64('qL8R4QIcQ_ZsRqOAbeRfcZhilN_MksRtDaErMA')
|
||
'qL8R4QIcQ/ZsRqOAbeRfcZhilN/MksRtDaErMA=='
|
||
```
|
||
|
||
---
|
||
|
||
|
||
### base64url.toBuffer(input: string): Buffer
|
||
|
||
Convert a base64url encoded string to a Buffer containing the decoded bytes.
|
||
|
||
```js
|
||
> base64url.toBuffer('c3Bpcml0dWFsaXplZA')
|
||
<Buffer 73 70 69 72 69 74 75 61 6c 69 7a 65 64>
|
||
```
|
||
|
||
# Alternatives
|
||
|
||
- [base64-url](https://github.com/joaquimserafim/base64-url)
|
||
|
||
# Supported Node.js versions
|
||
|
||
This library should be used with current versions of the Node.js runtime's long-term stable (LTS)
|
||
schedule. More information can be found [at the Node.js Release Working Group](https://github.com/nodejs/Release) repo.
|
||
|
||
# License
|
||
|
||
MIT
|
||
|
||
```
|
||
Copyright (c) 2013–2016 Brian J. Brennan
|
||
|
||
Permission is hereby granted, free of charge, to any person obtaining a
|
||
copy of this software and associated documentation files (the
|
||
"Software"), to deal in the Software without restriction, including
|
||
without limitation the rights to use, copy, modify, merge, publish,
|
||
distribute, sublicense, and/or sell copies of the Software, and to
|
||
permit persons to whom the Software is furnished to do so, subject to
|
||
the following conditions:
|
||
|
||
The above copyright notice and this permission notice shall be included
|
||
in all copies or substantial portions of the Software.
|
||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
```
|