parent
de61504ba6
commit
ed6ee63274
@ -0,0 +1,29 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="zh-CN"> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> |
||||
<title> |
||||
<%= htmlWebpackPlugin.options.title %> |
||||
</title> |
||||
<script> |
||||
console.log('=========') |
||||
document.addEventListener('DOMContentLoaded', function() { |
||||
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px' |
||||
}) |
||||
</script> |
||||
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.baseUrl %>static/index.css" /> |
||||
<link href="https://unpkg.com/video.js/dist/video-js.min.css" rel="stylesheet"> |
||||
<script src="https://unpkg.com/video.js/dist/video.min.js"></script> |
||||
<script src="https://cdn.bootcss.com/socket.io/2.1.1/socket.io.js"></script> |
||||
<script src="https://open.95516.com/s/open/js/upsdk.js"></script> |
||||
</head> |
||||
<body> |
||||
<noscript> |
||||
<strong>Please enable JavaScript to continue.</strong> |
||||
</noscript> |
||||
<div id="app"></div> |
||||
<!-- built files will be auto injected --> |
||||
</body> |
||||
</html> |
@ -0,0 +1,20 @@ |
||||
Copyright Mathias Bynens <https://mathiasbynens.be/> |
||||
|
||||
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. |
@ -0,0 +1,112 @@ |
||||
# base64 [![Build status](https://travis-ci.org/mathiasbynens/base64.svg?branch=master)](https://travis-ci.org/mathiasbynens/base64) [![Code coverage status](http://img.shields.io/coveralls/mathiasbynens/base64/master.svg)](https://coveralls.io/r/mathiasbynens/base64) |
||||
|
||||
_base64_ is a robust base64 encoder/decoder that is fully compatible with [`atob()` and `btoa()`](https://html.spec.whatwg.org/multipage/webappapis.html#atob), written in JavaScript. The base64-encoding and -decoding algorithms it uses are fully [RFC 4648](https://tools.ietf.org/html/rfc4648#section-4) compliant. |
||||
|
||||
## Installation |
||||
|
||||
Via [npm](https://www.npmjs.com/): |
||||
|
||||
```bash |
||||
npm install base-64 |
||||
``` |
||||
|
||||
In a browser: |
||||
|
||||
```html |
||||
<script src="base64.js"></script> |
||||
``` |
||||
|
||||
In [Narwhal](http://narwhaljs.org/), [Node.js](https://nodejs.org/), and [RingoJS](http://ringojs.org/): |
||||
|
||||
```js |
||||
var base64 = require('base-64'); |
||||
``` |
||||
|
||||
In [Rhino](http://www.mozilla.org/rhino/): |
||||
|
||||
```js |
||||
load('base64.js'); |
||||
``` |
||||
|
||||
Using an AMD loader like [RequireJS](http://requirejs.org/): |
||||
|
||||
```js |
||||
require( |
||||
{ |
||||
'paths': { |
||||
'base64': 'path/to/base64' |
||||
} |
||||
}, |
||||
['base64'], |
||||
function(base64) { |
||||
console.log(base64); |
||||
} |
||||
); |
||||
``` |
||||
|
||||
## API |
||||
|
||||
### `base64.version` |
||||
|
||||
A string representing the semantic version number. |
||||
|
||||
### `base64.encode(input)` |
||||
|
||||
This function takes a byte string (the `input` parameter) and encodes it according to base64. The input data must be in the form of a string containing only characters in the range from U+0000 to U+00FF, each representing a binary byte with values `0x00` to `0xFF`. The `base64.encode()` function is designed to be fully compatible with [`btoa()` as described in the HTML Standard](https://html.spec.whatwg.org/multipage/webappapis.html#dom-windowbase64-btoa). |
||||
|
||||
```js |
||||
var encodedData = base64.encode(input); |
||||
``` |
||||
|
||||
To base64-encode any Unicode string, [encode it as UTF-8 first](https://github.com/mathiasbynens/utf8.js#utf8encodestring): |
||||
|
||||
```js |
||||
var base64 = require('base-64'); |
||||
var utf8 = require('utf8'); |
||||
|
||||
var text = 'foo © bar 𝌆 baz'; |
||||
var bytes = utf8.encode(text); |
||||
var encoded = base64.encode(bytes); |
||||
console.log(encoded); |
||||
// → 'Zm9vIMKpIGJhciDwnYyGIGJheg==' |
||||
``` |
||||
|
||||
### `base64.decode(input)` |
||||
|
||||
This function takes a base64-encoded string (the `input` parameter) and decodes it. The return value is in the form of a string containing only characters in the range from U+0000 to U+00FF, each representing a binary byte with values `0x00` to `0xFF`. The `base64.decode()` function is designed to be fully compatible with [`atob()` as described in the HTML Standard](https://html.spec.whatwg.org/multipage/webappapis.html#dom-windowbase64-atob). |
||||
|
||||
```js |
||||
var decodedData = base64.decode(encodedData); |
||||
``` |
||||
|
||||
To base64-decode UTF-8-encoded data back into a Unicode string, [UTF-8-decode it](https://github.com/mathiasbynens/utf8.js#utf8decodebytestring) after base64-decoding it: |
||||
|
||||
```js |
||||
var encoded = 'Zm9vIMKpIGJhciDwnYyGIGJheg=='; |
||||
var bytes = base64.decode(encoded); |
||||
var text = utf8.decode(bytes); |
||||
console.log(text); |
||||
// → 'foo © bar 𝌆 baz' |
||||
``` |
||||
|
||||
## Support |
||||
|
||||
_base64_ is designed to work in at least Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, PhantomJS 1.9.0, Rhino 1.7RC4, as well as old and modern versions of Chrome, Firefox, Safari, Opera, and Internet Explorer. |
||||
|
||||
## Unit tests & code coverage |
||||
|
||||
After cloning this repository, run `npm install` to install the dependencies needed for development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. |
||||
|
||||
Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use `grunt test`. |
||||
|
||||
To generate the code coverage report, use `grunt cover`. |
||||
|
||||
## Author |
||||
|
||||
| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | |
||||
|---| |
||||
| [Mathias Bynens](https://mathiasbynens.be/) | |
||||
|
||||
## License |
||||
|
||||
_base64_ is available under the [MIT](https://mths.be/mit) license. |
@ -0,0 +1,164 @@ |
||||
/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */ |
||||
;(function(root) { |
||||
|
||||
// Detect free variables `exports`.
|
||||
var freeExports = typeof exports == 'object' && exports; |
||||
|
||||
// Detect free variable `module`.
|
||||
var freeModule = typeof module == 'object' && module && |
||||
module.exports == freeExports && module; |
||||
|
||||
// Detect free variable `global`, from Node.js or Browserified code, and use
|
||||
// it as `root`.
|
||||
var freeGlobal = typeof global == 'object' && global; |
||||
if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { |
||||
root = freeGlobal; |
||||
} |
||||
|
||||
/*--------------------------------------------------------------------------*/ |
||||
|
||||
var InvalidCharacterError = function(message) { |
||||
this.message = message; |
||||
}; |
||||
InvalidCharacterError.prototype = new Error; |
||||
InvalidCharacterError.prototype.name = 'InvalidCharacterError'; |
||||
|
||||
var error = function(message) { |
||||
// Note: the error messages used throughout this file match those used by
|
||||
// the native `atob`/`btoa` implementation in Chromium.
|
||||
throw new InvalidCharacterError(message); |
||||
}; |
||||
|
||||
var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; |
||||
// http://whatwg.org/html/common-microsyntaxes.html#space-character
|
||||
var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g; |
||||
|
||||
// `decode` is designed to be fully compatible with `atob` as described in the
|
||||
// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob
|
||||
// The optimized base64-decoding algorithm used is based on @atk’s excellent
|
||||
// implementation. https://gist.github.com/atk/1020396
|
||||
var decode = function(input) { |
||||
input = String(input) |
||||
.replace(REGEX_SPACE_CHARACTERS, ''); |
||||
var length = input.length; |
||||
if (length % 4 == 0) { |
||||
input = input.replace(/==?$/, ''); |
||||
length = input.length; |
||||
} |
||||
if ( |
||||
length % 4 == 1 || |
||||
// http://whatwg.org/C#alphanumeric-ascii-characters
|
||||
/[^+a-zA-Z0-9/]/.test(input) |
||||
) { |
||||
error( |
||||
'Invalid character: the string to be decoded is not correctly encoded.' |
||||
); |
||||
} |
||||
var bitCounter = 0; |
||||
var bitStorage; |
||||
var buffer; |
||||
var output = ''; |
||||
var position = -1; |
||||
while (++position < length) { |
||||
buffer = TABLE.indexOf(input.charAt(position)); |
||||
bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer; |
||||
// Unless this is the first of a group of 4 characters…
|
||||
if (bitCounter++ % 4) { |
||||
// …convert the first 8 bits to a single ASCII character.
|
||||
output += String.fromCharCode( |
||||
0xFF & bitStorage >> (-2 * bitCounter & 6) |
||||
); |
||||
} |
||||
} |
||||
return output; |
||||
}; |
||||
|
||||
// `encode` is designed to be fully compatible with `btoa` as described in the
|
||||
// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa
|
||||
var encode = function(input) { |
||||
input = String(input); |
||||
if (/[^\0-\xFF]/.test(input)) { |
||||
// Note: no need to special-case astral symbols here, as surrogates are
|
||||
// matched, and the input is supposed to only contain ASCII anyway.
|
||||
error( |
||||
'The string to be encoded contains characters outside of the ' + |
||||
'Latin1 range.' |
||||
); |
||||
} |
||||
var padding = input.length % 3; |
||||
var output = ''; |
||||
var position = -1; |
||||
var a; |
||||
var b; |
||||
var c; |
||||
var buffer; |
||||
// Make sure any padding is handled outside of the loop.
|
||||
var length = input.length - padding; |
||||
|
||||
while (++position < length) { |
||||
// Read three bytes, i.e. 24 bits.
|
||||
a = input.charCodeAt(position) << 16; |
||||
b = input.charCodeAt(++position) << 8; |
||||
c = input.charCodeAt(++position); |
||||
buffer = a + b + c; |
||||
// Turn the 24 bits into four chunks of 6 bits each, and append the
|
||||
// matching character for each of them to the output.
|
||||
output += ( |
||||
TABLE.charAt(buffer >> 18 & 0x3F) + |
||||
TABLE.charAt(buffer >> 12 & 0x3F) + |
||||
TABLE.charAt(buffer >> 6 & 0x3F) + |
||||
TABLE.charAt(buffer & 0x3F) |
||||
); |
||||
} |
||||
|
||||
if (padding == 2) { |
||||
a = input.charCodeAt(position) << 8; |
||||
b = input.charCodeAt(++position); |
||||
buffer = a + b; |
||||
output += ( |
||||
TABLE.charAt(buffer >> 10) + |
||||
TABLE.charAt((buffer >> 4) & 0x3F) + |
||||
TABLE.charAt((buffer << 2) & 0x3F) + |
||||
'=' |
||||
); |
||||
} else if (padding == 1) { |
||||
buffer = input.charCodeAt(position); |
||||
output += ( |
||||
TABLE.charAt(buffer >> 2) + |
||||
TABLE.charAt((buffer << 4) & 0x3F) + |
||||
'==' |
||||
); |
||||
} |
||||
|
||||
return output; |
||||
}; |
||||
|
||||
var base64 = { |
||||
'encode': encode, |
||||
'decode': decode, |
||||
'version': '1.0.0' |
||||
}; |
||||
|
||||
// Some AMD build optimizers, like r.js, check for specific condition patterns
|
||||
// like the following:
|
||||
if ( |
||||
typeof define == 'function' && |
||||
typeof define.amd == 'object' && |
||||
define.amd |
||||
) { |
||||
define(function() { |
||||
return base64; |
||||
}); |
||||
} else if (freeExports && !freeExports.nodeType) { |
||||
if (freeModule) { // in Node.js or RingoJS v0.8.0+
|
||||
freeModule.exports = base64; |
||||
} else { // in Narwhal or RingoJS v0.7.0-
|
||||
for (var key in base64) { |
||||
base64.hasOwnProperty(key) && (freeExports[key] = base64[key]); |
||||
} |
||||
} |
||||
} else { // in Rhino or a web browser
|
||||
root.base64 = base64; |
||||
} |
||||
|
||||
}(this)); |
@ -0,0 +1,71 @@ |
||||
{ |
||||
"_from": "base-64", |
||||
"_id": "base-64@1.0.0", |
||||
"_inBundle": false, |
||||
"_integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", |
||||
"_location": "/base-64", |
||||
"_phantomChildren": {}, |
||||
"_requested": { |
||||
"type": "tag", |
||||
"registry": true, |
||||
"raw": "base-64", |
||||
"name": "base-64", |
||||
"escapedName": "base-64", |
||||
"rawSpec": "", |
||||
"saveSpec": null, |
||||
"fetchSpec": "latest" |
||||
}, |
||||
"_requiredBy": [ |
||||
"#USER", |
||||
"/" |
||||
], |
||||
"_resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", |
||||
"_shasum": "09d0f2084e32a3fd08c2475b973788eee6ae8f4a", |
||||
"_spec": "base-64", |
||||
"_where": "D:\\Documents\\high-unionPay\\high-unionPay", |
||||
"author": { |
||||
"name": "Mathias Bynens", |
||||
"url": "https://mathiasbynens.be/" |
||||
}, |
||||
"bugs": { |
||||
"url": "https://github.com/mathiasbynens/base64/issues" |
||||
}, |
||||
"bundleDependencies": false, |
||||
"deprecated": false, |
||||
"description": "A robust base64 encoder/decoder that is fully compatible with `atob()` and `btoa()`, written in JavaScript.", |
||||
"devDependencies": { |
||||
"coveralls": "^2.11.4", |
||||
"grunt": "^0.4.5", |
||||
"grunt-cli": "^1.3.2", |
||||
"grunt-shell": "^1.1.2", |
||||
"grunt-template": "^0.2.3", |
||||
"istanbul": "^0.4.0", |
||||
"mocha": "^6.2.0", |
||||
"regenerate": "^1.2.1" |
||||
}, |
||||
"files": [ |
||||
"LICENSE-MIT.txt", |
||||
"base64.js" |
||||
], |
||||
"homepage": "https://mths.be/base64", |
||||
"keywords": [ |
||||
"codec", |
||||
"decoder", |
||||
"encoder", |
||||
"base64", |
||||
"atob", |
||||
"btoa" |
||||
], |
||||
"license": "MIT", |
||||
"main": "base64.js", |
||||
"name": "base-64", |
||||
"repository": { |
||||
"type": "git", |
||||
"url": "git+https://github.com/mathiasbynens/base64.git" |
||||
}, |
||||
"scripts": { |
||||
"build": "grunt build", |
||||
"test": "mocha tests/tests.js" |
||||
}, |
||||
"version": "1.0.0" |
||||
} |
Loading…
Reference in new issue