Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@cnwhy/base64

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cnwhy/base64 - npm Package Compare versions

Comparing version 0.1.2 to 0.1.3

8

Base64.ts

@@ -237,3 +237,9 @@ const BASE64_TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');

const decodeURL = getDecode(BASE64_URL_TABLE, PAD);
const lib = {
getEncode,
getDecode
}
// const __esModule = true;
export { decode, encode, encodeURL, decodeURL, utf8Encode, utf8Decode};
export {lib, decode, encode, encodeURL, decodeURL, utf8Encode, utf8Decode};

@@ -15,2 +15,4 @@ /**

declare function utf8Decode(buffer: ArrayBuffer | Uint8Array | number[]): string;
declare function getEncode(table: string[], pad: string): (u8arr: string | number[] | ArrayBuffer | Uint8Array) => string;
declare function getDecode(table: string[], pad: string): (base64Str: string) => number[] | Uint8Array;
declare const encode: (u8arr: string | number[] | ArrayBuffer | Uint8Array) => string;

@@ -20,2 +22,6 @@ declare const decode: (base64Str: string) => number[] | Uint8Array;

declare const decodeURL: (base64Str: string) => number[] | Uint8Array;
export { decode, encode, encodeURL, decodeURL, utf8Encode, utf8Decode };
declare const lib: {
getEncode: typeof getEncode;
getDecode: typeof getDecode;
};
export { lib, decode, encode, encodeURL, decodeURL, utf8Encode, utf8Decode };

8

dist/Base64.es.js
/*!
* @cnwhy/base64 v0.1.2
* @cnwhy/base64 v0.1.3
* Homepage https://github.com/cnwhy/Base64.js#readme

@@ -214,3 +214,7 @@ * License MIT

const decodeURL = getDecode(BASE64_URL_TABLE, PAD);
const lib = {
getEncode,
getDecode
};
export { decode, decodeURL, encode, encodeURL, utf8Decode, utf8Encode };
export { decode, decodeURL, encode, encodeURL, lib, utf8Decode, utf8Encode };

@@ -8,3 +8,3 @@ (function (global, factory) {

/*!
* @cnwhy/base64 v0.1.2
* @cnwhy/base64 v0.1.3
* Homepage https://github.com/cnwhy/Base64.js#readme

@@ -253,2 +253,6 @@ * License MIT

var decodeURL = getDecode(BASE64_URL_TABLE, PAD);
var lib = {
getEncode: getEncode,
getDecode: getDecode
};

@@ -259,2 +263,3 @@ exports.decode = decode;

exports.encodeURL = encodeURL;
exports.lib = lib;
exports.utf8Decode = utf8Decode;

@@ -261,0 +266,0 @@ exports.utf8Encode = utf8Encode;

{
"name": "@cnwhy/base64",
"version": "0.1.2",
"version": "0.1.3",
"description": "Base64 library, lossless transcoding.",

@@ -5,0 +5,0 @@ "main": "dist/Base64.umd.js",

**为什么重复造轮子?**
1. `btoa` , `atob` 只支持 `Latin1` 字符.
2. 常用的的 Base64 编码库处理字符串时会**主动**修改错误(空)编码字符, 导致解码的数据与原数据不一至.
比如用 nodejs 中的 `Buffer`:
```js
var s = '\ud800'
var s = '\ud800';
var b64 = Buffer.from(s).toString('base64');
var _s = Buffer.from(b64,'base64').toString();
console.log(s === _s); //false
var _s = Buffer.from(b64, 'base64').toString();
e;
```
3. `Base64`编/解码本该与字符串无关, 但几乎所有 Base64 的`decode`方法都输出字符串,限制了使用场景.
### 本库方案
对于字符串的转换用`UTF-8`编码, 但无视无效符(解码按同一规则), 保证js的字符([UCS-2](https://zh.wikipedia.org/wiki/UTF-16#UTF-16%E8%88%87UCS-2%E7%9A%84%E9%97%9C%E4%BF%82))串可以无损转换.
对于字符串的转换用`UTF-8`编码, 但无视无效符(解码按同一规则), 保证 js 的字符([UCS-2](https://zh.wikipedia.org/wiki/UTF-16#UTF-16%E8%88%87UCS-2%E7%9A%84%E9%97%9C%E4%BF%82))串可以无损转换.
`decode()` 单纯将`Base64`解析`Byte[]`; 但重写返回字节数组的`toString()`方法, 以`UTF-8`编码解析为字符串.
### 适用场景
1. 二进制数据与Base64互转
2. 字符串与Base64互转
1. 二进制数据与 Base64 互转
2. 字符串与 Base64 互转
### Demo
```js
import Base64 from 'base64.js';
// import * as Base64 from 'base64.js'
const Base64 = require('base64.js');
### 兼容性
通用, 不支持`ArrayBuffer`的环境将会用`Array`代替`Uint8Array`.
let str = 'Base64库\u{10400}\u{d800}';
let str = 'Base64库\u{10400}\u{d800}';
console.log(str); // Base64库𐐀�

@@ -40,3 +45,3 @@

let bf_str = Buffer.from(bf_b64,'base64').toString();
console.log(bf_b64);
console.log(bf_b64);
console.log(str === bf_str); // false

@@ -55,3 +60,8 @@

### 兼容性
通用, 不支持`ArrayBuffer`的环境将会用`Array`代替`Uint8Array`.
### API
```ts

@@ -61,11 +71,16 @@ Base64 = {

decode(input:string|ArrayBuffer|Uint8Array|number[]):Uint8Array;
//适用于URL的Base64 ( "_" "-" 替换 "/" "+");
encodeURL(input:string|ArrayBuffer|Uint8Array|number[]):string;
decodeURL(input:string|ArrayBuffer|Uint8Array|number[]):Uint8Array;
// UTF8 编码 解码
utf8Encode(str:string):Uint8Array;
utf8Decode(utf8arr:Uint8Array):string;
lib:{
getEncode(table: string[], pad: string): encode;
getDecode(table: string[], pad: string): decode;
}
}
```
```

@@ -19,2 +19,9 @@ // import Base64 from './Base64';

console.log(bf_str1);
console.log(str === bf_str); // false
console.log(str === bf_str); // false
var myBase64 = {
encode: Base64.lib.getEncode('ZYX10+/PONM765LKJIAzyTSRQGxwvuHWVFEDUCBtsrqdcba9843ponmlkjihgfe2'.split(''),'='),
decode: Base64.lib.getDecode('ZYX10+/PONM765LKJIAzyTSRQGxwvuHWVFEDUCBtsrqdcba9843ponmlkjihgfe2'.split(''),'='),
}
var json = myBase64.decode('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').toString();
console.log(json);
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc