diff options
author | RaindropsSys <contact@minteck.org> | 2023-04-24 14:03:36 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-04-24 14:03:36 +0200 |
commit | 633c92eae865e957121e08de634aeee11a8b3992 (patch) | |
tree | 09d881bee1dae0b6eee49db1dfaf0f500240606c /includes/external/matrix/node_modules/base-x | |
parent | c4657e4509733699c0f26a3c900bab47e915d5a0 (diff) | |
download | pluralconnect-633c92eae865e957121e08de634aeee11a8b3992.tar.gz pluralconnect-633c92eae865e957121e08de634aeee11a8b3992.tar.bz2 pluralconnect-633c92eae865e957121e08de634aeee11a8b3992.zip |
Updated 18 files, added 1692 files and deleted includes/system/compare.inc (automated)
Diffstat (limited to 'includes/external/matrix/node_modules/base-x')
5 files changed, 271 insertions, 0 deletions
diff --git a/includes/external/matrix/node_modules/base-x/LICENSE.md b/includes/external/matrix/node_modules/base-x/LICENSE.md new file mode 100644 index 0000000..c5dca45 --- /dev/null +++ b/includes/external/matrix/node_modules/base-x/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2018 base-x contributors +Copyright (c) 2014-2018 The Bitcoin Core developers + +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. diff --git a/includes/external/matrix/node_modules/base-x/README.md b/includes/external/matrix/node_modules/base-x/README.md new file mode 100644 index 0000000..10faf66 --- /dev/null +++ b/includes/external/matrix/node_modules/base-x/README.md @@ -0,0 +1,73 @@ +# base-x + +[![NPM Package](https://img.shields.io/npm/v/base-x.svg?style=flat-square)](https://www.npmjs.org/package/base-x) +[![Build Status](https://img.shields.io/travis/cryptocoinjs/base-x.svg?branch=master&style=flat-square)](https://travis-ci.org/cryptocoinjs/base-x) + +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +Fast base encoding / decoding of any given alphabet using bitcoin style leading +zero compression. + +**WARNING:** This module is **NOT RFC3548** compliant, it cannot be used for base16 (hex), base32, or base64 encoding in a standards compliant manner. + +## Example + +Base58 + +``` javascript +var BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' +var bs58 = require('base-x')(BASE58) + +var decoded = bs58.decode('5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr') + +console.log(decoded) +// => Uint8Array(33) [ +// 128, 237, 219, 220, 17, 104, 241, 218, +// 234, 219, 211, 228, 76, 30, 63, 143, +// 90, 40, 76, 32, 41, 247, 138, 210, +// 106, 249, 133, 131, 164, 153, 222, 91, +// 25 +// ] + +console.log(bs58.encode(decoded)) +// => 5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr +``` + +### Alphabets + +See below for a list of commonly recognized alphabets, and their respective base. + +Base | Alphabet +------------- | ------------- +2 | `01` +8 | `01234567` +11 | `0123456789a` +16 | `0123456789abcdef` +32 | `0123456789ABCDEFGHJKMNPQRSTVWXYZ` +32 | `ybndrfg8ejkmcpqxot1uwisza345h769` (z-base-32) +36 | `0123456789abcdefghijklmnopqrstuvwxyz` +58 | `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` +62 | `0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ` +64 | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/` +67 | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~` + + +## How it works + +It encodes octet arrays by doing long divisions on all significant digits in the +array, creating a representation of that number in the new base. Then for every +leading zero in the input (not significant as a number) it will encode as a +single leader character. This is the first in the alphabet and will decode as 8 +bits. The other characters depend upon the base. For example, a base58 alphabet +packs roughly 5.858 bits per character. + +This means the encoded string 000f (using a base16, 0-f alphabet) will actually decode +to 4 bytes unlike a canonical hex encoding which uniformly packs 4 bits into each +character. + +While unusual, this does mean that no padding is required and it works for bases +like 43. + + +## LICENSE [MIT](LICENSE) +A direct derivation of the base58 implementation from [`bitcoin/bitcoin`](https://github.com/bitcoin/bitcoin/blob/f1e2f2a85962c1664e4e55471061af0eaa798d40/src/base58.cpp), generalized for variable length alphabets. diff --git a/includes/external/matrix/node_modules/base-x/package.json b/includes/external/matrix/node_modules/base-x/package.json new file mode 100644 index 0000000..30061da --- /dev/null +++ b/includes/external/matrix/node_modules/base-x/package.json @@ -0,0 +1,46 @@ +{ + "name": "base-x", + "version": "4.0.0", + "description": "Fast base encoding / decoding of any given alphabet", + "keywords": [ + "base-x", + "base58", + "base62", + "base64", + "crypto", + "crytography", + "decode", + "decoding", + "encode", + "encoding" + ], + "homepage": "https://github.com/cryptocoinjs/base-x", + "bugs": { + "url": "https://github.com/cryptocoinjs/base-x/issues" + }, + "license": "MIT", + "author": "Daniel Cousens", + "files": [ + "src" + ], + "main": "src/index.js", + "types": "src/index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/cryptocoinjs/base-x.git" + }, + "scripts": { + "build": "tsc -p ./tsconfig.json ; standard --fix", + "gitdiff": "npm run build && git diff --exit-code", + "prepublish": "npm run gitdiff", + "standard": "standard", + "test": "npm run unit && npm run standard", + "unit": "tape test/*.js" + }, + "devDependencies": { + "@types/node": "12.0.10", + "standard": "^10.0.3", + "tape": "^4.5.1", + "typescript": "3.5.2" + } +} diff --git a/includes/external/matrix/node_modules/base-x/src/index.d.ts b/includes/external/matrix/node_modules/base-x/src/index.d.ts new file mode 100644 index 0000000..f8555ef --- /dev/null +++ b/includes/external/matrix/node_modules/base-x/src/index.d.ts @@ -0,0 +1,9 @@ +declare function base(ALPHABET: string): base.BaseConverter; +export = base; +declare namespace base { + interface BaseConverter { + encode(buffer: Uint8Array | number[]): string; + decodeUnsafe(string: string): Uint8Array | undefined; + decode(string: string): Uint8Array; + } +} diff --git a/includes/external/matrix/node_modules/base-x/src/index.js b/includes/external/matrix/node_modules/base-x/src/index.js new file mode 100644 index 0000000..11e1a13 --- /dev/null +++ b/includes/external/matrix/node_modules/base-x/src/index.js @@ -0,0 +1,121 @@ +'use strict' +// base-x encoding / decoding +// Copyright (c) 2018 base-x contributors +// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp) +// Distributed under the MIT software license, see the accompanying +// file LICENSE or http://www.opensource.org/licenses/mit-license.php. +function base (ALPHABET) { + if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') } + var BASE_MAP = new Uint8Array(256) + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255 + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i) + var xc = x.charCodeAt(0) + if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') } + BASE_MAP[xc] = i + } + var BASE = ALPHABET.length + var LEADER = ALPHABET.charAt(0) + var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up + var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up + function encode (source) { + if (source instanceof Uint8Array) { + } else if (ArrayBuffer.isView(source)) { + source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength) + } else if (Array.isArray(source)) { + source = Uint8Array.from(source) + } + if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') } + if (source.length === 0) { return '' } + // Skip & count leading zeroes. + var zeroes = 0 + var length = 0 + var pbegin = 0 + var pend = source.length + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++ + zeroes++ + } + // Allocate enough space in big-endian base58 representation. + var size = ((pend - pbegin) * iFACTOR + 1) >>> 0 + var b58 = new Uint8Array(size) + // Process the bytes. + while (pbegin !== pend) { + var carry = source[pbegin] + // Apply "b58 = b58 * 256 + ch". + var i = 0 + for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) { + carry += (256 * b58[it1]) >>> 0 + b58[it1] = (carry % BASE) >>> 0 + carry = (carry / BASE) >>> 0 + } + if (carry !== 0) { throw new Error('Non-zero carry') } + length = i + pbegin++ + } + // Skip leading zeroes in base58 result. + var it2 = size - length + while (it2 !== size && b58[it2] === 0) { + it2++ + } + // Translate the result into a string. + var str = LEADER.repeat(zeroes) + for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) } + return str + } + function decodeUnsafe (source) { + if (typeof source !== 'string') { throw new TypeError('Expected String') } + if (source.length === 0) { return new Uint8Array() } + var psz = 0 + // Skip and count leading '1's. + var zeroes = 0 + var length = 0 + while (source[psz] === LEADER) { + zeroes++ + psz++ + } + // Allocate enough space in big-endian base256 representation. + var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up. + var b256 = new Uint8Array(size) + // Process the characters. + while (source[psz]) { + // Decode character + var carry = BASE_MAP[source.charCodeAt(psz)] + // Invalid character + if (carry === 255) { return } + var i = 0 + for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) { + carry += (BASE * b256[it3]) >>> 0 + b256[it3] = (carry % 256) >>> 0 + carry = (carry / 256) >>> 0 + } + if (carry !== 0) { throw new Error('Non-zero carry') } + length = i + psz++ + } + // Skip leading zeroes in b256. + var it4 = size - length + while (it4 !== size && b256[it4] === 0) { + it4++ + } + var vch = new Uint8Array(zeroes + (size - it4)) + var j = zeroes + while (it4 !== size) { + vch[j++] = b256[it4++] + } + return vch + } + function decode (string) { + var buffer = decodeUnsafe(string) + if (buffer) { return buffer } + throw new Error('Non-base' + BASE + ' character') + } + return { + encode: encode, + decodeUnsafe: decodeUnsafe, + decode: decode + } +} +module.exports = base |