@impactor/nest 3.0.0 → 5.0.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/README.md +89 -6
- package/index.d.ts +41 -40
- package/package.json +31 -33
- package/src/configs/app.d.ts +7 -4
- package/src/configs/app.js +11 -18
- package/src/configs/app.js.map +1 -1
- package/src/configs/database.js +1 -11
- package/src/configs/database.js.map +1 -1
- package/src/configs/microservice.js +6 -16
- package/src/configs/microservice.js.map +1 -1
- package/src/configs/multi-queue-rabbitmq-server.js +28 -34
- package/src/configs/multi-queue-rabbitmq-server.js.map +1 -1
- package/src/configs/redis-config.js +1 -11
- package/src/configs/redis-config.js.map +1 -1
- package/src/create-app.d.ts +1 -1
- package/src/create-app.js +47 -55
- package/src/create-app.js.map +1 -1
- package/src/create-microservice.d.ts +1 -1
- package/src/create-microservice.js +18 -22
- package/src/create-microservice.js.map +1 -1
- package/src/create-testing-microservice.d.ts +1 -1
- package/src/create-testing-microservice.js +16 -20
- package/src/create-testing-microservice.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-controller-path.d.ts +1 -1
- package/src/decorators/controller/add-decorators/add-controller-path.js +7 -15
- package/src/decorators/controller/add-decorators/add-controller-path.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-controller-tags.d.ts +1 -1
- package/src/decorators/controller/add-decorators/add-controller-tags.js +9 -17
- package/src/decorators/controller/add-decorators/add-controller-tags.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-http-method.d.ts +2 -2
- package/src/decorators/controller/add-decorators/add-http-method.js +13 -20
- package/src/decorators/controller/add-decorators/add-http-method.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-swagger-body.d.ts +2 -2
- package/src/decorators/controller/add-decorators/add-swagger-body.js +7 -17
- package/src/decorators/controller/add-decorators/add-swagger-body.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-swagger-operation.d.ts +2 -2
- package/src/decorators/controller/add-decorators/add-swagger-operation.js +8 -15
- package/src/decorators/controller/add-decorators/add-swagger-operation.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-swagger-params.d.ts +2 -2
- package/src/decorators/controller/add-decorators/add-swagger-params.js +9 -16
- package/src/decorators/controller/add-decorators/add-swagger-params.js.map +1 -1
- package/src/decorators/controller/add-decorators/add-swagger-response.d.ts +2 -2
- package/src/decorators/controller/add-decorators/add-swagger-response.js +10 -20
- package/src/decorators/controller/add-decorators/add-swagger-response.js.map +1 -1
- package/src/decorators/controller/controller.decorator.d.ts +1 -1
- package/src/decorators/controller/controller.decorator.js +12 -13
- package/src/decorators/controller/controller.decorator.js.map +1 -1
- package/src/decorators/controller/controller.factory.d.ts +1 -1
- package/src/decorators/controller/controller.factory.js +59 -67
- package/src/decorators/controller/controller.factory.js.map +1 -1
- package/src/decorators/controller/default-options.d.ts +1 -1
- package/src/decorators/controller/default-options.js +11 -26
- package/src/decorators/controller/default-options.js.map +1 -1
- package/src/decorators/controller/dto/empty.dto.js +2 -12
- package/src/decorators/controller/dto/empty.dto.js.map +1 -1
- package/src/decorators/controller/dto/update-response.dto.js +2 -12
- package/src/decorators/controller/dto/update-response.dto.js.map +1 -1
- package/src/decorators/controller/interceptors/query.interceptor.d.ts +1 -1
- package/src/decorators/controller/interceptors/query.interceptor.js +10 -19
- package/src/decorators/controller/interceptors/query.interceptor.js.map +1 -1
- package/src/decorators/controller/route-handler.d.ts +2 -2
- package/src/decorators/controller/route-handler.js +8 -16
- package/src/decorators/controller/route-handler.js.map +1 -1
- package/src/decorators/controller/route.decorator.d.ts +1 -1
- package/src/decorators/controller/route.decorator.js +11 -11
- package/src/decorators/controller/route.decorator.js.map +1 -1
- package/src/decorators/controller/services/crud-typeorm.service.d.ts +1 -2
- package/src/decorators/controller/services/crud-typeorm.service.js +19 -24
- package/src/decorators/controller/services/crud-typeorm.service.js.map +1 -1
- package/src/decorators/controller/types/index.d.ts +2 -2
- package/src/decorators/controller/types/index.js +1 -4
- package/src/decorators/controller/types/index.js.map +1 -1
- package/src/decorators/controller/utils/merge-options.d.ts +1 -1
- package/src/decorators/controller/utils/merge-options.js +3 -13
- package/src/decorators/controller/utils/merge-options.js.map +1 -1
- package/src/decorators/controller/utils/reflect.d.ts +2 -2
- package/src/decorators/controller/utils/reflect.js +24 -38
- package/src/decorators/controller/utils/reflect.js.map +1 -1
- package/src/decorators/entity.decorator.d.ts +6 -0
- package/src/decorators/entity.decorator.js +73 -0
- package/src/decorators/entity.decorator.js.map +1 -0
- package/src/decorators/prop.decorator.js +79 -38
- package/src/decorators/prop.decorator.js.map +1 -1
- package/src/exceptions/rpc-bad-request.exception.d.ts +1 -1
- package/src/exceptions/rpc-bad-request.exception.js +5 -15
- package/src/exceptions/rpc-bad-request.exception.js.map +1 -1
- package/src/exceptions/rpc-base.exception.js +10 -15
- package/src/exceptions/rpc-base.exception.js.map +1 -1
- package/src/exceptions/rpc-conflict.exception.d.ts +1 -1
- package/src/exceptions/rpc-conflict.exception.js +5 -15
- package/src/exceptions/rpc-conflict.exception.js.map +1 -1
- package/src/exceptions/rpc-internal-server-error.exception.d.ts +1 -1
- package/src/exceptions/rpc-internal-server-error.exception.js +5 -15
- package/src/exceptions/rpc-internal-server-error.exception.js.map +1 -1
- package/src/exceptions/rpc-method-not-allowed.exception.d.ts +1 -1
- package/src/exceptions/rpc-method-not-allowed.exception.js +5 -15
- package/src/exceptions/rpc-method-not-allowed.exception.js.map +1 -1
- package/src/exceptions/rpc-not-found.exception.d.ts +1 -1
- package/src/exceptions/rpc-not-found.exception.js +5 -15
- package/src/exceptions/rpc-not-found.exception.js.map +1 -1
- package/src/exceptions/rpc-not-implemented.exception.d.ts +1 -1
- package/src/exceptions/rpc-not-implemented.exception.js +5 -15
- package/src/exceptions/rpc-not-implemented.exception.js.map +1 -1
- package/src/exceptions/rpc-unauthorized.exception.d.ts +1 -1
- package/src/exceptions/rpc-unauthorized.exception.js +5 -15
- package/src/exceptions/rpc-unauthorized.exception.js.map +1 -1
- package/src/filters/error-to-rpc-exception.filter.js +12 -22
- package/src/filters/error-to-rpc-exception.filter.js.map +1 -1
- package/src/filters/error-to-ws-exception.filter.js +10 -20
- package/src/filters/error-to-ws-exception.filter.js.map +1 -1
- package/src/filters/typeorm-exception.filter.js +9 -19
- package/src/filters/typeorm-exception.filter.js.map +1 -1
- package/src/filters/ws-exception.filter.js +6 -16
- package/src/filters/ws-exception.filter.js.map +1 -1
- package/src/generate-metadata.d.ts +3 -3
- package/src/generate-metadata.js +18 -74
- package/src/generate-metadata.js.map +1 -1
- package/src/guards/auth.guard.js +43 -44
- package/src/guards/auth.guard.js.map +1 -1
- package/src/modules/basic/basic.controller.js +6 -16
- package/src/modules/basic/basic.controller.js.map +1 -1
- package/src/modules/basic/basic.module.js +15 -23
- package/src/modules/basic/basic.module.js.map +1 -1
- package/src/modules/basic/basic.service.js +4 -14
- package/src/modules/basic/basic.service.js.map +1 -1
- package/src/register-entities.d.ts +1 -0
- package/src/register-entities.js +135 -0
- package/src/register-entities.js.map +1 -0
- package/src/utils/logger.js +2 -12
- package/src/utils/logger.js.map +1 -1
- package/src/utils/typeorm-to-swagger.d.ts +3 -0
- package/src/utils/typeorm-to-swagger.js +308 -0
- package/src/utils/typeorm-to-swagger.js.map +1 -0
- package/nx.json +0 -190
- package/src/nest-swagger-metadata.js +0 -553
- package/src/nest-swagger-metadata.js.map +0 -1
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* extract openAPI type and format from TypeORM column type
|
|
3
|
+
* @example `typeORMToSwaggerType("file")` // { type: 'string', format: 'binary' }
|
|
4
|
+
*/ export function typeORMToSwagger(type) {
|
|
5
|
+
// the column type as string
|
|
6
|
+
// it may be a BooleanConstructor | DateConstructor | ....
|
|
7
|
+
let value = (typeof type === 'string' ? type : type.name).toLowerCase();
|
|
8
|
+
// numbers
|
|
9
|
+
if ([
|
|
10
|
+
'numeric',
|
|
11
|
+
'number',
|
|
12
|
+
'int',
|
|
13
|
+
'int2',
|
|
14
|
+
'int4',
|
|
15
|
+
'int8',
|
|
16
|
+
'int64',
|
|
17
|
+
'integer',
|
|
18
|
+
'tinyint',
|
|
19
|
+
'smallint',
|
|
20
|
+
'mediumint',
|
|
21
|
+
'bigint',
|
|
22
|
+
'unsigned big int',
|
|
23
|
+
'rowid',
|
|
24
|
+
'urowid',
|
|
25
|
+
'float',
|
|
26
|
+
'float4',
|
|
27
|
+
'float8',
|
|
28
|
+
'float64',
|
|
29
|
+
'money',
|
|
30
|
+
'smallmoney',
|
|
31
|
+
'decimal',
|
|
32
|
+
'smalldecimal',
|
|
33
|
+
'dec',
|
|
34
|
+
'double',
|
|
35
|
+
'double precision',
|
|
36
|
+
'fixed',
|
|
37
|
+
'real'
|
|
38
|
+
].includes(value)) {
|
|
39
|
+
// todo: set the best 'format' for each type
|
|
40
|
+
return {
|
|
41
|
+
type: 'number'
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// booleans
|
|
45
|
+
if ([
|
|
46
|
+
'boolean',
|
|
47
|
+
'bool',
|
|
48
|
+
'bit',
|
|
49
|
+
'bit varying',
|
|
50
|
+
'varbit'
|
|
51
|
+
].includes(value)) {
|
|
52
|
+
return {
|
|
53
|
+
type: 'boolean'
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// arrays / collections
|
|
57
|
+
if ([
|
|
58
|
+
'array',
|
|
59
|
+
'simple-array',
|
|
60
|
+
'set',
|
|
61
|
+
'cube',
|
|
62
|
+
'ltree'
|
|
63
|
+
].includes(value)) {
|
|
64
|
+
return {
|
|
65
|
+
type: 'array'
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// files
|
|
69
|
+
if ([
|
|
70
|
+
'blob',
|
|
71
|
+
'longblob',
|
|
72
|
+
'mediumblob',
|
|
73
|
+
'tinyblob',
|
|
74
|
+
'bytea',
|
|
75
|
+
'bytes',
|
|
76
|
+
'image',
|
|
77
|
+
'rowversion',
|
|
78
|
+
'raw',
|
|
79
|
+
'long raw',
|
|
80
|
+
'bfile',
|
|
81
|
+
'binary',
|
|
82
|
+
'varbinary'
|
|
83
|
+
].includes(value)) {
|
|
84
|
+
// todo: openAPI v3 changed 'file' to 'string' with format 'binary' | 'byte'
|
|
85
|
+
// https://swagger.io/docs/specification/v3_0/data-models/data-types/#files
|
|
86
|
+
return {
|
|
87
|
+
type: 'string',
|
|
88
|
+
format: 'binary'
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// date
|
|
92
|
+
if ([
|
|
93
|
+
'date'
|
|
94
|
+
].includes(value)) {
|
|
95
|
+
return {
|
|
96
|
+
type: 'string',
|
|
97
|
+
format: 'date'
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if ([
|
|
101
|
+
'year'
|
|
102
|
+
].includes(value)) {
|
|
103
|
+
return {
|
|
104
|
+
type: 'integer',
|
|
105
|
+
format: 'int32',
|
|
106
|
+
example: new Date().getFullYear()
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// time
|
|
110
|
+
if ([
|
|
111
|
+
'time',
|
|
112
|
+
'timetz'
|
|
113
|
+
].includes(value)) {
|
|
114
|
+
return {
|
|
115
|
+
type: 'string',
|
|
116
|
+
format: 'time'
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// date-time
|
|
120
|
+
if ([
|
|
121
|
+
'timestamp',
|
|
122
|
+
'timestamptz',
|
|
123
|
+
'timestamp without time zone',
|
|
124
|
+
'timestamp with time zone',
|
|
125
|
+
'timestamp with local time zone',
|
|
126
|
+
'datetime',
|
|
127
|
+
'datetime2',
|
|
128
|
+
'datetimeoffset',
|
|
129
|
+
'smalldatetime',
|
|
130
|
+
'seconddate'
|
|
131
|
+
].includes(value)) {
|
|
132
|
+
return {
|
|
133
|
+
type: 'string',
|
|
134
|
+
format: 'date-time'
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// intervals and durations
|
|
138
|
+
if ([
|
|
139
|
+
'interval',
|
|
140
|
+
'interval year to month',
|
|
141
|
+
'interval day to second'
|
|
142
|
+
].includes(value)) {
|
|
143
|
+
return {
|
|
144
|
+
type: 'string',
|
|
145
|
+
format: 'duration',
|
|
146
|
+
example: 'P1Y2M3DT4H5M6S'
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// strings
|
|
150
|
+
if ([
|
|
151
|
+
'text',
|
|
152
|
+
'tinytext',
|
|
153
|
+
'shorttext',
|
|
154
|
+
'mediumtext',
|
|
155
|
+
'longtext',
|
|
156
|
+
'ntext',
|
|
157
|
+
'citext',
|
|
158
|
+
'string',
|
|
159
|
+
'character varying',
|
|
160
|
+
'varying character',
|
|
161
|
+
'char varying',
|
|
162
|
+
'varchar2',
|
|
163
|
+
'nvarchar',
|
|
164
|
+
'nvarchar2',
|
|
165
|
+
'national varchar',
|
|
166
|
+
'character',
|
|
167
|
+
'native character',
|
|
168
|
+
'varchar',
|
|
169
|
+
'char',
|
|
170
|
+
'nchar',
|
|
171
|
+
'national char',
|
|
172
|
+
'alphanum',
|
|
173
|
+
'jsonpath',
|
|
174
|
+
'xml',
|
|
175
|
+
'long',
|
|
176
|
+
'clob',
|
|
177
|
+
'nclob',
|
|
178
|
+
// ranges
|
|
179
|
+
// this can also represented as object `{start, end}`
|
|
180
|
+
'int4range',
|
|
181
|
+
'int8range',
|
|
182
|
+
'numrange',
|
|
183
|
+
'tsrange',
|
|
184
|
+
'tstzrange',
|
|
185
|
+
'daterange',
|
|
186
|
+
'int4multirange',
|
|
187
|
+
'int8multirange',
|
|
188
|
+
'nummultirange',
|
|
189
|
+
'tsmultirange',
|
|
190
|
+
'tstzmultirange',
|
|
191
|
+
'datemultirange',
|
|
192
|
+
// enums
|
|
193
|
+
'enum',
|
|
194
|
+
'simple-enum',
|
|
195
|
+
// network
|
|
196
|
+
'cidr',
|
|
197
|
+
'inet',
|
|
198
|
+
'inet4',
|
|
199
|
+
'inet6',
|
|
200
|
+
'macaddr',
|
|
201
|
+
'macaddr8',
|
|
202
|
+
// full-text search types
|
|
203
|
+
'tsvector',
|
|
204
|
+
'tsquery',
|
|
205
|
+
// identifiers
|
|
206
|
+
'rowid',
|
|
207
|
+
'urowid',
|
|
208
|
+
'hierarchyid',
|
|
209
|
+
'sql_variant'
|
|
210
|
+
].includes(value)) {
|
|
211
|
+
return {
|
|
212
|
+
type: 'string'
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
if ([
|
|
216
|
+
'uuid',
|
|
217
|
+
// most databases generates a 128-bit GUID, the same as a UUID
|
|
218
|
+
// so, it is safe to represent it in Swagger UI as a UUID string
|
|
219
|
+
'uniqueidentifier'
|
|
220
|
+
].includes(value)) {
|
|
221
|
+
return {
|
|
222
|
+
type: 'string',
|
|
223
|
+
format: 'uuid'
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
// vectors
|
|
227
|
+
if ([
|
|
228
|
+
'vector',
|
|
229
|
+
'halfvec',
|
|
230
|
+
'half_vector',
|
|
231
|
+
'real_vector'
|
|
232
|
+
].includes(value)) {
|
|
233
|
+
return {
|
|
234
|
+
type: 'array',
|
|
235
|
+
items: {
|
|
236
|
+
type: 'number'
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
// JSON
|
|
241
|
+
if ([
|
|
242
|
+
'json',
|
|
243
|
+
'jsonb',
|
|
244
|
+
'simple-json',
|
|
245
|
+
'hstore'
|
|
246
|
+
].includes(value)) {
|
|
247
|
+
return {
|
|
248
|
+
type: 'object',
|
|
249
|
+
items: {
|
|
250
|
+
type: 'number'
|
|
251
|
+
},
|
|
252
|
+
// in hstore, keys must ve string
|
|
253
|
+
additionalProperties: value === 'hstore' ? {
|
|
254
|
+
type: 'string'
|
|
255
|
+
} : true
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
// geometry types
|
|
259
|
+
if ([
|
|
260
|
+
'geometry',
|
|
261
|
+
'geography',
|
|
262
|
+
'st_geometry',
|
|
263
|
+
'st_point',
|
|
264
|
+
'point',
|
|
265
|
+
'line',
|
|
266
|
+
'polygon',
|
|
267
|
+
'circle',
|
|
268
|
+
'multipolygon',
|
|
269
|
+
'linestring',
|
|
270
|
+
'multilinestring',
|
|
271
|
+
'multipoint',
|
|
272
|
+
'geometrycollection',
|
|
273
|
+
'lseg',
|
|
274
|
+
'box',
|
|
275
|
+
'path'
|
|
276
|
+
].includes(value)) {
|
|
277
|
+
return {
|
|
278
|
+
// they're saved as JSON objects
|
|
279
|
+
type: 'object',
|
|
280
|
+
properties: {
|
|
281
|
+
type: {
|
|
282
|
+
type: 'string',
|
|
283
|
+
example: 'Point'
|
|
284
|
+
},
|
|
285
|
+
coordinates: {
|
|
286
|
+
type: 'array',
|
|
287
|
+
items: {
|
|
288
|
+
type: 'number'
|
|
289
|
+
},
|
|
290
|
+
example: [
|
|
291
|
+
125.6,
|
|
292
|
+
10.1
|
|
293
|
+
]
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
required: [
|
|
297
|
+
'type',
|
|
298
|
+
'coordinates'
|
|
299
|
+
],
|
|
300
|
+
description: 'GeoJSON object representing geometry or geography'
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
return {
|
|
304
|
+
type: 'null'
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
//# sourceMappingURL=typeorm-to-swagger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/typeorm-to-swagger.ts"],"sourcesContent":["import { ApiPropertyOptions } from '@nestjs/swagger';\nimport { ColumnType } from 'typeorm';\n\n/**\n * extract openAPI type and format from TypeORM column type\n * @example `typeORMToSwaggerType(\"file\")` // { type: 'string', format: 'binary' }\n */\nexport function typeORMToSwagger(type: ColumnType): ApiPropertyOptions {\n // the column type as string\n // it may be a BooleanConstructor | DateConstructor | ....\n let value = (typeof type === 'string' ? type : type.name).toLowerCase();\n\n // numbers\n if (\n [\n 'numeric',\n 'number',\n 'int',\n 'int2',\n 'int4',\n 'int8',\n 'int64',\n 'integer',\n 'tinyint',\n 'smallint',\n 'mediumint',\n 'bigint',\n 'unsigned big int',\n 'rowid',\n 'urowid',\n 'float',\n 'float4',\n 'float8',\n 'float64',\n 'money',\n 'smallmoney',\n 'decimal',\n 'smalldecimal',\n 'dec',\n 'double',\n 'double precision',\n 'fixed',\n 'real',\n ].includes(value)\n ) {\n // todo: set the best 'format' for each type\n return { type: 'number' };\n }\n\n // booleans\n if (['boolean', 'bool', 'bit', 'bit varying', 'varbit'].includes(value)) {\n return { type: 'boolean' };\n }\n\n // arrays / collections\n if (['array', 'simple-array', 'set', 'cube', 'ltree'].includes(value)) {\n return { type: 'array' };\n }\n\n // files\n if (\n [\n 'blob',\n 'longblob',\n 'mediumblob',\n 'tinyblob',\n 'bytea',\n 'bytes',\n 'image',\n 'rowversion',\n 'raw',\n 'long raw',\n 'bfile',\n 'binary',\n 'varbinary',\n ].includes(value)\n ) {\n // todo: openAPI v3 changed 'file' to 'string' with format 'binary' | 'byte'\n // https://swagger.io/docs/specification/v3_0/data-models/data-types/#files\n return { type: 'string', format: 'binary' };\n }\n\n // date\n if (['date'].includes(value)) {\n return { type: 'string', format: 'date' };\n }\n\n if (['year'].includes(value)) {\n return {\n type: 'integer',\n format: 'int32',\n example: new Date().getFullYear(),\n };\n }\n\n // time\n if (['time', 'timetz'].includes(value)) {\n return { type: 'string', format: 'time' };\n }\n\n // date-time\n if (\n [\n 'timestamp',\n 'timestamptz',\n 'timestamp without time zone',\n 'timestamp with time zone',\n 'timestamp with local time zone',\n 'datetime',\n 'datetime2',\n 'datetimeoffset',\n 'smalldatetime',\n 'seconddate',\n ].includes(value)\n ) {\n return { type: 'string', format: 'date-time' };\n }\n\n // intervals and durations\n if (\n ['interval', 'interval year to month', 'interval day to second'].includes(\n value,\n )\n ) {\n return { type: 'string', format: 'duration', example: 'P1Y2M3DT4H5M6S' };\n }\n\n // strings\n if (\n [\n 'text',\n 'tinytext',\n 'shorttext',\n 'mediumtext',\n 'longtext',\n 'ntext',\n 'citext',\n 'string',\n 'character varying',\n 'varying character',\n 'char varying',\n 'varchar2',\n 'nvarchar',\n 'nvarchar2',\n 'national varchar',\n 'character',\n 'native character',\n 'varchar',\n 'char',\n 'nchar',\n 'national char',\n 'alphanum',\n 'jsonpath',\n 'xml',\n 'long',\n 'clob',\n 'nclob',\n // ranges\n // this can also represented as object `{start, end}`\n 'int4range',\n 'int8range',\n 'numrange',\n 'tsrange',\n 'tstzrange',\n 'daterange',\n 'int4multirange',\n 'int8multirange',\n 'nummultirange',\n 'tsmultirange',\n 'tstzmultirange',\n 'datemultirange',\n\n // enums\n 'enum',\n 'simple-enum',\n // network\n 'cidr',\n 'inet',\n 'inet4',\n 'inet6',\n 'macaddr',\n 'macaddr8',\n // full-text search types\n 'tsvector',\n 'tsquery',\n // identifiers\n 'rowid',\n 'urowid',\n 'hierarchyid',\n 'sql_variant',\n ].includes(value)\n ) {\n return { type: 'string' };\n }\n\n if (\n [\n 'uuid',\n // most databases generates a 128-bit GUID, the same as a UUID\n // so, it is safe to represent it in Swagger UI as a UUID string\n 'uniqueidentifier',\n ].includes(value)\n ) {\n return { type: 'string', format: 'uuid' };\n }\n\n // vectors\n if (['vector', 'halfvec', 'half_vector', 'real_vector'].includes(value)) {\n return {\n type: 'array',\n items: { type: 'number' },\n };\n }\n\n // JSON\n if (['json', 'jsonb', 'simple-json', 'hstore'].includes(value)) {\n return {\n type: 'object',\n items: { type: 'number' },\n // in hstore, keys must ve string\n additionalProperties: value === 'hstore' ? { type: 'string' } : true,\n };\n }\n\n // geometry types\n if (\n [\n 'geometry',\n 'geography',\n 'st_geometry',\n 'st_point',\n 'point',\n 'line',\n 'polygon',\n 'circle',\n 'multipolygon',\n 'linestring',\n 'multilinestring',\n 'multipoint',\n 'geometrycollection',\n 'lseg',\n 'box',\n 'path',\n ].includes(value)\n ) {\n return {\n // they're saved as JSON objects\n type: 'object',\n properties: {\n type: { type: 'string', example: 'Point' },\n coordinates: {\n type: 'array',\n items: { type: 'number' },\n example: [125.6, 10.1],\n },\n },\n required: ['type', 'coordinates'],\n description: 'GeoJSON object representing geometry or geography',\n };\n }\n\n return { type: 'null' };\n}\n"],"names":["typeORMToSwagger","type","value","name","toLowerCase","includes","format","example","Date","getFullYear","items","additionalProperties","properties","coordinates","required","description"],"mappings":"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"}
|
package/nx.json
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "./node_modules/nx/schemas/nx-schema.json",
|
|
3
|
-
"targetDefaults": {
|
|
4
|
-
"build": {
|
|
5
|
-
"executor": "@impactor/nx-manager:universal-builder",
|
|
6
|
-
"dependsOn": ["typecheck", "prebuild", "^build"],
|
|
7
|
-
"cache": true,
|
|
8
|
-
"inputs": ["default", "^default"],
|
|
9
|
-
"outputs": ["{projectRoot}/dist"],
|
|
10
|
-
"options": {
|
|
11
|
-
"forceRnDefaultPostBuild": true
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"serve": {
|
|
15
|
-
"executor": "nx:run-commands",
|
|
16
|
-
"dependsOn": ["build", "preserve"],
|
|
17
|
-
"continuous": true,
|
|
18
|
-
"options": {
|
|
19
|
-
"cwd": "{projectRoot}",
|
|
20
|
-
"command": "NODE_ENV=development pnpm tsx --env-file-if-exists=.env --env-file-if-exists=.env.local dist/main.js"
|
|
21
|
-
},
|
|
22
|
-
"configurations": {
|
|
23
|
-
"production": {
|
|
24
|
-
"command": "NODE_ENV=production pnpm tsx --env-file-if-exists=.env --env-file-if-exists=.env.local --env-file-if-exists=.env.production --env-file-if-exists=.env.production.local dist/main.js"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"nx-release-publish": {
|
|
29
|
-
"options": {
|
|
30
|
-
"packageRoot": "{projectRoot}/dist"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"semantic-release": {
|
|
34
|
-
"executor": "nx:run-commands",
|
|
35
|
-
"dependsOn": ["build", "prerelease"],
|
|
36
|
-
"options": {
|
|
37
|
-
"cwd": "{projectRoot}",
|
|
38
|
-
"command": "pnpm tsx node_modules/semantic-release/bin/semantic-release.js"
|
|
39
|
-
},
|
|
40
|
-
"configurations": {
|
|
41
|
-
"local": {
|
|
42
|
-
"command": "DOTENV_CONFIG_PATH=../../.env pnpm run release --no-ci"
|
|
43
|
-
},
|
|
44
|
-
"dry": {
|
|
45
|
-
"command": "DOTENV_CONFIG_PATH=../../.env pnpm run release --no-ci --dry-run"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"test": {
|
|
50
|
-
"inputs": ["test"],
|
|
51
|
-
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
|
52
|
-
"dependsOn": ["^build", "pretest"],
|
|
53
|
-
"configurations": {
|
|
54
|
-
"unit": {
|
|
55
|
-
"args": [
|
|
56
|
-
"--testPathIgnorePatterns '.*\\.e2e\\.spec\\.ts$'",
|
|
57
|
-
"--testPathIgnorePatterns '/.*-e2e/'",
|
|
58
|
-
"--testPathIgnorePatterns '/.*-e2e/'"
|
|
59
|
-
]
|
|
60
|
-
},
|
|
61
|
-
"e2e": {
|
|
62
|
-
"args": [
|
|
63
|
-
"--testMatch '**/*-e2e/**/*.{spec,test}.[mc]?[jt]s?(x)'",
|
|
64
|
-
"--testMatch '**/e2e/**/*.{spec,test}.[mc]?[jt]s?(x)'",
|
|
65
|
-
"--testMatch '**/*.e2e.(spec|test).?([mc])[jt]s?(x)'"
|
|
66
|
-
]
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"@angular/build:application": {
|
|
71
|
-
"cache": true,
|
|
72
|
-
"dependsOn": ["prebuild", "^build"],
|
|
73
|
-
"inputs": ["default", "^default"]
|
|
74
|
-
},
|
|
75
|
-
"@nx/angular:package": {
|
|
76
|
-
"cache": true,
|
|
77
|
-
"dependsOn": ["^build"],
|
|
78
|
-
"inputs": ["default", "^default"],
|
|
79
|
-
"outputs": ["{projectRoot}/dist"],
|
|
80
|
-
"options": {
|
|
81
|
-
"project": "{projectRoot}/ng-package.json",
|
|
82
|
-
"tsConfig": "{projectRoot}/tsconfig.lib.json"
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
"@nx/js:tsc": {
|
|
86
|
-
"cache": true,
|
|
87
|
-
"dependsOn": ["^build"],
|
|
88
|
-
"inputs": ["default", "^default"]
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"namedInputs": {
|
|
92
|
-
"default": [
|
|
93
|
-
"{projectRoot}/src/**/*",
|
|
94
|
-
"!{projectRoot}/**/*.(spec|test)(.e2e)?.[tj]sx?",
|
|
95
|
-
"!{projectRoot}/**/e2e/**/*",
|
|
96
|
-
"{projectRoot}/.env(.*)?",
|
|
97
|
-
"{workspaceRoot}/tasks/(post-)?build.ts",
|
|
98
|
-
"{projectRoot}/(project|package|tsconfig)(.+)?.json",
|
|
99
|
-
"{workspaceRoot}/tsconfig.base.json",
|
|
100
|
-
{
|
|
101
|
-
"runtime": "node --version"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"env": "NODE_ENV"
|
|
105
|
-
}
|
|
106
|
-
],
|
|
107
|
-
"test": [
|
|
108
|
-
"default",
|
|
109
|
-
"{projectRoot}/tsconfig.spec.json",
|
|
110
|
-
"{projectRoot}/jest.config.[jt]s",
|
|
111
|
-
"{workspaceRoot}/jest.config.[jt]s",
|
|
112
|
-
"{projectRoot}/**/*.(spec|test)(.e2e)?.[jt]sx?",
|
|
113
|
-
"{projectRoot}/**/e2e/**/*.[jt]sx?",
|
|
114
|
-
{
|
|
115
|
-
"externalDependencies": ["jest"]
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
},
|
|
119
|
-
"plugins": [
|
|
120
|
-
{
|
|
121
|
-
"plugin": "@nx/js/typescript",
|
|
122
|
-
"options": {
|
|
123
|
-
"typecheck": {
|
|
124
|
-
"targetName": "typecheck"
|
|
125
|
-
},
|
|
126
|
-
"build": false
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"plugin": "@nx/jest/plugin",
|
|
131
|
-
"options": {
|
|
132
|
-
"targetName": "test",
|
|
133
|
-
"ciTargetName": "test-ci"
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
],
|
|
137
|
-
"tasksRunnerOptions": {
|
|
138
|
-
"default": {
|
|
139
|
-
"options": {
|
|
140
|
-
"useDaemonProcess": false
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
"generators": {
|
|
145
|
-
"@nx/angular:library": {
|
|
146
|
-
"linter": "eslint",
|
|
147
|
-
"unitTestRunner": "jest"
|
|
148
|
-
},
|
|
149
|
-
"@nx/angular:component": {
|
|
150
|
-
"style": "scss"
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
"release": {
|
|
154
|
-
"groups": {
|
|
155
|
-
"libs": {
|
|
156
|
-
"projects": ["libs/*"]
|
|
157
|
-
},
|
|
158
|
-
"apps": {
|
|
159
|
-
"projects": ["apps/*"],
|
|
160
|
-
"changelog": {
|
|
161
|
-
"projectChangelogs": {
|
|
162
|
-
"createRelease": "github"
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
"projectsRelationship": "independent",
|
|
168
|
-
"version": {
|
|
169
|
-
"conventionalCommits": true,
|
|
170
|
-
"updateDependents": "always",
|
|
171
|
-
"preVersionCommand": "pnpm nx run-many -t build",
|
|
172
|
-
"manifestRootsToUpdate": [
|
|
173
|
-
"{projectRoot}",
|
|
174
|
-
{
|
|
175
|
-
"path": "{projectRoot}/dist",
|
|
176
|
-
"preserveLocalDependencyProtocols": false
|
|
177
|
-
}
|
|
178
|
-
]
|
|
179
|
-
},
|
|
180
|
-
"releaseTag": {
|
|
181
|
-
"pattern": "{projectName}@{version}"
|
|
182
|
-
},
|
|
183
|
-
"changelog": {
|
|
184
|
-
"projectChangelogs": true
|
|
185
|
-
}
|
|
186
|
-
},
|
|
187
|
-
"sync": {
|
|
188
|
-
"applyChanges": false
|
|
189
|
-
}
|
|
190
|
-
}
|