UNPKG

78.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"bundlib.mjs","sources":["../src/api/errors.ts","../src/api/helpers.ts","../src/api/type-check.ts","../src/api/validate/in-list.ts","../src/api/validate/option-module.ts","../src/api/validate/option-main.ts","../src/api/validate/option-browser.ts","../src/api/validate/option-esmodule.ts","../src/api/validate/option-flag.ts","../src/api/validate/option-format.ts","../src/api/validate/option-globals.ts","../src/api/validate/option-input.ts","../src/api/validate/option-min.ts","../src/api/validate/option-name.ts","../src/api/validate/option-sourcemap.ts","../src/api/validate/option-types.ts","../src/api/validate/validate-keys.ts","../src/api/analize-pkg.ts","../src/api/has-own.ts","../src/api/array-to-external.ts","../src/api/create-config.ts","../src/api/extensions.ts","../src/api/find-first.ts","../src/api/is-installed.ts","../src/api/plugin-loader.ts","../src/api/plugins/api-plugin.ts","../src/api/rename.ts","../src/api/validate/ext-match.ts","../src/api/pkg-to-configs.ts","../src/api/configs-from-pkg.ts"],"sourcesContent":["export function error(msg: string): TypeError {\r\n return new TypeError(msg)\r\n}\r\n\r\nexport function invalidPkgField(field: string, type: string): TypeError {\r\n return error(`Invalid package.json \"${field}\" field. It has to be of type ${type}`)\r\n}\r\n\r\nexport function invalidOption(option: string, type: string): TypeError {\r\n return error(`Invalid \"${option}\" option. It has to be ${type}`)\r\n}\r\n","import { Dictionary, Nullable, StrictNullable } from './helper-types'\r\n\r\nexport const keys: (\r\n <K extends string | number | symbol>(\r\n object: Partial<Record<K, unknown>>,\r\n ) => Array<K extends string ? K : string>\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n) = Object.keys\r\n\r\nexport function keysOrNull(deps: Nullable<Dictionary<unknown>>): StrictNullable<string[]> {\r\n return deps ? keys(deps) : null\r\n}\r\n\r\nexport function setProp<V>(name: string, value: V, target: Dictionary<V>): Dictionary<V> {\r\n target[name] = value\r\n return target\r\n}\r\n\r\nexport function createObject<K extends string, V>(names: K[], value: V): Record<K, V> {\r\n return names.reduce((result, key) => (\r\n setProp(key, value, result)\r\n ), {} as Record<K, V>)\r\n}\r\n","import { Dictionary, Nullable } from './helper-types'\r\n\r\nexport function isNull(value: unknown): value is (null | undefined) {\r\n return value == null\r\n}\r\n\r\nexport function isObject<T = unknown>(value: unknown): value is (Dictionary<T> | T[]) {\r\n return !!value && typeof value === 'object'\r\n}\r\n\r\nexport function isString(value: unknown): value is string {\r\n return typeof value === 'string'\r\n}\r\n\r\nexport function isBool(value: unknown): value is boolean {\r\n return value === !!value\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/unbound-method\r\nexport const isArray: <T = unknown>(value: unknown) => value is T[] = Array.isArray\r\n\r\nexport function isDictionary<T = unknown>(value: unknown): value is Dictionary<T> {\r\n return isObject(value) && !isArray(value)\r\n}\r\n\r\nexport function isStringOrNull(value: unknown): value is Nullable<string> {\r\n return isNull(value) || isString(value)\r\n}\r\n\r\nexport function isDictionaryOrNull<T = unknown>(value: unknown): value is Nullable<Dictionary<T>> {\r\n return isNull(value) || isDictionary<T>(value)\r\n}\r\n","import { Nullable } from '../helper-types'\r\n\r\ntype InListTarget = Nullable<string | number | boolean>;\r\n\r\nexport type InList<M extends InListTarget> = (str: unknown) => str is M;\r\n\r\nexport function createInList<M extends InListTarget>(...model: Array<M | InList<M>>): InList<M> {\r\n return (str: unknown): str is M => (\r\n model.some(\r\n (inList) => (typeof inList === 'function') ? inList(str) : (str === inList),\r\n )\r\n )\r\n}\r\n","import { ESModuleBuildOptions } from '../bundlib-options'\r\nimport { createInList } from './in-list'\r\n\r\nexport const isModuleOptionKey = createInList<keyof ESModuleBuildOptions>(\r\n 'sourcemap',\r\n 'min',\r\n)\r\n","import { CommonJSBuildOptions } from '../bundlib-options'\r\nimport { createInList } from './in-list'\r\nimport { isModuleOptionKey } from './option-module'\r\n\r\nexport const isCJSOptionKey = createInList<keyof CommonJSBuildOptions>(\r\n isModuleOptionKey,\r\n 'esModule',\r\n 'interop',\r\n)\r\n","import { BrowserBuildOptions } from '../bundlib-options'\r\nimport { createInList } from './in-list'\r\nimport { isCJSOptionKey } from './option-main'\r\n\r\nexport const isBrowserOption = createInList<keyof BrowserBuildOptions>(\r\n isCJSOptionKey,\r\n 'format',\r\n 'name',\r\n 'id',\r\n 'extend',\r\n 'globals',\r\n)\r\n","import { ModuleOption, ModuleString, PerBuildModuleOptions } from '../bundlib-options'\r\nimport { Nullable } from '../helper-types'\r\nimport { createObject, setProp } from '../helpers'\r\nimport { createInList } from './in-list'\r\nimport { isArray, isBool, isNull } from '../type-check'\r\n\r\nexport type ModuleGlobal = Record<ModuleString, boolean>;\r\n\r\nexport const isModuleString = createInList<ModuleString>(\r\n 'main',\r\n 'browser',\r\n 'bin',\r\n)\r\n\r\nexport function isModuleOption(value: unknown): value is ModuleOption {\r\n return isNull(value) || isBool(value) || isModuleString(value) || (\r\n isArray<unknown>(value) && value.every(isModuleString)\r\n )\r\n}\r\n\r\nexport function normalizeModuleOption(option: ModuleOption): ModuleGlobal {\r\n const keys: ModuleString[] = ['main', 'browser', 'bin']\r\n return !option ? createObject(keys, false)\r\n : option === true ? createObject(keys, true)\r\n : isArray(option) ? option.reduce((result, field) => setProp(field, true, result), createObject(keys, false))\r\n : setProp(option, true, createObject(keys, false))\r\n}\r\n\r\nexport function normalizeBuildModule(\r\n build: Nullable<PerBuildModuleOptions>,\r\n key: keyof PerBuildModuleOptions,\r\n field: ModuleString,\r\n def: ModuleGlobal,\r\n): boolean {\r\n return (!build || isNull(build[key])) ? def[field] : build[key] as boolean\r\n}\r\n","import { Nullable } from '../helper-types'\r\nimport { isNull } from '../type-check'\r\n\r\nexport function normalizeBuildFlag<K extends string>(\r\n build: Nullable<Partial<Record<K, unknown>>>,\r\n key: K,\r\n def: boolean,\r\n): boolean {\r\n return !build || isNull(build[key]) ? def : !!build[key]\r\n}\r\n","import { Nullable } from '../helper-types'\r\nimport { createInList } from './in-list'\r\nimport { isNull } from '../type-check'\r\nimport { BrowserBuildFormat } from '../types'\r\n\r\nexport const isBrowserFormat = createInList<Nullable<BrowserBuildFormat>>(\r\n isNull,\r\n 'iife',\r\n 'amd',\r\n 'umd',\r\n)\r\n","import { GlobalsOptions } from '../bundlib-options'\r\nimport { Nullable } from '../helper-types'\r\nimport { keys, setProp } from '../helpers'\r\nimport { isArray, isNull, isObject, isString } from '../type-check'\r\n\r\nexport function isValidGlobals(value: unknown): value is GlobalsOptions {\r\n return isNull(value) || (\r\n isObject(value) && (\r\n isArray(value) ? value.every((item) => isString(item)) : keys(value).every((key) => (\r\n isString(key) && isString(value[key])\r\n ))\r\n )\r\n )\r\n}\r\n\r\nexport function normalizeGlobals(globals: GlobalsOptions): Record<string, string> | null {\r\n return !globals ? null\r\n : isArray(globals) ? globals.reduce<Record<string, string>>((result, value) => setProp(value, value, result), {})\r\n : globals\r\n}\r\n\r\nexport function normalizeBuildGlobals(\r\n build: Nullable<{ globals?: GlobalsOptions }>,\r\n def: Record<string, string> | null,\r\n): Record<string, string> | null {\r\n return (!build || isNull(build.globals)) ? def : normalizeGlobals(build.globals)\r\n}\r\n","import { InputOptions } from '../bundlib-options'\r\nimport { createInList } from './in-list'\r\n\r\nexport const isInOpKey = createInList<keyof InputOptions>('api', 'bin')\r\n","import { MinOption, BuildType, PerBuildMinOptions } from '../bundlib-options'\r\nimport { Nullable } from '../helper-types'\r\nimport { createObject, setProp } from '../helpers'\r\nimport { createInList } from './in-list'\r\nimport { isModuleString } from './option-esmodule'\r\nimport { isArray, isBool, isNull } from '../type-check'\r\n\r\nexport type MinGlobal = Record<BuildType, boolean>;\r\n\r\nexport const isMinString = createInList<BuildType>(\r\n isModuleString,\r\n 'module',\r\n)\r\n\r\nexport function isValidMinOption(value: unknown): value is MinOption {\r\n return isNull(value) || isBool(value) || isMinString(value) || (\r\n isArray<BuildType>(value) && value.every((item) => (\r\n isMinString(item)\r\n ))\r\n )\r\n}\r\n\r\nexport function normalizeMinOption(min: MinOption): MinGlobal {\r\n const keys: BuildType[] = ['main', 'module', 'browser', 'bin']\r\n return !min ? createObject(keys, false)\r\n : min === true ? createObject(keys, true)\r\n : isArray(min) ? min.reduce((result, field) => setProp(field, true, result), createObject(keys, false))\r\n : setProp(min, true, createObject(keys, false))\r\n}\r\n\r\nexport function normalizeBuildMin(\r\n build: Nullable<PerBuildMinOptions>,\r\n field: BuildType,\r\n def: MinGlobal,\r\n): boolean {\r\n return (!build || isNull(build.min)) ? def[field] : build.min\r\n}\r\n","import camelcase from 'camelcase'\r\nimport { basename } from 'path'\r\nimport { Nullable, StrictNullable } from '../helper-types'\r\n\r\nfunction normalizeBuildName(\r\n cwd: string,\r\n browserName: Nullable<string>,\r\n nameOption: Nullable<string>,\r\n pkgName: Nullable<string>,\r\n): StrictNullable<string> {\r\n return browserName || nameOption || (\r\n pkgName && camelcase(basename(pkgName))\r\n ) || camelcase(basename(cwd)) || null\r\n}\r\n\r\nexport default normalizeBuildName\r\n","import { SourceMapOptions } from '../bundlib-options'\r\nimport { Nullable } from '../helper-types'\r\nimport { isNull } from '../type-check'\r\nimport { RollupSourcemap } from '../types'\r\n\r\nexport function normalizeSourcemap(sourcemap: unknown): RollupSourcemap {\r\n return sourcemap === 'inline' ? 'inline' : (sourcemap !== false)\r\n}\r\n\r\nexport function normalizeBuildSourcemap(\r\n build: Nullable<SourceMapOptions>,\r\n def: RollupSourcemap,\r\n): RollupSourcemap {\r\n return !build || isNull(build.sourcemap)\r\n ? def\r\n : normalizeSourcemap(build.sourcemap)\r\n}\r\n","import { TypesOptions } from '../bundlib-options'\r\nimport { createInList } from './in-list'\r\n\r\nexport const isTypesOptionKey = createInList<keyof TypesOptions>(\r\n 'equals',\r\n)\r\n","import { Dictionary, StrictNullable } from '../helper-types'\r\nimport { keys } from '../helpers'\r\nimport { InList } from './in-list'\r\n\r\nexport function invalidKeys(object: Dictionary<unknown>, list: string[]): StrictNullable<string[]> {\r\n const invalid = keys(object).filter(\r\n (key) => !list.includes(key),\r\n )\r\n return invalid.length ? invalid : null\r\n}\r\n\r\nexport function keysInList<M extends string>(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n obj: Dictionary<any>,\r\n inList: InList<M>,\r\n): obj is Partial<Record<M, unknown>> {\r\n return keys(obj).every(inList)\r\n}\r\n","import readPkg from 'read-pkg'\r\nimport { BundlibOptions } from './bundlib-options'\r\nimport { error, invalidOption, invalidPkgField } from './errors'\r\nimport { StrictNullable } from './helper-types'\r\nimport { keys } from './helpers'\r\nimport { BundlibPkgJson } from './pkg'\r\nimport { BrowserBuildOptions, CommonJSBuildOptions, Dependencies, ESModuleBuildOptions, InputOptions, OutputOptions, PkgAnalized, TypesBuildOptions } from './pkg-analized'\r\nimport { isBool, isDictionary, isDictionaryOrNull, isNull, isString, isStringOrNull } from './type-check'\r\nimport { isBrowserOption } from './validate/option-browser'\r\nimport { isModuleOption, normalizeBuildModule, normalizeModuleOption } from './validate/option-esmodule'\r\nimport { normalizeBuildFlag } from './validate/option-flag'\r\nimport { isBrowserFormat } from './validate/option-format'\r\nimport { isValidGlobals, normalizeBuildGlobals, normalizeGlobals } from './validate/option-globals'\r\nimport { isInOpKey } from './validate/option-input'\r\nimport { isCJSOptionKey } from './validate/option-main'\r\nimport { isValidMinOption, normalizeBuildMin, normalizeMinOption } from './validate/option-min'\r\nimport { isModuleOptionKey } from './validate/option-module'\r\nimport normalizeBuildName from './validate/option-name'\r\nimport { normalizeBuildSourcemap, normalizeSourcemap } from './validate/option-sourcemap'\r\nimport { isTypesOptionKey } from './validate/option-types'\r\nimport { invalidKeys, keysInList } from './validate/validate-keys'\r\n\r\nasync function analizePkg(cwd: string, pkg?: BundlibPkgJson): Promise<PkgAnalized>;\r\nasync function analizePkg(cwd: string, inputPkg?: BundlibPkgJson): Promise<PkgAnalized> {\r\n\r\n // use provided package.json or read it from cwd\r\n\r\n const pkg: BundlibPkgJson = inputPkg || await readPkg({ cwd, normalize: false })\r\n\r\n // ensure the content of package.json is an object\r\n // throw otherwise\r\n\r\n if (!isDictionary(pkg)) {\r\n throw error('Invalid package.json content')\r\n }\r\n\r\n const {\r\n name: pkgName,\r\n main: pkgMain,\r\n module: pkgModule,\r\n 'jsnext:main': pkgJsNextMain,\r\n browser: pkgBrowser,\r\n bin: pkgBin,\r\n types: pkgTypes,\r\n typings,\r\n dependencies: runtimeDependencies,\r\n devDependencies,\r\n peerDependencies,\r\n bundlib: bundlibOptions = {},\r\n } = pkg\r\n\r\n // ensure \"bundlib\" field is null, undefined (or not present) or an object\r\n // throw otherwise\r\n\r\n if (!isDictionaryOrNull(bundlibOptions)) {\r\n throw invalidPkgField('bundlib', 'Object')\r\n }\r\n\r\n // ensure there are not unknown bundlib options\r\n // throw otherwise\r\n\r\n const invalidOptions = invalidKeys(bundlibOptions, [\r\n 'input',\r\n 'extend',\r\n 'esModule',\r\n 'interop',\r\n 'equals',\r\n 'sourcemap',\r\n 'format',\r\n 'name',\r\n 'id',\r\n 'globals',\r\n 'min',\r\n 'cache',\r\n 'project',\r\n 'main',\r\n 'module',\r\n 'browser',\r\n 'bin',\r\n 'types',\r\n ] as Array<keyof BundlibOptions>)\r\n\r\n if (invalidOptions) {\r\n const optionNames = invalidOptions.map((name) => `\"${name}\"`).join(', ')\r\n throw error(`Unknown options found: (${optionNames})`)\r\n }\r\n\r\n const {\r\n input: inputOption,\r\n sourcemap: sourcemapOption,\r\n esModule,\r\n interop,\r\n extend,\r\n format: browserFormat,\r\n name: browserName,\r\n id: amdId,\r\n globals: browserGlobals,\r\n min,\r\n cache: cacheOption,\r\n project: projectOption,\r\n main: mainOptions,\r\n module: moduleOptions,\r\n browser: browserOptions,\r\n bin: binaryOptions,\r\n types: typesOptions,\r\n } = bundlibOptions\r\n\r\n // ensure \"input\" option is valid\r\n // throw otherwise\r\n\r\n if (\r\n !isStringOrNull(inputOption) && !(\r\n isDictionary<string>(inputOption) && keysInList(inputOption, isInOpKey) && keys(inputOption).every((key) => (\r\n isString(inputOption[key])\r\n ))\r\n )\r\n ) {\r\n throw invalidOption('input', 'string | { api?: string, bin?: string }')\r\n }\r\n\r\n // ensure \"sourcemap\" option is valid\r\n // throw otherwise\r\n\r\n if (!isNull(sourcemapOption) && !isBool(sourcemapOption) && sourcemapOption !== 'inline') {\r\n throw invalidOption('sourcemap', 'boolean | \"inline\"')\r\n }\r\n\r\n // ensure \"esModule\" option is valid\r\n // throw otherwise\r\n\r\n if (!isModuleOption(esModule)) {\r\n throw invalidOption(\r\n 'esModule',\r\n 'boolean | \"main\" | \"browser\" | \"bin\" | Array<\"main\" | \"browser\" | \"bin\">',\r\n )\r\n }\r\n\r\n // ensure \"interop\" option is valid\r\n // throw otherwise\r\n\r\n if (!isModuleOption(interop)) {\r\n throw invalidOption(\r\n 'interop',\r\n 'boolean | \"main\" | \"browser\" | \"bin\" | Array<\"main\" | \"browser\" | \"bin\">',\r\n )\r\n }\r\n\r\n // ensure \"format\" option is valid\r\n // throw otherwise\r\n\r\n if (!isBrowserFormat(browserFormat)) {\r\n throw invalidOption('format', '\"amd\" | \"iife\" | \"amd\"')\r\n }\r\n\r\n // ensure \"name\" option is valid\r\n // throw otherwise\r\n\r\n if (!isStringOrNull(browserName)) {\r\n throw invalidOption('name', 'string')\r\n }\r\n\r\n // ensure \"id\" option is valid\r\n // throw otherwise\r\n\r\n if (!isStringOrNull(amdId)) {\r\n throw invalidOption('id', 'string')\r\n }\r\n\r\n // ensure \"globals\" option is valid\r\n // throw otherwise\r\n\r\n if (!isValidGlobals(browserGlobals)) {\r\n throw invalidOption(\r\n 'globals',\r\n 'Object<string, string> | string[]',\r\n )\r\n }\r\n\r\n // ensure \"min\" option is valid\r\n // throw otherwise\r\n\r\n if (!isValidMinOption(min)) {\r\n throw invalidOption(\r\n 'min',\r\n 'boolean | \"main\" | \"module\" | \"browser\" | \"bin\" | Array<\"main\" | \"module\" | \"browser\" | \"bin\">',\r\n )\r\n }\r\n\r\n // ensure \"cache\" option is valid\r\n // throw otherwise\r\n\r\n if (!isStringOrNull(cacheOption)) {\r\n throw invalidOption('cache', 'string')\r\n }\r\n\r\n // ensure \"project\" option is valid\r\n // throw otherwise\r\n\r\n if (!isStringOrNull(projectOption)) {\r\n throw invalidOption('project', 'string')\r\n }\r\n\r\n // ensure \"main\" option is valid\r\n // throw otherwise\r\n // TODO: check for invalid keys & every option format\r\n\r\n if (\r\n !isNull(mainOptions) && (mainOptions !== false) && !(\r\n isDictionary<string>(mainOptions) &&\r\n keysInList(mainOptions, isCJSOptionKey)\r\n )\r\n ) {\r\n throw invalidOption(\r\n 'main',\r\n 'false | { sourcemap?: boolean | \"inline\", esModule?: boolean, interop?: boolean, min?: boolean }',\r\n )\r\n }\r\n\r\n // ensure \"module\" option is valid\r\n // throw otherwise\r\n // TODO: check for invalid keys & every option format\r\n\r\n if (\r\n !isNull(moduleOptions) && (moduleOptions !== false) && !(\r\n isDictionary<never>(moduleOptions) &&\r\n keysInList(moduleOptions, isModuleOptionKey)\r\n )\r\n ) {\r\n throw invalidOption(\r\n 'module',\r\n 'false | { sourcemap?: boolean | \"inline\", min?: boolean }',\r\n )\r\n }\r\n\r\n // ensure \"browser\" option is valid\r\n // throw otherwise\r\n // TODO: check for invalid keys & every option format\r\n\r\n if (\r\n !isNull(browserOptions) && (browserOptions !== false) && !(\r\n isDictionary<never>(browserOptions) &&\r\n keysInList(browserOptions, isBrowserOption) &&\r\n isBrowserFormat(browserOptions.format) &&\r\n (['name', 'id'] as Array<keyof typeof browserOptions>).every((key) => (\r\n isStringOrNull(browserOptions[key])\r\n )) &&\r\n isValidGlobals(browserOptions.globals)\r\n )\r\n ) {\r\n throw invalidOption(\r\n 'browser',\r\n 'false | { sourcemap?: boolean | \"inline\", esModule?: boolean, interop?: boolean, min?: boolean, ... }',\r\n )\r\n }\r\n\r\n // ensure \"bin\" option is valid\r\n // throw otherwise\r\n // TODO: check for invalid keys & every option format\r\n\r\n if (\r\n !isNull(binaryOptions) && (binaryOptions !== false) && !(\r\n isDictionary<never>(binaryOptions) &&\r\n keysInList(binaryOptions, isCJSOptionKey)\r\n )\r\n ) {\r\n throw invalidOption(\r\n 'bin',\r\n 'false | { sourcemap?: boolean | \"inline\", esModule?: boolean, interop?: boolean, min?: boolean }',\r\n )\r\n }\r\n\r\n // ensure \"types\" option is valid\r\n // throw otherwise\r\n // TODO: check for invalid keys\r\n\r\n if (\r\n !isNull(typesOptions) && (typesOptions !== false) && !(\r\n isDictionary<never>(typesOptions) &&\r\n keysInList(typesOptions, isTypesOptionKey)\r\n )\r\n ) {\r\n throw invalidOption('types', 'false | { equals?: boolean }')\r\n }\r\n\r\n // ensure \"main\" field is a supported value\r\n // throw otherwise\r\n\r\n if ((mainOptions !== false) && !isStringOrNull(pkgMain)) {\r\n throw invalidPkgField('main', 'string')\r\n }\r\n\r\n // ensure \"module\" field is a supported value if needed\r\n // throw otherwise\r\n\r\n if ((moduleOptions !== false) && !isStringOrNull(pkgModule)) {\r\n throw invalidPkgField('module', 'string')\r\n }\r\n\r\n // ensure \"jsnext:main\" field is a supported value if needed and \"module\" field not present\r\n // throw otherwise\r\n\r\n if (!pkgModule && (moduleOptions !== false) && !isStringOrNull(pkgJsNextMain)) {\r\n throw invalidPkgField('jsnext:main', 'string')\r\n }\r\n\r\n // ensure \"browser\" field is a supported value if needed\r\n // throw otherwise\r\n\r\n if ((browserOptions !== false) && !isStringOrNull(pkgBrowser)) {\r\n throw invalidPkgField('browser', 'string')\r\n }\r\n\r\n // ensure \"bin\" field is a supported value if needed\r\n // throw otherwise\r\n\r\n if ((binaryOptions !== false) && !isStringOrNull(pkgBin)) {\r\n throw invalidPkgField('bin', 'string')\r\n }\r\n\r\n // ensure \"dependencies\" field is valid\r\n // throw otherwise\r\n\r\n if (!isDictionaryOrNull(runtimeDependencies)) {\r\n throw invalidPkgField('dependencies', 'Object')\r\n }\r\n\r\n // ensure \"peerDependencies\" field is valid\r\n // throw otherwise\r\n\r\n if (!isDictionaryOrNull(peerDependencies)) {\r\n throw invalidPkgField('peerDependencies', 'Object')\r\n }\r\n\r\n // set ES Module build output file from \"module\" field falling back to \"jsnext:main\" field\r\n\r\n const esModuleFile = pkgModule || pkgJsNextMain\r\n\r\n // set types definition output file from \"types\" field falling back to \"typings\" field\r\n\r\n const typesPath = pkgTypes || typings\r\n\r\n // set api and binary input from \"input\" option\r\n\r\n const { api: apiInput, bin: binInput } = isStringOrNull(inputOption)\r\n ? { api: inputOption } as InputOptions\r\n : inputOption\r\n\r\n // set input files\r\n\r\n const input: InputOptions = {\r\n api: apiInput || null,\r\n bin: binInput || null,\r\n }\r\n\r\n // normalize global options\r\n\r\n const globalSourcemap = normalizeSourcemap(sourcemapOption)\r\n const globalESModule = normalizeModuleOption(esModule)\r\n const globalInterop = normalizeModuleOption(interop)\r\n const globalMin = normalizeMinOption(min)\r\n\r\n // set CommonJS Module build output options\r\n\r\n const mainOutput: StrictNullable<CommonJSBuildOptions> = (mainOptions === false || !pkgMain) ? null : {\r\n path: pkgMain,\r\n sourcemap: normalizeBuildSourcemap(\r\n mainOptions,\r\n globalSourcemap,\r\n ),\r\n esModule: normalizeBuildModule(mainOptions, 'esModule', 'main', globalESModule),\r\n interop: normalizeBuildModule(mainOptions, 'interop', 'main', globalInterop),\r\n min: normalizeBuildMin(mainOptions, 'main', globalMin),\r\n }\r\n\r\n // set ES Module build output options\r\n\r\n const moduleOutput: StrictNullable<ESModuleBuildOptions> = (moduleOptions === false || !esModuleFile) ? null : {\r\n path: esModuleFile,\r\n sourcemap: normalizeBuildSourcemap(\r\n moduleOptions,\r\n globalSourcemap,\r\n ),\r\n min: normalizeBuildMin(moduleOptions, 'module', globalMin),\r\n }\r\n\r\n // set Browser build output options\r\n\r\n const browserOutput: StrictNullable<BrowserBuildOptions> = (browserOptions === false || !pkgBrowser) ? null : {\r\n path: pkgBrowser as string,\r\n sourcemap: normalizeBuildSourcemap(\r\n browserOptions,\r\n globalSourcemap,\r\n ),\r\n esModule: normalizeBuildModule(browserOptions, 'esModule', 'browser', globalESModule),\r\n interop: normalizeBuildModule(browserOptions, 'interop', 'browser', globalInterop),\r\n min: normalizeBuildMin(browserOptions, 'browser', globalMin),\r\n format: browserOptions && !isNull(browserOptions.format) ? browserOptions.format : (browserFormat || 'umd'),\r\n name: normalizeBuildName(\r\n cwd,\r\n browserOptions ? browserOptions.name : null,\r\n browserName,\r\n pkgName,\r\n ),\r\n id: browserOptions && browserOptions.id || amdId || null,\r\n globals: normalizeBuildGlobals(\r\n browserOptions,\r\n normalizeGlobals(browserGlobals),\r\n ),\r\n extend: normalizeBuildFlag(browserOptions, 'extend', !!extend),\r\n }\r\n\r\n // set Binary build output options\r\n\r\n const binaryOutput: StrictNullable<CommonJSBuildOptions> = (binaryOptions === false || !pkgBin) ? null : {\r\n path: pkgBin as string,\r\n sourcemap: normalizeBuildSourcemap(\r\n binaryOptions,\r\n globalSourcemap,\r\n ),\r\n esModule: normalizeBuildModule(binaryOptions, 'esModule', 'bin', globalESModule),\r\n interop: normalizeBuildModule(binaryOptions, 'interop', 'bin', globalInterop),\r\n min: normalizeBuildMin(binaryOptions, 'bin', globalMin),\r\n }\r\n\r\n // set type definitions output options\r\n\r\n const typesOutput: StrictNullable<TypesBuildOptions> = (typesOptions === false || !typesPath) ? null : {\r\n path: typesPath,\r\n }\r\n\r\n // set all output options\r\n\r\n const output: OutputOptions = {\r\n main: mainOutput,\r\n module: moduleOutput,\r\n browser: browserOutput,\r\n bin: binaryOutput,\r\n types: typesOutput,\r\n }\r\n\r\n // set dependencies options\r\n\r\n const dependencies: Dependencies = {\r\n runtime: runtimeDependencies || null,\r\n dev: devDependencies || null,\r\n peer: peerDependencies || null,\r\n }\r\n\r\n // set cache option\r\n\r\n const cache: StrictNullable<string> = cacheOption || null\r\n const project: StrictNullable<string> = projectOption || null\r\n\r\n // return all options\r\n\r\n return {\r\n cwd,\r\n pkg,\r\n input,\r\n output,\r\n dependencies,\r\n cache,\r\n project,\r\n }\r\n\r\n}\r\n\r\nexport default analizePkg\r\n","// eslint-disable-next-line @typescript-eslint/unbound-method\r\nconst hasOwn = Object.prototype.hasOwnProperty\r\n\r\nexport default hasOwn\r\n","import { IsExternal } from 'rollup'\r\nimport hasOwn from './has-own'\r\nimport { Dictionary, StrictNullable } from './helper-types'\r\n\r\nfunction arrayToExternal(...modules: Array<StrictNullable<string[]>>): IsExternal {\r\n\r\n const filtered = modules.reduce<string[]>(\r\n (result, list) => list ? [...result, ...list] : result,\r\n [],\r\n )\r\n\r\n if (!filtered.length) {\r\n return () => false\r\n }\r\n\r\n const cache: Dictionary<boolean> = {}\r\n\r\n return (source: string, importer: unknown, isResolved: boolean) => {\r\n\r\n // ignore local and resolved modules\r\n\r\n if (isResolved || source.startsWith('.')) {\r\n return\r\n }\r\n\r\n // return from cache if present\r\n\r\n if (hasOwn.call(cache, source)) {\r\n return cache[source]\r\n }\r\n\r\n // set cached value\r\n\r\n return cache[source] = filtered.some((moduleName): (boolean | void) => {\r\n\r\n if (source === moduleName) {\r\n return true\r\n }\r\n\r\n const len = moduleName.length\r\n\r\n return (source.substr(0, len) === moduleName) && /^[/\\\\]$/.test(source[len])\r\n\r\n })\r\n\r\n }\r\n\r\n}\r\n\r\nexport default arrayToExternal\r\n","import { ChokidarOptions, IsExternal, Plugin, WatcherOptions as RollupWatcherOptions } from 'rollup'\r\nimport { Dictionary, Nullable } from './helper-types'\r\nimport { BrowserBuildFormat, BundlibRollupBrowseOutputOptions, BundlibRollupModuleOutputOptions, BundlibRollupOptions, ModuleBuildFormat, RollupSourcemap } from './types'\r\nimport { createInList } from './validate/in-list'\r\n\r\nexport function createConfig<OutputOptions extends BundlibRollupModuleOutputOptions>(\r\n input: string,\r\n output: OutputOptions,\r\n external: IsExternal,\r\n plugins: Plugin[],\r\n chokidar: boolean | ChokidarOptions,\r\n): BundlibRollupOptions<OutputOptions> {\r\n\r\n const watch: RollupWatcherOptions = {\r\n exclude: ['node_modules/**'],\r\n }\r\n\r\n if (chokidar) {\r\n watch.chokidar = chokidar === true ? {} : chokidar\r\n }\r\n\r\n return {\r\n input,\r\n output,\r\n external,\r\n plugins,\r\n watch,\r\n }\r\n\r\n}\r\n\r\nexport function createModuleConfig(\r\n input: string,\r\n format: ModuleBuildFormat,\r\n file: string,\r\n sourcemap: RollupSourcemap,\r\n esModule: boolean,\r\n interop: boolean,\r\n external: IsExternal,\r\n plugins: Plugin[],\r\n chokidar: boolean | ChokidarOptions,\r\n): BundlibRollupOptions<BundlibRollupModuleOutputOptions> {\r\n return createConfig(\r\n input,\r\n { file, format, sourcemap, esModule, interop },\r\n external,\r\n plugins,\r\n chokidar,\r\n )\r\n}\r\n\r\nconst requiresId = createInList('amd', 'umd')\r\n\r\nexport function createBrowserConfig(\r\n input: string,\r\n format: BrowserBuildFormat,\r\n file: string,\r\n sourcemap: RollupSourcemap,\r\n esModule: boolean,\r\n interop: boolean,\r\n isExternal: IsExternal,\r\n plugins: Plugin[],\r\n chokidar: boolean | ChokidarOptions,\r\n name: string,\r\n extend: boolean,\r\n globals: Nullable<Dictionary<string>>,\r\n id: Nullable<string>,\r\n): BundlibRollupOptions<BundlibRollupBrowseOutputOptions> {\r\n\r\n const output: BundlibRollupBrowseOutputOptions = {\r\n file,\r\n format,\r\n sourcemap,\r\n esModule,\r\n interop,\r\n extend,\r\n name,\r\n globals: globals || {},\r\n }\r\n\r\n if (id && requiresId(format)) {\r\n output.amd = {\r\n id,\r\n }\r\n }\r\n\r\n return createConfig(\r\n input,\r\n output,\r\n isExternal,\r\n plugins,\r\n chokidar,\r\n )\r\n\r\n}\r\n","export const TS_ONLY_EXTENSIONS = ['.ts', '.tsx']\r\nexport const JS_EXTENSIONS = ['.js', '.jsx', '.mjs', '.es6', '.es', '.node']\r\nexport const TS_EXTENSIONS = [...TS_ONLY_EXTENSIONS, ...JS_EXTENSIONS]\r\n","import { existsSync } from 'fs'\r\nimport { StrictNullable } from './helper-types'\r\n\r\nfunction findFirst(...filenames: string[]): StrictNullable<string> {\r\n for (const filename of filenames) {\r\n if (existsSync(filename)) {\r\n return filename\r\n }\r\n }\r\n return null\r\n}\r\n\r\nexport default findFirst\r\n","import { Dictionary, IsInstalled, Nullable } from './helper-types'\r\n\r\nfunction createIsInstalled(...dependencies: Nullable<Dictionary<unknown>>[]): IsInstalled {\r\n return (id) => !!dependencies.reduce<Dictionary<unknown>>((r, o) => ({ ...r, ...o }), {})[id]\r\n}\r\n\r\nexport default createIsInstalled\r\n","import resolveFrom from 'resolve-from'\r\nimport { PluginImpl } from 'rollup'\r\nimport { IsInstalled, StrictNullable } from './helper-types'\r\n\r\nfunction createPluginLoader(cwd: string, isInstalled: IsInstalled) {\r\n\r\n return <T extends PluginImpl>(id: string, named?: string | null): StrictNullable<T> => {\r\n if (!isInstalled(id)) {\r\n return null\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n const content = require(resolveFrom(cwd, id))\r\n return named ? content[named] : ('default' in content) ? content.default : content\r\n }\r\n\r\n}\r\n\r\nexport default createPluginLoader\r\n","import { dirname, join as pathJoin, relative, resolve } from 'path'\r\nimport { Plugin } from 'rollup'\r\nimport slash from 'slash'\r\nimport { Dictionary } from '../helper-types'\r\nimport { keys, setProp } from '../helpers'\r\n\r\nexport function mapIdExternal(cwd: string, outputDir: string, map: Dictionary<string>): Plugin {\r\n\r\n const normalizedMap = keys(map).reduce<Dictionary<string>>((result, source) => (\r\n setProp(\r\n slash(resolve(cwd, source)),\r\n resolve(cwd, map[source]),\r\n result,\r\n )\r\n ), {})\r\n\r\n return {\r\n\r\n name: 'api',\r\n\r\n resolveId(moduleId, from) {\r\n\r\n const resolved = !from ? moduleId : pathJoin(dirname(from), moduleId)\r\n\r\n const target = normalizedMap[slash(resolved)]\r\n || normalizedMap[slash(resolved + '.ts')]\r\n || normalizedMap[slash(pathJoin(resolved, 'index.ts'))]\r\n\r\n if (!target) {\r\n return null\r\n }\r\n\r\n const relativeTarget = relative(\r\n outputDir,\r\n target,\r\n )\r\n\r\n return {\r\n id: (\r\n !relativeTarget\r\n ? '.'\r\n : relativeTarget.startsWith('.')\r\n ? relativeTarget\r\n : pathJoin('.', relativeTarget)\r\n ),\r\n external: true,\r\n moduleSideEffects: false,\r\n }\r\n },\r\n\r\n }\r\n\r\n}\r\n\r\nexport default mapIdExternal\r\n","import { join, parse } from 'path'\r\n\r\nexport function renamePre(filename: string, pre: string): string {\r\n const { dir, name, ext } = parse(filename)\r\n return join(dir, `${name}.${pre}${ext}`)\r\n}\r\n\r\nexport function renameMin(filename: string): string {\r\n return renamePre(filename, 'min')\r\n}\r\n","import { extname } from 'path'\r\n\r\nfunction extensionMatch(filename: string, extensions: string[]): boolean {\r\n return extensions.includes(extname(filename).toLowerCase())\r\n}\r\n\r\nexport default extensionMatch\r\n","import builtinModules from 'builtin-modules'\r\nimport { basename, dirname, join as pathJoin, resolve } from 'path'\r\nimport { Plugin, PluginImpl } from 'rollup'\r\nimport arrayToExternal from './array-to-external'\r\nimport { createBrowserConfig, createModuleConfig } from './create-config'\r\nimport { error } from './errors'\r\nimport { JS_EXTENSIONS, TS_EXTENSIONS, TS_ONLY_EXTENSIONS } from './extensions'\r\nimport findFirst from './find-first'\r\nimport { StrictNullable } from './helper-types'\r\nimport { keysOrNull, setProp } from './helpers'\r\nimport createIsInstalled from './is-installed'\r\nimport { PkgAnalized } from './pkg-analized'\r\nimport createPluginLoader from './plugin-loader'\r\nimport pluginMapIdExternal from './plugins/api-plugin'\r\nimport { renameMin, renamePre } from './rename'\r\nimport { BundlibAPIOptions, BundlibRollupModuleOutputOptions, BundlibRollupOptions, RollupSourcemap } from './types'\r\nimport extensionMatch from './validate/ext-match'\r\n\r\nfunction pkgToConfigs(\r\n pkg: PkgAnalized,\r\n options: BundlibAPIOptions,\r\n): Array<BundlibRollupOptions<BundlibRollupModuleOutputOptions>>\r\n\r\nfunction pkgToConfigs(\r\n { cwd, input, output, dependencies, cache, project }: PkgAnalized,\r\n { dev, watch }: BundlibAPIOptions,\r\n): Array<BundlibRollupOptions<BundlibRollupModuleOutputOptions>> {\r\n\r\n const {\r\n api: apiInput1,\r\n bin: binInput1,\r\n } = input\r\n\r\n const {\r\n main: cjsOutput,\r\n module: esOutput,\r\n browser: browserOutput,\r\n bin: binaryOutput,\r\n types: typesOutput,\r\n } = output\r\n\r\n const {\r\n runtime: runtimeDeps,\r\n dev: devDeps,\r\n peer: peerDeps,\r\n } = dependencies\r\n\r\n const bundlibCache = resolve(cwd, cache || 'node_modules/.cache/bundlib')\r\n\r\n // throw if \"name\" option required and not present\r\n\r\n if (browserOutput) {\r\n const { format, name } = browserOutput\r\n if ((format === 'iife' || format === 'umd') && !name) {\r\n throw error('option \\'name\\' is required for IIFE and UMD builds')\r\n }\r\n }\r\n\r\n const isInstalled = createIsInstalled(runtimeDeps, devDeps)\r\n const pluginLoader = createPluginLoader(cwd, isInstalled)\r\n\r\n // CHECK FOR INSTALLED PLUGINS\r\n\r\n const loadPluginTypescript2 = pluginLoader<typeof import('rollup-plugin-typescript2').default>('rollup-plugin-typescript2')\r\n const loadPluginTypescript = pluginLoader<PluginImpl>('@rollup/plugin-typescript')\r\n const loadPluginESLint = pluginLoader<typeof import('rollup-plugin-eslint').eslint>('rollup-plugin-eslint', 'eslint')\r\n const loadPluginNodeResolve = pluginLoader<typeof import('@rollup/plugin-node-resolve').default>('@rollup/plugin-node-resolve')\r\n const loadPluginCommonJS = pluginLoader<typeof import('@rollup/plugin-commonjs').default>('@rollup/plugin-commonjs')\r\n const loadPluginJSON = pluginLoader<typeof import('@rollup/plugin-json').default>('@rollup/plugin-json')\r\n const loadPluginBabel = pluginLoader<typeof import('rollup-plugin-babel').default>('rollup-plugin-babel')\r\n const loadPluginBuble = pluginLoader<PluginImpl>('@rollup/plugin-buble')\r\n const loadPluginTerser = pluginLoader<PluginImpl>('rollup-plugin-terser', 'terser')\r\n const loadPluginStripShebang = pluginLoader<typeof import('rollup-plugin-strip-shebang')>('rollup-plugin-strip-shebang')\r\n const loadPluginAddShebang = pluginLoader<typeof import('rollup-plugin-add-shebang').default>('rollup-plugin-add-shebang')\r\n const loadPluginExportEquals = pluginLoader<typeof import('rollup-plugin-export-equals')>('rollup-plugin-export-equals')\r\n\r\n // CHECK FOR INSTALLED MODULES\r\n\r\n const useTypescriptPlugin = !!loadPluginTypescript2 || !!loadPluginTypescript\r\n const isInstalledChokidar = isInstalled('chokidar')\r\n\r\n const apiInput = apiInput1 ? resolve(cwd, apiInput1) : (\r\n (\r\n useTypescriptPlugin ? findFirst(\r\n ...['index.ts', 'index.tsx'].map((filename) => resolve(cwd, 'src', filename)),\r\n ) : null\r\n ) ||\r\n resolve(cwd, 'src', 'index.js')\r\n )\r\n\r\n const binInput = binInput1 ? resolve(cwd, binInput1) : (\r\n (\r\n useTypescriptPlugin ? findFirst(\r\n ...['index.ts'].map((filename) => resolve(cwd, 'src-bin', filename)),\r\n ) : null\r\n ) ||\r\n resolve(cwd, 'src-bin', 'index.js')\r\n )\r\n\r\n const isTypescriptAPIInput = extensionMatch(apiInput, TS_ONLY_EXTENSIONS)\r\n const isTypescriptBinaryInput = extensionMatch(binInput, TS_ONLY_EXTENSIONS)\r\n\r\n // throw if trying to generate type definitions from javascript input\r\n // TODO: show warning intead of throwing\r\n\r\n if (\r\n typesOutput &&\r\n !isTypescriptAPIInput\r\n ) {\r\n throw error('can\\'t generate types from javascript source')\r\n }\r\n\r\n const apiExtensions = isTypescriptAPIInput ? TS_EXTENSIONS : JS_EXTENSIONS\r\n const binaryExtensions = isTypescriptBinaryInput ? TS_EXTENSIONS : JS_EXTENSIONS\r\n\r\n const production = !dev\r\n\r\n const apiFolder = dirname(apiInput)\r\n\r\n const apiFolderContent = apiExtensions.map((ext) => (\r\n resolve(apiFolder, `**/*${ext}`)\r\n ))\r\n const cwdFolderContent = binaryExtensions.map((ext) => (\r\n resolve(cwd, `**/*${ext}`)\r\n ))\r\n\r\n const typesFilename = renamePre(basename(apiInput), 'd')\r\n\r\n let typesOutputDir = typesOutput ? resolve(cwd, typesOutput.path) : null\r\n if (typesOutputDir && extensionMatch(typesOutputDir, ['.ts'])) {\r\n typesOutputDir = dirname(typesOutputDir)\r\n }\r\n\r\n const isExternal = arrayToExternal(\r\n keysOrNull(runtimeDeps),\r\n keysOrNull(peerDeps),\r\n builtinModules as string[],\r\n )\r\n\r\n const useChokidar = isInstalledChokidar && !!watch\r\n\r\n const exclude = /node_modules/\r\n\r\n const configs: Array<BundlibRollupOptions<BundlibRollupModuleOutputOptions>> = []\r\n\r\n function createPlugins(\r\n inputIsTypescript: boolean,\r\n extensions: string[],\r\n outputFile: StrictNullable<string>,\r\n sourcemap: RollupSourcemap,\r\n mini: boolean,\r\n browser: boolean,\r\n bin: boolean,\r\n ): Plugin[] {\r\n\r\n const sourcemapBool = !!sourcemap\r\n\r\n const declarationDir = inputIsTypescript && configs.length === 0 && !bin && typesOutputDir\r\n const include = bin ? cwdFolderContent : apiFolderContent\r\n const cacheRoot = pathJoin(bundlibCache, 'rpt2')\r\n\r\n let shebang: string\r\n\r\n const plugins = [\r\n\r\n loadPluginESLint && loadPluginESLint({\r\n include,\r\n exclude,\r\n throwOnWarning: false,\r\n throwOnError: false,\r\n }),\r\n\r\n bin && loadPluginStripShebang && loadPluginStripShebang({\r\n capture: (shebangFromFile) => shebang = shebangFromFile,\r\n sourcemap: sourcemapBool,\r\n }),\r\n\r\n bin && cjsOutput && outputFile && pluginMapIdExternal(\r\n cwd,\r\n dirname(outputFile),\r\n setProp(apiInput, cwd, {}),\r\n ),\r\n\r\n loadPluginNodeResolve && loadPluginNodeResolve({\r\n preferBuiltins: !browser,\r\n extensions,\r\n rootDir: cwd,\r\n }),\r\n\r\n browser && loadPluginCommonJS && loadPluginCommonJS({\r\n sourceMap: sourcemapBool,\r\n }),\r\n\r\n inputIsTypescript && loadPluginTypescript2 && loadPluginTypescript2({\r\n // include,\r\n cacheRoot,\r\n useTsconfigDeclarationDir: true,\r\n tsconfigDefaults: {\r\n // include,\r\n exclude: [],\r\n },\r\n tsconfigOverride: {\r\n compilerOptions: {\r\n sourceMap: sourcemapBool,\r\n declaration: !!declarationDir,\r\n ...declarationDir && { declarationDir },\r\n },\r\n },\r\n ...project && { tsconfig: resolve(cwd, project) },\r\n }),\r\n\r\n inputIsTypescript && loadPluginTypescript && loadPluginTypescript(),\r\n\r\n loadPluginJSON && loadPluginJSON({\r\n preferConst: true,\r\n }),\r\n\r\n declarationDir && typesOutput && loadPluginExportEquals && loadPluginExportEquals({\r\n file: resolve(cwd, pathJoin(declarationDir, typesFilename)),\r\n }),\r\n\r\n loadPluginBabel && loadPluginBabel({\r\n include,\r\n extensions,\r\n exclude,\r\n }),\r\n\r\n loadPluginBuble && loadPluginBuble(),\r\n\r\n bin && outputFile && loadPluginAddShebang && loadPluginAddShebang({\r\n include: outputFile,\r\n shebang: () => shebang || '#!/usr/bin/env node',\r\n }),\r\n\r\n mini && loadPluginTerser && loadPluginTerser({\r\n sourcemap: sourcemapBool,\r\n toplevel: true,\r\n module: true,\r\n compress: {\r\n passes: 2,\r\n },\r\n }),\r\n\r\n ]\r\n\r\n return plugins.filter<Plugin>(Boolean as unknown as (val: unknown) => val is Plugin)\r\n\r\n }\r\n\r\n if (esOutput) {\r\n\r\n const { path, sourcemap, min } = esOutput\r\n const resolvedPath = resolve(cwd, path)\r\n\r\n configs.push(\r\n createModuleConfig(\r\n apiInput,\r\n 'es',\r\n resolvedPath,\r\n sourcemap,\r\n true,\r\n false,\r\n isExternal,\r\n createPlugins(\r\n isTypescriptAPIInput,\r\n apiExtensions,\r\n resolvedPath,\r\n sourcemap,\r\n production && !min,\r\n false,\r\n false,\r\n ),\r\n useChokidar,\r\n ),\r\n )\r\n\r\n if (min) {\r\n\r\n configs.push(\r\n createModuleConfig(\r\n apiInput,\r\n 'es',\r\n renameMin(resolvedPath),\r\n sourcemap,\r\n true,\r\n false,\r\n isExternal,\r\n createPlugins(\r\n isTypescriptAPIInput,\r\n apiExtensions,\r\n resolvedPath,\r\n sourcemap,\r\n true,\r\n false,\r\n false,\r\n ),\r\n useChokidar,\r\n ),\r\n )\r\n\r\n }\r\n\r\n }\r\n\r\n if (cjsOutput) {\r\n\r\n const { path, sourcemap, esModule, interop, min } = cjsOutput\r\n const resolvedPath = resolve(cwd, path)\r\n\r\n configs.push(\r\n createModuleConfig(\r\n apiInput,\r\n 'cjs',\r\n resolvedPath,\r\n sourcemap,\r\n esModule,\r\n interop,\r\n isExternal,\r\n createPlugins(\r\n isTypescriptAPIInput,\r\n apiExtensions,\r\n resolvedPath,\r\n sourcemap,\r\n production && !min,\r\n false,\r\n false,\r\n ),\r\n useChokidar,\r\n ),\r\n )\r\n\r\n if (min) {\r\n\r\n configs.push(\r\n createModuleConfig(\r\n apiInput,\r\n 'cjs',\r\n renameMin(resolvedPath),\r\n sourcemap,\r\n esModule,\r\n interop,\r\n isExternal,\r\n createPlugins(\r\n isTypescriptAPIInput,\r\n apiExtensions,\r\n resolvedPath,\r\n sourcemap,\r\n true,\r\n false,\r\n false,\r\n ),\r\n useChokidar,\r\n ),\r\n )\r\n\r\n }\r\n\r\n }\r\n\r\n if (browserOutput) {\r\n\r\n const { path, sourcemap, esModule, interop, format, name, extend, id, globals, min } = browserOutput\r\n const resolvedPath = resolve(cwd, path)\r\n const isBrowserExternal = arrayToExternal(keysOrNull(globals))\r\n\r\n configs.push(\r\n createBrowserConfig(\r\n apiInput,\r\n format,\r\n resolvedPath,\r\n sourcemap,\r\n esModule,\r\n interop,\r\n isBrowserExternal,\r\n createPlugins(\r\n isTypescriptAPIInput,\r\n apiExtensions,\r\n null,\r\n sourcemap,\r\n production && !min,\r\n true,\r\n false,\r\n ),\r\n useChokidar,\r\n name as string,\r\n extend,\r\n globals,\r\n id,\r\n ),\r\n )\r\n\r\n if (min) {\r\n\r\n configs.push(\r\n createBrowserConfig(\r\n apiInput,\r\n format,\r\n renameMin(resolvedPath),\r\n sourcemap,\r\n esModule,\r\n interop,\r\n isBrowserExternal,\r\n createPlugins(\r\n isTypescriptAPIInput,\r\n apiExtensions,\r\n null,\r\n sourcemap,\r\n true,\r\n true,\r\n false,\r\n ),\r\n useChokidar,\r\n name as string,\r\n extend,\r\n globals,\r\n id,\r\n ),\r\n )\r\n\r\n }\r\n\r\n }\r\n\r\n if (binaryOutput) {\r\n\r\n const { path, sourcemap, esModule, interop, min } = binaryOutput\r\n const resolvedPath = resolve(cwd, path)\r\n\r\n configs.push(\r\n createModuleConfig(\r\n binInput,\r\n 'cjs',\r\n resolvedPath,\r\n sourcemap,\r\n esModule,\r\n interop,\r\n isExternal,\r\n createPlugins(\r\n isTypescriptBinaryInput,\r\n binaryExtensions,\r\n resolvedPath,\r\n sourcemap,\r\n production && !min,\r\n false,\r\n true,\r\n ),\r\n useChokidar,\r\n ),\r\n )\r\n\r\n if (min) {\r\n\r\n configs.push(\r\n createModuleConfig(\r\n binInput,\r\n 'cjs',\r\n renameMin(resolvedPath),\r\n sourcemap,\r\n esModule,\r\n interop,\r\n isExternal,\r\n createPlugins(\r\n isTypescriptBinaryInput,\r\n binaryExtensions,\r\n resolvedPath,\r\n sourcemap,\r\n true,\r\n false,\r\n true,\r\n ),\r\n useChokidar,\r\n ),\r\n )\r\n\r\n }\r\n\r\n }\r\n\r\n return configs\r\n\r\n}\r\n\r\nexport default pkgToConfigs\r\n","import analizePkg from './analize-pkg'\r\nimport { Nullable } from './helper-types'\r\nimport { BundlibPkgJson } from './pkg'\r\nimport pkgToConfigs from './pkg-to-configs'\r\nimport { BundlibAPIOptions, BundlibRollupModuleOutputOptions, BundlibRollupOptions } from './types'\r\n\r\nasync function configsFromPkg(\r\n cwd: string,\r\n options?: Nullable<BundlibAPIOptions | false>,\r\n pkgJson?: BundlibPkgJson,\r\n): Promise<Array<BundlibRollupOptions<BundlibRollupModuleOutputOptions>>> {\r\n return pkgToConfigs(\r\n await analizePkg(cwd, pkgJson),\r\n options || {},\r\n )\r\n}\r\n\r\nexport default configsFromPkg\r\n"],"names":["error","msg","TypeError","invalidPkgField","field","type","invalidOption","option","keys","Object","keysOrNull","deps","setProp","name","value","target","createObject","names","reduce","result","key","isNull","isObject","isString","isBool","isArray","Array","isDictionary","isStringOrNull","isDictionaryOrNull","createInList","model","str","some","inList","isModuleOptionKey","isCJSOptionKey","isBrowserOption","isModuleString","isModuleOption","every","normalizeModuleOption","normalizeBuildModule","build","def","normalizeBuildFlag","isBrowserFormat","isValidGlobals","item","normalizeGlobals","globals","normalizeBuildGlobals","isInOpKey","isMinString","isValidMinOption","normalizeMinOption","min","normalizeBuildMin","normalizeBuildName","cwd","browserName","nameOption","pkgName","camelcase","basename","normalizeSourcemap","sourcemap","normalizeBuildSourcemap","isTypesOptionKey","invalidKeys","object","list","invalid","filter","includes","length","keysInList","obj","analizePkg","inputPkg","pkg","readPkg","normalize","main","pkgMain","module","pkgModule","pkgJsNextMain","browser","pkgBrowser","bin","pkgBin","types","pkgTypes","typings","dependencies","runtimeDependencies","devDependencies","peerDependencies","bundlib","bundlibOptions","invalidOptions","optionNames","map","join","input","inputOption","sourcemapOption","esModule","interop","extend","format","browserFormat","id","amdId","browserGlobals","cache","cacheOption","project","projectOption","mainOptions","moduleOptions","browserOptions","binaryOptions","typesOptions","esModuleFile","typesPath","api","apiInput","binInput","globalSourcemap","globalESModule","globalInterop","globalMin","mainOutput","path","moduleOutput","browserOutput","binaryOutput","typesOutput","output","runtime","dev","peer","hasOwn","prototype","hasOwnProperty","arrayToExternal","modules","filtered","source","importer","isResolved","startsWith","call","moduleName","len","substr","test","createConfig","external","plugins","chokidar","watch","exclude","createModuleConfig","file","requiresId","createBrowserConfig","isExternal","amd","TS_ONLY_EXTENSIONS","JS_EXTENSIONS","TS_EXTENSIONS","findFirst","filenames","filename","existsSync","createIsInstalled","r","o","createPluginLoader","isInstalled","named","content","require","resolveFrom","default","mapIdExternal","outputDir","normalizedMap","slash","resolve","resolveId","moduleId","from","resolved","pathJoin","dirname","relativeTarget","relative","moduleSideEffects","renamePre","pre","dir","ext","parse","renameMin","extensionMatch","extensions","extname","toLowerCase","pkgToConfigs","apiInput1","binInput1","cjsOutput","esOutput","runtimeDeps","devDeps","peerDeps","bundlibCache","pluginLoader","loadPluginTypescript2","loadPluginTypescript","loadPluginESLint","loadPluginNodeResolve","loadPluginCommonJS","loadPluginJSON","loadPluginBabel","loadPluginBuble","loadPluginTerser","loadPluginStripShebang","loadPluginAddShebang","loadPluginExportEquals","useTypescriptPlugin","isInstalledChokidar","isTypescriptAPIInput","isTypescriptBinaryInput","apiExtensions","binaryExtensions","production","apiFolder","apiFolderContent","cwdFolderContent","typesFilename","typesOutputDir","builtinModules","useChokidar","configs","createPlugins","inputIsTypescript","outputFile","mini","sourcemapBool","declarationDir","include","cacheRoot","shebang","throwOnWarning","throwOnError","capture","shebangFromFile","pluginMapIdExternal","preferBuiltins","rootDir","sourceMap","useTsconfigDeclarationDir","tsconfigDefaults","tsconfigOverride","compilerOptions","declaration","tsconfig","preferConst","toplevel","compress","passes","Boolean","resolvedPath","push","isBrowserExternal","configsFromPkg","options","pkgJson"],"mappings":"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"}
\No newline at end of file