base64-no-upper-case 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,17 @@
1
1
  Base64, but no UPPER CASE.
2
2
 
3
+ It is useful in case-insensitive scenarios, such as Scratch.
4
+
3
5
  ```
4
6
  !#$%&()*,-.:;<>?@[]^_`{|}~abcdefghijklmnopqrstuvwxyz0123456789+/
5
7
  ```
6
8
 
9
+ For Scratch:
10
+ <https://scratch.mit.edu/projects/1263900629/>
11
+
12
+ For Python:
13
+ <https://pypi.org/project/base64-no-upper-case/>
14
+
7
15
  ## Setup
8
16
 
9
17
  ### npm
@@ -36,6 +44,6 @@ console.log(dec)
36
44
 
37
45
  ```html browser
38
46
  <script>
39
- {const e="!#$%&()*,-.:;<>?@[]^_`{|}~abcdefghijklmnopqrstuvwxyz0123456789+/",r=function(r){"string"==typeof r&&(r=(new TextEncoder).encode(r));for(var n=r.length,t=Array(4*Math.ceil(n/3)),o=0,a=0;o<r.length;)t[a++]=e[r[o]>>2],t[a++]=e[r[o++]<<4&63|r[o]>>4],t[a++]=o>=n?"=":e[r[o++]<<2&63|r[o]>>6],t[a++]=o>=n?"=":e[63&r[o++]];return t.join("")},n=function(r){for(var n,t,o=r.length,a=new Uint8Array(Math.floor(o/4*3)-("="==r[o-1]&&1+("="==r[o-2]))),c=0,d=0,i=()=>{if("="==(n=r[c++]))return t=0;if((t=e.indexOf(n))<0)throw Error("InvalidCharacterError: '"+n+"' at "+(c-1));return t};c<o;)a[d++]=i()<<2|i()>>4,a[d++]=t<<4|i()>>2,a[d++]=t<<6|i();return a},t=function(e,r=new TextDecoder){return r.decode(n(e))};self.Base64NoUpperCase={charMap:e,encode:r,decode:n,decodeToString:t}}
47
+ {const r="!#$%&()*,-.:;<>?@[]^_`{|}~abcdefghijklmnopqrstuvwxyz0123456789+/",e=function(e){"string"==typeof e&&(e=(new TextEncoder).encode(e));for(var n=e.length,o=Array(4*Math.ceil(n/3)),t=0,a=0;t<n;)o[a++]=r[e[t]>>2&63],o[a++]=r[63&(e[t++]<<4|e[t]>>4)],o[a++]=t>=n?"=":r[63&(e[t++]<<2|e[t]>>6)],o[a++]=t>=n?"=":r[63&e[t++]];return o.join("")},n=function(e){for(var n,o,t=e.length,a=new Uint8Array(Math.floor(t/4*3)-("="==e[t-1]&&1+("="==e[t-2]))),c=0,d=0,i=()=>{if(c>=t||"="==(n=e[c++]))return o=0;if((o=r.indexOf(n))<0)throw Error("InvalidCharacterError: '"+n+"' at "+(c-1));return o};c<t;)a[d++]=i()<<2|i()>>4,a[d++]=o<<4|i()>>2,a[d++]=o<<6|i();return a},o=function(r,e=new TextDecoder){return e.decode(n(r))};self.Base64NoUpperCase={charMap:r,encode:e,decode:n,decodeToString:o}}
40
48
  </script>
41
49
  ```
package/dist/browser.js CHANGED
@@ -3,19 +3,19 @@
3
3
  if (typeof input == 'string')
4
4
  input = new TextEncoder().encode(input);
5
5
  var il = input.length, out = Array(Math.ceil(il / 3) * 4), ii = 0, oi = 0;
6
- while (ii < input.length) {
6
+ while (ii < il) {
7
7
  // 00000000 11111111 22222222
8
8
  // __000000 __001111 __111122 __222222
9
- out[oi++] = charMap[input[ii] >> 2];
10
- out[oi++] = charMap[input[ii++] << 4 & 63 | input[ii] >> 4];
11
- out[oi++] = ii >= il ? '=' : charMap[input[ii++] << 2 & 63 | input[ii] >> 6];
9
+ out[oi++] = charMap[input[ii] >> 2 & 63];
10
+ out[oi++] = charMap[(input[ii++] << 4 | input[ii] >> 4) & 63];
11
+ out[oi++] = ii >= il ? '=' : charMap[(input[ii++] << 2 | input[ii] >> 6) & 63];
12
12
  out[oi++] = ii >= il ? '=' : charMap[input[ii++] & 63];
13
13
  }
14
14
  return out.join('');
15
15
  }, decode = function (input) {
16
16
  var il = input.length, out = new Uint8Array(Math.floor(il / 4 * 3) - ((input[il - 1] == '=') &&
17
17
  (1 + (input[il - 2] == '=')))), ii = 0, oi = 0, char, cache, next = () => {
18
- if ((char = input[ii++]) == '=')
18
+ if (ii >= il || (char = input[ii++]) == '=')
19
19
  return cache = 0;
20
20
  if ((cache = charMap.indexOf(char)) < 0)
21
21
  throw Error("InvalidCharacterError: '" + char + "' at " + (ii - 1));
@@ -1 +1 @@
1
- {const e="!#$%&()*,-.:;<>?@[]^_`{|}~abcdefghijklmnopqrstuvwxyz0123456789+/",r=function(r){"string"==typeof r&&(r=(new TextEncoder).encode(r));for(var n=r.length,t=Array(4*Math.ceil(n/3)),o=0,a=0;o<r.length;)t[a++]=e[r[o]>>2],t[a++]=e[r[o++]<<4&63|r[o]>>4],t[a++]=o>=n?"=":e[r[o++]<<2&63|r[o]>>6],t[a++]=o>=n?"=":e[63&r[o++]];return t.join("")},n=function(r){for(var n,t,o=r.length,a=new Uint8Array(Math.floor(o/4*3)-("="==r[o-1]&&1+("="==r[o-2]))),c=0,d=0,i=()=>{if("="==(n=r[c++]))return t=0;if((t=e.indexOf(n))<0)throw Error("InvalidCharacterError: '"+n+"' at "+(c-1));return t};c<o;)a[d++]=i()<<2|i()>>4,a[d++]=t<<4|i()>>2,a[d++]=t<<6|i();return a},t=function(e,r=new TextDecoder){return r.decode(n(e))};self.Base64NoUpperCase={charMap:e,encode:r,decode:n,decodeToString:t}}
1
+ {const r="!#$%&()*,-.:;<>?@[]^_`{|}~abcdefghijklmnopqrstuvwxyz0123456789+/",e=function(e){"string"==typeof e&&(e=(new TextEncoder).encode(e));for(var n=e.length,o=Array(4*Math.ceil(n/3)),t=0,a=0;t<n;)o[a++]=r[e[t]>>2&63],o[a++]=r[63&(e[t++]<<4|e[t]>>4)],o[a++]=t>=n?"=":r[63&(e[t++]<<2|e[t]>>6)],o[a++]=t>=n?"=":r[63&e[t++]];return o.join("")},n=function(e){for(var n,o,t=e.length,a=new Uint8Array(Math.floor(t/4*3)-("="==e[t-1]&&1+("="==e[t-2]))),c=0,d=0,i=()=>{if(c>=t||"="==(n=e[c++]))return o=0;if((o=r.indexOf(n))<0)throw Error("InvalidCharacterError: '"+n+"' at "+(c-1));return o};c<t;)a[d++]=i()<<2|i()>>4,a[d++]=o<<4|i()>>2,a[d++]=o<<6|i();return a},o=function(r,e=new TextDecoder){return e.decode(n(r))};self.Base64NoUpperCase={charMap:r,encode:e,decode:n,decodeToString:o}}
package/dist/main.js CHANGED
@@ -3,12 +3,12 @@ export function encode(input) {
3
3
  if (typeof input == 'string')
4
4
  input = new TextEncoder().encode(input);
5
5
  var il = input.length, out = Array(Math.ceil(il / 3) * 4), ii = 0, oi = 0;
6
- while (ii < input.length) {
6
+ while (ii < il) {
7
7
  // 00000000 11111111 22222222
8
8
  // __000000 __001111 __111122 __222222
9
- out[oi++] = charMap[input[ii] >> 2];
10
- out[oi++] = charMap[input[ii++] << 4 & 63 | input[ii] >> 4];
11
- out[oi++] = ii >= il ? '=' : charMap[input[ii++] << 2 & 63 | input[ii] >> 6];
9
+ out[oi++] = charMap[input[ii] >> 2 & 63];
10
+ out[oi++] = charMap[(input[ii++] << 4 | input[ii] >> 4) & 63];
11
+ out[oi++] = ii >= il ? '=' : charMap[(input[ii++] << 2 | input[ii] >> 6) & 63];
12
12
  out[oi++] = ii >= il ? '=' : charMap[input[ii++] & 63];
13
13
  }
14
14
  return out.join('');
@@ -16,7 +16,7 @@ export function encode(input) {
16
16
  export function decode(input) {
17
17
  var il = input.length, out = new Uint8Array(Math.floor(il / 4 * 3) - ((input[il - 1] == '=') &&
18
18
  (1 + (input[il - 2] == '=')))), ii = 0, oi = 0, char, cache, next = () => {
19
- if ((char = input[ii++]) == '=')
19
+ if (ii >= il || (char = input[ii++]) == '=')
20
20
  return cache = 0;
21
21
  if ((cache = charMap.indexOf(char)) < 0)
22
22
  throw Error("InvalidCharacterError: '" + char + "' at " + (ii - 1));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "base64-no-upper-case",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Base64, but no UPPER CASE.",
5
5
  "main": "./dist/main.js",
6
6
  "browser": "./dist/browser.js",