@expo/entity-database-adapter-knex 0.57.0 → 0.58.0

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.
@@ -55,8 +55,7 @@ export interface EntityLoaderQuerySelectionModifiers<TFields extends Record<stri
55
55
  export type EntityLoaderFieldNameConstructorFn<TFields extends Record<string, any>, TSelectedFields extends keyof TFields = keyof TFields> = (fieldName: TSelectedFields) => SQLFragment<TFields>;
56
56
  /**
57
57
  * Specification for a search field that is a manually constructed SQLFragment. Useful for complex search fields that require
58
- * transformations or combinations of multiple fields, such as `COALESCE(NULLIF(display_name, ''), split_part(full_name, '/', 2))`
59
- * to search by display name with fallback to full name.
58
+ * transformations to make nullable fields non-null or to make combinations of multiple fields.
60
59
  */
61
60
  export type EntityLoaderSearchFieldSQLFragmentFnSpecification<TFields extends Record<string, any>, TSelectedFields extends keyof TFields = keyof TFields> = {
62
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationResultBasedKnexEntityLoader.js","sourceRoot":"","sources":["../../src/AuthorizationResultBasedKnexEntityLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthorizationResultBasedKnexEntityLoader.js","sourceRoot":"","sources":["../../src/AuthorizationResultBasedKnexEntityLoader.ts"],"names":[],"mappings":"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"}
@@ -87,10 +87,11 @@ class PostgresEntityDatabaseAdapter extends BasePostgresEntityDatabaseAdapter_1.
87
87
  ret = ret.orderBy(orderBySpecification.columnName, orderBySpecification.order, orderBySpecification.nulls);
88
88
  }
89
89
  else {
90
+ const orderDirection = orderBySpecification.order === BasePostgresEntityDatabaseAdapter_1.OrderByOrdering.ASCENDING ? 'ASC' : 'DESC';
90
91
  const nullsSuffix = orderBySpecification.nulls
91
92
  ? ` NULLS ${orderBySpecification.nulls === BasePostgresEntityDatabaseAdapter_1.NullsOrdering.FIRST ? 'FIRST' : 'LAST'}`
92
93
  : '';
93
- ret = ret.orderByRaw(`(${orderBySpecification.columnFragment.sql}) ${orderBySpecification.order}${nullsSuffix}`, orderBySpecification.columnFragment.getKnexBindings((fieldName) => (0, entity_1.getDatabaseFieldForEntityField)(this.entityConfiguration, fieldName)));
94
+ ret = ret.orderByRaw(`(${orderBySpecification.columnFragment.sql}) ${orderDirection}${nullsSuffix}`, orderBySpecification.columnFragment.getKnexBindings((fieldName) => (0, entity_1.getDatabaseFieldForEntityField)(this.entityConfiguration, fieldName)));
94
95
  }
95
96
  }
96
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresEntityDatabaseAdapter.js","sourceRoot":"","sources":["../../src/PostgresEntityDatabaseAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresEntityDatabaseAdapter.js","sourceRoot":"","sources":["../../src/PostgresEntityDatabaseAdapter.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export declare class SQLFragment<TFields extends Record<string, any>> {
31
31
  *
32
32
  * @param getColumnForField - function that resolves an entity field name to its database column name
33
33
  */
34
- getKnexBindings(getColumnForField: (fieldName: keyof TFields) => string): readonly (string | SupportedSQLValue)[];
34
+ getKnexBindings(getColumnForField: (fieldName: keyof TFields) => string): readonly SupportedSQLValue[];
35
35
  /**
36
36
  * Combine SQL fragments
37
37
  */
@@ -139,6 +139,12 @@ export declare function sql<TFields extends Record<string, any>>(strings: Templa
139
139
  type PickSupportedSQLValueKeys<T> = {
140
140
  [K in keyof T]: T[K] extends SupportedSQLValue ? K : never;
141
141
  }[keyof T];
142
+ type PickStringValueKeys<T> = {
143
+ [K in keyof T]: T[K] extends string | null | undefined ? K : never;
144
+ }[keyof T];
145
+ type JsonSerializable = string | number | boolean | null | undefined | readonly JsonSerializable[] | {
146
+ readonly [key: string]: JsonSerializable;
147
+ };
142
148
  /**
143
149
  * Common SQL helper functions for building queries
144
150
  */
@@ -180,19 +186,19 @@ export declare const SQLFragmentHelpers: {
180
186
  * // Generates: ?? LIKE ? with entityField binding for 'name' and value binding
181
187
  * ```
182
188
  */
183
- like<TFields extends Record<string, any>>(fieldName: keyof TFields, pattern: string): SQLFragment<TFields>;
189
+ like<TFields extends Record<string, any>>(fieldName: PickStringValueKeys<TFields>, pattern: string): SQLFragment<TFields>;
184
190
  /**
185
191
  * NOT LIKE helper
186
192
  */
187
- notLike<TFields extends Record<string, any>>(fieldName: keyof TFields, pattern: string): SQLFragment<TFields>;
193
+ notLike<TFields extends Record<string, any>>(fieldName: PickStringValueKeys<TFields>, pattern: string): SQLFragment<TFields>;
188
194
  /**
189
195
  * ILIKE helper for case-insensitive matching
190
196
  */
191
- ilike<TFields extends Record<string, any>>(fieldName: keyof TFields, pattern: string): SQLFragment<TFields>;
197
+ ilike<TFields extends Record<string, any>>(fieldName: PickStringValueKeys<TFields>, pattern: string): SQLFragment<TFields>;
192
198
  /**
193
199
  * NOT ILIKE helper for case-insensitive non-matching
194
200
  */
195
- notIlike<TFields extends Record<string, any>>(fieldName: keyof TFields, pattern: string): SQLFragment<TFields>;
201
+ notIlike<TFields extends Record<string, any>>(fieldName: PickStringValueKeys<TFields>, pattern: string): SQLFragment<TFields>;
196
202
  /**
197
203
  * NULL check helper
198
204
  */
@@ -228,11 +234,11 @@ export declare const SQLFragmentHelpers: {
228
234
  /**
229
235
  * JSON contains operator (\@\>)
230
236
  */
231
- jsonContains<TFields extends Record<string, any>>(fieldName: keyof TFields, value: unknown): SQLFragment<TFields>;
237
+ jsonContains<TFields extends Record<string, any>>(fieldName: keyof TFields, value: JsonSerializable): SQLFragment<TFields>;
232
238
  /**
233
239
  * JSON contained by operator (\<\@\)
234
240
  */
235
- jsonContainedBy<TFields extends Record<string, any>>(fieldName: keyof TFields, value: unknown): SQLFragment<TFields>;
241
+ jsonContainedBy<TFields extends Record<string, any>>(fieldName: keyof TFields, value: JsonSerializable): SQLFragment<TFields>;
236
242
  /**
237
243
  * JSON path extraction helper (-\>)
238
244
  */
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.SQLFragmentHelpers = exports.SQLUnsafeRaw = exports.SQLEntityField = exports.SQLIdentifier = exports.SQLFragment = void 0;
4
7
  exports.identifier = identifier;
5
8
  exports.entityField = entityField;
6
9
  exports.unsafeRaw = unsafeRaw;
7
10
  exports.sql = sql;
11
+ const assert_1 = __importDefault(require("assert"));
8
12
  /**
9
13
  * SQL Fragment class that safely handles parameterized queries.
10
14
  */
@@ -406,13 +410,19 @@ exports.SQLFragmentHelpers = {
406
410
  * JSON contains operator (\@\>)
407
411
  */
408
412
  jsonContains(fieldName, value) {
409
- return sql `${entityField(fieldName)} @> ${JSON.stringify(value)}::jsonb`;
413
+ const serialized = JSON.stringify(value);
414
+ // JSON.stringify returns undefined for unsupported types, but we also want to allow undefined as a value
415
+ (0, assert_1.default)(serialized !== undefined || value === undefined, 'jsonContains: value is not JSON-serializable');
416
+ return sql `${entityField(fieldName)} @> ${serialized}::jsonb`;
410
417
  },
411
418
  /**
412
419
  * JSON contained by operator (\<\@\)
413
420
  */
414
421
  jsonContainedBy(fieldName, value) {
415
- return sql `${entityField(fieldName)} <@ ${JSON.stringify(value)}::jsonb`;
422
+ const serialized = JSON.stringify(value);
423
+ // JSON.stringify returns undefined for unsupported types, but we also want to allow undefined as a value
424
+ (0, assert_1.default)(serialized !== undefined || value === undefined, 'jsonContainedBy: value is not JSON-serializable');
425
+ return sql `${entityField(fieldName)} <@ ${serialized}::jsonb`;
416
426
  },
417
427
  /**
418
428
  * JSON path extraction helper (-\>)
@@ -1 +1 @@
1
- {"version":3,"file":"SQLOperator.js","sourceRoot":"","sources":["../../src/SQLOperator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLOperator.js","sourceRoot":"","sources":["../../src/SQLOperator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/entity-database-adapter-knex",
3
- "version": "0.57.0",
3
+ "version": "0.58.0",
4
4
  "description": "Knex database adapter for @expo/entity",
5
5
  "files": [
6
6
  "build",
@@ -28,15 +28,15 @@
28
28
  "author": "Expo",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@expo/entity": "^0.57.0",
31
+ "@expo/entity": "^0.58.0",
32
32
  "knex": "^3.1.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@expo/entity-testing-utils": "^0.57.0",
35
+ "@expo/entity-testing-utils": "^0.58.0",
36
36
  "@jest/globals": "30.2.0",
37
- "pg": "8.18.0",
37
+ "pg": "8.19.0",
38
38
  "ts-mockito": "2.6.1",
39
39
  "typescript": "5.9.3"
40
40
  },
41
- "gitHead": "e876cfb27bb9b0004d81b40c9067481e3e0c2beb"
41
+ "gitHead": "7dab49a36dafae2adba126ba6084512abab1afe1"
42
42
  }
@@ -95,8 +95,7 @@ export type EntityLoaderFieldNameConstructorFn<
95
95
 
96
96
  /**
97
97
  * Specification for a search field that is a manually constructed SQLFragment. Useful for complex search fields that require
98
- * transformations or combinations of multiple fields, such as `COALESCE(NULLIF(display_name, ''), split_part(full_name, '/', 2))`
99
- * to search by display name with fallback to full name.
98
+ * transformations to make nullable fields non-null or to make combinations of multiple fields.
100
99
  */
101
100
  export type EntityLoaderSearchFieldSQLFragmentFnSpecification<
102
101
  TFields extends Record<string, any>,
@@ -9,6 +9,7 @@ import { Knex } from 'knex';
9
9
  import {
10
10
  BasePostgresEntityDatabaseAdapter,
11
11
  NullsOrdering,
12
+ OrderByOrdering,
12
13
  TableFieldMultiValueEqualityCondition,
13
14
  TableFieldSingleValueEqualityCondition,
14
15
  TableQuerySelectionModifiers,
@@ -139,11 +140,13 @@ export class PostgresEntityDatabaseAdapter<
139
140
  orderBySpecification.nulls,
140
141
  );
141
142
  } else {
143
+ const orderDirection =
144
+ orderBySpecification.order === OrderByOrdering.ASCENDING ? 'ASC' : 'DESC';
142
145
  const nullsSuffix = orderBySpecification.nulls
143
146
  ? ` NULLS ${orderBySpecification.nulls === NullsOrdering.FIRST ? 'FIRST' : 'LAST'}`
144
147
  : '';
145
148
  ret = ret.orderByRaw(
146
- `(${orderBySpecification.columnFragment.sql}) ${orderBySpecification.order}${nullsSuffix}`,
149
+ `(${orderBySpecification.columnFragment.sql}) ${orderDirection}${nullsSuffix}`,
147
150
  orderBySpecification.columnFragment.getKnexBindings((fieldName) =>
148
151
  getDatabaseFieldForEntityField(this.entityConfiguration, fieldName),
149
152
  ),
@@ -1,3 +1,5 @@
1
+ import assert from 'assert';
2
+
1
3
  /**
2
4
  * Supported SQL value types that can be safely parameterized.
3
5
  * This ensures type safety and prevents passing unsupported types to SQL queries.
@@ -39,7 +41,7 @@ export class SQLFragment<TFields extends Record<string, any>> {
39
41
  */
40
42
  getKnexBindings(
41
43
  getColumnForField: (fieldName: keyof TFields) => string,
42
- ): readonly (string | SupportedSQLValue)[] {
44
+ ): readonly SupportedSQLValue[] {
43
45
  return this.bindings.map((b) => {
44
46
  switch (b.type) {
45
47
  case 'entityField':
@@ -312,6 +314,19 @@ type PickSupportedSQLValueKeys<T> = {
312
314
  [K in keyof T]: T[K] extends SupportedSQLValue ? K : never;
313
315
  }[keyof T];
314
316
 
317
+ type PickStringValueKeys<T> = {
318
+ [K in keyof T]: T[K] extends string | null | undefined ? K : never;
319
+ }[keyof T];
320
+
321
+ type JsonSerializable =
322
+ | string
323
+ | number
324
+ | boolean
325
+ | null
326
+ | undefined
327
+ | readonly JsonSerializable[]
328
+ | { readonly [key: string]: JsonSerializable };
329
+
315
330
  /**
316
331
  * Common SQL helper functions for building queries
317
332
  */
@@ -388,7 +403,7 @@ export const SQLFragmentHelpers = {
388
403
  * ```
389
404
  */
390
405
  like<TFields extends Record<string, any>>(
391
- fieldName: keyof TFields,
406
+ fieldName: PickStringValueKeys<TFields>,
392
407
  pattern: string,
393
408
  ): SQLFragment<TFields> {
394
409
  return sql`${entityField(fieldName)} LIKE ${pattern}`;
@@ -398,7 +413,7 @@ export const SQLFragmentHelpers = {
398
413
  * NOT LIKE helper
399
414
  */
400
415
  notLike<TFields extends Record<string, any>>(
401
- fieldName: keyof TFields,
416
+ fieldName: PickStringValueKeys<TFields>,
402
417
  pattern: string,
403
418
  ): SQLFragment<TFields> {
404
419
  return sql`${entityField(fieldName)} NOT LIKE ${pattern}`;
@@ -408,7 +423,7 @@ export const SQLFragmentHelpers = {
408
423
  * ILIKE helper for case-insensitive matching
409
424
  */
410
425
  ilike<TFields extends Record<string, any>>(
411
- fieldName: keyof TFields,
426
+ fieldName: PickStringValueKeys<TFields>,
412
427
  pattern: string,
413
428
  ): SQLFragment<TFields> {
414
429
  return sql`${entityField(fieldName)} ILIKE ${pattern}`;
@@ -418,7 +433,7 @@ export const SQLFragmentHelpers = {
418
433
  * NOT ILIKE helper for case-insensitive non-matching
419
434
  */
420
435
  notIlike<TFields extends Record<string, any>>(
421
- fieldName: keyof TFields,
436
+ fieldName: PickStringValueKeys<TFields>,
422
437
  pattern: string,
423
438
  ): SQLFragment<TFields> {
424
439
  return sql`${entityField(fieldName)} NOT ILIKE ${pattern}`;
@@ -509,9 +524,15 @@ export const SQLFragmentHelpers = {
509
524
  */
510
525
  jsonContains<TFields extends Record<string, any>>(
511
526
  fieldName: keyof TFields,
512
- value: unknown,
527
+ value: JsonSerializable,
513
528
  ): SQLFragment<TFields> {
514
- return sql`${entityField(fieldName)} @> ${JSON.stringify(value)}::jsonb`;
529
+ const serialized = JSON.stringify(value);
530
+ // JSON.stringify returns undefined for unsupported types, but we also want to allow undefined as a value
531
+ assert(
532
+ serialized !== undefined || value === undefined,
533
+ 'jsonContains: value is not JSON-serializable',
534
+ );
535
+ return sql`${entityField(fieldName)} @> ${serialized}::jsonb`;
515
536
  },
516
537
 
517
538
  /**
@@ -519,9 +540,15 @@ export const SQLFragmentHelpers = {
519
540
  */
520
541
  jsonContainedBy<TFields extends Record<string, any>>(
521
542
  fieldName: keyof TFields,
522
- value: unknown,
543
+ value: JsonSerializable,
523
544
  ): SQLFragment<TFields> {
524
- return sql`${entityField(fieldName)} <@ ${JSON.stringify(value)}::jsonb`;
545
+ const serialized = JSON.stringify(value);
546
+ // JSON.stringify returns undefined for unsupported types, but we also want to allow undefined as a value
547
+ assert(
548
+ serialized !== undefined || value === undefined,
549
+ 'jsonContainedBy: value is not JSON-serializable',
550
+ );
551
+ return sql`${entityField(fieldName)} <@ ${serialized}::jsonb`;
525
552
  },
526
553
 
527
554
  /**
@@ -3668,9 +3668,9 @@ describe('postgres entity integration', () => {
3668
3668
  }
3669
3669
 
3670
3670
  const paginationSpec: PaginationSpecification<PostgresTestEntityFields> = {
3671
- strategy: PaginationStrategy.TRIGRAM_SEARCH as const,
3671
+ strategy: PaginationStrategy.TRIGRAM_SEARCH,
3672
3672
  term: 'Johnson',
3673
- fields: ['label' as const],
3673
+ fields: ['label'],
3674
3674
  threshold: 0.2,
3675
3675
  extraOrderByFields: [
3676
3676
  {
@@ -692,6 +692,26 @@ describe('SQLOperator', () => {
692
692
  '{"premium":true}',
693
693
  ]);
694
694
  });
695
+
696
+ it('generates JSON contains for null and undefined values', () => {
697
+ const fragmentNull = SQLFragmentHelpers.jsonContains('stringField', null);
698
+ const fragmentUndefined = SQLFragmentHelpers.jsonContains('stringField', undefined);
699
+
700
+ expect(fragmentNull.sql).toBe('?? @> ?::jsonb');
701
+ expect(fragmentNull.getKnexBindings(getColumnForField)).toEqual(['string_field', 'null']);
702
+
703
+ expect(fragmentUndefined.sql).toBe('?? @> ?::jsonb');
704
+ expect(fragmentUndefined.getKnexBindings(getColumnForField)).toEqual([
705
+ 'string_field',
706
+ undefined,
707
+ ]);
708
+ });
709
+
710
+ it('throws when value is not JSON-serializable', () => {
711
+ expect(() => SQLFragmentHelpers.jsonContains('stringField', (() => {}) as any)).toThrow(
712
+ 'jsonContains: value is not JSON-serializable',
713
+ );
714
+ });
695
715
  });
696
716
 
697
717
  describe(SQLFragmentHelpers.jsonContainedBy, () => {
@@ -707,6 +727,26 @@ describe('SQLOperator', () => {
707
727
  '{"theme":"dark","lang":"en"}',
708
728
  ]);
709
729
  });
730
+
731
+ it('generates JSON contained by for null and undefined values', () => {
732
+ const fragmentNull = SQLFragmentHelpers.jsonContainedBy('stringField', null);
733
+ const fragmentUndefined = SQLFragmentHelpers.jsonContainedBy('stringField', undefined);
734
+
735
+ expect(fragmentNull.sql).toBe('?? <@ ?::jsonb');
736
+ expect(fragmentNull.getKnexBindings(getColumnForField)).toEqual(['string_field', 'null']);
737
+
738
+ expect(fragmentUndefined.sql).toBe('?? <@ ?::jsonb');
739
+ expect(fragmentUndefined.getKnexBindings(getColumnForField)).toEqual([
740
+ 'string_field',
741
+ undefined,
742
+ ]);
743
+ });
744
+
745
+ it('throws when value is not JSON-serializable', () => {
746
+ expect(() => SQLFragmentHelpers.jsonContainedBy('stringField', (() => {}) as any)).toThrow(
747
+ 'jsonContainedBy: value is not JSON-serializable',
748
+ );
749
+ });
710
750
  });
711
751
 
712
752
  describe(SQLFragmentHelpers.jsonPath, () => {