@addev-be/ui 1.0.0 → 1.0.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/assets/icons/arrow-down-1-9.svg +1 -1
- package/assets/icons/arrow-down-a-z.svg +1 -1
- package/assets/icons/arrow-up-z-a.svg +1 -1
- package/assets/icons/check.svg +1 -1
- package/assets/icons/circle-check.svg +1 -1
- package/assets/icons/down.svg +1 -1
- package/assets/icons/filter-full.svg +1 -1
- package/assets/icons/filter.svg +1 -1
- package/assets/icons/hashtag.svg +1 -1
- package/assets/icons/image-slash.svg +1 -1
- package/assets/icons/left.svg +1 -1
- package/assets/icons/magnifier.svg +1 -1
- package/assets/icons/phone.svg +1 -1
- package/assets/icons/right.svg +1 -1
- package/assets/icons/sort-calendar-ascending.svg +5 -5
- package/assets/icons/spinner-third.svg +1 -1
- package/assets/icons/table-columns.svg +1 -1
- package/assets/icons/table-footer-slash.svg +4 -4
- package/assets/icons/table-footer.svg +3 -3
- package/assets/icons/up.svg +1 -1
- package/assets/icons/user-tie.svg +1 -1
- package/assets/icons/x-bar.svg +3 -3
- package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +9 -8
- package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +21 -72
- package/dist/components/data/AdvancedRequestDataGrid/index.js +2 -2
- package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +1 -1
- package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
- package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
- package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
- package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
- package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
- package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
- package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
- package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
- package/dist/components/data/DataGrid/helpers.d.ts +28 -0
- package/dist/components/data/DataGrid/helpers.js +436 -0
- package/dist/components/data/DataGrid/types.d.ts +1 -1
- package/dist/components/data/DataGrid/types.js +29 -6
- package/dist/components/data/SmartQueryDataGrid/helpers/columns.d.ts +20 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/columns.js +160 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/hooks.d.ts +5 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/hooks.js +41 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/index.d.ts +2 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/index.js +18 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.d.ts +3 -0
- package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.js +15 -0
- package/dist/components/data/SmartQueryDataGrid/hooks.d.ts +9 -0
- package/dist/components/data/SmartQueryDataGrid/hooks.js +63 -0
- package/dist/components/data/SmartQueryDataGrid/index.d.ts +12 -0
- package/dist/components/data/SmartQueryDataGrid/index.js +242 -0
- package/dist/components/data/SmartQueryDataGrid/types.d.ts +22 -0
- package/dist/components/data/SmartQueryDataGrid/types.js +2 -0
- package/dist/components/forms/Form/InputWithLabel.d.ts +2 -0
- package/dist/components/forms/Form/InputWithLabel.js +10 -0
- package/dist/components/forms/Form/types.d.ts +7 -0
- package/dist/components/forms/Form/types.js +2 -0
- package/dist/config/types.d.ts +11 -0
- package/dist/config/types.js +2 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.js +1 -0
- package/dist/helpers/types.d.ts +2 -0
- package/dist/helpers/types.js +8 -0
- package/dist/services/requests/generic.d.ts +1 -1
- package/dist/services/requests/userPermissions.d.ts +4 -0
- package/dist/services/requests/userPermissions.js +20 -0
- package/dist/services/types/auth.d.ts +1 -1
- package/dist/services/types/auth.js +50 -27
- package/dist/services/types/base.d.ts +1 -1
- package/dist/services/types/base.js +26 -3
- package/dist/services/types/generic.d.ts +1 -1
- package/dist/services/types/generic.js +44 -21
- package/dist/services/types/tracking.d.ts +1 -1
- package/dist/services/types/tracking.js +29 -6
- package/dist/services/types/userProfiles.d.ts +1 -1
- package/dist/services/types/userProfiles.js +41 -18
- package/dist/services/types/users.d.ts +1 -1
- package/dist/services/types/users.js +47 -24
- package/eslint.config.js +3 -3
- package/package.json +2 -2
- package/src/Icons.tsx +138 -138
- package/src/components/auth/LoginForm.tsx +84 -84
- package/src/components/auth/LoginPage.tsx +32 -32
- package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
- package/src/components/auth/PasswordResetForm.tsx +112 -112
- package/src/components/auth/index.ts +4 -4
- package/src/components/auth/styles.ts +14 -14
- package/src/components/data/DataGrid/DataGridCell.tsx +81 -81
- package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
- package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
- package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
- package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
- package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +38 -38
- package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +39 -39
- package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +75 -75
- package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +38 -38
- package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
- package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
- package/src/components/data/DataGrid/DataGridEditableCell/types.ts +19 -19
- package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +129 -129
- package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
- package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +370 -370
- package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
- package/src/components/data/DataGrid/DataGridFooter.tsx +45 -45
- package/src/components/data/DataGrid/DataGridHeader.tsx +74 -74
- package/src/components/data/DataGrid/DataGridHeaderCell.tsx +112 -112
- package/src/components/data/DataGrid/DataGridRowTemplate.tsx +83 -83
- package/src/components/data/DataGrid/DataGridToolbar.tsx +134 -134
- package/src/components/data/DataGrid/FilterModalContent/index.tsx +135 -135
- package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
- package/src/components/data/DataGrid/constants.ts +6 -6
- package/src/components/data/DataGrid/helpers/columns.tsx +394 -394
- package/src/components/data/DataGrid/helpers/filters.ts +287 -287
- package/src/components/data/DataGrid/helpers/index.ts +2 -2
- package/src/components/data/DataGrid/hooks/index.ts +29 -29
- package/src/components/data/DataGrid/hooks/useDataGrid.tsx +380 -380
- package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
- package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
- package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
- package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
- package/src/components/data/DataGrid/index.tsx +122 -122
- package/src/components/data/DataGrid/styles.ts +430 -430
- package/src/components/data/DataGrid/types.ts +372 -372
- package/src/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.tsx +16 -16
- package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +479 -479
- package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
- package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
- package/src/components/data/SqlRequestDataGrid/index.tsx +420 -420
- package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
- package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
- package/src/components/data/SqlRequestForeignList/index.tsx +257 -257
- package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
- package/src/components/data/SqlRequestForeignList/types.ts +32 -32
- package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +108 -108
- package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
- package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
- package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
- package/src/components/data/SqlRequestGrid/index.tsx +315 -315
- package/src/components/data/SqlRequestGrid/styles.ts +20 -20
- package/src/components/data/SqlRequestGrid/types.ts +73 -73
- package/src/components/data/VirtualScroller/hooks.ts +71 -71
- package/src/components/data/VirtualScroller/index.tsx +89 -89
- package/src/components/data/VirtualScroller/styles.ts +57 -57
- package/src/components/data/VirtualScroller/types.ts +10 -10
- package/src/components/data/index.ts +16 -16
- package/src/components/forms/AutoTextArea.tsx +48 -48
- package/src/components/forms/Button.tsx +132 -132
- package/src/components/forms/Form/Checkbox.tsx +12 -12
- package/src/components/forms/Form/FormGroup.tsx +31 -31
- package/src/components/forms/Form/Input.tsx +16 -16
- package/src/components/forms/Form/Row.tsx +32 -32
- package/src/components/forms/Form/Select.tsx +87 -87
- package/src/components/forms/Form/TextArea.tsx +17 -17
- package/src/components/forms/Form/index.tsx +45 -45
- package/src/components/forms/Form/styles.ts +184 -184
- package/src/components/forms/IconButton.tsx +67 -67
- package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
- package/src/components/forms/NumberInput.tsx +53 -53
- package/src/components/forms/Select.tsx +34 -34
- package/src/components/forms/VerticalLabel.tsx +20 -20
- package/src/components/forms/index.ts +9 -9
- package/src/components/forms/styles.ts +42 -42
- package/src/components/index.ts +6 -6
- package/src/components/layout/Columns.ts +27 -27
- package/src/components/layout/Dropdown/index.tsx +113 -113
- package/src/components/layout/Dropdown/styles.ts +45 -45
- package/src/components/layout/Flexbox.ts +21 -21
- package/src/components/layout/Grid/index.tsx +8 -8
- package/src/components/layout/Grid/styles.ts +34 -34
- package/src/components/layout/Loading/index.tsx +29 -29
- package/src/components/layout/Loading/styles.ts +29 -29
- package/src/components/layout/Masonry/index.tsx +29 -29
- package/src/components/layout/Masonry/styles.ts +20 -20
- package/src/components/layout/Modal/index.tsx +51 -51
- package/src/components/layout/Modal/styles.ts +125 -125
- package/src/components/layout/index.ts +7 -7
- package/src/components/search/HighlightedText.tsx +41 -41
- package/src/components/search/QuickSearchBar.tsx +99 -99
- package/src/components/search/QuickSearchResults.tsx +86 -86
- package/src/components/search/index.ts +9 -9
- package/src/components/search/styles.ts +96 -96
- package/src/components/search/types.ts +29 -29
- package/src/components/ui/Avatar/index.tsx +54 -54
- package/src/components/ui/Card/index.tsx +14 -14
- package/src/components/ui/Card/styles.ts +37 -37
- package/src/components/ui/ContextMenu/index.tsx +79 -79
- package/src/components/ui/ContextMenu/styles.ts +119 -119
- package/src/components/ui/Ellipsis.tsx +34 -34
- package/src/components/ui/Label.tsx +99 -99
- package/src/components/ui/Message/index.tsx +57 -57
- package/src/components/ui/Message/styles.ts +40 -40
- package/src/components/ui/TabsView/TabsView.tsx +38 -38
- package/src/components/ui/TabsView/styles.ts +73 -73
- package/src/components/ui/TabsView/types.ts +12 -12
- package/src/components/ui/index.ts +7 -7
- package/src/config/index.ts +14 -14
- package/src/helpers/dates.ts +17 -17
- package/src/helpers/getScrollbarSize.ts +14 -14
- package/src/helpers/index.ts +6 -5
- package/src/helpers/numbers.ts +63 -63
- package/src/helpers/responsive.ts +83 -83
- package/src/helpers/text.ts +13 -13
- package/src/helpers/types.ts +9 -0
- package/src/hooks/index.ts +7 -7
- package/src/hooks/useContainerMediaQuery.ts +7 -7
- package/src/hooks/useElementSize.ts +24 -24
- package/src/hooks/useMediaQuery.ts +9 -9
- package/src/hooks/useMediaQueryForWidth.ts +35 -35
- package/src/hooks/useMutableState.ts +17 -17
- package/src/hooks/useShowArchived.ts +28 -28
- package/src/hooks/useWindowSize.ts +20 -20
- package/src/index.ts +9 -9
- package/src/providers/AuthenticationProvider/helpers.ts +3 -3
- package/src/providers/AuthenticationProvider/index.tsx +303 -303
- package/src/providers/LoadingProvider/index.tsx +47 -47
- package/src/providers/PortalsProvider/index.tsx +54 -54
- package/src/providers/PortalsProvider/styles.ts +31 -31
- package/src/providers/SettingsProvider/index.tsx +70 -70
- package/src/providers/ThemeProvider/ThemeProvider.ts +66 -66
- package/src/providers/ThemeProvider/defaultTheme.ts +470 -470
- package/src/providers/ThemeProvider/helpers.ts +84 -84
- package/src/providers/ThemeProvider/index.ts +5 -5
- package/src/providers/ThemeProvider/types.ts +134 -134
- package/src/providers/TrackingProvider/index.tsx +71 -71
- package/src/providers/UiProviders/index.tsx +76 -76
- package/src/providers/UiProviders/styles.ts +10 -10
- package/src/providers/hooks.ts +12 -12
- package/src/providers/index.ts +8 -8
- package/src/services/HttpService.ts +92 -92
- package/src/services/WebSocketService.ts +155 -155
- package/src/services/advancedRequests.ts +102 -102
- package/src/services/base.ts +23 -23
- package/src/services/globalSearch.ts +32 -32
- package/src/services/hooks.ts +92 -92
- package/src/services/index.ts +21 -21
- package/src/services/requests/auth.ts +44 -44
- package/src/services/requests/generic.ts +62 -62
- package/src/services/requests/tracking.ts +12 -12
- package/src/services/requests/userProfiles.ts +35 -35
- package/src/services/requests/users.ts +28 -28
- package/src/services/smartQueries.ts +122 -122
- package/src/services/sqlRequests.ts +111 -111
- package/src/services/types/auth.ts +98 -98
- package/src/services/types/base.ts +10 -10
- package/src/services/types/generic.ts +82 -82
- package/src/services/types/tracking.ts +29 -29
- package/src/services/types/userProfiles.ts +79 -79
- package/src/services/types/users.ts +74 -74
- package/src/services/updateSqlRequests.ts +32 -32
- package/src/styles/animations.scss +30 -30
- package/src/styles/index.scss +42 -42
- package/src/typings.d.ts +17 -17
- package/tsconfig.json +18 -18
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
import { useWebSocketRequestHandler } from './hooks';
|
|
2
|
-
|
|
3
|
-
export type FieldDTO<T extends string = string> = {
|
|
4
|
-
fieldName?: T;
|
|
5
|
-
fieldAlias?: string;
|
|
6
|
-
operator?:
|
|
7
|
-
| 'add'
|
|
8
|
-
| 'avg'
|
|
9
|
-
| 'concat'
|
|
10
|
-
| 'count'
|
|
11
|
-
| 'divide'
|
|
12
|
-
| 'groupConcat'
|
|
13
|
-
| 'if'
|
|
14
|
-
| 'ifNull'
|
|
15
|
-
| 'jsonObject'
|
|
16
|
-
| 'length'
|
|
17
|
-
| 'max'
|
|
18
|
-
| 'min'
|
|
19
|
-
| 'modulo'
|
|
20
|
-
| 'multiply'
|
|
21
|
-
| 'subtract'
|
|
22
|
-
| 'sum'
|
|
23
|
-
| 'trim';
|
|
24
|
-
operands?: FieldDTO[];
|
|
25
|
-
constantValue?: string | number | boolean | null;
|
|
26
|
-
groupBy?: boolean;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export type ConditionOperator =
|
|
30
|
-
| 'lessThan'
|
|
31
|
-
| 'lessThanOrEqual'
|
|
32
|
-
| 'lessThanOrEquals'
|
|
33
|
-
| 'equals'
|
|
34
|
-
| 'notEquals'
|
|
35
|
-
| 'greaterThanOrEqual'
|
|
36
|
-
| 'greaterThanOrEquals'
|
|
37
|
-
| 'greaterThan'
|
|
38
|
-
| 'like'
|
|
39
|
-
| 'contains'
|
|
40
|
-
| 'notContains'
|
|
41
|
-
| 'startsWith'
|
|
42
|
-
| 'endsWith'
|
|
43
|
-
| 'notLike'
|
|
44
|
-
| 'inRange'
|
|
45
|
-
| 'between'
|
|
46
|
-
| 'isNull'
|
|
47
|
-
| 'isNotNull'
|
|
48
|
-
| 'inArray'
|
|
49
|
-
| 'in'
|
|
50
|
-
| 'not'
|
|
51
|
-
| 'and'
|
|
52
|
-
| 'or';
|
|
53
|
-
|
|
54
|
-
export type HavingDTO = {
|
|
55
|
-
operator: ConditionOperator;
|
|
56
|
-
value?:
|
|
57
|
-
| string
|
|
58
|
-
| number
|
|
59
|
-
| boolean
|
|
60
|
-
| null
|
|
61
|
-
| (string | number | boolean | null)[];
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
export type ConditionDTO = HavingDTO & {
|
|
65
|
-
field: string | FieldDTO;
|
|
66
|
-
children?: boolean;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export type OrderByDirection = 'ascending' | 'descending';
|
|
70
|
-
|
|
71
|
-
export type FooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
|
|
72
|
-
|
|
73
|
-
export type ColumnDTO = {
|
|
74
|
-
key: string;
|
|
75
|
-
field: FieldDTO;
|
|
76
|
-
having?: HavingDTO;
|
|
77
|
-
orderBy?: OrderByDirection;
|
|
78
|
-
groupBy?: boolean;
|
|
79
|
-
footer?: FooterFunction;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export type ColumnWithHavingDTO = ColumnDTO &
|
|
83
|
-
Required<Pick<ColumnDTO, 'having'>>;
|
|
84
|
-
export type ColumnWithFooterDTO = ColumnDTO &
|
|
85
|
-
Required<Pick<ColumnDTO, 'footer'>>;
|
|
86
|
-
|
|
87
|
-
export type QueryDTO = {
|
|
88
|
-
type: string;
|
|
89
|
-
columns?: ColumnDTO[];
|
|
90
|
-
filterColumn?: ColumnDTO;
|
|
91
|
-
where?: ConditionDTO[];
|
|
92
|
-
offset?: number;
|
|
93
|
-
limit?: number;
|
|
94
|
-
getCount?: boolean;
|
|
95
|
-
unique?: boolean;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export type RequestRow<R> = {
|
|
99
|
-
[K in keyof R]: R[K] extends string | number | null | undefined
|
|
100
|
-
? R[K]
|
|
101
|
-
: string | number | null | undefined;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
export type ResponseDTO<T = unknown> = {
|
|
105
|
-
data: RequestRow<T>[];
|
|
106
|
-
count?: number;
|
|
107
|
-
totals?: Record<string, string | number | null | undefined>;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
export type RequestHandler<T> = (request: QueryDTO) => Promise<ResponseDTO<T>>;
|
|
111
|
-
|
|
112
|
-
export const useSmartQueryHandler = <T = unknown>(
|
|
113
|
-
name: string
|
|
114
|
-
): [
|
|
115
|
-
RequestHandler<T>,
|
|
116
|
-
RequestHandler<{ id: string }>,
|
|
117
|
-
RequestHandler<Partial<T>>
|
|
118
|
-
] => [
|
|
119
|
-
useWebSocketRequestHandler<QueryDTO, ResponseDTO<T>>(name),
|
|
120
|
-
useWebSocketRequestHandler<QueryDTO, ResponseDTO<{ id: string }>>(name),
|
|
121
|
-
useWebSocketRequestHandler<QueryDTO, ResponseDTO<Partial<T>>>(name),
|
|
122
|
-
];
|
|
1
|
+
import { useWebSocketRequestHandler } from './hooks';
|
|
2
|
+
|
|
3
|
+
export type FieldDTO<T extends string = string> = {
|
|
4
|
+
fieldName?: T;
|
|
5
|
+
fieldAlias?: string;
|
|
6
|
+
operator?:
|
|
7
|
+
| 'add'
|
|
8
|
+
| 'avg'
|
|
9
|
+
| 'concat'
|
|
10
|
+
| 'count'
|
|
11
|
+
| 'divide'
|
|
12
|
+
| 'groupConcat'
|
|
13
|
+
| 'if'
|
|
14
|
+
| 'ifNull'
|
|
15
|
+
| 'jsonObject'
|
|
16
|
+
| 'length'
|
|
17
|
+
| 'max'
|
|
18
|
+
| 'min'
|
|
19
|
+
| 'modulo'
|
|
20
|
+
| 'multiply'
|
|
21
|
+
| 'subtract'
|
|
22
|
+
| 'sum'
|
|
23
|
+
| 'trim';
|
|
24
|
+
operands?: FieldDTO[];
|
|
25
|
+
constantValue?: string | number | boolean | null;
|
|
26
|
+
groupBy?: boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type ConditionOperator =
|
|
30
|
+
| 'lessThan'
|
|
31
|
+
| 'lessThanOrEqual'
|
|
32
|
+
| 'lessThanOrEquals'
|
|
33
|
+
| 'equals'
|
|
34
|
+
| 'notEquals'
|
|
35
|
+
| 'greaterThanOrEqual'
|
|
36
|
+
| 'greaterThanOrEquals'
|
|
37
|
+
| 'greaterThan'
|
|
38
|
+
| 'like'
|
|
39
|
+
| 'contains'
|
|
40
|
+
| 'notContains'
|
|
41
|
+
| 'startsWith'
|
|
42
|
+
| 'endsWith'
|
|
43
|
+
| 'notLike'
|
|
44
|
+
| 'inRange'
|
|
45
|
+
| 'between'
|
|
46
|
+
| 'isNull'
|
|
47
|
+
| 'isNotNull'
|
|
48
|
+
| 'inArray'
|
|
49
|
+
| 'in'
|
|
50
|
+
| 'not'
|
|
51
|
+
| 'and'
|
|
52
|
+
| 'or';
|
|
53
|
+
|
|
54
|
+
export type HavingDTO = {
|
|
55
|
+
operator: ConditionOperator;
|
|
56
|
+
value?:
|
|
57
|
+
| string
|
|
58
|
+
| number
|
|
59
|
+
| boolean
|
|
60
|
+
| null
|
|
61
|
+
| (string | number | boolean | null)[];
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export type ConditionDTO = HavingDTO & {
|
|
65
|
+
field: string | FieldDTO;
|
|
66
|
+
children?: boolean;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export type OrderByDirection = 'ascending' | 'descending';
|
|
70
|
+
|
|
71
|
+
export type FooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
|
|
72
|
+
|
|
73
|
+
export type ColumnDTO = {
|
|
74
|
+
key: string;
|
|
75
|
+
field: FieldDTO;
|
|
76
|
+
having?: HavingDTO;
|
|
77
|
+
orderBy?: OrderByDirection;
|
|
78
|
+
groupBy?: boolean;
|
|
79
|
+
footer?: FooterFunction;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export type ColumnWithHavingDTO = ColumnDTO &
|
|
83
|
+
Required<Pick<ColumnDTO, 'having'>>;
|
|
84
|
+
export type ColumnWithFooterDTO = ColumnDTO &
|
|
85
|
+
Required<Pick<ColumnDTO, 'footer'>>;
|
|
86
|
+
|
|
87
|
+
export type QueryDTO = {
|
|
88
|
+
type: string;
|
|
89
|
+
columns?: ColumnDTO[];
|
|
90
|
+
filterColumn?: ColumnDTO;
|
|
91
|
+
where?: ConditionDTO[];
|
|
92
|
+
offset?: number;
|
|
93
|
+
limit?: number;
|
|
94
|
+
getCount?: boolean;
|
|
95
|
+
unique?: boolean;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export type RequestRow<R> = {
|
|
99
|
+
[K in keyof R]: R[K] extends string | number | null | undefined
|
|
100
|
+
? R[K]
|
|
101
|
+
: string | number | null | undefined;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export type ResponseDTO<T = unknown> = {
|
|
105
|
+
data: RequestRow<T>[];
|
|
106
|
+
count?: number;
|
|
107
|
+
totals?: Record<string, string | number | null | undefined>;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export type RequestHandler<T> = (request: QueryDTO) => Promise<ResponseDTO<T>>;
|
|
111
|
+
|
|
112
|
+
export const useSmartQueryHandler = <T = unknown>(
|
|
113
|
+
name: string
|
|
114
|
+
): [
|
|
115
|
+
RequestHandler<T>,
|
|
116
|
+
RequestHandler<{ id: string }>,
|
|
117
|
+
RequestHandler<Partial<T>>
|
|
118
|
+
] => [
|
|
119
|
+
useWebSocketRequestHandler<QueryDTO, ResponseDTO<T>>(name),
|
|
120
|
+
useWebSocketRequestHandler<QueryDTO, ResponseDTO<{ id: string }>>(name),
|
|
121
|
+
useWebSocketRequestHandler<QueryDTO, ResponseDTO<Partial<T>>>(name),
|
|
122
|
+
];
|
|
@@ -1,111 +1,111 @@
|
|
|
1
|
-
import { useWebSocketRequestHandler } from './hooks';
|
|
2
|
-
|
|
3
|
-
export type FieldDTO<T extends string = string> = {
|
|
4
|
-
fieldName?: T;
|
|
5
|
-
fieldAlias?: string;
|
|
6
|
-
operator?:
|
|
7
|
-
| 'add'
|
|
8
|
-
| 'concat'
|
|
9
|
-
| 'divide'
|
|
10
|
-
| 'groupConcat'
|
|
11
|
-
| 'if'
|
|
12
|
-
| 'ifNull'
|
|
13
|
-
| 'jsonObject'
|
|
14
|
-
| 'length'
|
|
15
|
-
| 'modulo'
|
|
16
|
-
| 'multiply'
|
|
17
|
-
| 'subtract'
|
|
18
|
-
| 'sum'
|
|
19
|
-
| 'trim';
|
|
20
|
-
operands?: FieldDTO[];
|
|
21
|
-
constantValue?: string | number | boolean | null;
|
|
22
|
-
groupBy?: boolean;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export type ConditionDTO = {
|
|
26
|
-
field: string;
|
|
27
|
-
operator:
|
|
28
|
-
| 'lessThan'
|
|
29
|
-
| 'lessThanOrEqual'
|
|
30
|
-
| 'lessThanOrEquals'
|
|
31
|
-
| 'equals'
|
|
32
|
-
| 'notEquals'
|
|
33
|
-
| 'greaterThanOrEqual'
|
|
34
|
-
| 'greaterThanOrEquals'
|
|
35
|
-
| 'greaterThan'
|
|
36
|
-
| 'like'
|
|
37
|
-
| 'contains'
|
|
38
|
-
| 'notContains'
|
|
39
|
-
| 'startsWith'
|
|
40
|
-
| 'endsWith'
|
|
41
|
-
| 'notLike'
|
|
42
|
-
| 'inRange'
|
|
43
|
-
| 'between'
|
|
44
|
-
| 'isNull'
|
|
45
|
-
| 'isNotNull'
|
|
46
|
-
| 'inArray'
|
|
47
|
-
| 'in'
|
|
48
|
-
| 'not'
|
|
49
|
-
| 'and'
|
|
50
|
-
| 'or';
|
|
51
|
-
value?:
|
|
52
|
-
| string
|
|
53
|
-
| number
|
|
54
|
-
| boolean
|
|
55
|
-
| null
|
|
56
|
-
| (string | number | boolean | null)[];
|
|
57
|
-
children?: boolean;
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export type OrderByDTO = {
|
|
61
|
-
field: string;
|
|
62
|
-
type: string;
|
|
63
|
-
direction?: 'ASC' | 'DESC';
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export type SqlRequestFooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
|
|
67
|
-
|
|
68
|
-
export type SqlRequestDTO = {
|
|
69
|
-
columns?: string[];
|
|
70
|
-
returnColumns?: string[];
|
|
71
|
-
columnTypes?: string[];
|
|
72
|
-
totalColumns?: Record<string, SqlRequestFooterFunction>;
|
|
73
|
-
conditions?: ConditionDTO[];
|
|
74
|
-
orderBy?: OrderByDTO[];
|
|
75
|
-
start?: number;
|
|
76
|
-
length?: number;
|
|
77
|
-
getCount?: boolean;
|
|
78
|
-
unique?: boolean;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export type SqlRequestRow<R> = {
|
|
82
|
-
[K in keyof R]: R[K] extends string | number | null | undefined
|
|
83
|
-
? R[K]
|
|
84
|
-
: string | number | null | undefined;
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
-
export type SqlResponseDTO<T = any> = {
|
|
89
|
-
data: SqlRequestRow<T>[];
|
|
90
|
-
count?: number;
|
|
91
|
-
totals?: Record<string, string | number | null | undefined>;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
type SqlRequestHandler<T> = (
|
|
95
|
-
request: SqlRequestDTO
|
|
96
|
-
) => Promise<SqlResponseDTO<T>>;
|
|
97
|
-
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
-
export const useSqlRequestHandler = <T = any>(
|
|
100
|
-
name: string
|
|
101
|
-
): [
|
|
102
|
-
SqlRequestHandler<T>,
|
|
103
|
-
SqlRequestHandler<{ Id: string }>,
|
|
104
|
-
SqlRequestHandler<Partial<T>>
|
|
105
|
-
] => [
|
|
106
|
-
useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<T>>(name),
|
|
107
|
-
useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<{ Id: string }>>(
|
|
108
|
-
name
|
|
109
|
-
),
|
|
110
|
-
useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<Partial<T>>>(name),
|
|
111
|
-
];
|
|
1
|
+
import { useWebSocketRequestHandler } from './hooks';
|
|
2
|
+
|
|
3
|
+
export type FieldDTO<T extends string = string> = {
|
|
4
|
+
fieldName?: T;
|
|
5
|
+
fieldAlias?: string;
|
|
6
|
+
operator?:
|
|
7
|
+
| 'add'
|
|
8
|
+
| 'concat'
|
|
9
|
+
| 'divide'
|
|
10
|
+
| 'groupConcat'
|
|
11
|
+
| 'if'
|
|
12
|
+
| 'ifNull'
|
|
13
|
+
| 'jsonObject'
|
|
14
|
+
| 'length'
|
|
15
|
+
| 'modulo'
|
|
16
|
+
| 'multiply'
|
|
17
|
+
| 'subtract'
|
|
18
|
+
| 'sum'
|
|
19
|
+
| 'trim';
|
|
20
|
+
operands?: FieldDTO[];
|
|
21
|
+
constantValue?: string | number | boolean | null;
|
|
22
|
+
groupBy?: boolean;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type ConditionDTO = {
|
|
26
|
+
field: string;
|
|
27
|
+
operator:
|
|
28
|
+
| 'lessThan'
|
|
29
|
+
| 'lessThanOrEqual'
|
|
30
|
+
| 'lessThanOrEquals'
|
|
31
|
+
| 'equals'
|
|
32
|
+
| 'notEquals'
|
|
33
|
+
| 'greaterThanOrEqual'
|
|
34
|
+
| 'greaterThanOrEquals'
|
|
35
|
+
| 'greaterThan'
|
|
36
|
+
| 'like'
|
|
37
|
+
| 'contains'
|
|
38
|
+
| 'notContains'
|
|
39
|
+
| 'startsWith'
|
|
40
|
+
| 'endsWith'
|
|
41
|
+
| 'notLike'
|
|
42
|
+
| 'inRange'
|
|
43
|
+
| 'between'
|
|
44
|
+
| 'isNull'
|
|
45
|
+
| 'isNotNull'
|
|
46
|
+
| 'inArray'
|
|
47
|
+
| 'in'
|
|
48
|
+
| 'not'
|
|
49
|
+
| 'and'
|
|
50
|
+
| 'or';
|
|
51
|
+
value?:
|
|
52
|
+
| string
|
|
53
|
+
| number
|
|
54
|
+
| boolean
|
|
55
|
+
| null
|
|
56
|
+
| (string | number | boolean | null)[];
|
|
57
|
+
children?: boolean;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export type OrderByDTO = {
|
|
61
|
+
field: string;
|
|
62
|
+
type: string;
|
|
63
|
+
direction?: 'ASC' | 'DESC';
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export type SqlRequestFooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
|
|
67
|
+
|
|
68
|
+
export type SqlRequestDTO = {
|
|
69
|
+
columns?: string[];
|
|
70
|
+
returnColumns?: string[];
|
|
71
|
+
columnTypes?: string[];
|
|
72
|
+
totalColumns?: Record<string, SqlRequestFooterFunction>;
|
|
73
|
+
conditions?: ConditionDTO[];
|
|
74
|
+
orderBy?: OrderByDTO[];
|
|
75
|
+
start?: number;
|
|
76
|
+
length?: number;
|
|
77
|
+
getCount?: boolean;
|
|
78
|
+
unique?: boolean;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export type SqlRequestRow<R> = {
|
|
82
|
+
[K in keyof R]: R[K] extends string | number | null | undefined
|
|
83
|
+
? R[K]
|
|
84
|
+
: string | number | null | undefined;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
+
export type SqlResponseDTO<T = any> = {
|
|
89
|
+
data: SqlRequestRow<T>[];
|
|
90
|
+
count?: number;
|
|
91
|
+
totals?: Record<string, string | number | null | undefined>;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
type SqlRequestHandler<T> = (
|
|
95
|
+
request: SqlRequestDTO
|
|
96
|
+
) => Promise<SqlResponseDTO<T>>;
|
|
97
|
+
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
+
export const useSqlRequestHandler = <T = any>(
|
|
100
|
+
name: string
|
|
101
|
+
): [
|
|
102
|
+
SqlRequestHandler<T>,
|
|
103
|
+
SqlRequestHandler<{ Id: string }>,
|
|
104
|
+
SqlRequestHandler<Partial<T>>
|
|
105
|
+
] => [
|
|
106
|
+
useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<T>>(name),
|
|
107
|
+
useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<{ Id: string }>>(
|
|
108
|
+
name
|
|
109
|
+
),
|
|
110
|
+
useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<Partial<T>>>(name),
|
|
111
|
+
];
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import { userDtoSchema } from './users';
|
|
4
|
-
|
|
5
|
-
export const loginRequestDtoSchema = z.object({
|
|
6
|
-
username: z.string(),
|
|
7
|
-
password: z.string(),
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
export const loginResponseDtoSchema = z.object({
|
|
11
|
-
status: z.number(),
|
|
12
|
-
token: z.string(),
|
|
13
|
-
user: userDtoSchema.nullable(),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
export type LoginRequestDTO = z.infer<typeof loginRequestDtoSchema>;
|
|
17
|
-
export type LoginResponseDTO = z.infer<typeof loginResponseDtoSchema>;
|
|
18
|
-
|
|
19
|
-
/*****/
|
|
20
|
-
|
|
21
|
-
export const logoutRequestDtoSchema = z.object({});
|
|
22
|
-
|
|
23
|
-
export const logoutResponseDtoSchema = z.object({
|
|
24
|
-
status: z.number(),
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
export type LogoutRequestDTO = z.infer<typeof logoutRequestDtoSchema>;
|
|
28
|
-
export type LogoutResponseDTO = z.infer<typeof logoutResponseDtoSchema>;
|
|
29
|
-
|
|
30
|
-
/*****/
|
|
31
|
-
|
|
32
|
-
export const authenticateRequestDtoSchema = z.object({
|
|
33
|
-
token: z.string(),
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
export const authenticateResponseDtoSchema = z.object({
|
|
37
|
-
status: z.number(),
|
|
38
|
-
user: userDtoSchema.nullable(),
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
export type AuthenticateRequestDTO = z.infer<
|
|
42
|
-
typeof authenticateRequestDtoSchema
|
|
43
|
-
>;
|
|
44
|
-
export type AuthenticateResponseDTO = z.infer<
|
|
45
|
-
typeof authenticateResponseDtoSchema
|
|
46
|
-
>;
|
|
47
|
-
|
|
48
|
-
/*****/
|
|
49
|
-
|
|
50
|
-
export const sendRecoveryKeyRequestDtoSchema = z.object({
|
|
51
|
-
email: z.string(),
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
export const sendRecoveryKeyResponseDtoSchema = z.object({
|
|
55
|
-
status: z.number(),
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
export type SendRecoveryKeyRequestDTO = z.infer<
|
|
59
|
-
typeof sendRecoveryKeyRequestDtoSchema
|
|
60
|
-
>;
|
|
61
|
-
export type SendRecoveryKeyResponseDTO = z.infer<
|
|
62
|
-
typeof sendRecoveryKeyResponseDtoSchema
|
|
63
|
-
>;
|
|
64
|
-
|
|
65
|
-
/*****/
|
|
66
|
-
|
|
67
|
-
export const checkRecoveryKeyRequestDtoSchema = z.object({
|
|
68
|
-
key: z.string(),
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
export const checkRecoveryKeyResponseDtoSchema = z.object({
|
|
72
|
-
status: z.number(),
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
export type CheckRecoveryKeyRequestDTO = z.infer<
|
|
76
|
-
typeof checkRecoveryKeyRequestDtoSchema
|
|
77
|
-
>;
|
|
78
|
-
export type CheckRecoveryKeyResponseDTO = z.infer<
|
|
79
|
-
typeof checkRecoveryKeyResponseDtoSchema
|
|
80
|
-
>;
|
|
81
|
-
|
|
82
|
-
/*****/
|
|
83
|
-
|
|
84
|
-
export const resetPasswordRequestDtoSchema = z.object({
|
|
85
|
-
key: z.string(),
|
|
86
|
-
password: z.string(),
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
export const resetPasswordResponseDtoSchema = z.object({
|
|
90
|
-
status: z.number(),
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
export type ResetPasswordRequestDTO = z.infer<
|
|
94
|
-
typeof resetPasswordRequestDtoSchema
|
|
95
|
-
>;
|
|
96
|
-
export type ResetPasswordResponseDTO = z.infer<
|
|
97
|
-
typeof resetPasswordResponseDtoSchema
|
|
98
|
-
>;
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
import { userDtoSchema } from './users';
|
|
4
|
+
|
|
5
|
+
export const loginRequestDtoSchema = z.object({
|
|
6
|
+
username: z.string(),
|
|
7
|
+
password: z.string(),
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export const loginResponseDtoSchema = z.object({
|
|
11
|
+
status: z.number(),
|
|
12
|
+
token: z.string(),
|
|
13
|
+
user: userDtoSchema.nullable(),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type LoginRequestDTO = z.infer<typeof loginRequestDtoSchema>;
|
|
17
|
+
export type LoginResponseDTO = z.infer<typeof loginResponseDtoSchema>;
|
|
18
|
+
|
|
19
|
+
/*****/
|
|
20
|
+
|
|
21
|
+
export const logoutRequestDtoSchema = z.object({});
|
|
22
|
+
|
|
23
|
+
export const logoutResponseDtoSchema = z.object({
|
|
24
|
+
status: z.number(),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export type LogoutRequestDTO = z.infer<typeof logoutRequestDtoSchema>;
|
|
28
|
+
export type LogoutResponseDTO = z.infer<typeof logoutResponseDtoSchema>;
|
|
29
|
+
|
|
30
|
+
/*****/
|
|
31
|
+
|
|
32
|
+
export const authenticateRequestDtoSchema = z.object({
|
|
33
|
+
token: z.string(),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export const authenticateResponseDtoSchema = z.object({
|
|
37
|
+
status: z.number(),
|
|
38
|
+
user: userDtoSchema.nullable(),
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export type AuthenticateRequestDTO = z.infer<
|
|
42
|
+
typeof authenticateRequestDtoSchema
|
|
43
|
+
>;
|
|
44
|
+
export type AuthenticateResponseDTO = z.infer<
|
|
45
|
+
typeof authenticateResponseDtoSchema
|
|
46
|
+
>;
|
|
47
|
+
|
|
48
|
+
/*****/
|
|
49
|
+
|
|
50
|
+
export const sendRecoveryKeyRequestDtoSchema = z.object({
|
|
51
|
+
email: z.string(),
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
export const sendRecoveryKeyResponseDtoSchema = z.object({
|
|
55
|
+
status: z.number(),
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export type SendRecoveryKeyRequestDTO = z.infer<
|
|
59
|
+
typeof sendRecoveryKeyRequestDtoSchema
|
|
60
|
+
>;
|
|
61
|
+
export type SendRecoveryKeyResponseDTO = z.infer<
|
|
62
|
+
typeof sendRecoveryKeyResponseDtoSchema
|
|
63
|
+
>;
|
|
64
|
+
|
|
65
|
+
/*****/
|
|
66
|
+
|
|
67
|
+
export const checkRecoveryKeyRequestDtoSchema = z.object({
|
|
68
|
+
key: z.string(),
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
export const checkRecoveryKeyResponseDtoSchema = z.object({
|
|
72
|
+
status: z.number(),
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export type CheckRecoveryKeyRequestDTO = z.infer<
|
|
76
|
+
typeof checkRecoveryKeyRequestDtoSchema
|
|
77
|
+
>;
|
|
78
|
+
export type CheckRecoveryKeyResponseDTO = z.infer<
|
|
79
|
+
typeof checkRecoveryKeyResponseDtoSchema
|
|
80
|
+
>;
|
|
81
|
+
|
|
82
|
+
/*****/
|
|
83
|
+
|
|
84
|
+
export const resetPasswordRequestDtoSchema = z.object({
|
|
85
|
+
key: z.string(),
|
|
86
|
+
password: z.string(),
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
export const resetPasswordResponseDtoSchema = z.object({
|
|
90
|
+
status: z.number(),
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
export type ResetPasswordRequestDTO = z.infer<
|
|
94
|
+
typeof resetPasswordRequestDtoSchema
|
|
95
|
+
>;
|
|
96
|
+
export type ResetPasswordResponseDTO = z.infer<
|
|
97
|
+
typeof resetPasswordResponseDtoSchema
|
|
98
|
+
>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export const baseModelDtoSchema = z.object({
|
|
4
|
-
id: z.string().nullable(),
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
export type BaseModelDTO = z.infer<typeof baseModelDtoSchema>;
|
|
8
|
-
|
|
9
|
-
export const UUID_REGEX =
|
|
10
|
-
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
export const baseModelDtoSchema = z.object({
|
|
4
|
+
id: z.string().nullable(),
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
export type BaseModelDTO = z.infer<typeof baseModelDtoSchema>;
|
|
8
|
+
|
|
9
|
+
export const UUID_REGEX =
|
|
10
|
+
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|