{"library":"scim-query-filter-parser","title":"SCIM Query Filter & Sorter Parser","description":"This library, `scim-query-filter-parser`, provides a robust parser and compiler for the System for Cross-Domain Identity Management (SCIM) Protocol 2.0. Specifically, it enables the processing of SCIM filtering (RFC 7644, section 3.4.2.2) and sorting (RFC 7644, section 3.4.2.3) expressions. It takes a SCIM filter or sort string as input and compiles it into a standard JavaScript function that can be used directly with array `filter` or `sort` methods, respectively. The current stable version is 2.0.4. While a specific release cadence isn't explicitly stated, the project appears actively maintained given its versioning and clear use case. A key differentiator is its direct implementation of RFC 7644 standards, originally built for `AuthX`, offering a specialized solution for SCIM-compliant identity management systems.","language":"javascript","status":"active","last_verified":"Tue Apr 21","install":{"commands":["npm install scim-query-filter-parser"],"cli":null},"imports":["import { compileFilter } from 'scim-query-filter-parser';","import { compileSorter } from 'scim-query-filter-parser';","import type { ScimFilterFunction, ScimSorterFunction } from 'scim-query-filter-parser';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { compileFilter, compileSorter } from \"scim-query-filter-parser\";\n\nconst users = [\n  { id: 'u1', userName: 'alice', active: true, 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber': 'EMP001' },\n  { id: 'u2', userName: 'bob', active: false, 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber': 'EMP002' },\n  { id: 'u3', userName: 'charlie', active: true, 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber': 'EMP003' }\n];\n\n// Example 1: Filtering users where userName equals 'alice'\nconst aliceFilter = compileFilter('userName eq \"alice\"');\nconst filteredUsers = users.filter(aliceFilter);\nconsole.log('Filtered for Alice:', filteredUsers);\n\n// Example 2: Filtering active users with an employee number greater than 'EMP001'\nconst complexFilter = compileFilter('active eq true and urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber gt \"EMP001\"');\nconst complexFilteredUsers = users.filter(complexFilter);\nconsole.log('Complex filter results:', complexFilteredUsers);\n\n// Example 3: Sorting users by userName in ascending order\nconst userNameSorter = compileSorter('userName asc');\nconst sortedUsers = [...users].sort(userNameSorter);\nconsole.log('Sorted by Username:', sortedUsers);","lang":"typescript","description":"Demonstrates how to import `compileFilter` and `compileSorter` and use them to filter and sort an array of objects based on SCIM query strings, including complex filters and extended attributes.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}