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