@elsikora/nestjs-crud-automator 1.18.0-dev.1 → 1.19.0-dev.1
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/cjs/class/index.d.ts +1 -0
- package/dist/cjs/class/utility/dto/exception/details/foreign-key-violation.class.d.ts +11 -0
- package/dist/cjs/class/utility/dto/exception/details/foreign-key-violation.class.js +142 -0
- package/dist/cjs/class/utility/dto/exception/details/foreign-key-violation.class.js.map +1 -0
- package/dist/cjs/class/utility/dto/exception/details/index.d.ts +2 -0
- package/dist/cjs/class/utility/dto/exception/details/unique-violation.class.d.ts +9 -0
- package/dist/cjs/class/utility/dto/exception/details/unique-violation.class.js +114 -0
- package/dist/cjs/class/utility/dto/exception/details/unique-violation.class.js.map +1 -0
- package/dist/cjs/class/utility/dto/exception/index.d.ts +1 -0
- package/dist/cjs/decorator/api/function/create.decorator.js +28 -2
- package/dist/cjs/decorator/api/function/create.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/delete.decorator.js +20 -2
- package/dist/cjs/decorator/api/function/delete.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get-list.decorator.js +11 -2
- package/dist/cjs/decorator/api/function/get-list.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get-many.decorator.js +11 -2
- package/dist/cjs/decorator/api/function/get-many.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get.decorator.js +11 -2
- package/dist/cjs/decorator/api/function/get.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/update.decorator.js +28 -2
- package/dist/cjs/decorator/api/function/update.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/method.decorator.js +6 -0
- package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/service.decorator.js +2 -0
- package/dist/cjs/decorator/api/service.decorator.js.map +1 -1
- package/dist/cjs/enum/utility/exception-details/index.d.ts +1 -0
- package/dist/cjs/enum/utility/exception-details/type.enum.d.ts +4 -0
- package/dist/cjs/enum/utility/exception-details/type.enum.js +8 -0
- package/dist/cjs/enum/utility/exception-details/type.enum.js.map +1 -0
- package/dist/cjs/factory/api/controller.factory.js +4 -8
- package/dist/cjs/factory/api/controller.factory.js.map +1 -1
- package/dist/cjs/index.js +18 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interceptor/correlation-id-response-body.interceptor.js +42 -10
- package/dist/cjs/interceptor/correlation-id-response-body.interceptor.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/utility/api/controller/apply-decorators.utility.js +3 -3
- package/dist/cjs/utility/api/controller/apply-decorators.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js +4 -1
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js +1 -1
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js +4 -1
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js +1 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/cjs/utility/database/index.d.ts +1 -0
- package/dist/cjs/utility/database/typeorm/get/foreign-key-violation-details.utility.d.ts +16 -0
- package/dist/cjs/utility/database/typeorm/get/foreign-key-violation-details.utility.js +105 -0
- package/dist/cjs/utility/database/typeorm/get/foreign-key-violation-details.utility.js.map +1 -0
- package/dist/cjs/utility/database/typeorm/get/index.d.ts +2 -0
- package/dist/cjs/utility/database/typeorm/get/unique-violation-details.utility.d.ts +14 -0
- package/dist/cjs/utility/database/typeorm/get/unique-violation-details.utility.js +90 -0
- package/dist/cjs/utility/database/typeorm/get/unique-violation-details.utility.js.map +1 -0
- package/dist/cjs/utility/database/typeorm/index.d.ts +6 -0
- package/dist/cjs/utility/database/typeorm/is/entity/index.d.ts +2 -0
- package/dist/cjs/utility/database/typeorm/is/entity/metadata-not-found.utility.d.ts +7 -0
- package/dist/cjs/utility/database/typeorm/is/entity/metadata-not-found.utility.js +27 -0
- package/dist/cjs/utility/database/typeorm/is/entity/metadata-not-found.utility.js.map +1 -0
- package/dist/cjs/utility/database/typeorm/is/entity/not-found.utility.d.ts +6 -0
- package/dist/cjs/utility/database/typeorm/is/entity/not-found.utility.js +26 -0
- package/dist/cjs/utility/database/typeorm/is/entity/not-found.utility.js.map +1 -0
- package/dist/cjs/utility/database/typeorm/is/foreign-key-violation.utility.d.ts +7 -0
- package/dist/cjs/utility/database/typeorm/is/foreign-key-violation.utility.js +91 -0
- package/dist/cjs/utility/database/typeorm/is/foreign-key-violation.utility.js.map +1 -0
- package/dist/cjs/utility/database/typeorm/is/index.d.ts +3 -0
- package/dist/cjs/utility/database/typeorm/is/unique-violation.utility.d.ts +7 -0
- package/dist/cjs/utility/database/typeorm/is/unique-violation.utility.js +81 -0
- package/dist/cjs/utility/database/typeorm/is/unique-violation.utility.js.map +1 -0
- package/dist/cjs/utility/dto/generate-exception.utility.js +33 -10
- package/dist/cjs/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/cjs/utility/format-unknown-for-log.utility.d.ts +6 -0
- package/dist/cjs/utility/format-unknown-for-log.utility.js +31 -0
- package/dist/cjs/utility/format-unknown-for-log.utility.js.map +1 -0
- package/dist/cjs/utility/index.d.ts +2 -0
- package/dist/cjs/utility/logger.utility.js +1 -1
- package/dist/cjs/utility/logger.utility.js.map +1 -1
- package/dist/esm/class/index.d.ts +1 -0
- package/dist/esm/class/utility/dto/exception/details/foreign-key-violation.class.d.ts +11 -0
- package/dist/esm/class/utility/dto/exception/details/foreign-key-violation.class.js +140 -0
- package/dist/esm/class/utility/dto/exception/details/foreign-key-violation.class.js.map +1 -0
- package/dist/esm/class/utility/dto/exception/details/index.d.ts +2 -0
- package/dist/esm/class/utility/dto/exception/details/unique-violation.class.d.ts +9 -0
- package/dist/esm/class/utility/dto/exception/details/unique-violation.class.js +112 -0
- package/dist/esm/class/utility/dto/exception/details/unique-violation.class.js.map +1 -0
- package/dist/esm/class/utility/dto/exception/index.d.ts +1 -0
- package/dist/esm/decorator/api/function/create.decorator.js +29 -3
- package/dist/esm/decorator/api/function/create.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/delete.decorator.js +21 -3
- package/dist/esm/decorator/api/function/delete.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/get-list.decorator.js +12 -3
- package/dist/esm/decorator/api/function/get-list.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/get-many.decorator.js +12 -3
- package/dist/esm/decorator/api/function/get-many.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/get.decorator.js +12 -3
- package/dist/esm/decorator/api/function/get.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/update.decorator.js +29 -3
- package/dist/esm/decorator/api/function/update.decorator.js.map +1 -1
- package/dist/esm/decorator/api/method.decorator.js +7 -1
- package/dist/esm/decorator/api/method.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/boolean.decorator.js +1 -1
- package/dist/esm/decorator/api/property/date.decorator.js +1 -1
- package/dist/esm/decorator/api/property/number.decorator.js +2 -2
- package/dist/esm/decorator/api/property/object.decorator.js +1 -1
- package/dist/esm/decorator/api/property/uuid.decorator.js +1 -1
- package/dist/esm/decorator/api/service.decorator.js +2 -0
- package/dist/esm/decorator/api/service.decorator.js.map +1 -1
- package/dist/esm/enum/utility/exception-details/index.d.ts +1 -0
- package/dist/esm/enum/utility/exception-details/type.enum.d.ts +4 -0
- package/dist/esm/enum/utility/exception-details/type.enum.js +8 -0
- package/dist/esm/enum/utility/exception-details/type.enum.js.map +1 -0
- package/dist/esm/factory/api/controller.factory.js +4 -8
- package/dist/esm/factory/api/controller.factory.js.map +1 -1
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interceptor/correlation-id-response-body.interceptor.js +42 -10
- package/dist/esm/interceptor/correlation-id-response-body.interceptor.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/utility/api/controller/apply-decorators.utility.js +3 -3
- package/dist/esm/utility/api/controller/apply-decorators.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/apply-metadata.utility.js +4 -1
- package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js +1 -1
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/write-dto-swagger.utility.js +4 -1
- package/dist/esm/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js +1 -1
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/esm/utility/database/index.d.ts +1 -0
- package/dist/esm/utility/database/typeorm/get/foreign-key-violation-details.utility.d.ts +16 -0
- package/dist/esm/utility/database/typeorm/get/foreign-key-violation-details.utility.js +103 -0
- package/dist/esm/utility/database/typeorm/get/foreign-key-violation-details.utility.js.map +1 -0
- package/dist/esm/utility/database/typeorm/get/index.d.ts +2 -0
- package/dist/esm/utility/database/typeorm/get/unique-violation-details.utility.d.ts +14 -0
- package/dist/esm/utility/database/typeorm/get/unique-violation-details.utility.js +88 -0
- package/dist/esm/utility/database/typeorm/get/unique-violation-details.utility.js.map +1 -0
- package/dist/esm/utility/database/typeorm/index.d.ts +6 -0
- package/dist/esm/utility/database/typeorm/is/entity/index.d.ts +2 -0
- package/dist/esm/utility/database/typeorm/is/entity/metadata-not-found.utility.d.ts +7 -0
- package/dist/esm/utility/database/typeorm/is/entity/metadata-not-found.utility.js +25 -0
- package/dist/esm/utility/database/typeorm/is/entity/metadata-not-found.utility.js.map +1 -0
- package/dist/esm/utility/database/typeorm/is/entity/not-found.utility.d.ts +6 -0
- package/dist/esm/utility/database/typeorm/is/entity/not-found.utility.js +24 -0
- package/dist/esm/utility/database/typeorm/is/entity/not-found.utility.js.map +1 -0
- package/dist/esm/utility/database/typeorm/is/foreign-key-violation.utility.d.ts +7 -0
- package/dist/esm/utility/database/typeorm/is/foreign-key-violation.utility.js +89 -0
- package/dist/esm/utility/database/typeorm/is/foreign-key-violation.utility.js.map +1 -0
- package/dist/esm/utility/database/typeorm/is/index.d.ts +3 -0
- package/dist/esm/utility/database/typeorm/is/unique-violation.utility.d.ts +7 -0
- package/dist/esm/utility/database/typeorm/is/unique-violation.utility.js +79 -0
- package/dist/esm/utility/database/typeorm/is/unique-violation.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-exception.utility.js +33 -10
- package/dist/esm/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/esm/utility/format-unknown-for-log.utility.d.ts +6 -0
- package/dist/esm/utility/format-unknown-for-log.utility.js +29 -0
- package/dist/esm/utility/format-unknown-for-log.utility.js.map +1 -0
- package/dist/esm/utility/index.d.ts +2 -0
- package/dist/esm/utility/logger.utility.js +1 -1
- package/dist/esm/utility/logger.utility.js.map +1 -1
- package/package.json +24 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation-id-response-body.interceptor.js","sources":["../../../../src/interceptor/correlation-id-response-body.interceptor.ts"],"sourcesContent":[null],"names":["CorrelationIDResponseBodyInterceptor","
|
|
1
|
+
{"version":3,"file":"correlation-id-response-body.interceptor.js","sources":["../../../../src/interceptor/correlation-id-response-body.interceptor.ts"],"sourcesContent":[null],"names":["LoggerUtility","CorrelationIDResponseBodyInterceptor","randomUUID","catchError","ThrottlerException","HttpStatus","HttpException","FormatUnknownForLog","InternalServerErrorException","__decorate","Injectable"],"mappings":"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"}
|
package/dist/cjs/package.json
CHANGED
|
@@ -38,7 +38,7 @@ function ApiControllerApplyDecorators(targetMethod, entity, properties, method,
|
|
|
38
38
|
const customDecorators = [...decorators];
|
|
39
39
|
switch (method) {
|
|
40
40
|
case routeType_enum.EApiRouteType.CREATE: {
|
|
41
|
-
customDecorators.push(method_decorator.ApiMethod({ action: action_enum.EApiAction.CREATE, authentication: routeConfig.authentication, entity: properties.entity, httpCode: common.HttpStatus.CREATED, method: common.RequestMethod.POST, path: "", responses: { hasInternalServerError: true, hasUnauthorized: true }, responseType: responseDto }));
|
|
41
|
+
customDecorators.push(method_decorator.ApiMethod({ action: action_enum.EApiAction.CREATE, authentication: routeConfig.authentication, entity: properties.entity, httpCode: common.HttpStatus.CREATED, method: common.RequestMethod.POST, path: "", responses: { hasConflict: true, hasInternalServerError: true, hasUnauthorized: true }, responseType: responseDto }));
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
44
44
|
case routeType_enum.EApiRouteType.DELETE: {
|
|
@@ -72,11 +72,11 @@ function ApiControllerApplyDecorators(targetMethod, entity, properties, method,
|
|
|
72
72
|
break;
|
|
73
73
|
}
|
|
74
74
|
case routeType_enum.EApiRouteType.PARTIAL_UPDATE: {
|
|
75
|
-
customDecorators.push(method_decorator.ApiMethod({ action: action_enum.EApiAction.UPDATE, authentication: routeConfig.authentication, entity: properties.entity, httpCode: common.HttpStatus.OK, method: common.RequestMethod.PATCH, path: `:${String(entity.primaryKey?.name)}`, responses: { hasBadRequest: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }, responseType: responseDto }));
|
|
75
|
+
customDecorators.push(method_decorator.ApiMethod({ action: action_enum.EApiAction.UPDATE, authentication: routeConfig.authentication, entity: properties.entity, httpCode: common.HttpStatus.OK, method: common.RequestMethod.PATCH, path: `:${String(entity.primaryKey?.name)}`, responses: { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }, responseType: responseDto }));
|
|
76
76
|
break;
|
|
77
77
|
}
|
|
78
78
|
case routeType_enum.EApiRouteType.UPDATE: {
|
|
79
|
-
customDecorators.push(method_decorator.ApiMethod({ action: action_enum.EApiAction.UPDATE, authentication: routeConfig.authentication, entity: properties.entity, httpCode: common.HttpStatus.OK, method: common.RequestMethod.PUT, path: `:${String(entity.primaryKey?.name)}`, responses: { hasBadRequest: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }, responseType: responseDto }));
|
|
79
|
+
customDecorators.push(method_decorator.ApiMethod({ action: action_enum.EApiAction.UPDATE, authentication: routeConfig.authentication, entity: properties.entity, httpCode: common.HttpStatus.OK, method: common.RequestMethod.PUT, path: `:${String(entity.primaryKey?.name)}`, responses: { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }, responseType: responseDto }));
|
|
80
80
|
break;
|
|
81
81
|
}
|
|
82
82
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-decorators.utility.js","sources":["../../../../../../src/utility/api/controller/apply-decorators.utility.ts"],"sourcesContent":[null],"names":["DtoGenerate","EApiDtoType","EApiRouteType","ApiMethod","EApiAction","HttpStatus","RequestMethod","ErrorException"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;;;;AAaG;AACG,SAAU,4BAA4B,CAAI,YAAuD,EAAE,MAAqB,EAAE,UAAuC,EAAE,MAAqB,EAAE,UAAkB,EAAE,WAA4D,EAAE,UAA6D,EAAA;AAC9U,IAAA,MAAM,WAAW,GAA8B,WAAW,CAAC,GAAG,EAAE,QAAQ,IAAIA,4BAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAEC,wBAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAGA,wBAAW,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AAChO,IAAA,MAAM,gBAAgB,GAA2B,CAAC,GAAG,UAAU,CAAC;IAEhE,QAAQ,MAAM;AACb,QAAA,KAAKC,4BAAa,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"apply-decorators.utility.js","sources":["../../../../../../src/utility/api/controller/apply-decorators.utility.ts"],"sourcesContent":[null],"names":["DtoGenerate","EApiDtoType","EApiRouteType","ApiMethod","EApiAction","HttpStatus","RequestMethod","ErrorException"],"mappings":"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"}
|
|
@@ -20,14 +20,17 @@ var routeParamtypes_enum = require('@nestjs/common/enums/route-paramtypes.enum')
|
|
|
20
20
|
require('../../../constant/utility/dto/constant.js');
|
|
21
21
|
require('@nestjs/swagger');
|
|
22
22
|
require('../../../external/tslib/tslib.es6.js');
|
|
23
|
+
require('../../../class/utility/dto/exception/details/foreign-key-violation.class.js');
|
|
24
|
+
require('../../../class/utility/dto/exception/details/unique-violation.class.js');
|
|
23
25
|
require('class-transformer');
|
|
24
26
|
require('class-validator');
|
|
25
27
|
require('lodash/random');
|
|
28
|
+
require('../../../validator/must-match-one-of-schemas.validator.js');
|
|
26
29
|
require('../../../constant/interface/api/property/default-string-format.constant.js');
|
|
27
30
|
require('../../../validator/is-regular-expression.validator.js');
|
|
28
31
|
require('node:crypto');
|
|
32
|
+
require('../../../enum/utility/exception-details/type.enum.js');
|
|
29
33
|
require('../../../enum/filter-operation.enum.js');
|
|
30
|
-
require('../../../validator/must-match-one-of-schemas.validator.js');
|
|
31
34
|
var generate_utility = require('../../dto/generate.utility.js');
|
|
32
35
|
require('../../../enum/filter-order-direction.enum.js');
|
|
33
36
|
require('../../../constant/decorator/api/function.constant.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-metadata.utility.js","sources":["../../../../../../src/utility/api/controller/apply-metadata.utility.ts"],"sourcesContent":[null],"names":["DtoGenerate","EApiDtoType","assignMetadata","RouteParamtypes","ROUTE_ARGS_METADATA","PARAMTYPES_METADATA"],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply-metadata.utility.js","sources":["../../../../../../src/utility/api/controller/apply-metadata.utility.ts"],"sourcesContent":[null],"names":["DtoGenerate","EApiDtoType","assignMetadata","RouteParamtypes","ROUTE_ARGS_METADATA","PARAMTYPES_METADATA"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;;;AAYG;AACG,SAAU,0BAA0B,CAAI,MAAc,EAAE,eAAuB,EAAE,MAAqB,EAAE,UAAuC,EAAE,MAAqB,EAAE,UAAkB,EAAE,WAA4D,EAAA;IAC7P,IAAI,cAAc,GAAW,CAAC;IAC9B,IAAI,sBAAsB,GAAY,EAAE;IACxC,MAAM,cAAc,GAAmB,EAAE;AAEzC,IAAA,MAAM,UAAU,GAA8B,WAAW,CAAC,GAAG,EAAE,OAAO,IAAIA,4BAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAEC,wBAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAGA,wBAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AAC5N,IAAA,MAAM,QAAQ,GAA8B,WAAW,CAAC,GAAG,EAAE,KAAK,IAAID,4BAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAEC,wBAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAGA,wBAAW,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AACpN,IAAA,MAAM,OAAO,GAA8B,WAAW,CAAC,GAAG,EAAE,IAAI,IAAID,4BAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAEC,wBAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAGA,wBAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;IAEhN,IAAI,UAAU,EAAE;QACf,sBAAsB,GAAGC,qBAAc,CAAC,sBAAsB,EAAEC,oCAAe,CAAC,KAAK,EAAE,cAAc,CAAC;AACtG,QAAA,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,QAAA,cAAc,EAAE;IACjB;IAEA,IAAI,QAAQ,EAAE;QACb,sBAAsB,GAAGD,qBAAc,CAAC,sBAAsB,EAAEC,oCAAe,CAAC,KAAK,EAAE,cAAc,CAAC;AACtG,QAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,QAAA,cAAc,EAAE;IACjB;IAEA,IAAI,OAAO,EAAE;QACZ,sBAAsB,GAAGD,qBAAc,CAAC,sBAAsB,EAAEC,oCAAe,CAAC,IAAI,EAAE,cAAc,CAAC;AACrG,QAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,QAAA,cAAc,EAAE;IACjB;IAEA,sBAAsB,GAAGD,qBAAc,CAAC,sBAAsB,EAAEC,oCAAe,CAAC,OAAO,EAAE,cAAc,CAAC;AACxG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,sBAAsB,GAAGD,qBAAc,CAAC,sBAAsB,EAAEC,oCAAe,CAAC,EAAE,EAAE,cAAc,CAAC;AACnG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,sBAAsB,GAAGD,qBAAc,CAAC,sBAAsB,EAAEC,oCAAe,CAAC,OAAO,EAAE,cAAc,CAAC;AACxG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,OAAO,CAAC,cAAc,CAACC,6BAAmB,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,CAAC;IACvF,OAAO,CAAC,cAAc,CAACC,6BAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC;AACzF;;;;"}
|
|
@@ -43,7 +43,7 @@ function ApiControllerGetListTransformFilter(query, entityMetadata) {
|
|
|
43
43
|
continue;
|
|
44
44
|
const column = entityMetadata.columns.find((column) => column.name == key);
|
|
45
45
|
// @ts-ignore
|
|
46
|
-
if (column
|
|
46
|
+
if (column?.metadata[propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY].type === desribeType_enum.EApiPropertyDescribeType.RELATION) {
|
|
47
47
|
// @ts-ignore
|
|
48
48
|
filter[key] = { id: transformOperation_utility.ApiControllerGetListTransformOperation(operation, value) };
|
|
49
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-filter.utility.js","sources":["../../../../../../../src/utility/api/controller/get-list/transform-filter.utility.ts"],"sourcesContent":[null],"names":["PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","EApiPropertyDescribeType","ApiControllerGetListTransformOperation"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;AAQG;AACG,SAAU,mCAAmC,CAAI,KAA8B,EAAE,cAA6B,EAAA;IACnH,MAAM,MAAM,GAAwB,EAAE;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;AAE5B,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAkB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE;YACtD,MAAM,SAAS,GAAqB,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,CAAA,UAAA,CAAY,CAAqB;AAEzF,YAAA,MAAM,KAAK,GAAY,KAAK,CAAC,OAAO,CAAC;AAErC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE;AAEjE,YAAA,MAAM,MAAM,GAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;;AAGhI,YAAA,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"transform-filter.utility.js","sources":["../../../../../../../src/utility/api/controller/get-list/transform-filter.utility.ts"],"sourcesContent":[null],"names":["PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","EApiPropertyDescribeType","ApiControllerGetListTransformOperation"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;AAQG;AACG,SAAU,mCAAmC,CAAI,KAA8B,EAAE,cAA6B,EAAA;IACnH,MAAM,MAAM,GAAwB,EAAE;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;AAE5B,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAkB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE;YACtD,MAAM,SAAS,GAAqB,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,CAAA,UAAA,CAAY,CAAqB;AAEzF,YAAA,MAAM,KAAK,GAAY,KAAK,CAAC,OAAO,CAAC;AAErC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE;AAEjE,YAAA,MAAM,MAAM,GAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;;AAGhI,YAAA,IAAI,MAAM,EAAE,QAAQ,CAACA,kEAAwC,CAAC,YAAY,CAAC,CAAC,IAAI,KAAKC,yCAAwB,CAAC,QAAQ,EAAE;;AAEvH,gBAAA,MAAM,CAAC,GAAc,CAAC,GAAG,EAAE,EAAE,EAAEC,iEAAsC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC1F;iBAAO;;gBAEN,MAAM,CAAC,GAAc,CAAC,GAAGA,iEAAsC,CAAC,SAAS,EAAE,KAAK,CAAC;YAClF;QACD;IACD;AAEA,IAAA,OAAO,MAAM;AACd;;;;"}
|
|
@@ -22,15 +22,18 @@ var camelCaseString_utility = require('../../camel-case-string.utility.js');
|
|
|
22
22
|
require('../../../constant/utility/dto/constant.js');
|
|
23
23
|
require('@nestjs/swagger');
|
|
24
24
|
require('../../../external/tslib/tslib.es6.js');
|
|
25
|
+
require('../../../class/utility/dto/exception/details/foreign-key-violation.class.js');
|
|
26
|
+
require('../../../class/utility/dto/exception/details/unique-violation.class.js');
|
|
25
27
|
require('@nestjs/common');
|
|
26
28
|
require('class-transformer');
|
|
27
29
|
require('class-validator');
|
|
28
30
|
require('lodash/random');
|
|
31
|
+
require('../../../validator/must-match-one-of-schemas.validator.js');
|
|
29
32
|
require('../../../constant/interface/api/property/default-string-format.constant.js');
|
|
30
33
|
require('../../../validator/is-regular-expression.validator.js');
|
|
31
34
|
require('node:crypto');
|
|
35
|
+
require('../../../enum/utility/exception-details/type.enum.js');
|
|
32
36
|
require('../../../enum/filter-operation.enum.js');
|
|
33
|
-
require('../../../validator/must-match-one-of-schemas.validator.js');
|
|
34
37
|
var generate_utility = require('../../dto/generate.utility.js');
|
|
35
38
|
require('../../../enum/filter-order-direction.enum.js');
|
|
36
39
|
require('typeorm');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-dto-swagger.utility.js","sources":["../../../../../../src/utility/api/controller/write-dto-swagger.utility.ts"],"sourcesContent":[null],"names":["DECORATORS","DtoGenerate","EApiDtoType","MetadataStorage","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","EApiPropertyDescribeType","CamelCaseString"],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-dto-swagger.utility.js","sources":["../../../../../../src/utility/api/controller/write-dto-swagger.utility.ts"],"sourcesContent":[null],"names":["DECORATORS","DtoGenerate","EApiDtoType","MetadataStorage","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","EApiPropertyDescribeType","CamelCaseString"],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ function FilterOrderByFromEntity(entity, entityMetadata, method, dtoType, fieldS
|
|
|
34
34
|
const accumulator = {};
|
|
35
35
|
for (const column of columns) {
|
|
36
36
|
const columnType = column.options?.type || Reflect.getMetadata("design:type", entity.prototype, column.propertyName);
|
|
37
|
-
const isAllowedType = (typeof columnType === "function" && (columnType === String || columnType === Number || columnType === Date)) || (filter_constant.FILTER_API_INTERFACE_CONSTANT.ALLOWED_ENTITY_TO_FILTER_COLUMNS.includes(columnType) &&
|
|
37
|
+
const isAllowedType = (typeof columnType === "function" && (columnType === String || columnType === Number || columnType === Date)) || (filter_constant.FILTER_API_INTERFACE_CONSTANT.ALLOWED_ENTITY_TO_FILTER_COLUMNS.includes(columnType) && fieldSelector?.[column.propertyName] !== false);
|
|
38
38
|
if (isAllowedType) {
|
|
39
39
|
for (const metadataColumn of entityMetadata.columns) {
|
|
40
40
|
const metadata = metadataColumn.metadata?.[propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-order-by-from-entity.utility.js","sources":["../../../../../src/utility/api/filter-order-by-from-entity.utility.ts"],"sourcesContent":[null],"names":["getMetadataArgsStorage","FILTER_API_INTERFACE_CONSTANT","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT"],"mappings":";;;;;;;;;AAeA;;;;;;;;;;;;AAYG;AACG,SAAU,uBAAuB,CAAI,MAAqB,EAAE,cAA6B,EAAE,MAAqB,EAAE,OAAoB,EAAE,aAAmD,EAAA;AAChM,IAAA,MAAM,QAAQ,GAAwBA,8BAAsB,EAAE;AAC9D,IAAA,MAAM,OAAO,GAA8B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAA0B,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAE3H,IAAI,aAAa,EAAE;AAClB,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,OAAO,CAAC,GAAG,CAAC,CAAC,GAAuB,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AAE7G,QAAA,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;YAClE;QACD;IACD;IAEA,MAAM,WAAW,GAAqC,EAAE;AAExD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,MAAM,UAAU,GAAmB,MAAM,CAAC,OAAO,EAAE,IAAsB,IAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAmB,EAAE,MAAM,CAAC,YAAY,CAAmB;
|
|
1
|
+
{"version":3,"file":"filter-order-by-from-entity.utility.js","sources":["../../../../../src/utility/api/filter-order-by-from-entity.utility.ts"],"sourcesContent":[null],"names":["getMetadataArgsStorage","FILTER_API_INTERFACE_CONSTANT","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT"],"mappings":";;;;;;;;;AAeA;;;;;;;;;;;;AAYG;AACG,SAAU,uBAAuB,CAAI,MAAqB,EAAE,cAA6B,EAAE,MAAqB,EAAE,OAAoB,EAAE,aAAmD,EAAA;AAChM,IAAA,MAAM,QAAQ,GAAwBA,8BAAsB,EAAE;AAC9D,IAAA,MAAM,OAAO,GAA8B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAA0B,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAE3H,IAAI,aAAa,EAAE;AAClB,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,OAAO,CAAC,GAAG,CAAC,CAAC,GAAuB,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AAE7G,QAAA,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;YAClE;QACD;IACD;IAEA,MAAM,WAAW,GAAqC,EAAE;AAExD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,MAAM,UAAU,GAAmB,MAAM,CAAC,OAAO,EAAE,IAAsB,IAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAmB,EAAE,MAAM,CAAC,YAAY,CAAmB;AAEnL,QAAA,MAAM,aAAa,GAAY,CAAC,OAAO,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC,MAAMC,6CAA6B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,UAAoB,CAAC,IAAI,aAAa,GAAG,MAAM,CAAC,YAAmC,CAAC,KAAK,KAAK,CAAC;QAExT,IAAI,aAAa,EAAE;AAClB,YAAA,KAAK,MAAM,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBACpD,MAAM,QAAQ,GAA0H,cAAc,CAAC,QAAQ,GAAGC,kEAAwC,CAAC,YAAY,CAA0H;AAEjV,gBAAA,MAAM,WAAW,GAAY,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,kBAAkB,KAAK,KAAK;AAEpG,gBAAA,IAAI,cAAc,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,QAAQ,IAAI,WAAW,EAAE;AAC1E,oBAAA,MAAM,cAAc,GAAW,MAAM,CAAC;;yBAEpC,KAAK,CAAC,EAAE;AACR,yBAAA,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,KAAY;AAC5C,wBAAA,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE;4BAC5E,OAAO,GAAG,GAAG,IAAI;wBAClB;AAEA,wBAAA,OAAO,IAAI;AACZ,oBAAA,CAAC;yBACA,IAAI,CAAC,EAAE;AACP,yBAAA,WAAW,EAAE;AAEf,oBAAA,WAAW,CAAC,cAAwD,CAAC,GAAG,MAAM,CAAC,YAAY;gBAC5F;YACD;QACD;IACD;AAEA,IAAA,OAAO,WAAW;AACnB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './typeorm/index';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts best-effort details from a TypeORM FOREIGN KEY violation (QueryFailedError).
|
|
3
|
+
* Works best with PostgreSQL (driverError.detail / driverError.constraint).
|
|
4
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
5
|
+
* @returns {{ constraint?: string; detail?: string; field?: string; referencedField?: string; referencedTable?: string; table?: string; value?: string } | undefined}
|
|
6
|
+
* Foreign key violation details, when available.
|
|
7
|
+
*/
|
|
8
|
+
export declare function DatabaseTypeOrmGetForeignKeyViolationDetails(error: unknown): {
|
|
9
|
+
constraint?: string;
|
|
10
|
+
detail?: string;
|
|
11
|
+
field?: string;
|
|
12
|
+
referencedField?: string;
|
|
13
|
+
referencedTable?: string;
|
|
14
|
+
table?: string;
|
|
15
|
+
value?: string;
|
|
16
|
+
} | undefined;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var typeorm = require('typeorm');
|
|
4
|
+
|
|
5
|
+
const REGEX_GROUP_1_INDEX = 1;
|
|
6
|
+
const REGEX_GROUP_2_INDEX = 2;
|
|
7
|
+
const REGEX_GROUP_3_INDEX = 3;
|
|
8
|
+
const MYSQL_CONSTRAINT_REGEX = /CONSTRAINT `([^`]+)`/;
|
|
9
|
+
const MYSQL_FOREIGN_KEY_REGEX = /FOREIGN KEY \(`([^`]+)`\) REFERENCES `([^`]+)` \(`([^`]+)`\)/;
|
|
10
|
+
const POSTGRES_FOREIGN_KEY_CONSTRAINT_REGEX = /foreign key constraint "([^"]+)"/;
|
|
11
|
+
const POSTGRES_ON_TABLE_REGEX = /on table "([^"]+)"/;
|
|
12
|
+
const POSTGRES_REFERENCED_REGEX = /Key \(([^)]+)\)=\(([^)]+)\) is still referenced from table "([^"]+)"/;
|
|
13
|
+
const POSTGRES_REFERENCED_ROW_MISSING_REGEX = /Key \(([^)]+)\)=\(([^)]+)\) is not present in table "([^"]+)"/;
|
|
14
|
+
/**
|
|
15
|
+
* Extracts best-effort details from a TypeORM FOREIGN KEY violation (QueryFailedError).
|
|
16
|
+
* Works best with PostgreSQL (driverError.detail / driverError.constraint).
|
|
17
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
18
|
+
* @returns {{ constraint?: string; detail?: string; field?: string; referencedField?: string; referencedTable?: string; table?: string; value?: string } | undefined}
|
|
19
|
+
* Foreign key violation details, when available.
|
|
20
|
+
*/
|
|
21
|
+
function DatabaseTypeOrmGetForeignKeyViolationDetails(error) {
|
|
22
|
+
const isQueryFailedError = error instanceof typeorm.QueryFailedError || (error != null && typeof error === "object" && error.name === "QueryFailedError");
|
|
23
|
+
if (!isQueryFailedError) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
let driverError;
|
|
27
|
+
if (error != null && typeof error === "object") {
|
|
28
|
+
const driverErrorUnknown = error.driverError;
|
|
29
|
+
if (driverErrorUnknown != null && typeof driverErrorUnknown === "object") {
|
|
30
|
+
driverError = driverErrorUnknown;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const constraintFromDriver = typeof driverError?.constraint === "string" ? driverError.constraint : undefined;
|
|
34
|
+
const detail = typeof driverError?.detail === "string" ? driverError.detail : undefined;
|
|
35
|
+
const tableFromDriver = typeof driverError?.table === "string" ? driverError.table : undefined;
|
|
36
|
+
const driverMessage = driverError?.message;
|
|
37
|
+
let message = "";
|
|
38
|
+
if (typeof driverMessage === "string") {
|
|
39
|
+
message = driverMessage;
|
|
40
|
+
}
|
|
41
|
+
else if (error instanceof Error) {
|
|
42
|
+
message = error.message;
|
|
43
|
+
}
|
|
44
|
+
else if (error != null && typeof error === "object" && "message" in error) {
|
|
45
|
+
const objectMessage = error.message;
|
|
46
|
+
if (typeof objectMessage === "string") {
|
|
47
|
+
message = objectMessage;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
let field;
|
|
51
|
+
let referencedField;
|
|
52
|
+
let referencedTable;
|
|
53
|
+
let value;
|
|
54
|
+
const detailOrMessage = detail ?? message;
|
|
55
|
+
const postgresMissingMatch = POSTGRES_REFERENCED_ROW_MISSING_REGEX.exec(detailOrMessage);
|
|
56
|
+
if (postgresMissingMatch) {
|
|
57
|
+
field = postgresMissingMatch[REGEX_GROUP_1_INDEX];
|
|
58
|
+
value = postgresMissingMatch[REGEX_GROUP_2_INDEX];
|
|
59
|
+
referencedTable = postgresMissingMatch[REGEX_GROUP_3_INDEX];
|
|
60
|
+
}
|
|
61
|
+
const postgresReferencedMatch = POSTGRES_REFERENCED_REGEX.exec(detailOrMessage);
|
|
62
|
+
if (postgresReferencedMatch) {
|
|
63
|
+
field ??= postgresReferencedMatch[REGEX_GROUP_1_INDEX];
|
|
64
|
+
value ??= postgresReferencedMatch[REGEX_GROUP_2_INDEX];
|
|
65
|
+
referencedTable ??= postgresReferencedMatch[REGEX_GROUP_3_INDEX];
|
|
66
|
+
}
|
|
67
|
+
const mysqlForeignKeyMatch = MYSQL_FOREIGN_KEY_REGEX.exec(detailOrMessage);
|
|
68
|
+
if (mysqlForeignKeyMatch) {
|
|
69
|
+
field ??= mysqlForeignKeyMatch[REGEX_GROUP_1_INDEX];
|
|
70
|
+
referencedTable ??= mysqlForeignKeyMatch[REGEX_GROUP_2_INDEX];
|
|
71
|
+
referencedField ??= mysqlForeignKeyMatch[REGEX_GROUP_3_INDEX];
|
|
72
|
+
}
|
|
73
|
+
let constraint = constraintFromDriver;
|
|
74
|
+
if (!constraint) {
|
|
75
|
+
const postgresConstraintMatch = POSTGRES_FOREIGN_KEY_CONSTRAINT_REGEX.exec(message);
|
|
76
|
+
if (postgresConstraintMatch) {
|
|
77
|
+
constraint = postgresConstraintMatch[REGEX_GROUP_1_INDEX];
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const mysqlConstraintMatch = MYSQL_CONSTRAINT_REGEX.exec(detailOrMessage);
|
|
81
|
+
if (mysqlConstraintMatch) {
|
|
82
|
+
constraint = mysqlConstraintMatch[REGEX_GROUP_1_INDEX];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
let table = tableFromDriver;
|
|
87
|
+
if (!table) {
|
|
88
|
+
const postgresTableMatch = POSTGRES_ON_TABLE_REGEX.exec(message);
|
|
89
|
+
if (postgresTableMatch) {
|
|
90
|
+
table = postgresTableMatch[REGEX_GROUP_1_INDEX];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
constraint,
|
|
95
|
+
detail,
|
|
96
|
+
field,
|
|
97
|
+
referencedField,
|
|
98
|
+
referencedTable,
|
|
99
|
+
table,
|
|
100
|
+
value,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
exports.DatabaseTypeOrmGetForeignKeyViolationDetails = DatabaseTypeOrmGetForeignKeyViolationDetails;
|
|
105
|
+
//# sourceMappingURL=foreign-key-violation-details.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreign-key-violation-details.utility.js","sources":["../../../../../../../src/utility/database/typeorm/get/foreign-key-violation-details.utility.ts"],"sourcesContent":[null],"names":["QueryFailedError"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts best-effort details from a TypeORM UNIQUE constraint violation (QueryFailedError).
|
|
3
|
+
* Works best with PostgreSQL (driverError.detail / driverError.constraint).
|
|
4
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
5
|
+
* @returns {{ constraint?: string; detail?: string; field?: string; table?: string; value?: string } | undefined}
|
|
6
|
+
* Unique violation details, when available.
|
|
7
|
+
*/
|
|
8
|
+
export declare function DatabaseTypeOrmGetUniqueViolationDetails(error: unknown): {
|
|
9
|
+
constraint?: string;
|
|
10
|
+
detail?: string;
|
|
11
|
+
field?: string;
|
|
12
|
+
table?: string;
|
|
13
|
+
value?: string;
|
|
14
|
+
} | undefined;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var typeorm = require('typeorm');
|
|
4
|
+
|
|
5
|
+
const REGEX_GROUP_1_INDEX = 1;
|
|
6
|
+
const REGEX_GROUP_2_INDEX = 2;
|
|
7
|
+
const POSTGRES_UNIQUE_CONSTRAINT_REGEX = /unique constraint "([^"]+)"/;
|
|
8
|
+
const POSTGRES_ON_TABLE_REGEX = /on table "([^"]+)"/;
|
|
9
|
+
const POSTGRES_UNIQUE_DETAIL_REGEX = /Key \(([^)]+)\)=\(([^)]+)\) already exists\./;
|
|
10
|
+
const MYSQL_DUPLICATE_ENTRY_REGEX = /Duplicate entry '([^']+)' for key '([^']+)'/;
|
|
11
|
+
/**
|
|
12
|
+
* Extracts best-effort details from a TypeORM UNIQUE constraint violation (QueryFailedError).
|
|
13
|
+
* Works best with PostgreSQL (driverError.detail / driverError.constraint).
|
|
14
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
15
|
+
* @returns {{ constraint?: string; detail?: string; field?: string; table?: string; value?: string } | undefined}
|
|
16
|
+
* Unique violation details, when available.
|
|
17
|
+
*/
|
|
18
|
+
function DatabaseTypeOrmGetUniqueViolationDetails(error) {
|
|
19
|
+
const isQueryFailedError = error instanceof typeorm.QueryFailedError || (error != null && typeof error === "object" && error.name === "QueryFailedError");
|
|
20
|
+
if (!isQueryFailedError) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
let driverError;
|
|
24
|
+
if (error != null && typeof error === "object") {
|
|
25
|
+
const driverErrorUnknown = error.driverError;
|
|
26
|
+
if (driverErrorUnknown != null && typeof driverErrorUnknown === "object") {
|
|
27
|
+
driverError = driverErrorUnknown;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const constraintFromDriver = typeof driverError?.constraint === "string" ? driverError.constraint : undefined;
|
|
31
|
+
const detail = typeof driverError?.detail === "string" ? driverError.detail : undefined;
|
|
32
|
+
const tableFromDriver = typeof driverError?.table === "string" ? driverError.table : undefined;
|
|
33
|
+
const driverMessage = driverError?.message;
|
|
34
|
+
let message = "";
|
|
35
|
+
if (typeof driverMessage === "string") {
|
|
36
|
+
message = driverMessage;
|
|
37
|
+
}
|
|
38
|
+
else if (error instanceof Error) {
|
|
39
|
+
message = error.message;
|
|
40
|
+
}
|
|
41
|
+
else if (error != null && typeof error === "object" && "message" in error) {
|
|
42
|
+
const objectMessage = error.message;
|
|
43
|
+
if (typeof objectMessage === "string") {
|
|
44
|
+
message = objectMessage;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const detailOrMessage = detail ?? message;
|
|
48
|
+
let field;
|
|
49
|
+
let value;
|
|
50
|
+
const postgresDetailMatch = POSTGRES_UNIQUE_DETAIL_REGEX.exec(detailOrMessage);
|
|
51
|
+
if (postgresDetailMatch) {
|
|
52
|
+
field = postgresDetailMatch[REGEX_GROUP_1_INDEX];
|
|
53
|
+
value = postgresDetailMatch[REGEX_GROUP_2_INDEX];
|
|
54
|
+
}
|
|
55
|
+
const mysqlDuplicateMatch = MYSQL_DUPLICATE_ENTRY_REGEX.exec(detailOrMessage);
|
|
56
|
+
if (mysqlDuplicateMatch) {
|
|
57
|
+
value ??= mysqlDuplicateMatch[REGEX_GROUP_1_INDEX];
|
|
58
|
+
const key = mysqlDuplicateMatch[REGEX_GROUP_2_INDEX];
|
|
59
|
+
if (key) {
|
|
60
|
+
// Key can be "table.column" or an index name. Best-effort: split by '.' and take the last segment.
|
|
61
|
+
const segments = key.split(".");
|
|
62
|
+
const last = segments.at(-1);
|
|
63
|
+
field ??= last;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
let constraint = constraintFromDriver;
|
|
67
|
+
if (!constraint) {
|
|
68
|
+
const postgresConstraintMatch = POSTGRES_UNIQUE_CONSTRAINT_REGEX.exec(message);
|
|
69
|
+
if (postgresConstraintMatch) {
|
|
70
|
+
constraint = postgresConstraintMatch[REGEX_GROUP_1_INDEX];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
let table = tableFromDriver;
|
|
74
|
+
if (!table) {
|
|
75
|
+
const postgresTableMatch = POSTGRES_ON_TABLE_REGEX.exec(message);
|
|
76
|
+
if (postgresTableMatch) {
|
|
77
|
+
table = postgresTableMatch[REGEX_GROUP_1_INDEX];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
constraint,
|
|
82
|
+
detail,
|
|
83
|
+
field,
|
|
84
|
+
table,
|
|
85
|
+
value,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
exports.DatabaseTypeOrmGetUniqueViolationDetails = DatabaseTypeOrmGetUniqueViolationDetails;
|
|
90
|
+
//# sourceMappingURL=unique-violation-details.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique-violation-details.utility.js","sources":["../../../../../../../src/utility/database/typeorm/get/unique-violation-details.utility.ts"],"sourcesContent":[null],"names":["QueryFailedError"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { DatabaseTypeOrmGetForeignKeyViolationDetails } from './get/foreign-key-violation-details.utility';
|
|
2
|
+
export { DatabaseTypeOrmGetUniqueViolationDetails } from './get/unique-violation-details.utility';
|
|
3
|
+
export { DatabaseTypeOrmIsEntityMetadataNotFound } from './is/entity/metadata-not-found.utility';
|
|
4
|
+
export { DatabaseTypeOrmIsEntityNotFound } from './is/entity/not-found.utility';
|
|
5
|
+
export { DatabaseTypeOrmIsForeignKeyViolation } from './is/foreign-key-violation.utility';
|
|
6
|
+
export { DatabaseTypeOrmIsUniqueViolation } from './is/unique-violation.utility';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects whether an error is a TypeORM EntityMetadataNotFoundError.
|
|
3
|
+
* This usually indicates that an entity was not registered in the current DataSource.
|
|
4
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
5
|
+
* @returns {boolean} True if it looks like EntityMetadataNotFoundError
|
|
6
|
+
*/
|
|
7
|
+
export declare function DatabaseTypeOrmIsEntityMetadataNotFound(error: unknown): boolean;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var typeorm = require('typeorm');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Detects whether an error is a TypeORM EntityMetadataNotFoundError.
|
|
7
|
+
* This usually indicates that an entity was not registered in the current DataSource.
|
|
8
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
9
|
+
* @returns {boolean} True if it looks like EntityMetadataNotFoundError
|
|
10
|
+
*/
|
|
11
|
+
function DatabaseTypeOrmIsEntityMetadataNotFound(error) {
|
|
12
|
+
if (error instanceof typeorm.EntityMetadataNotFoundError) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
if (!error || typeof error !== "object") {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const name = error.name;
|
|
19
|
+
if (name === "EntityMetadataNotFoundError") {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
const message = error.message;
|
|
23
|
+
return typeof message === "string" && message.includes("No metadata for");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
exports.DatabaseTypeOrmIsEntityMetadataNotFound = DatabaseTypeOrmIsEntityMetadataNotFound;
|
|
27
|
+
//# sourceMappingURL=metadata-not-found.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-not-found.utility.js","sources":["../../../../../../../../src/utility/database/typeorm/is/entity/metadata-not-found.utility.ts"],"sourcesContent":[null],"names":["EntityMetadataNotFoundError"],"mappings":";;;;AAEA;;;;;AAKG;AACG,SAAU,uCAAuC,CAAC,KAAc,EAAA;AACrE,IAAA,IAAI,KAAK,YAAYA,mCAA2B,EAAE;AACjD,QAAA,OAAO,IAAI;IACZ;IAEA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACxC,QAAA,OAAO,KAAK;IACb;AAEA,IAAA,MAAM,IAAI,GAAa,KAA4B,CAAC,IAAI;AAExD,IAAA,IAAI,IAAI,KAAK,6BAA6B,EAAE;AAC3C,QAAA,OAAO,IAAI;IACZ;AAEA,IAAA,MAAM,OAAO,GAAa,KAA+B,CAAC,OAAO;IAEjE,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC1E;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects whether an error is a TypeORM EntityNotFoundError.
|
|
3
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
4
|
+
* @returns {boolean} True if it looks like EntityNotFoundError
|
|
5
|
+
*/
|
|
6
|
+
export declare function DatabaseTypeOrmIsEntityNotFound(error: unknown): boolean;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var typeorm = require('typeorm');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Detects whether an error is a TypeORM EntityNotFoundError.
|
|
7
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
8
|
+
* @returns {boolean} True if it looks like EntityNotFoundError
|
|
9
|
+
*/
|
|
10
|
+
function DatabaseTypeOrmIsEntityNotFound(error) {
|
|
11
|
+
if (error instanceof typeorm.EntityNotFoundError) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
if (!error || typeof error !== "object") {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const name = error.name;
|
|
18
|
+
if (name === "EntityNotFoundError") {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
const message = error.message;
|
|
22
|
+
return typeof message === "string" && message.includes("Could not find any entity of type");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.DatabaseTypeOrmIsEntityNotFound = DatabaseTypeOrmIsEntityNotFound;
|
|
26
|
+
//# sourceMappingURL=not-found.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found.utility.js","sources":["../../../../../../../../src/utility/database/typeorm/is/entity/not-found.utility.ts"],"sourcesContent":[null],"names":["EntityNotFoundError"],"mappings":";;;;AAEA;;;;AAIG;AACG,SAAU,+BAA+B,CAAC,KAAc,EAAA;AAC7D,IAAA,IAAI,KAAK,YAAYA,2BAAmB,EAAE;AACzC,QAAA,OAAO,IAAI;IACZ;IAEA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACxC,QAAA,OAAO,KAAK;IACb;AAEA,IAAA,MAAM,IAAI,GAAa,KAA4B,CAAC,IAAI;AAExD,IAAA,IAAI,IAAI,KAAK,qBAAqB,EAAE;AACnC,QAAA,OAAO,IAAI;IACZ;AAEA,IAAA,MAAM,OAAO,GAAa,KAA+B,CAAC,OAAO;IAEjE,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC;AAC5F;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects whether a TypeORM QueryFailedError is caused by a FOREIGN KEY constraint violation.
|
|
3
|
+
* Best-effort across major drivers (Postgres/MySQL/MariaDB/SQLite/MSSQL) + message fallback.
|
|
4
|
+
* @param {unknown} error - Error thrown by TypeORM
|
|
5
|
+
* @returns {boolean} True if it looks like a FOREIGN KEY constraint violation
|
|
6
|
+
*/
|
|
7
|
+
export declare function DatabaseTypeOrmIsForeignKeyViolation(error: unknown): boolean;
|