UNPKG

esbuild-plugin-license

Version:

esbuild plugin for generating license for your bundle

1 lines 233 kB
{"version":3,"sources":["../node_modules/.pnpm/tsup@5.11.11_typescript@4.5.4/node_modules/tsup/assets/esm_shims.js","../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/iterator.js","../src/index.ts","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/lodash.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/assignInWith.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/attempt.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isError.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyOf.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/escape.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_escapeHtmlChar.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseValues.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/template.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_customDefaultsAssignIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_escapeStringChar.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_reInterpolate.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/templateSettings.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_reEscape.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_reEvaluate.js","../node_modules/.pnpm/read-pkg-up@9.0.0/node_modules/read-pkg-up/index.js","../node_modules/.pnpm/find-up@6.2.0/node_modules/find-up/index.js","../node_modules/.pnpm/locate-path@7.0.0/node_modules/locate-path/index.js","../node_modules/.pnpm/p-locate@6.0.0/node_modules/p-locate/index.js","../node_modules/.pnpm/p-limit@4.0.0/node_modules/p-limit/index.js","../node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js","../node_modules/.pnpm/path-exists@5.0.0/node_modules/path-exists/index.js","../node_modules/.pnpm/read-pkg@7.0.0/node_modules/read-pkg/index.js","../node_modules/.pnpm/chalk@2.4.2/node_modules/chalk/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/chalk@2.4.2/node_modules/chalk/templates.js","../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js","../node_modules/.pnpm/supports-color@5.5.0/node_modules/supports-color/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/supports-color@5.5.0/node_modules/supports-color/index.js","../node_modules/.pnpm/color-name@1.1.3/node_modules/color-name/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/color-name@1.1.3/node_modules/color-name/index.js","../node_modules/.pnpm/color-convert@1.9.3/node_modules/color-convert/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/color-convert@1.9.3/node_modules/color-convert/conversions.js","../node_modules/.pnpm/color-convert@1.9.3/node_modules/color-convert/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/color-convert@1.9.3/node_modules/color-convert/route.js","../node_modules/.pnpm/color-convert@1.9.3/node_modules/color-convert/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/color-convert@1.9.3/node_modules/color-convert/index.js","../node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/index.js","../node_modules/.pnpm/escape-string-regexp@1.0.5/node_modules/escape-string-regexp/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/escape-string-regexp@1.0.5/node_modules/escape-string-regexp/index.js","../node_modules/.pnpm/chalk@2.4.2/node_modules/chalk/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/chalk@2.4.2/node_modules/chalk/index.js","../node_modules/.pnpm/@babel+helper-validator-identifier@7.16.7/node_modules/@babel/helper-validator-identifier/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/@babel+helper-validator-identifier@7.16.7/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../node_modules/.pnpm/@babel+helper-validator-identifier@7.16.7/node_modules/@babel/helper-validator-identifier/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/@babel+helper-validator-identifier@7.16.7/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../node_modules/.pnpm/@babel+helper-validator-identifier@7.16.7/node_modules/@babel/helper-validator-identifier/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/@babel+helper-validator-identifier@7.16.7/node_modules/@babel/helper-validator-identifier/lib/index.js","../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../node_modules/.pnpm/@babel+highlight@7.16.7/node_modules/@babel/highlight/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/@babel+highlight@7.16.7/node_modules/@babel/highlight/lib/index.js","../node_modules/.pnpm/@babel+code-frame@7.16.7/node_modules/@babel/code-frame/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/@babel+code-frame@7.16.7/node_modules/@babel/code-frame/lib/index.js","../node_modules/.pnpm/lines-and-columns@1.2.4/node_modules/lines-and-columns/build/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/lines-and-columns@1.2.4/node_modules/lines-and-columns/build/index.js","../node_modules/.pnpm/json-parse-even-better-errors@2.3.1/node_modules/json-parse-even-better-errors/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/json-parse-even-better-errors@2.3.1/node_modules/json-parse-even-better-errors/index.js","../node_modules/.pnpm/is-arrayish@0.2.1/node_modules/is-arrayish/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/is-arrayish@0.2.1/node_modules/is-arrayish/index.js","../node_modules/.pnpm/error-ex@1.3.2/node_modules/error-ex/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/error-ex@1.3.2/node_modules/error-ex/index.js","../node_modules/.pnpm/parse-json@5.2.0/node_modules/parse-json/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/parse-json@5.2.0/node_modules/parse-json/index.js","../node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/make_warning.js","../node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/extract_description.js","../node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/implementation.js","../node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/index.js","../node_modules/.pnpm/has@1.0.3/node_modules/has/src/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/has@1.0.3/node_modules/has/src/index.js","../node_modules/.pnpm/is-core-module@2.8.1/node_modules/is-core-module/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/is-core-module@2.8.1/node_modules/is-core-module/index.js","../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/yallist.js","../node_modules/.pnpm/lru-cache@6.0.0/node_modules/lru-cache/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/lru-cache@6.0.0/node_modules/lru-cache/index.js","../node_modules/.pnpm/hosted-git-info@4.1.0/node_modules/hosted-git-info/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/hosted-git-info@4.1.0/node_modules/hosted-git-info/git-host-info.js","../node_modules/.pnpm/hosted-git-info@4.1.0/node_modules/hosted-git-info/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/hosted-git-info@4.1.0/node_modules/hosted-git-info/git-host.js","../node_modules/.pnpm/hosted-git-info@4.1.0/node_modules/hosted-git-info/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/hosted-git-info@4.1.0/node_modules/hosted-git-info/index.js","../node_modules/.pnpm/spdx-expression-parse@3.0.1/node_modules/spdx-expression-parse/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/spdx-expression-parse@3.0.1/node_modules/spdx-expression-parse/parse.js","../node_modules/.pnpm/spdx-expression-parse@3.0.1/node_modules/spdx-expression-parse/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/spdx-expression-parse@3.0.1/node_modules/spdx-expression-parse/scan.js","../node_modules/.pnpm/spdx-expression-parse@3.0.1/node_modules/spdx-expression-parse/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/spdx-expression-parse@3.0.1/node_modules/spdx-expression-parse/index.js","../node_modules/.pnpm/spdx-correct@3.1.1/node_modules/spdx-correct/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/spdx-correct@3.1.1/node_modules/spdx-correct/index.js","../node_modules/.pnpm/validate-npm-package-license@3.0.4/node_modules/validate-npm-package-license/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/validate-npm-package-license@3.0.4/node_modules/validate-npm-package-license/index.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/parse-options.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/identifiers.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/debug.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/constants.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/re.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/classes/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/classes/semver.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/parse.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/clean.js","../node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/valid.js","../node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/fixer.js","../node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/C:/Users/ming/projects/esbuild-plugin-license/node_modules/.pnpm/normalize-package-data@3.0.3/node_modules/normalize-package-data/lib/normalize.js"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n",null,"import { Plugin } from 'esbuild';\r\nimport * as _ from 'lodash-es'\r\nimport path from 'path';\r\nimport { NormalizedReadResult, readPackageUp } from 'read-pkg-up'\r\nimport normalize from 'normalize-package-data'\r\nimport type { PackageJson } from 'type-fest'\r\nimport fs from 'fs'\r\ntype Package = normalize.Package\r\ntype NormalizedPackageJson = Package & PackageJson\r\n\r\ntype NotNill<T> = T extends null | undefined ? never : T;\r\n\r\ntype Primitive = undefined | null | boolean | string | number | Function;\r\n\r\ntype DeepRequired<T> = T extends Primitive\r\n ? NotNill<T>\r\n : {\r\n [P in keyof T]-?: T[P] extends Array<infer U>\r\n ? Array<DeepRequired<U>>\r\n : T[P] extends ReadonlyArray<infer U2>\r\n ? DeepRequired<U2>\r\n : DeepRequired<T[P]>\r\n };\r\n\r\nexport interface Dependency {\r\n packageJson: NormalizedPackageJson\r\n licenseText: string\r\n}\r\n\r\nexport interface Options {\r\n banner?: string\r\n thirdParty?: {\r\n /**\r\n * @default false\r\n */\r\n includePrivate?: boolean\r\n output?: {\r\n file?: string\r\n /**\r\n * Template function that can be defined to customize report output\r\n * Format of https://lodash.com/docs/4.17.15#template\r\n */\r\n template?: string | ((dependencies: Dependency[], self: Dependency) => string)\r\n }\r\n }\r\n}\r\n\r\nexport const defaultOptions: DeepRequired<Options> = {\r\n banner: `/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */`,\r\n thirdParty: {\r\n includePrivate: false,\r\n output: {\r\n file: 'dependencies.txt',\r\n // Template function that can be defined to customize report output\r\n template(dependencies) {\r\n return dependencies.map((dependency) => `${dependency.packageJson.name}:${dependency.packageJson.version} -- ${dependency.packageJson.license}`).join('\\n');\r\n },\r\n }\r\n }\r\n} as const\r\n\r\nexport default function esbuildPluginLicense(options: Options = {}): Plugin {\r\n const loadedPackages: Map<string, NormalizedReadResult> = new Map()\r\n const dependencies: Dependency[] = []\r\n const getLicenseText = async (pkgJsonPath: string) => {\r\n const dir = path.dirname(pkgJsonPath)\r\n const files = fs.readdirSync(dir)\r\n const idx = files.findIndex(file => {\r\n if (file.toLocaleLowerCase().includes('license'))\r\n return true\r\n else return false\r\n })\r\n if (idx !== -1) {\r\n return (fs.readFileSync(path.join(dir, files[idx]))).toString()\r\n }\r\n return ''\r\n }\r\n return {\r\n name: 'esbuild-plugin-license',\r\n async setup(build) {\r\n const pkg = await readPackageUp()\r\n const banner = options.banner || defaultOptions.banner\r\n\r\n let userBanner = build.initialOptions.banner?.js\r\n userBanner = userBanner ? (userBanner + '\\n') : ''\r\n build.initialOptions.banner = {\r\n ...build.initialOptions.banner,\r\n js: userBanner + _.template(banner)({ pkg: pkg?.packageJson })\r\n }\r\n\r\n build.onLoad({ filter: /.*/ }, async (args) => {\r\n const result = await readPackageUp({\r\n cwd: path.dirname(args.path)\r\n })\r\n if (result) {\r\n // Only keep the latest version of the dependency\r\n if (loadedPackages.has(result.packageJson.name)) {\r\n const oldVersion = loadedPackages.get(result.packageJson.name)?.packageJson.version\r\n if (!oldVersion || (oldVersion < result.packageJson.version)) {\r\n loadedPackages.set(result.packageJson.name, result)\r\n }\r\n } else {\r\n loadedPackages.set(result.packageJson.name, result)\r\n }\r\n }\r\n return null\r\n })\r\n build.onEnd(async () => {\r\n const includePrivate = options.thirdParty?.includePrivate ?? defaultOptions.thirdParty.includePrivate\r\n\r\n for await (const [name, result] of ([...loadedPackages.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1))) {\r\n if (!includePrivate && result.packageJson.private) continue\r\n if (!name) continue\r\n if (result.packageJson.name === pkg?.packageJson.name) continue\r\n\r\n dependencies.push({\r\n packageJson: result.packageJson,\r\n licenseText: await getLicenseText(result.path)\r\n })\r\n }\r\n\r\n // generate thirdParty output\r\n const output = options.thirdParty?.output ?? defaultOptions.thirdParty.output\r\n let outputFile = output.file ?? defaultOptions.thirdParty.output.file\r\n const outputTemplate = output.template ?? defaultOptions.thirdParty.output.template\r\n\r\n const outdir = build.initialOptions.outdir ?? '.'\r\n if (!path.isAbsolute(outputFile)) outputFile = path.join(outdir, outputFile)\r\n\r\n let thirdPartyLicenseResult = ''\r\n if (typeof outputTemplate === 'string') {\r\n thirdPartyLicenseResult = _.template(outputTemplate)(dependencies)\r\n } else {\r\n thirdPartyLicenseResult = outputTemplate(dependencies, {\r\n packageJson: pkg!.packageJson,\r\n licenseText: await getLicenseText(pkg!.path)\r\n })\r\n }\r\n if (thirdPartyLicenseResult) {\r\n fs.writeFileSync(outputFile, thirdPartyLicenseResult, {\r\n encoding: 'utf-8'\r\n })\r\n }\r\n })\r\n }\r\n }\r\n}\r\n\r\n","/**\n * @license\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"es\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nexport { default as add } from './add.js';\nexport { default as after } from './after.js';\nexport { default as ary } from './ary.js';\nexport { default as assign } from './assign.js';\nexport { default as assignIn } from './assignIn.js';\nexport { default as assignInWith } from './assignInWith.js';\nexport { default as assignWith } from './assignWith.js';\nexport { default as at } from './at.js';\nexport { default as attempt } from './attempt.js';\nexport { default as before } from './before.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as bindKey } from './bindKey.js';\nexport { default as camelCase } from './camelCase.js';\nexport { default as capitalize } from './capitalize.js';\nexport { default as castArray } from './castArray.js';\nexport { default as ceil } from './ceil.js';\nexport { default as chain } from './chain.js';\nexport { default as chunk } from './chunk.js';\nexport { default as clamp } from './clamp.js';\nexport { default as clone } from './clone.js';\nexport { default as cloneDeep } from './cloneDeep.js';\nexport { default as cloneDeepWith } from './cloneDeepWith.js';\nexport { default as cloneWith } from './cloneWith.js';\nexport { default as commit } from './commit.js';\nexport { default as compact } from './compact.js';\nexport { default as concat } from './concat.js';\nexport { default as cond } from './cond.js';\nexport { default as conforms } from './conforms.js';\nexport { default as conformsTo } from './conformsTo.js';\nexport { default as constant } from './constant.js';\nexport { default as countBy } from './countBy.js';\nexport { default as create } from './create.js';\nexport { default as curry } from './curry.js';\nexport { default as curryRight } from './curryRight.js';\nexport { default as debounce } from './debounce.js';\nexport { default as deburr } from './deburr.js';\nexport { default as defaultTo } from './defaultTo.js';\nexport { default as defaults } from './defaults.js';\nexport { default as defaultsDeep } from './defaultsDeep.js';\nexport { default as defer } from './defer.js';\nexport { default as delay } from './delay.js';\nexport { default as difference } from './difference.js';\nexport { default as differenceBy } from './differenceBy.js';\nexport { default as differenceWith } from './differenceWith.js';\nexport { default as divide } from './divide.js';\nexport { default as drop } from './drop.js';\nexport { default as dropRight } from './dropRight.js';\nexport { default as dropRightWhile } from './dropRightWhile.js';\nexport { default as dropWhile } from './dropWhile.js';\nexport { default as each } from './each.js';\nexport { default as eachRight } from './eachRight.js';\nexport { default as endsWith } from './endsWith.js';\nexport { default as entries } from './entries.js';\nexport { default as entriesIn } from './entriesIn.js';\nexport { default as eq } from './eq.js';\nexport { default as escape } from './escape.js';\nexport { default as escapeRegExp } from './escapeRegExp.js';\nexport { default as every } from './every.js';\nexport { default as extend } from './extend.js';\nexport { default as extendWith } from './extendWith.js';\nexport { default as fill } from './fill.js';\nexport { default as filter } from './filter.js';\nexport { default as find } from './find.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findKey } from './findKey.js';\nexport { default as findLast } from './findLast.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as findLastKey } from './findLastKey.js';\nexport { default as first } from './first.js';\nexport { default as flatMap } from './flatMap.js';\nexport { default as flatMapDeep } from './flatMapDeep.js';\nexport { default as flatMapDepth } from './flatMapDepth.js';\nexport { default as flatten } from './flatten.js';\nexport { default as flattenDeep } from './flattenDeep.js';\nexport { default as flattenDepth } from './flattenDepth.js';\nexport { default as flip } from './flip.js';\nexport { default as floor } from './floor.js';\nexport { default as flow } from './flow.js';\nexport { default as flowRight } from './flowRight.js';\nexport { default as forEach } from './forEach.js';\nexport { default as forEachRight } from './forEachRight.js';\nexport { default as forIn } from './forIn.js';\nexport { default as forInRight } from './forInRight.js';\nexport { default as forOwn } from './forOwn.js';\nexport { default as forOwnRight } from './forOwnRight.js';\nexport { default as fromPairs } from './fromPairs.js';\nexport { default as functions } from './functions.js';\nexport { default as functionsIn } from './functionsIn.js';\nexport { default as get } from './get.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as gt } from './gt.js';\nexport { default as gte } from './gte.js';\nexport { default as has } from './has.js';\nexport { default as hasIn } from './hasIn.js';\nexport { default as head } from './head.js';\nexport { default as identity } from './identity.js';\nexport { default as inRange } from './inRange.js';\nexport { default as includes } from './includes.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as initial } from './initial.js';\nexport { default as intersection } from './intersection.js';\nexport { default as intersectionBy } from './intersectionBy.js';\nexport { default as intersectionWith } from './intersectionWith.js';\nexport { default as invert } from './invert.js';\nexport { default as invertBy } from './invertBy.js';\nexport { default as invoke } from './invoke.js';\nexport { default as invokeMap } from './invokeMap.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isArrayLike } from './isArrayLike.js';\nexport { default as isArrayLikeObject } from './isArrayLikeObject.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isBuffer } from './isBuffer.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isEqualWith } from './isEqualWith.js';\nexport { default as isError } from './isError.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isInteger } from './isInteger.js';\nexport { default as isLength } from './isLength.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isMatchWith } from './isMatchWith.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isNative } from './isNative.js';\nexport { default as isNil } from './isNil.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isObject } from './isObject.js';\nexport { default as isObjectLike } from './isObjectLike.js';\nexport { default as isPlainObject } from './isPlainObject.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isSafeInteger } from './isSafeInteger.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isString } from './isString.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isWeakSet } from './isWeakSet.js';\nexport { default as iteratee } from './iteratee.js';\nexport { default as join } from './join.js';\nexport { default as kebabCase } from './kebabCase.js';\nexport { default as keyBy } from './keyBy.js';\nexport { default as keys } from './keys.js';\nexport { default as keysIn } from './keysIn.js';\nexport { default as last } from './last.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as lodash } from './wrapperLodash.js';\nexport { default as lowerCase } from './lowerCase.js';\nexport { default as lowerFirst } from './lowerFirst.js';\nexport { default as lt } from './lt.js';\nexport { default as lte } from './lte.js';\nexport { default as map } from './map.js';\nexport { default as mapKeys } from './mapKeys.js';\nexport { default as mapValues } from './mapValues.js';\nexport { default as matches } from './matches.js';\nexport { default as matchesProperty } from './matchesProperty.js';\nexport { default as max } from './max.js';\nexport { default as maxBy } from './maxBy.js';\nexport { default as mean } from './mean.js';\nexport { default as meanBy } from './meanBy.js';\nexport { default as memoize } from './memoize.js';\nexport { default as merge } from './merge.js';\nexport { default as mergeWith } from './mergeWith.js';\nexport { default as method } from './method.js';\nexport { default as methodOf } from './methodOf.js';\nexport { default as min } from './min.js';\nexport { default as minBy } from './minBy.js';\nexport { default as mixin } from './mixin.js';\nexport { default as multiply } from './multiply.js';\nexport { default as negate } from './negate.js';\nexport { default as next } from './next.js';\nexport { default as noop } from './noop.js';\nexport { default as now } from './now.js';\nexport { default as nth } from './nth.js';\nexport { default as nthArg } from './nthArg.js';\nexport { default as omit } from './omit.js';\nexport { default as omitBy } from './omitBy.js';\nexport { default as once } from './once.js';\nexport { default as orderBy } from './orderBy.js';\nexport { default as over } from './over.js';\nexport { default as overArgs } from './overArgs.js';\nexport { default as overEvery } from './overEvery.js';\nexport { default as overSome } from './overSome.js';\nexport { default as pad } from './pad.js';\nexport { default as padEnd } from './padEnd.js';\nexport { default as padStart } from './padStart.js';\nexport { default as parseInt } from './parseInt.js';\nexport { default as partial } from './partial.js';\nexport { default as partialRight } from './partialRight.js';\nexport { default as partition } from './partition.js';\nexport { default as pick } from './pick.js';\nexport { default as pickBy } from './pickBy.js';\nexport { default as plant } from './plant.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as pull } from './pull.js';\nexport { default as pullAll } from './pullAll.js';\nexport { default as pullAllBy } from './pullAllBy.js';\nexport { default as pullAllWith } from './pullAllWith.js';\nexport { default as pullAt } from './pullAt.js';\nexport { default as random } from './random.js';\nexport { default as range } from './range.js';\nexport { default as rangeRight } from './rangeRight.js';\nexport { default as rearg } from './rearg.js';\nexport { default as reduce } from './reduce.js';\nexport { default as reduceRight } from './reduceRight.js';\nexport { default as reject } from './reject.js';\nexport { default as remove } from './remove.js';\nexport { default as repeat } from './repeat.js';\nexport { default as replace } from './replace.js';\nexport { default as rest } from './rest.js';\nexport { default as result } from './result.js';\nexport { default as reverse } from './reverse.js';\nexport { default as round } from './round.js';\nexport { default as sample } from './sample.js';\nexport { default as sampleSize } from './sampleSize.js';\nexport { default as set } from './set.js';\nexport { default as setWith } from './setWith.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as size } from './size.js';\nexport { default as slice } from './slice.js';\nexport { default as snakeCase } from './snakeCase.js';\nexport { default as some } from './some.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as sortedIndexBy } from './sortedIndexBy.js';\nexport { default as sortedIndexOf } from './sortedIndexOf.js';\nexport { default as sortedLastIndex } from './sortedLastIndex.js';\nexport { default as sortedLastIndexBy } from './sortedLastIndexBy.js';\nexport { default as sortedLastIndexOf } from './sortedLastIndexOf.js';\nexport { default as sortedUniq } from './sortedUniq.js';\nexport { default as sortedUniqBy } from './sortedUniqBy.js';\nexport { default as split } from './split.js';\nexport { default as spread } from './spread.js';\nexport { default as startCase } from './startCase.js';\nexport { default as startsWith } from './startsWith.js';\nexport { default as stubArray } from './stubArray.js';\nexport { default as stubFalse } from './stubFalse.js';\nexport { default as stubObject } from './stubObject.js';\nexport { default as stubString } from './stubString.js';\nexport { default as stubTrue } from './stubTrue.js';\nexport { default as subtract } from './subtract.js';\nexport { default as sum } from './sum.js';\nexport { default as sumBy } from './sumBy.js';\nexport { default as tail } from './tail.js';\nexport { default as take } from './take.js';\nexport { default as takeRight } from './takeRight.js';\nexport { default as takeRightWhile } from './takeRightWhile.js';\nexport { default as takeWhile } from './takeWhile.js';\nexport { default as tap } from './tap.js';\nexport { default as template } from './template.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as throttle } from './throttle.js';\nexport { default as thru } from './thru.js';\nexport { default as times } from './times.js';\nexport { default as toArray } from './toArray.js';\nexport { default as toFinite } from './toFinite.js';\nexport { default as toInteger } from './toInteger.js';\nexport { default as toIterator } from './toIterator.js';\nexport { default as toJSON } from './toJSON.js';\nexport { default as toLength } from './toLength.js';\nexport { default as toLower } from './toLower.js';\nexport { default as toNumber } from './toNumber.js';\nexport { default as toPairs } from './toPairs.js';\nexport { default as toPairsIn } from './toPairsIn.js';\nexport { default as toPath } from './toPath.js';\nexport { default as toPlainObject } from './toPlainObject.js';\nexport { default as toSafeInteger } from './toSafeInteger.js';\nexport { default as toString } from './toString.js';\nexport { default as toUpper } from './toUpper.js';\nexport { default as transform } from './transform.js';\nexport { default as trim } from './trim.js';\nexport { default as trimEnd } from './trimEnd.js';\nexport { default as trimStart } from './trimStart.js';\nexport { default as truncate } from './truncate.js';\nexport { default as unary } from './unary.js';\nexport { default as unescape } from './unescape.js';\nexport { default as union } from './union.js';\nexport { default as unionBy } from './unionBy.js';\nexport { default as unionWith } from './unionWith.js';\nexport { default as uniq } from './uniq.js';\nexport { default as uniqBy } from './uniqBy.js';\nexport { default as uniqWith } from './uniqWith.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as unset } from './unset.js';\nexport { default as unzip } from './unzip.js';\nexport { default as unzipWith } from './unzipWith.js';\nexport { default as update } from './update.js';\nexport { default as updateWith } from './updateWith.js';\nexport { default as upperCase } from './upperCase.js';\nexport { default as upperFirst } from './upperFirst.js';\nexport { default as value } from './value.js';\nexport { default as valueOf } from './valueOf.js';\nexport { default as values } from './values.js';\nexport { default as valuesIn } from './valuesIn.js';\nexport { default as without } from './without.js';\nexport { default as words } from './words.js';\nexport { default as wrap } from './wrap.js';\nexport { default as wrapperAt } from './wrapperAt.js';\nexport { default as wrapperChain } from './wrapperChain.js';\nexport { default as wrapperCommit } from './commit.js';\nexport { default as wrapperLodash } from './wrapperLodash.js';\nexport { default as wrapperNext } from './next.js';\nexport { default as wrapperPlant } from './plant.js';\nexport { default as wrapperReverse } from './wrapperReverse.js';\nexport { default as wrapperToIterator } from './toIterator.js';\nexport { default as wrapperValue } from './wrapperValue.js';\nexport { default as xor } from './xor.js';\nexport { default as xorBy } from './xorBy.js';\nexport { default as xorWith } from './xorWith.js';\nexport { default as zip } from './zip.js';\nexport { default as zipObject } from './zipObject.js';\nexport { default as zipObjectDeep } from './zipObjectDeep.js';\nexport { default as zipWith } from './zipWith.js';\nexport { default } from './lodash.default.js';\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nv