@ingeno/pipedream-services 1.0.74 → 1.0.77

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 (63) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/slack/example.d.ts +3 -0
  6. package/dist/slack/example.d.ts.map +1 -0
  7. package/dist/slack/example.js +49 -0
  8. package/dist/slack/example.js.map +1 -0
  9. package/dist/slack/index.d.ts +2 -0
  10. package/dist/slack/index.d.ts.map +1 -0
  11. package/dist/slack/index.js +2 -0
  12. package/dist/slack/index.js.map +1 -0
  13. package/dist/slack/slack-service.d.ts +72 -0
  14. package/dist/slack/slack-service.d.ts.map +1 -0
  15. package/dist/slack/slack-service.js +138 -0
  16. package/dist/slack/slack-service.js.map +1 -0
  17. package/dist/zoho-crm/zoho-crm-fetcher.d.ts.map +1 -1
  18. package/dist/zoho-crm/zoho-crm-fetcher.js +27 -44
  19. package/dist/zoho-crm/zoho-crm-fetcher.js.map +1 -1
  20. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.d.ts.map +1 -1
  21. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.js +21 -2
  22. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.js.map +1 -1
  23. package/package.json +7 -2
  24. package/dist/aws/apn/partner-central-client.test.d.ts +0 -2
  25. package/dist/aws/apn/partner-central-client.test.d.ts.map +0 -1
  26. package/dist/aws/apn/partner-central-client.test.js +0 -38
  27. package/dist/aws/apn/partner-central-client.test.js.map +0 -1
  28. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.d.ts +0 -2
  29. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.d.ts.map +0 -1
  30. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.js +0 -34
  31. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.js.map +0 -1
  32. package/dist/aws/aws-list-stream.test.d.ts +0 -3
  33. package/dist/aws/aws-list-stream.test.d.ts.map +0 -1
  34. package/dist/aws/aws-list-stream.test.js +0 -50
  35. package/dist/aws/aws-list-stream.test.js.map +0 -1
  36. package/dist/collections/collections-to-table-stream.test.d.ts +0 -2
  37. package/dist/collections/collections-to-table-stream.test.d.ts.map +0 -1
  38. package/dist/collections/collections-to-table-stream.test.js +0 -70
  39. package/dist/collections/collections-to-table-stream.test.js.map +0 -1
  40. package/dist/collections/collections-to-table.test.d.ts +0 -2
  41. package/dist/collections/collections-to-table.test.d.ts.map +0 -1
  42. package/dist/collections/collections-to-table.test.js +0 -105
  43. package/dist/collections/collections-to-table.test.js.map +0 -1
  44. package/dist/collections/converter.test.d.ts +0 -2
  45. package/dist/collections/converter.test.d.ts.map +0 -1
  46. package/dist/collections/converter.test.js +0 -304
  47. package/dist/collections/converter.test.js.map +0 -1
  48. package/dist/postgres/postgres-test-connection.test.d.ts +0 -2
  49. package/dist/postgres/postgres-test-connection.test.d.ts.map +0 -1
  50. package/dist/postgres/postgres-test-connection.test.js +0 -68
  51. package/dist/postgres/postgres-test-connection.test.js.map +0 -1
  52. package/dist/postgres/postgres.test.d.ts +0 -2
  53. package/dist/postgres/postgres.test.d.ts.map +0 -1
  54. package/dist/postgres/postgres.test.js +0 -497
  55. package/dist/postgres/postgres.test.js.map +0 -1
  56. package/dist/streams/list-stream.test.d.ts +0 -2
  57. package/dist/streams/list-stream.test.d.ts.map +0 -1
  58. package/dist/streams/list-stream.test.js +0 -169
  59. package/dist/streams/list-stream.test.js.map +0 -1
  60. package/dist/zoho-crm/zoho-crm-client.test.d.ts +0 -2
  61. package/dist/zoho-crm/zoho-crm-client.test.d.ts.map +0 -1
  62. package/dist/zoho-crm/zoho-crm-client.test.js +0 -341
  63. package/dist/zoho-crm/zoho-crm-client.test.js.map +0 -1
@@ -1,304 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { convert } from './converter.js';
3
- describe('convert function', () => {
4
- describe('null and undefined handling', () => {
5
- it('should preserve null and undefined values for all types', () => {
6
- const types = ['string', 'number', 'currency', 'bool', 'date', 'datetime', 'json', 'id'];
7
- types.forEach(type => {
8
- const column = { name: 'test', type };
9
- expect(convert(column, null)).toBe(null);
10
- expect(convert(column, undefined)).toBe(undefined);
11
- });
12
- });
13
- });
14
- describe('string type conversion', () => {
15
- it('should return strings as-is for string type', () => {
16
- const column = { name: 'test', type: 'string' };
17
- expect(convert(column, 'hello')).toBe('hello');
18
- expect(convert(column, ' hello ')).toBe(' hello ');
19
- expect(convert(column, '')).toBe('');
20
- expect(convert(column, '123')).toBe('123');
21
- });
22
- it('should handle empty strings for string type', () => {
23
- const column = { name: 'test', type: 'string' };
24
- expect(convert(column, '')).toBe('');
25
- expect(convert(column, ' ')).toBe(' ');
26
- });
27
- });
28
- describe('number type conversion', () => {
29
- it('should convert valid number strings', () => {
30
- const column = { name: 'test', type: 'number' };
31
- expect(convert(column, '123')).toBe(123);
32
- expect(convert(column, '123.45')).toBe(123.45);
33
- expect(convert(column, ' 456 ')).toBe(456);
34
- expect(convert(column, '0')).toBe(0);
35
- expect(convert(column, '-123')).toBe(-123);
36
- });
37
- it('should handle invalid number strings', () => {
38
- const column = { name: 'test', type: 'number' };
39
- expect(convert(column, 'not a number')).toBeNaN();
40
- expect(convert(column, '')).toBe(undefined);
41
- expect(convert(column, ' ')).toBe(undefined);
42
- });
43
- it('should return numbers as-is', () => {
44
- const column = { name: 'test', type: 'number' };
45
- expect(convert(column, 123)).toBe(123);
46
- expect(convert(column, 123.45)).toBe(123.45);
47
- expect(convert(column, 0)).toBe(0);
48
- expect(convert(column, -123)).toBe(-123);
49
- });
50
- });
51
- describe('currency type conversion', () => {
52
- it('should convert valid currency strings', () => {
53
- const column = { name: 'amount', type: 'currency' };
54
- expect(convert(column, '50000')).toBe(50000);
55
- expect(convert(column, '123.45')).toBe(123.45);
56
- expect(convert(column, ' 1000 ')).toBe(1000);
57
- expect(convert(column, '0.99')).toBe(0.99);
58
- });
59
- it('should handle invalid currency strings', () => {
60
- const column = { name: 'amount', type: 'currency' };
61
- expect(convert(column, 'not a number')).toBeNaN();
62
- expect(convert(column, '')).toBe(undefined);
63
- expect(convert(column, ' ')).toBe(undefined);
64
- });
65
- it('should return numbers as-is for currency type', () => {
66
- const column = { name: 'amount', type: 'currency' };
67
- expect(convert(column, 50000)).toBe(50000);
68
- expect(convert(column, 123.45)).toBe(123.45);
69
- });
70
- });
71
- describe('boolean type conversion', () => {
72
- it('should convert truthy boolean strings', () => {
73
- const column = { name: 'is_active', type: 'bool' };
74
- expect(convert(column, 'true')).toBe(true);
75
- expect(convert(column, 'TRUE')).toBe(true);
76
- expect(convert(column, 'yes')).toBe(true);
77
- expect(convert(column, 'YES')).toBe(true);
78
- expect(convert(column, 'Yes')).toBe(true);
79
- });
80
- it('should convert falsy boolean strings', () => {
81
- const column = { name: 'is_active', type: 'bool' };
82
- expect(convert(column, 'false')).toBe(false);
83
- expect(convert(column, 'FALSE')).toBe(false);
84
- expect(convert(column, 'no')).toBe(false);
85
- expect(convert(column, 'NO')).toBe(false);
86
- expect(convert(column, 'No')).toBe(false);
87
- expect(convert(column, 'other')).toBe(false);
88
- expect(convert(column, '0')).toBe(false);
89
- });
90
- it('should handle empty strings for boolean type', () => {
91
- const column = { name: 'is_active', type: 'bool' };
92
- expect(convert(column, '')).toBe(undefined);
93
- expect(convert(column, ' ')).toBe(undefined);
94
- });
95
- it('should return booleans as-is', () => {
96
- const column = { name: 'is_active', type: 'bool' };
97
- expect(convert(column, true)).toBe(true);
98
- expect(convert(column, false)).toBe(false);
99
- });
100
- });
101
- describe('date type conversion', () => {
102
- it('should convert valid date strings', () => {
103
- const column = { name: 'test_date', type: 'date' };
104
- expect(convert(column, '2023-01-01')).toEqual(new Date('2023-01-01'));
105
- expect(convert(column, '2023-12-31T23:59:59Z')).toEqual(new Date('2023-12-31T23:59:59Z'));
106
- expect(convert(column, 'Jan 1, 2023')).toEqual(new Date('Jan 1, 2023'));
107
- });
108
- it('should handle invalid date strings', () => {
109
- const column = { name: 'test_date', type: 'date' };
110
- expect(convert(column, 'invalid date')).toBe(null);
111
- expect(convert(column, '')).toBe(undefined);
112
- expect(convert(column, ' ')).toBe(undefined);
113
- expect(convert(column, '2023-13-01')).toBe(null); // Invalid month
114
- });
115
- it('should return Date objects as-is', () => {
116
- const column = { name: 'test_date', type: 'date' };
117
- const date = new Date('2023-01-01');
118
- expect(convert(column, date)).toBe(date);
119
- });
120
- });
121
- describe('datetime type conversion', () => {
122
- it('should convert Zoho CRM timestamp format to Date object', () => {
123
- const column = { name: 'test_date', type: 'datetime' };
124
- const zohoTimestamp = 'Mon Jul 07 2025 21:12:49 GMT+0000 (GMT)';
125
- const result = convert(column, zohoTimestamp);
126
- expect(result).toBeInstanceOf(Date);
127
- expect(result).toEqual(new Date('2025-07-07T21:12:49.000Z'));
128
- });
129
- it('should convert various datetime formats', () => {
130
- const column = { name: 'test_date', type: 'datetime' };
131
- expect(convert(column, '2023-01-01T12:00:00Z')).toEqual(new Date('2023-01-01T12:00:00Z'));
132
- expect(convert(column, '2023-12-31 23:59:59')).toEqual(new Date('2023-12-31 23:59:59'));
133
- });
134
- it('should handle invalid datetime strings', () => {
135
- const column = { name: 'test_date', type: 'datetime' };
136
- expect(convert(column, 'invalid date')).toBe(null);
137
- expect(convert(column, '')).toBe(undefined);
138
- expect(convert(column, ' ')).toBe(undefined);
139
- });
140
- it('should return Date objects as-is for datetime type', () => {
141
- const column = { name: 'test_date', type: 'datetime' };
142
- const date = new Date('2023-01-01T12:00:00Z');
143
- expect(convert(column, date)).toBe(date);
144
- });
145
- });
146
- describe('json type conversion', () => {
147
- it('should serialize objects to JSON strings', () => {
148
- const column = { name: 'metadata', type: 'json' };
149
- expect(convert(column, { id: 123, name: 'test' })).toBe('{"id":123,"name":"test"}');
150
- expect(convert(column, [1, 2, 3])).toBe('[1,2,3]');
151
- expect(convert(column, { nested: { value: 'test' } })).toBe('{"nested":{"value":"test"}}');
152
- });
153
- it('should validate and return valid JSON strings', () => {
154
- const column = { name: 'metadata', type: 'json' };
155
- expect(convert(column, '{"valid":"json"}')).toBe('{"valid":"json"}');
156
- expect(convert(column, '[1,2,3]')).toBe('[1,2,3]');
157
- expect(convert(column, '"simple string"')).toBe('"simple string"');
158
- });
159
- it('should handle invalid JSON strings', () => {
160
- const column = { name: 'metadata', type: 'json' };
161
- expect(convert(column, 'invalid json')).toBe(null);
162
- expect(convert(column, '{"incomplete":')).toBe(null);
163
- expect(convert(column, '')).toBe(null); // Empty string gets validated as invalid JSON
164
- expect(convert(column, ' ')).toBe(null); // Whitespace gets validated as invalid JSON
165
- });
166
- it('should handle primitive values for JSON type', () => {
167
- const column = { name: 'metadata', type: 'json' };
168
- expect(convert(column, 123)).toBe('123');
169
- expect(convert(column, true)).toBe('true');
170
- expect(convert(column, false)).toBe('false');
171
- });
172
- });
173
- describe('id type conversion', () => {
174
- it('should handle id type like string by default', () => {
175
- const column = { name: 'record_id', type: 'id' };
176
- expect(convert(column, 'abc123')).toBe('abc123');
177
- expect(convert(column, 123)).toBe(123);
178
- expect(convert(column, ' 123 ')).toBe('123'); // String gets trimmed for non-string types
179
- });
180
- });
181
- describe('text type conversion', () => {
182
- it('should handle text type like string by default', () => {
183
- const column = { name: 'description', type: 'text' };
184
- expect(convert(column, 'some text')).toBe('some text');
185
- expect(convert(column, ' padded ')).toBe('padded'); // String gets trimmed for non-string types
186
- expect(convert(column, 123)).toBe(123);
187
- });
188
- });
189
- describe('unknown type conversion', () => {
190
- it('should handle unknown types as strings', () => {
191
- const column = { name: 'unknown', type: 'unknown' };
192
- expect(convert(column, 'test')).toBe('test');
193
- expect(convert(column, 123)).toBe(123);
194
- expect(convert(column, true)).toBe(true);
195
- });
196
- it('should handle columns without type specified', () => {
197
- const column = { name: 'no_type' };
198
- expect(convert(column, 'test')).toBe('test');
199
- expect(convert(column, 123)).toBe(123);
200
- expect(convert(column, true)).toBe(true);
201
- });
202
- });
203
- describe('edge cases', () => {
204
- it('should handle whitespace-only strings correctly', () => {
205
- const stringColumn = { name: 'test', type: 'string' };
206
- const numberColumn = { name: 'test', type: 'number' };
207
- const boolColumn = { name: 'test', type: 'bool' };
208
- expect(convert(stringColumn, ' ')).toBe(' ');
209
- expect(convert(numberColumn, ' ')).toBe(undefined);
210
- expect(convert(boolColumn, ' ')).toBe(undefined);
211
- });
212
- it('should handle zero values correctly', () => {
213
- const numberColumn = { name: 'test', type: 'number' };
214
- const currencyColumn = { name: 'test', type: 'currency' };
215
- const boolColumn = { name: 'test', type: 'bool' };
216
- expect(convert(numberColumn, 0)).toBe(0);
217
- expect(convert(numberColumn, '0')).toBe(0);
218
- expect(convert(currencyColumn, 0)).toBe(0);
219
- expect(convert(currencyColumn, '0')).toBe(0);
220
- expect(convert(boolColumn, '0')).toBe(false);
221
- });
222
- it('should handle very large numbers', () => {
223
- const numberColumn = { name: 'test', type: 'number' };
224
- expect(convert(numberColumn, '999999999999999')).toBe(999999999999999);
225
- expect(convert(numberColumn, '1.23456789012345')).toBe(1.23456789012345);
226
- });
227
- it('should handle special float values', () => {
228
- const numberColumn = { name: 'test', type: 'number' };
229
- expect(convert(numberColumn, 'Infinity')).toBe(Infinity);
230
- expect(convert(numberColumn, '-Infinity')).toBe(-Infinity);
231
- expect(convert(numberColumn, 'NaN')).toBeNaN();
232
- });
233
- });
234
- describe('error handling', () => {
235
- it('should handle circular references in JSON conversion', () => {
236
- const column = { name: 'metadata', type: 'json' };
237
- const circular = { name: 'test' };
238
- circular.self = circular;
239
- expect(convert(column, circular)).toBe(null);
240
- });
241
- it('should handle functions in JSON conversion', () => {
242
- const column = { name: 'metadata', type: 'json' };
243
- const objWithFunction = {
244
- name: 'test',
245
- fn: () => 'hello'
246
- };
247
- expect(convert(column, objWithFunction)).toBe('{"name":"test"}');
248
- });
249
- it('should handle Date constructor exceptions', () => {
250
- const column = { name: 'test_date', type: 'datetime' };
251
- // Create a mock Date constructor that throws an error
252
- const originalDate = Date;
253
- const mockDate = function (value) {
254
- throw new Error('Date constructor error');
255
- };
256
- mockDate.prototype = originalDate.prototype;
257
- // Replace the global Date constructor
258
- global.Date = mockDate;
259
- try {
260
- const result = convert(column, 'some date string');
261
- expect(result).toBe(null);
262
- }
263
- finally {
264
- // Restore the original Date constructor
265
- global.Date = originalDate;
266
- }
267
- });
268
- it('should handle exceptions in main convert function', () => {
269
- const column = { name: 'test', type: 'number' };
270
- // Create a String object that will be treated as a string but throws during processing
271
- const problematicString = new String('123');
272
- // Override isString type check behavior by making it throw
273
- Object.defineProperty(problematicString, 'trim', {
274
- value: () => {
275
- throw new Error('trim error during processing');
276
- }
277
- });
278
- const result = convert(column, problematicString);
279
- expect(result).toBe(undefined);
280
- });
281
- it('should handle malformed string objects that throw during preprocessing', () => {
282
- const column = { name: 'test', type: 'datetime' };
283
- // Create a String object that throws when trim() is called
284
- const malformedString = new String('test date');
285
- malformedString.trim = () => {
286
- throw new Error('trim error');
287
- };
288
- const result = convert(column, malformedString);
289
- expect(result).toBe(undefined);
290
- });
291
- it('should handle objects with getters that throw errors', () => {
292
- const column = { name: 'test', type: 'json' };
293
- // Create an object with a getter that throws
294
- const objectWithThrowingGetter = {
295
- get badProperty() {
296
- throw new Error('Getter error');
297
- }
298
- };
299
- const result = convert(column, objectWithThrowingGetter);
300
- expect(result).toBe(null);
301
- });
302
- });
303
- });
304
- //# sourceMappingURL=converter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converter.test.js","sourceRoot":"","sources":["../../src/collections/converter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=postgres-test-connection.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres-test-connection.test.d.ts","sourceRoot":"","sources":["../../src/postgres/postgres-test-connection.test.ts"],"names":[],"mappings":""}
@@ -1,68 +0,0 @@
1
- import { describe, it, expect, beforeAll, afterAll } from 'vitest';
2
- import pg from 'pg';
3
- import { getTestCredentials } from './test-config.js';
4
- const { Client } = pg;
5
- describe('PostgreSQL Test Database Connection', () => {
6
- let client;
7
- beforeAll(async () => {
8
- const credentials = getTestCredentials();
9
- client = new Client(credentials);
10
- // Wait for database to be ready (retry logic)
11
- let attempts = 0;
12
- const maxAttempts = 30;
13
- while (attempts < maxAttempts) {
14
- try {
15
- await client.connect();
16
- break;
17
- }
18
- catch (error) {
19
- attempts++;
20
- if (attempts >= maxAttempts) {
21
- throw new Error(`Failed to connect to test database after ${maxAttempts} attempts: ${error}`);
22
- }
23
- // Wait 1 second before retrying
24
- await new Promise(resolve => setTimeout(resolve, 1000));
25
- }
26
- }
27
- });
28
- afterAll(async () => {
29
- if (client) {
30
- await client.end();
31
- }
32
- });
33
- it('should connect to the test database', async () => {
34
- const result = await client.query('SELECT NOW() as current_time');
35
- expect(result.rows).toHaveLength(1);
36
- expect(result.rows[0].current_time).toBeInstanceOf(Date);
37
- });
38
- it('should be able to create and drop a test table', async () => {
39
- const tableName = 'test_connection_table';
40
- // Create table
41
- await client.query(`
42
- CREATE TABLE IF NOT EXISTS ${tableName} (
43
- id SERIAL PRIMARY KEY,
44
- name TEXT NOT NULL,
45
- created_at TIMESTAMP DEFAULT NOW()
46
- )
47
- `);
48
- // Insert test data
49
- const insertResult = await client.query(`INSERT INTO ${tableName} (name) VALUES ($1) RETURNING id`, ['test_record']);
50
- expect(insertResult.rows).toHaveLength(1);
51
- expect(insertResult.rows[0].id).toBeDefined();
52
- // Query test data
53
- const selectResult = await client.query(`SELECT * FROM ${tableName} WHERE name = $1`, ['test_record']);
54
- expect(selectResult.rows).toHaveLength(1);
55
- expect(selectResult.rows[0].name).toBe('test_record');
56
- // Clean up
57
- await client.query(`DROP TABLE ${tableName}`);
58
- });
59
- it('should have the correct database name', async () => {
60
- const result = await client.query('SELECT current_database()');
61
- expect(result.rows[0].current_database).toBe('clarity_test');
62
- });
63
- it('should have the correct user permissions', async () => {
64
- const result = await client.query('SELECT current_user');
65
- expect(result.rows[0].current_user).toBe('test_user');
66
- });
67
- });
68
- //# sourceMappingURL=postgres-test-connection.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres-test-connection.test.js","sourceRoot":"","sources":["../../src/postgres/postgres-test-connection.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAClE,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AAErB,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,MAAiB,CAAA;IAErB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAA;QACxC,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAA;QAEhC,8CAA8C;QAC9C,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,MAAM,WAAW,GAAG,EAAE,CAAA;QAEtB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;gBACtB,MAAK;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,EAAE,CAAA;gBACV,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,WAAW,cAAc,KAAK,EAAE,CAAC,CAAA;gBAC/F,CAAC;gBACD,gCAAgC;gBAChC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,SAAS,GAAG,uBAAuB,CAAA;QAEzC,eAAe;QACf,MAAM,MAAM,CAAC,KAAK,CAAC;mCACY,SAAS;;;;;KAKvC,CAAC,CAAA;QAEF,mBAAmB;QACnB,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,eAAe,SAAS,kCAAkC,EAC1D,CAAC,aAAa,CAAC,CAChB,CAAA;QAED,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7C,kBAAkB;QAClB,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,iBAAiB,SAAS,kBAAkB,EAC5C,CAAC,aAAa,CAAC,CAChB,CAAA;QAED,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAErD,WAAW;QACX,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,SAAS,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=postgres.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.test.d.ts","sourceRoot":"","sources":["../../src/postgres/postgres.test.ts"],"names":[],"mappings":""}