UNPKG

@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
{ "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" } }