@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.
- package/dist/package.json +2 -1
- package/dist/src/features/row/queries/handlers/get-rows.handler.d.ts +2 -4
- package/dist/src/features/row/queries/handlers/get-rows.handler.js +4 -24
- package/dist/src/features/row/queries/handlers/get-rows.handler.js.map +1 -1
- package/dist/src/features/row/queries/impl/get-rows.query.d.ts +3 -3
- package/dist/src/features/row/queries/impl/get-rows.query.js.map +1 -1
- package/dist/src/features/row/utils/get-rows-sql.d.ts +5 -0
- package/dist/src/features/row/utils/get-rows-sql.js +70 -0
- package/dist/src/features/row/utils/get-rows-sql.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.d.ts +0 -16
- package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js +0 -70
- package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js.map +0 -1
- package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.d.ts +0 -52
- package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js +0 -531
- package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js.map +0 -1
- package/dist/src/utils/prisma-sql-generator/index.d.ts +0 -2
- package/dist/src/utils/prisma-sql-generator/index.js +0 -22
- package/dist/src/utils/prisma-sql-generator/index.js.map +0 -1
- package/dist/src/utils/prisma-sql-generator/json-path.d.ts +0 -14
- package/dist/src/utils/prisma-sql-generator/json-path.js +0 -121
- package/dist/src/utils/prisma-sql-generator/json-path.js.map +0 -1
- package/dist/src/utils/prisma-sql-generator/types.d.ts +0 -105
- package/dist/src/utils/prisma-sql-generator/types.js +0 -3
- package/dist/src/utils/prisma-sql-generator/types.js.map +0 -1
- package/dist/src/utils/prisma-sql-generator/where-generator.prisma.d.ts +0 -21
- package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js +0 -527
- package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js.map +0 -1
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revisium/core",
|
|
3
|
-
"version": "2.3.0-alpha.
|
|
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,5 +1,4 @@
|
|
|
1
1
|
import { IQueryHandler } from '@nestjs/cqrs';
|
|
2
|
-
import { Prisma } from '@prisma/client';
|
|
3
2
|
import { PluginService } from '../../../../features/plugin/plugin.service';
|
|
4
3
|
import { TransactionPrismaService } from '../../../../infrastructure/database/transaction-prisma.service';
|
|
5
4
|
import { GetRowsQuery, GetRowsQueryReturnType } from '../../../../features/row/queries/impl';
|
|
@@ -15,7 +14,7 @@ export declare class GetRowsHandler implements IQueryHandler<GetRowsQuery, GetRo
|
|
|
15
14
|
revisionId: string;
|
|
16
15
|
tableId: string;
|
|
17
16
|
};
|
|
18
|
-
data:
|
|
17
|
+
data: import("@prisma/client/runtime/library").JsonValue;
|
|
19
18
|
id: string;
|
|
20
19
|
createdId: string;
|
|
21
20
|
createdAt: Date;
|
|
@@ -23,11 +22,10 @@ export declare class GetRowsHandler implements IQueryHandler<GetRowsQuery, GetRo
|
|
|
23
22
|
readonly: boolean;
|
|
24
23
|
updatedAt: Date;
|
|
25
24
|
hash: string;
|
|
26
|
-
meta:
|
|
25
|
+
meta: import("@prisma/client/runtime/library").JsonValue;
|
|
27
26
|
publishedAt: Date;
|
|
28
27
|
schemaHash: string;
|
|
29
28
|
}>>;
|
|
30
29
|
private getRows;
|
|
31
|
-
private isSimpleOrdering;
|
|
32
30
|
private getRowsCount;
|
|
33
31
|
}
|
|
@@ -11,13 +11,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.GetRowsHandler = void 0;
|
|
13
13
|
const cqrs_1 = require("@nestjs/cqrs");
|
|
14
|
-
const client_1 = require("@prisma/client");
|
|
15
14
|
const plugin_service_1 = require("../../../plugin/plugin.service");
|
|
15
|
+
const get_rows_sql_1 = require("../../utils/get-rows-sql");
|
|
16
16
|
const transaction_prisma_service_1 = require("../../../../infrastructure/database/transaction-prisma.service");
|
|
17
17
|
const impl_1 = require("../impl");
|
|
18
18
|
const getOffsetPagination_1 = require("../../../share/commands/utils/getOffsetPagination");
|
|
19
19
|
const share_transactional_queries_1 = require("../../../share/share.transactional.queries");
|
|
20
|
-
const prisma_sql_generator_1 = require("../../../../utils/prisma-sql-generator");
|
|
21
20
|
let GetRowsHandler = class GetRowsHandler {
|
|
22
21
|
constructor(transactionService, shareTransactionalQueries, pluginService) {
|
|
23
22
|
this.transactionService = transactionService;
|
|
@@ -50,30 +49,11 @@ let GetRowsHandler = class GetRowsHandler {
|
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
getRows(args, tableVersionId, data) {
|
|
53
|
-
|
|
54
|
-
return this.transaction.table
|
|
55
|
-
.findUniqueOrThrow({ where: { versionId: tableVersionId } })
|
|
56
|
-
.rows({
|
|
57
|
-
...args,
|
|
58
|
-
orderBy: data.orderBy ?? {
|
|
59
|
-
createdAt: client_1.Prisma.SortOrder.desc,
|
|
60
|
-
},
|
|
61
|
-
where: data.where,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return this.transaction.$queryRaw((0, prisma_sql_generator_1.generateGetRowsQueryPrisma)(tableVersionId, args.take, args.skip, data.where, data.orderBy));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
isSimpleOrdering(order) {
|
|
69
|
-
return !order || Boolean(order?.every((orderItem) => !orderItem['data']));
|
|
52
|
+
return this.transaction.$queryRaw((0, get_rows_sql_1.getRowsSql)(tableVersionId, args.take, args.skip, data.where, data.orderBy));
|
|
70
53
|
}
|
|
71
54
|
async getRowsCount(tableVersionId, data) {
|
|
72
|
-
const result = await this.transaction.
|
|
73
|
-
|
|
74
|
-
include: { _count: { select: { rows: { where: data.where } } } },
|
|
75
|
-
});
|
|
76
|
-
return result._count.rows;
|
|
55
|
+
const result = await this.transaction.$queryRaw((0, get_rows_sql_1.getRowsCountSql)(tableVersionId, data.where));
|
|
56
|
+
return Number(result[0].count);
|
|
77
57
|
}
|
|
78
58
|
};
|
|
79
59
|
exports.GetRowsHandler = GetRowsHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-rows.handler.js","sourceRoot":"","sources":["../../../../../../src/features/row/queries/handlers/get-rows.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA2D;
|
|
1
|
+
{"version":3,"file":"get-rows.handler.js","sourceRoot":"","sources":["../../../../../../src/features/row/queries/handlers/get-rows.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA2D;AAG3D,mEAAmE;AACnE,2DAG6C;AAC7C,+GAAkG;AAClG,kCAIuC;AACvC,2FAA4F;AAC5F,4FAA2F;AAGpF,IAAM,cAAc,GAApB,MAAM,cAAc;IAGzB,YACmB,kBAA4C,EAC5C,yBAAoD,EACpD,aAA4B;QAF5B,uBAAkB,GAAlB,kBAAkB,CAA0B;QAC5C,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,kBAAa,GAAb,aAAa,CAAe;IAC5C,CAAC;IAEJ,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAgB;QACzC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GACjC,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAC7D,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,OAAO,IAAA,yCAAmB,EAAC;YACzB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;gBAE5D,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;oBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI;iBACL,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxB,GAAG,GAAG;oBACN,OAAO,EAAE;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB;iBACF,CAAC,CAAC,CAAC;YACN,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IAEO,OAAO,CACb,IAAoC,EACpC,cAAsB,EACtB,IAAsB;QAEtB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAC/B,IAAA,yBAAU,EACR,cAAc,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAmC,EACxC,IAAI,CAAC,OAAyC,CAC/C,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,cAAsB,EAAE,IAAsB;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC7C,IAAA,8BAAe,EAAC,cAAc,EAAE,IAAI,CAAC,KAAmC,CAAC,CAC1E,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AAjEY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAY,EAAC,mBAAY,CAAC;qCAKc,qDAAwB;QACjB,uDAAyB;QACrC,8BAAa;GANpC,cAAc,CAiE1B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Prisma } from '@prisma/client';
|
|
2
|
+
import { JsonValueType, JsonAggregation, OrderByConditions } from '@revisium/prisma-pg-json';
|
|
2
3
|
import { IPaginatedType } from '../../../../features/share/pagination.interface';
|
|
3
4
|
import { RowWithContext } from '../../../../features/share/types/row-with-context.types';
|
|
4
|
-
import { JsonAggregation, JsonValueType } from '../../../../utils/prisma-sql-generator';
|
|
5
5
|
export type JsonOrder = {
|
|
6
6
|
data: {
|
|
7
7
|
path: string;
|
|
@@ -16,7 +16,7 @@ export declare class GetRowsQuery {
|
|
|
16
16
|
readonly tableId: string;
|
|
17
17
|
readonly first: number;
|
|
18
18
|
readonly after?: string;
|
|
19
|
-
readonly orderBy?:
|
|
19
|
+
readonly orderBy?: OrderByConditions[];
|
|
20
20
|
readonly where?: Prisma.RowWhereInput;
|
|
21
21
|
};
|
|
22
22
|
constructor(data: {
|
|
@@ -24,7 +24,7 @@ export declare class GetRowsQuery {
|
|
|
24
24
|
readonly tableId: string;
|
|
25
25
|
readonly first: number;
|
|
26
26
|
readonly after?: string;
|
|
27
|
-
readonly orderBy?:
|
|
27
|
+
readonly orderBy?: OrderByConditions[];
|
|
28
28
|
readonly where?: Prisma.RowWhereInput;
|
|
29
29
|
});
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-rows.query.js","sourceRoot":"","sources":["../../../../../../src/features/row/queries/impl/get-rows.query.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"get-rows.query.js","sourceRoot":"","sources":["../../../../../../src/features/row/queries/impl/get-rows.query.ts"],"names":[],"mappings":";;;AAkBA,MAAa,YAAY;IACvB,YACkB,IAOf;QAPe,SAAI,GAAJ,IAAI,CAOnB;IACA,CAAC;CACL;AAXD,oCAWC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Prisma } from '@prisma/client';
|
|
2
|
+
import { FieldConfig, OrderByConditions, WhereConditions } from '@revisium/prisma-pg-json';
|
|
3
|
+
export declare const DEFAULT_ROW_FIELDS: FieldConfig;
|
|
4
|
+
export declare function getRowsSql(tableId: string, take: number, skip: number, whereConditions?: WhereConditions, orderBy?: OrderByConditions[]): Prisma.Sql;
|
|
5
|
+
export declare function getRowsCountSql(tableId: string, whereConditions?: WhereConditions): Prisma.Sql;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_ROW_FIELDS = void 0;
|
|
4
|
+
exports.getRowsSql = getRowsSql;
|
|
5
|
+
exports.getRowsCountSql = getRowsCountSql;
|
|
6
|
+
const client_1 = require("@prisma/client");
|
|
7
|
+
const prisma_pg_json_1 = require("@revisium/prisma-pg-json");
|
|
8
|
+
exports.DEFAULT_ROW_FIELDS = {
|
|
9
|
+
versionId: 'string',
|
|
10
|
+
createdId: 'string',
|
|
11
|
+
id: 'string',
|
|
12
|
+
hash: 'string',
|
|
13
|
+
schemaHash: 'string',
|
|
14
|
+
readonly: 'boolean',
|
|
15
|
+
createdAt: 'date',
|
|
16
|
+
updatedAt: 'date',
|
|
17
|
+
publishedAt: 'date',
|
|
18
|
+
data: 'json',
|
|
19
|
+
meta: 'json',
|
|
20
|
+
};
|
|
21
|
+
function getRowsSql(tableId, take, skip, whereConditions, orderBy) {
|
|
22
|
+
const whereClause = (0, prisma_pg_json_1.generateWhere)({
|
|
23
|
+
where: whereConditions || {},
|
|
24
|
+
fieldConfig: exports.DEFAULT_ROW_FIELDS,
|
|
25
|
+
tableAlias: 'r',
|
|
26
|
+
});
|
|
27
|
+
const orderByClause = (orderBy ?? []).length
|
|
28
|
+
? (0, prisma_pg_json_1.generateOrderBy)({
|
|
29
|
+
orderBy,
|
|
30
|
+
fieldConfig: exports.DEFAULT_ROW_FIELDS,
|
|
31
|
+
tableAlias: 'r',
|
|
32
|
+
})
|
|
33
|
+
: client_1.Prisma.sql `ORDER BY r."createdAt" DESC`;
|
|
34
|
+
return client_1.Prisma.sql `
|
|
35
|
+
SELECT
|
|
36
|
+
r."versionId",
|
|
37
|
+
r."createdId",
|
|
38
|
+
r."id",
|
|
39
|
+
r."readonly",
|
|
40
|
+
r."createdAt",
|
|
41
|
+
r."updatedAt",
|
|
42
|
+
r."publishedAt",
|
|
43
|
+
r."data",
|
|
44
|
+
r."meta",
|
|
45
|
+
r."hash",
|
|
46
|
+
r."schemaHash"
|
|
47
|
+
FROM "Row" r
|
|
48
|
+
INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
|
|
49
|
+
WHERE rt."B" = ${tableId}
|
|
50
|
+
AND (${whereClause})
|
|
51
|
+
${orderByClause}
|
|
52
|
+
LIMIT ${take}
|
|
53
|
+
OFFSET ${skip}
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
function getRowsCountSql(tableId, whereConditions) {
|
|
57
|
+
const whereClause = (0, prisma_pg_json_1.generateWhere)({
|
|
58
|
+
where: whereConditions || {},
|
|
59
|
+
fieldConfig: exports.DEFAULT_ROW_FIELDS,
|
|
60
|
+
tableAlias: 'r',
|
|
61
|
+
});
|
|
62
|
+
return client_1.Prisma.sql `
|
|
63
|
+
SELECT COUNT(*) as count
|
|
64
|
+
FROM "Row" r
|
|
65
|
+
INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
|
|
66
|
+
WHERE rt."B" = ${tableId}
|
|
67
|
+
AND (${whereClause})
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=get-rows-sql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-rows-sql.js","sourceRoot":"","sources":["../../../../../src/features/row/utils/get-rows-sql.ts"],"names":[],"mappings":";;;AAuBA,gCA2CC;AAED,0CAiBC;AArFD,2CAAwC;AACxC,6DAMkC;AAErB,QAAA,kBAAkB,GAAgB;IAC7C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,SAAgB,UAAU,CACxB,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,eAAiC,EACjC,OAA6B;IAE7B,MAAM,WAAW,GAAG,IAAA,8BAAa,EAAC;QAChC,KAAK,EAAE,eAAe,IAAI,EAAE;QAC5B,WAAW,EAAE,0BAAkB;QAC/B,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM;QAC1C,CAAC,CAAC,IAAA,gCAAe,EAAC;YACd,OAAO;YACP,WAAW,EAAE,0BAAkB;YAC/B,UAAU,EAAE,GAAG;SAChB,CAAC;QACJ,CAAC,CAAC,eAAM,CAAC,GAAG,CAAA,6BAA6B,CAAC;IAG5C,OAAO,eAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;qBAeE,OAAO;aACf,WAAW;MAClB,aAAa;YACP,IAAI;aACH,IAAI;GACd,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAC7B,OAAe,EACf,eAAiC;IAEjC,MAAM,WAAW,GAAG,IAAA,8BAAa,EAAC;QAChC,KAAK,EAAE,eAAe,IAAI,EAAE;QAC5B,WAAW,EAAE,0BAAkB;QAC/B,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC;IAEH,OAAO,eAAM,CAAC,GAAG,CAAA;;;;qBAIE,OAAO;aACf,WAAW;GACrB,CAAC;AACJ,CAAC"}
|