Socket
Socket
Sign inDemoInstall

@netlify/esbuild

Package Overview
Dependencies
17
Maintainers
15
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.13.6 to 0.13.13

339

install.js

@@ -0,5 +1,9 @@

var __create = Object.create;
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;

@@ -20,100 +24,83 @@ var __propIsEnum = Object.prototype.propertyIsEnumerable;

var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const fs = require("fs");
const os = require("os");
const path = require("path");
const zlib = require("zlib");
const https = require("https");
const child_process = require("child_process");
const version = "0.13.6";
const binPath = path.join(__dirname, "bin", "esbuild");
async function installBinaryFromPackage(name, fromPath, toPath) {
const cachePath = getCachePath(name);
try {
fs.copyFileSync(cachePath, toPath);
fs.chmodSync(toPath, 493);
validateBinaryVersion(toPath);
const now = new Date();
fs.utimesSync(cachePath, now, now);
return;
} catch (e) {
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
var __reExport = (target, module2, desc) => {
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
for (let key of __getOwnPropNames(module2))
if (!__hasOwnProp.call(target, key) && key !== "default")
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
}
let buffer;
let didFail = false;
try {
buffer = installUsingNPM(name, fromPath);
} catch (err) {
didFail = true;
console.error(`Trying to install "${name}" using npm`);
console.error(`Failed to install "${name}" using npm: ${err && err.message || err}`);
return target;
};
var __toModule = (module2) => {
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
};
// lib/npm/node-platform.ts
var fs = require("fs");
var os = require("os");
var path = require("path");
var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
var knownWindowsPackages = {
"win32 arm64 LE": "esbuild-windows-arm64",
"win32 ia32 LE": "esbuild-windows-32",
"win32 x64 LE": "esbuild-windows-64"
};
var knownUnixlikePackages = {
"android arm64 LE": "esbuild-android-arm64",
"darwin arm64 LE": "esbuild-darwin-arm64",
"darwin x64 LE": "esbuild-darwin-64",
"freebsd arm64 LE": "esbuild-freebsd-arm64",
"freebsd x64 LE": "esbuild-freebsd-64",
"linux arm LE": "esbuild-linux-arm",
"linux arm64 LE": "esbuild-linux-arm64",
"linux ia32 LE": "esbuild-linux-32",
"linux mips64el LE": "esbuild-linux-mips64le",
"linux ppc64 LE": "esbuild-linux-ppc64le",
"linux x64 LE": "esbuild-linux-64",
"netbsd x64 LE": "esbuild-netbsd-64",
"openbsd x64 LE": "esbuild-openbsd-64",
"sunos x64 LE": "esbuild-sunos-64"
};
function pkgAndSubpathForCurrentPlatform() {
let pkg;
let subpath;
let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
if (platformKey in knownWindowsPackages) {
pkg = knownWindowsPackages[platformKey];
subpath = "esbuild.exe";
} else if (platformKey in knownUnixlikePackages) {
pkg = knownUnixlikePackages[platformKey];
subpath = "bin/esbuild";
} else {
throw new Error(`Unsupported platform: ${platformKey}`);
}
if (!buffer) {
const canonicalName = name.split("/").pop();
const url = `https://registry.npmjs.org/${name}/-/${canonicalName}-${version}.tgz`;
console.error(`Trying to download ${JSON.stringify(url)}`);
try {
buffer = extractFileFromTarGzip(await fetch(url), fromPath);
} catch (err) {
console.error(`Failed to download ${JSON.stringify(url)}: ${err && err.message || err}`);
}
}
if (!buffer) {
console.error(`Install unsuccessful`);
process.exit(1);
}
fs.writeFileSync(toPath, buffer, { mode: 493 });
try {
validateBinaryVersion(toPath);
} catch (err) {
console.error(`The version of the downloaded binary is incorrect: ${err && err.message || err}`);
console.error(`Install unsuccessful`);
process.exit(1);
}
try {
fs.mkdirSync(path.dirname(cachePath), {
recursive: true,
mode: 448
});
fs.copyFileSync(toPath, cachePath);
cleanCacheLRU(cachePath);
} catch (e) {
}
if (didFail)
console.error(`Install successful`);
return { pkg, subpath };
}
function validateBinaryVersion(binaryPath) {
const stdout = child_process.execFileSync(binaryPath, ["--version"]).toString().trim();
if (stdout !== version) {
throw new Error(`Expected ${JSON.stringify(version)} but got ${JSON.stringify(stdout)}`);
function downloadedBinPath(pkg, subpath) {
const esbuildLibDir = path.dirname(require.resolve("esbuild"));
return path.join(esbuildLibDir, `downloaded-${pkg}-${path.basename(subpath)}`);
}
// lib/npm/node-install.ts
var fs2 = require("fs");
var os2 = require("os");
var path2 = require("path");
var zlib = require("zlib");
var https = require("https");
var child_process = require("child_process");
var toPath = path2.join(__dirname, "bin", "esbuild");
var isToPathJS = true;
function validateBinaryVersion(...command) {
command.push("--version");
const stdout = child_process.execFileSync(command.shift(), command).toString().trim();
if (stdout !== "0.13.13") {
throw new Error(`Expected ${JSON.stringify("0.13.13")} but got ${JSON.stringify(stdout)}`);
}
}
function getCachePath(name) {
const home = os.homedir();
const common = ["esbuild", "bin", `${name}@${version}`];
if (process.platform === "darwin")
return path.join(home, "Library", "Caches", ...common);
if (process.platform === "win32")
return path.join(home, "AppData", "Local", "Cache", ...common);
const XDG_CACHE_HOME = process.env.XDG_CACHE_HOME;
if (process.platform === "linux" && XDG_CACHE_HOME && path.isAbsolute(XDG_CACHE_HOME))
return path.join(XDG_CACHE_HOME, ...common);
return path.join(home, ".cache", ...common);
}
function cleanCacheLRU(fileToKeep) {
const dir = path.dirname(fileToKeep);
const entries = [];
for (const entry of fs.readdirSync(dir)) {
const entryPath = path.join(dir, entry);
try {
const stats = fs.statSync(entryPath);
entries.push({ path: entryPath, mtime: stats.mtime });
} catch (e) {
}
function isYarn() {
const { npm_config_user_agent } = process.env;
if (npm_config_user_agent) {
return /\byarn\//.test(npm_config_user_agent);
}
entries.sort((a, b) => +b.mtime - +a.mtime);
for (const entry of entries.slice(5)) {
try {
fs.unlinkSync(entry.path);
} catch (e) {
}
}
return false;
}

@@ -133,3 +120,3 @@ function fetch(url) {

}
function extractFileFromTarGzip(buffer, file) {
function extractFileFromTarGzip(buffer, subpath) {
try {

@@ -142,3 +129,3 @@ buffer = zlib.unzipSync(buffer);

let offset = 0;
file = `package/${file}`;
subpath = `package/${subpath}`;
while (offset < buffer.length) {

@@ -149,3 +136,3 @@ let name = str(offset, 100);

if (!isNaN(size)) {
if (name === file)
if (name === subpath)
return buffer.subarray(offset, offset + size);

@@ -155,23 +142,27 @@ offset += size + 511 & ~511;

}
throw new Error(`Could not find ${JSON.stringify(file)} in archive`);
throw new Error(`Could not find ${JSON.stringify(subpath)} in archive`);
}
function installUsingNPM(name, file) {
const installDir = path.join(os.tmpdir(), "esbuild-" + Math.random().toString(36).slice(2));
fs.mkdirSync(installDir, { recursive: true });
fs.writeFileSync(path.join(installDir, "package.json"), "{}");
function installUsingNPM(pkg, subpath, binPath) {
const env = __spreadProps(__spreadValues({}, process.env), { npm_config_global: void 0 });
child_process.execSync(`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${name}@${version}`, { cwd: installDir, stdio: "pipe", env });
const buffer = fs.readFileSync(path.join(installDir, "node_modules", name, file));
const esbuildLibDir = path2.dirname(require.resolve("esbuild"));
const installDir = path2.join(esbuildLibDir, "npm-install");
fs2.mkdirSync(installDir);
try {
removeRecursive(installDir);
} catch (e) {
fs2.writeFileSync(path2.join(installDir, "package.json"), "{}");
child_process.execSync(`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${"0.13.13"}`, { cwd: installDir, stdio: "pipe", env });
const installedBinPath = path2.join(installDir, "node_modules", pkg, subpath);
fs2.renameSync(installedBinPath, binPath);
} finally {
try {
removeRecursive(installDir);
} catch (e) {
}
}
return buffer;
}
function removeRecursive(dir) {
for (const entry of fs.readdirSync(dir)) {
const entryPath = path.join(dir, entry);
for (const entry of fs2.readdirSync(dir)) {
const entryPath = path2.join(dir, entry);
let stats;
try {
stats = fs.lstatSync(entryPath);
stats = fs2.lstatSync(entryPath);
} catch (e) {

@@ -183,81 +174,77 @@ continue;

else
fs.unlinkSync(entryPath);
fs2.unlinkSync(entryPath);
}
fs.rmdirSync(dir);
fs2.rmdirSync(dir);
}
function isYarnBerryOrNewer() {
const { npm_config_user_agent } = process.env;
if (npm_config_user_agent) {
const match = npm_config_user_agent.match(/yarn\/(\d+)/);
if (match && match[1]) {
return parseInt(match[1], 10) >= 2;
function applyManualBinaryPathOverride(overridePath) {
const pathString = JSON.stringify(overridePath);
fs2.writeFileSync(toPath, `#!/usr/bin/env node
require('child_process').execFileSync(${pathString}, process.argv.slice(2), { stdio: 'inherit' });
`);
const libMain = path2.join(__dirname, "lib", "main.js");
const code = fs2.readFileSync(libMain, "utf8");
fs2.writeFileSync(libMain, `var ESBUILD_BINARY_PATH = ${pathString};
${code}`);
}
function maybeOptimizePackage(binPath) {
if (os2.platform() !== "win32" && !isYarn()) {
const tempPath = path2.join(__dirname, "bin-esbuild");
try {
fs2.linkSync(binPath, tempPath);
fs2.renameSync(tempPath, toPath);
isToPathJS = false;
fs2.unlinkSync(tempPath);
} catch (e) {
}
}
return false;
}
function installDirectly(name) {
if (process.env.ESBUILD_BINARY_PATH) {
fs.copyFileSync(process.env.ESBUILD_BINARY_PATH, binPath);
validateBinaryVersion(binPath);
} else {
const tempBinPath = binPath + "__";
installBinaryFromPackage(name, "bin/esbuild", tempBinPath).then(() => fs.renameSync(tempBinPath, binPath)).catch((e) => setImmediate(() => {
throw e;
}));
async function downloadDirectlyFromNPM(pkg, subpath, binPath) {
const url = `https://registry.npmjs.org/${pkg}/-/${pkg}-${"0.13.13"}.tgz`;
console.error(`[esbuild] Trying to download ${JSON.stringify(url)}`);
try {
fs2.writeFileSync(binPath, extractFileFromTarGzip(await fetch(url), subpath));
fs2.chmodSync(binPath, 493);
} catch (e) {
console.error(`[esbuild] Failed to download ${JSON.stringify(url)}: ${e && e.message || e}`);
throw e;
}
}
function installWithWrapper(name, fromPath, toPath) {
fs.writeFileSync(binPath, `#!/usr/bin/env node
const path = require('path');
const esbuild_exe = path.join(__dirname, '..', ${JSON.stringify(toPath)});
const child_process = require('child_process');
const { status } = child_process.spawnSync(esbuild_exe, process.argv.slice(2), { stdio: 'inherit' });
process.exitCode = status === null ? 1 : status;
async function checkAndPreparePackage() {
if (ESBUILD_BINARY_PATH) {
applyManualBinaryPathOverride(ESBUILD_BINARY_PATH);
return;
}
const { pkg, subpath } = pkgAndSubpathForCurrentPlatform();
let binPath;
try {
binPath = require.resolve(`${pkg}/${subpath}`);
} catch (e) {
console.error(`[esbuild] Failed to find package "${pkg}" on the file system
This can happen if you use the "--no-optional" flag. The "optionalDependencies"
package.json feature is used by esbuild to install the correct binary executable
for your current platform. This install script will now attempt to work around
this. If that fails, you need to remove the "--no-optional" flag to use esbuild.
`);
const absToPath = path.join(__dirname, toPath);
if (process.env.ESBUILD_BINARY_PATH) {
fs.copyFileSync(process.env.ESBUILD_BINARY_PATH, absToPath);
validateBinaryVersion(absToPath);
} else {
installBinaryFromPackage(name, fromPath, absToPath).catch((e) => setImmediate(() => {
throw e;
}));
binPath = downloadedBinPath(pkg, subpath);
try {
console.error(`[esbuild] Trying to install package "${pkg}" using npm`);
installUsingNPM(pkg, subpath, binPath);
} catch (e2) {
console.error(`[esbuild] Failed to install package "${pkg}" using npm: ${e2 && e2.message || e2}`);
try {
await downloadDirectlyFromNPM(pkg, subpath, binPath);
} catch (e3) {
throw new Error(`Failed to install package "${pkg}"`);
}
}
}
maybeOptimizePackage(binPath);
}
function installOnUnix(name) {
if (isYarnBerryOrNewer()) {
installWithWrapper(name, "bin/esbuild", "esbuild");
checkAndPreparePackage().then(() => {
if (isToPathJS) {
validateBinaryVersion("node", toPath);
} else {
installDirectly(name);
validateBinaryVersion(toPath);
}
}
function installOnWindows(name) {
installWithWrapper(name, "esbuild.exe", "esbuild.exe");
}
const platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
const knownWindowsPackages = {
"win32 ia32 LE": "@netlify/esbuild-windows-32",
"win32 x64 LE": "@netlify/esbuild-windows-64"
};
const knownUnixlikePackages = {
"android arm64 LE": "@netlify/esbuild-android-arm64",
"darwin arm64 LE": "@netlify/esbuild-darwin-arm64",
"darwin x64 LE": "@netlify/esbuild-darwin-64",
"freebsd arm64 LE": "@netlify/esbuild-freebsd-arm64",
"freebsd x64 LE": "@netlify/esbuild-freebsd-64",
"openbsd x64 LE": "@netlify/esbuild-openbsd-64",
"linux arm LE": "@netlify/esbuild-linux-arm",
"linux arm64 LE": "@netlify/esbuild-linux-arm64",
"linux ia32 LE": "@netlify/esbuild-linux-32",
"linux mips64el LE": "@netlify/esbuild-linux-mips64le",
"linux ppc64 LE": "@netlify/esbuild-linux-ppc64le",
"linux x64 LE": "@netlify/esbuild-linux-64"
};
if (platformKey in knownWindowsPackages) {
installOnWindows(knownWindowsPackages[platformKey]);
} else if (platformKey in knownUnixlikePackages) {
installOnUnix(knownUnixlikePackages[platformKey]);
} else {
console.error(`Unsupported platform: ${platformKey}`);
process.exit(1);
}
});

@@ -6,31 +6,54 @@ export type Platform = 'browser' | 'node' | 'neutral';

export type Charset = 'ascii' | 'utf8';
export type TreeShaking = true | 'ignore-annotations';
interface CommonOptions {
/** Documentation: https://esbuild.github.io/api/#sourcemap */
sourcemap?: boolean | 'inline' | 'external' | 'both';
/** Documentation: https://esbuild.github.io/api/#legal-comments */
legalComments?: 'none' | 'inline' | 'eof' | 'linked' | 'external';
/** Documentation: https://esbuild.github.io/api/#source-root */
sourceRoot?: string;
/** Documentation: https://esbuild.github.io/api/#sources-content */
sourcesContent?: boolean;
/** Documentation: https://esbuild.github.io/api/#format */
format?: Format;
/** Documentation: https://esbuild.github.io/api/#globalName */
globalName?: string;
/** Documentation: https://esbuild.github.io/api/#target */
target?: string | string[];
/** Documentation: https://esbuild.github.io/api/#minify */
minify?: boolean;
/** Documentation: https://esbuild.github.io/api/#minify */
minifyWhitespace?: boolean;
/** Documentation: https://esbuild.github.io/api/#minify */
minifyIdentifiers?: boolean;
/** Documentation: https://esbuild.github.io/api/#minify */
minifySyntax?: boolean;
/** Documentation: https://esbuild.github.io/api/#charset */
charset?: Charset;
treeShaking?: TreeShaking;
/** Documentation: https://esbuild.github.io/api/#tree-shaking */
treeShaking?: boolean;
/** Documentation: https://esbuild.github.io/api/#ignore-annotations */
ignoreAnnotations?: boolean;
/** Documentation: https://esbuild.github.io/api/#jsx */
jsx?: 'transform' | 'preserve';
/** Documentation: https://esbuild.github.io/api/#jsx-factory */
jsxFactory?: string;
/** Documentation: https://esbuild.github.io/api/#jsx-fragment */
jsxFragment?: string;
/** Documentation: https://esbuild.github.io/api/#define */
define?: { [key: string]: string };
/** Documentation: https://esbuild.github.io/api/#pure */
pure?: string[];
/** Documentation: https://esbuild.github.io/api/#keep-names */
keepNames?: boolean;
/** Documentation: https://esbuild.github.io/api/#color */
color?: boolean;
/** Documentation: https://esbuild.github.io/api/#log-level */
logLevel?: LogLevel;
/** Documentation: https://esbuild.github.io/api/#log-limit */
logLimit?: number;

@@ -40,32 +63,63 @@ }

export interface BuildOptions extends CommonOptions {
/** Documentation: https://esbuild.github.io/api/#bundle */
bundle?: boolean;
/** Documentation: https://esbuild.github.io/api/#splitting */
splitting?: boolean;
/** Documentation: https://esbuild.github.io/api/#preserve-symlinks */
preserveSymlinks?: boolean;
/** Documentation: https://esbuild.github.io/api/#outfile */
outfile?: string;
/** Documentation: https://esbuild.github.io/api/#metafile */
metafile?: boolean;
/** Documentation: https://esbuild.github.io/api/#outdir */
outdir?: string;
/** Documentation: https://esbuild.github.io/api/#outbase */
outbase?: string;
/** Documentation: https://esbuild.github.io/api/#platform */
platform?: Platform;
/** Documentation: https://esbuild.github.io/api/#external */
external?: string[];
/** Documentation: https://esbuild.github.io/api/#loader */
loader?: { [ext: string]: Loader };
/** Documentation: https://esbuild.github.io/api/#resolve-extensions */
resolveExtensions?: string[];
/** Documentation: https://esbuild.github.io/api/#mainFields */
mainFields?: string[];
/** Documentation: https://esbuild.github.io/api/#conditions */
conditions?: string[];
/** Documentation: https://esbuild.github.io/api/#write */
write?: boolean;
/** Documentation: https://esbuild.github.io/api/#allow-overwrite */
allowOverwrite?: boolean;
/** Documentation: https://esbuild.github.io/api/#tsconfig */
tsconfig?: string;
/** Documentation: https://esbuild.github.io/api/#out-extension */
outExtension?: { [ext: string]: string };
/** Documentation: https://esbuild.github.io/api/#public-path */
publicPath?: string;
/** Documentation: https://esbuild.github.io/api/#entry-names */
entryNames?: string;
/** Documentation: https://esbuild.github.io/api/#chunk-names */
chunkNames?: string;
/** Documentation: https://esbuild.github.io/api/#asset-names */
assetNames?: string;
/** Documentation: https://esbuild.github.io/api/#inject */
inject?: string[];
/** Documentation: https://esbuild.github.io/api/#banner */
banner?: { [type: string]: string };
/** Documentation: https://esbuild.github.io/api/#footer */
footer?: { [type: string]: string };
/** Documentation: https://esbuild.github.io/api/#incremental */
incremental?: boolean;
/** Documentation: https://esbuild.github.io/api/#entry-points */
entryPoints?: string[] | Record<string, string>;
/** Documentation: https://esbuild.github.io/api/#stdin */
stdin?: StdinOptions;
/** Documentation: https://esbuild.github.io/plugins/ */
plugins?: Plugin[];
/** Documentation: https://esbuild.github.io/api/#working-directory */
absWorkingDir?: string;
/** Documentation: https://esbuild.github.io/api/#node-paths */
nodePaths?: string[]; // The "NODE_PATH" variable from Node.js
/** Documentation: https://esbuild.github.io/api/#watch */
watch?: boolean | WatchMode;

@@ -91,4 +145,6 @@ }

// Optional user-specified data that is passed through unmodified. You can
// use this to stash the original error, for example.
/**
* Optional user-specified data that is passed through unmodified. You can
* use this to stash the original error, for example.
*/
detail: any;

@@ -105,5 +161,8 @@ }

namespace: string;
line: number; // 1-based
column: number; // 0-based, in bytes
length: number; // in bytes
/** 1-based */
line: number;
/** 0-based, in bytes */
column: number;
/** in bytes */
length: number;
lineText: string;

@@ -115,4 +174,6 @@ suggestion: string;

path: string;
contents: Uint8Array; // "text" as bytes
text: string; // "contents" as text
/** "text" as bytes */
contents: Uint8Array;
/** "contents" as text */
text: string;
}

@@ -132,6 +193,10 @@

warnings: Message[];
outputFiles?: OutputFile[]; // Only when "write: false"
rebuild?: BuildInvalidate; // Only when "incremental: true"
stop?: () => void; // Only when "watch: true"
metafile?: Metafile; // Only when "metafile: true"
/** Only when "write: false" */
outputFiles?: OutputFile[];
/** Only when "incremental: true" */
rebuild?: BuildInvalidate;
/** Only when "watch: true" */
stop?: () => void;
/** Only when "metafile: true" */
metafile?: Metafile;
}

@@ -144,2 +209,3 @@

/** Documentation: https://esbuild.github.io/api/#serve-arguments */
export interface ServeOptions {

@@ -157,5 +223,7 @@ port?: number;

status: number;
timeInMS: number; // The time to generate the response, not to send it
/** The time to generate the response, not to send it */
timeInMS: number;
}
/** Documentation: https://esbuild.github.io/api/#serve-return-values */
export interface ServeResult {

@@ -363,8 +431,17 @@ port: number;

// This function invokes the "esbuild" command-line tool for you. It returns a
// promise that either resolves with a "BuildResult" object or rejects with a
// "BuildFailure" object.
//
// Works in node: yes
// Works in browser: yes
export interface AnalyzeMetafileOptions {
color?: boolean;
verbose?: boolean;
}
/**
* This function invokes the "esbuild" command-line tool for you. It returns a
* promise that either resolves with a "BuildResult" object or rejects with a
* "BuildFailure" object.
*
* - Works in node: yes
* - Works in browser: yes
*
* Documentation: https://esbuild.github.io/api/#build-api
*/
export declare function build(options: BuildOptions & { write: false }): Promise<BuildResult & { outputFiles: OutputFile[] }>;

@@ -374,61 +451,111 @@ export declare function build(options: BuildOptions & { incremental: true }): Promise<BuildIncremental>;

// This function is similar to "build" but it serves the resulting files over
// HTTP on a localhost address with the specified port.
//
// Works in node: yes
// Works in browser: no
/**
* This function is similar to "build" but it serves the resulting files over
* HTTP on a localhost address with the specified port.
*
* - Works in node: yes
* - Works in browser: no
*
* Documentation: https://esbuild.github.io/api/#serve
*/
export declare function serve(serveOptions: ServeOptions, buildOptions: BuildOptions): Promise<ServeResult>;
// This function transforms a single JavaScript file. It can be used to minify
// JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
// to older JavaScript. It returns a promise that is either resolved with a
// "TransformResult" object or rejected with a "TransformFailure" object.
//
// Works in node: yes
// Works in browser: yes
/**
* This function transforms a single JavaScript file. It can be used to minify
* JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
* to older JavaScript. It returns a promise that is either resolved with a
* "TransformResult" object or rejected with a "TransformFailure" object.
*
* - Works in node: yes
* - Works in browser: yes
*
* Documentation: https://esbuild.github.io/api/#transform-api
*/
export declare function transform(input: string, options?: TransformOptions): Promise<TransformResult>;
// Converts log messages to formatted message strings suitable for printing in
// the terminal. This allows you to reuse the built-in behavior of esbuild's
// log message formatter. This is a batch-oriented API for efficiency.
//
// Works in node: yes
// Works in browser: yes
/**
* Converts log messages to formatted message strings suitable for printing in
* the terminal. This allows you to reuse the built-in behavior of esbuild's
* log message formatter. This is a batch-oriented API for efficiency.
*
* - Works in node: yes
* - Works in browser: yes
*/
export declare function formatMessages(messages: PartialMessage[], options: FormatMessagesOptions): Promise<string[]>;
// A synchronous version of "build".
//
// Works in node: yes
// Works in browser: no
/**
* Pretty-prints an analysis of the metafile JSON to a string. This is just for
* convenience to be able to match esbuild's pretty-printing exactly. If you want
* to customize it, you can just inspect the data in the metafile yourself.
*
* - Works in node: yes
* - Works in browser: yes
*
* Documentation: https://esbuild.github.io/api/#analyze
*/
export declare function analyzeMetafile(metafile: Metafile | string, options?: AnalyzeMetafileOptions): Promise<string>;
/**
* A synchronous version of "build".
*
* - Works in node: yes
* - Works in browser: no
*
* Documentation: https://esbuild.github.io/api/#build-api
*/
export declare function buildSync(options: BuildOptions & { write: false }): BuildResult & { outputFiles: OutputFile[] };
export declare function buildSync(options: BuildOptions): BuildResult;
// A synchronous version of "transform".
//
// Works in node: yes
// Works in browser: no
/**
* A synchronous version of "transform".
*
* - Works in node: yes
* - Works in browser: no
*
* Documentation: https://esbuild.github.io/api/#transform-api
*/
export declare function transformSync(input: string, options?: TransformOptions): TransformResult;
// A synchronous version of "formatMessages".
//
// Works in node: yes
// Works in browser: no
/**
* A synchronous version of "formatMessages".
*
* - Works in node: yes
* - Works in browser: no
*/
export declare function formatMessagesSync(messages: PartialMessage[], options: FormatMessagesOptions): string[];
// This configures the browser-based version of esbuild. It is necessary to
// call this first and wait for the returned promise to be resolved before
// making other API calls when using esbuild in the browser.
//
// Works in node: yes
// Works in browser: yes ("options" is required)
/**
* A synchronous version of "analyzeMetafile".
*
* - Works in node: yes
* - Works in browser: no
*
* Documentation: https://esbuild.github.io/api/#analyze
*/
export declare function analyzeMetafileSync(metafile: Metafile | string, options?: AnalyzeMetafileOptions): string;
/**
* This configures the browser-based version of esbuild. It is necessary to
* call this first and wait for the returned promise to be resolved before
* making other API calls when using esbuild in the browser.
*
* - Works in node: yes
* - Works in browser: yes ("options" is required)
*
* Documentation: https://esbuild.github.io/api/#running-in-the-browser
*/
export declare function initialize(options: InitializeOptions): Promise<void>;
export interface InitializeOptions {
// The URL of the "esbuild.wasm" file. This must be provided when running
// esbuild in the browser.
/**
* The URL of the "esbuild.wasm" file. This must be provided when running
* esbuild in the browser.
*/
wasmURL?: string
// By default esbuild runs the WebAssembly-based browser API in a web worker
// to avoid blocking the UI thread. This can be disabled by setting "worker"
// to false.
/**
* By default esbuild runs the WebAssembly-based browser API in a web worker
* to avoid blocking the UI thread. This can be disabled by setting "worker"
* to false.
*/
worker?: boolean

@@ -435,0 +562,0 @@ }

{
"name": "@netlify/esbuild",
"version": "0.13.6",
"description": "An extremely fast JavaScript bundler and minifier.",
"repository": "https://github.com/netlify/esbuild",
"scripts": {
"postinstall": "node install.js"
},
"main": "lib/main.js",
"types": "lib/main.d.ts",
"bin": {
"esbuild": "bin/esbuild"
},
"license": "MIT"
"name": "@netlify/esbuild",
"version": "0.13.13",
"description": "An extremely fast JavaScript and CSS bundler and minifier.",
"repository": "https://github.com/netlify/esbuild",
"scripts": {
"postinstall": "node install.js"
},
"main": "lib/main.js",
"types": "lib/main.d.ts",
"bin": {
"esbuild": "bin/esbuild"
},
"optionalDependencies": {
"esbuild-android-arm64": "0.13.13",
"esbuild-darwin-64": "0.13.13",
"esbuild-darwin-arm64": "0.13.13",
"esbuild-freebsd-64": "0.13.13",
"esbuild-freebsd-arm64": "0.13.13",
"esbuild-linux-32": "0.13.13",
"esbuild-linux-64": "0.13.13",
"esbuild-linux-arm": "0.13.13",
"esbuild-linux-arm64": "0.13.13",
"esbuild-linux-mips64le": "0.13.13",
"esbuild-linux-ppc64le": "0.13.13",
"esbuild-netbsd-64": "0.13.13",
"esbuild-openbsd-64": "0.13.13",
"esbuild-sunos-64": "0.13.13",
"esbuild-windows-32": "0.13.13",
"esbuild-windows-64": "0.13.13",
"esbuild-windows-arm64": "0.13.13"
},
"license": "MIT"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc