@celigo/api-specs 0.2.170 → 0.2.172

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -615,15 +615,30 @@ components:
615
615
  - `"lessthan"`: Value is less than specified value (is less than)
616
616
  - `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
617
617
  - `"startswith"`: String starts with specified prefix (starts with)
618
+ - `"notstartswith"`: String does not start with specified prefix (does not start with)
618
619
  - `"endswith"`: String ends with specified suffix (ends with)
620
+ - `"notendswith"`: String does not end with specified suffix (does not end with)
619
621
  - `"contains"`: String contains specified substring (contains)
620
622
  - `"doesnotcontain"`: String does not contain specified substring (does not contain)
621
623
  - `"empty"`: Field is missing or empty (is empty)
622
624
  - `"notempty"`: Field contains a value (is not empty)
623
- - `"matches"`: Matches a regular expression (matches)
624
-
625
- `isempty`, `isnotempty` and `anyof` are not operators: they are refused with 422
626
- "Invalid operation: <name>".
625
+ - `"matches"`: Matches a regular expression, ignoring case (matches)
626
+
627
+ Operator names are case-insensitive: `NOTEMPTY` and `endsWith` work and are stored
628
+ as sent. `isempty`, `isnotempty`, `anyof`, `notcontains`, `doesnotstartwith`,
629
+ `doesnotendwith`, `notmatches`, `doesnotmatch` and `notequal` are not operators:
630
+ they are refused with 422 "Invalid operation: <name>", with the name in lowercase,
631
+ both when the filter is saved and by `POST /v1/processors/filter`. To negate a
632
+ condition, wrap it in `not`.
633
+
634
+ The string comparisons (`equals`, `contains`, `startswith`, `endswith` and their
635
+ negations) are case-sensitive; wrap the field in `lowercase` to compare without case.
636
+ `matches` is not: every pattern is compiled with the flags `gi`, so `^paid$` also
637
+ matches `PAID` and `[a-z]` matches capital letters. An inline flag such as `(?i)`
638
+ makes the pattern invalid. The filter still saves, but in a run every record fails
639
+ with `FILTER_EVALUATION_FAILED` ("Invalid regular expression: /(?i)…/gi: Invalid
640
+ group"), and `POST /v1/processors/filter` refuses the call with 422 (live-verified
641
+ 2026-10-22).
627
642
 
628
643
  **Logical Operators**
629
644
  - `"and"`: All conditions must be true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.170",
3
+ "version": "0.2.172",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [