@longzai-intelligence/pagination 0.0.2 → 0.0.3

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 (91) hide show
  1. package/README.md +36 -207
  2. package/dist/hono.cjs +1 -0
  3. package/dist/hono.d.cts +15 -0
  4. package/dist/hono.d.mts +15 -0
  5. package/dist/hono.mjs +1 -0
  6. package/dist/{index-C8FaNzej.d.mts → index-C4IwIpFc.d.mts} +55 -1
  7. package/dist/{index-CMiyhlfm.d.cts → index-DpbbjAwO.d.cts} +55 -1
  8. package/dist/index.cjs +1 -33
  9. package/dist/index.d.cts +80 -2
  10. package/dist/index.d.mts +80 -2
  11. package/dist/index.mjs +1 -1
  12. package/dist/typeorm.cjs +1 -129
  13. package/dist/typeorm.d.cts +1 -1
  14. package/dist/typeorm.d.mts +1 -1
  15. package/dist/typeorm.mjs +1 -1
  16. package/dist/utils-B200OLT-.cjs +1 -0
  17. package/dist/utils-DsM7-PZL.mjs +1 -0
  18. package/package.json +19 -7
  19. package/.turbo/turbo-build.log +0 -22
  20. package/.turbo/turbo-lint.log +0 -1
  21. package/.turbo/turbo-test$colon$coverage.log +0 -36
  22. package/.turbo/turbo-test.log +0 -14
  23. package/.turbo/turbo-typecheck.log +0 -4
  24. package/CHANGELOG.md +0 -18
  25. package/coverage/base.css +0 -224
  26. package/coverage/block-navigation.js +0 -87
  27. package/coverage/coverage-final.json +0 -16
  28. package/coverage/favicon.png +0 -0
  29. package/coverage/index.html +0 -176
  30. package/coverage/prettify.css +0 -1
  31. package/coverage/prettify.js +0 -2
  32. package/coverage/sort-arrow-sprite.png +0 -0
  33. package/coverage/sorter.js +0 -210
  34. package/coverage/src/adapters/index.html +0 -116
  35. package/coverage/src/adapters/typeorm.adapter.ts.html +0 -940
  36. package/coverage/src/index.html +0 -131
  37. package/coverage/src/index.ts.html +0 -280
  38. package/coverage/src/schemas/index.html +0 -161
  39. package/coverage/src/schemas/index.ts.html +0 -169
  40. package/coverage/src/schemas/pagination.schemas.ts.html +0 -343
  41. package/coverage/src/schemas/result.schemas.ts.html +0 -724
  42. package/coverage/src/schemas/sort.schemas.ts.html +0 -544
  43. package/coverage/src/typeorm.ts.html +0 -154
  44. package/coverage/src/types/index.html +0 -176
  45. package/coverage/src/types/index.ts.html +0 -199
  46. package/coverage/src/types/pagination.types.ts.html +0 -169
  47. package/coverage/src/types/result.types.ts.html +0 -127
  48. package/coverage/src/types/sort.types.ts.html +0 -142
  49. package/coverage/src/types/typeorm.d.ts.html +0 -196
  50. package/coverage/src/utils/index.html +0 -146
  51. package/coverage/src/utils/index.ts.html +0 -178
  52. package/coverage/src/utils/pagination.util.ts.html +0 -703
  53. package/coverage/src/utils/validation.util.ts.html +0 -535
  54. package/dist/utils-CV6Ovku6.mjs +0 -1
  55. package/dist/utils-D_qD2YAX.cjs +0 -1
  56. package/docs/specs/spec-20260413-typeorm-subpath-export/checklist.md +0 -33
  57. package/docs/specs/spec-20260413-typeorm-subpath-export/spec.md +0 -104
  58. package/docs/specs/spec-20260413-typeorm-subpath-export/tasks.md +0 -48
  59. package/eslint.config.ts +0 -3
  60. package/src/__tests__/index.test.ts +0 -72
  61. package/src/__tests__/pagination.util.test.ts +0 -251
  62. package/src/__tests__/result.schemas.test.ts +0 -142
  63. package/src/__tests__/sort.schemas.test.ts +0 -157
  64. package/src/__tests__/typeorm.adapter.test.ts +0 -212
  65. package/src/__tests__/validation.util.test.ts +0 -120
  66. package/src/adapters/typeorm/adapter.ts +0 -203
  67. package/src/adapters/typeorm/index.ts +0 -23
  68. package/src/adapters/typeorm/typeorm.d.ts +0 -37
  69. package/src/adapters/typeorm/types.ts +0 -95
  70. package/src/index.ts +0 -65
  71. package/src/schemas/index.ts +0 -28
  72. package/src/schemas/pagination.schemas.ts +0 -86
  73. package/src/schemas/result.schemas.ts +0 -213
  74. package/src/schemas/sort.schemas.ts +0 -153
  75. package/src/typeorm.ts +0 -23
  76. package/src/types/index.ts +0 -38
  77. package/src/types/pagination.types.ts +0 -28
  78. package/src/types/result.types.ts +0 -14
  79. package/src/types/sort.types.ts +0 -19
  80. package/src/utils/index.ts +0 -31
  81. package/src/utils/pagination.util.ts +0 -206
  82. package/src/utils/validation.util.ts +0 -150
  83. package/tsconfig/.cache/app.tsbuildinfo +0 -1
  84. package/tsconfig/.cache/node.tsbuildinfo +0 -1
  85. package/tsconfig/.cache/test.tsbuildinfo +0 -1
  86. package/tsconfig/app.json +0 -15
  87. package/tsconfig/node.json +0 -11
  88. package/tsconfig/test.json +0 -14
  89. package/tsconfig.json +0 -9
  90. package/tsdown.config.ts +0 -13
  91. package/vitest.config.ts +0 -3
@@ -1,37 +0,0 @@
1
- /**
2
- * @file typeorm.d.ts
3
- * TypeORM 类型声明
4
- * 当 typeorm 未安装时提供类型支持
5
- * @author Longzai Intelligence
6
- */
7
-
8
- declare module 'typeorm' {
9
- export interface ObjectLiteral {
10
- [key: string]: unknown;
11
- }
12
-
13
- export interface Repository<TEntity extends ObjectLiteral> {
14
- findAndCount(options?: FindManyOptions<TEntity>): Promise<[TEntity[], number]>;
15
- createQueryBuilder(alias?: string): SelectQueryBuilder<TEntity>;
16
- metadata: { name: string };
17
- }
18
-
19
- export interface SelectQueryBuilder<TEntity extends ObjectLiteral> {
20
- skip(offset: number): this;
21
- take(limit: number): this;
22
- getManyAndCount(): Promise<[TEntity[], number]>;
23
- }
24
-
25
- export interface FindManyOptions<TEntity = unknown> {
26
- skip?: number;
27
- take?: number;
28
- where?: unknown;
29
- relations?: unknown;
30
- select?: unknown;
31
- order?: FindOptionsOrder<TEntity>;
32
- }
33
-
34
- export type FindOptionsOrder<TEntity> = {
35
- [P in keyof TEntity]?: 'ASC' | 'DESC' | 1 | -1;
36
- };
37
- }
@@ -1,95 +0,0 @@
1
- /**
2
- * TypeORM 适配器类型定义
3
- *
4
- * 提供 TypeORM 分页查询相关的类型定义
5
- */
6
-
7
- import type { ObjectLiteral, FindManyOptions, FindOptionsOrder } from 'typeorm';
8
-
9
- /**
10
- * 实体映射器函数类型
11
- *
12
- * 将实体类型转换为 DTO 类型的映射函数
13
- *
14
- * @typeParam TEntity - 实体类型
15
- * @typeParam TDto - DTO 类型
16
- */
17
- export type EntityMapper<TEntity, TDto> = (entity: TEntity) => TDto | Promise<TDto>;
18
-
19
- /**
20
- * TypeORM 分页查询选项(带映射器)
21
- *
22
- * 配置 TypeORM 分页查询的选项,必须提供映射函数
23
- *
24
- * @typeParam TEntity - 实体类型
25
- * @typeParam TDto - DTO 类型
26
- */
27
- export type TypeOrmPaginateOptionsWithMapper<TEntity extends ObjectLiteral, TDto> = {
28
- /**
29
- * 实体到 DTO 的映射函数
30
- *
31
- * 必须提供映射函数以确保类型安全
32
- */
33
- mapper: EntityMapper<TEntity, TDto>;
34
-
35
- /**
36
- * 排序规则
37
- */
38
- order?: FindOptionsOrder<TEntity>;
39
-
40
- /**
41
- * 查询条件
42
- */
43
- where?: FindManyOptions<TEntity>['where'];
44
-
45
- /**
46
- * 关联关系
47
- */
48
- relations?: FindManyOptions<TEntity>['relations'];
49
-
50
- /**
51
- * 选择字段
52
- */
53
- select?: FindManyOptions<TEntity>['select'];
54
- };
55
-
56
- /**
57
- * TypeORM 分页查询选项(无映射器)
58
- *
59
- * 配置 TypeORM 分页查询的选项,返回原始实体
60
- *
61
- * @typeParam TEntity - 实体类型
62
- */
63
- export type TypeOrmPaginateOptionsNoMapper<TEntity extends ObjectLiteral> = {
64
- /**
65
- * 排序规则
66
- */
67
- order?: FindOptionsOrder<TEntity>;
68
-
69
- /**
70
- * 查询条件
71
- */
72
- where?: FindManyOptions<TEntity>['where'];
73
-
74
- /**
75
- * 关联关系
76
- */
77
- relations?: FindManyOptions<TEntity>['relations'];
78
-
79
- /**
80
- * 选择字段
81
- */
82
- select?: FindManyOptions<TEntity>['select'];
83
- };
84
-
85
- /**
86
- * TypeORM 分页查询选项
87
- *
88
- * 配置 TypeORM 分页查询的选项
89
- *
90
- * @typeParam TEntity - 实体类型
91
- * @typeParam TDto - DTO 类型
92
- */
93
- export type TypeOrmPaginateOptions<TEntity extends ObjectLiteral, TDto = TEntity> =
94
- | TypeOrmPaginateOptionsWithMapper<TEntity, TDto>
95
- | TypeOrmPaginateOptionsNoMapper<TEntity>;
package/src/index.ts DELETED
@@ -1,65 +0,0 @@
1
- /**
2
- * 分页包主入口
3
- */
4
-
5
- // 类型导出
6
- export type {
7
- PaginationParams,
8
- OffsetPaginationParams,
9
- CursorPaginationParams,
10
- PaginationDefaults,
11
- } from './types';
12
-
13
- export type { PaginatedResult, OffsetPaginatedResult, CursorPaginatedResult } from './types';
14
-
15
- export type { SortOrder, SortParams, SortItem, MultiSortParams } from './types';
16
-
17
- // 常量导出
18
- export { PAGINATION_DEFAULTS } from './types';
19
-
20
- // Zod Schemas 导出
21
- export {
22
- PaginationDefaultsSchema,
23
- PaginationParamsSchema,
24
- OffsetPaginationParamsSchema,
25
- CursorPaginationParamsSchema,
26
- SortOrderSchema,
27
- SortParamsSchema,
28
- SortItemSchema,
29
- MultiSortParamsSchema,
30
- createSortParamsSchema,
31
- createSortItemSchema,
32
- createMultiSortParamsSchema,
33
- createPaginatedResultSchema,
34
- createOffsetPaginatedResultSchema,
35
- createCursorPaginatedResultSchema,
36
- } from './types';
37
-
38
- // 工具函数导出
39
- export type {
40
- OffsetPaginationResult,
41
- PagePaginationResult,
42
- PaginationValidationResult,
43
- OffsetPaginationValidationResult,
44
- } from './utils';
45
-
46
- export {
47
- normalizePagination,
48
- normalizeOffsetPagination,
49
- calculateOffset,
50
- calculateTotalPages,
51
- hasNextPage,
52
- hasPreviousPage,
53
- offsetToPage,
54
- pageToOffset,
55
- createPaginatedResult,
56
- } from './utils';
57
-
58
- export {
59
- isValidPage,
60
- isValidPageSize,
61
- isValidOffset,
62
- isValidLimit,
63
- isValidPagination,
64
- isValidOffsetPagination,
65
- } from './utils';
@@ -1,28 +0,0 @@
1
- /**
2
- * Zod Schemas 导出
3
- *
4
- * 类型定义请从 '../types' 导入
5
- */
6
-
7
- export {
8
- PaginationDefaultsSchema,
9
- PaginationParamsSchema,
10
- OffsetPaginationParamsSchema,
11
- CursorPaginationParamsSchema,
12
- } from './pagination.schemas';
13
-
14
- export {
15
- SortOrderSchema,
16
- SortParamsSchema,
17
- SortItemSchema,
18
- MultiSortParamsSchema,
19
- createSortParamsSchema,
20
- createSortItemSchema,
21
- createMultiSortParamsSchema,
22
- } from './sort.schemas';
23
-
24
- export {
25
- createPaginatedResultSchema,
26
- createOffsetPaginatedResultSchema,
27
- createCursorPaginatedResultSchema,
28
- } from './result.schemas';
@@ -1,86 +0,0 @@
1
- /**
2
- * 分页参数 Zod Schema 定义
3
- */
4
-
5
- import { z } from 'zod';
6
-
7
- /**
8
- * 默认分页配置 Schema
9
- */
10
- export const PaginationDefaultsSchema = z.object({
11
- page: z.literal(1),
12
- pageSize: z.literal(20),
13
- maxPageSize: z.literal(100),
14
- minPageSize: z.literal(1),
15
- });
16
-
17
- /**
18
- * 默认分页参数类型
19
- */
20
- export type PaginationDefaults = z.infer<typeof PaginationDefaultsSchema>;
21
-
22
- /**
23
- * 分页参数 Schema(page 风格,推荐使用)
24
- *
25
- * 适用于用户界面分页场景
26
- */
27
- export const PaginationParamsSchema = z.object({
28
- /**
29
- * 页码(从 1 开始)
30
- */
31
- page: z.number().int().positive().optional(),
32
-
33
- /**
34
- * 每页数量
35
- */
36
- pageSize: z.number().int().positive().optional(),
37
- });
38
-
39
- /**
40
- * 分页参数类型(page 风格)
41
- */
42
- export type PaginationParams = z.infer<typeof PaginationParamsSchema>;
43
-
44
- /**
45
- * Offset 分页参数 Schema
46
- *
47
- * 适用于 API 调用、数据库查询等场景
48
- */
49
- export const OffsetPaginationParamsSchema = z.object({
50
- /**
51
- * 限制数量(正整数)
52
- */
53
- limit: z.number().int().positive().optional(),
54
-
55
- /**
56
- * 偏移量(非负整数)
57
- */
58
- offset: z.number().int().nonnegative().optional(),
59
- });
60
-
61
- /**
62
- * Offset 分页参数类型
63
- */
64
- export type OffsetPaginationParams = z.infer<typeof OffsetPaginationParamsSchema>;
65
-
66
- /**
67
- * 游标分页参数 Schema
68
- *
69
- * 适用于无限滚动、实时数据流场景
70
- */
71
- export const CursorPaginationParamsSchema = z.object({
72
- /**
73
- * 游标
74
- */
75
- cursor: z.string().optional(),
76
-
77
- /**
78
- * 限制数量
79
- */
80
- limit: z.number().int().positive().optional(),
81
- });
82
-
83
- /**
84
- * 游标分页参数类型
85
- */
86
- export type CursorPaginationParams = z.infer<typeof CursorPaginationParamsSchema>;
@@ -1,213 +0,0 @@
1
- /**
2
- * 分页结果 Zod Schema 定义
3
- */
4
-
5
- import { z } from 'zod';
6
-
7
- /**
8
- * 创建分页结果 Schema
9
- *
10
- * 包含分页数据和分页信息的完整结果
11
- *
12
- * @typeParam T - 数据项 Schema 类型
13
- */
14
- export function createPaginatedResultSchema<T extends z.ZodTypeAny>(itemSchema: T) {
15
- return z.object({
16
- /**
17
- * 数据项数组
18
- */
19
- items: z.array(itemSchema),
20
-
21
- /**
22
- * 总记录数
23
- */
24
- total: z.number().int().nonnegative(),
25
-
26
- /**
27
- * 当前页码
28
- */
29
- page: z.number().int().positive(),
30
-
31
- /**
32
- * 每页数量
33
- */
34
- pageSize: z.number().int().positive(),
35
-
36
- /**
37
- * 总页数
38
- */
39
- totalPages: z.number().int().nonnegative(),
40
-
41
- /**
42
- * 是否有下一页
43
- */
44
- hasNextPage: z.boolean(),
45
-
46
- /**
47
- * 是否有上一页
48
- */
49
- hasPreviousPage: z.boolean(),
50
- });
51
- }
52
-
53
- /**
54
- * 分页结果类型(泛型版本)
55
- */
56
- export type PaginatedResult<T> = {
57
- /**
58
- * 数据项数组
59
- */
60
- items: T[];
61
-
62
- /**
63
- * 总记录数
64
- */
65
- total: number;
66
-
67
- /**
68
- * 当前页码
69
- */
70
- page: number;
71
-
72
- /**
73
- * 每页数量
74
- */
75
- pageSize: number;
76
-
77
- /**
78
- * 总页数
79
- */
80
- totalPages: number;
81
-
82
- /**
83
- * 是否有下一页
84
- */
85
- hasNextPage: boolean;
86
-
87
- /**
88
- * 是否有上一页
89
- */
90
- hasPreviousPage: boolean;
91
- };
92
-
93
- /**
94
- * 创建 Offset 风格分页结果 Schema
95
- *
96
- * 包含偏移量分页数据和分页信息
97
- *
98
- * @typeParam T - 数据项 Schema 类型
99
- */
100
- export function createOffsetPaginatedResultSchema<T extends z.ZodTypeAny>(itemSchema: T) {
101
- return z.object({
102
- /**
103
- * 数据项数组
104
- */
105
- items: z.array(itemSchema),
106
-
107
- /**
108
- * 总记录数
109
- */
110
- total: z.number().int().nonnegative(),
111
-
112
- /**
113
- * 限制数量
114
- */
115
- limit: z.number().int().nonnegative(),
116
-
117
- /**
118
- * 偏移量
119
- */
120
- offset: z.number().int().nonnegative(),
121
-
122
- /**
123
- * 是否有更多数据
124
- */
125
- hasMore: z.boolean(),
126
- });
127
- }
128
-
129
- /**
130
- * Offset 风格分页结果类型(泛型版本)
131
- */
132
- export type OffsetPaginatedResult<T> = {
133
- /**
134
- * 数据项数组
135
- */
136
- items: T[];
137
-
138
- /**
139
- * 总记录数
140
- */
141
- total: number;
142
-
143
- /**
144
- * 限制数量
145
- */
146
- limit: number;
147
-
148
- /**
149
- * 偏移量
150
- */
151
- offset: number;
152
-
153
- /**
154
- * 是否有更多数据
155
- */
156
- hasMore: boolean;
157
- };
158
-
159
- /**
160
- * 创建游标分页结果 Schema
161
- *
162
- * 包含游标分页数据和分页信息
163
- *
164
- * @typeParam T - 数据项 Schema 类型
165
- */
166
- export function createCursorPaginatedResultSchema<T extends z.ZodTypeAny>(itemSchema: T) {
167
- return z.object({
168
- /**
169
- * 数据项数组
170
- */
171
- items: z.array(itemSchema),
172
-
173
- /**
174
- * 下一页游标
175
- */
176
- nextCursor: z.string().nullable(),
177
-
178
- /**
179
- * 上一页游标
180
- */
181
- previousCursor: z.string().nullable(),
182
-
183
- /**
184
- * 是否有更多数据
185
- */
186
- hasMore: z.boolean(),
187
- });
188
- }
189
-
190
- /**
191
- * 游标分页结果类型(泛型版本)
192
- */
193
- export type CursorPaginatedResult<T> = {
194
- /**
195
- * 数据项数组
196
- */
197
- items: T[];
198
-
199
- /**
200
- * 下一页游标
201
- */
202
- nextCursor: string | null;
203
-
204
- /**
205
- * 上一页游标
206
- */
207
- previousCursor: string | null;
208
-
209
- /**
210
- * 是否有更多数据
211
- */
212
- hasMore: boolean;
213
- };
@@ -1,153 +0,0 @@
1
- /**
2
- * 排序参数 Zod Schema 定义
3
- */
4
-
5
- import { z } from 'zod';
6
-
7
- /**
8
- * 排序方向 Schema
9
- */
10
- export const SortOrderSchema = z.enum(['asc', 'desc']);
11
-
12
- /**
13
- * 排序方向类型
14
- */
15
- export type SortOrder = z.infer<typeof SortOrderSchema>;
16
-
17
- /**
18
- * 排序参数类型
19
- */
20
- export type SortParams<T extends string = string> = {
21
- /**
22
- * 排序字段
23
- */
24
- sortBy?: T;
25
-
26
- /**
27
- * 排序方向
28
- */
29
- sortOrder?: SortOrder;
30
- };
31
-
32
- /**
33
- * 创建排序参数 Schema
34
- *
35
- * 单字段排序参数
36
- *
37
- * @typeParam T - 排序字段枚举类型
38
- */
39
- export function createSortParamsSchema<T extends [string, ...string[]]>(fields: T) {
40
- return z.object({
41
- /**
42
- * 排序字段
43
- */
44
- sortBy: z.enum(fields).optional(),
45
-
46
- /**
47
- * 排序方向
48
- */
49
- sortOrder: SortOrderSchema.optional(),
50
- });
51
- }
52
-
53
- /**
54
- * 默认排序参数 Schema(字符串字段)
55
- */
56
- export const SortParamsSchema = z.object({
57
- /**
58
- * 排序字段
59
- */
60
- sortBy: z.string().optional(),
61
-
62
- /**
63
- * 排序方向
64
- */
65
- sortOrder: SortOrderSchema.optional(),
66
- });
67
-
68
- /**
69
- * 多字段排序项类型
70
- */
71
- export type SortItem<T extends string = string> = {
72
- /**
73
- * 排序字段
74
- */
75
- field: T;
76
-
77
- /**
78
- * 排序方向
79
- */
80
- order: SortOrder;
81
- };
82
-
83
- /**
84
- * 创建多字段排序项 Schema
85
- *
86
- * 单个排序项定义
87
- *
88
- * @typeParam T - 排序字段枚举类型
89
- */
90
- export function createSortItemSchema<T extends [string, ...string[]]>(fields: T) {
91
- return z.object({
92
- /**
93
- * 排序字段
94
- */
95
- field: z.enum(fields),
96
-
97
- /**
98
- * 排序方向
99
- */
100
- order: SortOrderSchema,
101
- });
102
- }
103
-
104
- /**
105
- * 默认排序项 Schema(字符串字段)
106
- */
107
- export const SortItemSchema = z.object({
108
- /**
109
- * 排序字段
110
- */
111
- field: z.string(),
112
-
113
- /**
114
- * 排序方向
115
- */
116
- order: SortOrderSchema,
117
- });
118
-
119
- /**
120
- * 多字段排序参数类型
121
- */
122
- export type MultiSortParams<T extends string = string> = {
123
- /**
124
- * 排序项数组
125
- */
126
- sort?: SortItem<T>[];
127
- };
128
-
129
- /**
130
- * 创建多字段排序参数 Schema
131
- *
132
- * 支持多个字段的排序
133
- *
134
- * @typeParam T - 排序字段枚举类型
135
- */
136
- export function createMultiSortParamsSchema<T extends [string, ...string[]]>(fields: T) {
137
- return z.object({
138
- /**
139
- * 排序项数组
140
- */
141
- sort: z.array(createSortItemSchema(fields)).optional(),
142
- });
143
- }
144
-
145
- /**
146
- * 默认多字段排序参数 Schema(字符串字段)
147
- */
148
- export const MultiSortParamsSchema = z.object({
149
- /**
150
- * 排序项数组
151
- */
152
- sort: z.array(SortItemSchema).optional(),
153
- });
package/src/typeorm.ts DELETED
@@ -1,23 +0,0 @@
1
- /**
2
- * TypeORM 适配器入口
3
- *
4
- * 提供 TypeORM 分页查询功能,需要安装 typeorm 作为 peerDependency。
5
- *
6
- * @example
7
- * ```typescript
8
- * import { paginateWithRepository } from '@longzai-intelligence/pagination/typeorm';
9
- *
10
- * const result = await paginateWithRepository(userRepository, {
11
- * page: 1,
12
- * pageSize: 20,
13
- * });
14
- * ```
15
- */
16
-
17
- export type { EntityMapper, TypeOrmPaginateOptions } from './adapters/typeorm';
18
-
19
- export {
20
- paginateWithRepository,
21
- paginateWithQueryBuilder,
22
- createPaginationQueryBuilder,
23
- } from './adapters/typeorm';