@revisium/core 2.3.0-alpha.1 → 2.3.0-alpha.2

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 (29) hide show
  1. package/dist/package.json +2 -1
  2. package/dist/src/features/row/queries/handlers/get-rows.handler.d.ts +2 -4
  3. package/dist/src/features/row/queries/handlers/get-rows.handler.js +4 -24
  4. package/dist/src/features/row/queries/handlers/get-rows.handler.js.map +1 -1
  5. package/dist/src/features/row/queries/impl/get-rows.query.d.ts +3 -3
  6. package/dist/src/features/row/queries/impl/get-rows.query.js.map +1 -1
  7. package/dist/src/features/row/utils/get-rows-sql.d.ts +5 -0
  8. package/dist/src/features/row/utils/get-rows-sql.js +70 -0
  9. package/dist/src/features/row/utils/get-rows-sql.js.map +1 -0
  10. package/dist/tsconfig.build.tsbuildinfo +1 -1
  11. package/package.json +2 -1
  12. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.d.ts +0 -16
  13. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js +0 -70
  14. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js.map +0 -1
  15. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.d.ts +0 -52
  16. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js +0 -531
  17. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js.map +0 -1
  18. package/dist/src/utils/prisma-sql-generator/index.d.ts +0 -2
  19. package/dist/src/utils/prisma-sql-generator/index.js +0 -22
  20. package/dist/src/utils/prisma-sql-generator/index.js.map +0 -1
  21. package/dist/src/utils/prisma-sql-generator/json-path.d.ts +0 -14
  22. package/dist/src/utils/prisma-sql-generator/json-path.js +0 -121
  23. package/dist/src/utils/prisma-sql-generator/json-path.js.map +0 -1
  24. package/dist/src/utils/prisma-sql-generator/types.d.ts +0 -105
  25. package/dist/src/utils/prisma-sql-generator/types.js +0 -3
  26. package/dist/src/utils/prisma-sql-generator/types.js.map +0 -1
  27. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.d.ts +0 -21
  28. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js +0 -527
  29. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revisium/core",
3
- "version": "2.3.0-alpha.1",
3
+ "version": "2.3.0-alpha.2",
4
4
  "description": "Revisium is a tool (UI/API) inspired by JSON (JSON Schema) and Git, designed to provide a flexible and low-level headless CMS solution.",
5
5
  "private": false,
6
6
  "homepage": "https://revisium.io",
@@ -66,6 +66,7 @@
66
66
  "@nestjs/swagger": "^11.2.0",
67
67
  "@nestjs/terminus": "^11.0.0",
68
68
  "@prisma/client": "^6.8.2",
69
+ "@revisium/prisma-pg-json": "^0.4.0",
69
70
  "ajv": "^8.17.1",
70
71
  "bcrypt": "^6.0.0",
71
72
  "bentocache": "^1.5.0",
@@ -1,16 +0,0 @@
1
- import { Prisma } from '@prisma/client';
2
- export declare function runPrismaOrmRows(prisma: any, { tableVersionId, where, orderBy, take, skip, }: {
3
- tableVersionId: string;
4
- where?: any;
5
- orderBy?: any;
6
- take?: number;
7
- skip?: number;
8
- }): Promise<any>;
9
- export declare function runViaPrismaRaw(prisma: any, sqlNode: Prisma.Sql): Promise<any[]>;
10
- export declare function compareByIds(prismaRows: any[], rawRows: any[]): void;
11
- export declare function compareExactly(prismaRows: any[], rawRows: any[]): void;
12
- export declare function validateSqlStructure(query: Prisma.Sql): {
13
- sql: string;
14
- params: unknown[];
15
- };
16
- export declare function testPagination(prisma: any, tableVersionId: string, generator: any, options: any): Promise<void>;
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runPrismaOrmRows = runPrismaOrmRows;
4
- exports.runViaPrismaRaw = runViaPrismaRaw;
5
- exports.compareByIds = compareByIds;
6
- exports.compareExactly = compareExactly;
7
- exports.validateSqlStructure = validateSqlStructure;
8
- exports.testPagination = testPagination;
9
- async function runPrismaOrmRows(prisma, { tableVersionId, where, orderBy, take = 50, skip = 0, }) {
10
- return prisma.table
11
- .findUniqueOrThrow({ where: { versionId: tableVersionId } })
12
- .rows({ take, skip, orderBy, where });
13
- }
14
- async function runViaPrismaRaw(prisma, sqlNode) {
15
- return prisma.$queryRaw(sqlNode);
16
- }
17
- function compareByIds(prismaRows, rawRows) {
18
- expect(rawRows.length).toBe(prismaRows.length);
19
- if (!rawRows.length)
20
- return;
21
- const prismaIds = prismaRows
22
- .map((r) => r.id)
23
- .slice()
24
- .sort();
25
- const rawIds = rawRows
26
- .map((r) => r.id)
27
- .slice()
28
- .sort();
29
- expect(rawIds).toEqual(prismaIds);
30
- }
31
- function compareExactly(prismaRows, rawRows) {
32
- expect(rawRows.length).toBe(prismaRows.length);
33
- if (!rawRows.length)
34
- return;
35
- const prismaIds = prismaRows.map((r) => r.id);
36
- const rawIds = rawRows.map((r) => r.id);
37
- expect(rawIds).toEqual(prismaIds);
38
- }
39
- function validateSqlStructure(query) {
40
- const sql = query.inspect().sql;
41
- expect(sql).toContain('SELECT');
42
- expect(sql).toContain('FROM "Row" r');
43
- expect(sql).toContain('INNER JOIN "_RowToTable" rt');
44
- expect(sql).toContain('WHERE rt."B" =');
45
- expect(sql).toContain('ORDER BY');
46
- expect(sql).toContain('LIMIT');
47
- expect(sql).toContain('OFFSET');
48
- const params = query.inspect().values;
49
- expect(Array.isArray(params)).toBe(true);
50
- return { sql, params };
51
- }
52
- async function testPagination(prisma, tableVersionId, generator, options) {
53
- const scenarios = [
54
- { take: 5, skip: 0 },
55
- { take: 5, skip: 5 },
56
- { take: 10, skip: 0 },
57
- { take: 50, skip: 0 },
58
- ];
59
- for (const scenario of scenarios) {
60
- const testOptions = { ...options, ...scenario };
61
- const prismaResult = await runPrismaOrmRows(prisma, {
62
- tableVersionId,
63
- ...testOptions,
64
- });
65
- const query = generator.generateGetRowsQueryPrisma(tableVersionId, testOptions);
66
- const rawResult = await runViaPrismaRaw(prisma, query);
67
- compareByIds(prismaResult, rawResult);
68
- }
69
- }
70
- //# sourceMappingURL=shared-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-helpers.js","sourceRoot":"","sources":["../../../../../src/utils/prisma-sql-generator/__tests__/shared-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { PrismaService } from '../../../infrastructure/database/prisma.service';
2
- export interface TestRow {
3
- id: string;
4
- data?: any;
5
- [key: string]: any;
6
- }
7
- export declare function createTableWithJsonData(prismaService: PrismaService): Promise<{
8
- table: {
9
- id: string;
10
- createdId: string;
11
- createdAt: Date;
12
- versionId: string;
13
- readonly: boolean;
14
- updatedAt: Date;
15
- system: boolean;
16
- };
17
- }>;
18
- export declare function createTableWithStringData(prismaService: PrismaService): Promise<{
19
- table: {
20
- id: string;
21
- createdId: string;
22
- createdAt: Date;
23
- versionId: string;
24
- readonly: boolean;
25
- updatedAt: Date;
26
- system: boolean;
27
- };
28
- }>;
29
- export declare function createTableWithDateData(prismaService: PrismaService): Promise<{
30
- table: {
31
- id: string;
32
- createdId: string;
33
- createdAt: Date;
34
- versionId: string;
35
- readonly: boolean;
36
- updatedAt: Date;
37
- system: boolean;
38
- };
39
- baseDate: Date;
40
- dates: Date[];
41
- }>;
42
- export declare function createTableWithComplexJsonData(prismaService: PrismaService): Promise<{
43
- table: {
44
- id: string;
45
- createdId: string;
46
- createdAt: Date;
47
- versionId: string;
48
- readonly: boolean;
49
- updatedAt: Date;
50
- system: boolean;
51
- };
52
- }>;
@@ -1,531 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTableWithJsonData = createTableWithJsonData;
4
- exports.createTableWithStringData = createTableWithStringData;
5
- exports.createTableWithDateData = createTableWithDateData;
6
- exports.createTableWithComplexJsonData = createTableWithComplexJsonData;
7
- const nanoid_1 = require("nanoid");
8
- async function createTableWithJsonData(prismaService) {
9
- const branch = await prismaService.branch.create({
10
- data: {
11
- id: (0, nanoid_1.nanoid)(),
12
- name: (0, nanoid_1.nanoid)(),
13
- project: {
14
- create: {
15
- id: (0, nanoid_1.nanoid)(),
16
- name: (0, nanoid_1.nanoid)(),
17
- organization: {
18
- create: {
19
- id: (0, nanoid_1.nanoid)(),
20
- createdId: (0, nanoid_1.nanoid)(),
21
- },
22
- },
23
- },
24
- },
25
- },
26
- });
27
- const revision = await prismaService.revision.create({
28
- data: {
29
- id: (0, nanoid_1.nanoid)(),
30
- branch: {
31
- connect: {
32
- id: branch.id,
33
- },
34
- },
35
- },
36
- });
37
- const table = await prismaService.table.create({
38
- data: {
39
- id: (0, nanoid_1.nanoid)(),
40
- createdId: (0, nanoid_1.nanoid)(),
41
- versionId: (0, nanoid_1.nanoid)(),
42
- revisions: {
43
- connect: {
44
- id: revision.id,
45
- },
46
- },
47
- },
48
- });
49
- const testRows = [
50
- {
51
- id: 'json-test-1',
52
- data: {
53
- name: 'Alice',
54
- age: 35,
55
- title: 'Senior Developer',
56
- category: 'admin',
57
- },
58
- meta: {},
59
- readonly: false,
60
- },
61
- {
62
- id: 'json-test-2',
63
- data: {
64
- name: 'Bob',
65
- age: 25,
66
- title: 'Developer',
67
- category: 'user',
68
- },
69
- meta: {},
70
- readonly: true,
71
- },
72
- {
73
- id: 'json-test-3',
74
- data: {
75
- name: 'Charlie',
76
- age: 45,
77
- title: 'Manager',
78
- category: 'guest',
79
- },
80
- meta: {},
81
- readonly: false,
82
- },
83
- {
84
- id: 'json-test-4',
85
- data: {
86
- name: 'David',
87
- age: 30,
88
- title: 'Lead Developer',
89
- category: 'admin',
90
- tags: ['typescript', 'react'],
91
- },
92
- meta: {},
93
- readonly: false,
94
- },
95
- {
96
- id: 'json-test-5',
97
- data: {
98
- name: 'Eve',
99
- age: 28,
100
- title: 'UI Designer',
101
- category: 'user',
102
- user: {
103
- profile: {
104
- name: 'Eve Profile',
105
- age: 28,
106
- bio: 'Senior UI/UX Designer with expertise in modern web technologies',
107
- settings: {
108
- theme: 'dark',
109
- },
110
- },
111
- },
112
- },
113
- meta: {},
114
- readonly: true,
115
- },
116
- ];
117
- for (const rowData of testRows) {
118
- await prismaService.row.create({
119
- data: {
120
- id: rowData.id,
121
- createdId: (0, nanoid_1.nanoid)(),
122
- versionId: (0, nanoid_1.nanoid)(),
123
- readonly: rowData.readonly,
124
- data: rowData.data,
125
- meta: rowData.meta,
126
- hash: (0, nanoid_1.nanoid)(),
127
- schemaHash: (0, nanoid_1.nanoid)(),
128
- tables: {
129
- connect: { versionId: table.versionId },
130
- },
131
- },
132
- });
133
- }
134
- return { table };
135
- }
136
- async function createTableWithStringData(prismaService) {
137
- const branch = await prismaService.branch.create({
138
- data: {
139
- id: (0, nanoid_1.nanoid)(),
140
- name: (0, nanoid_1.nanoid)(),
141
- project: {
142
- create: {
143
- id: (0, nanoid_1.nanoid)(),
144
- name: (0, nanoid_1.nanoid)(),
145
- organization: {
146
- create: {
147
- id: (0, nanoid_1.nanoid)(),
148
- createdId: (0, nanoid_1.nanoid)(),
149
- },
150
- },
151
- },
152
- },
153
- },
154
- });
155
- const revision = await prismaService.revision.create({
156
- data: {
157
- id: (0, nanoid_1.nanoid)(),
158
- branch: {
159
- connect: {
160
- id: branch.id,
161
- },
162
- },
163
- },
164
- });
165
- const table = await prismaService.table.create({
166
- data: {
167
- id: (0, nanoid_1.nanoid)(),
168
- createdId: (0, nanoid_1.nanoid)(),
169
- versionId: (0, nanoid_1.nanoid)(),
170
- revisions: {
171
- connect: {
172
- id: revision.id,
173
- },
174
- },
175
- },
176
- });
177
- const testRows = [
178
- {
179
- id: 'user-1',
180
- createdId: 'created-alpha',
181
- hash: 'hash-special-123',
182
- schemaHash: 'schema-SPECIAL-456',
183
- data: { category: 'admin' },
184
- },
185
- {
186
- id: 'user-2',
187
- createdId: 'created-beta',
188
- hash: 'hash-normal-789',
189
- schemaHash: 'schema-normal-012',
190
- data: { category: 'user' },
191
- },
192
- {
193
- id: 'admin-1',
194
- createdId: 'created-gamma',
195
- hash: 'hash-SPECIAL-345',
196
- schemaHash: 'schema-test-678',
197
- data: { category: 'admin' },
198
- },
199
- ];
200
- for (const rowData of testRows) {
201
- await prismaService.row.create({
202
- data: {
203
- id: rowData.id,
204
- createdId: rowData.createdId,
205
- versionId: (0, nanoid_1.nanoid)(),
206
- readonly: false,
207
- data: rowData.data,
208
- meta: {},
209
- hash: rowData.hash,
210
- schemaHash: rowData.schemaHash,
211
- tables: {
212
- connect: { versionId: table.versionId },
213
- },
214
- },
215
- });
216
- }
217
- return { table };
218
- }
219
- async function createTableWithDateData(prismaService) {
220
- const branch = await prismaService.branch.create({
221
- data: {
222
- id: (0, nanoid_1.nanoid)(),
223
- name: (0, nanoid_1.nanoid)(),
224
- project: {
225
- create: {
226
- id: (0, nanoid_1.nanoid)(),
227
- name: (0, nanoid_1.nanoid)(),
228
- organization: {
229
- create: {
230
- id: (0, nanoid_1.nanoid)(),
231
- createdId: (0, nanoid_1.nanoid)(),
232
- },
233
- },
234
- },
235
- },
236
- },
237
- });
238
- const revision = await prismaService.revision.create({
239
- data: {
240
- id: (0, nanoid_1.nanoid)(),
241
- branch: {
242
- connect: {
243
- id: branch.id,
244
- },
245
- },
246
- },
247
- });
248
- const table = await prismaService.table.create({
249
- data: {
250
- id: (0, nanoid_1.nanoid)(),
251
- createdId: (0, nanoid_1.nanoid)(),
252
- versionId: (0, nanoid_1.nanoid)(),
253
- revisions: {
254
- connect: {
255
- id: revision.id,
256
- },
257
- },
258
- },
259
- });
260
- const baseDate = new Date('2025-01-01T00:00:00.000Z');
261
- const dates = [
262
- new Date('2024-12-01T00:00:00.000Z'),
263
- new Date('2025-01-01T00:00:00.000Z'),
264
- new Date('2025-01-15T00:00:00.000Z'),
265
- new Date('2025-02-01T00:00:00.000Z'),
266
- ];
267
- for (let i = 0; i < dates.length; i++) {
268
- await prismaService.row.create({
269
- data: {
270
- id: `date-test-${i + 1}`,
271
- createdId: (0, nanoid_1.nanoid)(),
272
- versionId: (0, nanoid_1.nanoid)(),
273
- readonly: false,
274
- createdAt: dates[i],
275
- updatedAt: dates[i],
276
- publishedAt: dates[i],
277
- data: { index: i },
278
- meta: {},
279
- hash: (0, nanoid_1.nanoid)(),
280
- schemaHash: (0, nanoid_1.nanoid)(),
281
- tables: {
282
- connect: { versionId: table.versionId },
283
- },
284
- },
285
- });
286
- }
287
- return { table, baseDate, dates };
288
- }
289
- async function createTableWithComplexJsonData(prismaService) {
290
- const branch = await prismaService.branch.create({
291
- data: {
292
- id: (0, nanoid_1.nanoid)(),
293
- name: (0, nanoid_1.nanoid)(),
294
- project: {
295
- create: {
296
- id: (0, nanoid_1.nanoid)(),
297
- name: (0, nanoid_1.nanoid)(),
298
- organization: {
299
- create: {
300
- id: (0, nanoid_1.nanoid)(),
301
- createdId: (0, nanoid_1.nanoid)(),
302
- },
303
- },
304
- },
305
- },
306
- },
307
- });
308
- const revision = await prismaService.revision.create({
309
- data: {
310
- id: (0, nanoid_1.nanoid)(),
311
- branch: {
312
- connect: {
313
- id: branch.id,
314
- },
315
- },
316
- },
317
- });
318
- const table = await prismaService.table.create({
319
- data: {
320
- id: (0, nanoid_1.nanoid)(),
321
- createdId: (0, nanoid_1.nanoid)(),
322
- versionId: (0, nanoid_1.nanoid)(),
323
- revisions: {
324
- connect: {
325
- id: revision.id,
326
- },
327
- },
328
- },
329
- });
330
- const testRows = [
331
- {
332
- id: 'complex-1',
333
- data: {
334
- name: 'Alice',
335
- category: 'admin',
336
- priority: 1,
337
- active: true,
338
- score: 95.5,
339
- createdDate: '2025-01-01T10:00:00.000Z',
340
- lastLogin: '2025-01-15T14:30:00.000Z',
341
- user: {
342
- age: 35,
343
- profile: {
344
- name: 'Alice Profile',
345
- settings: {
346
- theme: 'dark',
347
- },
348
- },
349
- },
350
- tags: ['admin', 'typescript', 'react'],
351
- products: [
352
- { name: 'Product A', price: 99.99 },
353
- { name: 'Product B', price: 149.5 },
354
- ],
355
- scores: [85, 90, 95],
356
- reviews: [
357
- { rating: 4.5, comment: 'Great!' },
358
- { rating: 5.0, comment: 'Excellent!' },
359
- ],
360
- },
361
- meta: {
362
- score: 88.5,
363
- category: 'premium',
364
- },
365
- readonly: false,
366
- },
367
- {
368
- id: 'complex-2',
369
- data: {
370
- name: 'Bob',
371
- category: 'user',
372
- priority: 3,
373
- active: false,
374
- score: 78.2,
375
- createdDate: '2024-12-15T08:30:00.000Z',
376
- lastLogin: '2025-01-10T09:15:00.000Z',
377
- user: {
378
- age: 25,
379
- profile: {
380
- name: 'Bob Profile',
381
- settings: {
382
- theme: 'light',
383
- },
384
- },
385
- },
386
- tags: ['user', 'javascript', 'vue'],
387
- products: [
388
- { name: 'Product C', price: 79.99 },
389
- { name: 'Product D', price: 199.0 },
390
- ],
391
- scores: [70, 75, 80],
392
- reviews: [
393
- { rating: 3.5, comment: 'Good' },
394
- { rating: 4.0, comment: 'Nice' },
395
- ],
396
- },
397
- meta: {
398
- score: 72.8,
399
- category: 'standard',
400
- },
401
- readonly: true,
402
- },
403
- {
404
- id: 'complex-3',
405
- data: {
406
- name: 'Charlie',
407
- category: 'guest',
408
- priority: 2,
409
- active: true,
410
- score: 89.7,
411
- createdDate: '2024-11-20T16:45:00.000Z',
412
- lastLogin: '2025-01-20T11:00:00.000Z',
413
- user: {
414
- age: 42,
415
- profile: {
416
- name: 'Charlie Profile',
417
- settings: {
418
- theme: 'auto',
419
- },
420
- },
421
- },
422
- tags: ['guest', 'python', 'django'],
423
- products: [
424
- { name: 'Product E', price: 129.99 },
425
- { name: 'Product F', price: 89.5 },
426
- ],
427
- scores: [88, 92, 87],
428
- reviews: [
429
- { rating: 4.8, comment: 'Amazing!' },
430
- { rating: 4.2, comment: 'Very good!' },
431
- ],
432
- },
433
- meta: {
434
- score: 91.2,
435
- category: 'premium',
436
- },
437
- readonly: false,
438
- },
439
- {
440
- id: 'complex-4',
441
- data: {
442
- name: 'David',
443
- category: 'admin',
444
- priority: 1,
445
- active: true,
446
- score: 92.1,
447
- createdDate: '2025-01-05T12:00:00.000Z',
448
- lastLogin: '2025-01-18T16:45:00.000Z',
449
- user: {
450
- age: 31,
451
- profile: {
452
- name: 'David Profile',
453
- settings: {
454
- theme: 'dark',
455
- },
456
- },
457
- },
458
- tags: ['admin', 'nodejs', 'express'],
459
- products: [
460
- { name: 'Product G', price: 159.99 },
461
- { name: 'Product H', price: 299.0 },
462
- ],
463
- scores: [90, 95, 89],
464
- reviews: [
465
- { rating: 4.9, comment: 'Outstanding!' },
466
- { rating: 4.7, comment: 'Superb!' },
467
- ],
468
- },
469
- meta: {
470
- score: 94.8,
471
- category: 'premium',
472
- },
473
- readonly: false,
474
- },
475
- {
476
- id: 'complex-5',
477
- data: {
478
- name: 'Eve',
479
- category: 'user',
480
- priority: 4,
481
- active: false,
482
- score: 81.3,
483
- createdDate: '2024-10-30T07:20:00.000Z',
484
- lastLogin: '2025-01-05T13:30:00.000Z',
485
- user: {
486
- age: 28,
487
- profile: {
488
- name: 'Eve Profile',
489
- settings: {
490
- theme: 'light',
491
- },
492
- },
493
- },
494
- tags: ['user', 'css', 'sass'],
495
- products: [
496
- { name: 'Product I', price: 49.99 },
497
- { name: 'Product J', price: 119.0 },
498
- ],
499
- scores: [78, 82, 85],
500
- reviews: [
501
- { rating: 3.8, comment: 'Pretty good' },
502
- { rating: 4.1, comment: 'Nice work' },
503
- ],
504
- },
505
- meta: {
506
- score: 79.5,
507
- category: 'standard',
508
- },
509
- readonly: true,
510
- },
511
- ];
512
- for (const rowData of testRows) {
513
- await prismaService.row.create({
514
- data: {
515
- id: rowData.id,
516
- createdId: (0, nanoid_1.nanoid)(),
517
- versionId: (0, nanoid_1.nanoid)(),
518
- readonly: rowData.readonly,
519
- data: rowData.data,
520
- meta: rowData.meta,
521
- hash: (0, nanoid_1.nanoid)(),
522
- schemaHash: (0, nanoid_1.nanoid)(),
523
- tables: {
524
- connect: { versionId: table.versionId },
525
- },
526
- },
527
- });
528
- }
529
- return { table };
530
- }
531
- //# sourceMappingURL=test-helpers.js.map