UNPKG

96.1 kBSource Map (JSON)View Raw
1{"version":3,"file":"bundlib.js","sources":["../src/api/errors.ts","../src/api/consts.ts","../src/api/type-check/basic.ts","../src/api/load-options.ts","../src/api/options/deprecated/boolean.ts","../src/api/tools/multilevel-array.ts","../src/api/type-check/advanced.ts","../src/api/options/deprecated/module.ts","../src/api/options/deprecated/main-and-bin.ts","../src/api/options/deprecated/browser.ts","../src/api/options/deprecated/normalize.ts","../src/api/options/deprecated/types.ts","../src/api/tools/helpers.ts","../src/api/type-check/keys.ts","../src/api/options/object-based.ts","../src/api/options/string-based.ts","../src/api/options/selective.ts","../src/api/options/es-module.ts","../src/api/options/format.ts","../src/api/options/globals.ts","../src/api/options/input.ts","../src/api/options/interop.ts","../src/api/options/min.ts","../src/api/options/name.ts","../src/api/options/project.ts","../src/api/options/skip.ts","../src/api/options/sourcemap.ts","../src/api/tools/read-pkg.ts","../src/api/analyze-pkg.ts","../src/api/extensions.ts","../src/api/plugins/chunks.ts","../src/api/tools/create-config.ts","../src/api/tools/create-find-input.ts","../src/api/tools/create-import-from-cwd.ts","../src/api/tools/create-is-external.ts","../src/api/tools/create-is-installed.ts","../src/api/tools/extension-match.ts","../src/api/tools/rename-pre.ts","../src/api/pkg-to-configs.ts","../src/api/configs-from-pkg.ts"],"sourcesContent":["export function error<E extends Error = TypeError>(msg: string, ErrorType: ErrorConstructor = TypeError): E {\r\n return new ErrorType(msg) as E;\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 invalidOptionOld(option: string, type: string): TypeError {\r\n return error(`Invalid \"${option}\" option. It has to be ${type}`);\r\n}\r\n\r\nexport function invalidOption(optionName: string, urlHash?: string): TypeError {\r\n return error(`Invalid \"${optionName}\" option. Please check the documentation at https://github.com/manferlo81/bundlib#${urlHash || optionName}`);\r\n}\r\n\r\nexport function inputNotFound(type: string): TypeError {\r\n return error(`Input file not found for ${type}`);\r\n}\r\n","export const PRODUCT_NAME = 'bundlib';\r\n\r\nexport const OPTION_FILE_PATHS = [\r\n ...['', '.json', '.yaml', '.yml', '.js'].map((ext) => `.${PRODUCT_NAME}rc${ext}`),\r\n `${PRODUCT_NAME}.config.js`,\r\n];\r\n\r\nexport const TS_DEF_PREFIX = 'd';\r\nexport const MIN_PREFIX = 'min';\r\n","import type { Dictionary } from '../types/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 === true || value === false;\r\n}\r\n\r\nexport const isArray: <T = unknown>(value: unknown) => value is T[] = Array.isArray;\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function isDictionary<T extends Dictionary<any> = Dictionary<unknown>>(value: unknown): value is T {\r\n return isObject(value) && !isArray(value);\r\n}\r\n","import { cosmiconfig } from 'cosmiconfig';\r\nimport { resolve } from 'path';\r\nimport { OPTION_FILE_PATHS, PRODUCT_NAME } from './consts';\r\nimport { isString } from './type-check/basic';\r\nimport type { BundlibOptions } from './types/bundlib-options';\r\nimport type { Nullable, StrictNullable } from './types/helper-types';\r\n\r\ninterface LoadedOptions {\r\n config: Nullable<BundlibOptions>;\r\n filepath: StrictNullable<string>;\r\n}\r\n\r\nexport async function loadOptions(cwd: string, optionsFromPkgJson: BundlibOptions | string | null | undefined): Promise<LoadedOptions | null> {\r\n\r\n const manager = cosmiconfig(PRODUCT_NAME, {\r\n stopDir: cwd,\r\n searchPlaces: OPTION_FILE_PATHS,\r\n ignoreEmptySearchPlaces: false,\r\n });\r\n\r\n if (optionsFromPkgJson) {\r\n\r\n if (!isString(optionsFromPkgJson)) {\r\n return { config: optionsFromPkgJson, filepath: null };\r\n }\r\n\r\n return manager.load(resolve(cwd, optionsFromPkgJson)) as Promise<LoadedOptions>;\r\n\r\n }\r\n\r\n return manager.search();\r\n\r\n}\r\n","import { isNull } from '../../type-check/basic';\r\nimport type { Nullable } from '../../types/helper-types';\r\n\r\nexport function normalizeBooleanOption<K extends string>(\r\n build: Nullable<{ [X in K]?: Nullable<boolean> }>,\r\n key: K,\r\n def: boolean,\r\n): boolean {\r\n\r\n if (!build) {\r\n return def;\r\n }\r\n\r\n const { [key]: value } = build;\r\n\r\n if (isNull(value)) {\r\n return def;\r\n }\r\n\r\n return !!value;\r\n\r\n}\r\n","import { isArray } from '../type-check/basic';\r\n\r\nexport type MultilevelArray<T> = Array<T | MultilevelArray<T>>;\r\n\r\nexport function flattenMultilevel<T>(array: MultilevelArray<T>, target: T[] = []): T[] {\r\n return array.reduce<T[]>(\r\n (acc, item) => {\r\n\r\n if (isArray(item)) {\r\n return flattenMultilevel(item, acc);\r\n }\r\n\r\n acc.push(item);\r\n return acc;\r\n\r\n },\r\n target,\r\n );\r\n}\r\n","import { flattenMultilevel, MultilevelArray } from '../tools/multilevel-array';\r\nimport type { Dictionary, Nullable, TypeCastCheckFunction, TypeCheckFunction } from '../types/helper-types';\r\nimport { isDictionary, isNull, isString } from './basic';\r\n\r\nexport function createOneOfLiteral<M>(...values: MultilevelArray<M>): TypeCheckFunction<M> {\r\n\r\n const flatten = flattenMultilevel(values);\r\n\r\n if (flatten.length === 1) {\r\n const [expected] = flatten;\r\n return (value): value is M => value === expected;\r\n }\r\n\r\n return (value): value is M => (\r\n flatten.some(\r\n (expected) => (value === expected),\r\n )\r\n );\r\n\r\n}\r\n\r\nexport const composeOneOf = <M>(...checks: Array<TypeCheckFunction<M>>): TypeCastCheckFunction<M> => (\r\n <X = M>(value: unknown): value is X => checks.some(\r\n (check) => check(value),\r\n )\r\n);\r\n\r\nexport const isStringOrNull = composeOneOf<Nullable<string>>(isNull, isString);\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const isDictionaryOrNull = composeOneOf<Nullable<Dictionary<any>>>(isNull, isDictionary);\r\n","import { createOneOfLiteral } from '../../type-check/advanced';\r\nimport type { ESModuleBuildOptions } from '../../types/bundlib-options';\r\n\r\nexport const MODULE_OPTION_KEYS = [\r\n 'sourcemap' as const,\r\n 'min' as const,\r\n];\r\n\r\nexport const isModuleOptionKey = createOneOfLiteral<keyof ESModuleBuildOptions>(MODULE_OPTION_KEYS);\r\n","import { createOneOfLiteral } from '../../type-check/advanced';\r\nimport type { CommonJSBuildOptions } from '../../types/bundlib-options';\r\nimport { MODULE_OPTION_KEYS } from './module';\r\n\r\nexport const CJS_OPTION_KEYS = [\r\n MODULE_OPTION_KEYS,\r\n 'esModule' as const,\r\n 'interop' as const,\r\n];\r\n\r\nexport const isCJSOptionKey = createOneOfLiteral<keyof CommonJSBuildOptions>(CJS_OPTION_KEYS);\r\n","import { createOneOfLiteral } from '../../type-check/advanced';\r\nimport type { BrowserBuildOptions } from '../../types/bundlib-options';\r\nimport { CJS_OPTION_KEYS } from './main-and-bin';\r\n\r\nexport const isBrowserOption = createOneOfLiteral<keyof BrowserBuildOptions>(\r\n CJS_OPTION_KEYS,\r\n 'format',\r\n 'name',\r\n 'id',\r\n 'extend',\r\n 'globals',\r\n);\r\n","import { isNull } from '../../type-check/basic';\r\nimport type { Nullable, TypeCheckFunction } from '../../types/helper-types';\r\n\r\nexport function normalizeDeprecatedOption<K extends string, T>(\r\n build: Nullable<{ [X in K]?: Nullable<T> }>,\r\n key: K,\r\n isValidValue: TypeCheckFunction<T>,\r\n def: T,\r\n): T {\r\n\r\n if (!build) {\r\n return def;\r\n }\r\n\r\n const { [key]: value } = build;\r\n\r\n if (isNull(value) || !isValidValue(value)) {\r\n return def;\r\n }\r\n\r\n return value;\r\n\r\n}\r\n","import { createOneOfLiteral } from '../../type-check/advanced';\r\nimport type { TypesOptions } from '../../types/bundlib-options';\r\n\r\nexport const isTypesOptionKey = createOneOfLiteral<keyof TypesOptions>('equals');\r\n","import type { Dictionary } from '../types/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\n// eslint-disable-next-line @typescript-eslint/unbound-method\r\nexport const hasOwn = Object.prototype.hasOwnProperty;\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 keysToObject<K extends string, V>(keys: K[], value: V): Record<K, V>;\r\nexport function keysToObject<K extends string, V, R extends Record<K, V>>(keys: K[], value: V, result: R): R;\r\nexport function keysToObject<K extends string, V, R extends Record<K, V>>(keys: K[], value: V, result?: R): Record<K, V> {\r\n return keys.reduce(\r\n (result, key) => setProp(key, value, result),\r\n result || {} as Record<K, V>,\r\n );\r\n}\r\n","import { keys } from '../tools/helpers';\r\nimport type { Dictionary, StrictNullable, TypeCheckFunction } from '../types/helper-types';\r\nimport { composeOneOf } from './advanced';\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function keysCheck<M extends string>(obj: Dictionary<any>, ...checks: Array<TypeCheckFunction<M>>): obj is Record<M, unknown> {\r\n return keys(obj).every(checks.length === 1 ? checks[0] : composeOneOf(...checks));\r\n}\r\n","import { invalidOption } from '../errors';\r\nimport { keys, keysToObject } from '../tools/helpers';\r\nimport { createOneOfLiteral } from '../type-check/advanced';\r\nimport { isNull, isObject } from '../type-check/basic';\r\nimport { keysCheck } from '../type-check/keys';\r\nimport type { BuildType, ObjectBasedSelectiveOption, ObjectSelectiveOptions, ObjectSelectiveOptionsKey, SelectiveSkipBuildType, SelectiveType } from '../types/bundlib-options';\r\nimport type { Nullable, TypeCheckFunction } from '../types/helper-types';\r\n\r\nexport type SelectiveResolved<K extends string, T> = Record<K, T>;\r\n\r\nexport const API_BUILD_KEYS: ['main', 'module', 'browser'] = ['main', 'module', 'browser'];\r\nexport const MODULE_BUILD_KEYS = [...API_BUILD_KEYS, 'bin'] as ['main', 'module', 'browser', 'bin'];\r\nexport const ALL_BUILD_KEYS = [...MODULE_BUILD_KEYS, 'types'] as ['main', 'module', 'browser', 'bin', 'types'];\r\n\r\nexport function populateWithAPIValue<T>(value: T, result: SelectiveResolved<string, T>): SelectiveResolved<string, T> {\r\n return keysToObject(\r\n API_BUILD_KEYS,\r\n value,\r\n result,\r\n );\r\n}\r\n\r\nexport function resolveObjectSelectiveOption<K extends BuildType, T, D>(\r\n value: ObjectSelectiveOptions<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError,\r\n): SelectiveResolved<K, T | D>;\r\n\r\nexport function resolveObjectSelectiveOption<K extends SelectiveSkipBuildType, T, D>(\r\n value: ObjectSelectiveOptions<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError,\r\n): SelectiveResolved<K, T | D>;\r\n\r\nexport function resolveObjectSelectiveOption<K extends string, T, D>(\r\n value: ObjectSelectiveOptions<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError,\r\n): SelectiveResolved<K, T | D>;\r\n\r\nexport function resolveObjectSelectiveOption<K extends string, T, D>(\r\n value: ObjectSelectiveOptions<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError,\r\n): SelectiveResolved<K, T | D> {\r\n\r\n if (!keysCheck(value, createOneOfLiteral<ObjectSelectiveOptionsKey<K>>('default', 'api'), isBuildType)) {\r\n throw invalid;\r\n }\r\n\r\n const { default: override, api, ...others } = value;\r\n\r\n if (!isNull(override) && !isValidValue(override)) {\r\n throw invalid;\r\n }\r\n\r\n const result = keysToObject<string, T | D>(\r\n allKeys,\r\n isNull(override) ? defaultValue : override,\r\n );\r\n\r\n if (!isNull(api)) {\r\n\r\n if (!isValidValue(api)) {\r\n throw invalid;\r\n }\r\n\r\n populateWithAPIValue(\r\n api,\r\n result,\r\n );\r\n\r\n }\r\n\r\n keys(others).forEach((type) => {\r\n\r\n const value = others[type as never] as Nullable<T | D>;\r\n\r\n if (!isNull(value)) {\r\n\r\n if (!isValidValue(value)) {\r\n throw invalid;\r\n }\r\n\r\n result[type] = value;\r\n\r\n }\r\n\r\n });\r\n\r\n return result;\r\n\r\n}\r\n\r\nexport function resolveObjectBasedSelectiveOption<T, D>(\r\n value: ObjectBasedSelectiveOption<BuildType, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n allKeys: BuildType[],\r\n optionName: string,\r\n urlHash?: string,\r\n): SelectiveResolved<BuildType, T | D> {\r\n\r\n if (isNull(value)) {\r\n return keysToObject(\r\n allKeys,\r\n defaultValue,\r\n );\r\n }\r\n\r\n if (isValidValue(value)) {\r\n return keysToObject(\r\n allKeys,\r\n value,\r\n );\r\n }\r\n\r\n const invalid = invalidOption(optionName, urlHash);\r\n\r\n if (!isObject(value)) {\r\n throw invalid;\r\n }\r\n\r\n return resolveObjectSelectiveOption<BuildType, T, D>(\r\n value,\r\n defaultValue,\r\n isValidValue,\r\n createOneOfLiteral(allKeys),\r\n allKeys,\r\n invalid,\r\n );\r\n\r\n}\r\n","import { keysToObject, setProp } from '../tools/helpers';\r\nimport type { BuildType, SelectiveSkipBuildType, SelectiveType } from '../types/bundlib-options';\r\nimport type { TypeCheckFunction } from '../types/helper-types';\r\nimport { populateWithAPIValue } from './object-based';\r\nimport type { SelectiveResolved } from './object-based';\r\n\r\nexport function resolveTypeStringArray<K extends BuildType>(\r\n value: Array<SelectiveType<K>>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError\r\n): SelectiveResolved<K, boolean>;\r\n\r\nexport function resolveTypeStringArray<K extends SelectiveSkipBuildType>(\r\n value: Array<SelectiveType<K>>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError\r\n): SelectiveResolved<K, boolean>;\r\n\r\nexport function resolveTypeStringArray<K extends string>(\r\n value: Array<SelectiveType<K>>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError\r\n): SelectiveResolved<K, boolean>;\r\n\r\nexport function resolveTypeStringArray<K extends string>(\r\n value: Array<SelectiveType<K>>,\r\n isBuildType: TypeCheckFunction<K>,\r\n allKeys: K[],\r\n invalid: TypeError,\r\n): SelectiveResolved<K, boolean> {\r\n\r\n return value.reduce(\r\n (result, type) => {\r\n\r\n if (type === 'api') {\r\n return populateWithAPIValue(\r\n true,\r\n result,\r\n );\r\n }\r\n\r\n if (!isBuildType(type)) {\r\n throw invalid;\r\n }\r\n\r\n return setProp(\r\n type,\r\n true,\r\n result,\r\n );\r\n\r\n },\r\n keysToObject(allKeys, false),\r\n );\r\n\r\n}\r\n","import { invalidOption } from '../errors';\r\nimport { keysToObject, setProp } from '../tools/helpers';\r\nimport { createOneOfLiteral } from '../type-check/advanced';\r\nimport { isArray, isNull, isObject } from '../type-check/basic';\r\nimport type { BuildType, SelectiveOption, SelectiveSkipBuildType, SelectiveType } from '../types/bundlib-options';\r\nimport type { TypeCheckFunction } from '../types/helper-types';\r\nimport { populateWithAPIValue, resolveObjectSelectiveOption } from './object-based';\r\nimport type { SelectiveResolved } from './object-based';\r\nimport { resolveTypeStringArray } from './string-based';\r\n\r\nexport type SelectiveResolvedBoolean<K extends string> = SelectiveResolved<K, boolean>;\r\n\r\nexport function resolveSelectiveOption<K extends BuildType, T, D>(\r\n value: SelectiveOption<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n allKeys: K[],\r\n optionName: string,\r\n urlHash?: string\r\n): SelectiveResolved<K, boolean | T | D>;\r\n\r\nexport function resolveSelectiveOption<K extends SelectiveSkipBuildType, T, D>(\r\n value: SelectiveOption<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n allKeys: K[],\r\n optionName: string,\r\n urlHash?: string\r\n): SelectiveResolved<K, boolean | T | D>;\r\n\r\nexport function resolveSelectiveOption<K extends string, T, D>(\r\n value: SelectiveOption<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n allKeys: K[],\r\n optionName: string,\r\n urlHash?: string\r\n): SelectiveResolved<K, boolean | T | D>;\r\n\r\nexport function resolveSelectiveOption<K extends string, T, D>(\r\n value: SelectiveOption<SelectiveType<K>, T>,\r\n defaultValue: D,\r\n isValidValue: TypeCheckFunction<T>,\r\n allKeys: K[],\r\n optionName: string,\r\n urlHash?: string,\r\n): SelectiveResolved<K, boolean | T | D> {\r\n\r\n if (isNull(value) || value === defaultValue) {\r\n return keysToObject(\r\n allKeys,\r\n defaultValue,\r\n );\r\n }\r\n\r\n if (isValidValue(value)) {\r\n return keysToObject(\r\n allKeys,\r\n value,\r\n );\r\n }\r\n\r\n if (value === 'api') {\r\n return populateWithAPIValue(\r\n true,\r\n keysToObject(allKeys, false),\r\n );\r\n }\r\n\r\n const isBuildType = createOneOfLiteral<K>(allKeys);\r\n\r\n if (isBuildType(value)) {\r\n return setProp(\r\n value,\r\n true,\r\n keysToObject(allKeys, false),\r\n );\r\n }\r\n\r\n const invalid = invalidOption(optionName, urlHash);\r\n\r\n if (!isObject(value)) {\r\n throw invalid;\r\n }\r\n\r\n if (isArray(value)) {\r\n return resolveTypeStringArray(\r\n value,\r\n isBuildType,\r\n allKeys,\r\n invalid,\r\n );\r\n }\r\n\r\n return resolveObjectSelectiveOption<K, T, D>(\r\n value,\r\n defaultValue,\r\n isValidValue,\r\n isBuildType,\r\n allKeys,\r\n invalid,\r\n );\r\n\r\n}\r\n","import { isBool } from '../type-check/basic';\r\nimport type { BuildType, SelectiveBooleanOption } from '../types/bundlib-options';\r\nimport type { Nullable } from '../types/helper-types';\r\nimport { MODULE_BUILD_KEYS } from './object-based';\r\nimport { resolveSelectiveOption } from './selective';\r\nimport type { SelectiveResolvedBoolean } from './selective';\r\n\r\nexport const resolveESModuleOption = (value: Nullable<SelectiveBooleanOption>): SelectiveResolvedBoolean<BuildType> => (\r\n resolveSelectiveOption<BuildType, boolean, false>(\r\n value,\r\n false,\r\n isBool,\r\n MODULE_BUILD_KEYS,\r\n 'esModule',\r\n 'esmodule',\r\n )\r\n);\r\n","import { composeOneOf, createOneOfLiteral } from '../type-check/advanced';\r\nimport { isNull } from '../type-check/basic';\r\nimport type { Nullable } from '../types/helper-types';\r\nimport type { BrowserBuildFormat } from '../types/types';\r\n\r\nexport const isBrowserFormat = composeOneOf<Nullable<BrowserBuildFormat>>(\r\n isNull,\r\n createOneOfLiteral('iife', 'amd', 'umd'),\r\n);\r\n","import { keys, setProp } from '../tools/helpers';\r\nimport { isArray, isNull, isObject, isString } from '../type-check/basic';\r\nimport type { GlobalsOptions } from '../types/bundlib-options';\r\nimport type { Nullable } from '../types/helper-types';\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 { isString } from '../type-check/basic';\r\nimport type { BuildType, SelectiveStringOption } from '../types/bundlib-options';\r\nimport type { StrictNullable } from '../types/helper-types';\r\nimport { MODULE_BUILD_KEYS, resolveObjectBasedSelectiveOption } from './object-based';\r\nimport type { SelectiveResolved } from './object-based';\r\n\r\nexport const resolveInputOption = (value: SelectiveStringOption): SelectiveResolved<BuildType, StrictNullable<string>> => (\r\n resolveObjectBasedSelectiveOption<string, null>(\r\n value,\r\n null,\r\n isString,\r\n MODULE_BUILD_KEYS,\r\n 'input',\r\n )\r\n);\r\n","import { isBool } from '../type-check/basic';\r\nimport type { BuildType, SelectiveBooleanOption } from '../types/bundlib-options';\r\nimport type { Nullable } from '../types/helper-types';\r\nimport { MODULE_BUILD_KEYS } from './object-based';\r\nimport { resolveSelectiveOption } from './selective';\r\nimport type { SelectiveResolvedBoolean } from './selective';\r\n\r\nexport const resolveInteropOption = (value: Nullable<SelectiveBooleanOption>): SelectiveResolvedBoolean<BuildType> => (\r\n resolveSelectiveOption<BuildType, boolean, false>(\r\n value,\r\n false,\r\n isBool,\r\n MODULE_BUILD_KEYS,\r\n 'interop',\r\n )\r\n);\r\n","import { isBool } from '../type-check/basic';\r\nimport type { BuildType, SelectiveBooleanOption } from '../types/bundlib-options';\r\nimport type { Nullable } from '../types/helper-types';\r\nimport { MODULE_BUILD_KEYS } from './object-based';\r\nimport { resolveSelectiveOption } from './selective';\r\nimport type { SelectiveResolvedBoolean } from './selective';\r\n\r\nexport const resolveMinOption = (value: Nullable<SelectiveBooleanOption>): SelectiveResolvedBoolean<BuildType> => (\r\n resolveSelectiveOption<BuildType, boolean, false>(\r\n value,\r\n false,\r\n isBool,\r\n MODULE_BUILD_KEYS,\r\n 'min',\r\n )\r\n);\r\n","import camelcase from 'camelcase';\r\nimport { basename } from 'path';\r\nimport type { Nullable, StrictNullable } from '../types/helper-types';\r\n\r\nexport function 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","import { isString } from '../type-check/basic';\r\nimport type { BuildType, SelectiveStringOption } from '../types/bundlib-options';\r\nimport type { StrictNullable } from '../types/helper-types';\r\nimport { MODULE_BUILD_KEYS, resolveObjectBasedSelectiveOption } from './object-based';\r\nimport type { SelectiveResolved } from './object-based';\r\n\r\nexport function resolveProjectOption(value: SelectiveStringOption): SelectiveResolved<BuildType, StrictNullable<string>> {\r\n return resolveObjectBasedSelectiveOption<string, null>(\r\n value,\r\n null,\r\n isString,\r\n MODULE_BUILD_KEYS,\r\n 'project',\r\n );\r\n}\r\n","import { isBool } from '../type-check/basic';\r\nimport type { SelectiveSkipBuildType, SelectiveSkipOption } from '../types/bundlib-options';\r\nimport type { Nullable } from '../types/helper-types';\r\nimport { ALL_BUILD_KEYS } from './object-based';\r\nimport { resolveSelectiveOption } from './selective';\r\nimport type { SelectiveResolvedBoolean } from './selective';\r\n\r\nexport function resolveSkipOption(value: Nullable<SelectiveSkipOption>): SelectiveResolvedBoolean<SelectiveSkipBuildType> {\r\n return resolveSelectiveOption<SelectiveSkipBuildType, boolean, false>(\r\n value,\r\n false,\r\n isBool,\r\n ALL_BUILD_KEYS,\r\n 'skip',\r\n );\r\n}\r\n","import { composeOneOf, createOneOfLiteral } from '../type-check/advanced';\r\nimport { isBool } from '../type-check/basic';\r\nimport type { BuildType, SelectiveSourcemap } from '../types/bundlib-options';\r\nimport type { RollupSourcemap } from '../types/types';\r\nimport { MODULE_BUILD_KEYS } from './object-based';\r\nimport type { SelectiveResolved } from './object-based';\r\nimport { resolveSelectiveOption } from './selective';\r\n\r\nexport const isSourcemapOption = composeOneOf<RollupSourcemap>(\r\n createOneOfLiteral('inline', 'hidden'),\r\n isBool,\r\n);\r\n\r\nexport const resolveSourcemapOption = (value: SelectiveSourcemap): SelectiveResolved<BuildType, RollupSourcemap> => (\r\n resolveSelectiveOption<BuildType, RollupSourcemap, true>(\r\n value,\r\n true,\r\n isSourcemapOption,\r\n MODULE_BUILD_KEYS,\r\n 'sourcemap',\r\n )\r\n);\r\n","import loadJsonFile from 'load-json-file';\r\nimport { join as pathJoin } from 'path';\r\n\r\nexport function readPkg<T>(cwd: string): Promise<T> {\r\n return loadJsonFile<T>(pathJoin(cwd, 'package.json'));\r\n}\r\n","import { error, invalidOption, invalidOptionOld, invalidPkgField } from './errors';\r\nimport { loadOptions } from './load-options';\r\nimport { normalizeBooleanOption } from './options/deprecated/boolean';\r\nimport { isBrowserOption } from './options/deprecated/browser';\r\nimport { isCJSOptionKey } from './options/deprecated/main-and-bin';\r\nimport { isModuleOptionKey } from './options/deprecated/module';\r\nimport { normalizeDeprecatedOption } from './options/deprecated/normalize';\r\nimport { isTypesOptionKey } from './options/deprecated/types';\r\nimport { resolveESModuleOption } from './options/es-module';\r\nimport { isBrowserFormat } from './options/format';\r\nimport { isValidGlobals, normalizeBuildGlobals, normalizeGlobals } from './options/globals';\r\nimport { resolveInputOption } from './options/input';\r\nimport { resolveInteropOption } from './options/interop';\r\nimport { resolveMinOption } from './options/min';\r\nimport { normalizeBuildName } from './options/name';\r\nimport { resolveProjectOption } from './options/project';\r\nimport { resolveSkipOption } from './options/skip';\r\nimport { isSourcemapOption, resolveSourcemapOption } from './options/sourcemap';\r\nimport { readPkg } from './tools/read-pkg';\r\nimport { isDictionaryOrNull, isStringOrNull } from './type-check/advanced';\r\nimport { isDictionary, isNull } from './type-check/basic';\r\nimport { invalidKeys, keysCheck } from './type-check/keys';\r\nimport type { BundlibOptions, TypesOptions } from './types/bundlib-options';\r\nimport type { Dictionary, StrictNullable } from './types/helper-types';\r\nimport type { BundlibPkgJson } from './types/pkg';\r\nimport type { BrowserBuildOptions, Dependencies, ModuleBuildOptions, PkgAnalyzed, TypesBuildOptions } from './types/pkg-analyzed';\r\nimport type { RollupSourcemap } from './types/types';\r\n\r\nasync function analyzePkg(cwd: string, pkg?: BundlibPkgJson): Promise<PkgAnalyzed>;\r\nasync function analyzePkg(cwd: string, inputPkg?: BundlibPkgJson): Promise<PkgAnalyzed> {\r\n\r\n const pkg: BundlibPkgJson = inputPkg || await readPkg(cwd);\r\n\r\n if (!isDictionary<BundlibPkgJson>(pkg)) {\r\n throw error('Invalid package.json content');\r\n }\r\n\r\n const {\r\n name: packageName,\r\n main: mainOutputFile,\r\n module: moduleFieldValue,\r\n 'jsnext:main': jsNextFieldValue,\r\n browser: browserOutputFile,\r\n bin: binaryOutputFile,\r\n types: typesFieldValue,\r\n typings,\r\n dependencies: runtimeDependencies,\r\n devDependencies,\r\n peerDependencies,\r\n } = pkg;\r\n\r\n const loadedOptions = await loadOptions(cwd, pkg.bundlib);\r\n const loadedBundlibOptions = loadedOptions && loadedOptions.config;\r\n\r\n if (loadedOptions && !isNull(loadedBundlibOptions) && !isDictionary<BundlibOptions>(loadedBundlibOptions)) {\r\n throw loadedOptions.filepath\r\n ? error(`Invalid options found on file \"${loadedOptions.filepath}\".`)\r\n : invalidPkgField('bundlib', 'Object | string');\r\n }\r\n\r\n const bundlibOptions = loadedBundlibOptions || {};\r\n\r\n const invalidOptions = invalidKeys(\r\n bundlibOptions as never,\r\n [\r\n 'input',\r\n 'extend',\r\n 'esModule',\r\n 'interop',\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 'skip',\r\n 'equals',\r\n 'main',\r\n 'module',\r\n 'browser',\r\n 'bin',\r\n 'types',\r\n ],\r\n );\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 extend,\r\n format: browserFormat,\r\n name: browserName,\r\n id: amdId,\r\n globals: browserGlobals,\r\n cache: cacheOption,\r\n main: deprecatedMainOptions,\r\n module: deprecatedModuleOptions,\r\n browser: deprecatedBrowserOptions,\r\n bin: deprecatedBinaryOptions,\r\n types: deprecatedTypesOptions,\r\n equals,\r\n } = bundlibOptions;\r\n\r\n const perBuildInput = resolveInputOption(bundlibOptions.input);\r\n const perBuildSourcemap = resolveSourcemapOption(bundlibOptions.sourcemap);\r\n const perBuildESModule = resolveESModuleOption(bundlibOptions.esModule);\r\n const perBuildInterop = resolveInteropOption(bundlibOptions.interop);\r\n const perBuildMin = resolveMinOption(bundlibOptions.min);\r\n\r\n if (!isBrowserFormat(browserFormat)) {\r\n throw invalidOption('format');\r\n }\r\n\r\n if (!isStringOrNull(browserName)) {\r\n throw invalidOption('name');\r\n }\r\n\r\n if (!isStringOrNull(amdId)) {\r\n throw invalidOption('id');\r\n }\r\n\r\n if (!isValidGlobals(browserGlobals)) {\r\n throw invalidOption('globals');\r\n }\r\n\r\n if (!isStringOrNull(cacheOption)) {\r\n throw invalidOption('cache');\r\n }\r\n\r\n const perBuildProject = resolveProjectOption(bundlibOptions.project);\r\n const skipBuild = resolveSkipOption(bundlibOptions.skip);\r\n\r\n if (\r\n !isNull(deprecatedMainOptions) && (deprecatedMainOptions !== false) && !(\r\n isDictionary<ModuleBuildOptions>(deprecatedMainOptions) &&\r\n keysCheck(deprecatedMainOptions, isCJSOptionKey)\r\n )\r\n ) {\r\n throw invalidOptionOld(\r\n 'main',\r\n 'false | { sourcemap?: boolean | \"inline\", esModule?: boolean, interop?: boolean, min?: boolean }',\r\n );\r\n }\r\n\r\n if (\r\n !isNull(deprecatedModuleOptions) && (deprecatedModuleOptions !== false) && !(\r\n isDictionary<ModuleBuildOptions>(deprecatedModuleOptions) &&\r\n keysCheck(deprecatedModuleOptions, isModuleOptionKey)\r\n )\r\n ) {\r\n throw invalidOptionOld(\r\n 'module',\r\n 'false | { sourcemap?: boolean | \"inline\", min?: boolean }',\r\n );\r\n }\r\n\r\n if (\r\n !isNull(deprecatedBrowserOptions) && (deprecatedBrowserOptions !== false) && !(\r\n isDictionary<BrowserBuildOptions>(deprecatedBrowserOptions) &&\r\n keysCheck(deprecatedBrowserOptions, isBrowserOption) &&\r\n isBrowserFormat(deprecatedBrowserOptions.format) &&\r\n (['name', 'id'] as Array<keyof typeof deprecatedBrowserOptions>).every((key) => (\r\n isStringOrNull(deprecatedBrowserOptions[key])\r\n )) &&\r\n isValidGlobals(deprecatedBrowserOptions.globals)\r\n )\r\n ) {\r\n throw invalidOptionOld(\r\n 'browser',\r\n 'false | { sourcemap?: boolean | \"inline\", esModule?: boolean, interop?: boolean, min?: boolean, ... }',\r\n );\r\n }\r\n\r\n if (\r\n !isNull(deprecatedBinaryOptions) && (deprecatedBinaryOptions !== false) && !(\r\n isDictionary<ModuleBuildOptions>(deprecatedBinaryOptions) &&\r\n keysCheck(deprecatedBinaryOptions, isCJSOptionKey)\r\n )\r\n ) {\r\n throw invalidOptionOld(\r\n 'bin',\r\n 'false | { sourcemap?: boolean | \"inline\", esModule?: boolean, interop?: boolean, min?: boolean }',\r\n );\r\n }\r\n\r\n if (\r\n !isNull(deprecatedTypesOptions) && (deprecatedTypesOptions !== false) && !(\r\n isDictionary<TypesOptions>(deprecatedTypesOptions) &&\r\n keysCheck(deprecatedTypesOptions, isTypesOptionKey)\r\n )\r\n ) {\r\n throw invalidOptionOld('types', 'false | { equals?: boolean }');\r\n }\r\n\r\n if ((deprecatedMainOptions !== false) && !isStringOrNull(mainOutputFile)) {\r\n throw invalidPkgField('main', 'string');\r\n }\r\n\r\n if ((deprecatedModuleOptions !== false) && !isStringOrNull(moduleFieldValue)) {\r\n throw invalidPkgField('module', 'string');\r\n }\r\n\r\n if (!moduleFieldValue && (deprecatedModuleOptions !== false) && !isStringOrNull(jsNextFieldValue)) {\r\n throw invalidPkgField('jsnext:main', 'string');\r\n }\r\n\r\n if ((deprecatedBrowserOptions !== false) && !isStringOrNull(browserOutputFile)) {\r\n throw invalidPkgField('browser', 'string');\r\n }\r\n\r\n if ((deprecatedBinaryOptions !== false) && !isStringOrNull(binaryOutputFile)) {\r\n throw invalidPkgField('bin', 'string');\r\n }\r\n\r\n if (!isDictionaryOrNull<Dictionary<string>>(runtimeDependencies)) {\r\n throw invalidPkgField('dependencies', 'Object');\r\n }\r\n\r\n if (!isDictionaryOrNull<Dictionary<string>>(peerDependencies)) {\r\n throw invalidPkgField('peerDependencies', 'Object');\r\n }\r\n\r\n const moduleOutputFile = moduleFieldValue || jsNextFieldValue;\r\n\r\n const typesOutputFile = typesFieldValue || typings;\r\n\r\n const mainOutput: StrictNullable<ModuleBuildOptions> = (deprecatedMainOptions === false || skipBuild.main || !mainOutputFile) ? null : {\r\n input: perBuildInput.main,\r\n output: mainOutputFile,\r\n sourcemap: normalizeDeprecatedOption(\r\n deprecatedMainOptions,\r\n 'sourcemap',\r\n isSourcemapOption,\r\n perBuildSourcemap.main,\r\n ),\r\n esModule: normalizeBooleanOption(deprecatedMainOptions, 'esModule', perBuildESModule.main),\r\n interop: normalizeBooleanOption(deprecatedMainOptions, 'interop', perBuildInterop.main),\r\n min: normalizeBooleanOption(deprecatedMainOptions, 'min', perBuildMin.main),\r\n project: perBuildProject.main,\r\n };\r\n\r\n const moduleOutput: StrictNullable<ModuleBuildOptions> = (deprecatedModuleOptions === false || skipBuild.module || !moduleOutputFile) ? null : {\r\n input: perBuildInput.module,\r\n output: moduleOutputFile,\r\n sourcemap: normalizeDeprecatedOption(\r\n deprecatedModuleOptions,\r\n 'sourcemap',\r\n isSourcemapOption,\r\n perBuildSourcemap.module,\r\n ),\r\n esModule: perBuildESModule.module,\r\n interop: perBuildInterop.module,\r\n min: normalizeBooleanOption(deprecatedModuleOptions, 'min', perBuildMin.module),\r\n project: perBuildProject.module,\r\n };\r\n\r\n const browserOutput: StrictNullable<BrowserBuildOptions> = (deprecatedBrowserOptions === false || skipBuild.browser || !browserOutputFile) ? null : {\r\n input: perBuildInput.browser,\r\n output: browserOutputFile,\r\n sourcemap: normalizeDeprecatedOption<'sourcemap', RollupSourcemap>(\r\n deprecatedBrowserOptions,\r\n 'sourcemap',\r\n isSourcemapOption,\r\n perBuildSourcemap.browser,\r\n ),\r\n esModule: normalizeBooleanOption(deprecatedBrowserOptions, 'esModule', perBuildESModule.browser),\r\n interop: normalizeBooleanOption(deprecatedBrowserOptions, 'interop', perBuildInterop.browser),\r\n min: normalizeBooleanOption(deprecatedBrowserOptions, 'min', perBuildMin.browser),\r\n format: (deprecatedBrowserOptions && !isNull(deprecatedBrowserOptions.format) ? deprecatedBrowserOptions.format : browserFormat) || 'umd',\r\n name: normalizeBuildName(\r\n cwd,\r\n deprecatedBrowserOptions ? deprecatedBrowserOptions.name : null,\r\n browserName,\r\n packageName,\r\n ),\r\n id: deprecatedBrowserOptions && deprecatedBrowserOptions.id || amdId || null,\r\n globals: normalizeBuildGlobals(\r\n deprecatedBrowserOptions,\r\n normalizeGlobals(browserGlobals),\r\n ),\r\n extend: !!normalizeBooleanOption(deprecatedBrowserOptions, 'extend', !!extend),\r\n project: perBuildProject.browser,\r\n };\r\n\r\n const binaryOutput: StrictNullable<ModuleBuildOptions> = (deprecatedBinaryOptions === false || skipBuild.bin || !binaryOutputFile) ? null : {\r\n input: perBuildInput.bin,\r\n output: binaryOutputFile,\r\n sourcemap: normalizeDeprecatedOption(\r\n deprecatedBinaryOptions,\r\n 'sourcemap',\r\n isSourcemapOption,\r\n perBuildSourcemap.bin,\r\n ),\r\n esModule: normalizeBooleanOption(deprecatedBinaryOptions, 'esModule', perBuildESModule.bin),\r\n interop: normalizeBooleanOption(deprecatedBinaryOptions, 'interop', perBuildInterop.bin),\r\n min: normalizeBooleanOption(deprecatedBinaryOptions, 'min', perBuildMin.bin),\r\n project: perBuildProject.bin,\r\n };\r\n\r\n const typesOutput: StrictNullable<TypesBuildOptions> = (deprecatedTypesOptions === false || skipBuild.types || !typesOutputFile) ? null : {\r\n output: typesOutputFile,\r\n equals: !!equals,\r\n };\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 const cache: StrictNullable<string> = cacheOption || null;\r\n\r\n return {\r\n cwd,\r\n pkg,\r\n main: mainOutput,\r\n module: moduleOutput,\r\n browser: browserOutput,\r\n bin: binaryOutput,\r\n types: typesOutput,\r\n dependencies,\r\n cache,\r\n };\r\n\r\n}\r\n\r\nexport default analyzePkg;\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 { dirname, join, relative, resolve } from 'path';\r\nimport type { Plugin } from 'rollup';\r\nimport slash from 'slash';\r\nimport { keys, setProp } from '../tools/helpers';\r\nimport type { Dictionary } from '../types/helper-types';\r\n\r\nexport function chunksPlugin(cwd: string, outputDir: string, extensions: string[], map: Dictionary<string>): Plugin {\r\n\r\n const resolvedMap = keys(map).reduce<Dictionary<string>>(\r\n (resolvedMap, source) => {\r\n const target = map[source];\r\n const value = slash(\r\n relative(\r\n outputDir,\r\n resolve(cwd, target),\r\n ),\r\n );\r\n return value\r\n ? setProp(\r\n resolve(cwd, source),\r\n value.startsWith('.') ? value : `./${value}`,\r\n resolvedMap,\r\n )\r\n : resolvedMap;\r\n },\r\n {},\r\n );\r\n\r\n function findTarget(resolved: string): string | void {\r\n\r\n if (resolvedMap[resolved]) {\r\n return resolvedMap[resolved];\r\n }\r\n\r\n for (let i = 0; i < extensions.length; i++) {\r\n\r\n const ext = extensions[i];\r\n\r\n const sourceWithExt = resolved + ext;\r\n if (resolvedMap[sourceWithExt]) {\r\n return resolvedMap[sourceWithExt];\r\n }\r\n\r\n const sourceWithIndex = join(resolved, `index${ext}`);\r\n if (resolvedMap[sourceWithIndex]) {\r\n return resolvedMap[sourceWithIndex];\r\n }\r\n\r\n }\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 if (!from) {\r\n return null;\r\n }\r\n\r\n const id = findTarget(\r\n join(\r\n dirname(from),\r\n moduleId,\r\n ),\r\n );\r\n\r\n return id ? { id, external: true, moduleSideEffects: false } : null;\r\n\r\n },\r\n\r\n };\r\n\r\n}\r\n","import type { IsExternal, Plugin, WarningHandlerWithDefault, WatcherOptions as RollupWatcherOptions } from 'rollup';\r\nimport type { Nullable } from '../types/helper-types';\r\nimport type { BundlibRollupModuleOutputOptions, BundlibRollupOptions } from '../types/types';\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 onwarn: Nullable<WarningHandlerWithDefault>,\r\n chokidar: boolean,\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 = {};\r\n }\r\n\r\n const config: BundlibRollupOptions<OutputOptions> = {\r\n input,\r\n output,\r\n external,\r\n plugins,\r\n watch,\r\n };\r\n\r\n if (onwarn) {\r\n config.onwarn = onwarn;\r\n }\r\n\r\n return config;\r\n\r\n}\r\n","import { existsSync } from 'fs';\r\nimport { resolve } from 'path';\r\nimport type { Nullable } from '../types/helper-types';\r\n\r\ntype FindInput = (input: Nullable<string>) => Nullable<string>;\r\n\r\nexport function createFindInput(cwd: string, extensions: string[]): FindInput {\r\n\r\n const inputSearch = extensions.map((ext) => resolve(cwd, 'src', `index${ext}`));\r\n const cache = {\r\n found: false,\r\n filename: null as string | null,\r\n };\r\n\r\n return (input: Nullable<string>): Nullable<string> => {\r\n\r\n if (input) {\r\n return resolve(cwd, input);\r\n }\r\n\r\n if (cache.found) {\r\n return cache.filename;\r\n }\r\n\r\n for (const filename of inputSearch) {\r\n if (existsSync(filename)) {\r\n cache.found = true;\r\n return cache.filename = filename;\r\n }\r\n }\r\n\r\n cache.found = true;\r\n\r\n };\r\n\r\n}\r\n","import resolveFrom from 'resolve-from';\r\n\r\nexport function createImportFromCWD(cwd: string) {\r\n return <T>(id: string, name?: string | null): T => {\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n const content = require(resolveFrom(cwd, id)) as unknown;\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n return (name ? content[name] : ('default' in content) ? content.default : content) as T;\r\n };\r\n}\r\n","import type { IsExternal } from 'rollup';\r\nimport { isArray } from '../type-check/basic';\r\nimport type { Dictionary, Nullable } from '../types/helper-types';\r\nimport { hasOwn, keys, keysToObject } from './helpers';\r\n\r\nexport function createIsExternal(...dependencies: Array<Nullable<string[] | Dictionary<unknown>>>): IsExternal {\r\n\r\n const filtered = dependencies.filter((dep): dep is string[] | Dictionary<unknown> => !!dep);\r\n\r\n if (!filtered.length) {\r\n return () => false;\r\n }\r\n\r\n const asObj = filtered.reduce<Dictionary<unknown>>(\r\n (result, dep) => isArray(dep) ? keysToObject(dep, true as unknown, result) : { ...result, ...dep },\r\n {},\r\n );\r\n\r\n const asList = keys(asObj);\r\n\r\n const cache: Dictionary<boolean> = {};\r\n\r\n return (source: string, importer: unknown, isResolved: boolean): boolean => {\r\n\r\n if (isResolved || source.startsWith('.')) {\r\n return false;\r\n }\r\n\r\n if (hasOwn.call(cache, source)) {\r\n return cache[source];\r\n }\r\n\r\n if (asObj[source]) {\r\n return cache[source] = true;\r\n }\r\n\r\n const l = asList.length;\r\n for (let i = 0; i < l; i++) {\r\n\r\n const moduleName = asList[i];\r\n const len = moduleName.length;\r\n const partialSource = source.substr(0, len);\r\n\r\n if (/^[/\\\\]$/.test(source[len])) {\r\n\r\n if (hasOwn.call(cache, partialSource)) {\r\n return cache[partialSource];\r\n }\r\n\r\n if (partialSource === moduleName) {\r\n return cache[partialSource] = cache[source] = true;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n return cache[source] = false;\r\n\r\n };\r\n\r\n}\r\n","import type { Dictionary, IsInstalled, Nullable } from '../types/helper-types';\r\n\r\nexport function createIsInstalled(...dependencies: Array<Nullable<Partial<Dictionary<string>>>>): IsInstalled {\r\n\r\n const reduced = dependencies.reduce<Partial<Dictionary<string>>>(\r\n (result, deps) => Object.assign(result, deps),\r\n {},\r\n );\r\n\r\n return (id): string | undefined => reduced[id];\r\n\r\n}\r\n","import { extname } from 'path';\r\n\r\nexport function extensionMatch(filename: string, extensions: string[]): boolean {\r\n return extensions.includes(extname(filename).toLowerCase());\r\n}\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","import pluginBabel from '@rollup/plugin-babel';\r\nimport pluginBuble from '@rollup/plugin-buble';\r\nimport pluginCommonJS from '@rollup/plugin-commonjs';\r\nimport pluginJSON from '@rollup/plugin-json';\r\nimport pluginNodeResolve from '@rollup/plugin-node-resolve';\r\nimport builtinModules from 'builtin-modules';\r\nimport { basename, dirname, join as pathJoin, resolve } from 'path';\r\nimport type { Plugin } from 'rollup';\r\nimport pluginAddShebang from 'rollup-plugin-add-shebang';\r\nimport { eslint as pluginESLint } from 'rollup-plugin-eslint';\r\nimport pluginEquals from 'rollup-plugin-export-equals';\r\nimport pluginStripShebang from 'rollup-plugin-strip-shebang';\r\nimport { terser as pluginTerser } from 'rollup-plugin-terser';\r\nimport pluginTypescript from 'rollup-plugin-typescript2';\r\nimport { MIN_PREFIX, TS_DEF_PREFIX } from './consts';\r\nimport { error, inputNotFound } from './errors';\r\nimport { JS_EXTENSIONS, TS_EXTENSIONS, TS_ONLY_EXTENSIONS } from './extensions';\r\nimport { chunksPlugin as pluginChunks } from './plugins/chunks';\r\nimport { createConfig } from './tools/create-config';\r\nimport { createFindInput } from './tools/create-find-input';\r\nimport { createImportFromCWD } from './tools/create-import-from-cwd';\r\nimport { createIsExternal } from './tools/create-is-external';\r\nimport { createIsInstalled } from './tools/create-is-installed';\r\nimport { extensionMatch } from './tools/extension-match';\r\nimport { setProp } from './tools/helpers';\r\nimport { renamePre } from './tools/rename-pre';\r\nimport type { Dictionary, Nullable, TypeCheckFunction } from './types/helper-types';\r\nimport type { PkgAnalyzed } from './types/pkg-analyzed';\r\nimport type { BundlibAPIOptions, BundlibRollupModuleOutputOptions, BundlibRollupOptions, RollupSourcemap } from './types/types';\r\n\r\nexport function pkgToConfigs(\r\n analyzed: PkgAnalyzed,\r\n options: BundlibAPIOptions,\r\n): Array<BundlibRollupOptions<BundlibRollupModuleOutputOptions>> {\r\n\r\n const {\r\n cwd,\r\n main: commonjsBuild,\r\n module: moduleBuild,\r\n browser: browserBuild,\r\n bin: binaryBuild,\r\n types: typesBuild,\r\n dependencies,\r\n cache,\r\n } = analyzed;\r\n\r\n const { dev, watch, onwarn } = options;\r\n\r\n const {\r\n runtime: runtimeDependencies,\r\n dev: devDependencies,\r\n peer: peerDependencies,\r\n } = dependencies;\r\n\r\n const importFromCWD = createImportFromCWD(cwd);\r\n\r\n const bundlibCachePath = resolve(cwd, cache || 'node_modules/.cache/bundlib');\r\n const typescriptCachePath = pathJoin(bundlibCachePath, 'rpt2');\r\n\r\n const isExternal = createIsExternal(\r\n runtimeDependencies,\r\n peerDependencies,\r\n builtinModules as string[],\r\n );\r\n\r\n const isProduction = !dev;\r\n\r\n const isInstalled = createIsInstalled(runtimeDependencies, devDependencies);\r\n\r\n const useESLint = isInstalled('eslint');\r\n const useTypescript = isInstalled('typescript');\r\n const useBabel = isInstalled('@babel/core');\r\n const useChokidar = !!isInstalled('chokidar') && !!watch;\r\n\r\n const extensions = useTypescript ? TS_EXTENSIONS : JS_EXTENSIONS;\r\n\r\n const findInput = createFindInput(cwd, extensions);\r\n\r\n const include = extensions.map(\r\n (ext) => resolve(cwd, `**/*${ext}`),\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 inputFile: string,\r\n outputFile: string,\r\n rollupSourcemap: RollupSourcemap,\r\n mini: boolean,\r\n browser: boolean,\r\n bin: boolean,\r\n chunks: Nullable<Dictionary<string>>,\r\n project: Nullable<string>,\r\n ): Plugin[] {\r\n\r\n const sourcemap = !!rollupSourcemap;\r\n\r\n const inputIsTypescript = extensionMatch(inputFile, TS_ONLY_EXTENSIONS);\r\n const typesExpectedFilename = configs.length === 0 && !bin && typesBuild && resolve(\r\n cwd,\r\n extensionMatch(typesBuild.output, ['.ts']) ? typesBuild.output : pathJoin(typesBuild.output, 'index.d.ts'),\r\n );\r\n\r\n if (typesExpectedFilename && !inputIsTypescript) {\r\n throw error('Can\\'t generate types from a non typescript file.');\r\n }\r\n\r\n const typesGeneratedFilename = renamePre(basename(inputFile), TS_DEF_PREFIX);\r\n\r\n if (typesExpectedFilename && typesGeneratedFilename !== basename(typesExpectedFilename)) {\r\n throw error('Input filename and types filename have to match.');\r\n }\r\n\r\n const declarationDir = typesExpectedFilename && dirname(typesExpectedFilename);\r\n\r\n let shebang: string | undefined;\r\n\r\n const plugins = [\r\n\r\n useESLint && pluginESLint({\r\n include,\r\n exclude,\r\n throwOnWarning: false,\r\n throwOnError: false,\r\n }),\r\n\r\n bin && pluginStripShebang({\r\n capture: (shebangFromFile: string) => shebang = shebangFromFile,\r\n sourcemap,\r\n }),\r\n\r\n chunks && pluginChunks(\r\n cwd,\r\n dirname(outputFile),\r\n extensions,\r\n chunks,\r\n ),\r\n\r\n pluginNodeResolve({\r\n preferBuiltins: !browser,\r\n extensions,\r\n rootDir: cwd,\r\n }),\r\n\r\n browser && pluginCommonJS({\r\n sourceMap: sourcemap,\r\n }),\r\n\r\n useTypescript && inputIsTypescript && pluginTypescript({\r\n cwd,\r\n typescript: importFromCWD<typeof import('typescript')>('typescript'),\r\n cacheRoot: typescriptCachePath,\r\n useTsconfigDeclarationDir: true,\r\n tsconfigDefaults: {\r\n exclude: [],\r\n },\r\n tsconfigOverride: {\r\n compilerOptions: {\r\n sourceMap: sourcemap,\r\n declaration: !!declarationDir,\r\n ...declarationDir ? { declarationDir } : { declarationMap: false },\r\n },\r\n },\r\n ...project && { tsconfig: resolve(cwd, project) },\r\n }),\r\n\r\n pluginJSON({ preferConst: true }),\r\n\r\n declarationDir && typesBuild && typesBuild.equals && pluginEquals({\r\n file: resolve(cwd, pathJoin(declarationDir, typesGeneratedFilename)),\r\n }),\r\n\r\n useBabel\r\n ? pluginBabel({\r\n extensions,\r\n exclude,\r\n babelHelpers: 'bundled',\r\n })\r\n : pluginBuble({\r\n transforms: { dangerousForOf: true },\r\n }),\r\n\r\n bin && pluginAddShebang({\r\n include: outputFile,\r\n shebang: () => shebang || '#!/usr/bin/env node',\r\n }),\r\n\r\n mini && pluginTerser({\r\n // sourcemap: removed on version 6\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 TypeCheckFunction<Plugin>);\r\n\r\n }\r\n\r\n let commonjsBuildFiles: [string, string] | null = null;\r\n\r\n if (commonjsBuild) {\r\n\r\n const { input, output, sourcemap, esModule, interop, min, project } = commonjsBuild;\r\n const inputFile = findInput(input);\r\n\r\n if (!inputFile) {\r\n throw inputNotFound('CommonJS module');\r\n }\r\n\r\n const outputFile = resolve(cwd, output);\r\n const outputOptions: BundlibRollupModuleOutputOptions = {\r\n file: outputFile,\r\n format: 'cjs',\r\n sourcemap,\r\n esModule,\r\n interop,\r\n exports: 'auto',\r\n };\r\n\r\n commonjsBuildFiles = [inputFile, output];\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n outputOptions,\r\n isExternal,\r\n createPlugins(\r\n inputFile,\r\n outputFile,\r\n sourcemap,\r\n isProduction && !min,\r\n false,\r\n false,\r\n null,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n if (min) {\r\n\r\n const minOutputFile = renamePre(outputFile, MIN_PREFIX);\r\n const minOutputOptions = { ...outputOptions, file: minOutputFile };\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n minOutputOptions,\r\n isExternal,\r\n createPlugins(\r\n inputFile,\r\n minOutputFile,\r\n sourcemap,\r\n true,\r\n false,\r\n false,\r\n null,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n if (moduleBuild) {\r\n\r\n const { input, output, sourcemap, esModule, interop, min, project } = moduleBuild;\r\n const inputFile = findInput(input);\r\n\r\n if (!inputFile) {\r\n throw inputNotFound('ES module');\r\n }\r\n\r\n const outputFile = resolve(cwd, output);\r\n const outputOptions: BundlibRollupModuleOutputOptions = {\r\n file: outputFile,\r\n format: 'es',\r\n sourcemap,\r\n esModule,\r\n interop,\r\n };\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n outputOptions,\r\n isExternal,\r\n createPlugins(\r\n inputFile,\r\n outputFile,\r\n sourcemap,\r\n isProduction && !min,\r\n false,\r\n false,\r\n null,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n if (min) {\r\n\r\n const minOutputFile = renamePre(outputFile, MIN_PREFIX);\r\n const minOutputOptions = { ...outputOptions, file: minOutputFile };\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n minOutputOptions,\r\n isExternal,\r\n createPlugins(\r\n inputFile,\r\n minOutputFile,\r\n sourcemap,\r\n true,\r\n false,\r\n false,\r\n null,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n if (browserBuild) {\r\n\r\n const { input, output, sourcemap, esModule, interop, format, name, extend, id, globals, min, project } = browserBuild;\r\n const inputFile = findInput(input);\r\n\r\n if (!inputFile) {\r\n throw inputNotFound('Browser build');\r\n }\r\n\r\n const outputFile = resolve(cwd, output);\r\n const outputOptions: BundlibRollupModuleOutputOptions = {\r\n file: outputFile,\r\n format,\r\n sourcemap,\r\n esModule,\r\n interop,\r\n extend,\r\n globals: globals || {},\r\n };\r\n\r\n if (format === 'iife' || format === 'umd') {\r\n if (!name) {\r\n throw error('option \\'name\\' is required for IIFE and UMD builds');\r\n }\r\n outputOptions.name = name;\r\n }\r\n\r\n if (id && (format === 'amd' || format === 'umd')) {\r\n outputOptions.amd = { id };\r\n }\r\n\r\n const isBrowserExternal = createIsExternal(globals);\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n outputOptions,\r\n isBrowserExternal,\r\n createPlugins(\r\n inputFile,\r\n outputFile,\r\n sourcemap,\r\n isProduction && !min,\r\n true,\r\n false,\r\n null,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n if (min) {\r\n\r\n const minOutputFile = renamePre(outputFile, MIN_PREFIX);\r\n const minOutputOptions = { ...outputOptions, file: minOutputFile };\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n minOutputOptions,\r\n isBrowserExternal,\r\n createPlugins(\r\n inputFile,\r\n minOutputFile,\r\n sourcemap,\r\n true,\r\n true,\r\n false,\r\n null,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n if (binaryBuild) {\r\n\r\n const { input, output, sourcemap, esModule, interop, min, project } = binaryBuild;\r\n const inputFile = findInput(input);\r\n\r\n if (!inputFile) {\r\n throw inputNotFound('Binary build');\r\n }\r\n\r\n const outputFile = resolve(cwd, output);\r\n const outputOptions: BundlibRollupModuleOutputOptions = {\r\n file: outputFile,\r\n format: 'cjs',\r\n sourcemap,\r\n esModule,\r\n interop,\r\n exports: 'auto',\r\n };\r\n\r\n const chunks = commonjsBuildFiles && setProp(...commonjsBuildFiles, {});\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n outputOptions,\r\n isExternal,\r\n createPlugins(\r\n inputFile,\r\n outputFile,\r\n sourcemap,\r\n isProduction && !min,\r\n false,\r\n true,\r\n chunks,\r\n project,\r\n ),\r\n onwarn,\r\n useChokidar,\r\n ),\r\n );\r\n\r\n if (min) {\r\n\r\n const minOutputFile = renamePre(outputFile, MIN_PREFIX);\r\n const minOutputOptions = { ...outputOptions, file: minOutputFile };\r\n\r\n configs.push(\r\n createConfig(\r\n inputFile,\r\n minOutputOptions,\r\n isExternal,\r\n createPlugins(\r\n inputFile,\r\n minOutputFile,\r\n sourcemap,\r\n true,\r\n false,\r\n true,\r\n chunks,\r\n project,\r\n ),\r\n onwarn,\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","import analyzePkg from './analyze-pkg';\r\nimport { pkgToConfigs } from './pkg-to-configs';\r\nimport type { Nullable } from './types/helper-types';\r\nimport type { BundlibPkgJson } from './types/pkg';\r\nimport type { BundlibAPIOptions, BundlibRollupModuleOutputOptions, BundlibRollupOptions } from './types/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 analyzePkg(cwd, pkgJson),\r\n options || {},\r\n );\r\n}\r\n\r\nexport default configsFromPkg;\r\n"],"names":["error","msg","ErrorType","TypeError","invalidPkgField","field","type","invalidOptionOld","option","invalidOption","optionName","urlHash","inputNotFound","PRODUCT_NAME","OPTION_FILE_PATHS","map","ext","TS_DEF_PREFIX","MIN_PREFIX","isNull","value","isObject","isString","isBool","isArray","Array","isDictionary","loadOptions","cwd","optionsFromPkgJson","manager","cosmiconfig","stopDir","searchPlaces","ignoreEmptySearchPlaces","config","filepath","load","resolve","search","normalizeBooleanOption","build","key","def","flattenMultilevel","array","target","reduce","acc","item","push","createOneOfLiteral","values","flatten","length","expected","some","composeOneOf","checks","check","isStringOrNull","isDictionaryOrNull","MODULE_OPTION_KEYS","isModuleOptionKey","CJS_OPTION_KEYS","isCJSOptionKey","isBrowserOption","normalizeDeprecatedOption","isValidValue","isTypesOptionKey","keys","Object","hasOwn","prototype","hasOwnProperty","setProp","name","keysToObject","result","invalidKeys","object","list","invalid","filter","includes","keysCheck","obj","every","API_BUILD_KEYS","MODULE_BUILD_KEYS","ALL_BUILD_KEYS","populateWithAPIValue","resolveObjectSelectiveOption","defaultValue","isBuildType","allKeys","default","override","api","others","forEach","resolveObjectBasedSelectiveOption","resolveTypeStringArray","resolveSelectiveOption","resolveESModuleOption","isBrowserFormat","isValidGlobals","normalizeGlobals","globals","normalizeBuildGlobals","resolveInputOption","resolveInteropOption","resolveMinOption","normalizeBuildName","browserName","nameOption","pkgName","camelcase","basename","resolveProjectOption","resolveSkipOption","isSourcemapOption","resolveSourcemapOption","readPkg","loadJsonFile","pathJoin","analyzePkg","inputPkg","pkg","packageName","main","mainOutputFile","module","moduleFieldValue","jsNextFieldValue","browser","browserOutputFile","bin","binaryOutputFile","types","typesFieldValue","typings","dependencies","runtimeDependencies","devDependencies","peerDependencies","loadedOptions","bundlib","loadedBundlibOptions","bundlibOptions","invalidOptions","optionNames","join","extend","format","browserFormat","id","amdId","browserGlobals","cache","cacheOption","deprecatedMainOptions","deprecatedModuleOptions","deprecatedBrowserOptions","deprecatedBinaryOptions","deprecatedTypesOptions","equals","perBuildInput","input","perBuildSourcemap","sourcemap","perBuildESModule","esModule","perBuildInterop","interop","perBuildMin","min","perBuildProject","project","skipBuild","skip","moduleOutputFile","typesOutputFile","mainOutput","output","moduleOutput","browserOutput","binaryOutput","typesOutput","runtime","dev","peer","TS_ONLY_EXTENSIONS","JS_EXTENSIONS","TS_EXTENSIONS","chunksPlugin","outputDir","extensions","resolvedMap","source","slash","relative","startsWith","findTarget","resolved","i","sourceWithExt","sourceWithIndex","resolveId","moduleId","from","dirname","external","moduleSideEffects","createConfig","plugins","onwarn","chokidar","watch","exclude","createFindInput","inputSearch","found","filename","existsSync","createImportFromCWD","content","require","resolveFrom","createIsExternal","filtered","dep","asObj","asList","importer","isResolved","call","l","moduleName","len","partialSource","substr","test","createIsInstalled","reduced","deps","assign","extensionMatch","extname","toLowerCase","renamePre","pre","dir","parse","pkgToConfigs","analyzed","options","commonjsBuild","moduleBuild","browserBuild","binaryBuild","typesBuild","importFromCWD","bundlibCachePath","typescriptCachePath","isExternal","builtinModules","isProduction","isInstalled","useESLint","useTypescript","useBabel","useChokidar","findInput","include","configs","createPlugins","inputFile","outputFile","rollupSourcemap","mini","chunks","inputIsTypescript","typesExpectedFilename","typesGeneratedFilename","declarationDir","shebang","pluginESLint","throwOnWarning","throwOnError","pluginStripShebang","capture","shebangFromFile","pluginChunks","pluginNodeResolve","preferBuiltins","rootDir","pluginCommonJS","sourceMap","pluginTypescript","typescript","cacheRoot","useTsconfigDeclarationDir","tsconfigDefaults","tsconfigOverride","compilerOptions","declaration","declarationMap","tsconfig","pluginJSON","preferConst","pluginEquals","file","pluginBabel","babelHelpers","pluginBuble","transforms","dangerousForOf","pluginAddShebang","pluginTerser","toplevel","compress","passes","Boolean","commonjsBuildFiles","outputOptions","exports","minOutputFile","minOutputOptions","amd","isBrowserExternal","configsFromPkg","pkgJson"],"mappings":"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"}
\No newline at end of file