@venizia/ignis-docs 0.2.1-0 → 0.2.1-1

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.
Files changed (145) hide show
  1. package/content/best-practices/architectural-patterns.md +3 -3
  2. package/content/best-practices/code-style-standards/naming-conventions.md +1 -1
  3. package/content/best-practices/contribution-workflow.md +2 -2
  4. package/content/best-practices/error-handling.md +94 -89
  5. package/content/best-practices/security-guidelines.md +5 -5
  6. package/content/extensions/components/api-reference.md +22 -21
  7. package/content/extensions/components/authentication/api.md +64 -28
  8. package/content/extensions/components/authentication/errors.md +19 -5
  9. package/content/extensions/components/authentication/index.md +19 -18
  10. package/content/extensions/components/authentication/usage.md +55 -30
  11. package/content/extensions/components/authorization/api.md +351 -84
  12. package/content/extensions/components/authorization/errors.md +51 -17
  13. package/content/extensions/components/authorization/getting-started.md +227 -0
  14. package/content/extensions/components/authorization/index.md +24 -16
  15. package/content/extensions/components/authorization/usage.md +45 -21
  16. package/content/extensions/components/health-check.md +15 -9
  17. package/content/extensions/components/index.md +24 -90
  18. package/content/extensions/components/mail/api.md +105 -54
  19. package/content/extensions/components/mail/errors.md +12 -10
  20. package/content/extensions/components/mail/index.md +32 -13
  21. package/content/extensions/components/mail/usage.md +26 -18
  22. package/content/extensions/components/request-tracker.md +18 -14
  23. package/content/extensions/components/socket-io/api.md +377 -882
  24. package/content/extensions/components/socket-io/errors.md +49 -51
  25. package/content/extensions/components/socket-io/index.md +72 -88
  26. package/content/extensions/components/socket-io/usage.md +107 -117
  27. package/content/extensions/components/static-asset/api.md +83 -31
  28. package/content/extensions/components/static-asset/errors.md +18 -7
  29. package/content/extensions/components/static-asset/index.md +18 -11
  30. package/content/extensions/components/static-asset/usage.md +11 -6
  31. package/content/extensions/components/template/index.md +3 -3
  32. package/content/extensions/components/websocket/api.md +58 -27
  33. package/content/extensions/components/websocket/errors.md +3 -3
  34. package/content/extensions/components/websocket/index.md +8 -7
  35. package/content/extensions/components/websocket/usage.md +21 -8
  36. package/content/extensions/helpers/cron/index.md +8 -7
  37. package/content/extensions/helpers/crypto/index.md +16 -8
  38. package/content/extensions/helpers/crypto/reference.md +96 -24
  39. package/content/extensions/helpers/env/index.md +14 -10
  40. package/content/extensions/helpers/error/index.md +99 -23
  41. package/content/extensions/helpers/index.md +61 -47
  42. package/content/extensions/helpers/inversion/index.md +23 -6
  43. package/content/extensions/helpers/inversion/reference.md +30 -22
  44. package/content/extensions/helpers/kafka/admin.md +3 -2
  45. package/content/extensions/helpers/kafka/compile-binary.md +69 -44
  46. package/content/extensions/helpers/kafka/consumer.md +24 -21
  47. package/content/extensions/helpers/kafka/examples.md +22 -234
  48. package/content/extensions/helpers/kafka/index.md +30 -62
  49. package/content/extensions/helpers/kafka/producer.md +31 -26
  50. package/content/extensions/helpers/kafka/schema-registry.md +19 -14
  51. package/content/extensions/helpers/logger/hf-logger.md +49 -22
  52. package/content/extensions/helpers/logger/index.md +37 -12
  53. package/content/extensions/helpers/logger/pino.md +31 -11
  54. package/content/extensions/helpers/logger/reference.md +243 -52
  55. package/content/extensions/helpers/network/api.md +65 -30
  56. package/content/extensions/helpers/network/index.md +32 -11
  57. package/content/extensions/helpers/queue/index.md +17 -6
  58. package/content/extensions/helpers/queue/reference.md +52 -25
  59. package/content/extensions/helpers/redis/index.md +29 -11
  60. package/content/extensions/helpers/redis/reference.md +85 -28
  61. package/content/extensions/helpers/secrets/index.md +82 -12
  62. package/content/extensions/helpers/socket-io/api.md +40 -21
  63. package/content/extensions/helpers/socket-io/index.md +26 -10
  64. package/content/extensions/helpers/storage/api.md +42 -24
  65. package/content/extensions/helpers/storage/index.md +10 -7
  66. package/content/extensions/helpers/types/index.md +20 -7
  67. package/content/extensions/helpers/types/reference.md +53 -14
  68. package/content/extensions/helpers/uid/index.md +166 -10
  69. package/content/extensions/helpers/websocket/api.md +52 -13
  70. package/content/extensions/helpers/websocket/index.md +7 -4
  71. package/content/extensions/helpers/worker-thread/index.md +9 -5
  72. package/content/extensions/helpers/worker-thread/reference.md +20 -20
  73. package/content/extensions/index.md +38 -39
  74. package/content/extensions/src-details/mcp-server.md +96 -548
  75. package/content/guides/core-concepts/persistent/datasources.md +2 -2
  76. package/content/guides/core-concepts/persistent/index.md +5 -1
  77. package/content/guides/core-concepts/persistent/pglite.md +218 -0
  78. package/content/guides/core-concepts/persistent/postgres-drivers.md +21 -15
  79. package/content/guides/core-concepts/persistent/search-meilisearch.md +22 -12
  80. package/content/guides/core-concepts/persistent/search-typesense.md +26 -14
  81. package/content/guides/core-concepts/persistent/sqlite.md +296 -0
  82. package/content/guides/core-concepts/persistent/transactions.md +12 -11
  83. package/content/guides/get-started/5-minute-quickstart.md +59 -206
  84. package/content/guides/get-started/philosophy.md +135 -670
  85. package/content/guides/get-started/setup.md +53 -74
  86. package/content/guides/migrations/redis-helpers-migration.md +4 -3
  87. package/content/guides/migrations/scoped-rbac-migration.md +5 -5
  88. package/content/guides/migrations/unified-connectors-migration.md +7 -6
  89. package/content/guides/tutorials/realtime-chat.md +1 -1
  90. package/content/references/base/application.md +63 -21
  91. package/content/references/base/components.md +3 -3
  92. package/content/references/base/connectors.md +14 -14
  93. package/content/references/base/controllers.md +12 -12
  94. package/content/references/base/datasources-reference.md +32 -31
  95. package/content/references/base/datasources.md +6 -6
  96. package/content/references/base/dependency-injection.md +12 -11
  97. package/content/references/base/filter-system/application-usage.md +54 -30
  98. package/content/references/base/filter-system/array-operators.md +24 -46
  99. package/content/references/base/filter-system/comparison-operators.md +47 -67
  100. package/content/references/base/filter-system/default-filter.md +59 -53
  101. package/content/references/base/filter-system/fields-order-pagination.md +92 -146
  102. package/content/references/base/filter-system/index.md +25 -13
  103. package/content/references/base/filter-system/json-filtering.md +45 -184
  104. package/content/references/base/filter-system/list-operators.md +23 -53
  105. package/content/references/base/filter-system/logical-operators.md +63 -121
  106. package/content/references/base/filter-system/null-operators.md +34 -104
  107. package/content/references/base/filter-system/pattern-matching.md +40 -55
  108. package/content/references/base/filter-system/quick-reference.md +86 -198
  109. package/content/references/base/filter-system/range-operators.md +18 -46
  110. package/content/references/base/filter-system/tips.md +6 -6
  111. package/content/references/base/filter-system/use-cases.md +33 -15
  112. package/content/references/base/grpc-controllers.md +53 -17
  113. package/content/references/base/index.md +5 -3
  114. package/content/references/base/middlewares.md +11 -10
  115. package/content/references/base/models-reference.md +17 -17
  116. package/content/references/base/models.md +4 -3
  117. package/content/references/base/providers.md +8 -8
  118. package/content/references/base/repositories/advanced.md +224 -326
  119. package/content/references/base/repositories/index.md +19 -6
  120. package/content/references/base/repositories/mixins.md +5 -5
  121. package/content/references/base/repositories/relations.md +160 -293
  122. package/content/references/base/repositories/soft-deletable.md +16 -6
  123. package/content/references/base/secrets.md +17 -13
  124. package/content/references/base/services.md +6 -4
  125. package/content/references/configuration/environment-variables.md +31 -23
  126. package/content/references/configuration/index.md +6 -4
  127. package/content/references/index.md +1 -1
  128. package/content/references/utilities/duration.md +85 -0
  129. package/content/references/utilities/index.md +5 -1
  130. package/content/references/utilities/jsx-reference.md +11 -11
  131. package/content/references/utilities/jsx.md +2 -2
  132. package/content/references/utilities/module.md +78 -25
  133. package/content/references/utilities/request.md +2 -1
  134. package/content/references/utilities/retry.md +139 -0
  135. package/content/references/utilities/schema.md +2 -2
  136. package/content/references/utilities/statuses-reference.md +4 -4
  137. package/content/references/utilities/statuses.md +5 -5
  138. package/dist/mcp-server/index.js +0 -0
  139. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +1 -1
  140. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts.map +1 -1
  141. package/dist/mcp-server/tools/github/list-project-files.tool.js +3 -3
  142. package/dist/mcp-server/tools/github/search-code.tool.js +1 -1
  143. package/dist/mcp-server/tools/github/verify-dependencies.tool.js +1 -1
  144. package/dist/mcp-server/tools/github/view-source-file.tool.js +1 -1
  145. package/package.json +17 -16
@@ -6,135 +6,65 @@ difficulty: intermediate
6
6
 
7
7
  # Null Check Operators
8
8
 
9
- Operators for checking null and non-null values.
9
+ Checks whether a field is `NULL` or has a value, without comparing to a specific value.
10
10
 
11
+ | Operator | SQL | Meaning |
12
+ |----------|-----|---------|
13
+ | `is` | `IS NULL` / `=` | Null check or equality |
14
+ | `isn` | `IS NOT NULL` / `!=` | Not-null check or inequality |
15
+ | `exists` | `IS NOT NULL` / `IS NULL` | Presence check |
16
+ | `notExists` | `IS NULL` / `IS NOT NULL` | Inverse presence check |
11
17
 
12
- ## Direct Null Assignment
13
-
14
- The simplest way to check for NULL:
15
-
16
- ```typescript
17
- // IS NULL (implicit)
18
- { where: { deletedAt: null } }
19
- // SQL: WHERE "deleted_at" IS NULL
20
- ```
21
-
22
-
23
- ## eq with Null
24
-
25
- ```typescript
26
- { where: { deletedAt: { eq: null } } }
27
- // SQL: WHERE "deleted_at" IS NULL
28
-
29
- { where: { status: { eq: 'active' } } }
30
- // SQL: WHERE "status" = 'active'
31
- ```
32
-
33
-
34
- ## ne / neq with Null
35
-
36
- ```typescript
37
- // IS NOT NULL
38
- { where: { deletedAt: { ne: null } } }
39
- { where: { deletedAt: { neq: null } } }
40
- // SQL: WHERE "deleted_at" IS NOT NULL
41
-
42
- // Not equal to value
43
- { where: { status: { ne: 'deleted' } } }
44
- // SQL: WHERE "status" != 'deleted'
45
- ```
46
-
47
-
48
- ## is - IS NULL / Equality
18
+ ## is
49
19
 
50
20
  ```typescript
51
- // NULL check
52
21
  { where: { deletedAt: { is: null } } }
53
22
  // SQL: WHERE "deleted_at" IS NULL
54
-
55
- // Value check (same as eq)
56
- { where: { status: { is: 'active' } } }
57
- // SQL: WHERE "status" = 'active'
58
23
  ```
59
24
 
25
+ **Notice:** `is` behaves exactly like `eq` - `is: null` compiles to `IS NULL`, `is: <value>` compiles to `=`.
26
+
27
+ **Edge cases:**
28
+ - The bare shorthand `{ deletedAt: null }` (no operator key) is identical to `{ deletedAt: { is: null } }`.
29
+ - `{ is: 'active' }` compiles to `"status" = 'active'`, the same as `eq`.
60
30
 
61
- ## isn - IS NOT NULL / Not Equality
31
+ ## isn
62
32
 
63
33
  ```typescript
64
- // NOT NULL check
65
34
  { where: { verifiedAt: { isn: null } } }
66
35
  // SQL: WHERE "verified_at" IS NOT NULL
67
-
68
- // Value check (same as ne)
69
- { where: { status: { isn: 'deleted' } } }
70
- // SQL: WHERE "status" != 'deleted'
71
36
  ```
72
37
 
38
+ **Notice:** `isn` behaves exactly like `ne`/`neq` - `isn: null` compiles to `IS NOT NULL`, `isn: <value>` compiles to `!=`.
73
39
 
74
- ## exists / notExists - Presence Check
40
+ **Edge cases:**
41
+ - Same three-valued-logic caveat as `ne`: `{ isn: value }` for a real `value` never matches a `NULL` row.
75
42
 
76
- `exists` and `notExists` are presence operators - they take a boolean rather than a value, and read more naturally than `is`/`isn` against `null`. They work on the PostgreSQL connector, and `exists` also works over JSON paths there.
43
+ ## exists
77
44
 
78
45
  ```typescript
79
- // Field is present (IS NOT NULL)
80
- { where: { deletedAt: { exists: false } } } // no deletedAt -> IS NULL
81
- { where: { verifiedAt: { exists: true } } } // has verifiedAt -> IS NOT NULL
82
-
83
- // notExists is the inverse
84
- { where: { verifiedAt: { notExists: true } } } // IS NULL
85
-
86
- // exists over a JSON path (PostgreSQL)
87
- { where: { 'metadata.score': { exists: true } } }
46
+ { where: { verifiedAt: { exists: true } } }
47
+ // SQL: WHERE "verified_at" IS NOT NULL
88
48
  ```
89
49
 
90
- | Syntax | SQL | Description |
91
- |--------|-----|-------------|
92
- | `{ field: { exists: true } }` | `IS NOT NULL` | Field is present |
93
- | `{ field: { exists: false } }` | `IS NULL` | Field is missing/null |
94
- | `{ field: { notExists: true } }` | `IS NULL` | Inverse of exists |
95
- | `{ field: { notExists: false } }` | `IS NOT NULL` | Inverse of exists |
96
-
97
-
98
- ## Null Check Summary
50
+ **Notice:** `exists` takes a boolean, not a value - `exists: false` compiles to `IS NULL`, anything else compiles to `IS NOT NULL`.
99
51
 
100
- | Syntax | SQL | Description |
101
- |--------|-----|-------------|
102
- | `{ field: null }` | `IS NULL` | Direct null check |
103
- | `{ field: { eq: null } }` | `IS NULL` | Explicit null equality |
104
- | `{ field: { is: null } }` | `IS NULL` | IS operator with null |
105
- | `{ field: { exists: false } }` | `IS NULL` | Presence check (false = missing) |
106
- | `{ field: { ne: null } }` | `IS NOT NULL` | Not-equal null check |
107
- | `{ field: { neq: null } }` | `IS NOT NULL` | Alias for ne with null |
108
- | `{ field: { isn: null } }` | `IS NOT NULL` | IS NOT operator with null |
109
- | `{ field: { exists: true } }` | `IS NOT NULL` | Presence check (true = present) |
52
+ **Edge cases:**
53
+ - Only the literal `false` selects the `IS NULL` branch.
54
+ - Any other operand, including `0` or a truthy string, selects `IS NOT NULL`.
55
+ - Also works over a JSON path key, for example `{ 'metadata.score': { exists: true } }`.
110
56
 
111
- All the IS NULL / IS NOT NULL syntaxes above are equivalent -- use whichever reads best in context.
112
-
113
- > [!NOTE]
114
- > `ne`/`neq` follow SQL three-valued logic: a row whose field is `NULL` never matches `{ field: { neq: value } }`. This is intentional (`NULL <> value` is UNKNOWN, not TRUE). Reach for `exists`/`notExists` or an explicit `{ field: null }` branch when you want NULL rows included.
115
-
116
-
117
- ## Common Patterns
118
-
119
- ### Soft Delete Pattern
57
+ ## notExists
120
58
 
121
59
  ```typescript
122
- // Find active records (not deleted)
123
- { where: { deletedAt: { is: null } } }
124
-
125
- // Find deleted records only
126
- { where: { deletedAt: { isn: null } } }
60
+ { where: { verifiedAt: { notExists: true } } }
61
+ // SQL: WHERE "verified_at" IS NULL
127
62
  ```
128
63
 
129
- ### Verified Users
130
-
131
- ```typescript
132
- // Find verified users
133
- { where: { emailVerifiedAt: { isn: null } } }
64
+ **Notice:** the inverse of `exists` - `notExists: false` compiles to `IS NOT NULL`, anything else compiles to `IS NULL`.
134
65
 
135
- // Find unverified users
136
- { where: { emailVerifiedAt: { is: null } } }
137
- ```
66
+ **Edge cases:**
67
+ - Same `false`-only branch rule as `exists`.
138
68
 
139
69
  ## See also
140
70
 
@@ -145,6 +75,6 @@ All the IS NULL / IS NOT NULL syntaxes above are equivalent -- use whichever rea
145
75
 
146
76
  **Files:**
147
77
 
148
- - [`packages/core/src/connectors/postgres/repositories/dialect/query.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core/src/connectors/postgres/repositories/dialect/query.ts) - `PostgresQueryOperators.FNS`, per-operator SQL builders
149
- - [`packages/core/src/connectors/postgres/repositories/dialect/filter.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core/src/connectors/postgres/repositories/dialect/filter.ts) - `FilterBuilder`, translates `TFilter` to Drizzle/SQL
150
- - [`packages/core/src/base/repositories/common/operators.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core/src/base/repositories/common/operators.ts) - `QueryOperators` constants
78
+ - [`packages/core-server/src/connectors/postgres/repositories/dialect/query.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/connectors/postgres/repositories/dialect/query.ts) - `PostgresQueryOperators.FNS`, per-operator SQL builders
79
+ - [`packages/core-server/src/connectors/relational/repositories/dialect/filter.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/connectors/relational/repositories/dialect/filter.ts) - `FilterBuilder`, translates `TFilter` to Drizzle/SQL
80
+ - [`packages/filter/src/common/operators.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/filter/src/common/operators.ts) - `QueryOperators` constants
@@ -6,106 +6,91 @@ difficulty: intermediate
6
6
 
7
7
  # Pattern Matching Operators
8
8
 
9
- Operators for string pattern matching and regular expressions.
9
+ Matches string fields against SQL `LIKE` patterns or POSIX regular expressions.
10
10
 
11
+ | Operator | SQL | Meaning |
12
+ |----------|-----|---------|
13
+ | `like` | `LIKE` | Case-sensitive pattern match |
14
+ | `nlike` | `NOT LIKE` | Negated case-sensitive pattern match |
15
+ | `ilike` | `ILIKE` | Case-insensitive pattern match (PostgreSQL-only) |
16
+ | `nilike` | `NOT ILIKE` | Negated case-insensitive pattern match (PostgreSQL-only) |
17
+ | `regexp` | `~` | Case-sensitive POSIX regex match |
18
+ | `iregexp` | `~*` | Case-insensitive POSIX regex match |
11
19
 
12
- ## like - Pattern Matching (Case-Sensitive)
13
-
14
- Matches strings using SQL LIKE patterns.
20
+ ## like
15
21
 
16
22
  ```typescript
17
- // Starts with
18
23
  { where: { email: { like: '%@gmail.com' } } }
19
24
  // SQL: WHERE "email" LIKE '%@gmail.com'
20
-
21
- // Contains
22
- { where: { name: { like: '%john%' } } }
23
- // SQL: WHERE "name" LIKE '%john%'
24
-
25
- // Ends with
26
- { where: { filename: { like: '%.pdf' } } }
27
- // SQL: WHERE "filename" LIKE '%.pdf'
28
-
29
- // Single character wildcard
30
- { where: { code: { like: 'A_B' } } } // Matches 'A1B', 'AXB', etc.
31
- // SQL: WHERE "code" LIKE 'A_B'
32
25
  ```
33
26
 
34
- **Pattern Characters:**
35
- - `%` - Matches any sequence of characters (including empty)
36
- - `_` - Matches exactly one character
27
+ **Notice:** `%` matches any sequence of characters (including none); `_` matches exactly one character.
37
28
 
29
+ **Edge cases:**
30
+ - A `null` operand compiles to `LIKE NULL`, which is never true - no rows match.
31
+ - Case sensitivity follows the column's collation; the default is case-sensitive.
38
32
 
39
- ## nlike - Not Like
33
+ ## nlike
40
34
 
41
35
  ```typescript
42
36
  { where: { email: { nlike: '%@test.com' } } }
43
37
  // SQL: WHERE "email" NOT LIKE '%@test.com'
44
38
  ```
45
39
 
40
+ **Notice:** `NOT LIKE` excludes rows where the column is `NULL`, the same as `NOT IN`.
46
41
 
47
- ## ilike - Case-Insensitive Pattern Matching
42
+ **Edge cases:**
43
+ - Same pattern-character rules as `like`.
48
44
 
49
- PostgreSQL-specific case-insensitive LIKE.
45
+ ## ilike
50
46
 
51
47
  ```typescript
52
48
  { where: { name: { ilike: '%john%' } } }
53
49
  // SQL: WHERE "name" ILIKE '%john%'
54
- // Matches: 'John', 'JOHN', 'john', 'JoHn'
55
-
56
- { where: { email: { ilike: '%@GMAIL.COM' } } }
57
- // Matches: 'user@gmail.com', 'USER@Gmail.Com'
58
50
  ```
59
51
 
52
+ **Notice:** matches `'John'`, `'JOHN'`, and `'john'` alike.
60
53
 
61
- ## nilike - Not ILike
54
+ **Edge cases:**
55
+ - `ILIKE` is a PostgreSQL extension, not standard SQL.
56
+ - Same pattern-character rules as `like`.
57
+
58
+ ## nilike
62
59
 
63
60
  ```typescript
64
61
  { where: { email: { nilike: '%@example%' } } }
65
62
  // SQL: WHERE NOT ("email" ILIKE '%@example%')
66
63
  ```
67
64
 
65
+ **Notice:** built as a negated `ILIKE`, not a dedicated SQL operator.
68
66
 
69
- ## regexp - Regular Expression (Case-Sensitive)
67
+ **Edge cases:**
68
+ - Same `NULL`-excludes-nothing behavior as `nlike`.
70
69
 
71
- PostgreSQL POSIX regex matching.
70
+ ## regexp
72
71
 
73
72
  ```typescript
74
- // Starts with letter
75
73
  { where: { code: { regexp: '^[A-Z]' } } }
76
74
  // SQL: WHERE "code" ~ '^[A-Z]'
77
-
78
- // Email pattern
79
- { where: { email: { regexp: '^[a-z]+@[a-z]+\\.[a-z]+$' } } }
80
- // SQL: WHERE "email" ~ '^[a-z]+@[a-z]+\.[a-z]+$'
81
-
82
- // Phone number pattern
83
- { where: { phone: { regexp: '^\\+?[0-9]{10,15}$' } } }
84
75
  ```
85
76
 
86
- > [!NOTE]
87
- > Escape backslashes in TypeScript strings: `\\d` for regex `\d`.
77
+ **Notice:** `~` is PostgreSQL's case-sensitive POSIX regex operator.
88
78
 
79
+ **Edge cases:**
80
+ - Escape backslashes in TypeScript strings: `\\d` for regex `\d`.
81
+ - No shape validation - any string operand is passed through as the pattern.
89
82
 
90
- ## iregexp - Case-Insensitive Regular Expression
83
+ ## iregexp
91
84
 
92
85
  ```typescript
93
86
  { where: { name: { iregexp: '^john' } } }
94
87
  // SQL: WHERE "name" ~* '^john'
95
- // Matches: 'John Doe', 'JOHN SMITH', 'john'
96
88
  ```
97
89
 
90
+ **Notice:** same as `regexp`, but case-insensitive (`~*`).
98
91
 
99
- ## Summary
100
-
101
- | Operator | SQL | Case | Description |
102
- |----------|-----|------|-------------|
103
- | `like` | `LIKE` | Sensitive | Pattern with wildcards |
104
- | `nlike` | `NOT LIKE` | Sensitive | Negative pattern |
105
- | `ilike` | `ILIKE` | Insensitive | PostgreSQL only |
106
- | `nilike` | `NOT ILIKE` | Insensitive | PostgreSQL only |
107
- | `regexp` | `~` | Sensitive | POSIX regex match |
108
- | `iregexp` | `~*` | Insensitive | POSIX regex match |
92
+ **Edge cases:**
93
+ - Matches `'John Doe'`, `'JOHN SMITH'`, and `'john'` alike.
109
94
 
110
95
  ## See also
111
96
 
@@ -115,6 +100,6 @@ PostgreSQL POSIX regex matching.
115
100
 
116
101
  **Files:**
117
102
 
118
- - [`packages/core/src/connectors/postgres/repositories/dialect/query.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core/src/connectors/postgres/repositories/dialect/query.ts) - `PostgresQueryOperators.FNS`, per-operator SQL builders
119
- - [`packages/core/src/connectors/postgres/repositories/dialect/filter.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core/src/connectors/postgres/repositories/dialect/filter.ts) - `FilterBuilder`, translates `TFilter` to Drizzle/SQL
120
- - [`packages/core/src/base/repositories/common/operators.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core/src/base/repositories/common/operators.ts) - `QueryOperators` constants
103
+ - [`packages/core-server/src/connectors/postgres/repositories/dialect/query.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/connectors/postgres/repositories/dialect/query.ts) - `PostgresQueryOperators.FNS`, per-operator SQL builders
104
+ - [`packages/core-server/src/connectors/relational/repositories/dialect/filter.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/connectors/relational/repositories/dialect/filter.ts) - `FilterBuilder`, translates `TFilter` to Drizzle/SQL
105
+ - [`packages/filter/src/common/operators.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/filter/src/common/operators.ts) - `QueryOperators` constants