Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / grpc-cloned / node_modules / @protobufjs / base64 / index.js
diff --git a/legacy-libs/grpc-cloned/node_modules/@protobufjs/base64/index.js b/legacy-libs/grpc-cloned/node_modules/@protobufjs/base64/index.js
new file mode 100644 (file)
index 0000000..26d5443
--- /dev/null
@@ -0,0 +1,139 @@
+"use strict";\r
+\r
+/**\r
+ * A minimal base64 implementation for number arrays.\r
+ * @memberof util\r
+ * @namespace\r
+ */\r
+var base64 = exports;\r
+\r
+/**\r
+ * Calculates the byte length of a base64 encoded string.\r
+ * @param {string} string Base64 encoded string\r
+ * @returns {number} Byte length\r
+ */\r
+base64.length = function length(string) {\r
+    var p = string.length;\r
+    if (!p)\r
+        return 0;\r
+    var n = 0;\r
+    while (--p % 4 > 1 && string.charAt(p) === "=")\r
+        ++n;\r
+    return Math.ceil(string.length * 3) / 4 - n;\r
+};\r
+\r
+// Base64 encoding table\r
+var b64 = new Array(64);\r
+\r
+// Base64 decoding table\r
+var s64 = new Array(123);\r
+\r
+// 65..90, 97..122, 48..57, 43, 47\r
+for (var i = 0; i < 64;)\r
+    s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r
+\r
+/**\r
+ * Encodes a buffer to a base64 encoded string.\r
+ * @param {Uint8Array} buffer Source buffer\r
+ * @param {number} start Source start\r
+ * @param {number} end Source end\r
+ * @returns {string} Base64 encoded string\r
+ */\r
+base64.encode = function encode(buffer, start, end) {\r
+    var parts = null,\r
+        chunk = [];\r
+    var i = 0, // output index\r
+        j = 0, // goto index\r
+        t;     // temporary\r
+    while (start < end) {\r
+        var b = buffer[start++];\r
+        switch (j) {\r
+            case 0:\r
+                chunk[i++] = b64[b >> 2];\r
+                t = (b & 3) << 4;\r
+                j = 1;\r
+                break;\r
+            case 1:\r
+                chunk[i++] = b64[t | b >> 4];\r
+                t = (b & 15) << 2;\r
+                j = 2;\r
+                break;\r
+            case 2:\r
+                chunk[i++] = b64[t | b >> 6];\r
+                chunk[i++] = b64[b & 63];\r
+                j = 0;\r
+                break;\r
+        }\r
+        if (i > 8191) {\r
+            (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r
+            i = 0;\r
+        }\r
+    }\r
+    if (j) {\r
+        chunk[i++] = b64[t];\r
+        chunk[i++] = 61;\r
+        if (j === 1)\r
+            chunk[i++] = 61;\r
+    }\r
+    if (parts) {\r
+        if (i)\r
+            parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r
+        return parts.join("");\r
+    }\r
+    return String.fromCharCode.apply(String, chunk.slice(0, i));\r
+};\r
+\r
+var invalidEncoding = "invalid encoding";\r
+\r
+/**\r
+ * Decodes a base64 encoded string to a buffer.\r
+ * @param {string} string Source string\r
+ * @param {Uint8Array} buffer Destination buffer\r
+ * @param {number} offset Destination offset\r
+ * @returns {number} Number of bytes written\r
+ * @throws {Error} If encoding is invalid\r
+ */\r
+base64.decode = function decode(string, buffer, offset) {\r
+    var start = offset;\r
+    var j = 0, // goto index\r
+        t;     // temporary\r
+    for (var i = 0; i < string.length;) {\r
+        var c = string.charCodeAt(i++);\r
+        if (c === 61 && j > 1)\r
+            break;\r
+        if ((c = s64[c]) === undefined)\r
+            throw Error(invalidEncoding);\r
+        switch (j) {\r
+            case 0:\r
+                t = c;\r
+                j = 1;\r
+                break;\r
+            case 1:\r
+                buffer[offset++] = t << 2 | (c & 48) >> 4;\r
+                t = c;\r
+                j = 2;\r
+                break;\r
+            case 2:\r
+                buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r
+                t = c;\r
+                j = 3;\r
+                break;\r
+            case 3:\r
+                buffer[offset++] = (t & 3) << 6 | c;\r
+                j = 0;\r
+                break;\r
+        }\r
+    }\r
+    if (j === 1)\r
+        throw Error(invalidEncoding);\r
+    return offset - start;\r
+};\r
+\r
+/**\r
+ * Tests if the specified string appears to be base64 encoded.\r
+ * @param {string} string String to test\r
+ * @returns {boolean} `true` if probably base64 encoded, otherwise false\r
+ */\r
+base64.test = function test(string) {\r
+    return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r
+};\r