@peers-app/peers-sdk 0.14.0 → 0.15.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.
Files changed (210) hide show
  1. package/dist/context/data-context.d.ts +4 -4
  2. package/dist/context/data-context.js +1 -1
  3. package/dist/context/index.d.ts +3 -3
  4. package/dist/context/index.js +4 -0
  5. package/dist/context/user-context-singleton.js +13 -14
  6. package/dist/context/user-context.d.ts +4 -4
  7. package/dist/context/user-context.js +48 -31
  8. package/dist/data/assistants.d.ts +1 -1
  9. package/dist/data/assistants.js +35 -24
  10. package/dist/data/change-tracking.d.ts +8 -8
  11. package/dist/data/change-tracking.js +45 -39
  12. package/dist/data/channels.js +5 -5
  13. package/dist/data/data-locks.d.ts +2 -2
  14. package/dist/data/data-locks.js +21 -23
  15. package/dist/data/data-locks.test.js +73 -75
  16. package/dist/data/device-sync-info.d.ts +1 -1
  17. package/dist/data/device-sync-info.js +4 -4
  18. package/dist/data/devices.d.ts +1 -1
  19. package/dist/data/devices.js +9 -12
  20. package/dist/data/embeddings.js +14 -11
  21. package/dist/data/files/file-read-stream.d.ts +2 -2
  22. package/dist/data/files/file-read-stream.js +23 -14
  23. package/dist/data/files/file-write-stream.d.ts +2 -2
  24. package/dist/data/files/file-write-stream.js +8 -8
  25. package/dist/data/files/file.types.d.ts +2 -2
  26. package/dist/data/files/file.types.js +17 -11
  27. package/dist/data/files/files.d.ts +6 -6
  28. package/dist/data/files/files.js +17 -19
  29. package/dist/data/files/files.test.js +213 -214
  30. package/dist/data/files/index.d.ts +4 -4
  31. package/dist/data/files/index.js +4 -4
  32. package/dist/data/group-member-roles.js +2 -2
  33. package/dist/data/group-members.d.ts +5 -5
  34. package/dist/data/group-members.js +27 -18
  35. package/dist/data/group-members.test.js +73 -73
  36. package/dist/data/group-permissions.d.ts +3 -3
  37. package/dist/data/group-permissions.js +13 -11
  38. package/dist/data/group-share.d.ts +2 -2
  39. package/dist/data/group-share.js +29 -24
  40. package/dist/data/groups.d.ts +4 -4
  41. package/dist/data/groups.js +27 -19
  42. package/dist/data/groups.test.js +44 -44
  43. package/dist/data/index.d.ts +6 -6
  44. package/dist/data/index.js +6 -6
  45. package/dist/data/knowledge/peer-types.js +9 -9
  46. package/dist/data/messages.d.ts +5 -5
  47. package/dist/data/messages.js +43 -30
  48. package/dist/data/orm/client-proxy.data-source.d.ts +4 -4
  49. package/dist/data/orm/client-proxy.data-source.js +10 -12
  50. package/dist/data/orm/cursor.d.ts +1 -1
  51. package/dist/data/orm/cursor.js +2 -2
  52. package/dist/data/orm/cursor.test.js +92 -93
  53. package/dist/data/orm/data-query.d.ts +3 -3
  54. package/dist/data/orm/data-query.js +24 -18
  55. package/dist/data/orm/data-query.mongo.d.ts +1 -1
  56. package/dist/data/orm/data-query.mongo.js +49 -51
  57. package/dist/data/orm/data-query.mongo.test.js +173 -204
  58. package/dist/data/orm/data-query.sqlite.d.ts +1 -1
  59. package/dist/data/orm/data-query.sqlite.js +84 -73
  60. package/dist/data/orm/data-query.sqlite.test.js +164 -176
  61. package/dist/data/orm/data-query.test.js +216 -224
  62. package/dist/data/orm/decorators.js +3 -3
  63. package/dist/data/orm/dependency-injection.test.js +53 -56
  64. package/dist/data/orm/doc.d.ts +4 -4
  65. package/dist/data/orm/doc.js +17 -21
  66. package/dist/data/orm/event-registry.d.ts +1 -1
  67. package/dist/data/orm/event-registry.test.js +16 -16
  68. package/dist/data/orm/factory.d.ts +2 -2
  69. package/dist/data/orm/factory.js +33 -33
  70. package/dist/data/orm/index.d.ts +10 -10
  71. package/dist/data/orm/index.js +10 -10
  72. package/dist/data/orm/multi-cursors.d.ts +1 -1
  73. package/dist/data/orm/multi-cursors.js +6 -6
  74. package/dist/data/orm/multi-cursors.test.js +152 -144
  75. package/dist/data/orm/sql.data-source.d.ts +7 -7
  76. package/dist/data/orm/sql.data-source.js +88 -93
  77. package/dist/data/orm/sql.data-source.test.js +109 -101
  78. package/dist/data/orm/subscribable.data-source.d.ts +4 -4
  79. package/dist/data/orm/subscribable.data-source.js +5 -5
  80. package/dist/data/orm/table-container-events.test.js +34 -26
  81. package/dist/data/orm/table-container.d.ts +6 -6
  82. package/dist/data/orm/table-container.js +33 -21
  83. package/dist/data/orm/table-container.test.js +64 -53
  84. package/dist/data/orm/table-definitions.system.d.ts +3 -3
  85. package/dist/data/orm/table-definitions.system.js +3 -3
  86. package/dist/data/orm/table-definitions.type.d.ts +5 -5
  87. package/dist/data/orm/table-dependencies.d.ts +2 -2
  88. package/dist/data/orm/table.d.ts +5 -5
  89. package/dist/data/orm/table.event-source.test.js +105 -115
  90. package/dist/data/orm/table.js +35 -34
  91. package/dist/data/orm/types.d.ts +3 -3
  92. package/dist/data/orm/types.js +26 -25
  93. package/dist/data/orm/types.test.js +166 -92
  94. package/dist/data/package-permissions.d.ts +1 -1
  95. package/dist/data/package-permissions.js +2 -2
  96. package/dist/data/package-version-permissions.d.ts +1 -1
  97. package/dist/data/package-version-permissions.js +2 -2
  98. package/dist/data/package-versions.d.ts +9 -9
  99. package/dist/data/package-versions.js +47 -33
  100. package/dist/data/packages.d.ts +2 -2
  101. package/dist/data/packages.js +36 -18
  102. package/dist/data/packages.utils.d.ts +2 -2
  103. package/dist/data/packages.utils.js +4 -4
  104. package/dist/data/persistent-vars.d.ts +15 -15
  105. package/dist/data/persistent-vars.js +165 -154
  106. package/dist/data/table-definitions-table.d.ts +5 -5
  107. package/dist/data/table-definitions-table.js +13 -12
  108. package/dist/data/tool-tests.js +6 -6
  109. package/dist/data/tools.js +29 -19
  110. package/dist/data/user-permissions.d.ts +1 -1
  111. package/dist/data/user-permissions.js +5 -5
  112. package/dist/data/user-permissions.test.js +90 -88
  113. package/dist/data/user-trust-levels.js +10 -10
  114. package/dist/data/users.d.ts +4 -4
  115. package/dist/data/users.js +16 -15
  116. package/dist/data/voice-messages.d.ts +2 -2
  117. package/dist/data/voice-messages.js +13 -13
  118. package/dist/data/welcome-modal.pvar.js +3 -1
  119. package/dist/data/workflow-logs.js +26 -18
  120. package/dist/data/workflow-runs.d.ts +6 -6
  121. package/dist/data/workflow-runs.js +70 -44
  122. package/dist/data/workflows.d.ts +2 -2
  123. package/dist/data/workflows.js +7 -9
  124. package/dist/device/binary-peer-connection-v2.d.ts +7 -7
  125. package/dist/device/binary-peer-connection-v2.js +32 -28
  126. package/dist/device/binary-peer-connection-v2.test.js +80 -67
  127. package/dist/device/binary-peer-connection.d.ts +7 -7
  128. package/dist/device/binary-peer-connection.js +29 -28
  129. package/dist/device/binary-peer-connection.test.js +35 -31
  130. package/dist/device/connection.d.ts +5 -5
  131. package/dist/device/connection.js +59 -48
  132. package/dist/device/connection.test.js +74 -68
  133. package/dist/device/device-election.d.ts +2 -2
  134. package/dist/device/device-election.js +25 -20
  135. package/dist/device/device-election.test.js +35 -36
  136. package/dist/device/device.d.ts +2 -2
  137. package/dist/device/device.js +10 -4
  138. package/dist/device/device.test.js +16 -17
  139. package/dist/device/get-trust-level-fn.d.ts +2 -2
  140. package/dist/device/get-trust-level-fn.js +22 -11
  141. package/dist/device/get-trust-level-fn.test.js +58 -58
  142. package/dist/device/socket-io-binary-peer.d.ts +1 -1
  143. package/dist/device/socket-io-binary-peer.js +16 -13
  144. package/dist/device/socket.type.d.ts +2 -2
  145. package/dist/device/streamed-socket.d.ts +2 -2
  146. package/dist/device/streamed-socket.js +8 -8
  147. package/dist/device/streamed-socket.test.js +40 -40
  148. package/dist/device/tx-encoding.test.js +77 -77
  149. package/dist/events.d.ts +1 -1
  150. package/dist/events.js +5 -2
  151. package/dist/group-invite/group-invite.js +110 -19
  152. package/dist/group-invite/group-invite.pvars.d.ts +2 -2
  153. package/dist/group-invite/group-invite.pvars.js +21 -13
  154. package/dist/group-invite/group-invite.types.d.ts +1 -1
  155. package/dist/group-invite/index.d.ts +3 -3
  156. package/dist/group-invite/index.js +1 -1
  157. package/dist/index.d.ts +25 -24
  158. package/dist/index.js +30 -25
  159. package/dist/keys.d.ts +3 -3
  160. package/dist/keys.js +31 -30
  161. package/dist/keys.test.js +69 -61
  162. package/dist/logging/console-logger.d.ts +1 -1
  163. package/dist/logging/console-logger.js +35 -40
  164. package/dist/logging/console-logger.test.js +115 -115
  165. package/dist/logging/console-logs.table.d.ts +3 -3
  166. package/dist/logging/console-logs.table.js +28 -23
  167. package/dist/mentions.js +16 -12
  168. package/dist/observable.d.ts +2 -2
  169. package/dist/observable.js +15 -9
  170. package/dist/observable.test.js +47 -47
  171. package/dist/package-loader/get-require.js +3 -4
  172. package/dist/package-loader/package-loader.d.ts +2 -2
  173. package/dist/package-loader/package-loader.js +52 -34
  174. package/dist/peers-ui/peers-ui.d.ts +2 -2
  175. package/dist/peers-ui/peers-ui.js +2 -4
  176. package/dist/peers-ui/peers-ui.types.d.ts +3 -3
  177. package/dist/peers-ui/peers-ui.types.js +0 -1
  178. package/dist/rpc-types.d.ts +61 -59
  179. package/dist/rpc-types.js +61 -55
  180. package/dist/serial-json.d.ts +1 -1
  181. package/dist/serial-json.js +50 -43
  182. package/dist/serial-json.test.js +22 -22
  183. package/dist/system-ids.js +8 -8
  184. package/dist/tools/index.d.ts +1 -1
  185. package/dist/tools/tools-factory.d.ts +1 -1
  186. package/dist/tools/tools-factory.js +2 -2
  187. package/dist/types/assistant-runner-args.d.ts +3 -3
  188. package/dist/types/peer-device.d.ts +1 -1
  189. package/dist/types/peers-package.d.ts +3 -3
  190. package/dist/types/workflow-logger.d.ts +1 -1
  191. package/dist/types/workflow-run-context.d.ts +4 -4
  192. package/dist/types/workflow.d.ts +4 -4
  193. package/dist/types/workflow.js +27 -14
  194. package/dist/types/zod-types.d.ts +2 -1
  195. package/dist/types/zod-types.js +9 -3
  196. package/dist/user-connect/connection-code.d.ts +1 -1
  197. package/dist/user-connect/connection-code.js +7 -7
  198. package/dist/user-connect/connection-code.test.js +106 -106
  199. package/dist/user-connect/index.d.ts +3 -3
  200. package/dist/user-connect/index.js +1 -1
  201. package/dist/user-connect/user-connect.pvars.js +13 -11
  202. package/dist/user-connect/user-connect.types.d.ts +3 -3
  203. package/dist/users.query.d.ts +2 -2
  204. package/dist/users.query.js +40 -30
  205. package/dist/utils.d.ts +2 -2
  206. package/dist/utils.js +34 -32
  207. package/dist/utils.test.js +12 -8
  208. package/dist/workflow-log-formatter.d.ts +1 -1
  209. package/dist/workflow-log-formatter.js +17 -18
  210. package/package.json +14 -8
@@ -3,68 +3,62 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const data_query_1 = require("./data-query");
4
4
  const data_query_sqlite_1 = require("./data-query.sqlite");
5
5
  const factory_1 = require("./factory");
6
- describe('dataFilterToSqlWhere (SQLite)', () => {
6
+ describe("dataFilterToSqlWhere (SQLite)", () => {
7
7
  it('should return "1=1" when filter is empty', () => {
8
8
  const filter = {};
9
9
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
10
- expect(result).toBe('(1=1)');
10
+ expect(result).toBe("(1=1)");
11
11
  });
12
- it('should return correct SQL WHERE clause for single field filter', () => {
13
- const filter = { name: 'John' };
12
+ it("should return correct SQL WHERE clause for single field filter", () => {
13
+ const filter = { name: "John" };
14
14
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
15
15
  expect(result).toBe(`("name" = 'John')`);
16
16
  });
17
- it('should return correct SQL WHERE clause for multiple field filter', () => {
18
- const filter = { name: 'John', age: 30 };
17
+ it("should return correct SQL WHERE clause for multiple field filter", () => {
18
+ const filter = { name: "John", age: 30 };
19
19
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
20
20
  expect(result).toBe(`("name" = 'John' AND "age" = 30)`);
21
21
  });
22
- it('should return correct SQL WHERE clause for $in filter', () => {
23
- const filter = { name: { $in: ['John', 'Jane'] } };
22
+ it("should return correct SQL WHERE clause for $in filter", () => {
23
+ const filter = { name: { $in: ["John", "Jane"] } };
24
24
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
25
25
  expect(result).toBe(`("name" IN ('John', 'Jane'))`);
26
26
  });
27
- it('should handle null and undefined values correctly', () => {
27
+ it("should handle null and undefined values correctly", () => {
28
28
  const filter = { name: null, age: undefined };
29
29
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
30
30
  expect(result).toBe(`("name" IS NULL AND "age" IS NULL)`);
31
31
  });
32
- it('should escape single quotes in strings', () => {
32
+ it("should escape single quotes in strings", () => {
33
33
  const filter = { name: "John's" };
34
34
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
35
35
  expect(result).toBe(`("name" = 'John''s')`);
36
36
  });
37
- it('should escape multiple single quotes in strings', () => {
37
+ it("should escape multiple single quotes in strings", () => {
38
38
  const filter = { name: "It's John''s" };
39
39
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
40
40
  expect(result).toBe(`("name" = 'It''s John''''s')`);
41
41
  });
42
- it('should escape single quotes in strings when doing $matchText', () => {
42
+ it("should escape single quotes in strings when doing $matchText", () => {
43
43
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)({ name: { $matchWords: "It's John's" } });
44
44
  expect(result).toBe(`("name" LIKE '%It''s%' AND "name" LIKE '%John''s%')`);
45
45
  });
46
- it('should escape and preserver sequences of single quotes when doing $matchText', () => {
46
+ it("should escape and preserver sequences of single quotes when doing $matchText", () => {
47
47
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)({ name: { $matchWords: "It''s John''s" } });
48
48
  expect(result).toBe(`("name" LIKE '%It''''s%' AND "name" LIKE '%John''''s%')`);
49
49
  });
50
- it('should convert top level arrays into OR statements', () => {
51
- const filter = [
52
- { name: 'John' },
53
- { age: 32 },
54
- ];
50
+ it("should convert top level arrays into OR statements", () => {
51
+ const filter = [{ name: "John" }, { age: 32 }];
55
52
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
56
53
  expect(result).toBe(`(("name" = 'John') OR ("age" = 32))`);
57
54
  });
58
- it('should convert top level arrays into OR statements', () => {
59
- const filter = [
60
- { name: 'John' },
61
- { age: 32, airport: { $in: ['LAX', 'PSP'] } },
62
- ];
55
+ it("should convert top level arrays into OR statements", () => {
56
+ const filter = [{ name: "John" }, { age: 32, airport: { $in: ["LAX", "PSP"] } }];
63
57
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
64
58
  expect(result).toBe(`(("name" = 'John') OR ("age" = 32 AND "airport" IN ('LAX', 'PSP')))`);
65
59
  });
66
- it('should convert $nin to NOT IN', () => {
67
- const filter = { age: { $nin: [29, 'lol'] } };
60
+ it("should convert $nin to NOT IN", () => {
61
+ const filter = { age: { $nin: [29, "lol"] } };
68
62
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
69
63
  expect(result).toBe(`("age" NOT IN (29, 'lol'))`);
70
64
  });
@@ -73,7 +67,7 @@ describe('dataFilterToSqlWhere (SQLite)', () => {
73
67
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
74
68
  expect(result).toBe(`("age" >= 12)`);
75
69
  });
76
- it('should convert $gt to >', () => {
70
+ it("should convert $gt to >", () => {
77
71
  const filter = [{ age: { $gt: 12 } }];
78
72
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
79
73
  expect(result).toBe(`(("age" > 12))`);
@@ -83,217 +77,201 @@ describe('dataFilterToSqlWhere (SQLite)', () => {
83
77
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
84
78
  expect(result).toBe(`((("age" <> 12 OR "age" IS NULL)))`);
85
79
  });
86
- it('should escape single quotes for $ne', () => {
80
+ it("should escape single quotes for $ne", () => {
87
81
  const filter = [{ name: { $ne: "O'Hara" } }];
88
82
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
89
83
  expect(result).toBe(`((("name" <> 'O''Hara' OR "name" IS NULL)))`);
90
84
  });
91
- it('should escape sequences single quotes for $ne', () => {
85
+ it("should escape sequences single quotes for $ne", () => {
92
86
  const filter = [{ name: { $ne: "O''Hara" } }];
93
87
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
94
88
  expect(result).toBe(`((("name" <> 'O''''Hara' OR "name" IS NULL)))`);
95
89
  });
96
- it('should convert $exists to IS or IS NOT NULL', () => {
97
- const filter = [
98
- { age: { $exists: true } },
99
- { age: { $exists: false } },
100
- ];
90
+ it("should convert $exists to IS or IS NOT NULL", () => {
91
+ const filter = [{ age: { $exists: true } }, { age: { $exists: false } }];
101
92
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
102
93
  expect(result).toBe(`(("age" IS NOT NULL) OR ("age" IS NULL))`);
103
94
  });
104
- it('should convert $lt, $lte, $ne correctly', () => {
105
- const filter = [
106
- { age: { $lt: 10 } },
107
- { age: { $lte: 10 } },
108
- { age: { $ne: 10 } },
109
- ];
95
+ it("should convert $lt, $lte, $ne correctly", () => {
96
+ const filter = [{ age: { $lt: 10 } }, { age: { $lte: 10 } }, { age: { $ne: 10 } }];
110
97
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
111
98
  expect(result).toBe(`(("age" < 10) OR ("age" <= 10) OR (("age" <> 10 OR "age" IS NULL)))`);
112
99
  });
113
- it('should convert $matchWords to a LIKE for each word', () => {
114
- const filter = { name: { $matchWords: 'John Doe' } };
100
+ it("should convert $matchWords to a LIKE for each word", () => {
101
+ const filter = { name: { $matchWords: "John Doe" } };
115
102
  const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
116
103
  expect(result).toBe(`("name" LIKE '%John%' AND "name" LIKE '%Doe%')`);
117
104
  });
118
- it('should generate AND clause for $and directive', () => {
119
- let filter = { $and: [{ age: 32 }, { name: 'John' }] };
105
+ it("should generate AND clause for $and directive", () => {
106
+ let filter = { $and: [{ age: 32 }, { name: "John" }] };
120
107
  let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
121
108
  expect(result).toBe(`((("age" = 32) AND ("name" = 'John')))`);
122
109
  filter = {
123
- name: { $ne: 'John M. Doe' },
124
- $and: [
125
- { age: { $gte: 30 } },
126
- { age: { $lte: 32 } },
127
- { name: { $matchWords: 'John Doe' } }
128
- ]
110
+ name: { $ne: "John M. Doe" },
111
+ $and: [{ age: { $gte: 30 } }, { age: { $lte: 32 } }, { name: { $matchWords: "John Doe" } }],
129
112
  };
130
113
  result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
131
114
  expect(result).toBe(`(("name" <> 'John M. Doe' OR "name" IS NULL) AND (("age" >= 30) AND ("age" <= 32) AND ("name" LIKE '%John%' AND "name" LIKE '%Doe%')))`);
132
115
  });
133
- it('should allow indicating columns with $ prefix', () => {
134
- let filter = { id: { $gte: '$col1' } };
135
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
116
+ it("should allow indicating columns with $ prefix", () => {
117
+ const filter = { id: { $gte: "$col1" } };
118
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
136
119
  expect(result).toBe(`("id" >= "col1")`);
137
120
  });
138
- it('should allow escaping $prefix with backslash', () => {
139
- let filter = { id: { $gte: '\\$col1' } };
140
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
121
+ it("should allow escaping $prefix with backslash", () => {
122
+ const filter = { id: { $gte: "\\$col1" } };
123
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
141
124
  expect(result).toBe(`("id" >= '$col1')`);
142
125
  });
143
- it('should leave backslash prefix if not followed by $', () => {
144
- let filter = { id: { $gte: '\\col1' } };
145
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
126
+ it("should leave backslash prefix if not followed by $", () => {
127
+ const filter = { id: { $gte: "\\col1" } };
128
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
146
129
  expect(result).toBe(`("id" >= '\\col1')`);
147
130
  });
148
- it('should generate substr clause for $substr directive on right hand side', () => {
149
- let filter = { id: { $gte: { $substr: ['$col1', 2, 4] } } };
150
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
131
+ it("should generate substr clause for $substr directive on right hand side", () => {
132
+ const filter = { id: { $gte: { $substr: ["$col1", 2, 4] } } };
133
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
151
134
  expect(result).toBe(`("id" >= (substr("col1", 2, 4)))`);
152
135
  });
153
- it('should generate substr clauses for $substr directive on left hand side', () => {
154
- let filter = { $expr: [{ $substr: ['$id1', -1, 1] }, { $eq: 'a' }] };
155
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
136
+ it("should generate substr clauses for $substr directive on left hand side", () => {
137
+ const filter = { $expr: [{ $substr: ["$id1", -1, 1] }, { $eq: "a" }] };
138
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
156
139
  expect(result).toBe(`((substr("id1", -1, 1)) = 'a')`);
157
140
  });
158
- it('should generate substr clauses for $substr directive on left and right hand side', () => {
159
- let filter = { $expr: [{ $substr: ['$id1', -1, 1] }, { $gte: { $substr: ['$col1', 2, 4] } }] };
160
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
141
+ it("should generate substr clauses for $substr directive on left and right hand side", () => {
142
+ const filter = {
143
+ $expr: [{ $substr: ["$id1", -1, 1] }, { $gte: { $substr: ["$col1", 2, 4] } }],
144
+ };
145
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
161
146
  expect(result).toBe(`((substr("id1", -1, 1)) >= (substr("col1", 2, 4)))`);
162
147
  });
163
- it('should generate substr clause for $substr directive and correctly escape single quotes in string', () => {
164
- let filter = { id: { $gte: { $substr: [`$id`, -1, 1] } } };
165
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
148
+ it("should generate substr clause for $substr directive and correctly escape single quotes in string", () => {
149
+ const filter = { id: { $gte: { $substr: [`$id`, -1, 1] } } };
150
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
166
151
  expect(result).toBe(`("id" >= (substr("id", -1, 1)))`);
167
152
  });
168
- it('should generate substr clause for $expr directive and correctly escape single quotes in string', () => {
169
- let filter = { $expr: [{ $substr: [`I'm a string`, -1, 1] }, { $gte: 'a' }] };
170
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
153
+ it("should generate substr clause for $expr directive and correctly escape single quotes in string", () => {
154
+ const filter = { $expr: [{ $substr: [`I'm a string`, -1, 1] }, { $gte: "a" }] };
155
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
171
156
  expect(result).toBe(`((substr('I''m a string', -1, 1)) >= 'a')`);
172
157
  });
173
- it('should generate substr clause for $expr directive and correctly escape double quotes in identifiers', () => {
174
- let filter = { $expr: [{ $substr: ['$weird"col"name', -1, 1] }, { $gte: 'a' }] };
175
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
158
+ it("should generate substr clause for $expr directive and correctly escape double quotes in identifiers", () => {
159
+ const filter = { $expr: [{ $substr: ['$weird"col"name', -1, 1] }, { $gte: "a" }] };
160
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
176
161
  expect(result).toBe(`((substr("weird""col""name", -1, 1)) >= 'a')`);
177
162
  });
178
- it('should handle empty $or arrays without generating empty parentheses', () => {
179
- let filter = { $or: [] };
180
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
181
- expect(result).toBe('((1=1))');
163
+ it("should handle empty $or arrays without generating empty parentheses", () => {
164
+ const filter = { $or: [] };
165
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
166
+ expect(result).toBe("((1=1))");
182
167
  });
183
- it('should handle $or arrays with filters that resolve to (1=1)', () => {
184
- let filter = { $or: [{}] };
185
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
186
- expect(result).toBe('(((1=1)))');
168
+ it("should handle $or arrays with filters that resolve to (1=1)", () => {
169
+ const filter = { $or: [{}] };
170
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
171
+ expect(result).toBe("(((1=1)))");
187
172
  });
188
- it('should handle empty $and arrays without generating empty parentheses', () => {
189
- let filter = { $and: [] };
190
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
191
- expect(result).toBe('((1=1))');
173
+ it("should handle empty $and arrays without generating empty parentheses", () => {
174
+ const filter = { $and: [] };
175
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
176
+ expect(result).toBe("((1=1))");
192
177
  });
193
- it('should handle $and arrays with filters that resolve to (1=1)', () => {
194
- let filter = { $and: [{}] };
195
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
196
- expect(result).toBe('(((1=1)))');
178
+ it("should handle $and arrays with filters that resolve to (1=1)", () => {
179
+ const filter = { $and: [{}] };
180
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
181
+ expect(result).toBe("(((1=1)))");
197
182
  });
198
- it('should handle mixed $or and $and with empty conditions', () => {
199
- let filter = {
200
- $and: [
201
- { name: 'John' },
202
- { $or: [] }
203
- ]
183
+ it("should handle mixed $or and $and with empty conditions", () => {
184
+ const filter = {
185
+ $and: [{ name: "John" }, { $or: [] }],
204
186
  };
205
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
187
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
206
188
  expect(result).toBe(`((("name" = 'John') AND ((1=1))))`);
207
189
  });
208
- it('should throw error for direct array usage', () => {
209
- let filter = { name: ['John', 'Jane'] };
210
- expect(() => (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter)).toThrow('Invalid filter: Arrays are not allowed as direct field values. Use $in instead: { name: { $in: [\'John\', \'Jane\'] } }');
190
+ it("should throw error for direct array usage", () => {
191
+ const filter = { name: ["John", "Jane"] };
192
+ expect(() => (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter)).toThrow("Invalid filter: Arrays are not allowed as direct field values. Use $in instead: { name: { $in: ['John', 'Jane'] } }");
211
193
  });
212
- it('should handle $in operator correctly', () => {
213
- let filter = { name: { $in: ['John', 'Jane', 'Bob'] } };
214
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
194
+ it("should handle $in operator correctly", () => {
195
+ const filter = { name: { $in: ["John", "Jane", "Bob"] } };
196
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
215
197
  expect(result).toBe(`("name" IN ('John', 'Jane', 'Bob'))`);
216
198
  });
217
- it('should throw error for $in with non-array value', () => {
218
- let filter = { name: { $in: 'John' } };
219
- expect(() => (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter)).toThrow('$in value must be an array');
199
+ it("should throw error for $in with non-array value", () => {
200
+ const filter = { name: { $in: "John" } };
201
+ expect(() => (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter)).toThrow("$in value must be an array");
220
202
  });
221
203
  });
222
- describe('filterToSkipPastValue', () => {
223
- it('should a filter limited to results after the next item', () => {
224
- const sortBy = ['id'];
225
- let filter = { id: { $gte: '$col1' } };
204
+ describe("filterToSkipPastValue", () => {
205
+ it("should a filter limited to results after the next item", () => {
206
+ const sortBy = ["id"];
207
+ let filter = { id: { $gte: "$col1" } };
226
208
  filter = (0, data_query_1.filterToSkipPastValue)(filter, sortBy, { id: 10 });
227
209
  expect(filter).toEqual({
228
210
  $and: [
229
- { id: { $gte: '$col1' } },
211
+ { id: { $gte: "$col1" } },
230
212
  {
231
- $or: [
232
- { id: { $gt: 10 } },
233
- ]
234
- }
235
- ]
213
+ $or: [{ id: { $gt: 10 } }],
214
+ },
215
+ ],
236
216
  });
237
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
217
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
238
218
  expect(result).toBe(`((("id" >= "col1") AND ((("id" > 10)))))`);
239
219
  });
240
- it('should a work with descending sorts', () => {
241
- const sortBy = ['-id'];
242
- let filter = { id: { $gte: '$col1' } };
220
+ it("should a work with descending sorts", () => {
221
+ const sortBy = ["-id"];
222
+ let filter = { id: { $gte: "$col1" } };
243
223
  filter = (0, data_query_1.filterToSkipPastValue)(filter, sortBy, { id: 10 });
244
224
  expect(filter).toEqual({
245
225
  $and: [
246
- { id: { $gte: '$col1' } },
226
+ { id: { $gte: "$col1" } },
247
227
  {
248
- $or: [
249
- { id: { $lt: 10 } },
250
- ]
251
- }
252
- ]
228
+ $or: [{ id: { $lt: 10 } }],
229
+ },
230
+ ],
253
231
  });
254
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
232
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
255
233
  expect(result).toBe(`((("id" >= "col1") AND ((("id" < 10)))))`);
256
234
  });
257
- it('should work with multiple sorts', () => {
258
- const sortBy = ['name', '-id', 'age'];
259
- let filter = { id: { $gte: '$col1' } };
260
- filter = (0, data_query_1.filterToSkipPastValue)(filter, sortBy, { id: 10, name: 'test', age: 30 });
235
+ it("should work with multiple sorts", () => {
236
+ const sortBy = ["name", "-id", "age"];
237
+ let filter = { id: { $gte: "$col1" } };
238
+ filter = (0, data_query_1.filterToSkipPastValue)(filter, sortBy, { id: 10, name: "test", age: 30 });
261
239
  expect(filter).toEqual({
262
240
  $and: [
263
- { id: { $gte: '$col1' } },
241
+ { id: { $gte: "$col1" } },
264
242
  {
265
243
  $or: [
266
- { name: { $gt: 'test' } },
267
- { name: { $eq: 'test' }, id: { $lt: 10 } },
268
- { name: { $eq: 'test' }, id: { $eq: 10 }, age: { $gt: 30 } },
269
- ]
270
- }
271
- ]
244
+ { name: { $gt: "test" } },
245
+ { name: { $eq: "test" }, id: { $lt: 10 } },
246
+ { name: { $eq: "test" }, id: { $eq: 10 }, age: { $gt: 30 } },
247
+ ],
248
+ },
249
+ ],
272
250
  });
273
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
251
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
274
252
  expect(result).toBe(`((("id" >= "col1") AND ((("name" > 'test') OR ("id" < 10 AND "name" = 'test') OR ("age" > 30 AND "id" = 10 AND "name" = 'test')))))`);
275
253
  });
276
- it('should correctly handle null values', () => {
277
- const sortBy = ['name', '-id', 'age'];
278
- let filter = { id: { $gte: '$col1' } };
254
+ it("should correctly handle null values", () => {
255
+ const sortBy = ["name", "-id", "age"];
256
+ let filter = { id: { $gte: "$col1" } };
279
257
  filter = (0, data_query_1.filterToSkipPastValue)(filter, sortBy, { id: 10 });
280
258
  expect(filter).toEqual({
281
259
  $and: [
282
- { id: { $gte: '$col1' } },
260
+ { id: { $gte: "$col1" } },
283
261
  {
284
262
  $or: [
285
263
  { name: { $exists: true } },
286
264
  { name: { $exists: false }, id: { $lt: 10 } },
287
265
  { name: { $exists: false }, id: { $eq: 10 }, age: { $exists: true } },
288
- ]
289
- }
290
- ]
266
+ ],
267
+ },
268
+ ],
291
269
  });
292
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
270
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
293
271
  expect(result).toBe(`((("id" >= "col1") AND ((("name" IS NOT NULL) OR ("id" < 10 AND "name" IS NULL) OR ("age" IS NOT NULL AND "id" = 10 AND "name" IS NULL)))))`);
294
272
  });
295
- it('should handle empty filter', () => {
296
- const sortBy = ['name', '-id', 'age'];
273
+ it("should handle empty filter", () => {
274
+ const sortBy = ["name", "-id", "age"];
297
275
  let filter = {};
298
276
  filter = (0, data_query_1.filterToSkipPastValue)(filter, sortBy, { id: 10 });
299
277
  expect(filter).toEqual({
@@ -304,36 +282,36 @@ describe('filterToSkipPastValue', () => {
304
282
  { name: { $exists: true } },
305
283
  { name: { $exists: false }, id: { $lt: 10 } },
306
284
  { name: { $exists: false }, id: { $eq: 10 }, age: { $exists: true } },
307
- ]
308
- }
309
- ]
285
+ ],
286
+ },
287
+ ],
310
288
  });
311
- let result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
312
- expect(result).toBe(`(((1=1) AND (((\"name\" IS NOT NULL) OR (\"id\" < 10 AND \"name\" IS NULL) OR (\"age\" IS NOT NULL AND \"id\" = 10 AND \"name\" IS NULL)))))`);
289
+ const result = (0, data_query_sqlite_1.dataFilterToSqlWhere)(filter);
290
+ expect(result).toBe(`(((1=1) AND ((("name" IS NOT NULL) OR ("id" < 10 AND "name" IS NULL) OR ("age" IS NOT NULL AND "id" = 10 AND "name" IS NULL)))))`);
313
291
  });
314
292
  });
315
293
  const aryTable = (0, factory_1.arrayAsTable)([
316
- { id: 1, name: 'John', age: 30 },
317
- { id: 2, name: 'Jane', age: 32 },
318
- { id: 3, name: 'Joe', age: 29 },
319
- { id: 4, name: 'Jeb', age: 50 },
320
- { id: 5, name: 'Joey', age: 31 },
294
+ { id: 1, name: "John", age: 30 },
295
+ { id: 2, name: "Jane", age: 32 },
296
+ { id: 3, name: "Joe", age: 29 },
297
+ { id: 4, name: "Jeb", age: 50 },
298
+ { id: 5, name: "Joey", age: 31 },
321
299
  ], {
322
- name: 'People',
300
+ name: "People",
323
301
  });
324
- describe('DataQuery', () => {
325
- describe('cursor', () => {
302
+ describe("DataQuery", () => {
303
+ describe("cursor", () => {
326
304
  const query = new data_query_1.DataQuery(aryTable);
327
305
  query.pageSize = 2;
328
- it('should allow async iteration via `for await`', async () => {
329
- let results = [];
306
+ it("should allow async iteration via `for await`", async () => {
307
+ const results = [];
330
308
  for await (const item of query.cursor()) {
331
309
  results.push(item.id);
332
310
  }
333
311
  expect(results).toEqual([1, 2, 3, 4, 5]);
334
312
  });
335
- it('should allow async iteration via `while await next`', async () => {
336
- let results = [];
313
+ it("should allow async iteration via `while await next`", async () => {
314
+ const results = [];
337
315
  const cursor = query.cursor();
338
316
  while (await cursor.next()) {
339
317
  results.push(cursor.value?.id);
@@ -342,23 +320,23 @@ describe('DataQuery', () => {
342
320
  });
343
321
  });
344
322
  });
345
- describe('dataQueryToSqliteQuery', () => {
323
+ describe("dataQueryToSqliteQuery", () => {
346
324
  const aryTable = (0, factory_1.arrayAsTable)([
347
- { id: 1, name: 'John', age: 30 },
348
- { id: 2, name: 'Jane', age: 32 },
349
- { id: 3, name: 'Joe', age: 29 },
325
+ { id: 1, name: "John", age: 30 },
326
+ { id: 2, name: "Jane", age: 32 },
327
+ { id: 3, name: "Joe", age: 29 },
350
328
  ], {
351
- name: 'People',
329
+ name: "People",
352
330
  });
353
331
  function fmtSql(sql) {
354
- return sql.replace(/ /g, '').trim();
332
+ return sql.replace(/ {6}/g, "").trim();
355
333
  }
356
334
  let query = new data_query_1.DataQuery(aryTable);
357
335
  beforeEach(() => {
358
336
  query = new data_query_1.DataQuery(aryTable);
359
337
  });
360
- it('should return correct SQL query for empty query', () => {
361
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
338
+ it("should return correct SQL query for empty query", () => {
339
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
362
340
  expect(sql).toBe(fmtSql(`
363
341
  SELECT
364
342
  *
@@ -367,9 +345,9 @@ describe('dataQueryToSqliteQuery', () => {
367
345
  ORDER BY 1
368
346
  `));
369
347
  });
370
- it('should generate single clause for single field filter', () => {
348
+ it("should generate single clause for single field filter", () => {
371
349
  query.filter = { age: 30 };
372
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
350
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
373
351
  expect(sql).toBe(fmtSql(`
374
352
  SELECT
375
353
  *
@@ -378,9 +356,9 @@ describe('dataQueryToSqliteQuery', () => {
378
356
  ORDER BY 1
379
357
  `));
380
358
  });
381
- it('should generate AND clause for multi-field filter', () => {
382
- query.filter = { age: 30, name: 'John' };
383
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
359
+ it("should generate AND clause for multi-field filter", () => {
360
+ query.filter = { age: 30, name: "John" };
361
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
384
362
  expect(sql).toBe(fmtSql(`
385
363
  SELECT
386
364
  *
@@ -389,10 +367,10 @@ describe('dataQueryToSqliteQuery', () => {
389
367
  ORDER BY 1
390
368
  `));
391
369
  });
392
- it('should generate OR LIKE clauses for all fields for text search', () => {
370
+ it("should generate OR LIKE clauses for all fields for text search", () => {
393
371
  query.filter = {};
394
- query.textSearch = 'John';
395
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
372
+ query.textSearch = "John";
373
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
396
374
  expect(sql).toBe(fmtSql(`
397
375
  SELECT
398
376
  *
@@ -401,10 +379,10 @@ describe('dataQueryToSqliteQuery', () => {
401
379
  ORDER BY 1
402
380
  `));
403
381
  });
404
- it('should handle empty filter and text search with only spaces', () => {
382
+ it("should handle empty filter and text search with only spaces", () => {
405
383
  query.filter = {};
406
- query.textSearch = ' ';
407
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
384
+ query.textSearch = " ";
385
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
408
386
  expect(sql).toBe(fmtSql(`
409
387
  SELECT
410
388
  *
@@ -413,10 +391,10 @@ describe('dataQueryToSqliteQuery', () => {
413
391
  ORDER BY 1
414
392
  `));
415
393
  });
416
- it('should handle filter and text search with only spaces', () => {
394
+ it("should handle filter and text search with only spaces", () => {
417
395
  query.filter = { age: 30 };
418
- query.textSearch = ' ';
419
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
396
+ query.textSearch = " ";
397
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
420
398
  expect(sql).toBe(fmtSql(`
421
399
  SELECT
422
400
  *
@@ -425,10 +403,10 @@ describe('dataQueryToSqliteQuery', () => {
425
403
  ORDER BY 1
426
404
  `));
427
405
  });
428
- it('should generate OR LIKE clauses for all fields for text search for each word given', () => {
406
+ it("should generate OR LIKE clauses for all fields for text search for each word given", () => {
429
407
  query.filter = {};
430
- query.textSearch = 'John Smith';
431
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
408
+ query.textSearch = "John Smith";
409
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
432
410
  expect(sql).toBe(fmtSql(`
433
411
  SELECT
434
412
  *
@@ -437,11 +415,11 @@ describe('dataQueryToSqliteQuery', () => {
437
415
  ORDER BY 1
438
416
  `));
439
417
  });
440
- it('should generate OR LIKE clauses for all fields for exact text when specified', () => {
418
+ it("should generate OR LIKE clauses for all fields for exact text when specified", () => {
441
419
  query.filter = {};
442
- query.textSearch = 'John Smith';
420
+ query.textSearch = "John Smith";
443
421
  query.textSearchExact = true;
444
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
422
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
445
423
  expect(sql).toBe(fmtSql(`
446
424
  SELECT
447
425
  *
@@ -450,8 +428,8 @@ describe('dataQueryToSqliteQuery', () => {
450
428
  ORDER BY 1
451
429
  `));
452
430
  });
453
- it('should generate OR clause for $or directive', () => {
454
- query.filter = { $or: [{ age: 32 }, { name: 'John' }] };
431
+ it("should generate OR clause for $or directive", () => {
432
+ query.filter = { $or: [{ age: 32 }, { name: "John" }] };
455
433
  let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
456
434
  expect(sql).toBe(fmtSql(`
457
435
  SELECT
@@ -460,7 +438,14 @@ describe('dataQueryToSqliteQuery', () => {
460
438
  WHERE ((("age" = 32) OR ("name" = 'John')))
461
439
  ORDER BY 1
462
440
  `));
463
- query.filter = { $or: [{ age: 30, name: 'John' }, { age: 32, name: 'Jane' }], id: { $in: [1, 2, 3] }, name: { $ne: 'Joe' } };
441
+ query.filter = {
442
+ $or: [
443
+ { age: 30, name: "John" },
444
+ { age: 32, name: "Jane" },
445
+ ],
446
+ id: { $in: [1, 2, 3] },
447
+ name: { $ne: "Joe" },
448
+ };
464
449
  sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
465
450
  expect(sql).toBe(fmtSql(`
466
451
  SELECT
@@ -470,8 +455,8 @@ describe('dataQueryToSqliteQuery', () => {
470
455
  ORDER BY 1
471
456
  `));
472
457
  });
473
- it('should generate AND clause for $and directive', () => {
474
- query.filter = { $and: [{ age: 32 }, { name: 'John' }] };
458
+ it("should generate AND clause for $and directive", () => {
459
+ query.filter = { $and: [{ age: 32 }, { name: "John" }] };
475
460
  let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
476
461
  expect(sql).toBe(fmtSql(`
477
462
  SELECT
@@ -480,7 +465,14 @@ describe('dataQueryToSqliteQuery', () => {
480
465
  WHERE ((("age" = 32) AND ("name" = 'John')))
481
466
  ORDER BY 1
482
467
  `));
483
- query.filter = { $and: [{ age: 30, name: 'John' }, { age: 32, name: 'Jane' }], id: { $in: [1, 2, 3] }, name: { $ne: 'Joe' } };
468
+ query.filter = {
469
+ $and: [
470
+ { age: 30, name: "John" },
471
+ { age: 32, name: "Jane" },
472
+ ],
473
+ id: { $in: [1, 2, 3] },
474
+ name: { $ne: "Joe" },
475
+ };
484
476
  sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
485
477
  expect(sql).toBe(fmtSql(`
486
478
  SELECT
@@ -490,10 +482,10 @@ describe('dataQueryToSqliteQuery', () => {
490
482
  ORDER BY 1
491
483
  `));
492
484
  });
493
- it('should combine filter and textSearch with AND', () => {
494
- query.filter = ({ age: 30 });
495
- query.textSearch = ('John');
496
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
485
+ it("should combine filter and textSearch with AND", () => {
486
+ query.filter = { age: 30 };
487
+ query.textSearch = "John";
488
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
497
489
  expect(sql).toBe(fmtSql(`
498
490
  SELECT
499
491
  *
@@ -502,11 +494,11 @@ describe('dataQueryToSqliteQuery', () => {
502
494
  ORDER BY 1
503
495
  `));
504
496
  });
505
- it('should respond correctly to pageSize changing', () => {
506
- query.filter = ({});
507
- query.textSearch = ('');
508
- query.pageSize = (10);
509
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
497
+ it("should respond correctly to pageSize changing", () => {
498
+ query.filter = {};
499
+ query.textSearch = "";
500
+ query.pageSize = 10;
501
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
510
502
  expect(sql).toBe(fmtSql(`
511
503
  SELECT
512
504
  *
@@ -517,12 +509,12 @@ describe('dataQueryToSqliteQuery', () => {
517
509
  OFFSET 0
518
510
  `));
519
511
  });
520
- it('should calculate LIMIT and OFFSET from page and pageSize', () => {
521
- query.filter = ({});
522
- query.textSearch = ('');
523
- query.pageSize = (10);
524
- query.page = (10);
525
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
512
+ it("should calculate LIMIT and OFFSET from page and pageSize", () => {
513
+ query.filter = {};
514
+ query.textSearch = "";
515
+ query.pageSize = 10;
516
+ query.page = 10;
517
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
526
518
  expect(sql).toBe(fmtSql(`
527
519
  SELECT
528
520
  *
@@ -533,13 +525,13 @@ describe('dataQueryToSqliteQuery', () => {
533
525
  OFFSET 90
534
526
  `));
535
527
  });
536
- it('should calculate LIMIT and OFFSET from page and pageSize', () => {
537
- query.filter = ({});
538
- query.textSearch = ('');
539
- query.pageSize = (10);
540
- query.page = (10);
541
- query.sortBy = (['name', '-age']);
542
- let sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
528
+ it("should calculate LIMIT and OFFSET from page and pageSize", () => {
529
+ query.filter = {};
530
+ query.textSearch = "";
531
+ query.pageSize = 10;
532
+ query.page = 10;
533
+ query.sortBy = ["name", "-age"];
534
+ const sql = (0, data_query_sqlite_1.dataQueryToSqliteQuery)(query);
543
535
  expect(sql).toBe(fmtSql(`
544
536
  SELECT
545
537
  *