mime change
This commit is contained in:
parent
f4990623da
commit
e45b350175
@ -111,34 +111,23 @@ function splitEmailHeadersAndBody(emailBody: string): { headers: string; body: s
|
||||
}
|
||||
|
||||
async function renderEmailContent(email: Email) {
|
||||
if (!email.body) {
|
||||
console.warn('No email body provided');
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
const decoded = await decodeEmail(email.body);
|
||||
if (!email.body) return null;
|
||||
|
||||
// Prefer HTML content if available
|
||||
if (decoded.html) {
|
||||
// For server-side rendering, parse the email
|
||||
const parsedEmail = await decodeEmail(email.body);
|
||||
|
||||
if (parsedEmail.html) {
|
||||
return (
|
||||
<div className="email-content" dir="ltr">
|
||||
<div className="prose max-w-none" dir="ltr" dangerouslySetInnerHTML={{ __html: cleanHtml(decoded.html) }} />
|
||||
{decoded.attachments.length > 0 && renderAttachments(decoded.attachments)}
|
||||
</div>
|
||||
<div
|
||||
className="email-content prose prose-sm max-w-none dark:prose-invert"
|
||||
dangerouslySetInnerHTML={{ __html: parsedEmail.html }}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
// Fall back to text content
|
||||
if (decoded.text) {
|
||||
} else if (parsedEmail.text) {
|
||||
return (
|
||||
<div className="email-content" dir="ltr">
|
||||
<div className="whitespace-pre-wrap font-sans text-base leading-relaxed" dir="ltr">
|
||||
{decoded.text.split('\n').map((line: string, i: number) => (
|
||||
<p key={i} className="mb-2">{line}</p>
|
||||
))}
|
||||
</div>
|
||||
{decoded.attachments.length > 0 && renderAttachments(decoded.attachments)}
|
||||
<div className="email-content whitespace-pre-wrap">
|
||||
{parsedEmail.text}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -147,8 +136,8 @@ async function renderEmailContent(email: Email) {
|
||||
} catch (error) {
|
||||
console.error('Error rendering email content:', error);
|
||||
return (
|
||||
<div className="email-content text-red-500">
|
||||
Error rendering email content
|
||||
<div className="text-red-500">
|
||||
Error rendering email content. Please try again.
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -459,16 +448,16 @@ export default function CourrierPage() {
|
||||
}, [currentView]);
|
||||
|
||||
// Format date for display
|
||||
const formatDate = (dateString: string) => {
|
||||
const date = new Date(dateString);
|
||||
const now = new Date();
|
||||
|
||||
if (date.toDateString() === now.toDateString()) {
|
||||
return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
|
||||
} else {
|
||||
return date.toLocaleDateString([], { month: 'short', day: 'numeric' });
|
||||
function formatDate(date: Date | null): string {
|
||||
if (!date) return '';
|
||||
return new Intl.DateTimeFormat('fr-FR', {
|
||||
day: '2-digit',
|
||||
month: '2-digit',
|
||||
year: 'numeric',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit'
|
||||
}).format(date);
|
||||
}
|
||||
};
|
||||
|
||||
// Get account color
|
||||
const getAccountColor = (accountId: number) => {
|
||||
@ -887,12 +876,7 @@ export default function CourrierPage() {
|
||||
)}
|
||||
</div>
|
||||
<div className="text-sm text-gray-500 whitespace-nowrap">
|
||||
{new Date(selectedEmail.date).toLocaleString([], {
|
||||
month: 'short',
|
||||
day: 'numeric',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit'
|
||||
})}
|
||||
{formatDate(new Date(selectedEmail.date))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -956,7 +940,7 @@ export default function CourrierPage() {
|
||||
</span>
|
||||
</div>
|
||||
<span className="text-xs text-gray-500 whitespace-nowrap">
|
||||
{formatDate(email.date)}
|
||||
{formatDate(new Date(email.date))}
|
||||
</span>
|
||||
</div>
|
||||
<h3 className="text-sm text-gray-900 truncate">
|
||||
|
||||
@ -1,71 +1,70 @@
|
||||
import { simpleParser, ParsedMail, Attachment, HeaderValue, AddressObject } from 'mailparser';
|
||||
import DOMPurify from 'dompurify';
|
||||
import { JSDOM } from 'jsdom';
|
||||
|
||||
export interface DecodedEmail {
|
||||
html: string | false;
|
||||
text: string | false;
|
||||
// Create a window object for DOMPurify
|
||||
const window = new JSDOM('').window;
|
||||
const purify = DOMPurify(window);
|
||||
|
||||
// Check if we're in a browser environment
|
||||
const isBrowser = typeof window !== 'undefined';
|
||||
|
||||
export interface ParsedEmail {
|
||||
subject: string | null;
|
||||
from: string | null;
|
||||
to: string | null;
|
||||
cc: string | null;
|
||||
bcc: string | null;
|
||||
date: Date | null;
|
||||
html: string | null;
|
||||
text: string | null;
|
||||
attachments: Attachment[];
|
||||
headers: Map<string, HeaderValue>;
|
||||
subject: string;
|
||||
from: string;
|
||||
to: string;
|
||||
date: Date;
|
||||
headers: Record<string, HeaderValue>;
|
||||
}
|
||||
|
||||
function getAddressText(address: AddressObject | AddressObject[] | undefined): string {
|
||||
if (!address) return '';
|
||||
function getAddressText(address: AddressObject | AddressObject[] | undefined): string | null {
|
||||
if (!address) return null;
|
||||
if (Array.isArray(address)) {
|
||||
return address.map(addr => addr.value?.[0]?.address || '').filter(Boolean).join(', ');
|
||||
}
|
||||
return address.value?.[0]?.address || '';
|
||||
return address.value?.[0]?.address || null;
|
||||
}
|
||||
|
||||
export async function decodeEmail(emailContent: string): Promise<ParsedEmail> {
|
||||
if (isBrowser) {
|
||||
throw new Error('decodeEmail can only be used on the server side');
|
||||
}
|
||||
|
||||
export async function decodeEmail(rawEmail: string): Promise<DecodedEmail> {
|
||||
try {
|
||||
const parsed = await simpleParser(rawEmail);
|
||||
const parsed = await simpleParser(emailContent);
|
||||
|
||||
return {
|
||||
html: parsed.html || false,
|
||||
text: parsed.text || false,
|
||||
attachments: parsed.attachments || [],
|
||||
headers: parsed.headers,
|
||||
subject: parsed.subject || '',
|
||||
subject: parsed.subject || null,
|
||||
from: getAddressText(parsed.from),
|
||||
to: getAddressText(parsed.to),
|
||||
date: parsed.date || new Date()
|
||||
cc: getAddressText(parsed.cc),
|
||||
bcc: getAddressText(parsed.bcc),
|
||||
date: parsed.date || null,
|
||||
html: parsed.html ? cleanHtml(parsed.html) : null,
|
||||
text: parsed.text || null,
|
||||
attachments: parsed.attachments || [],
|
||||
headers: Object.fromEntries(parsed.headers)
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Error decoding email:', error);
|
||||
throw new Error('Failed to decode email');
|
||||
console.error('Error parsing email:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export function cleanHtml(html: string): string {
|
||||
if (!html) return '';
|
||||
|
||||
// Detect text direction from the content
|
||||
const hasRtlChars = /[\u0591-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(html);
|
||||
const defaultDir = hasRtlChars ? 'rtl' : 'ltr';
|
||||
|
||||
// Basic HTML cleaning while preserving structure
|
||||
const cleaned = html
|
||||
// Remove script and style tags
|
||||
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
|
||||
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
|
||||
// Remove meta tags
|
||||
.replace(/<meta[^>]*>/gi, '')
|
||||
// Remove head and title
|
||||
.replace(/<head[^>]*>[\s\S]*?<\/head>/gi, '')
|
||||
.replace(/<title[^>]*>[\s\S]*?<\/title>/gi, '')
|
||||
// Remove body tags
|
||||
.replace(/<body[^>]*>/gi, '')
|
||||
.replace(/<\/body>/gi, '')
|
||||
// Remove html tags
|
||||
.replace(/<html[^>]*>/gi, '')
|
||||
.replace(/<\/html>/gi, '')
|
||||
// Clean up whitespace
|
||||
.replace(/\s+/g, ' ')
|
||||
.trim();
|
||||
|
||||
// Wrap in a div with the detected direction
|
||||
return `<div dir="${defaultDir}">${cleaned}</div>`;
|
||||
function cleanHtml(html: string): string {
|
||||
try {
|
||||
return purify.sanitize(html, {
|
||||
ALLOWED_TAGS: ['p', 'br', 'div', 'span', 'a', 'img', 'strong', 'em', 'u', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
|
||||
ALLOWED_ATTR: ['href', 'src', 'alt', 'title', 'class', 'style'],
|
||||
ALLOWED_URI_REGEXP: /^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error cleaning HTML:', error);
|
||||
return html;
|
||||
}
|
||||
}
|
||||
83
node_modules/.package-lock.json
generated
vendored
83
node_modules/.package-lock.json
generated
vendored
@ -2376,6 +2376,18 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/jsdom": {
|
||||
"version": "21.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
|
||||
"integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/tough-cookie": "*",
|
||||
"parse5": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/mailparser": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/mailparser/-/mailparser-3.4.5.tgz",
|
||||
@ -2449,6 +2461,13 @@
|
||||
"@types/react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/tough-cookie": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
|
||||
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/trusted-types": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||
@ -2590,6 +2609,26 @@
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/binary-extensions": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||
@ -2654,6 +2693,30 @@
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
||||
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/busboy": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
|
||||
@ -3559,6 +3622,26 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ieee754": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/imap": {
|
||||
"version": "0.8.19",
|
||||
"resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz",
|
||||
|
||||
21
node_modules/@types/jsdom/LICENSE
generated
vendored
Normal file
21
node_modules/@types/jsdom/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
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
|
||||
15
node_modules/@types/jsdom/README.md
generated
vendored
Normal file
15
node_modules/@types/jsdom/README.md
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
# Installation
|
||||
> `npm install --save @types/jsdom`
|
||||
|
||||
# Summary
|
||||
This package contains type definitions for jsdom (https://github.com/jsdom/jsdom).
|
||||
|
||||
# Details
|
||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jsdom.
|
||||
|
||||
### Additional Details
|
||||
* Last updated: Thu, 30 May 2024 17:06:56 GMT
|
||||
* Dependencies: [@types/node](https://npmjs.com/package/@types/node), [@types/tough-cookie](https://npmjs.com/package/@types/tough-cookie), [parse5](https://npmjs.com/package/parse5)
|
||||
|
||||
# Credits
|
||||
These definitions were written by [Leonard Thieu](https://github.com/leonard-thieu), [Johan Palmfjord](https://github.com/palmfjord), and [ExE Boss](https://github.com/ExE-Boss).
|
||||
456
node_modules/@types/jsdom/base.d.ts
generated
vendored
Normal file
456
node_modules/@types/jsdom/base.d.ts
generated
vendored
Normal file
@ -0,0 +1,456 @@
|
||||
/// <reference lib="dom" />
|
||||
/// <reference lib="dom.iterable" />
|
||||
/// <reference types="node" />
|
||||
|
||||
import { EventEmitter } from "events";
|
||||
import { Token } from "parse5";
|
||||
import * as tough from "tough-cookie";
|
||||
import { Context } from "vm";
|
||||
|
||||
// Needed to allow adding properties to `DOMWindow` that are only supported
|
||||
// in newer TypeScript versions:
|
||||
// eslint-disable-next-line @definitelytyped/no-declare-current-package
|
||||
declare module "jsdom" {
|
||||
const toughCookie: typeof tough;
|
||||
class CookieJar extends tough.CookieJar {}
|
||||
|
||||
interface AbortablePromise<T> extends Promise<T> {
|
||||
abort(): void;
|
||||
}
|
||||
|
||||
class JSDOM {
|
||||
constructor(html?: string | Buffer | BinaryData, options?: ConstructorOptions);
|
||||
|
||||
static fromURL(url: string, options?: BaseOptions): Promise<JSDOM>;
|
||||
static fromFile(url: string, options?: FileOptions): Promise<JSDOM>;
|
||||
static fragment(html: string): DocumentFragment;
|
||||
|
||||
readonly window: DOMWindow;
|
||||
readonly virtualConsole: VirtualConsole;
|
||||
readonly cookieJar: CookieJar;
|
||||
|
||||
/**
|
||||
* The serialize() method will return the HTML serialization of the document, including the doctype.
|
||||
*/
|
||||
serialize(): string;
|
||||
|
||||
/**
|
||||
* The nodeLocation() method will find where a DOM node is within the source document,
|
||||
* returning the parse5 location info for the node.
|
||||
*
|
||||
* @throws {Error} If the JSDOM was not created with `includeNodeLocations`
|
||||
*/
|
||||
nodeLocation(node: Node): Token.Location | null | undefined;
|
||||
|
||||
/**
|
||||
* The built-in `vm` module of Node.js is what underpins JSDOM's script-running magic.
|
||||
* Some advanced use cases, like pre-compiling a script and then running it multiple
|
||||
* times, benefit from using the `vm` module directly with a jsdom-created `Window`.
|
||||
*
|
||||
* @throws {TypeError} If the `JSDOM` instance was created without `runScripts` set, or if you are using JSDOM in a web browser.
|
||||
*/
|
||||
getInternalVMContext(): Context;
|
||||
|
||||
/**
|
||||
* The reconfigure method allows changing the `window.top` and url from the outside.
|
||||
*/
|
||||
reconfigure(settings: ReconfigureSettings): void;
|
||||
}
|
||||
|
||||
class ResourceLoader {
|
||||
fetch(url: string, options: FetchOptions): AbortablePromise<Buffer> | null;
|
||||
|
||||
constructor(obj?: ResourceLoaderConstructorOptions);
|
||||
}
|
||||
|
||||
class VirtualConsole extends EventEmitter {
|
||||
on<K extends keyof Console>(method: K, callback: Console[K]): this;
|
||||
on(event: "jsdomError", callback: (e: Error) => void): this;
|
||||
|
||||
sendTo(console: Console, options?: VirtualConsoleSendToOptions): this;
|
||||
}
|
||||
|
||||
type BinaryData = ArrayBufferLike | NodeJS.ArrayBufferView;
|
||||
interface BaseOptions {
|
||||
/**
|
||||
* referrer just affects the value read from document.referrer.
|
||||
* It defaults to no referrer (which reflects as the empty string).
|
||||
*/
|
||||
referrer?: string | undefined;
|
||||
|
||||
/**
|
||||
* userAgent affects the value read from navigator.userAgent, as well as the User-Agent header sent while fetching subresources.
|
||||
*
|
||||
* @default
|
||||
* `Mozilla/5.0 (${process.platform}) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/${jsdomVersion}`
|
||||
*/
|
||||
userAgent?: string | undefined;
|
||||
|
||||
/**
|
||||
* `includeNodeLocations` preserves the location info produced by the HTML parser,
|
||||
* allowing you to retrieve it with the nodeLocation() method (described below).
|
||||
*
|
||||
* It defaults to false to give the best performance,
|
||||
* and cannot be used with an XML content type since our XML parser does not support location info.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
includeNodeLocations?: boolean | undefined;
|
||||
runScripts?: "dangerously" | "outside-only" | undefined;
|
||||
resources?: "usable" | ResourceLoader | undefined;
|
||||
virtualConsole?: VirtualConsole | undefined;
|
||||
cookieJar?: CookieJar | undefined;
|
||||
|
||||
/**
|
||||
* jsdom does not have the capability to render visual content, and will act like a headless browser by default.
|
||||
* It provides hints to web pages through APIs such as document.hidden that their content is not visible.
|
||||
*
|
||||
* When the `pretendToBeVisual` option is set to `true`, jsdom will pretend that it is rendering and displaying
|
||||
* content.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
pretendToBeVisual?: boolean | undefined;
|
||||
beforeParse?(window: DOMWindow): void;
|
||||
}
|
||||
|
||||
interface FileOptions extends BaseOptions {
|
||||
/**
|
||||
* url sets the value returned by window.location, document.URL, and document.documentURI,
|
||||
* and affects things like resolution of relative URLs within the document
|
||||
* and the same-origin restrictions and referrer used while fetching subresources.
|
||||
* It will default to a file URL corresponding to the given filename, instead of to "about:blank".
|
||||
*/
|
||||
url?: string | undefined;
|
||||
|
||||
/**
|
||||
* contentType affects the value read from document.contentType, and how the document is parsed: as HTML or as XML.
|
||||
* Values that are not "text/html" or an XML mime type will throw. It will default to "application/xhtml+xml" if
|
||||
* the given filename ends in .xhtml or .xml; otherwise it will continue to default to "text/html".
|
||||
*/
|
||||
contentType?: string | undefined;
|
||||
}
|
||||
|
||||
interface ConstructorOptions extends BaseOptions {
|
||||
/**
|
||||
* url sets the value returned by window.location, document.URL, and document.documentURI,
|
||||
* and affects things like resolution of relative URLs within the document
|
||||
* and the same-origin restrictions and referrer used while fetching subresources.
|
||||
* It defaults to "about:blank".
|
||||
*/
|
||||
url?: string | undefined;
|
||||
|
||||
/**
|
||||
* contentType affects the value read from document.contentType, and how the document is parsed: as HTML or as XML.
|
||||
* Values that are not "text/html" or an XML mime type will throw. It defaults to "text/html".
|
||||
*/
|
||||
contentType?: string | undefined;
|
||||
|
||||
/**
|
||||
* The maximum size in code units for the separate storage areas used by localStorage and sessionStorage.
|
||||
* Attempts to store data larger than this limit will cause a DOMException to be thrown. By default, it is set
|
||||
* to 5,000,000 code units per origin, as inspired by the HTML specification.
|
||||
*
|
||||
* @default 5_000_000
|
||||
*/
|
||||
storageQuota?: number | undefined;
|
||||
}
|
||||
|
||||
type SupportedContentTypes =
|
||||
| "text/html"
|
||||
| "application/xhtml+xml"
|
||||
| "application/xml"
|
||||
| "text/xml"
|
||||
| "image/svg+xml";
|
||||
|
||||
interface VirtualConsoleSendToOptions {
|
||||
omitJSDOMErrors: boolean;
|
||||
}
|
||||
|
||||
interface ReconfigureSettings {
|
||||
windowTop?: DOMWindow | undefined;
|
||||
url?: string | undefined;
|
||||
}
|
||||
|
||||
interface FetchOptions {
|
||||
cookieJar?: CookieJar | undefined;
|
||||
referrer?: string | undefined;
|
||||
accept?: string | undefined;
|
||||
element?: HTMLScriptElement | HTMLLinkElement | HTMLIFrameElement | HTMLImageElement | undefined;
|
||||
}
|
||||
|
||||
interface ResourceLoaderConstructorOptions {
|
||||
strictSSL?: boolean | undefined;
|
||||
proxy?: string | undefined;
|
||||
userAgent?: string | undefined;
|
||||
}
|
||||
|
||||
interface DOMWindow extends Omit<Window, "top" | "self" | "window"> {
|
||||
[key: string]: any;
|
||||
|
||||
/* node_modules/jsdom/browser/Window.js */
|
||||
Window: typeof Window;
|
||||
readonly top: DOMWindow;
|
||||
readonly self: DOMWindow;
|
||||
readonly window: DOMWindow;
|
||||
|
||||
/* ECMAScript Globals */
|
||||
globalThis: DOMWindow;
|
||||
readonly ["Infinity"]: number;
|
||||
readonly ["NaN"]: number;
|
||||
readonly undefined: undefined;
|
||||
|
||||
eval(script: string): unknown;
|
||||
parseInt(s: string, radix?: number): number;
|
||||
parseFloat(string: string): number;
|
||||
isNaN(number: number): boolean;
|
||||
isFinite(number: number): boolean;
|
||||
decodeURI(encodedURI: string): string;
|
||||
decodeURIComponent(encodedURIComponent: string): string;
|
||||
encodeURI(uri: string): string;
|
||||
encodeURIComponent(uriComponent: string | number | boolean): string;
|
||||
escape(string: string): string;
|
||||
unescape(string: string): string;
|
||||
|
||||
Array: typeof Array;
|
||||
ArrayBuffer: typeof ArrayBuffer;
|
||||
Atomics: typeof Atomics;
|
||||
BigInt: typeof BigInt;
|
||||
BigInt64Array: typeof BigInt64Array;
|
||||
BigUint64Array: typeof BigUint64Array;
|
||||
Boolean: typeof Boolean;
|
||||
DataView: typeof DataView;
|
||||
Date: typeof Date;
|
||||
Error: typeof Error;
|
||||
EvalError: typeof EvalError;
|
||||
Float32Array: typeof Float32Array;
|
||||
Float64Array: typeof Float64Array;
|
||||
Function: typeof Function;
|
||||
Int16Array: typeof Int16Array;
|
||||
Int32Array: typeof Int32Array;
|
||||
Int8Array: typeof Int8Array;
|
||||
Intl: typeof Intl;
|
||||
JSON: typeof JSON;
|
||||
Map: typeof Map;
|
||||
Math: typeof Math;
|
||||
Number: typeof Number;
|
||||
Object: typeof Object;
|
||||
Promise: typeof Promise;
|
||||
Proxy: typeof Proxy;
|
||||
RangeError: typeof RangeError;
|
||||
ReferenceError: typeof ReferenceError;
|
||||
Reflect: typeof Reflect;
|
||||
RegExp: typeof RegExp;
|
||||
Set: typeof Set;
|
||||
SharedArrayBuffer: typeof SharedArrayBuffer;
|
||||
String: typeof String;
|
||||
Symbol: typeof Symbol;
|
||||
SyntaxError: typeof SyntaxError;
|
||||
TypeError: typeof TypeError;
|
||||
URIError: typeof URIError;
|
||||
Uint16Array: typeof Uint16Array;
|
||||
Uint32Array: typeof Uint32Array;
|
||||
Uint8Array: typeof Uint8Array;
|
||||
Uint8ClampedArray: typeof Uint8ClampedArray;
|
||||
WeakMap: typeof WeakMap;
|
||||
WeakSet: typeof WeakSet;
|
||||
WebAssembly: typeof WebAssembly;
|
||||
|
||||
/* node_modules/jsdom/living/interfaces.js */
|
||||
DOMException: typeof DOMException;
|
||||
|
||||
URL: typeof URL;
|
||||
URLSearchParams: typeof URLSearchParams;
|
||||
|
||||
EventTarget: typeof EventTarget;
|
||||
|
||||
NamedNodeMap: typeof NamedNodeMap;
|
||||
Node: typeof Node;
|
||||
Attr: typeof Attr;
|
||||
Element: typeof Element;
|
||||
DocumentFragment: typeof DocumentFragment;
|
||||
DOMImplementation: typeof DOMImplementation;
|
||||
Document: typeof Document;
|
||||
HTMLDocument: typeof HTMLDocument;
|
||||
XMLDocument: typeof XMLDocument;
|
||||
CharacterData: typeof CharacterData;
|
||||
Text: typeof Text;
|
||||
CDATASection: typeof CDATASection;
|
||||
ProcessingInstruction: typeof ProcessingInstruction;
|
||||
Comment: typeof Comment;
|
||||
DocumentType: typeof DocumentType;
|
||||
NodeList: typeof NodeList;
|
||||
HTMLCollection: typeof HTMLCollection;
|
||||
HTMLOptionsCollection: typeof HTMLOptionsCollection;
|
||||
DOMStringMap: typeof DOMStringMap;
|
||||
DOMTokenList: typeof DOMTokenList;
|
||||
|
||||
StyleSheetList: typeof StyleSheetList;
|
||||
|
||||
HTMLElement: typeof HTMLElement;
|
||||
HTMLHeadElement: typeof HTMLHeadElement;
|
||||
HTMLTitleElement: typeof HTMLTitleElement;
|
||||
HTMLBaseElement: typeof HTMLBaseElement;
|
||||
HTMLLinkElement: typeof HTMLLinkElement;
|
||||
HTMLMetaElement: typeof HTMLMetaElement;
|
||||
HTMLStyleElement: typeof HTMLStyleElement;
|
||||
HTMLBodyElement: typeof HTMLBodyElement;
|
||||
HTMLHeadingElement: typeof HTMLHeadingElement;
|
||||
HTMLParagraphElement: typeof HTMLParagraphElement;
|
||||
HTMLHRElement: typeof HTMLHRElement;
|
||||
HTMLPreElement: typeof HTMLPreElement;
|
||||
HTMLUListElement: typeof HTMLUListElement;
|
||||
HTMLOListElement: typeof HTMLOListElement;
|
||||
HTMLLIElement: typeof HTMLLIElement;
|
||||
HTMLMenuElement: typeof HTMLMenuElement;
|
||||
HTMLDListElement: typeof HTMLDListElement;
|
||||
HTMLDivElement: typeof HTMLDivElement;
|
||||
HTMLAnchorElement: typeof HTMLAnchorElement;
|
||||
HTMLAreaElement: typeof HTMLAreaElement;
|
||||
HTMLBRElement: typeof HTMLBRElement;
|
||||
HTMLButtonElement: typeof HTMLButtonElement;
|
||||
HTMLCanvasElement: typeof HTMLCanvasElement;
|
||||
HTMLDataElement: typeof HTMLDataElement;
|
||||
HTMLDataListElement: typeof HTMLDataListElement;
|
||||
HTMLDetailsElement: typeof HTMLDetailsElement;
|
||||
HTMLDialogElement: {
|
||||
new(): HTMLDialogElement;
|
||||
readonly prototype: HTMLDialogElement;
|
||||
};
|
||||
HTMLDirectoryElement: typeof HTMLDirectoryElement;
|
||||
HTMLFieldSetElement: typeof HTMLFieldSetElement;
|
||||
HTMLFontElement: typeof HTMLFontElement;
|
||||
HTMLFormElement: typeof HTMLFormElement;
|
||||
HTMLHtmlElement: typeof HTMLHtmlElement;
|
||||
HTMLImageElement: typeof HTMLImageElement;
|
||||
HTMLInputElement: typeof HTMLInputElement;
|
||||
HTMLLabelElement: typeof HTMLLabelElement;
|
||||
HTMLLegendElement: typeof HTMLLegendElement;
|
||||
HTMLMapElement: typeof HTMLMapElement;
|
||||
HTMLMarqueeElement: typeof HTMLMarqueeElement;
|
||||
HTMLMediaElement: typeof HTMLMediaElement;
|
||||
HTMLMeterElement: typeof HTMLMeterElement;
|
||||
HTMLModElement: typeof HTMLModElement;
|
||||
HTMLOptGroupElement: typeof HTMLOptGroupElement;
|
||||
HTMLOptionElement: typeof HTMLOptionElement;
|
||||
HTMLOutputElement: typeof HTMLOutputElement;
|
||||
HTMLPictureElement: typeof HTMLPictureElement;
|
||||
HTMLProgressElement: typeof HTMLProgressElement;
|
||||
HTMLQuoteElement: typeof HTMLQuoteElement;
|
||||
HTMLScriptElement: typeof HTMLScriptElement;
|
||||
HTMLSelectElement: typeof HTMLSelectElement;
|
||||
HTMLSlotElement: typeof HTMLSlotElement;
|
||||
HTMLSourceElement: typeof HTMLSourceElement;
|
||||
HTMLSpanElement: typeof HTMLSpanElement;
|
||||
HTMLTableCaptionElement: typeof HTMLTableCaptionElement;
|
||||
HTMLTableCellElement: typeof HTMLTableCellElement;
|
||||
HTMLTableColElement: typeof HTMLTableColElement;
|
||||
HTMLTableElement: typeof HTMLTableElement;
|
||||
HTMLTimeElement: typeof HTMLTimeElement;
|
||||
HTMLTableRowElement: typeof HTMLTableRowElement;
|
||||
HTMLTableSectionElement: typeof HTMLTableSectionElement;
|
||||
HTMLTemplateElement: typeof HTMLTemplateElement;
|
||||
HTMLTextAreaElement: typeof HTMLTextAreaElement;
|
||||
HTMLUnknownElement: typeof HTMLUnknownElement;
|
||||
HTMLFrameElement: typeof HTMLFrameElement;
|
||||
HTMLFrameSetElement: typeof HTMLFrameSetElement;
|
||||
HTMLIFrameElement: typeof HTMLIFrameElement;
|
||||
HTMLEmbedElement: typeof HTMLEmbedElement;
|
||||
HTMLObjectElement: typeof HTMLObjectElement;
|
||||
HTMLParamElement: typeof HTMLParamElement;
|
||||
HTMLVideoElement: typeof HTMLVideoElement;
|
||||
HTMLAudioElement: typeof HTMLAudioElement;
|
||||
HTMLTrackElement: typeof HTMLTrackElement;
|
||||
|
||||
SVGElement: typeof SVGElement;
|
||||
SVGGraphicsElement: typeof SVGGraphicsElement;
|
||||
SVGSVGElement: typeof SVGSVGElement;
|
||||
SVGTitleElement: typeof SVGTitleElement;
|
||||
SVGAnimatedString: typeof SVGAnimatedString;
|
||||
SVGNumber: typeof SVGNumber;
|
||||
SVGStringList: typeof SVGStringList;
|
||||
|
||||
Event: typeof Event;
|
||||
CloseEvent: typeof CloseEvent;
|
||||
CustomEvent: typeof CustomEvent;
|
||||
MessageEvent: typeof MessageEvent;
|
||||
ErrorEvent: typeof ErrorEvent;
|
||||
HashChangeEvent: typeof HashChangeEvent;
|
||||
PopStateEvent: typeof PopStateEvent;
|
||||
StorageEvent: typeof StorageEvent;
|
||||
ProgressEvent: typeof ProgressEvent;
|
||||
PageTransitionEvent: typeof PageTransitionEvent;
|
||||
|
||||
UIEvent: typeof UIEvent;
|
||||
FocusEvent: typeof FocusEvent;
|
||||
MouseEvent: typeof MouseEvent;
|
||||
KeyboardEvent: typeof KeyboardEvent;
|
||||
TouchEvent: typeof TouchEvent;
|
||||
CompositionEvent: typeof CompositionEvent;
|
||||
WheelEvent: typeof WheelEvent;
|
||||
|
||||
BarProp: typeof BarProp;
|
||||
Location: typeof Location;
|
||||
History: typeof History;
|
||||
Screen: typeof Screen;
|
||||
Performance: typeof Performance;
|
||||
Navigator: typeof Navigator;
|
||||
|
||||
PluginArray: typeof PluginArray;
|
||||
MimeTypeArray: typeof MimeTypeArray;
|
||||
Plugin: typeof Plugin;
|
||||
MimeType: typeof MimeType;
|
||||
|
||||
FileReader: typeof FileReader;
|
||||
Blob: typeof Blob;
|
||||
File: typeof File;
|
||||
FileList: typeof FileList;
|
||||
ValidityState: typeof ValidityState;
|
||||
|
||||
DOMParser: typeof DOMParser;
|
||||
XMLSerializer: typeof XMLSerializer;
|
||||
|
||||
FormData: typeof FormData;
|
||||
XMLHttpRequestEventTarget: typeof XMLHttpRequestEventTarget;
|
||||
XMLHttpRequestUpload: typeof XMLHttpRequestUpload;
|
||||
XMLHttpRequest: typeof XMLHttpRequest;
|
||||
WebSocket: typeof WebSocket;
|
||||
|
||||
NodeFilter: typeof NodeFilter;
|
||||
NodeIterator: typeof NodeIterator;
|
||||
TreeWalker: typeof TreeWalker;
|
||||
|
||||
AbstractRange: typeof AbstractRange;
|
||||
Range: typeof Range;
|
||||
StaticRange: typeof StaticRange;
|
||||
Selection: typeof Selection;
|
||||
|
||||
Storage: typeof Storage;
|
||||
|
||||
CustomElementRegistry: typeof CustomElementRegistry;
|
||||
ShadowRoot: typeof ShadowRoot;
|
||||
|
||||
MutationObserver: typeof MutationObserver;
|
||||
MutationRecord: typeof MutationRecord;
|
||||
|
||||
Headers: typeof Headers;
|
||||
AbortController: typeof AbortController;
|
||||
AbortSignal: typeof AbortSignal;
|
||||
|
||||
/* node_modules/jsdom/level2/style.js */
|
||||
StyleSheet: typeof StyleSheet;
|
||||
MediaList: typeof MediaList;
|
||||
CSSStyleSheet: typeof CSSStyleSheet;
|
||||
CSSRule: typeof CSSRule;
|
||||
CSSStyleRule: typeof CSSStyleRule;
|
||||
CSSMediaRule: typeof CSSMediaRule;
|
||||
CSSImportRule: typeof CSSImportRule;
|
||||
CSSStyleDeclaration: typeof CSSStyleDeclaration;
|
||||
|
||||
/* node_modules/jsdom/level3/xpath.js */
|
||||
// XPathException: typeof XPathException;
|
||||
XPathExpression: typeof XPathExpression;
|
||||
XPathResult: typeof XPathResult;
|
||||
XPathEvaluator: typeof XPathEvaluator;
|
||||
}
|
||||
}
|
||||
18
node_modules/@types/jsdom/index.d.ts
generated
vendored
Normal file
18
node_modules/@types/jsdom/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/// <reference path="base.d.ts"/>
|
||||
|
||||
// eslint-disable-next-line @definitelytyped/no-declare-current-package
|
||||
declare module "jsdom" {
|
||||
interface DOMWindow {
|
||||
FinalizationRegistry: FinalizationRegistryConstructor;
|
||||
WeakRef: WeakRefConstructor;
|
||||
InputEvent: typeof InputEvent;
|
||||
External: typeof External;
|
||||
}
|
||||
}
|
||||
|
||||
// Necessary to avoid breaking dependents because of the dependency
|
||||
// on the `ESNext.WeakRef` lib:
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||||
interface FinalizationRegistryConstructor {}
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||||
interface WeakRefConstructor {}
|
||||
45
node_modules/@types/jsdom/package.json
generated
vendored
Normal file
45
node_modules/@types/jsdom/package.json
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
{
|
||||
"name": "@types/jsdom",
|
||||
"version": "21.1.7",
|
||||
"description": "TypeScript definitions for jsdom",
|
||||
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jsdom",
|
||||
"license": "MIT",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Leonard Thieu",
|
||||
"githubUsername": "leonard-thieu",
|
||||
"url": "https://github.com/leonard-thieu"
|
||||
},
|
||||
{
|
||||
"name": "Johan Palmfjord",
|
||||
"githubUsername": "palmfjord",
|
||||
"url": "https://github.com/palmfjord"
|
||||
},
|
||||
{
|
||||
"name": "ExE Boss",
|
||||
"githubUsername": "ExE-Boss",
|
||||
"url": "https://github.com/ExE-Boss"
|
||||
}
|
||||
],
|
||||
"main": "",
|
||||
"types": "index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./index.d.ts"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
||||
"directory": "types/jsdom"
|
||||
},
|
||||
"scripts": {},
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/tough-cookie": "*",
|
||||
"parse5": "^7.0.0"
|
||||
},
|
||||
"typesPublisherContentHash": "ff2b3302adf7f1ae40db6101f0c6d5f7ba972ee3864ae371e975f9545d93d8bb",
|
||||
"typeScriptVersion": "4.7"
|
||||
}
|
||||
21
node_modules/@types/tough-cookie/LICENSE
generated
vendored
Normal file
21
node_modules/@types/tough-cookie/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
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
|
||||
15
node_modules/@types/tough-cookie/README.md
generated
vendored
Normal file
15
node_modules/@types/tough-cookie/README.md
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
# Installation
|
||||
> `npm install --save @types/tough-cookie`
|
||||
|
||||
# Summary
|
||||
This package contains type definitions for tough-cookie (https://github.com/salesforce/tough-cookie).
|
||||
|
||||
# Details
|
||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/tough-cookie.
|
||||
|
||||
### Additional Details
|
||||
* Last updated: Tue, 07 Nov 2023 20:08:00 GMT
|
||||
* Dependencies: none
|
||||
|
||||
# Credits
|
||||
These definitions were written by [Leonard Thieu](https://github.com/leonard-thieu), [LiJinyao](https://github.com/LiJinyao), and [Michael Wei](https://github.com/no2chem).
|
||||
321
node_modules/@types/tough-cookie/index.d.ts
generated
vendored
Normal file
321
node_modules/@types/tough-cookie/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,321 @@
|
||||
export const version: string;
|
||||
|
||||
export const PrefixSecurityEnum: Readonly<{
|
||||
DISABLED: string;
|
||||
SILENT: string;
|
||||
STRICT: string;
|
||||
}>;
|
||||
|
||||
/**
|
||||
* Parse a cookie date string into a Date.
|
||||
* Parses according to RFC6265 Section 5.1.1, not Date.parse().
|
||||
*/
|
||||
export function parseDate(string: string): Date;
|
||||
|
||||
/**
|
||||
* Format a Date into a RFC1123 string (the RFC6265-recommended format).
|
||||
*/
|
||||
export function formatDate(date: Date): string;
|
||||
|
||||
/**
|
||||
* Transforms a domain-name into a canonical domain-name.
|
||||
* The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot
|
||||
* and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265).
|
||||
* For the most part, this function is idempotent (can be run again on its output without ill effects).
|
||||
*/
|
||||
export function canonicalDomain(str: string): string;
|
||||
|
||||
/**
|
||||
* Answers "does this real domain match the domain in a cookie?".
|
||||
* The str is the "current" domain-name and the domStr is the "cookie" domain-name.
|
||||
* Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".
|
||||
*
|
||||
* The canonicalize parameter will run the other two parameters through canonicalDomain or not.
|
||||
*/
|
||||
export function domainMatch(str: string, domStr: string, canonicalize?: boolean): boolean;
|
||||
|
||||
/**
|
||||
* Given a current request/response path, gives the Path apropriate for storing in a cookie.
|
||||
* This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC.
|
||||
*
|
||||
* The path parameter MUST be only the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.).
|
||||
* This is the .pathname property of node's uri.parse() output.
|
||||
*/
|
||||
export function defaultPath(path: string): string;
|
||||
|
||||
/**
|
||||
* Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4.
|
||||
* Returns a boolean.
|
||||
*
|
||||
* This is essentially a prefix-match where cookiePath is a prefix of reqPath.
|
||||
*/
|
||||
export function pathMatch(reqPath: string, cookiePath: string): boolean;
|
||||
|
||||
/**
|
||||
* alias for Cookie.parse(cookieString[, options])
|
||||
*/
|
||||
export function parse(cookieString: string, options?: Cookie.ParseOptions): Cookie | undefined;
|
||||
|
||||
/**
|
||||
* alias for Cookie.fromJSON(string)
|
||||
*/
|
||||
export function fromJSON(string: string): Cookie;
|
||||
|
||||
export function getPublicSuffix(hostname: string): string | null;
|
||||
|
||||
export function cookieCompare(a: Cookie, b: Cookie): number;
|
||||
|
||||
export function permuteDomain(domain: string, allowSpecialUseDomain?: boolean): string[];
|
||||
|
||||
export function permutePath(path: string): string[];
|
||||
|
||||
export class Cookie {
|
||||
static parse(cookieString: string, options?: Cookie.ParseOptions): Cookie | undefined;
|
||||
|
||||
static fromJSON(strOrObj: string | object): Cookie | null;
|
||||
|
||||
constructor(properties?: Cookie.Properties);
|
||||
|
||||
key: string;
|
||||
value: string;
|
||||
expires: Date | "Infinity";
|
||||
maxAge: number | "Infinity" | "-Infinity";
|
||||
domain: string | null;
|
||||
path: string | null;
|
||||
secure: boolean;
|
||||
httpOnly: boolean;
|
||||
extensions: string[] | null;
|
||||
creation: Date | null;
|
||||
creationIndex: number;
|
||||
|
||||
hostOnly: boolean | null;
|
||||
pathIsDefault: boolean | null;
|
||||
lastAccessed: Date | null;
|
||||
sameSite: string;
|
||||
|
||||
toString(): string;
|
||||
|
||||
cookieString(): string;
|
||||
|
||||
setExpires(exp: Date | string): void;
|
||||
|
||||
setMaxAge(number: number): void;
|
||||
|
||||
expiryTime(now?: number): number;
|
||||
|
||||
expiryDate(now?: number): Date;
|
||||
|
||||
TTL(now?: Date): number | typeof Infinity;
|
||||
|
||||
isPersistent(): boolean;
|
||||
|
||||
canonicalizedDomain(): string | null;
|
||||
|
||||
cdomain(): string | null;
|
||||
|
||||
inspect(): string;
|
||||
|
||||
toJSON(): { [key: string]: any };
|
||||
|
||||
clone(): Cookie;
|
||||
|
||||
validate(): boolean | string;
|
||||
}
|
||||
|
||||
export namespace Cookie {
|
||||
interface ParseOptions {
|
||||
loose?: boolean | undefined;
|
||||
}
|
||||
|
||||
interface Properties {
|
||||
key?: string | undefined;
|
||||
value?: string | undefined;
|
||||
expires?: Date | "Infinity" | undefined;
|
||||
maxAge?: number | "Infinity" | "-Infinity" | undefined;
|
||||
domain?: string | undefined;
|
||||
path?: string | undefined;
|
||||
secure?: boolean | undefined;
|
||||
httpOnly?: boolean | undefined;
|
||||
extensions?: string[] | undefined;
|
||||
creation?: Date | undefined;
|
||||
creationIndex?: number | undefined;
|
||||
|
||||
hostOnly?: boolean | undefined;
|
||||
pathIsDefault?: boolean | undefined;
|
||||
lastAccessed?: Date | undefined;
|
||||
sameSite?: string | undefined;
|
||||
}
|
||||
|
||||
interface Serialized {
|
||||
[key: string]: any;
|
||||
}
|
||||
}
|
||||
|
||||
export class CookieJar {
|
||||
static deserialize(serialized: CookieJar.Serialized | string, store?: Store): Promise<CookieJar>;
|
||||
static deserialize(
|
||||
serialized: CookieJar.Serialized | string,
|
||||
store: Store,
|
||||
cb: (err: Error | null, object: CookieJar) => void,
|
||||
): void;
|
||||
static deserialize(
|
||||
serialized: CookieJar.Serialized | string,
|
||||
cb: (err: Error | null, object: CookieJar) => void,
|
||||
): void;
|
||||
|
||||
static deserializeSync(serialized: CookieJar.Serialized | string, store?: Store): CookieJar;
|
||||
|
||||
static fromJSON(string: string): CookieJar;
|
||||
|
||||
constructor(store?: Store, options?: CookieJar.Options);
|
||||
|
||||
setCookie(
|
||||
cookieOrString: Cookie | string,
|
||||
currentUrl: string,
|
||||
options?: CookieJar.SetCookieOptions,
|
||||
): Promise<Cookie>;
|
||||
setCookie(
|
||||
cookieOrString: Cookie | string,
|
||||
currentUrl: string,
|
||||
options: CookieJar.SetCookieOptions,
|
||||
cb: (err: Error | null, cookie: Cookie) => void,
|
||||
): void;
|
||||
setCookie(
|
||||
cookieOrString: Cookie | string,
|
||||
currentUrl: string,
|
||||
cb: (err: Error | null, cookie: Cookie) => void,
|
||||
): void;
|
||||
|
||||
setCookieSync(cookieOrString: Cookie | string, currentUrl: string, options?: CookieJar.SetCookieOptions): Cookie;
|
||||
|
||||
getCookies(currentUrl: string, options?: CookieJar.GetCookiesOptions): Promise<Cookie[]>;
|
||||
getCookies(
|
||||
currentUrl: string,
|
||||
options: CookieJar.GetCookiesOptions,
|
||||
cb: (err: Error | null, cookies: Cookie[]) => void,
|
||||
): void;
|
||||
getCookies(currentUrl: string, cb: (err: Error | null, cookies: Cookie[]) => void): void;
|
||||
|
||||
getCookiesSync(currentUrl: string, options?: CookieJar.GetCookiesOptions): Cookie[];
|
||||
|
||||
getCookieString(currentUrl: string, options?: CookieJar.GetCookiesOptions): Promise<string>;
|
||||
getCookieString(
|
||||
currentUrl: string,
|
||||
options: CookieJar.GetCookiesOptions,
|
||||
cb: (err: Error | null, cookies: string) => void,
|
||||
): void;
|
||||
getCookieString(currentUrl: string, cb: (err: Error | null, cookies: string) => void): void;
|
||||
|
||||
getCookieStringSync(currentUrl: string, options?: CookieJar.GetCookiesOptions): string;
|
||||
|
||||
getSetCookieStrings(currentUrl: string, options?: CookieJar.GetCookiesOptions): Promise<string[]>;
|
||||
getSetCookieStrings(
|
||||
currentUrl: string,
|
||||
options: CookieJar.GetCookiesOptions,
|
||||
cb: (err: Error | null, cookies: string[]) => void,
|
||||
): void;
|
||||
getSetCookieStrings(currentUrl: string, cb: (err: Error | null, cookies: string[]) => void): void;
|
||||
|
||||
getSetCookieStringsSync(currentUrl: string, options?: CookieJar.GetCookiesOptions): string[];
|
||||
|
||||
serialize(): Promise<CookieJar.Serialized>;
|
||||
serialize(cb: (err: Error | null, serializedObject: CookieJar.Serialized) => void): void;
|
||||
|
||||
serializeSync(): CookieJar.Serialized;
|
||||
|
||||
toJSON(): CookieJar.Serialized;
|
||||
|
||||
clone(store?: Store): Promise<CookieJar>;
|
||||
clone(store: Store, cb: (err: Error | null, newJar: CookieJar) => void): void;
|
||||
clone(cb: (err: Error | null, newJar: CookieJar) => void): void;
|
||||
|
||||
cloneSync(store?: Store): CookieJar;
|
||||
|
||||
removeAllCookies(): Promise<void>;
|
||||
removeAllCookies(cb: (err: Error | null) => void): void;
|
||||
|
||||
removeAllCookiesSync(): void;
|
||||
}
|
||||
|
||||
export namespace CookieJar {
|
||||
interface Options {
|
||||
allowSpecialUseDomain?: boolean | undefined;
|
||||
looseMode?: boolean | undefined;
|
||||
rejectPublicSuffixes?: boolean | undefined;
|
||||
prefixSecurity?: string | undefined;
|
||||
}
|
||||
|
||||
interface SetCookieOptions {
|
||||
http?: boolean | undefined;
|
||||
secure?: boolean | undefined;
|
||||
now?: Date | undefined;
|
||||
ignoreError?: boolean | undefined;
|
||||
}
|
||||
|
||||
interface GetCookiesOptions {
|
||||
http?: boolean | undefined;
|
||||
secure?: boolean | undefined;
|
||||
now?: Date | undefined;
|
||||
expire?: boolean | undefined;
|
||||
allPaths?: boolean | undefined;
|
||||
}
|
||||
|
||||
interface Serialized {
|
||||
version: string;
|
||||
storeType: string;
|
||||
rejectPublicSuffixes: boolean;
|
||||
cookies: Cookie.Serialized[];
|
||||
}
|
||||
}
|
||||
|
||||
export abstract class Store {
|
||||
synchronous: boolean;
|
||||
|
||||
findCookie(domain: string, path: string, key: string, cb: (err: Error | null, cookie: Cookie | null) => void): void;
|
||||
|
||||
findCookies(
|
||||
domain: string,
|
||||
path: string,
|
||||
allowSpecialUseDomain: boolean,
|
||||
cb: (err: Error | null, cookie: Cookie[]) => void,
|
||||
): void;
|
||||
|
||||
putCookie(cookie: Cookie, cb: (err: Error | null) => void): void;
|
||||
|
||||
updateCookie(oldCookie: Cookie, newCookie: Cookie, cb: (err: Error | null) => void): void;
|
||||
|
||||
removeCookie(domain: string, path: string, key: string, cb: (err: Error | null) => void): void;
|
||||
|
||||
removeCookies(domain: string, path: string, cb: (err: Error | null) => void): void;
|
||||
|
||||
getAllCookies(cb: (err: Error | null, cookie: Cookie[]) => void): void;
|
||||
}
|
||||
|
||||
export class MemoryCookieStore extends Store {
|
||||
findCookie(domain: string, path: string, key: string, cb: (err: Error | null, cookie: Cookie | null) => void): void;
|
||||
findCookie(domain: string, path: string, key: string): Promise<Cookie | null>;
|
||||
|
||||
findCookies(
|
||||
domain: string,
|
||||
path: string,
|
||||
allowSpecialUseDomain: boolean,
|
||||
cb: (err: Error | null, cookie: Cookie[]) => void,
|
||||
): void;
|
||||
findCookies(domain: string, path: string, cb: (err: Error | null, cookie: Cookie[]) => void): void;
|
||||
findCookies(domain: string, path: string, allowSpecialUseDomain?: boolean): Promise<Cookie[]>;
|
||||
|
||||
putCookie(cookie: Cookie, cb: (err: Error | null) => void): void;
|
||||
putCookie(cookie: Cookie): Promise<void>;
|
||||
|
||||
updateCookie(oldCookie: Cookie, newCookie: Cookie, cb: (err: Error | null) => void): void;
|
||||
updateCookie(oldCookie: Cookie, newCookie: Cookie): Promise<void>;
|
||||
|
||||
removeCookie(domain: string, path: string, key: string, cb: (err: Error | null) => void): void;
|
||||
removeCookie(domain: string, path: string, key: string): Promise<void>;
|
||||
|
||||
removeCookies(domain: string, path: string, cb: (err: Error | null) => void): void;
|
||||
removeCookies(domain: string, path: string): Promise<void>;
|
||||
|
||||
getAllCookies(cb: (err: Error | null, cookie: Cookie[]) => void): void;
|
||||
getAllCookies(): Promise<Cookie[]>;
|
||||
}
|
||||
35
node_modules/@types/tough-cookie/package.json
generated
vendored
Normal file
35
node_modules/@types/tough-cookie/package.json
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "@types/tough-cookie",
|
||||
"version": "4.0.5",
|
||||
"description": "TypeScript definitions for tough-cookie",
|
||||
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/tough-cookie",
|
||||
"license": "MIT",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Leonard Thieu",
|
||||
"githubUsername": "leonard-thieu",
|
||||
"url": "https://github.com/leonard-thieu"
|
||||
},
|
||||
{
|
||||
"name": "LiJinyao",
|
||||
"githubUsername": "LiJinyao",
|
||||
"url": "https://github.com/LiJinyao"
|
||||
},
|
||||
{
|
||||
"name": "Michael Wei",
|
||||
"githubUsername": "no2chem",
|
||||
"url": "https://github.com/no2chem"
|
||||
}
|
||||
],
|
||||
"main": "",
|
||||
"types": "index.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
||||
"directory": "types/tough-cookie"
|
||||
},
|
||||
"scripts": {},
|
||||
"dependencies": {},
|
||||
"typesPublisherContentHash": "adafa53ff34d3665a708d3ab1af232a46d4efb906d46f48d7d0cd3206c987a58",
|
||||
"typeScriptVersion": "4.5"
|
||||
}
|
||||
21
node_modules/base64-js/LICENSE
generated
vendored
Normal file
21
node_modules/base64-js/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Jameson Little
|
||||
|
||||
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.
|
||||
34
node_modules/base64-js/README.md
generated
vendored
Normal file
34
node_modules/base64-js/README.md
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
base64-js
|
||||
=========
|
||||
|
||||
`base64-js` does basic base64 encoding/decoding in pure JS.
|
||||
|
||||
[](http://travis-ci.org/beatgammit/base64-js)
|
||||
|
||||
Many browsers already have base64 encoding/decoding functionality, but it is for text data, not all-purpose binary data.
|
||||
|
||||
Sometimes encoding/decoding binary data in the browser is useful, and that is what this module does.
|
||||
|
||||
## install
|
||||
|
||||
With [npm](https://npmjs.org) do:
|
||||
|
||||
`npm install base64-js` and `var base64js = require('base64-js')`
|
||||
|
||||
For use in web browsers do:
|
||||
|
||||
`<script src="base64js.min.js"></script>`
|
||||
|
||||
[Get supported base64-js with the Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-base64-js?utm_source=npm-base64-js&utm_medium=referral&utm_campaign=readme)
|
||||
|
||||
## methods
|
||||
|
||||
`base64js` has three exposed functions, `byteLength`, `toByteArray` and `fromByteArray`, which both take a single argument.
|
||||
|
||||
* `byteLength` - Takes a base64 string and returns length of byte array
|
||||
* `toByteArray` - Takes a base64 string and returns a byte array
|
||||
* `fromByteArray` - Takes a byte array and returns a base64 string
|
||||
|
||||
## license
|
||||
|
||||
MIT
|
||||
1
node_modules/base64-js/base64js.min.js
generated
vendored
Normal file
1
node_modules/base64-js/base64js.min.js
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
(function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"==typeof window?"undefined"==typeof global?"undefined"==typeof self?this:self:global:window,b.base64js=a()}})(function(){return function(){function b(d,e,g){function a(j,i){if(!e[j]){if(!d[j]){var f="function"==typeof require&&require;if(!i&&f)return f(j,!0);if(h)return h(j,!0);var c=new Error("Cannot find module '"+j+"'");throw c.code="MODULE_NOT_FOUND",c}var k=e[j]={exports:{}};d[j][0].call(k.exports,function(b){var c=d[j][1][b];return a(c||b)},k,k.exports,b,d,e,g)}return e[j].exports}for(var h="function"==typeof require&&require,c=0;c<g.length;c++)a(g[c]);return a}return b}()({"/":[function(a,b,c){'use strict';function d(a){var b=a.length;if(0<b%4)throw new Error("Invalid string. Length must be a multiple of 4");var c=a.indexOf("=");-1===c&&(c=b);var d=c===b?0:4-c%4;return[c,d]}function e(a,b,c){return 3*(b+c)/4-c}function f(a){var b,c,f=d(a),g=f[0],h=f[1],j=new m(e(a,g,h)),k=0,n=0<h?g-4:g;for(c=0;c<n;c+=4)b=l[a.charCodeAt(c)]<<18|l[a.charCodeAt(c+1)]<<12|l[a.charCodeAt(c+2)]<<6|l[a.charCodeAt(c+3)],j[k++]=255&b>>16,j[k++]=255&b>>8,j[k++]=255&b;return 2===h&&(b=l[a.charCodeAt(c)]<<2|l[a.charCodeAt(c+1)]>>4,j[k++]=255&b),1===h&&(b=l[a.charCodeAt(c)]<<10|l[a.charCodeAt(c+1)]<<4|l[a.charCodeAt(c+2)]>>2,j[k++]=255&b>>8,j[k++]=255&b),j}function g(a){return k[63&a>>18]+k[63&a>>12]+k[63&a>>6]+k[63&a]}function h(a,b,c){for(var d,e=[],f=b;f<c;f+=3)d=(16711680&a[f]<<16)+(65280&a[f+1]<<8)+(255&a[f+2]),e.push(g(d));return e.join("")}function j(a){for(var b,c=a.length,d=c%3,e=[],f=16383,g=0,j=c-d;g<j;g+=f)e.push(h(a,g,g+f>j?j:g+f));return 1===d?(b=a[c-1],e.push(k[b>>2]+k[63&b<<4]+"==")):2===d&&(b=(a[c-2]<<8)+a[c-1],e.push(k[b>>10]+k[63&b>>4]+k[63&b<<2]+"=")),e.join("")}c.byteLength=function(a){var b=d(a),c=b[0],e=b[1];return 3*(c+e)/4-e},c.toByteArray=f,c.fromByteArray=j;for(var k=[],l=[],m="undefined"==typeof Uint8Array?Array:Uint8Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,p=n.length;o<p;++o)k[o]=n[o],l[n.charCodeAt(o)]=o;l[45]=62,l[95]=63},{}]},{},[])("/")});
|
||||
3
node_modules/base64-js/index.d.ts
generated
vendored
Normal file
3
node_modules/base64-js/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
export function byteLength(b64: string): number;
|
||||
export function toByteArray(b64: string): Uint8Array;
|
||||
export function fromByteArray(uint8: Uint8Array): string;
|
||||
150
node_modules/base64-js/index.js
generated
vendored
Normal file
150
node_modules/base64-js/index.js
generated
vendored
Normal file
@ -0,0 +1,150 @@
|
||||
'use strict'
|
||||
|
||||
exports.byteLength = byteLength
|
||||
exports.toByteArray = toByteArray
|
||||
exports.fromByteArray = fromByteArray
|
||||
|
||||
var lookup = []
|
||||
var revLookup = []
|
||||
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
|
||||
|
||||
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
|
||||
for (var i = 0, len = code.length; i < len; ++i) {
|
||||
lookup[i] = code[i]
|
||||
revLookup[code.charCodeAt(i)] = i
|
||||
}
|
||||
|
||||
// Support decoding URL-safe base64 strings, as Node.js does.
|
||||
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
|
||||
revLookup['-'.charCodeAt(0)] = 62
|
||||
revLookup['_'.charCodeAt(0)] = 63
|
||||
|
||||
function getLens (b64) {
|
||||
var len = b64.length
|
||||
|
||||
if (len % 4 > 0) {
|
||||
throw new Error('Invalid string. Length must be a multiple of 4')
|
||||
}
|
||||
|
||||
// Trim off extra bytes after placeholder bytes are found
|
||||
// See: https://github.com/beatgammit/base64-js/issues/42
|
||||
var validLen = b64.indexOf('=')
|
||||
if (validLen === -1) validLen = len
|
||||
|
||||
var placeHoldersLen = validLen === len
|
||||
? 0
|
||||
: 4 - (validLen % 4)
|
||||
|
||||
return [validLen, placeHoldersLen]
|
||||
}
|
||||
|
||||
// base64 is 4/3 + up to two characters of the original data
|
||||
function byteLength (b64) {
|
||||
var lens = getLens(b64)
|
||||
var validLen = lens[0]
|
||||
var placeHoldersLen = lens[1]
|
||||
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
|
||||
}
|
||||
|
||||
function _byteLength (b64, validLen, placeHoldersLen) {
|
||||
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
|
||||
}
|
||||
|
||||
function toByteArray (b64) {
|
||||
var tmp
|
||||
var lens = getLens(b64)
|
||||
var validLen = lens[0]
|
||||
var placeHoldersLen = lens[1]
|
||||
|
||||
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
|
||||
|
||||
var curByte = 0
|
||||
|
||||
// if there are placeholders, only get up to the last complete 4 chars
|
||||
var len = placeHoldersLen > 0
|
||||
? validLen - 4
|
||||
: validLen
|
||||
|
||||
var i
|
||||
for (i = 0; i < len; i += 4) {
|
||||
tmp =
|
||||
(revLookup[b64.charCodeAt(i)] << 18) |
|
||||
(revLookup[b64.charCodeAt(i + 1)] << 12) |
|
||||
(revLookup[b64.charCodeAt(i + 2)] << 6) |
|
||||
revLookup[b64.charCodeAt(i + 3)]
|
||||
arr[curByte++] = (tmp >> 16) & 0xFF
|
||||
arr[curByte++] = (tmp >> 8) & 0xFF
|
||||
arr[curByte++] = tmp & 0xFF
|
||||
}
|
||||
|
||||
if (placeHoldersLen === 2) {
|
||||
tmp =
|
||||
(revLookup[b64.charCodeAt(i)] << 2) |
|
||||
(revLookup[b64.charCodeAt(i + 1)] >> 4)
|
||||
arr[curByte++] = tmp & 0xFF
|
||||
}
|
||||
|
||||
if (placeHoldersLen === 1) {
|
||||
tmp =
|
||||
(revLookup[b64.charCodeAt(i)] << 10) |
|
||||
(revLookup[b64.charCodeAt(i + 1)] << 4) |
|
||||
(revLookup[b64.charCodeAt(i + 2)] >> 2)
|
||||
arr[curByte++] = (tmp >> 8) & 0xFF
|
||||
arr[curByte++] = tmp & 0xFF
|
||||
}
|
||||
|
||||
return arr
|
||||
}
|
||||
|
||||
function tripletToBase64 (num) {
|
||||
return lookup[num >> 18 & 0x3F] +
|
||||
lookup[num >> 12 & 0x3F] +
|
||||
lookup[num >> 6 & 0x3F] +
|
||||
lookup[num & 0x3F]
|
||||
}
|
||||
|
||||
function encodeChunk (uint8, start, end) {
|
||||
var tmp
|
||||
var output = []
|
||||
for (var i = start; i < end; i += 3) {
|
||||
tmp =
|
||||
((uint8[i] << 16) & 0xFF0000) +
|
||||
((uint8[i + 1] << 8) & 0xFF00) +
|
||||
(uint8[i + 2] & 0xFF)
|
||||
output.push(tripletToBase64(tmp))
|
||||
}
|
||||
return output.join('')
|
||||
}
|
||||
|
||||
function fromByteArray (uint8) {
|
||||
var tmp
|
||||
var len = uint8.length
|
||||
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
|
||||
var parts = []
|
||||
var maxChunkLength = 16383 // must be multiple of 3
|
||||
|
||||
// go through the array every three bytes, we'll deal with trailing stuff later
|
||||
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
|
||||
parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
|
||||
}
|
||||
|
||||
// pad the end with zeros, but make sure to not forget the extra bytes
|
||||
if (extraBytes === 1) {
|
||||
tmp = uint8[len - 1]
|
||||
parts.push(
|
||||
lookup[tmp >> 2] +
|
||||
lookup[(tmp << 4) & 0x3F] +
|
||||
'=='
|
||||
)
|
||||
} else if (extraBytes === 2) {
|
||||
tmp = (uint8[len - 2] << 8) + uint8[len - 1]
|
||||
parts.push(
|
||||
lookup[tmp >> 10] +
|
||||
lookup[(tmp >> 4) & 0x3F] +
|
||||
lookup[(tmp << 2) & 0x3F] +
|
||||
'='
|
||||
)
|
||||
}
|
||||
|
||||
return parts.join('')
|
||||
}
|
||||
47
node_modules/base64-js/package.json
generated
vendored
Normal file
47
node_modules/base64-js/package.json
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "base64-js",
|
||||
"description": "Base64 encoding/decoding in pure JS",
|
||||
"version": "1.5.1",
|
||||
"author": "T. Jameson Little <t.jameson.little@gmail.com>",
|
||||
"typings": "index.d.ts",
|
||||
"bugs": {
|
||||
"url": "https://github.com/beatgammit/base64-js/issues"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-minify": "^0.5.1",
|
||||
"benchmark": "^2.1.4",
|
||||
"browserify": "^16.3.0",
|
||||
"standard": "*",
|
||||
"tape": "4.x"
|
||||
},
|
||||
"homepage": "https://github.com/beatgammit/base64-js",
|
||||
"keywords": [
|
||||
"base64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/beatgammit/base64-js.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "browserify -s base64js -r ./ | minify > base64js.min.js",
|
||||
"lint": "standard",
|
||||
"test": "npm run lint && npm run unit",
|
||||
"unit": "tape test/*.js"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
}
|
||||
73
node_modules/buffer/AUTHORS.md
generated
vendored
Normal file
73
node_modules/buffer/AUTHORS.md
generated
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
# Authors
|
||||
|
||||
#### Ordered by first contribution.
|
||||
|
||||
- Romain Beauxis (toots@rastageeks.org)
|
||||
- Tobias Koppers (tobias.koppers@googlemail.com)
|
||||
- Janus (ysangkok@gmail.com)
|
||||
- Rainer Dreyer (rdrey1@gmail.com)
|
||||
- Tõnis Tiigi (tonistiigi@gmail.com)
|
||||
- James Halliday (mail@substack.net)
|
||||
- Michael Williamson (mike@zwobble.org)
|
||||
- elliottcable (github@elliottcable.name)
|
||||
- rafael (rvalle@livelens.net)
|
||||
- Andrew Kelley (superjoe30@gmail.com)
|
||||
- Andreas Madsen (amwebdk@gmail.com)
|
||||
- Mike Brevoort (mike.brevoort@pearson.com)
|
||||
- Brian White (mscdex@mscdex.net)
|
||||
- Feross Aboukhadijeh (feross@feross.org)
|
||||
- Ruben Verborgh (ruben@verborgh.org)
|
||||
- eliang (eliang.cs@gmail.com)
|
||||
- Jesse Tane (jesse.tane@gmail.com)
|
||||
- Alfonso Boza (alfonso@cloud.com)
|
||||
- Mathias Buus (mathiasbuus@gmail.com)
|
||||
- Devon Govett (devongovett@gmail.com)
|
||||
- Daniel Cousens (github@dcousens.com)
|
||||
- Joseph Dykstra (josephdykstra@gmail.com)
|
||||
- Parsha Pourkhomami (parshap+git@gmail.com)
|
||||
- Damjan Košir (damjan.kosir@gmail.com)
|
||||
- daverayment (dave.rayment@gmail.com)
|
||||
- kawanet (u-suke@kawa.net)
|
||||
- Linus Unnebäck (linus@folkdatorn.se)
|
||||
- Nolan Lawson (nolan.lawson@gmail.com)
|
||||
- Calvin Metcalf (calvin.metcalf@gmail.com)
|
||||
- Koki Takahashi (hakatasiloving@gmail.com)
|
||||
- Guy Bedford (guybedford@gmail.com)
|
||||
- Jan Schär (jscissr@gmail.com)
|
||||
- RaulTsc (tomescu.raul@gmail.com)
|
||||
- Matthieu Monsch (monsch@alum.mit.edu)
|
||||
- Dan Ehrenberg (littledan@chromium.org)
|
||||
- Kirill Fomichev (fanatid@ya.ru)
|
||||
- Yusuke Kawasaki (u-suke@kawa.net)
|
||||
- DC (dcposch@dcpos.ch)
|
||||
- John-David Dalton (john.david.dalton@gmail.com)
|
||||
- adventure-yunfei (adventure030@gmail.com)
|
||||
- Emil Bay (github@tixz.dk)
|
||||
- Sam Sudar (sudar.sam@gmail.com)
|
||||
- Volker Mische (volker.mische@gmail.com)
|
||||
- David Walton (support@geekstocks.com)
|
||||
- Сковорода Никита Андреевич (chalkerx@gmail.com)
|
||||
- greenkeeper[bot] (greenkeeper[bot]@users.noreply.github.com)
|
||||
- ukstv (sergey.ukustov@machinomy.com)
|
||||
- Renée Kooi (renee@kooi.me)
|
||||
- ranbochen (ranbochen@qq.com)
|
||||
- Vladimir Borovik (bobahbdb@gmail.com)
|
||||
- greenkeeper[bot] (23040076+greenkeeper[bot]@users.noreply.github.com)
|
||||
- kumavis (aaron@kumavis.me)
|
||||
- Sergey Ukustov (sergey.ukustov@machinomy.com)
|
||||
- Fei Liu (liu.feiwood@gmail.com)
|
||||
- Blaine Bublitz (blaine.bublitz@gmail.com)
|
||||
- clement (clement@seald.io)
|
||||
- Koushik Dutta (koushd@gmail.com)
|
||||
- Jordan Harband (ljharb@gmail.com)
|
||||
- Niklas Mischkulnig (mischnic@users.noreply.github.com)
|
||||
- Nikolai Vavilov (vvnicholas@gmail.com)
|
||||
- Fedor Nezhivoi (gyzerok@users.noreply.github.com)
|
||||
- shuse2 (shus.toda@gmail.com)
|
||||
- Peter Newman (peternewman@users.noreply.github.com)
|
||||
- mathmakgakpak (44949126+mathmakgakpak@users.noreply.github.com)
|
||||
- jkkang (jkkang@smartauth.kr)
|
||||
- Deklan Webster (deklanw@gmail.com)
|
||||
- Martin Heidegger (martin.heidegger@gmail.com)
|
||||
|
||||
#### Generated by bin/update-authors.sh.
|
||||
21
node_modules/buffer/LICENSE
generated
vendored
Normal file
21
node_modules/buffer/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Feross Aboukhadijeh, and other contributors.
|
||||
|
||||
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.
|
||||
410
node_modules/buffer/README.md
generated
vendored
Normal file
410
node_modules/buffer/README.md
generated
vendored
Normal file
@ -0,0 +1,410 @@
|
||||
# buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
|
||||
|
||||
[travis-image]: https://img.shields.io/travis/feross/buffer/master.svg
|
||||
[travis-url]: https://travis-ci.org/feross/buffer
|
||||
[npm-image]: https://img.shields.io/npm/v/buffer.svg
|
||||
[npm-url]: https://npmjs.org/package/buffer
|
||||
[downloads-image]: https://img.shields.io/npm/dm/buffer.svg
|
||||
[downloads-url]: https://npmjs.org/package/buffer
|
||||
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
|
||||
[standard-url]: https://standardjs.com
|
||||
|
||||
#### The buffer module from [node.js](https://nodejs.org/), for the browser.
|
||||
|
||||
[![saucelabs][saucelabs-image]][saucelabs-url]
|
||||
|
||||
[saucelabs-image]: https://saucelabs.com/browser-matrix/buffer.svg
|
||||
[saucelabs-url]: https://saucelabs.com/u/buffer
|
||||
|
||||
With [browserify](http://browserify.org), simply `require('buffer')` or use the `Buffer` global and you will get this module.
|
||||
|
||||
The goal is to provide an API that is 100% identical to
|
||||
[node's Buffer API](https://nodejs.org/api/buffer.html). Read the
|
||||
[official docs](https://nodejs.org/api/buffer.html) for the full list of properties,
|
||||
instance methods, and class methods that are supported.
|
||||
|
||||
## features
|
||||
|
||||
- Manipulate binary data like a boss, in all browsers!
|
||||
- Super fast. Backed by Typed Arrays (`Uint8Array`/`ArrayBuffer`, not `Object`)
|
||||
- Extremely small bundle size (**6.75KB minified + gzipped**, 51.9KB with comments)
|
||||
- Excellent browser support (Chrome, Firefox, Edge, Safari 11+, iOS 11+, Android, etc.)
|
||||
- Preserves Node API exactly, with one minor difference (see below)
|
||||
- Square-bracket `buf[4]` notation works!
|
||||
- Does not modify any browser prototypes or put anything on `window`
|
||||
- Comprehensive test suite (including all buffer tests from node.js core)
|
||||
|
||||
## install
|
||||
|
||||
To use this module directly (without browserify), install it:
|
||||
|
||||
```bash
|
||||
npm install buffer
|
||||
```
|
||||
|
||||
This module was previously called **native-buffer-browserify**, but please use **buffer**
|
||||
from now on.
|
||||
|
||||
If you do not use a bundler, you can use the [standalone script](https://bundle.run/buffer).
|
||||
|
||||
## usage
|
||||
|
||||
The module's API is identical to node's `Buffer` API. Read the
|
||||
[official docs](https://nodejs.org/api/buffer.html) for the full list of properties,
|
||||
instance methods, and class methods that are supported.
|
||||
|
||||
As mentioned above, `require('buffer')` or use the `Buffer` global with
|
||||
[browserify](http://browserify.org) and this module will automatically be included
|
||||
in your bundle. Almost any npm module will work in the browser, even if it assumes that
|
||||
the node `Buffer` API will be available.
|
||||
|
||||
To depend on this module explicitly (without browserify), require it like this:
|
||||
|
||||
```js
|
||||
var Buffer = require('buffer/').Buffer // note: the trailing slash is important!
|
||||
```
|
||||
|
||||
To require this module explicitly, use `require('buffer/')` which tells the node.js module
|
||||
lookup algorithm (also used by browserify) to use the **npm module** named `buffer`
|
||||
instead of the **node.js core** module named `buffer`!
|
||||
|
||||
|
||||
## how does it work?
|
||||
|
||||
The Buffer constructor returns instances of `Uint8Array` that have their prototype
|
||||
changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of `Uint8Array`,
|
||||
so the returned instances will have all the node `Buffer` methods and the
|
||||
`Uint8Array` methods. Square bracket notation works as expected -- it returns a
|
||||
single octet.
|
||||
|
||||
The `Uint8Array` prototype remains unmodified.
|
||||
|
||||
|
||||
## tracking the latest node api
|
||||
|
||||
This module tracks the Buffer API in the latest (unstable) version of node.js. The Buffer
|
||||
API is considered **stable** in the
|
||||
[node stability index](https://nodejs.org/docs/latest/api/documentation.html#documentation_stability_index),
|
||||
so it is unlikely that there will ever be breaking changes.
|
||||
Nonetheless, when/if the Buffer API changes in node, this module's API will change
|
||||
accordingly.
|
||||
|
||||
## related packages
|
||||
|
||||
- [`buffer-reverse`](https://www.npmjs.com/package/buffer-reverse) - Reverse a buffer
|
||||
- [`buffer-xor`](https://www.npmjs.com/package/buffer-xor) - Bitwise xor a buffer
|
||||
- [`is-buffer`](https://www.npmjs.com/package/is-buffer) - Determine if an object is a Buffer without including the whole `Buffer` package
|
||||
|
||||
## conversion packages
|
||||
|
||||
### convert typed array to buffer
|
||||
|
||||
Use [`typedarray-to-buffer`](https://www.npmjs.com/package/typedarray-to-buffer) to convert any kind of typed array to a `Buffer`. Does not perform a copy, so it's super fast.
|
||||
|
||||
### convert buffer to typed array
|
||||
|
||||
`Buffer` is a subclass of `Uint8Array` (which is a typed array). So there is no need to explicitly convert to typed array. Just use the buffer as a `Uint8Array`.
|
||||
|
||||
### convert blob to buffer
|
||||
|
||||
Use [`blob-to-buffer`](https://www.npmjs.com/package/blob-to-buffer) to convert a `Blob` to a `Buffer`.
|
||||
|
||||
### convert buffer to blob
|
||||
|
||||
To convert a `Buffer` to a `Blob`, use the `Blob` constructor:
|
||||
|
||||
```js
|
||||
var blob = new Blob([ buffer ])
|
||||
```
|
||||
|
||||
Optionally, specify a mimetype:
|
||||
|
||||
```js
|
||||
var blob = new Blob([ buffer ], { type: 'text/html' })
|
||||
```
|
||||
|
||||
### convert arraybuffer to buffer
|
||||
|
||||
To convert an `ArrayBuffer` to a `Buffer`, use the `Buffer.from` function. Does not perform a copy, so it's super fast.
|
||||
|
||||
```js
|
||||
var buffer = Buffer.from(arrayBuffer)
|
||||
```
|
||||
|
||||
### convert buffer to arraybuffer
|
||||
|
||||
To convert a `Buffer` to an `ArrayBuffer`, use the `.buffer` property (which is present on all `Uint8Array` objects):
|
||||
|
||||
```js
|
||||
var arrayBuffer = buffer.buffer.slice(
|
||||
buffer.byteOffset, buffer.byteOffset + buffer.byteLength
|
||||
)
|
||||
```
|
||||
|
||||
Alternatively, use the [`to-arraybuffer`](https://www.npmjs.com/package/to-arraybuffer) module.
|
||||
|
||||
## performance
|
||||
|
||||
See perf tests in `/perf`.
|
||||
|
||||
`BrowserBuffer` is the browser `buffer` module (this repo). `Uint8Array` is included as a
|
||||
sanity check (since `BrowserBuffer` uses `Uint8Array` under the hood, `Uint8Array` will
|
||||
always be at least a bit faster). Finally, `NodeBuffer` is the node.js buffer module,
|
||||
which is included to compare against.
|
||||
|
||||
NOTE: Performance has improved since these benchmarks were taken. PR welcome to update the README.
|
||||
|
||||
### Chrome 38
|
||||
|
||||
| Method | Operations | Accuracy | Sampled | Fastest |
|
||||
|:-------|:-----------|:---------|:--------|:-------:|
|
||||
| BrowserBuffer#bracket-notation | 11,457,464 ops/sec | ±0.86% | 66 | ✓ |
|
||||
| Uint8Array#bracket-notation | 10,824,332 ops/sec | ±0.74% | 65 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#concat | 450,532 ops/sec | ±0.76% | 68 | |
|
||||
| Uint8Array#concat | 1,368,911 ops/sec | ±1.50% | 62 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16000) | 903,001 ops/sec | ±0.96% | 67 | |
|
||||
| Uint8Array#copy(16000) | 1,422,441 ops/sec | ±1.04% | 66 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16) | 11,431,358 ops/sec | ±0.46% | 69 | |
|
||||
| Uint8Array#copy(16) | 13,944,163 ops/sec | ±1.12% | 68 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16000) | 106,329 ops/sec | ±6.70% | 44 | |
|
||||
| Uint8Array#new(16000) | 131,001 ops/sec | ±2.85% | 31 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16) | 1,554,491 ops/sec | ±1.60% | 65 | |
|
||||
| Uint8Array#new(16) | 6,623,930 ops/sec | ±1.66% | 65 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readDoubleBE | 112,830 ops/sec | ±0.51% | 69 | ✓ |
|
||||
| DataView#getFloat64 | 93,500 ops/sec | ±0.57% | 68 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readFloatBE | 146,678 ops/sec | ±0.95% | 68 | ✓ |
|
||||
| DataView#getFloat32 | 99,311 ops/sec | ±0.41% | 67 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readUInt32LE | 843,214 ops/sec | ±0.70% | 69 | ✓ |
|
||||
| DataView#getUint32 | 103,024 ops/sec | ±0.64% | 67 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#slice | 1,013,941 ops/sec | ±0.75% | 67 | |
|
||||
| Uint8Array#subarray | 1,903,928 ops/sec | ±0.53% | 67 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#writeFloatBE | 61,387 ops/sec | ±0.90% | 67 | |
|
||||
| DataView#setFloat32 | 141,249 ops/sec | ±0.40% | 66 | ✓ |
|
||||
|
||||
|
||||
### Firefox 33
|
||||
|
||||
| Method | Operations | Accuracy | Sampled | Fastest |
|
||||
|:-------|:-----------|:---------|:--------|:-------:|
|
||||
| BrowserBuffer#bracket-notation | 20,800,421 ops/sec | ±1.84% | 60 | |
|
||||
| Uint8Array#bracket-notation | 20,826,235 ops/sec | ±2.02% | 61 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#concat | 153,076 ops/sec | ±2.32% | 61 | |
|
||||
| Uint8Array#concat | 1,255,674 ops/sec | ±8.65% | 52 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16000) | 1,105,312 ops/sec | ±1.16% | 63 | |
|
||||
| Uint8Array#copy(16000) | 1,615,911 ops/sec | ±0.55% | 66 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16) | 16,357,599 ops/sec | ±0.73% | 68 | |
|
||||
| Uint8Array#copy(16) | 31,436,281 ops/sec | ±1.05% | 68 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16000) | 52,995 ops/sec | ±6.01% | 35 | |
|
||||
| Uint8Array#new(16000) | 87,686 ops/sec | ±5.68% | 45 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16) | 252,031 ops/sec | ±1.61% | 66 | |
|
||||
| Uint8Array#new(16) | 8,477,026 ops/sec | ±0.49% | 68 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readDoubleBE | 99,871 ops/sec | ±0.41% | 69 | |
|
||||
| DataView#getFloat64 | 285,663 ops/sec | ±0.70% | 68 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readFloatBE | 115,540 ops/sec | ±0.42% | 69 | |
|
||||
| DataView#getFloat32 | 288,722 ops/sec | ±0.82% | 68 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readUInt32LE | 633,926 ops/sec | ±1.08% | 67 | ✓ |
|
||||
| DataView#getUint32 | 294,808 ops/sec | ±0.79% | 64 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#slice | 349,425 ops/sec | ±0.46% | 69 | |
|
||||
| Uint8Array#subarray | 5,965,819 ops/sec | ±0.60% | 65 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#writeFloatBE | 59,980 ops/sec | ±0.41% | 67 | |
|
||||
| DataView#setFloat32 | 317,634 ops/sec | ±0.63% | 68 | ✓ |
|
||||
|
||||
### Safari 8
|
||||
|
||||
| Method | Operations | Accuracy | Sampled | Fastest |
|
||||
|:-------|:-----------|:---------|:--------|:-------:|
|
||||
| BrowserBuffer#bracket-notation | 10,279,729 ops/sec | ±2.25% | 56 | ✓ |
|
||||
| Uint8Array#bracket-notation | 10,030,767 ops/sec | ±2.23% | 59 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#concat | 144,138 ops/sec | ±1.38% | 65 | |
|
||||
| Uint8Array#concat | 4,950,764 ops/sec | ±1.70% | 63 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16000) | 1,058,548 ops/sec | ±1.51% | 64 | |
|
||||
| Uint8Array#copy(16000) | 1,409,666 ops/sec | ±1.17% | 65 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16) | 6,282,529 ops/sec | ±1.88% | 58 | |
|
||||
| Uint8Array#copy(16) | 11,907,128 ops/sec | ±2.87% | 58 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16000) | 101,663 ops/sec | ±3.89% | 57 | |
|
||||
| Uint8Array#new(16000) | 22,050,818 ops/sec | ±6.51% | 46 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16) | 176,072 ops/sec | ±2.13% | 64 | |
|
||||
| Uint8Array#new(16) | 24,385,731 ops/sec | ±5.01% | 51 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readDoubleBE | 41,341 ops/sec | ±1.06% | 67 | |
|
||||
| DataView#getFloat64 | 322,280 ops/sec | ±0.84% | 68 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readFloatBE | 46,141 ops/sec | ±1.06% | 65 | |
|
||||
| DataView#getFloat32 | 337,025 ops/sec | ±0.43% | 69 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#readUInt32LE | 151,551 ops/sec | ±1.02% | 66 | |
|
||||
| DataView#getUint32 | 308,278 ops/sec | ±0.94% | 67 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#slice | 197,365 ops/sec | ±0.95% | 66 | |
|
||||
| Uint8Array#subarray | 9,558,024 ops/sec | ±3.08% | 58 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#writeFloatBE | 17,518 ops/sec | ±1.03% | 63 | |
|
||||
| DataView#setFloat32 | 319,751 ops/sec | ±0.48% | 68 | ✓ |
|
||||
|
||||
|
||||
### Node 0.11.14
|
||||
|
||||
| Method | Operations | Accuracy | Sampled | Fastest |
|
||||
|:-------|:-----------|:---------|:--------|:-------:|
|
||||
| BrowserBuffer#bracket-notation | 10,489,828 ops/sec | ±3.25% | 90 | |
|
||||
| Uint8Array#bracket-notation | 10,534,884 ops/sec | ±0.81% | 92 | ✓ |
|
||||
| NodeBuffer#bracket-notation | 10,389,910 ops/sec | ±0.97% | 87 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#concat | 487,830 ops/sec | ±2.58% | 88 | |
|
||||
| Uint8Array#concat | 1,814,327 ops/sec | ±1.28% | 88 | ✓ |
|
||||
| NodeBuffer#concat | 1,636,523 ops/sec | ±1.88% | 73 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16000) | 1,073,665 ops/sec | ±0.77% | 90 | |
|
||||
| Uint8Array#copy(16000) | 1,348,517 ops/sec | ±0.84% | 89 | ✓ |
|
||||
| NodeBuffer#copy(16000) | 1,289,533 ops/sec | ±0.82% | 93 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16) | 12,782,706 ops/sec | ±0.74% | 85 | |
|
||||
| Uint8Array#copy(16) | 14,180,427 ops/sec | ±0.93% | 92 | ✓ |
|
||||
| NodeBuffer#copy(16) | 11,083,134 ops/sec | ±1.06% | 89 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16000) | 141,678 ops/sec | ±3.30% | 67 | |
|
||||
| Uint8Array#new(16000) | 161,491 ops/sec | ±2.96% | 60 | |
|
||||
| NodeBuffer#new(16000) | 292,699 ops/sec | ±3.20% | 55 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16) | 1,655,466 ops/sec | ±2.41% | 82 | |
|
||||
| Uint8Array#new(16) | 14,399,926 ops/sec | ±0.91% | 94 | ✓ |
|
||||
| NodeBuffer#new(16) | 3,894,696 ops/sec | ±0.88% | 92 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readDoubleBE | 109,582 ops/sec | ±0.75% | 93 | ✓ |
|
||||
| DataView#getFloat64 | 91,235 ops/sec | ±0.81% | 90 | |
|
||||
| NodeBuffer#readDoubleBE | 88,593 ops/sec | ±0.96% | 81 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readFloatBE | 139,854 ops/sec | ±1.03% | 85 | ✓ |
|
||||
| DataView#getFloat32 | 98,744 ops/sec | ±0.80% | 89 | |
|
||||
| NodeBuffer#readFloatBE | 92,769 ops/sec | ±0.94% | 93 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readUInt32LE | 710,861 ops/sec | ±0.82% | 92 | |
|
||||
| DataView#getUint32 | 117,893 ops/sec | ±0.84% | 91 | |
|
||||
| NodeBuffer#readUInt32LE | 851,412 ops/sec | ±0.72% | 93 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#slice | 1,673,877 ops/sec | ±0.73% | 94 | |
|
||||
| Uint8Array#subarray | 6,919,243 ops/sec | ±0.67% | 90 | ✓ |
|
||||
| NodeBuffer#slice | 4,617,604 ops/sec | ±0.79% | 93 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#writeFloatBE | 66,011 ops/sec | ±0.75% | 93 | |
|
||||
| DataView#setFloat32 | 127,760 ops/sec | ±0.72% | 93 | ✓ |
|
||||
| NodeBuffer#writeFloatBE | 103,352 ops/sec | ±0.83% | 93 | |
|
||||
|
||||
### iojs 1.8.1
|
||||
|
||||
| Method | Operations | Accuracy | Sampled | Fastest |
|
||||
|:-------|:-----------|:---------|:--------|:-------:|
|
||||
| BrowserBuffer#bracket-notation | 10,990,488 ops/sec | ±1.11% | 91 | |
|
||||
| Uint8Array#bracket-notation | 11,268,757 ops/sec | ±0.65% | 97 | |
|
||||
| NodeBuffer#bracket-notation | 11,353,260 ops/sec | ±0.83% | 94 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#concat | 378,954 ops/sec | ±0.74% | 94 | |
|
||||
| Uint8Array#concat | 1,358,288 ops/sec | ±0.97% | 87 | |
|
||||
| NodeBuffer#concat | 1,934,050 ops/sec | ±1.11% | 78 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16000) | 894,538 ops/sec | ±0.56% | 84 | |
|
||||
| Uint8Array#copy(16000) | 1,442,656 ops/sec | ±0.71% | 96 | |
|
||||
| NodeBuffer#copy(16000) | 1,457,898 ops/sec | ±0.53% | 92 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#copy(16) | 12,870,457 ops/sec | ±0.67% | 95 | |
|
||||
| Uint8Array#copy(16) | 16,643,989 ops/sec | ±0.61% | 93 | ✓ |
|
||||
| NodeBuffer#copy(16) | 14,885,848 ops/sec | ±0.74% | 94 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16000) | 109,264 ops/sec | ±4.21% | 63 | |
|
||||
| Uint8Array#new(16000) | 138,916 ops/sec | ±1.87% | 61 | |
|
||||
| NodeBuffer#new(16000) | 281,449 ops/sec | ±3.58% | 51 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#new(16) | 1,362,935 ops/sec | ±0.56% | 99 | |
|
||||
| Uint8Array#new(16) | 6,193,090 ops/sec | ±0.64% | 95 | ✓ |
|
||||
| NodeBuffer#new(16) | 4,745,425 ops/sec | ±1.56% | 90 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readDoubleBE | 118,127 ops/sec | ±0.59% | 93 | ✓ |
|
||||
| DataView#getFloat64 | 107,332 ops/sec | ±0.65% | 91 | |
|
||||
| NodeBuffer#readDoubleBE | 116,274 ops/sec | ±0.94% | 95 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readFloatBE | 150,326 ops/sec | ±0.58% | 95 | ✓ |
|
||||
| DataView#getFloat32 | 110,541 ops/sec | ±0.57% | 98 | |
|
||||
| NodeBuffer#readFloatBE | 121,599 ops/sec | ±0.60% | 87 | |
|
||||
| | | | |
|
||||
| BrowserBuffer#readUInt32LE | 814,147 ops/sec | ±0.62% | 93 | |
|
||||
| DataView#getUint32 | 137,592 ops/sec | ±0.64% | 90 | |
|
||||
| NodeBuffer#readUInt32LE | 931,650 ops/sec | ±0.71% | 96 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#slice | 878,590 ops/sec | ±0.68% | 93 | |
|
||||
| Uint8Array#subarray | 2,843,308 ops/sec | ±1.02% | 90 | |
|
||||
| NodeBuffer#slice | 4,998,316 ops/sec | ±0.68% | 90 | ✓ |
|
||||
| | | | |
|
||||
| BrowserBuffer#writeFloatBE | 65,927 ops/sec | ±0.74% | 93 | |
|
||||
| DataView#setFloat32 | 139,823 ops/sec | ±0.97% | 89 | ✓ |
|
||||
| NodeBuffer#writeFloatBE | 135,763 ops/sec | ±0.65% | 96 | |
|
||||
| | | | |
|
||||
|
||||
## Testing the project
|
||||
|
||||
First, install the project:
|
||||
|
||||
npm install
|
||||
|
||||
Then, to run tests in Node.js, run:
|
||||
|
||||
npm run test-node
|
||||
|
||||
To test locally in a browser, you can run:
|
||||
|
||||
npm run test-browser-es5-local # For ES5 browsers that don't support ES6
|
||||
npm run test-browser-es6-local # For ES6 compliant browsers
|
||||
|
||||
This will print out a URL that you can then open in a browser to run the tests, using [airtap](https://www.npmjs.com/package/airtap).
|
||||
|
||||
To run automated browser tests using Saucelabs, ensure that your `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` environment variables are set, then run:
|
||||
|
||||
npm test
|
||||
|
||||
This is what's run in Travis, to check against various browsers. The list of browsers is kept in the `bin/airtap-es5.yml` and `bin/airtap-es6.yml` files.
|
||||
|
||||
## JavaScript Standard Style
|
||||
|
||||
This module uses [JavaScript Standard Style](https://github.com/feross/standard).
|
||||
|
||||
[](https://github.com/feross/standard)
|
||||
|
||||
To test that the code conforms to the style, `npm install` and run:
|
||||
|
||||
./node_modules/.bin/standard
|
||||
|
||||
## credit
|
||||
|
||||
This was originally forked from [buffer-browserify](https://github.com/toots/buffer-browserify).
|
||||
|
||||
## Security Policies and Procedures
|
||||
|
||||
The `buffer` team and community take all security bugs in `buffer` seriously. Please see our [security policies and procedures](https://github.com/feross/security) document to learn how to report issues.
|
||||
|
||||
## license
|
||||
|
||||
MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org), and other contributors. Originally forked from an MIT-licensed module by Romain Beauxis.
|
||||
194
node_modules/buffer/index.d.ts
generated
vendored
Normal file
194
node_modules/buffer/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,194 @@
|
||||
export class Buffer extends Uint8Array {
|
||||
length: number
|
||||
write(string: string, offset?: number, length?: number, encoding?: string): number;
|
||||
toString(encoding?: string, start?: number, end?: number): string;
|
||||
toJSON(): { type: 'Buffer', data: any[] };
|
||||
equals(otherBuffer: Buffer): boolean;
|
||||
compare(otherBuffer: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
|
||||
copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
|
||||
slice(start?: number, end?: number): Buffer;
|
||||
writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
|
||||
readUInt8(offset: number, noAssert?: boolean): number;
|
||||
readUInt16LE(offset: number, noAssert?: boolean): number;
|
||||
readUInt16BE(offset: number, noAssert?: boolean): number;
|
||||
readUInt32LE(offset: number, noAssert?: boolean): number;
|
||||
readUInt32BE(offset: number, noAssert?: boolean): number;
|
||||
readBigUInt64LE(offset: number): BigInt;
|
||||
readBigUInt64BE(offset: number): BigInt;
|
||||
readInt8(offset: number, noAssert?: boolean): number;
|
||||
readInt16LE(offset: number, noAssert?: boolean): number;
|
||||
readInt16BE(offset: number, noAssert?: boolean): number;
|
||||
readInt32LE(offset: number, noAssert?: boolean): number;
|
||||
readInt32BE(offset: number, noAssert?: boolean): number;
|
||||
readBigInt64LE(offset: number): BigInt;
|
||||
readBigInt64BE(offset: number): BigInt;
|
||||
readFloatLE(offset: number, noAssert?: boolean): number;
|
||||
readFloatBE(offset: number, noAssert?: boolean): number;
|
||||
readDoubleLE(offset: number, noAssert?: boolean): number;
|
||||
readDoubleBE(offset: number, noAssert?: boolean): number;
|
||||
reverse(): this;
|
||||
swap16(): Buffer;
|
||||
swap32(): Buffer;
|
||||
swap64(): Buffer;
|
||||
writeUInt8(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeBigUInt64LE(value: number, offset: number): BigInt;
|
||||
writeBigUInt64BE(value: number, offset: number): BigInt;
|
||||
writeInt8(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeInt16LE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeInt16BE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeInt32LE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeInt32BE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeBigInt64LE(value: number, offset: number): BigInt;
|
||||
writeBigInt64BE(value: number, offset: number): BigInt;
|
||||
writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeFloatBE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;
|
||||
writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;
|
||||
fill(value: any, offset?: number, end?: number): this;
|
||||
indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
|
||||
lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
|
||||
includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;
|
||||
|
||||
/**
|
||||
* Allocates a new buffer containing the given {str}.
|
||||
*
|
||||
* @param str String to store in buffer.
|
||||
* @param encoding encoding to use, optional. Default is 'utf8'
|
||||
*/
|
||||
constructor (str: string, encoding?: string);
|
||||
/**
|
||||
* Allocates a new buffer of {size} octets.
|
||||
*
|
||||
* @param size count of octets to allocate.
|
||||
*/
|
||||
constructor (size: number);
|
||||
/**
|
||||
* Allocates a new buffer containing the given {array} of octets.
|
||||
*
|
||||
* @param array The octets to store.
|
||||
*/
|
||||
constructor (array: Uint8Array);
|
||||
/**
|
||||
* Produces a Buffer backed by the same allocated memory as
|
||||
* the given {ArrayBuffer}.
|
||||
*
|
||||
*
|
||||
* @param arrayBuffer The ArrayBuffer with which to share memory.
|
||||
*/
|
||||
constructor (arrayBuffer: ArrayBuffer);
|
||||
/**
|
||||
* Allocates a new buffer containing the given {array} of octets.
|
||||
*
|
||||
* @param array The octets to store.
|
||||
*/
|
||||
constructor (array: any[]);
|
||||
/**
|
||||
* Copies the passed {buffer} data onto a new {Buffer} instance.
|
||||
*
|
||||
* @param buffer The buffer to copy.
|
||||
*/
|
||||
constructor (buffer: Buffer);
|
||||
prototype: Buffer;
|
||||
/**
|
||||
* Allocates a new Buffer using an {array} of octets.
|
||||
*
|
||||
* @param array
|
||||
*/
|
||||
static from(array: any[]): Buffer;
|
||||
/**
|
||||
* When passed a reference to the .buffer property of a TypedArray instance,
|
||||
* the newly created Buffer will share the same allocated memory as the TypedArray.
|
||||
* The optional {byteOffset} and {length} arguments specify a memory range
|
||||
* within the {arrayBuffer} that will be shared by the Buffer.
|
||||
*
|
||||
* @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer()
|
||||
* @param byteOffset
|
||||
* @param length
|
||||
*/
|
||||
static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer;
|
||||
/**
|
||||
* Copies the passed {buffer} data onto a new Buffer instance.
|
||||
*
|
||||
* @param buffer
|
||||
*/
|
||||
static from(buffer: Buffer | Uint8Array): Buffer;
|
||||
/**
|
||||
* Creates a new Buffer containing the given JavaScript string {str}.
|
||||
* If provided, the {encoding} parameter identifies the character encoding.
|
||||
* If not provided, {encoding} defaults to 'utf8'.
|
||||
*
|
||||
* @param str
|
||||
*/
|
||||
static from(str: string, encoding?: string): Buffer;
|
||||
/**
|
||||
* Returns true if {obj} is a Buffer
|
||||
*
|
||||
* @param obj object to test.
|
||||
*/
|
||||
static isBuffer(obj: any): obj is Buffer;
|
||||
/**
|
||||
* Returns true if {encoding} is a valid encoding argument.
|
||||
* Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
|
||||
*
|
||||
* @param encoding string to test.
|
||||
*/
|
||||
static isEncoding(encoding: string): boolean;
|
||||
/**
|
||||
* Gives the actual byte length of a string. encoding defaults to 'utf8'.
|
||||
* This is not the same as String.prototype.length since that returns the number of characters in a string.
|
||||
*
|
||||
* @param string string to test.
|
||||
* @param encoding encoding used to evaluate (defaults to 'utf8')
|
||||
*/
|
||||
static byteLength(string: string, encoding?: string): number;
|
||||
/**
|
||||
* Returns a buffer which is the result of concatenating all the buffers in the list together.
|
||||
*
|
||||
* If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer.
|
||||
* If the list has exactly one item, then the first item of the list is returned.
|
||||
* If the list has more than one item, then a new Buffer is created.
|
||||
*
|
||||
* @param list An array of Buffer objects to concatenate
|
||||
* @param totalLength Total length of the buffers when concatenated.
|
||||
* If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly.
|
||||
*/
|
||||
static concat(list: Uint8Array[], totalLength?: number): Buffer;
|
||||
/**
|
||||
* The same as buf1.compare(buf2).
|
||||
*/
|
||||
static compare(buf1: Uint8Array, buf2: Uint8Array): number;
|
||||
/**
|
||||
* Allocates a new buffer of {size} octets.
|
||||
*
|
||||
* @param size count of octets to allocate.
|
||||
* @param fill if specified, buffer will be initialized by calling buf.fill(fill).
|
||||
* If parameter is omitted, buffer will be filled with zeros.
|
||||
* @param encoding encoding used for call to buf.fill while initializing
|
||||
*/
|
||||
static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
|
||||
/**
|
||||
* Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents
|
||||
* of the newly created Buffer are unknown and may contain sensitive data.
|
||||
*
|
||||
* @param size count of octets to allocate
|
||||
*/
|
||||
static allocUnsafe(size: number): Buffer;
|
||||
/**
|
||||
* Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents
|
||||
* of the newly created Buffer are unknown and may contain sensitive data.
|
||||
*
|
||||
* @param size count of octets to allocate
|
||||
*/
|
||||
static allocUnsafeSlow(size: number): Buffer;
|
||||
}
|
||||
2106
node_modules/buffer/index.js
generated
vendored
Normal file
2106
node_modules/buffer/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
93
node_modules/buffer/package.json
generated
vendored
Normal file
93
node_modules/buffer/package.json
generated
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"name": "buffer",
|
||||
"description": "Node.js Buffer API, for the browser",
|
||||
"version": "6.0.3",
|
||||
"author": {
|
||||
"name": "Feross Aboukhadijeh",
|
||||
"email": "feross@feross.org",
|
||||
"url": "https://feross.org"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/feross/buffer/issues"
|
||||
},
|
||||
"contributors": [
|
||||
"Romain Beauxis <toots@rastageeks.org>",
|
||||
"James Halliday <mail@substack.net>"
|
||||
],
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"airtap": "^3.0.0",
|
||||
"benchmark": "^2.1.4",
|
||||
"browserify": "^17.0.0",
|
||||
"concat-stream": "^2.0.0",
|
||||
"hyperquest": "^2.1.3",
|
||||
"is-buffer": "^2.0.5",
|
||||
"is-nan": "^1.3.0",
|
||||
"split": "^1.0.1",
|
||||
"standard": "*",
|
||||
"tape": "^5.0.1",
|
||||
"through2": "^4.0.2",
|
||||
"uglify-js": "^3.11.5"
|
||||
},
|
||||
"homepage": "https://github.com/feross/buffer",
|
||||
"jspm": {
|
||||
"map": {
|
||||
"./index.js": {
|
||||
"node": "@node/buffer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"keywords": [
|
||||
"arraybuffer",
|
||||
"browser",
|
||||
"browserify",
|
||||
"buffer",
|
||||
"compatible",
|
||||
"dataview",
|
||||
"uint8array"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"types": "index.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/feross/buffer.git"
|
||||
},
|
||||
"scripts": {
|
||||
"perf": "browserify --debug perf/bracket-notation.js > perf/bundle.js && open perf/index.html",
|
||||
"perf-node": "node perf/bracket-notation.js && node perf/concat.js && node perf/copy-big.js && node perf/copy.js && node perf/new-big.js && node perf/new.js && node perf/readDoubleBE.js && node perf/readFloatBE.js && node perf/readUInt32LE.js && node perf/slice.js && node perf/writeFloatBE.js",
|
||||
"size": "browserify -r ./ | uglifyjs -c -m | gzip | wc -c",
|
||||
"test": "standard && node ./bin/test.js",
|
||||
"test-browser-old": "airtap -- test/*.js",
|
||||
"test-browser-old-local": "airtap --local -- test/*.js",
|
||||
"test-browser-new": "airtap -- test/*.js test/node/*.js",
|
||||
"test-browser-new-local": "airtap --local -- test/*.js test/node/*.js",
|
||||
"test-node": "tape test/*.js test/node/*.js",
|
||||
"update-authors": "./bin/update-authors.sh"
|
||||
},
|
||||
"standard": {
|
||||
"ignore": [
|
||||
"test/node/**/*.js",
|
||||
"test/common.js",
|
||||
"test/_polyfill.js",
|
||||
"perf/**/*.js"
|
||||
]
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
}
|
||||
11
node_modules/ieee754/LICENSE
generated
vendored
Normal file
11
node_modules/ieee754/LICENSE
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
Copyright 2008 Fair Oaks Labs, Inc.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
51
node_modules/ieee754/README.md
generated
vendored
Normal file
51
node_modules/ieee754/README.md
generated
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
# ieee754 [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
|
||||
|
||||
[travis-image]: https://img.shields.io/travis/feross/ieee754/master.svg
|
||||
[travis-url]: https://travis-ci.org/feross/ieee754
|
||||
[npm-image]: https://img.shields.io/npm/v/ieee754.svg
|
||||
[npm-url]: https://npmjs.org/package/ieee754
|
||||
[downloads-image]: https://img.shields.io/npm/dm/ieee754.svg
|
||||
[downloads-url]: https://npmjs.org/package/ieee754
|
||||
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
|
||||
[standard-url]: https://standardjs.com
|
||||
|
||||
[![saucelabs][saucelabs-image]][saucelabs-url]
|
||||
|
||||
[saucelabs-image]: https://saucelabs.com/browser-matrix/ieee754.svg
|
||||
[saucelabs-url]: https://saucelabs.com/u/ieee754
|
||||
|
||||
### Read/write IEEE754 floating point numbers from/to a Buffer or array-like object.
|
||||
|
||||
## install
|
||||
|
||||
```
|
||||
npm install ieee754
|
||||
```
|
||||
|
||||
## methods
|
||||
|
||||
`var ieee754 = require('ieee754')`
|
||||
|
||||
The `ieee754` object has the following functions:
|
||||
|
||||
```
|
||||
ieee754.read = function (buffer, offset, isLE, mLen, nBytes)
|
||||
ieee754.write = function (buffer, value, offset, isLE, mLen, nBytes)
|
||||
```
|
||||
|
||||
The arguments mean the following:
|
||||
|
||||
- buffer = the buffer
|
||||
- offset = offset into the buffer
|
||||
- value = value to set (only for `write`)
|
||||
- isLe = is little endian?
|
||||
- mLen = mantissa length
|
||||
- nBytes = number of bytes
|
||||
|
||||
## what is ieee754?
|
||||
|
||||
The IEEE Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point computation. [Read more](http://en.wikipedia.org/wiki/IEEE_floating_point).
|
||||
|
||||
## license
|
||||
|
||||
BSD 3 Clause. Copyright (c) 2008, Fair Oaks Labs, Inc.
|
||||
10
node_modules/ieee754/index.d.ts
generated
vendored
Normal file
10
node_modules/ieee754/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
declare namespace ieee754 {
|
||||
export function read(
|
||||
buffer: Uint8Array, offset: number, isLE: boolean, mLen: number,
|
||||
nBytes: number): number;
|
||||
export function write(
|
||||
buffer: Uint8Array, value: number, offset: number, isLE: boolean,
|
||||
mLen: number, nBytes: number): void;
|
||||
}
|
||||
|
||||
export = ieee754;
|
||||
85
node_modules/ieee754/index.js
generated
vendored
Normal file
85
node_modules/ieee754/index.js
generated
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
|
||||
var e, m
|
||||
var eLen = (nBytes * 8) - mLen - 1
|
||||
var eMax = (1 << eLen) - 1
|
||||
var eBias = eMax >> 1
|
||||
var nBits = -7
|
||||
var i = isLE ? (nBytes - 1) : 0
|
||||
var d = isLE ? -1 : 1
|
||||
var s = buffer[offset + i]
|
||||
|
||||
i += d
|
||||
|
||||
e = s & ((1 << (-nBits)) - 1)
|
||||
s >>= (-nBits)
|
||||
nBits += eLen
|
||||
for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
|
||||
|
||||
m = e & ((1 << (-nBits)) - 1)
|
||||
e >>= (-nBits)
|
||||
nBits += mLen
|
||||
for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
|
||||
|
||||
if (e === 0) {
|
||||
e = 1 - eBias
|
||||
} else if (e === eMax) {
|
||||
return m ? NaN : ((s ? -1 : 1) * Infinity)
|
||||
} else {
|
||||
m = m + Math.pow(2, mLen)
|
||||
e = e - eBias
|
||||
}
|
||||
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
|
||||
}
|
||||
|
||||
exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
|
||||
var e, m, c
|
||||
var eLen = (nBytes * 8) - mLen - 1
|
||||
var eMax = (1 << eLen) - 1
|
||||
var eBias = eMax >> 1
|
||||
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
|
||||
var i = isLE ? 0 : (nBytes - 1)
|
||||
var d = isLE ? 1 : -1
|
||||
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
|
||||
|
||||
value = Math.abs(value)
|
||||
|
||||
if (isNaN(value) || value === Infinity) {
|
||||
m = isNaN(value) ? 1 : 0
|
||||
e = eMax
|
||||
} else {
|
||||
e = Math.floor(Math.log(value) / Math.LN2)
|
||||
if (value * (c = Math.pow(2, -e)) < 1) {
|
||||
e--
|
||||
c *= 2
|
||||
}
|
||||
if (e + eBias >= 1) {
|
||||
value += rt / c
|
||||
} else {
|
||||
value += rt * Math.pow(2, 1 - eBias)
|
||||
}
|
||||
if (value * c >= 2) {
|
||||
e++
|
||||
c /= 2
|
||||
}
|
||||
|
||||
if (e + eBias >= eMax) {
|
||||
m = 0
|
||||
e = eMax
|
||||
} else if (e + eBias >= 1) {
|
||||
m = ((value * c) - 1) * Math.pow(2, mLen)
|
||||
e = e + eBias
|
||||
} else {
|
||||
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
|
||||
e = 0
|
||||
}
|
||||
}
|
||||
|
||||
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
|
||||
|
||||
e = (e << mLen) | m
|
||||
eLen += mLen
|
||||
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
|
||||
|
||||
buffer[offset + i - d] |= s * 128
|
||||
}
|
||||
52
node_modules/ieee754/package.json
generated
vendored
Normal file
52
node_modules/ieee754/package.json
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
{
|
||||
"name": "ieee754",
|
||||
"description": "Read/write IEEE754 floating point numbers from/to a Buffer or array-like object",
|
||||
"version": "1.2.1",
|
||||
"author": {
|
||||
"name": "Feross Aboukhadijeh",
|
||||
"email": "feross@feross.org",
|
||||
"url": "https://feross.org"
|
||||
},
|
||||
"contributors": [
|
||||
"Romain Beauxis <toots@rastageeks.org>"
|
||||
],
|
||||
"devDependencies": {
|
||||
"airtap": "^3.0.0",
|
||||
"standard": "*",
|
||||
"tape": "^5.0.1"
|
||||
},
|
||||
"keywords": [
|
||||
"IEEE 754",
|
||||
"buffer",
|
||||
"convert",
|
||||
"floating point",
|
||||
"ieee754"
|
||||
],
|
||||
"license": "BSD-3-Clause",
|
||||
"main": "index.js",
|
||||
"types": "index.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/feross/ieee754.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "standard && npm run test-node && npm run test-browser",
|
||||
"test-browser": "airtap -- test/*.js",
|
||||
"test-browser-local": "airtap --local -- test/*.js",
|
||||
"test-node": "tape test/*.js"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
}
|
||||
86
package-lock.json
generated
86
package-lock.json
generated
@ -48,6 +48,7 @@
|
||||
"@types/xmldom": "^0.1.34",
|
||||
"@xmldom/xmldom": "^0.9.8",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"buffer": "^6.0.3",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "1.0.4",
|
||||
@ -60,6 +61,7 @@
|
||||
"input-otp": "1.4.1",
|
||||
"isomorphic-dompurify": "^2.23.0",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"libmime": "^5.3.6",
|
||||
"lucide-react": "^0.454.0",
|
||||
"mailparser": "^3.7.2",
|
||||
"next": "14.2.24",
|
||||
@ -83,6 +85,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/imapflow": "^1.0.20",
|
||||
"@types/jsdom": "^21.1.7",
|
||||
"@types/node": "^22.14.1",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
@ -3001,6 +3004,18 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/jsdom": {
|
||||
"version": "21.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
|
||||
"integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/tough-cookie": "*",
|
||||
"parse5": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/mailparser": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/mailparser/-/mailparser-3.4.5.tgz",
|
||||
@ -3074,6 +3089,13 @@
|
||||
"@types/react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/tough-cookie": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
|
||||
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/trusted-types": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||
@ -3215,6 +3237,26 @@
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/binary-extensions": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||
@ -3279,6 +3321,30 @@
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
||||
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/busboy": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
|
||||
@ -4184,6 +4250,26 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ieee754": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/imap": {
|
||||
"version": "0.8.19",
|
||||
"resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz",
|
||||
|
||||
@ -49,6 +49,7 @@
|
||||
"@types/xmldom": "^0.1.34",
|
||||
"@xmldom/xmldom": "^0.9.8",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"buffer": "^6.0.3",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "1.0.4",
|
||||
@ -61,6 +62,7 @@
|
||||
"input-otp": "1.4.1",
|
||||
"isomorphic-dompurify": "^2.23.0",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"libmime": "^5.3.6",
|
||||
"lucide-react": "^0.454.0",
|
||||
"mailparser": "^3.7.2",
|
||||
"next": "14.2.24",
|
||||
@ -84,6 +86,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/imapflow": "^1.0.20",
|
||||
"@types/jsdom": "^21.1.7",
|
||||
"@types/node": "^22.14.1",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
|
||||
36
yarn.lock
36
yarn.lock
@ -1083,6 +1083,15 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/jsdom@^21.1.7":
|
||||
version "21.1.7"
|
||||
resolved "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz"
|
||||
integrity sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
"@types/tough-cookie" "*"
|
||||
parse5 "^7.0.0"
|
||||
|
||||
"@types/mailparser@^3.4.5":
|
||||
version "3.4.5"
|
||||
resolved "https://registry.npmjs.org/@types/mailparser/-/mailparser-3.4.5.tgz"
|
||||
@ -1141,6 +1150,11 @@
|
||||
"@types/prop-types" "*"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@types/tough-cookie@*":
|
||||
version "4.0.5"
|
||||
resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz"
|
||||
integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==
|
||||
|
||||
"@types/trusted-types@*", "@types/trusted-types@^2.0.7":
|
||||
version "2.0.7"
|
||||
resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
|
||||
@ -1230,6 +1244,11 @@ balanced-match@^1.0.0:
|
||||
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
|
||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||
|
||||
base64-js@^1.3.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
|
||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
|
||||
@ -1259,6 +1278,14 @@ browserslist@^4.23.3:
|
||||
node-releases "^2.0.19"
|
||||
update-browserslist-db "^1.1.1"
|
||||
|
||||
buffer@^6.0.3:
|
||||
version "6.0.3"
|
||||
resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
|
||||
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
||||
dependencies:
|
||||
base64-js "^1.3.1"
|
||||
ieee754 "^1.2.1"
|
||||
|
||||
busboy@1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz"
|
||||
@ -1832,6 +1859,11 @@ iconv-lite@^0.6.3, iconv-lite@0.6.3:
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3.0.0"
|
||||
|
||||
ieee754@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
|
||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||
|
||||
imap@^0.8.19:
|
||||
version "0.8.19"
|
||||
resolved "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz"
|
||||
@ -2007,7 +2039,7 @@ libbase64@1.3.0:
|
||||
resolved "https://registry.npmjs.org/libbase64/-/libbase64-1.3.0.tgz"
|
||||
integrity sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==
|
||||
|
||||
libmime@5.3.6:
|
||||
libmime@^5.3.6, libmime@5.3.6:
|
||||
version "5.3.6"
|
||||
resolved "https://registry.npmjs.org/libmime/-/libmime-5.3.6.tgz"
|
||||
integrity sha512-j9mBC7eiqi6fgBPAGvKCXJKJSIASanYF4EeA4iBzSG0HxQxmXnR3KbyWqTn4CwsKSebqCv2f5XZfAO6sKzgvwA==
|
||||
@ -2286,7 +2318,7 @@ package-json-from-dist@^1.0.0:
|
||||
resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz"
|
||||
integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
|
||||
|
||||
parse5@^7.2.1:
|
||||
parse5@^7.0.0, parse5@^7.2.1:
|
||||
version "7.2.1"
|
||||
resolved "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz"
|
||||
integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==
|
||||
|
||||
Loading…
Reference in New Issue
Block a user