@open-norantec/utilities 1.0.1 → 2.0.0-alpha.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.
@@ -1,165 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SchemaUtil = exports.Enum = void 0;
4
- const zod_1 = require("zod");
5
- const date_util_class_1 = require("./date-util.class");
6
- const FIND_ONE_OPTIONS_OMIT_PARAMS = {
7
- limit: true,
8
- lastCursor: true,
9
- };
10
- var Enum;
11
- (function (Enum) {
12
- Enum.OrderOrientation = {
13
- ASC: 'ASC',
14
- DESC: 'DESC',
15
- };
16
- Enum.WhereClauseOp = {
17
- ADJACENT: 'adjacent',
18
- ANY: 'any',
19
- BETWEEN: 'between',
20
- COL: 'col',
21
- CONTAINED: 'contained',
22
- CONTAINS: 'contains',
23
- ENDS_WITH: 'endsWith',
24
- EQ: 'eq',
25
- GT: 'gt',
26
- GTE: 'gte',
27
- I_LIKE: 'iLike',
28
- IN: 'in',
29
- I_REGEXP: 'iRegexp',
30
- IS: 'is',
31
- LIKE: 'like',
32
- LT: 'lt',
33
- LTE: 'lte',
34
- MATCH: 'match',
35
- NE: 'ne',
36
- NO_EXTEND_LEFT: 'noExtendLeft',
37
- NO_EXTEND_RIGHT: 'noExtendRight',
38
- NOT: 'not',
39
- NOT_BETWEEN: 'notBetween',
40
- NOT_I_LIKE: 'notILike',
41
- NOT_IN: 'notIn',
42
- NOT_I_REGEXP: 'notIRegexp',
43
- NOT_LIKE: 'notLike',
44
- NOT_REGEXP: 'notRegexp',
45
- OVERLAP: 'overlap',
46
- PLACEHOLDER: 'placeholder',
47
- REGEXP: 'regexp',
48
- STARTS_WITH: 'startsWith',
49
- STRICT_LEFT: 'strictLeft',
50
- STRICT_RIGHT: 'strictRight',
51
- SUBSTRING: 'substring',
52
- VALUES: 'values',
53
- };
54
- Enum.LogLevel = {
55
- ERROR: 'error',
56
- WARN: 'warn',
57
- INFO: 'info',
58
- VERBOSE: 'verbose',
59
- DEBUG: 'debug',
60
- };
61
- })(Enum || (exports.Enum = Enum = {}));
62
- class SchemaUtil {
63
- static createEnumSchema(object, params) {
64
- return zod_1.z.enum(Object.values(object), params);
65
- }
66
- }
67
- exports.SchemaUtil = SchemaUtil;
68
- SchemaUtil.ID = zod_1.z.string().uuid();
69
- SchemaUtil.ID_LIST = zod_1.z.array(SchemaUtil.ID).min(1);
70
- SchemaUtil.ID_LIST_OBJECT = zod_1.z.object({
71
- idList: SchemaUtil.ID_LIST,
72
- });
73
- SchemaUtil.ID_OBJECT = zod_1.z.object({
74
- id: SchemaUtil.ID,
75
- });
76
- SchemaUtil.JSON_STRING = zod_1.z.string().refine((value) => {
77
- try {
78
- JSON.parse(value);
79
- return true;
80
- }
81
- catch (_a) {
82
- return false;
83
- }
84
- });
85
- SchemaUtil.DATE_STRING = zod_1.z.string().refine((value) => date_util_class_1.DateUtil.isValidDateString(value));
86
- SchemaUtil.TIME_RECORD = zod_1.z.object({
87
- createdAt: SchemaUtil.DATE_STRING.nullable().optional(),
88
- updatedAt: SchemaUtil.DATE_STRING.nullable().optional(),
89
- });
90
- SchemaUtil.ORDER_ORIENTATION = SchemaUtil.createEnumSchema(Enum.OrderOrientation);
91
- SchemaUtil.WHERE_CLAUSE_OP = SchemaUtil.createEnumSchema(Enum.WhereClauseOp);
92
- SchemaUtil.LOG_LEVEL = SchemaUtil.createEnumSchema(Enum.LogLevel);
93
- SchemaUtil.COMMON_RESULT = zod_1.z
94
- .object({
95
- succeeded: zod_1.z.boolean(),
96
- content: zod_1.z.string().optional(),
97
- })
98
- .merge(SchemaUtil.ID_OBJECT.partial())
99
- .merge(SchemaUtil.TIME_RECORD);
100
- SchemaUtil.WHERE_CLAUSE = zod_1.z.discriminatedUnion('type', [
101
- zod_1.z.object({
102
- field: zod_1.z.string(),
103
- op: SchemaUtil.WHERE_CLAUSE_OP,
104
- type: zod_1.z.literal('condition'),
105
- value: SchemaUtil.JSON_STRING,
106
- }),
107
- zod_1.z.object({
108
- literal: zod_1.z.string().min(1),
109
- params: zod_1.z.array(zod_1.z.any()).optional(),
110
- type: zod_1.z.literal('literal'),
111
- }),
112
- ]);
113
- SchemaUtil.CONDITION_ONLY_WHERE_CLAUSE = SchemaUtil.WHERE_CLAUSE.superRefine((value, context) => {
114
- if ((value === null || value === void 0 ? void 0 : value.type) === 'literal') {
115
- context.addIssue({
116
- code: 'custom',
117
- message: 'Literal where clause item is strictly forbidden for safety reasons',
118
- });
119
- }
120
- });
121
- SchemaUtil.ORDER_ITEM = zod_1.z.object({
122
- field: zod_1.z.string(),
123
- orientation: SchemaUtil.ORDER_ORIENTATION,
124
- });
125
- SchemaUtil.PAGINATION_OPTIONS = zod_1.z.object({
126
- cursorField: zod_1.z.union([zod_1.z.string().optional().default('id'), zod_1.z.undefined()]),
127
- cursorFieldOrderOrientation: zod_1.z.union([SchemaUtil.ORDER_ORIENTATION.default('DESC'), zod_1.z.undefined()]),
128
- lastCursor: zod_1.z.string().optional(),
129
- limit: zod_1.z.number().min(0).optional(),
130
- search: zod_1.z
131
- .object({
132
- fields: zod_1.z.array(zod_1.z.union([
133
- zod_1.z.string().min(1),
134
- zod_1.z.object({
135
- field: zod_1.z.string().min(1),
136
- ratio: zod_1.z.number().min(-1).max(1).optional().default(1),
137
- }),
138
- ])),
139
- value: zod_1.z.string().min(1),
140
- })
141
- .optional(),
142
- order: zod_1.z.array(SchemaUtil.ORDER_ITEM).optional(),
143
- orderField: zod_1.z.union([zod_1.z.string().optional().default('createdAt'), zod_1.z.undefined()]),
144
- orderFieldOrderOrientation: zod_1.z.union([SchemaUtil.ORDER_ORIENTATION.default('DESC'), zod_1.z.undefined()]),
145
- where: zod_1.z.array(zod_1.z.array(SchemaUtil.WHERE_CLAUSE).min(1)).optional(),
146
- });
147
- SchemaUtil.FIND_ONE_OPTIONS = SchemaUtil.PAGINATION_OPTIONS.omit(FIND_ONE_OPTIONS_OMIT_PARAMS);
148
- SchemaUtil.PAGINATION_RESULT = zod_1.z.object({
149
- hasNext: zod_1.z.boolean(),
150
- nextCursor: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]),
151
- previousCursor: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]),
152
- });
153
- SchemaUtil.FILE = zod_1.z
154
- .object({
155
- mimeType: zod_1.z.string(),
156
- name: zod_1.z.string(),
157
- progres: zod_1.z.number().min(0).max(1),
158
- size: zod_1.z.number().min(0),
159
- url: zod_1.z.string(),
160
- })
161
- .merge(SchemaUtil.TIME_RECORD);
162
- SchemaUtil.CONDITION_ONLY_PAGINATION_OPTIONS = SchemaUtil.PAGINATION_OPTIONS.omit({
163
- where: true,
164
- }).extend({ where: zod_1.z.array(zod_1.z.array(SchemaUtil.CONDITION_ONLY_WHERE_CLAUSE).min(1)).optional() });
165
- SchemaUtil.CONDITION_ONLY_FIND_ONE_OPTIONS = SchemaUtil.CONDITION_ONLY_PAGINATION_OPTIONS.omit(FIND_ONE_OPTIONS_OMIT_PARAMS);