@mcabreradev/filter
Version:
A powerful, SQL-like array filtering library for TypeScript and JavaScript with advanced pattern matching, MongoDB-style operators, deep object comparison, and zero dependencies
301 lines • 9.04 kB
JSON
{
"name": "@mcabreradev/filter",
"version": "5.8.3",
"type": "module",
"description": "A powerful, SQL-like array filtering library for TypeScript and JavaScript with advanced pattern matching, MongoDB-style operators, deep object comparison, and zero dependencies",
"lint-staged": {
"*.ts": [
"eslint --fix",
"prettier --write"
]
},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/mcabreradev/filter.git"
},
"keywords": [
"filter",
"array",
"filtering",
"typescript",
"javascript",
"mongodb",
"operators",
"query",
"search",
"pattern-matching",
"wildcard",
"sql-like",
"data-filtering",
"object-filtering",
"deep-comparison",
"nested-objects",
"lazy-evaluation",
"geospatial",
"datetime",
"memoization",
"caching",
"performance",
"react",
"vue",
"svelte",
"framework-integration",
"type-safe",
"zero-dependencies",
"functional-programming",
"data-transformation",
"collection-utils",
"array-methods",
"query-builder",
"data-query",
"mongodb-query",
"nosql",
"json-filter",
"object-query",
"advanced-filtering",
"regex",
"comparison-operators",
"logical-operators",
"string-operators",
"array-operators",
"location-based",
"spatial-query",
"temporal-query",
"react-hooks",
"vue-composables",
"svelte-stores",
"nextjs",
"node",
"nodejs",
"frontend",
"backend",
"es6"
],
"author": "Miguelangel Cabrera",
"license": "MIT",
"bugs": {
"url": "https://github.com/mcabreradev/filter/issues"
},
"homepage": "https://github.com/mcabreradev/filter#readme",
"devDependencies": {
"@angular/core": "^19.1.5",
"@size-limit/preset-small-lib": "^11.2.0",
"@testing-library/preact": "^3.2.4",
"@testing-library/react": "^16.1.0",
"@types/leaflet": "^1.9.21",
"@types/node": "^24.9.1",
"@types/react": "^18.3.18",
"@typescript-eslint/eslint-plugin": "^8.17.0",
"@typescript-eslint/parser": "^8.17.0",
"@vercel/analytics": "^1.5.0",
"@vitejs/plugin-vue": "^6.0.1",
"@vitest/coverage-v8": "^2.1.0",
"@vitest/ui": "^2.1.0",
"@vue-leaflet/vue-leaflet": "^0.10.1",
"@vue/repl": "^4.7.0",
"@vue/test-utils": "^2.4.6",
"doctoc": "^2.2.1",
"eslint": "^9.16.0",
"happy-dom": "^20.0.10",
"husky": "^9.1.7",
"jsdom": "^27.1.0",
"leaflet": "^1.9.4",
"lint-staged": "^16.2.4",
"preact": "^10.26.1",
"prettier": "^3.4.0",
"rxjs": "^7.8.1",
"size-limit": "^11.2.0",
"solid-js": "^1.9.4",
"svelte": "^5.18.3",
"tsd": "^0.33.0",
"tsx": "^4.20.6",
"typedoc": "^0.28.14",
"typedoc-plugin-markdown": "^4.9.0",
"typescript": "^5.7.0",
"vitepress": "^1.6.4",
"vitest": "^2.1.0",
"vue": "^3.5.13",
"zod": "^4.1.12"
},
"peerDependencies": {
"@angular/core": ">=17.0.0",
"preact": ">=10.0.0",
"react": ">=18.0.0",
"solid-js": ">=1.8.0",
"svelte": ">=4.0.0 || >=5.0.0",
"vue": ">=3.0.0",
"zod": ">=3.0.0"
},
"peerDependenciesMeta": {
"@angular/core": {
"optional": true
},
"preact": {
"optional": true
},
"react": {
"optional": true
},
"solid-js": {
"optional": true
},
"svelte": {
"optional": true
},
"vue": {
"optional": true
},
"zod": {
"optional": true
}
},
"engines": {
"node": ">=20"
},
"main": "build/index.js",
"types": "build/index.d.ts",
"sideEffects": false,
"exports": {
".": {
"types": "./build/index.d.ts",
"import": "./build/index.js",
"default": "./build/index.js"
},
"./core": {
"types": "./build/core/index.d.ts",
"import": "./build/core/index.js",
"default": "./build/core/index.js"
},
"./operators": {
"types": "./build/operators/index.d.ts",
"import": "./build/operators/index.js",
"default": "./build/operators/index.js"
},
"./operators/comparison": {
"types": "./build/operators/comparison/index.d.ts",
"import": "./build/operators/comparison/index.js",
"default": "./build/operators/comparison/index.js"
},
"./operators/array": {
"types": "./build/operators/array/index.d.ts",
"import": "./build/operators/array/index.js",
"default": "./build/operators/array/index.js"
},
"./operators/string": {
"types": "./build/operators/string/index.d.ts",
"import": "./build/operators/string/index.js",
"default": "./build/operators/string/index.js"
},
"./operators/logical": {
"types": "./build/operators/logical/index.d.ts",
"import": "./build/operators/logical/index.js",
"default": "./build/operators/logical/index.js"
},
"./operators/geospatial": {
"types": "./build/operators/geospatial/index.d.ts",
"import": "./build/operators/geospatial/index.js",
"default": "./build/operators/geospatial/index.js"
},
"./operators/datetime": {
"types": "./build/operators/datetime/index.d.ts",
"import": "./build/operators/datetime/index.js",
"default": "./build/operators/datetime/index.js"
},
"./react": {
"types": "./build/integrations/react/index.d.ts",
"import": "./build/integrations/react/index.js",
"default": "./build/integrations/react/index.js"
},
"./vue": {
"types": "./build/integrations/vue/index.d.ts",
"import": "./build/integrations/vue/index.js",
"default": "./build/integrations/vue/index.js"
},
"./svelte": {
"types": "./build/integrations/svelte/index.d.ts",
"import": "./build/integrations/svelte/index.js",
"default": "./build/integrations/svelte/index.js"
},
"./angular": {
"types": "./build/integrations/angular/index.d.ts",
"import": "./build/integrations/angular/index.js",
"default": "./build/integrations/angular/index.js"
},
"./solidjs": {
"types": "./build/integrations/solidjs/index.d.ts",
"import": "./build/integrations/solidjs/index.js",
"default": "./build/integrations/solidjs/index.js"
},
"./preact": {
"types": "./build/integrations/preact/index.d.ts",
"import": "./build/integrations/preact/index.js",
"default": "./build/integrations/preact/index.js"
},
"./lazy": {
"types": "./build/core/lazy/index.d.ts",
"import": "./build/core/lazy/index.js",
"default": "./build/core/lazy/index.js"
},
"./debug": {
"types": "./build/debug/index.d.ts",
"import": "./build/debug/index.js",
"default": "./build/debug/index.js"
},
"./config": {
"types": "./build/config/index.d.ts",
"import": "./build/config/index.js",
"default": "./build/config/index.js"
},
"./validation": {
"types": "./build/validation/index.d.ts",
"import": "./build/validation/index.js",
"default": "./build/validation/index.js"
},
"./package.json": "./package.json"
},
"files": [
"build/**/*.js",
"build/**/*.d.ts",
"README.md",
"LICENSE.md"
],
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
},
"scripts": {
"prebuild": "rm -rf build",
"build": "tsc && tsx scripts/optimize-build.ts",
"postbuild": "pnpm run size",
"test": "vitest run",
"test:watch": "vitest",
"test:ui": "vitest --ui",
"test:coverage": "vitest run --coverage",
"test:types": "tsd --files '__test__/test-d/**/*.test-d.ts'",
"test:docs": "vitest run --config vitest.docs.config.ts",
"test:docs:watch": "vitest --config vitest.docs.config.ts",
"test:docs:ui": "vitest --ui --config vitest.docs.config.ts",
"lint": "eslint src/**/*.ts",
"lint:fix": "eslint src/**/*.ts --fix",
"format": "prettier --write \"src/**/*.ts\"",
"typecheck": "tsc --noEmit",
"size": "size-limit",
"size:why": "size-limit --why",
"analyze": "pnpm run size:why",
"check": "pnpm exec lint-staged && pnpm run test && pnpm run test:types && pnpm run typecheck && pnpm run lint && pnpm run test:docs",
"prepublish": "pnpm run check",
"version": "pnpm run format && git add -A src",
"publish:major": "pnpm run check && pnpm version major && pnpm publish",
"publish:minor": "pnpm run check && pnpm version minor && pnpm publish",
"publish:patch": "pnpm run check && pnpm version patch && pnpm publish",
"release": "git push origin --tags",
"release:major": "pnpm run publish:major && pnpm run release",
"release:minor": "pnpm run publish:minor && pnpm run release",
"release:patch": "pnpm run publish:patch && pnpm run release",
"doctoc": "doctoc --title='## Table of Contents' --github README.md",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs",
"docs:api": "typedoc"
}
}