Compare commits
	
		
			No commits in common. "master" and "v2.1.1" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										32
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								LICENSE
									
									
									
									
									
								
							| @ -1,32 +1,3 @@ | |||||||
| At your option you may choose either of the following licenses: |  | ||||||
| 
 |  | ||||||
|   * The MIT License (MIT) |  | ||||||
|   * The Apache License 2.0 (Apache-2.0) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| The MIT License (MIT) |  | ||||||
| 
 |  | ||||||
| Copyright (c) 2015 AJ ONeal |  | ||||||
| 
 |  | ||||||
| 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. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|                                  Apache License |                                  Apache License | ||||||
|                            Version 2.0, January 2004 |                            Version 2.0, January 2004 | ||||||
|                         http://www.apache.org/licenses/ |                         http://www.apache.org/licenses/ | ||||||
| @ -215,7 +186,7 @@ SOFTWARE. | |||||||
|       same "printed page" as the copyright notice for easier |       same "printed page" as the copyright notice for easier | ||||||
|       identification within third-party archives. |       identification within third-party archives. | ||||||
| 
 | 
 | ||||||
|    Copyright 2015 AJ ONeal |    Copyright {yyyy} {name of copyright owner} | ||||||
| 
 | 
 | ||||||
|    Licensed under the Apache License, Version 2.0 (the "License"); |    Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|    you may not use this file except in compliance with the License. |    you may not use this file except in compliance with the License. | ||||||
| @ -228,3 +199,4 @@ SOFTWARE. | |||||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|    See the License for the specific language governing permissions and |    See the License for the specific language governing permissions and | ||||||
|    limitations under the License. |    limitations under the License. | ||||||
|  | 
 | ||||||
|  | |||||||
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								README.md
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | |||||||
| Unibabel | Unibabel | ||||||
| ======== | ======== | ||||||
| 
 | 
 | ||||||
| Minimalistic **Base64**, **TypedArrays**, and **UTF-8** / **Unicode** conversions in Browser (and Node) JavaScript. Optional add-on support for **hex** and **base32**. | Minimalistic Base64, TypedArrays, and UTF-8 / Unicode conversions in Browser (and Node) JavaScript | ||||||
| 
 | 
 | ||||||
| See <https://coolaj86.com/articles/base64-unicode-utf-8-javascript-and-you/> | See <https://coolaj86.com/articles/base64-unicode-utf-8-javascript-and-you/> | ||||||
| 
 | 
 | ||||||
| @ -14,41 +14,6 @@ See also | |||||||
|   * [TextEncoderLite (based on text-encoding)](https://github.com/coolaj86/TextEncoderLite/tree/lite) |   * [TextEncoderLite (based on text-encoding)](https://github.com/coolaj86/TextEncoderLite/tree/lite) | ||||||
|   * [Beatgammit's base64-js](https://github.com/beatgammit/base64-js) |   * [Beatgammit's base64-js](https://github.com/beatgammit/base64-js) | ||||||
| 
 | 
 | ||||||
| Are you in the right place? |  | ||||||
| ------------------------ |  | ||||||
| 
 |  | ||||||
| Dear Node.js Users: |  | ||||||
| 
 |  | ||||||
| You SHOULD NOT use this module. You already have [`Buffer`](https://nodejs.org/api/buffer.html) and [`thirty-two`](https://github.com/chrisumbel/thirty-two): |  | ||||||
| 
 |  | ||||||
| ```javascript |  | ||||||
| var buf = new Buffer('I ½ ♥ 💩', 'utf8'); |  | ||||||
| buf.toString('hex'); |  | ||||||
| buf.toString('base64'); |  | ||||||
| buf.toString('ascii'); |  | ||||||
| buf.toString('utf8'); |  | ||||||
| buf.toString('binary'); // deprecated, do not use |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| Install |  | ||||||
| ------- |  | ||||||
| 
 |  | ||||||
| You just include the `index.js` in a lovely script tag. |  | ||||||
| 
 |  | ||||||
| ```bash |  | ||||||
| bower install --save unibabel |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| ```html |  | ||||||
| <script src="/bower_components/unibabel/index.js"></script> |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| Dear WebPack / Broccoli, Gulp / Grunt Users: |  | ||||||
| 
 |  | ||||||
| I don't know how your build systems work these days, |  | ||||||
| but Unibabel is exported as `Unibabel` |  | ||||||
| and you can access it as `window.Unibabel`. |  | ||||||
| 
 |  | ||||||
| API | API | ||||||
| === | === | ||||||
| 
 | 
 | ||||||
| @ -64,12 +29,12 @@ var uint8Array = Unibabel.base64ToArr(base64) | |||||||
| 
 | 
 | ||||||
| **Normal APIs** | **Normal APIs** | ||||||
| 
 | 
 | ||||||
| `index.js` |  | ||||||
| 
 |  | ||||||
| * utf8ToBuffer(utf8str) => array | * utf8ToBuffer(utf8str) => array | ||||||
| * bufferToUtf8(array) => string | * bufferToUtf8(array) => string | ||||||
|  | 
 | ||||||
| * utf8ToBase64(utf8str) => base64 | * utf8ToBase64(utf8str) => base64 | ||||||
| * base64ToUtf8(base64) => string | * base64ToUtf8(base64) => string | ||||||
|  | 
 | ||||||
| * bufferToBase64(array) => base64 | * bufferToBase64(array) => base64 | ||||||
| * base64ToBuffer(base64) => array | * base64ToBuffer(base64) => array | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								bower.json
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								bower.json
									
									
									
									
									
								
							| @ -1,9 +1,10 @@ | |||||||
| { | { | ||||||
|   "name": "unibabel", |   "name": "unibabel", | ||||||
|   "main": "index.js", |   "main": "index.js", | ||||||
|   "homepage": "https://git.coolaj86.com/coolaj86/unibabel.js", |   "version": "2.1.1", | ||||||
|  |   "homepage": "https://github.com/coolaj86/unibabel-js", | ||||||
|   "authors": [ |   "authors": [ | ||||||
|     "AJ ONeal <coolaj86@gmail.com>" |     "AJ ONeal <awesome@coolaj86.com>" | ||||||
|   ], |   ], | ||||||
|   "description": "Convert between UTF8, TypedArrays, and Base64", |   "description": "Convert between UTF8, TypedArrays, and Base64", | ||||||
|   "moduleType": [ |   "moduleType": [ | ||||||
| @ -11,21 +12,15 @@ | |||||||
|     "node" |     "node" | ||||||
|   ], |   ], | ||||||
|   "keywords": [ |   "keywords": [ | ||||||
|     "ascii", |  | ||||||
|     "binary", |  | ||||||
|     "utf8", |     "utf8", | ||||||
|     "utf-8", |     "utf-8", | ||||||
|     "ArrayBuffer", |     "ArrayBuffer", | ||||||
|     "TypedArrays", |     "TypedArrays", | ||||||
|     "TypedArray", |  | ||||||
|     "Uint", |     "Uint", | ||||||
|     "Uint8Array", |  | ||||||
|     "Base64", |     "Base64", | ||||||
|     "b64", |     "b64" | ||||||
|     "Base32", |  | ||||||
|     "b32" |  | ||||||
|   ], |   ], | ||||||
|   "license": "Apache-2.0", |   "license": "Apache2", | ||||||
|   "ignore": [ |   "ignore": [ | ||||||
|     "**/.*", |     "**/.*", | ||||||
|     "node_modules", |     "node_modules", | ||||||
|  | |||||||
| @ -4,9 +4,9 @@ | |||||||
| </head> | </head> | ||||||
| <body> | <body> | ||||||
|   This is for testing. Look in the console. |   This is for testing. Look in the console. | ||||||
|   <script src="../index.js"></script> |   <script src="./index.js"></script> | ||||||
|   <script src="../unibabel.hex.js"></script> |   <script src="./unibabel.hex.js"></script> | ||||||
|   <script src="../unibabel.base32.js"></script> |   <script src="./unibabel.base32.js"></script> | ||||||
|   <script src="./test.js"></script> |   <script src="./test.js"></script> | ||||||
| </body> | </body> | ||||||
| </html> | </html> | ||||||
							
								
								
									
										6
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								index.js
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | |||||||
| (function (exports) { | (function () { | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| function utf8ToBinaryString(str) { | function utf8ToBinaryString(str) { | ||||||
| @ -82,7 +82,7 @@ function base64ToBuffer(base64) { | |||||||
|   return buf; |   return buf; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| exports.Unibabel = { | window.Unibabel = { | ||||||
|   utf8ToBinaryString: utf8ToBinaryString |   utf8ToBinaryString: utf8ToBinaryString | ||||||
| , utf8ToBuffer: utf8ToBuffer | , utf8ToBuffer: utf8ToBuffer | ||||||
| , utf8ToBase64: utf8ToBase64 | , utf8ToBase64: utf8ToBase64 | ||||||
| @ -101,4 +101,4 @@ exports.Unibabel = { | |||||||
| , base64ToArr: base64ToBuffer | , base64ToArr: base64ToBuffer | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }('undefined' !== typeof exports && exports || 'undefined' !== typeof window && window || global)); | }()); | ||||||
|  | |||||||
							
								
								
									
										19
									
								
								node.js
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								node.js
									
									
									
									
									
								
							| @ -1,19 +0,0 @@ | |||||||
| 'use strict'; |  | ||||||
| 
 |  | ||||||
| console.warn("Please don't use Unibabel in node.js. If you think you really think you have a valid use case please report it at https://git.coolaj86.com/coolaj86/unibabel.js/issues/new"); |  | ||||||
| throw new Error("[unibabel] you're doing it wrong"); |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
| var data = 'I ½ ♥ 💩'; |  | ||||||
| var encoding = 'utf8'; |  | ||||||
| var buf = new Buffer(data, encoding); |  | ||||||
| buf.toString('hex'); |  | ||||||
| buf.toString('base64'); |  | ||||||
| buf.toString('ascii'); |  | ||||||
| buf.toString('utf8'); |  | ||||||
| buf.toString('binary'); // deprecated, do not use
 |  | ||||||
| 
 |  | ||||||
| var Base32 = require('thirty-two'); |  | ||||||
| var b32 = Base32.encode(buf); |  | ||||||
| Base32.decode(buf); |  | ||||||
| */ |  | ||||||
							
								
								
									
										37
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								package.json
									
									
									
									
									
								
							| @ -1,37 +0,0 @@ | |||||||
| { |  | ||||||
|   "name": "unibabel", |  | ||||||
|   "version": "2.1.8", |  | ||||||
|   "description": "Base64, TypedArrays, and UTF-8 / Unicode conversions in Browser (and Node) JavaScript", |  | ||||||
|   "main": "node.js", |  | ||||||
|   "browser": { |  | ||||||
|     "./node.js": "./index.js" |  | ||||||
|   }, |  | ||||||
|   "scripts": { |  | ||||||
|     "test": "echo \"Error: no test specified\" && exit 1" |  | ||||||
|   }, |  | ||||||
|   "repository": { |  | ||||||
|     "type": "git", |  | ||||||
|     "url": "https://git.coolaj86.com/coolaj86/unibabel.js.git" |  | ||||||
|   }, |  | ||||||
|   "keywords": [ |  | ||||||
|     "ascii", |  | ||||||
|     "binary", |  | ||||||
|     "utf8", |  | ||||||
|     "utf-8", |  | ||||||
|     "ArrayBuffer", |  | ||||||
|     "TypedArrays", |  | ||||||
|     "TypedArray", |  | ||||||
|     "Uint", |  | ||||||
|     "Uint8Array", |  | ||||||
|     "Base64", |  | ||||||
|     "b64", |  | ||||||
|     "Base32", |  | ||||||
|     "b32" |  | ||||||
|   ], |  | ||||||
|   "author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com/)", |  | ||||||
|   "license": "(MIT OR Apache-2.0)", |  | ||||||
|   "bugs": { |  | ||||||
|     "url": "https://git.coolaj86.com/coolaj86/unibabel.js/issues" |  | ||||||
|   }, |  | ||||||
|   "homepage": "https://git.coolaj86.com/coolaj86/unibabel.js#readme" |  | ||||||
| } |  | ||||||
							
								
								
									
										1
									
								
								unibabel-dom.js
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								unibabel-dom.js
									
									
									
									
									
										Symbolic link
									
								
							| @ -0,0 +1 @@ | |||||||
|  | index.js | ||||||
| @ -131,11 +131,11 @@ exports.base32ToBuffer = function(encoded) { | |||||||
|             throw new Error('Invalid input - it is not base32 encoded string'); |             throw new Error('Invalid input - it is not base32 encoded string'); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 |     if (decoded.slice) { | ||||||
|     if (decoded.slice) { // Array or TypedArray
 |  | ||||||
|       return decoded.slice(0, plainPos); |       return decoded.slice(0, plainPos); | ||||||
|     } else { // Mobile Safari TypedArray
 |     } else { | ||||||
|       return new Uint8Array(Array.prototype.slice.call(decoded, 0, plainPos)); |       // Mobile Safari's Uint8Array doesn't have slice
 | ||||||
|  |       return Array.prototype.slice.call(decoded, 0, plainPos); | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user