@revisium/core 2.1.1 → 2.2.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 (185) hide show
  1. package/dist/package.json +3 -1
  2. package/dist/src/__tests__/utils/queryTest.d.ts +1 -1
  3. package/dist/src/__tests__/utils/queryTest.js +1 -1
  4. package/dist/src/__tests__/utils/queryTest.js.map +1 -1
  5. package/dist/src/api/graphql-api/graphql-api.module.js +2 -0
  6. package/dist/src/api/graphql-api/graphql-api.module.js.map +1 -1
  7. package/dist/src/api/graphql-api/registerGraphqlEnums.js +2 -0
  8. package/dist/src/api/graphql-api/registerGraphqlEnums.js.map +1 -1
  9. package/dist/src/api/graphql-api/row/inputs/get-rows.input.d.ts +19 -1
  10. package/dist/src/api/graphql-api/row/inputs/get-rows.input.js +30 -1
  11. package/dist/src/api/graphql-api/row/inputs/get-rows.input.js.map +1 -1
  12. package/dist/src/api/graphql-api/row/row.resolver.d.ts +9 -11
  13. package/dist/src/api/graphql-api/row/row.resolver.js +15 -17
  14. package/dist/src/api/graphql-api/row/row.resolver.js.map +1 -1
  15. package/dist/src/api/graphql-api/table/table.resolver.d.ts +5 -3
  16. package/dist/src/api/graphql-api/table/table.resolver.js +7 -6
  17. package/dist/src/api/graphql-api/table/table.resolver.js.map +1 -1
  18. package/dist/src/api/rest-api/rest-api.module.js +2 -0
  19. package/dist/src/api/rest-api/rest-api.module.js.map +1 -1
  20. package/dist/src/api/rest-api/row/row-by-id.controller.d.ts +5 -3
  21. package/dist/src/api/rest-api/row/row-by-id.controller.js +20 -10
  22. package/dist/src/api/rest-api/row/row-by-id.controller.js.map +1 -1
  23. package/dist/src/api/rest-api/share/model/order-by.model.d.ts +21 -1
  24. package/dist/src/api/rest-api/share/model/order-by.model.js +38 -1
  25. package/dist/src/api/rest-api/share/model/order-by.model.js.map +1 -1
  26. package/dist/src/api/rest-api/share/validators/is-unique-order-by-fields.validator.js +6 -2
  27. package/dist/src/api/rest-api/share/validators/is-unique-order-by-fields.validator.js.map +1 -1
  28. package/dist/src/api/rest-api/share/validators/is-valid-data-field-order.validator.d.ts +2 -0
  29. package/dist/src/api/rest-api/share/validators/is-valid-data-field-order.validator.js +30 -0
  30. package/dist/src/api/rest-api/share/validators/is-valid-data-field-order.validator.js.map +1 -0
  31. package/dist/src/api/rest-api/table/dto/get-table-rows.dto.js +4 -0
  32. package/dist/src/api/rest-api/table/dto/get-table-rows.dto.js.map +1 -1
  33. package/dist/src/api/rest-api/table/table-by-id.controller.d.ts +3 -1
  34. package/dist/src/api/rest-api/table/table-by-id.controller.js +8 -8
  35. package/dist/src/api/rest-api/table/table-by-id.controller.js.map +1 -1
  36. package/dist/src/api/utils/mapToPrismaOrderBy.d.ts +10 -0
  37. package/dist/src/api/utils/mapToPrismaOrderBy.js +27 -0
  38. package/dist/src/api/utils/mapToPrismaOrderBy.js.map +1 -0
  39. package/dist/src/features/draft/commands/handlers/__tests__/utils.js +6 -4
  40. package/dist/src/features/draft/commands/handlers/__tests__/utils.js.map +1 -1
  41. package/dist/src/features/draft/commands/handlers/api-base-row.handler.d.ts +4 -3
  42. package/dist/src/features/draft/commands/handlers/api-base-row.handler.js +4 -4
  43. package/dist/src/features/draft/commands/handlers/api-base-row.handler.js.map +1 -1
  44. package/dist/src/features/draft/commands/handlers/api-create-revision.handler.js +1 -1
  45. package/dist/src/features/draft/commands/handlers/api-create-revision.handler.js.map +1 -1
  46. package/dist/src/features/draft/commands/handlers/api-create-row.handler.d.ts +3 -1
  47. package/dist/src/features/draft/commands/handlers/api-create-row.handler.js +6 -3
  48. package/dist/src/features/draft/commands/handlers/api-create-row.handler.js.map +1 -1
  49. package/dist/src/features/draft/commands/handlers/api-patch-row.handler.d.ts +3 -1
  50. package/dist/src/features/draft/commands/handlers/api-patch-row.handler.js +6 -3
  51. package/dist/src/features/draft/commands/handlers/api-patch-row.handler.js.map +1 -1
  52. package/dist/src/features/draft/commands/handlers/api-rename-row.handler.d.ts +3 -1
  53. package/dist/src/features/draft/commands/handlers/api-rename-row.handler.js +6 -3
  54. package/dist/src/features/draft/commands/handlers/api-rename-row.handler.js.map +1 -1
  55. package/dist/src/features/draft/commands/handlers/api-update-row.handler.d.ts +3 -1
  56. package/dist/src/features/draft/commands/handlers/api-update-row.handler.js +6 -3
  57. package/dist/src/features/draft/commands/handlers/api-update-row.handler.js.map +1 -1
  58. package/dist/src/features/draft/commands/handlers/api-upload-file.handler.d.ts +3 -1
  59. package/dist/src/features/draft/commands/handlers/api-upload-file.handler.js +6 -3
  60. package/dist/src/features/draft/commands/handlers/api-upload-file.handler.js.map +1 -1
  61. package/dist/src/features/draft/commands/impl/api-patch-row.command.d.ts +2 -2
  62. package/dist/src/features/draft/commands/impl/api-rename-row.command.d.ts +2 -2
  63. package/dist/src/features/draft/commands/impl/api-upload-file.command.d.ts +2 -2
  64. package/dist/src/features/draft/commands/types/api-create-row.handler.types.d.ts +2 -2
  65. package/dist/src/features/draft/commands/types/api-update-row.handler.types.d.ts +2 -2
  66. package/dist/src/features/draft/draft.module.js +2 -0
  67. package/dist/src/features/draft/draft.module.js.map +1 -1
  68. package/dist/src/features/endpoint/commands/handlers/create-endpoint.handler.d.ts +2 -2
  69. package/dist/src/features/endpoint/commands/handlers/create-endpoint.handler.js +2 -2
  70. package/dist/src/features/endpoint/commands/handlers/create-endpoint.handler.js.map +1 -1
  71. package/dist/src/features/endpoint/commands/handlers/delete-endpoint.handler.js +1 -1
  72. package/dist/src/features/endpoint/commands/handlers/delete-endpoint.handler.js.map +1 -1
  73. package/dist/src/features/endpoint/commands/impl/create-endpoint.command.d.ts +2 -0
  74. package/dist/src/features/project/commands/handlers/delete-project.handler.js +3 -3
  75. package/dist/src/features/project/commands/handlers/delete-project.handler.js.map +1 -1
  76. package/dist/src/features/row/queries/handlers/get-row-by-id.handler.d.ts +2 -3
  77. package/dist/src/features/row/queries/handlers/get-row-by-id.handler.js.map +1 -1
  78. package/dist/src/features/row/queries/handlers/get-row.handler.d.ts +3 -4
  79. package/dist/src/features/row/queries/handlers/get-row.handler.js.map +1 -1
  80. package/dist/src/features/row/queries/handlers/get-rows.handler.d.ts +21 -5
  81. package/dist/src/features/row/queries/handlers/get-rows.handler.js +23 -20
  82. package/dist/src/features/row/queries/handlers/get-rows.handler.js.map +1 -1
  83. package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-by.handler.d.ts +3 -4
  84. package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-by.handler.js +2 -2
  85. package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-by.handler.js.map +1 -1
  86. package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-to.handler.d.ts +2 -2
  87. package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-to.handler.js.map +1 -1
  88. package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-by.handler.d.ts +1 -2
  89. package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-by.handler.js.map +1 -1
  90. package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-to.handler.d.ts +1 -2
  91. package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-to.handler.js.map +1 -1
  92. package/dist/src/features/row/queries/impl/get-row-by-id.query.d.ts +3 -0
  93. package/dist/src/features/row/queries/impl/get-row-by-id.query.js.map +1 -1
  94. package/dist/src/features/row/queries/impl/get-row.query.d.ts +3 -0
  95. package/dist/src/features/row/queries/impl/get-row.query.js.map +1 -1
  96. package/dist/src/features/row/queries/impl/get-rows.query.d.ts +15 -2
  97. package/dist/src/features/row/queries/impl/get-rows.query.js.map +1 -1
  98. package/dist/src/features/row/queries/impl/resolve-row-count-foreign-keys-by.query.d.ts +2 -0
  99. package/dist/src/features/row/queries/impl/resolve-row-count-foreign-keys-to.query.d.ts +2 -0
  100. package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-by.query.d.ts +4 -0
  101. package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-by.query.js.map +1 -1
  102. package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-to.query.d.ts +4 -0
  103. package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-to.query.js.map +1 -1
  104. package/dist/src/features/row/row-api.service.d.ts +13 -0
  105. package/dist/src/features/row/row-api.service.js +47 -0
  106. package/dist/src/features/row/row-api.service.js.map +1 -0
  107. package/dist/src/features/row/row.module.js +3 -1
  108. package/dist/src/features/row/row.module.js.map +1 -1
  109. package/dist/src/features/share/commands/handlers/notify-endpoints.handler.js +1 -1
  110. package/dist/src/features/share/commands/handlers/notify-endpoints.handler.js.map +1 -1
  111. package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.js +1 -0
  112. package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.js.map +1 -1
  113. package/dist/src/features/share/foreign-keys.service.d.ts +7 -4
  114. package/dist/src/features/share/foreign-keys.service.js +77 -38
  115. package/dist/src/features/share/foreign-keys.service.js.map +1 -1
  116. package/dist/src/features/share/queries/handlers/transactional/find-table-in-revision-or-throw.handler.d.ts +1 -1
  117. package/dist/src/features/share/queries/handlers/transactional/find-table-in-revision-or-throw.handler.js +3 -3
  118. package/dist/src/features/share/queries/handlers/transactional/find-table-in-revision-or-throw.handler.js.map +1 -1
  119. package/dist/src/features/table/queries/handlers/index.d.ts +1 -2
  120. package/dist/src/features/table/queries/handlers/index.js +0 -2
  121. package/dist/src/features/table/queries/handlers/index.js.map +1 -1
  122. package/dist/src/infrastructure/database/database.module.js +3 -0
  123. package/dist/src/infrastructure/database/database.module.js.map +1 -1
  124. package/dist/src/infrastructure/database/postgresql-notification.service.d.ts +7 -0
  125. package/dist/src/infrastructure/database/postgresql-notification.service.js +33 -0
  126. package/dist/src/infrastructure/database/postgresql-notification.service.js.map +1 -0
  127. package/dist/src/infrastructure/database/transaction-prisma.service.d.ts +1 -0
  128. package/dist/src/infrastructure/database/transaction-prisma.service.js +3 -0
  129. package/dist/src/infrastructure/database/transaction-prisma.service.js.map +1 -1
  130. package/dist/src/infrastructure/notification/endpoint-notification.service.d.ts +7 -7
  131. package/dist/src/infrastructure/notification/endpoint-notification.service.js +15 -15
  132. package/dist/src/infrastructure/notification/endpoint-notification.service.js.map +1 -1
  133. package/dist/src/infrastructure/notification/notification.module.js +2 -1
  134. package/dist/src/infrastructure/notification/notification.module.js.map +1 -1
  135. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.d.ts +16 -0
  136. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js +70 -0
  137. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js.map +1 -0
  138. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.d.ts +52 -0
  139. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js +531 -0
  140. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js.map +1 -0
  141. package/dist/src/utils/prisma-sql-generator/index.d.ts +2 -0
  142. package/dist/src/{features/row/queries/types → utils/prisma-sql-generator}/index.js +5 -5
  143. package/dist/src/utils/prisma-sql-generator/index.js.map +1 -0
  144. package/dist/src/utils/prisma-sql-generator/json-path.d.ts +14 -0
  145. package/dist/src/utils/prisma-sql-generator/json-path.js +121 -0
  146. package/dist/src/utils/prisma-sql-generator/json-path.js.map +1 -0
  147. package/dist/src/utils/prisma-sql-generator/types.d.ts +105 -0
  148. package/dist/src/{features/row/queries/types/get-row.types.js → utils/prisma-sql-generator/types.js} +1 -1
  149. package/dist/src/utils/prisma-sql-generator/types.js.map +1 -0
  150. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.d.ts +21 -0
  151. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js +499 -0
  152. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js.map +1 -0
  153. package/dist/tsconfig.build.tsbuildinfo +1 -1
  154. package/package.json +3 -1
  155. package/dist/src/__tests__/utils/createMocks.d.ts +0 -19
  156. package/dist/src/__tests__/utils/createMocks.js +0 -30
  157. package/dist/src/__tests__/utils/createMocks.js.map +0 -1
  158. package/dist/src/api/graphql-api/share/mapToPrismaOrderBy.d.ts +0 -3
  159. package/dist/src/api/graphql-api/share/mapToPrismaOrderBy.js +0 -12
  160. package/dist/src/api/graphql-api/share/mapToPrismaOrderBy.js.map +0 -1
  161. package/dist/src/api/rest-api/share/utils/mapToPrismaOrderBy.d.ts +0 -3
  162. package/dist/src/api/rest-api/share/utils/mapToPrismaOrderBy.js +0 -12
  163. package/dist/src/api/rest-api/share/utils/mapToPrismaOrderBy.js.map +0 -1
  164. package/dist/src/features/row/queries/types/get-row-by-id.types.d.ts +0 -2
  165. package/dist/src/features/row/queries/types/get-row-by-id.types.js +0 -3
  166. package/dist/src/features/row/queries/types/get-row-by-id.types.js.map +0 -1
  167. package/dist/src/features/row/queries/types/get-row.types.d.ts +0 -2
  168. package/dist/src/features/row/queries/types/get-row.types.js.map +0 -1
  169. package/dist/src/features/row/queries/types/get-rows.types.d.ts +0 -3
  170. package/dist/src/features/row/queries/types/get-rows.types.js +0 -3
  171. package/dist/src/features/row/queries/types/get-rows.types.js.map +0 -1
  172. package/dist/src/features/row/queries/types/index.d.ts +0 -5
  173. package/dist/src/features/row/queries/types/index.js.map +0 -1
  174. package/dist/src/features/row/queries/types/resolve-row-foreign-keys-by.types.d.ts +0 -3
  175. package/dist/src/features/row/queries/types/resolve-row-foreign-keys-by.types.js +0 -3
  176. package/dist/src/features/row/queries/types/resolve-row-foreign-keys-by.types.js.map +0 -1
  177. package/dist/src/features/row/queries/types/resolve-row-foreign-keys-to.types.d.ts +0 -3
  178. package/dist/src/features/row/queries/types/resolve-row-foreign-keys-to.types.js +0 -3
  179. package/dist/src/features/row/queries/types/resolve-row-foreign-keys-to.types.js.map +0 -1
  180. package/dist/src/features/table/queries/handlers/get-rows-by-table.handler.d.ts +0 -30
  181. package/dist/src/features/table/queries/handlers/get-rows-by-table.handler.js +0 -70
  182. package/dist/src/features/table/queries/handlers/get-rows-by-table.handler.js.map +0 -1
  183. package/dist/src/features/table/queries/impl/get-rows-by-table.query.d.ts +0 -21
  184. package/dist/src/features/table/queries/impl/get-rows-by-table.query.js +0 -10
  185. package/dist/src/features/table/queries/impl/get-rows-by-table.query.js.map +0 -1
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseJsonPath = parseJsonPath;
4
+ exports.getSqlType = getSqlType;
5
+ exports.validateJsonPath = validateJsonPath;
6
+ exports.hasArrayWildcard = hasArrayWildcard;
7
+ exports.buildJsonPathParam = buildJsonPathParam;
8
+ exports.handleArrayAggregation = handleArrayAggregation;
9
+ exports.findWildcardIndex = findWildcardIndex;
10
+ exports.splitPathAtWildcard = splitPathAtWildcard;
11
+ function parseJsonPath(path) {
12
+ if (typeof path !== 'string') {
13
+ throw new Error('JSON path must be a string');
14
+ }
15
+ const cleanPath = path.startsWith('$.') ? path.substring(2) : path;
16
+ if (!cleanPath.includes('[')) {
17
+ return cleanPath === '' ? [] : cleanPath.split('.');
18
+ }
19
+ const parts = [];
20
+ let current = '';
21
+ let inBracket = false;
22
+ for (let i = 0; i < cleanPath.length; i++) {
23
+ const char = cleanPath[i];
24
+ if (char === '[') {
25
+ if (current) {
26
+ parts.push(current);
27
+ current = '';
28
+ }
29
+ inBracket = true;
30
+ }
31
+ else if (char === ']') {
32
+ if (current) {
33
+ parts.push(current);
34
+ current = '';
35
+ }
36
+ inBracket = false;
37
+ }
38
+ else if (char === '.' && !inBracket) {
39
+ if (current) {
40
+ parts.push(current);
41
+ current = '';
42
+ }
43
+ }
44
+ else {
45
+ current += char;
46
+ }
47
+ }
48
+ if (current) {
49
+ parts.push(current);
50
+ }
51
+ return parts;
52
+ }
53
+ function getSqlType(type) {
54
+ switch (type) {
55
+ case 'text':
56
+ return 'text';
57
+ case 'int':
58
+ return 'int';
59
+ case 'float':
60
+ return 'float';
61
+ case 'boolean':
62
+ return 'boolean';
63
+ case 'timestamp':
64
+ return 'timestamp';
65
+ default:
66
+ if (process.env.NODE_ENV === 'development') {
67
+ console.warn(`Unknown JSON type "${type}", defaulting to "text"`);
68
+ }
69
+ return 'text';
70
+ }
71
+ }
72
+ function validateJsonPath(path) {
73
+ if (!Array.isArray(path)) {
74
+ throw new Error('JSON path must be an array');
75
+ }
76
+ if (path.length === 0) {
77
+ throw new Error('JSON path cannot be empty');
78
+ }
79
+ for (const segment of path) {
80
+ if (typeof segment !== 'string') {
81
+ throw new Error('All JSON path segments must be strings');
82
+ }
83
+ }
84
+ }
85
+ function hasArrayWildcard(path) {
86
+ const pathStr = Array.isArray(path) ? path.join('.') : path;
87
+ return pathStr.includes('[*]') || pathStr.includes('*');
88
+ }
89
+ function buildJsonPathParam(path) {
90
+ validateJsonPath(path);
91
+ return `{${path.join(',')}}`;
92
+ }
93
+ function handleArrayAggregation(path, aggregation) {
94
+ const modifiedPath = [...path];
95
+ if (aggregation === 'last') {
96
+ modifiedPath.push('-1');
97
+ }
98
+ else {
99
+ modifiedPath.push('0');
100
+ }
101
+ return modifiedPath;
102
+ }
103
+ function findWildcardIndex(path) {
104
+ return path.indexOf('*');
105
+ }
106
+ function splitPathAtWildcard(path) {
107
+ const starIndex = findWildcardIndex(path);
108
+ if (starIndex === -1) {
109
+ return {
110
+ beforeStar: path,
111
+ afterStar: [],
112
+ starIndex: -1,
113
+ };
114
+ }
115
+ return {
116
+ beforeStar: path.slice(0, starIndex),
117
+ afterStar: path.slice(starIndex + 1),
118
+ starIndex,
119
+ };
120
+ }
121
+ //# sourceMappingURL=json-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-path.js","sourceRoot":"","sources":["../../../../src/utils/prisma-sql-generator/json-path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ export interface WhereConditions {
2
+ versionId?: string | StringFilter;
3
+ createdId?: string | StringFilter;
4
+ id?: string | StringFilter;
5
+ hash?: string | StringFilter;
6
+ schemaHash?: string | StringFilter;
7
+ readonly?: boolean | BoolFilter;
8
+ createdAt?: string | Date | DateFilter;
9
+ updatedAt?: string | Date | DateFilter;
10
+ publishedAt?: string | Date | DateFilter;
11
+ data?: JsonFilter;
12
+ meta?: JsonFilter;
13
+ AND?: WhereConditions[];
14
+ OR?: WhereConditions[];
15
+ NOT?: WhereConditions;
16
+ }
17
+ export interface SqlResult {
18
+ sql: string;
19
+ params: any[];
20
+ }
21
+ export interface JsonFilter {
22
+ path: string[];
23
+ equals?: any;
24
+ string_contains?: string;
25
+ string_starts_with?: string;
26
+ string_ends_with?: string;
27
+ gt?: number;
28
+ gte?: number;
29
+ lt?: number;
30
+ lte?: number;
31
+ in?: any[];
32
+ notIn?: any[];
33
+ array_contains?: any;
34
+ array_starts_with?: any;
35
+ array_ends_with?: any;
36
+ not?: any;
37
+ mode?: 'default' | 'insensitive';
38
+ }
39
+ export interface DateFilter {
40
+ equals?: string | Date;
41
+ gt?: string | Date;
42
+ gte?: string | Date;
43
+ lt?: string | Date;
44
+ lte?: string | Date;
45
+ in?: (string | Date)[];
46
+ notIn?: (string | Date)[];
47
+ }
48
+ export interface BoolFilter {
49
+ equals?: boolean;
50
+ not?: boolean;
51
+ }
52
+ export interface StringFilter {
53
+ equals?: string;
54
+ contains?: string;
55
+ startsWith?: string;
56
+ endsWith?: string;
57
+ in?: string[];
58
+ notIn?: string[];
59
+ lt?: string;
60
+ lte?: string;
61
+ gt?: string;
62
+ gte?: string;
63
+ not?: string;
64
+ search?: string;
65
+ mode?: 'default' | 'insensitive';
66
+ }
67
+ export interface JsonOrderInput {
68
+ path: string | string[];
69
+ direction?: 'asc' | 'desc';
70
+ type?: JsonValueType;
71
+ aggregation?: JsonAggregation;
72
+ subPath?: string;
73
+ }
74
+ export interface RowOrderInput {
75
+ versionId?: 'asc' | 'desc';
76
+ createdId?: 'asc' | 'desc';
77
+ id?: 'asc' | 'desc';
78
+ readonly?: 'asc' | 'desc';
79
+ createdAt?: 'asc' | 'desc';
80
+ updatedAt?: 'asc' | 'desc';
81
+ publishedAt?: 'asc' | 'desc';
82
+ data?: 'asc' | 'desc' | JsonOrderInput;
83
+ meta?: 'asc' | 'desc' | JsonOrderInput;
84
+ hash?: 'asc' | 'desc';
85
+ schemaHash?: 'asc' | 'desc';
86
+ }
87
+ export type JsonValueType = 'text' | 'int' | 'float' | 'boolean' | 'timestamp';
88
+ export type JsonAggregation = 'min' | 'max' | 'avg' | 'first' | 'last';
89
+ export interface GetRowsQueryParams {
90
+ tableId: string;
91
+ take: number;
92
+ skip: number;
93
+ whereConditions?: WhereConditions;
94
+ orderBy?: RowOrderInput[];
95
+ }
96
+ export interface RenderedQuery {
97
+ sql: string;
98
+ params: any[];
99
+ }
100
+ export interface GetRowsOptions {
101
+ take?: number;
102
+ skip?: number;
103
+ orderBy?: RowOrderInput | RowOrderInput[];
104
+ where?: WhereConditions;
105
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=get-row.types.js.map
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/prisma-sql-generator/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { Prisma } from '@prisma/client';
2
+ import { WhereConditions, GetRowsOptions, RowOrderInput } from './types';
3
+ export declare class WhereGeneratorPrisma {
4
+ generateWhere(conditions?: WhereConditions): Prisma.Sql;
5
+ private processConditions;
6
+ private combineWithAnd;
7
+ private combineWithOr;
8
+ generateOrderBy(orderBy?: any[]): Prisma.Sql;
9
+ private processStringField;
10
+ private processBoolField;
11
+ private processDateField;
12
+ private processJsonField;
13
+ private static readonly VALID_ORDER_FIELDS;
14
+ private getFieldReference;
15
+ private combineOrderBy;
16
+ private generateJsonOrderBy;
17
+ private generateArrayAggregationOrder;
18
+ generateGetRowsQueryPrisma(tableId: string, options?: GetRowsOptions): Prisma.Sql;
19
+ generateGetRowsQuery(tableId: string, take: number, skip: number, whereConditions?: WhereConditions, orderBy?: RowOrderInput[]): Prisma.Sql;
20
+ }
21
+ export declare function generateGetRowsQueryPrisma(tableId: string, take: number, skip: number, whereConditions?: WhereConditions, orderBy?: any[]): Prisma.Sql;