@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.
- package/dist/package.json +3 -1
- package/dist/src/__tests__/utils/queryTest.d.ts +1 -1
- package/dist/src/__tests__/utils/queryTest.js +1 -1
- package/dist/src/__tests__/utils/queryTest.js.map +1 -1
- package/dist/src/api/graphql-api/graphql-api.module.js +2 -0
- package/dist/src/api/graphql-api/graphql-api.module.js.map +1 -1
- package/dist/src/api/graphql-api/registerGraphqlEnums.js +2 -0
- package/dist/src/api/graphql-api/registerGraphqlEnums.js.map +1 -1
- package/dist/src/api/graphql-api/row/inputs/get-rows.input.d.ts +19 -1
- package/dist/src/api/graphql-api/row/inputs/get-rows.input.js +30 -1
- package/dist/src/api/graphql-api/row/inputs/get-rows.input.js.map +1 -1
- package/dist/src/api/graphql-api/row/row.resolver.d.ts +9 -11
- package/dist/src/api/graphql-api/row/row.resolver.js +15 -17
- package/dist/src/api/graphql-api/row/row.resolver.js.map +1 -1
- package/dist/src/api/graphql-api/table/table.resolver.d.ts +5 -3
- package/dist/src/api/graphql-api/table/table.resolver.js +7 -6
- package/dist/src/api/graphql-api/table/table.resolver.js.map +1 -1
- package/dist/src/api/rest-api/rest-api.module.js +2 -0
- package/dist/src/api/rest-api/rest-api.module.js.map +1 -1
- package/dist/src/api/rest-api/row/row-by-id.controller.d.ts +5 -3
- package/dist/src/api/rest-api/row/row-by-id.controller.js +20 -10
- package/dist/src/api/rest-api/row/row-by-id.controller.js.map +1 -1
- package/dist/src/api/rest-api/share/model/order-by.model.d.ts +21 -1
- package/dist/src/api/rest-api/share/model/order-by.model.js +38 -1
- package/dist/src/api/rest-api/share/model/order-by.model.js.map +1 -1
- package/dist/src/api/rest-api/share/validators/is-unique-order-by-fields.validator.js +6 -2
- package/dist/src/api/rest-api/share/validators/is-unique-order-by-fields.validator.js.map +1 -1
- package/dist/src/api/rest-api/share/validators/is-valid-data-field-order.validator.d.ts +2 -0
- package/dist/src/api/rest-api/share/validators/is-valid-data-field-order.validator.js +30 -0
- package/dist/src/api/rest-api/share/validators/is-valid-data-field-order.validator.js.map +1 -0
- package/dist/src/api/rest-api/table/dto/get-table-rows.dto.js +4 -0
- package/dist/src/api/rest-api/table/dto/get-table-rows.dto.js.map +1 -1
- package/dist/src/api/rest-api/table/table-by-id.controller.d.ts +3 -1
- package/dist/src/api/rest-api/table/table-by-id.controller.js +8 -8
- package/dist/src/api/rest-api/table/table-by-id.controller.js.map +1 -1
- package/dist/src/api/utils/mapToPrismaOrderBy.d.ts +10 -0
- package/dist/src/api/utils/mapToPrismaOrderBy.js +27 -0
- package/dist/src/api/utils/mapToPrismaOrderBy.js.map +1 -0
- package/dist/src/features/draft/commands/handlers/__tests__/utils.js +6 -4
- package/dist/src/features/draft/commands/handlers/__tests__/utils.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-base-row.handler.d.ts +4 -3
- package/dist/src/features/draft/commands/handlers/api-base-row.handler.js +4 -4
- package/dist/src/features/draft/commands/handlers/api-base-row.handler.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-create-revision.handler.js +1 -1
- package/dist/src/features/draft/commands/handlers/api-create-revision.handler.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-create-row.handler.d.ts +3 -1
- package/dist/src/features/draft/commands/handlers/api-create-row.handler.js +6 -3
- package/dist/src/features/draft/commands/handlers/api-create-row.handler.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-patch-row.handler.d.ts +3 -1
- package/dist/src/features/draft/commands/handlers/api-patch-row.handler.js +6 -3
- package/dist/src/features/draft/commands/handlers/api-patch-row.handler.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-rename-row.handler.d.ts +3 -1
- package/dist/src/features/draft/commands/handlers/api-rename-row.handler.js +6 -3
- package/dist/src/features/draft/commands/handlers/api-rename-row.handler.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-update-row.handler.d.ts +3 -1
- package/dist/src/features/draft/commands/handlers/api-update-row.handler.js +6 -3
- package/dist/src/features/draft/commands/handlers/api-update-row.handler.js.map +1 -1
- package/dist/src/features/draft/commands/handlers/api-upload-file.handler.d.ts +3 -1
- package/dist/src/features/draft/commands/handlers/api-upload-file.handler.js +6 -3
- package/dist/src/features/draft/commands/handlers/api-upload-file.handler.js.map +1 -1
- package/dist/src/features/draft/commands/impl/api-patch-row.command.d.ts +2 -2
- package/dist/src/features/draft/commands/impl/api-rename-row.command.d.ts +2 -2
- package/dist/src/features/draft/commands/impl/api-upload-file.command.d.ts +2 -2
- package/dist/src/features/draft/commands/types/api-create-row.handler.types.d.ts +2 -2
- package/dist/src/features/draft/commands/types/api-update-row.handler.types.d.ts +2 -2
- package/dist/src/features/draft/draft.module.js +2 -0
- package/dist/src/features/draft/draft.module.js.map +1 -1
- package/dist/src/features/endpoint/commands/handlers/create-endpoint.handler.d.ts +2 -2
- package/dist/src/features/endpoint/commands/handlers/create-endpoint.handler.js +2 -2
- package/dist/src/features/endpoint/commands/handlers/create-endpoint.handler.js.map +1 -1
- package/dist/src/features/endpoint/commands/handlers/delete-endpoint.handler.js +1 -1
- package/dist/src/features/endpoint/commands/handlers/delete-endpoint.handler.js.map +1 -1
- package/dist/src/features/endpoint/commands/impl/create-endpoint.command.d.ts +2 -0
- package/dist/src/features/project/commands/handlers/delete-project.handler.js +3 -3
- package/dist/src/features/project/commands/handlers/delete-project.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/get-row-by-id.handler.d.ts +2 -3
- package/dist/src/features/row/queries/handlers/get-row-by-id.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/get-row.handler.d.ts +3 -4
- package/dist/src/features/row/queries/handlers/get-row.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/get-rows.handler.d.ts +21 -5
- package/dist/src/features/row/queries/handlers/get-rows.handler.js +23 -20
- package/dist/src/features/row/queries/handlers/get-rows.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-by.handler.d.ts +3 -4
- package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-by.handler.js +2 -2
- package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-by.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-to.handler.d.ts +2 -2
- package/dist/src/features/row/queries/handlers/resolve-row-count-foreign-keys-to.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-by.handler.d.ts +1 -2
- package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-by.handler.js.map +1 -1
- package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-to.handler.d.ts +1 -2
- package/dist/src/features/row/queries/handlers/resolve-row-foreign-keys-to.handler.js.map +1 -1
- package/dist/src/features/row/queries/impl/get-row-by-id.query.d.ts +3 -0
- package/dist/src/features/row/queries/impl/get-row-by-id.query.js.map +1 -1
- package/dist/src/features/row/queries/impl/get-row.query.d.ts +3 -0
- package/dist/src/features/row/queries/impl/get-row.query.js.map +1 -1
- package/dist/src/features/row/queries/impl/get-rows.query.d.ts +15 -2
- package/dist/src/features/row/queries/impl/get-rows.query.js.map +1 -1
- package/dist/src/features/row/queries/impl/resolve-row-count-foreign-keys-by.query.d.ts +2 -0
- package/dist/src/features/row/queries/impl/resolve-row-count-foreign-keys-to.query.d.ts +2 -0
- package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-by.query.d.ts +4 -0
- package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-by.query.js.map +1 -1
- package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-to.query.d.ts +4 -0
- package/dist/src/features/row/queries/impl/resolve-row-foreign-keys-to.query.js.map +1 -1
- package/dist/src/features/row/row-api.service.d.ts +13 -0
- package/dist/src/features/row/row-api.service.js +47 -0
- package/dist/src/features/row/row-api.service.js.map +1 -0
- package/dist/src/features/row/row.module.js +3 -1
- package/dist/src/features/row/row.module.js.map +1 -1
- package/dist/src/features/share/commands/handlers/notify-endpoints.handler.js +1 -1
- package/dist/src/features/share/commands/handlers/notify-endpoints.handler.js.map +1 -1
- package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.js +1 -0
- package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.js.map +1 -1
- package/dist/src/features/share/foreign-keys.service.d.ts +7 -4
- package/dist/src/features/share/foreign-keys.service.js +77 -38
- package/dist/src/features/share/foreign-keys.service.js.map +1 -1
- package/dist/src/features/share/queries/handlers/transactional/find-table-in-revision-or-throw.handler.d.ts +1 -1
- package/dist/src/features/share/queries/handlers/transactional/find-table-in-revision-or-throw.handler.js +3 -3
- package/dist/src/features/share/queries/handlers/transactional/find-table-in-revision-or-throw.handler.js.map +1 -1
- package/dist/src/features/table/queries/handlers/index.d.ts +1 -2
- package/dist/src/features/table/queries/handlers/index.js +0 -2
- package/dist/src/features/table/queries/handlers/index.js.map +1 -1
- package/dist/src/infrastructure/database/database.module.js +3 -0
- package/dist/src/infrastructure/database/database.module.js.map +1 -1
- package/dist/src/infrastructure/database/postgresql-notification.service.d.ts +7 -0
- package/dist/src/infrastructure/database/postgresql-notification.service.js +33 -0
- package/dist/src/infrastructure/database/postgresql-notification.service.js.map +1 -0
- package/dist/src/infrastructure/database/transaction-prisma.service.d.ts +1 -0
- package/dist/src/infrastructure/database/transaction-prisma.service.js +3 -0
- package/dist/src/infrastructure/database/transaction-prisma.service.js.map +1 -1
- package/dist/src/infrastructure/notification/endpoint-notification.service.d.ts +7 -7
- package/dist/src/infrastructure/notification/endpoint-notification.service.js +15 -15
- package/dist/src/infrastructure/notification/endpoint-notification.service.js.map +1 -1
- package/dist/src/infrastructure/notification/notification.module.js +2 -1
- package/dist/src/infrastructure/notification/notification.module.js.map +1 -1
- package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.d.ts +16 -0
- package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js +70 -0
- package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js.map +1 -0
- package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.d.ts +52 -0
- package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js +531 -0
- package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js.map +1 -0
- package/dist/src/utils/prisma-sql-generator/index.d.ts +2 -0
- package/dist/src/{features/row/queries/types → utils/prisma-sql-generator}/index.js +5 -5
- package/dist/src/utils/prisma-sql-generator/index.js.map +1 -0
- package/dist/src/utils/prisma-sql-generator/json-path.d.ts +14 -0
- package/dist/src/utils/prisma-sql-generator/json-path.js +121 -0
- package/dist/src/utils/prisma-sql-generator/json-path.js.map +1 -0
- package/dist/src/utils/prisma-sql-generator/types.d.ts +105 -0
- package/dist/src/{features/row/queries/types/get-row.types.js → utils/prisma-sql-generator/types.js} +1 -1
- package/dist/src/utils/prisma-sql-generator/types.js.map +1 -0
- package/dist/src/utils/prisma-sql-generator/where-generator.prisma.d.ts +21 -0
- package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js +499 -0
- package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -1
- package/dist/src/__tests__/utils/createMocks.d.ts +0 -19
- package/dist/src/__tests__/utils/createMocks.js +0 -30
- package/dist/src/__tests__/utils/createMocks.js.map +0 -1
- package/dist/src/api/graphql-api/share/mapToPrismaOrderBy.d.ts +0 -3
- package/dist/src/api/graphql-api/share/mapToPrismaOrderBy.js +0 -12
- package/dist/src/api/graphql-api/share/mapToPrismaOrderBy.js.map +0 -1
- package/dist/src/api/rest-api/share/utils/mapToPrismaOrderBy.d.ts +0 -3
- package/dist/src/api/rest-api/share/utils/mapToPrismaOrderBy.js +0 -12
- package/dist/src/api/rest-api/share/utils/mapToPrismaOrderBy.js.map +0 -1
- package/dist/src/features/row/queries/types/get-row-by-id.types.d.ts +0 -2
- package/dist/src/features/row/queries/types/get-row-by-id.types.js +0 -3
- package/dist/src/features/row/queries/types/get-row-by-id.types.js.map +0 -1
- package/dist/src/features/row/queries/types/get-row.types.d.ts +0 -2
- package/dist/src/features/row/queries/types/get-row.types.js.map +0 -1
- package/dist/src/features/row/queries/types/get-rows.types.d.ts +0 -3
- package/dist/src/features/row/queries/types/get-rows.types.js +0 -3
- package/dist/src/features/row/queries/types/get-rows.types.js.map +0 -1
- package/dist/src/features/row/queries/types/index.d.ts +0 -5
- package/dist/src/features/row/queries/types/index.js.map +0 -1
- package/dist/src/features/row/queries/types/resolve-row-foreign-keys-by.types.d.ts +0 -3
- package/dist/src/features/row/queries/types/resolve-row-foreign-keys-by.types.js +0 -3
- package/dist/src/features/row/queries/types/resolve-row-foreign-keys-by.types.js.map +0 -1
- package/dist/src/features/row/queries/types/resolve-row-foreign-keys-to.types.d.ts +0 -3
- package/dist/src/features/row/queries/types/resolve-row-foreign-keys-to.types.js +0 -3
- package/dist/src/features/row/queries/types/resolve-row-foreign-keys-to.types.js.map +0 -1
- package/dist/src/features/table/queries/handlers/get-rows-by-table.handler.d.ts +0 -30
- package/dist/src/features/table/queries/handlers/get-rows-by-table.handler.js +0 -70
- package/dist/src/features/table/queries/handlers/get-rows-by-table.handler.js.map +0 -1
- package/dist/src/features/table/queries/impl/get-rows-by-table.query.d.ts +0 -21
- package/dist/src/features/table/queries/impl/get-rows-by-table.query.js +0 -10
- 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
|
+
}
|
|
@@ -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;
|