From 06823fbf1c2e763a5bf76c3990ca98fbbcd98691 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Tue, 14 May 2024 14:05:49 +0800 Subject: updated node_modules --- node_modules/lilconfig/dist/index.d.ts | 44 ----- node_modules/lilconfig/dist/index.js | 320 --------------------------------- node_modules/lilconfig/package.json | 88 +++++---- node_modules/lilconfig/readme.md | 27 +-- 4 files changed, 46 insertions(+), 433 deletions(-) delete mode 100644 node_modules/lilconfig/dist/index.d.ts delete mode 100644 node_modules/lilconfig/dist/index.js (limited to 'node_modules/lilconfig') diff --git a/node_modules/lilconfig/dist/index.d.ts b/node_modules/lilconfig/dist/index.d.ts deleted file mode 100644 index 5a0c2db3..00000000 --- a/node_modules/lilconfig/dist/index.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -export declare type LilconfigResult = null | { - filepath: string; - config: any; - isEmpty?: boolean; -}; -interface OptionsBase { - cache?: boolean; - stopDir?: string; - searchPlaces?: string[]; - ignoreEmptySearchPlaces?: boolean; - packageProp?: string | string[]; -} -export declare type Transform = TransformSync | ((result: LilconfigResult) => Promise); -export declare type TransformSync = (result: LilconfigResult) => LilconfigResult; -declare type LoaderResult = any; -export declare type LoaderSync = (filepath: string, content: string) => LoaderResult; -export declare type Loader = LoaderSync | ((filepath: string, content: string) => Promise); -export declare type Loaders = Record; -export declare type LoadersSync = Record; -export interface Options extends OptionsBase { - loaders?: Loaders; - transform?: Transform; -} -export interface OptionsSync extends OptionsBase { - loaders?: LoadersSync; - transform?: TransformSync; -} -export declare const defaultLoaders: LoadersSync; -declare type ClearCaches = { - clearLoadCache: () => void; - clearSearchCache: () => void; - clearCaches: () => void; -}; -declare type AsyncSearcher = { - search(searchFrom?: string): Promise; - load(filepath: string): Promise; -} & ClearCaches; -export declare function lilconfig(name: string, options?: Partial): AsyncSearcher; -declare type SyncSearcher = { - search(searchFrom?: string): LilconfigResult; - load(filepath: string): LilconfigResult; -} & ClearCaches; -export declare function lilconfigSync(name: string, options?: OptionsSync): SyncSearcher; -export {}; diff --git a/node_modules/lilconfig/dist/index.js b/node_modules/lilconfig/dist/index.js deleted file mode 100644 index dce42fa6..00000000 --- a/node_modules/lilconfig/dist/index.js +++ /dev/null @@ -1,320 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.lilconfigSync = exports.lilconfig = exports.defaultLoaders = void 0; -const path = require("path"); -const fs = require("fs"); -const os = require("os"); -const fsReadFileAsync = fs.promises.readFile; -function getDefaultSearchPlaces(name) { - return [ - 'package.json', - `.${name}rc.json`, - `.${name}rc.js`, - `.${name}rc.cjs`, - `.config/${name}rc`, - `.config/${name}rc.json`, - `.config/${name}rc.js`, - `.config/${name}rc.cjs`, - `${name}.config.js`, - `${name}.config.cjs`, - ]; -} -function parentDir(p) { - return path.dirname(p) || path.sep; -} -exports.defaultLoaders = Object.freeze({ - '.js': require, - '.json': require, - '.cjs': require, - noExt(_, content) { - return JSON.parse(content); - }, -}); -function getExtDesc(ext) { - return ext === 'noExt' ? 'files without extensions' : `extension "${ext}"`; -} -function getOptions(name, options = {}) { - const conf = { - stopDir: os.homedir(), - searchPlaces: getDefaultSearchPlaces(name), - ignoreEmptySearchPlaces: true, - cache: true, - transform: (x) => x, - packageProp: [name], - ...options, - loaders: { ...exports.defaultLoaders, ...options.loaders }, - }; - conf.searchPlaces.forEach(place => { - const key = path.extname(place) || 'noExt'; - const loader = conf.loaders[key]; - if (!loader) { - throw new Error(`No loader specified for ${getExtDesc(key)}, so searchPlaces item "${place}" is invalid`); - } - if (typeof loader !== 'function') { - throw new Error(`loader for ${getExtDesc(key)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`); - } - }); - return conf; -} -function getPackageProp(props, obj) { - if (typeof props === 'string' && props in obj) - return obj[props]; - return ((Array.isArray(props) ? props : props.split('.')).reduce((acc, prop) => (acc === undefined ? acc : acc[prop]), obj) || null); -} -function validateFilePath(filepath) { - if (!filepath) - throw new Error('load must pass a non-empty string'); -} -function validateLoader(loader, ext) { - if (!loader) - throw new Error(`No loader specified for extension "${ext}"`); - if (typeof loader !== 'function') - throw new Error('loader is not a function'); -} -const makeEmplace = (enableCache) => (c, filepath, res) => { - if (enableCache) - c.set(filepath, res); - return res; -}; -function lilconfig(name, options) { - const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, cache, } = getOptions(name, options); - const searchCache = new Map(); - const loadCache = new Map(); - const emplace = makeEmplace(cache); - return { - async search(searchFrom = process.cwd()) { - const result = { - config: null, - filepath: '', - }; - const visited = new Set(); - let dir = searchFrom; - dirLoop: while (true) { - if (cache) { - const r = searchCache.get(dir); - if (r !== undefined) { - for (const p of visited) - searchCache.set(p, r); - return r; - } - visited.add(dir); - } - for (const searchPlace of searchPlaces) { - const filepath = path.join(dir, searchPlace); - try { - await fs.promises.access(filepath); - } - catch (_a) { - continue; - } - const content = String(await fsReadFileAsync(filepath)); - const loaderKey = path.extname(searchPlace) || 'noExt'; - const loader = loaders[loaderKey]; - if (searchPlace === 'package.json') { - const pkg = await loader(filepath, content); - const maybeConfig = getPackageProp(packageProp, pkg); - if (maybeConfig != null) { - result.config = maybeConfig; - result.filepath = filepath; - break dirLoop; - } - continue; - } - const isEmpty = content.trim() === ''; - if (isEmpty && ignoreEmptySearchPlaces) - continue; - if (isEmpty) { - result.isEmpty = true; - result.config = undefined; - } - else { - validateLoader(loader, loaderKey); - result.config = await loader(filepath, content); - } - result.filepath = filepath; - break dirLoop; - } - if (dir === stopDir || dir === parentDir(dir)) - break dirLoop; - dir = parentDir(dir); - } - const transformed = result.filepath === '' && result.config === null - ? transform(null) - : transform(result); - if (cache) { - for (const p of visited) - searchCache.set(p, transformed); - } - return transformed; - }, - async load(filepath) { - validateFilePath(filepath); - const absPath = path.resolve(process.cwd(), filepath); - if (cache && loadCache.has(absPath)) { - return loadCache.get(absPath); - } - const { base, ext } = path.parse(absPath); - const loaderKey = ext || 'noExt'; - const loader = loaders[loaderKey]; - validateLoader(loader, loaderKey); - const content = String(await fsReadFileAsync(absPath)); - if (base === 'package.json') { - const pkg = await loader(absPath, content); - return emplace(loadCache, absPath, transform({ - config: getPackageProp(packageProp, pkg), - filepath: absPath, - })); - } - const result = { - config: null, - filepath: absPath, - }; - const isEmpty = content.trim() === ''; - if (isEmpty && ignoreEmptySearchPlaces) - return emplace(loadCache, absPath, transform({ - config: undefined, - filepath: absPath, - isEmpty: true, - })); - result.config = isEmpty - ? undefined - : await loader(absPath, content); - return emplace(loadCache, absPath, transform(isEmpty ? { ...result, isEmpty, config: undefined } : result)); - }, - clearLoadCache() { - if (cache) - loadCache.clear(); - }, - clearSearchCache() { - if (cache) - searchCache.clear(); - }, - clearCaches() { - if (cache) { - loadCache.clear(); - searchCache.clear(); - } - }, - }; -} -exports.lilconfig = lilconfig; -function lilconfigSync(name, options) { - const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, cache, } = getOptions(name, options); - const searchCache = new Map(); - const loadCache = new Map(); - const emplace = makeEmplace(cache); - return { - search(searchFrom = process.cwd()) { - const result = { - config: null, - filepath: '', - }; - const visited = new Set(); - let dir = searchFrom; - dirLoop: while (true) { - if (cache) { - const r = searchCache.get(dir); - if (r !== undefined) { - for (const p of visited) - searchCache.set(p, r); - return r; - } - visited.add(dir); - } - for (const searchPlace of searchPlaces) { - const filepath = path.join(dir, searchPlace); - try { - fs.accessSync(filepath); - } - catch (_a) { - continue; - } - const loaderKey = path.extname(searchPlace) || 'noExt'; - const loader = loaders[loaderKey]; - const content = String(fs.readFileSync(filepath)); - if (searchPlace === 'package.json') { - const pkg = loader(filepath, content); - const maybeConfig = getPackageProp(packageProp, pkg); - if (maybeConfig != null) { - result.config = maybeConfig; - result.filepath = filepath; - break dirLoop; - } - continue; - } - const isEmpty = content.trim() === ''; - if (isEmpty && ignoreEmptySearchPlaces) - continue; - if (isEmpty) { - result.isEmpty = true; - result.config = undefined; - } - else { - validateLoader(loader, loaderKey); - result.config = loader(filepath, content); - } - result.filepath = filepath; - break dirLoop; - } - if (dir === stopDir || dir === parentDir(dir)) - break dirLoop; - dir = parentDir(dir); - } - const transformed = result.filepath === '' && result.config === null - ? transform(null) - : transform(result); - if (cache) { - for (const p of visited) - searchCache.set(p, transformed); - } - return transformed; - }, - load(filepath) { - validateFilePath(filepath); - const absPath = path.resolve(process.cwd(), filepath); - if (cache && loadCache.has(absPath)) { - return loadCache.get(absPath); - } - const { base, ext } = path.parse(absPath); - const loaderKey = ext || 'noExt'; - const loader = loaders[loaderKey]; - validateLoader(loader, loaderKey); - const content = String(fs.readFileSync(absPath)); - if (base === 'package.json') { - const pkg = loader(absPath, content); - return transform({ - config: getPackageProp(packageProp, pkg), - filepath: absPath, - }); - } - const result = { - config: null, - filepath: absPath, - }; - const isEmpty = content.trim() === ''; - if (isEmpty && ignoreEmptySearchPlaces) - return emplace(loadCache, absPath, transform({ - filepath: absPath, - config: undefined, - isEmpty: true, - })); - result.config = isEmpty ? undefined : loader(absPath, content); - return emplace(loadCache, absPath, transform(isEmpty ? { ...result, isEmpty, config: undefined } : result)); - }, - clearLoadCache() { - if (cache) - loadCache.clear(); - }, - clearSearchCache() { - if (cache) - searchCache.clear(); - }, - clearCaches() { - if (cache) { - loadCache.clear(); - searchCache.clear(); - } - }, - }; -} -exports.lilconfigSync = lilconfigSync; diff --git a/node_modules/lilconfig/package.json b/node_modules/lilconfig/package.json index 4782b541..a40f62c8 100644 --- a/node_modules/lilconfig/package.json +++ b/node_modules/lilconfig/package.json @@ -1,48 +1,44 @@ { - "name": "lilconfig", - "version": "3.0.0", - "description": "A zero-dependency alternative to cosmiconfig", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "scripts": { - "prebuild": "npm run clean", - "build": "tsc --declaration", - "postbuild": "du -h ./dist/*", - "clean": "rm -rf ./dist", - "test": "jest --coverage", - "lint": "eslint ./src/*.ts" - }, - "keywords": [ - "cosmiconfig", - "config", - "configuration", - "search" - ], - "files": [ - "dist/*" - ], - "repository": { - "type": "git", - "url": "https://github.com/antonk52/lilconfig" - }, - "bugs": "https://github.com/antonk52/lilconfig/issues", - "author": "antonk52", - "license": "MIT", - "devDependencies": { - "@types/jest": "^27.0.2", - "@types/node": "^14.18.36", - "@typescript-eslint/eslint-plugin": "^5.54.0", - "@typescript-eslint/parser": "^5.54.0", - "cosmiconfig": "^7.1.0", - "eslint": "^8.35.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-prettier": "^4.2.1", - "jest": "^27.3.1", - "prettier": "^2.8.4", - "ts-jest": "27.0.7", - "typescript": "4.4.4" - }, - "engines": { - "node": ">=14" - } + "name": "lilconfig", + "version": "3.1.1", + "description": "A zero-dependency alternative to cosmiconfig", + "main": "src/index.js", + "types": "src/index.d.ts", + "scripts": { + "test": "NODE_OPTIONS=--experimental-vm-modules ./node_modules/.bin/jest --coverage", + "lint": "eslint ./src", + "types": "tsc" + }, + "keywords": [ + "cosmiconfig", + "config", + "configuration", + "search" + ], + "files": [ + "src/index.*" + ], + "repository": { + "type": "git", + "url": "https://github.com/antonk52/lilconfig" + }, + "bugs": "https://github.com/antonk52/lilconfig/issues", + "author": "antonk52", + "license": "MIT", + "devDependencies": { + "@types/jest": "^29.5.12", + "@types/node": "^14.18.63", + "cosmiconfig": "^8.3.6", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "jest": "^29.7.0", + "prettier": "^3.2.5", + "typescript": "^5.3.3", + "uvu": "^0.5.6" + }, + "funding": "https://github.com/sponsors/antonk52", + "engines": { + "node": ">=14" + } } diff --git a/node_modules/lilconfig/readme.md b/node_modules/lilconfig/readme.md index ac42df08..99c42623 100644 --- a/node_modules/lilconfig/readme.md +++ b/node_modules/lilconfig/readme.md @@ -42,6 +42,10 @@ lilconfigSync( */ ``` +## ESM + +ESM configs can be loaded with **async API only**. Specifically `js` files in projects with `"type": "module"` in `package.json` or `mjs` files. + ## Difference to `cosmiconfig` Lilconfig does not intend to be 100% compatible with `cosmiconfig` but tries to mimic it where possible. The key difference is **no** support for yaml files out of the box(`lilconfig` attempts to parse files with no extension as JSON instead of YAML). You can still add the support for YAML files by providing a loader, see an [example](#yaml-loader) below. @@ -87,29 +91,6 @@ lilconfig('myapp', options) }); ``` -### ESM loader - -Lilconfig v2 does not support ESM modules out of the box. However, you can support it with a custom a loader. Note that this will only work with the async `lilconfig` function and won't work with the sync `lilconfigSync`. - -```js -import {lilconfig} from 'lilconfig'; - -const loadEsm = filepath => import(filepath); - -lilconfig('myapp', { - loaders: { - '.js': loadEsm, - '.mjs': loadEsm, - } -}) - .search() - .then(result => { - result // {config, filepath} - - result.config.default // if config uses `export default` - }); -``` - ## Version correlation - lilconig v1 → cosmiconfig v6 -- cgit v1.2.3