@jupyterlab/builder
Version:
JupyterLab - Extension Builder
86 lines (85 loc) • 3.39 kB
TypeScript
import DuplicatePackageCheckerPlugin from 'duplicate-package-checker-webpack-plugin';
import * as webpack from 'webpack';
import { LicenseWebpackPlugin } from 'license-webpack-plugin';
import { LicenseIdentifiedModule } from 'license-webpack-plugin/dist/LicenseIdentifiedModule';
import { PluginOptions } from 'license-webpack-plugin/dist/PluginOptions';
export declare namespace WPPlugin {
/**
* A WebPack Plugin that copies the assets to the static directory
*/
class FrontEndPlugin {
constructor(buildDir: string, staticDir: string);
apply(compiler: webpack.Compiler): void;
buildDir: string;
staticDir: string;
private _first;
}
/**
* A WebPack Plugin that ignores files files that are filtered
* by a callback during a `--watch` build
*/
class FilterWatchIgnorePlugin {
constructor(ignored: (path: string) => boolean);
apply(compiler: webpack.Compiler): void;
ignored: (path: string) => boolean;
}
class NowatchDuplicatePackageCheckerPlugin extends DuplicatePackageCheckerPlugin {
apply(compiler: webpack.Compiler): void;
options: DuplicatePackageCheckerPlugin.Options;
}
/**
* A top-level report of the licenses for all code included in a bundle
*
* ### Note
*
* This is roughly informed by the terms defined in the SPDX spec, though is not
* an SPDX Document, since there seem to be several (incompatible) specs
* in that repo.
*
* @see https://github.com/spdx/spdx-spec/blob/development/v2.2.1/schemas/spdx-schema.json
**/
interface ILicenseReport {
packages: IPackageLicenseInfo[];
}
/**
* A best-effort single bundled package's information.
*
* ### Note
*
* This is roughly informed by SPDX `packages` and `hasExtractedLicenseInfos`,
* as making it conformant would vastly complicate the structure.
*
* @see https://github.com/spdx/spdx-spec/blob/development/v2.2.1/schemas/spdx-schema.json
**/
interface IPackageLicenseInfo {
/** the name of the package as it appears in node_modules */
name: string;
/** the version of the package, or an empty string if unknown */
versionInfo: string;
/** an SPDX license or LicenseRef, or an empty string if unknown */
licenseId: string;
/** the verbatim extracted text of the license, or an empty string if unknown */
extractedText: string;
}
/**
* A well-known filename for third-party license information.
*
* ### Note
* If an alternate JupyterLab-based ecosystem wanted to implement a different
* name, they may _still_ need to handle the presence of this file if reusing
* any core files or extensions.
*
* If multiple files are found by `jupyterlab_server, their `packages` will
* be concatenated.
*/
const DEFAULT_LICENSE_REPORT_FILENAME = "third-party-licenses.json";
/**
* a plugin that creates a predictable, machine-readable report of licenses for
* all modules included in this build
*/
class JSONLicenseWebpackPlugin extends LicenseWebpackPlugin {
constructor(pluginOptions?: PluginOptions);
/** render an SPDX-like record */
renderLicensesJSON(modules: LicenseIdentifiedModule[]): string;
}
}