@dismissible/nestjs-dismissible 0.0.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/README.md +490 -0
- package/package.json +68 -0
- package/src/api/dismissible-item-response.dto.d.ts +9 -0
- package/src/api/dismissible-item-response.dto.js +40 -0
- package/src/api/dismissible-item-response.dto.js.map +1 -0
- package/src/api/dismissible-item.mapper.d.ts +12 -0
- package/src/api/dismissible-item.mapper.js +30 -0
- package/src/api/dismissible-item.mapper.js.map +1 -0
- package/src/api/dismissible-item.mapper.spec.d.ts +1 -0
- package/src/api/dismissible-item.mapper.spec.js +43 -0
- package/src/api/dismissible-item.mapper.spec.js.map +1 -0
- package/src/api/index.d.ts +4 -0
- package/src/api/index.js +8 -0
- package/src/api/index.js.map +1 -0
- package/src/api/use-cases/api-tags.constants.d.ts +4 -0
- package/src/api/use-cases/api-tags.constants.js +8 -0
- package/src/api/use-cases/api-tags.constants.js.map +1 -0
- package/src/api/use-cases/dismiss/dismiss.controller.d.ts +15 -0
- package/src/api/use-cases/dismiss/dismiss.controller.js +74 -0
- package/src/api/use-cases/dismiss/dismiss.controller.js.map +1 -0
- package/src/api/use-cases/dismiss/dismiss.controller.spec.d.ts +1 -0
- package/src/api/use-cases/dismiss/dismiss.controller.spec.js +37 -0
- package/src/api/use-cases/dismiss/dismiss.controller.spec.js.map +1 -0
- package/src/api/use-cases/dismiss/dismiss.response.dto.d.ts +12 -0
- package/src/api/use-cases/dismiss/dismiss.response.dto.js +12 -0
- package/src/api/use-cases/dismiss/dismiss.response.dto.js.map +1 -0
- package/src/api/use-cases/dismiss/index.d.ts +2 -0
- package/src/api/use-cases/dismiss/index.js +6 -0
- package/src/api/use-cases/dismiss/index.js.map +1 -0
- package/src/api/use-cases/get-or-create/get-or-create.controller.d.ts +15 -0
- package/src/api/use-cases/get-or-create/get-or-create.controller.js +70 -0
- package/src/api/use-cases/get-or-create/get-or-create.controller.js.map +1 -0
- package/src/api/use-cases/get-or-create/get-or-create.controller.spec.d.ts +1 -0
- package/src/api/use-cases/get-or-create/get-or-create.controller.spec.js +32 -0
- package/src/api/use-cases/get-or-create/get-or-create.controller.spec.js.map +1 -0
- package/src/api/use-cases/get-or-create/get-or-create.response.dto.d.ts +12 -0
- package/src/api/use-cases/get-or-create/get-or-create.response.dto.js +12 -0
- package/src/api/use-cases/get-or-create/get-or-create.response.dto.js.map +1 -0
- package/src/api/use-cases/get-or-create/index.d.ts +2 -0
- package/src/api/use-cases/get-or-create/index.js +6 -0
- package/src/api/use-cases/get-or-create/index.js.map +1 -0
- package/src/api/use-cases/index.d.ts +3 -0
- package/src/api/use-cases/index.js +7 -0
- package/src/api/use-cases/index.js.map +1 -0
- package/src/api/use-cases/restore/index.d.ts +2 -0
- package/src/api/use-cases/restore/index.js +6 -0
- package/src/api/use-cases/restore/index.js.map +1 -0
- package/src/api/use-cases/restore/restore.controller.d.ts +15 -0
- package/src/api/use-cases/restore/restore.controller.js +74 -0
- package/src/api/use-cases/restore/restore.controller.js.map +1 -0
- package/src/api/use-cases/restore/restore.controller.spec.d.ts +1 -0
- package/src/api/use-cases/restore/restore.controller.spec.js +37 -0
- package/src/api/use-cases/restore/restore.controller.spec.js.map +1 -0
- package/src/api/use-cases/restore/restore.response.dto.d.ts +12 -0
- package/src/api/use-cases/restore/restore.response.dto.js +12 -0
- package/src/api/use-cases/restore/restore.response.dto.js.map +1 -0
- package/src/api/validation/index.d.ts +2 -0
- package/src/api/validation/index.js +6 -0
- package/src/api/validation/index.js.map +1 -0
- package/src/api/validation/param-validation.pipe.d.ts +11 -0
- package/src/api/validation/param-validation.pipe.js +36 -0
- package/src/api/validation/param-validation.pipe.js.map +1 -0
- package/src/api/validation/param-validation.pipe.spec.d.ts +1 -0
- package/src/api/validation/param-validation.pipe.spec.js +269 -0
- package/src/api/validation/param-validation.pipe.spec.js.map +1 -0
- package/src/api/validation/param.decorators.d.ts +28 -0
- package/src/api/validation/param.decorators.js +36 -0
- package/src/api/validation/param.decorators.js.map +1 -0
- package/src/core/dismissible-core.service.d.ts +56 -0
- package/src/core/dismissible-core.service.js +147 -0
- package/src/core/dismissible-core.service.js.map +1 -0
- package/src/core/dismissible-core.service.spec.d.ts +1 -0
- package/src/core/dismissible-core.service.spec.js +309 -0
- package/src/core/dismissible-core.service.spec.js.map +1 -0
- package/src/core/dismissible.service.d.ts +45 -0
- package/src/core/dismissible.service.js +127 -0
- package/src/core/dismissible.service.js.map +1 -0
- package/src/core/dismissible.service.spec.d.ts +1 -0
- package/src/core/dismissible.service.spec.js +159 -0
- package/src/core/dismissible.service.spec.js.map +1 -0
- package/src/core/hook-runner.service.d.ts +88 -0
- package/src/core/hook-runner.service.js +226 -0
- package/src/core/hook-runner.service.js.map +1 -0
- package/src/core/hook-runner.service.spec.d.ts +1 -0
- package/src/core/hook-runner.service.spec.js +538 -0
- package/src/core/hook-runner.service.spec.js.map +1 -0
- package/src/core/index.d.ts +5 -0
- package/src/core/index.js +9 -0
- package/src/core/index.js.map +1 -0
- package/src/core/lifecycle-hook.interface.d.ts +1 -0
- package/src/core/lifecycle-hook.interface.js +7 -0
- package/src/core/lifecycle-hook.interface.js.map +1 -0
- package/src/core/service-responses.interface.d.ts +28 -0
- package/src/core/service-responses.interface.js +3 -0
- package/src/core/service-responses.interface.js.map +1 -0
- package/src/dismissible.module.d.ts +13 -0
- package/src/dismissible.module.integration.spec.d.ts +1 -0
- package/src/dismissible.module.integration.spec.js +529 -0
- package/src/dismissible.module.integration.spec.js.map +1 -0
- package/src/dismissible.module.js +77 -0
- package/src/dismissible.module.js.map +1 -0
- package/src/events/dismissible.events.d.ts +45 -0
- package/src/events/dismissible.events.js +53 -0
- package/src/events/dismissible.events.js.map +1 -0
- package/src/events/events.constants.d.ts +17 -0
- package/src/events/events.constants.js +17 -0
- package/src/events/events.constants.js.map +1 -0
- package/src/events/index.d.ts +2 -0
- package/src/events/index.js +6 -0
- package/src/events/index.js.map +1 -0
- package/src/exceptions/dismissible.exceptions.d.ts +26 -0
- package/src/exceptions/dismissible.exceptions.js +49 -0
- package/src/exceptions/dismissible.exceptions.js.map +1 -0
- package/src/exceptions/dismissible.exceptions.spec.d.ts +1 -0
- package/src/exceptions/dismissible.exceptions.spec.js +40 -0
- package/src/exceptions/dismissible.exceptions.spec.js.map +1 -0
- package/src/exceptions/index.d.ts +1 -0
- package/src/exceptions/index.js +5 -0
- package/src/exceptions/index.js.map +1 -0
- package/src/index.d.ts +8 -0
- package/src/index.js +12 -0
- package/src/index.js.map +1 -0
- package/src/response/dtos/base-response.dto.d.ts +6 -0
- package/src/response/dtos/base-response.dto.js +18 -0
- package/src/response/dtos/base-response.dto.js.map +1 -0
- package/src/response/dtos/error-response.dto.d.ts +19 -0
- package/src/response/dtos/error-response.dto.js +39 -0
- package/src/response/dtos/error-response.dto.js.map +1 -0
- package/src/response/dtos/index.d.ts +3 -0
- package/src/response/dtos/index.js +7 -0
- package/src/response/dtos/index.js.map +1 -0
- package/src/response/dtos/success-response.dto.d.ts +28 -0
- package/src/response/dtos/success-response.dto.js +34 -0
- package/src/response/dtos/success-response.dto.js.map +1 -0
- package/src/response/http-exception-filter.d.ts +4 -0
- package/src/response/http-exception-filter.js +24 -0
- package/src/response/http-exception-filter.js.map +1 -0
- package/src/response/http-exception-filter.spec.d.ts +1 -0
- package/src/response/http-exception-filter.spec.js +137 -0
- package/src/response/http-exception-filter.spec.js.map +1 -0
- package/src/response/index.d.ts +4 -0
- package/src/response/index.js +8 -0
- package/src/response/index.js.map +1 -0
- package/src/response/response.module.d.ts +2 -0
- package/src/response/response.module.js +17 -0
- package/src/response/response.module.js.map +1 -0
- package/src/response/response.service.d.ts +6 -0
- package/src/response/response.service.js +25 -0
- package/src/response/response.service.js.map +1 -0
- package/src/response/response.service.spec.d.ts +1 -0
- package/src/response/response.service.spec.js +58 -0
- package/src/response/response.service.spec.js.map +1 -0
- package/src/testing/factories.d.ts +14 -0
- package/src/testing/factories.js +58 -0
- package/src/testing/factories.js.map +1 -0
- package/src/testing/index.d.ts +1 -0
- package/src/testing/index.js +5 -0
- package/src/testing/index.js.map +1 -0
- package/src/utils/date/date.service.d.ts +8 -0
- package/src/utils/date/date.service.js +24 -0
- package/src/utils/date/date.service.js.map +1 -0
- package/src/utils/date/date.service.spec.d.ts +1 -0
- package/src/utils/date/date.service.spec.js +83 -0
- package/src/utils/date/date.service.spec.js.map +1 -0
- package/src/utils/date/index.d.ts +1 -0
- package/src/utils/date/index.js +5 -0
- package/src/utils/date/index.js.map +1 -0
- package/src/utils/dismissible.helper.d.ts +4 -0
- package/src/utils/dismissible.helper.js +15 -0
- package/src/utils/dismissible.helper.js.map +1 -0
- package/src/utils/index.d.ts +3 -0
- package/src/utils/index.js +7 -0
- package/src/utils/index.js.map +1 -0
- package/src/validation/dismissible-input.dto.d.ts +21 -0
- package/src/validation/dismissible-input.dto.js +54 -0
- package/src/validation/dismissible-input.dto.js.map +1 -0
- package/src/validation/index.d.ts +1 -0
- package/src/validation/index.js +5 -0
- package/src/validation/index.js.map +1 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var DismissibleModule_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DismissibleModule = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
8
|
+
const get_or_create_controller_1 = require("./api/use-cases/get-or-create/get-or-create.controller");
|
|
9
|
+
const dismiss_controller_1 = require("./api/use-cases/dismiss/dismiss.controller");
|
|
10
|
+
const restore_controller_1 = require("./api/use-cases/restore/restore.controller");
|
|
11
|
+
const dismissible_service_1 = require("./core/dismissible.service");
|
|
12
|
+
const dismissible_core_service_1 = require("./core/dismissible-core.service");
|
|
13
|
+
const hook_runner_service_1 = require("./core/hook-runner.service");
|
|
14
|
+
const dismissible_item_mapper_1 = require("./api/dismissible-item.mapper");
|
|
15
|
+
const date_service_1 = require("./utils/date/date.service");
|
|
16
|
+
const nestjs_dismissible_hooks_1 = require("@dismissible/nestjs-dismissible-hooks");
|
|
17
|
+
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
18
|
+
const response_1 = require("./response");
|
|
19
|
+
const nestjs_validation_1 = require("@dismissible/nestjs-validation");
|
|
20
|
+
const nestjs_storage_1 = require("@dismissible/nestjs-storage");
|
|
21
|
+
const dismissible_helper_1 = require("./utils/dismissible.helper");
|
|
22
|
+
const nestjs_dismissible_item_1 = require("@dismissible/nestjs-dismissible-item");
|
|
23
|
+
let DismissibleModule = DismissibleModule_1 = class DismissibleModule {
|
|
24
|
+
static forRoot(options = {}) {
|
|
25
|
+
const providers = [
|
|
26
|
+
date_service_1.DateService,
|
|
27
|
+
response_1.ResponseService,
|
|
28
|
+
dismissible_core_service_1.DismissibleCoreService,
|
|
29
|
+
hook_runner_service_1.HookRunner,
|
|
30
|
+
dismissible_service_1.DismissibleService,
|
|
31
|
+
dismissible_item_mapper_1.DismissibleItemMapper,
|
|
32
|
+
dismissible_helper_1.DismissibleHelper,
|
|
33
|
+
];
|
|
34
|
+
if (options.hooks && options.hooks.length > 0) {
|
|
35
|
+
for (const hook of options.hooks) {
|
|
36
|
+
providers.push(hook);
|
|
37
|
+
}
|
|
38
|
+
providers.push({
|
|
39
|
+
provide: nestjs_dismissible_hooks_1.DISMISSIBLE_HOOKS,
|
|
40
|
+
useFactory: (...hooks) => hooks,
|
|
41
|
+
inject: options.hooks,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
providers.push({
|
|
46
|
+
provide: nestjs_dismissible_hooks_1.DISMISSIBLE_HOOKS,
|
|
47
|
+
useValue: [],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
module: DismissibleModule_1,
|
|
52
|
+
imports: [
|
|
53
|
+
event_emitter_1.EventEmitterModule.forRoot(),
|
|
54
|
+
nestjs_logger_1.LoggerModule.forRoot(options),
|
|
55
|
+
nestjs_validation_1.ValidationModule,
|
|
56
|
+
response_1.ResponseModule,
|
|
57
|
+
options.storage ?? nestjs_storage_1.StorageModule,
|
|
58
|
+
nestjs_dismissible_item_1.DismissibleItemModule,
|
|
59
|
+
],
|
|
60
|
+
controllers: [get_or_create_controller_1.GetOrCreateController, dismiss_controller_1.DismissController, restore_controller_1.RestoreController],
|
|
61
|
+
providers,
|
|
62
|
+
exports: [
|
|
63
|
+
dismissible_service_1.DismissibleService,
|
|
64
|
+
dismissible_core_service_1.DismissibleCoreService,
|
|
65
|
+
dismissible_item_mapper_1.DismissibleItemMapper,
|
|
66
|
+
date_service_1.DateService,
|
|
67
|
+
response_1.ResponseService,
|
|
68
|
+
nestjs_dismissible_hooks_1.DISMISSIBLE_HOOKS,
|
|
69
|
+
],
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.DismissibleModule = DismissibleModule;
|
|
74
|
+
exports.DismissibleModule = DismissibleModule = DismissibleModule_1 = tslib_1.__decorate([
|
|
75
|
+
(0, common_1.Module)({})
|
|
76
|
+
], DismissibleModule);
|
|
77
|
+
//# sourceMappingURL=dismissible.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dismissible.module.js","sourceRoot":"","sources":["../../../../libs/dismissible/src/dismissible.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAuE;AACvE,yDAA2D;AAC3D,qGAA+F;AAC/F,mFAA+E;AAC/E,mFAA+E;AAC/E,oEAAgE;AAChE,8EAAyE;AACzE,oEAAwD;AACxD,2EAAsE;AACtE,4DAAwD;AACxD,oFAG+C;AAC/C,8DAA2F;AAC3F,yCAA6D;AAC7D,sEAAkE;AAClE,gEAA8F;AAC9F,mEAA+D;AAC/D,kFAA6E;AAWtE,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,UAAqC,EAAE;QACpD,MAAM,SAAS,GAAe;YAC5B,0BAAW;YACX,0BAAe;YACf,iDAAsB;YACtB,gCAAU;YACV,wCAAkB;YAClB,+CAAqB;YACrB,sCAAiB;SAClB,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,4CAAiB;gBAC1B,UAAU,EAAE,CAAC,GAAG,KAAkC,EAAE,EAAE,CAAC,KAAK;gBAC5D,MAAM,EAAE,OAAO,CAAC,KAAK;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,4CAAiB;gBAC1B,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,OAAO,EAAE;gBACP,kCAAkB,CAAC,OAAO,EAAE;gBAC5B,4BAAY,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC7B,oCAAgB;gBAChB,yBAAc;gBACd,OAAO,CAAC,OAAO,IAAI,8BAAa;gBAChC,+CAAqB;aACtB;YACD,WAAW,EAAE,CAAC,gDAAqB,EAAE,sCAAiB,EAAE,sCAAiB,CAAC;YAC1E,SAAS;YACT,OAAO,EAAE;gBACP,wCAAkB;gBAClB,iDAAsB;gBACtB,+CAAqB;gBACrB,0BAAW;gBACX,0BAAe;gBACf,4CAAiB;aAClB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAnDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CAmD7B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { DismissibleItemDto } from '@dismissible/nestjs-dismissible-item';
|
|
2
|
+
import { IRequestContext } from '@dismissible/nestjs-dismissible-request';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for all dismissible events.
|
|
5
|
+
*/
|
|
6
|
+
declare abstract class BaseDismissibleEvent {
|
|
7
|
+
/** The item identifier */
|
|
8
|
+
readonly id: string;
|
|
9
|
+
/** The current state of the item */
|
|
10
|
+
readonly item: DismissibleItemDto;
|
|
11
|
+
/** The user identifier */
|
|
12
|
+
readonly userId: string;
|
|
13
|
+
/** The request context (optional) */
|
|
14
|
+
readonly context?: IRequestContext;
|
|
15
|
+
constructor(itemId: string, item: DismissibleItemDto, userId: string, context?: IRequestContext);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Event emitted when an existing item is retrieved.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ItemRetrievedEvent extends BaseDismissibleEvent {
|
|
21
|
+
constructor(itemId: string, item: DismissibleItemDto, userId: string, context?: IRequestContext);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Event emitted when a new item is created.
|
|
25
|
+
*/
|
|
26
|
+
export declare class ItemCreatedEvent extends BaseDismissibleEvent {
|
|
27
|
+
constructor(itemId: string, item: DismissibleItemDto, userId: string, context?: IRequestContext);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Event emitted when an item is dismissed.
|
|
31
|
+
*/
|
|
32
|
+
export declare class ItemDismissedEvent extends BaseDismissibleEvent {
|
|
33
|
+
/** The item state before dismissal */
|
|
34
|
+
readonly previousItem: DismissibleItemDto;
|
|
35
|
+
constructor(itemId: string, item: DismissibleItemDto, previousItem: DismissibleItemDto, userId: string, context?: IRequestContext);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Event emitted when a dismissed item is restored.
|
|
39
|
+
*/
|
|
40
|
+
export declare class ItemRestoredEvent extends BaseDismissibleEvent {
|
|
41
|
+
/** The item state before restoration */
|
|
42
|
+
readonly previousItem: DismissibleItemDto;
|
|
43
|
+
constructor(itemId: string, item: DismissibleItemDto, previousItem: DismissibleItemDto, userId: string, context?: IRequestContext);
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ItemRestoredEvent = exports.ItemDismissedEvent = exports.ItemCreatedEvent = exports.ItemRetrievedEvent = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base class for all dismissible events.
|
|
6
|
+
*/
|
|
7
|
+
class BaseDismissibleEvent {
|
|
8
|
+
constructor(itemId, item, userId, context) {
|
|
9
|
+
this.id = itemId;
|
|
10
|
+
this.item = item;
|
|
11
|
+
this.userId = userId;
|
|
12
|
+
this.context = context;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Event emitted when an existing item is retrieved.
|
|
17
|
+
*/
|
|
18
|
+
class ItemRetrievedEvent extends BaseDismissibleEvent {
|
|
19
|
+
constructor(itemId, item, userId, context) {
|
|
20
|
+
super(itemId, item, userId, context);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.ItemRetrievedEvent = ItemRetrievedEvent;
|
|
24
|
+
/**
|
|
25
|
+
* Event emitted when a new item is created.
|
|
26
|
+
*/
|
|
27
|
+
class ItemCreatedEvent extends BaseDismissibleEvent {
|
|
28
|
+
constructor(itemId, item, userId, context) {
|
|
29
|
+
super(itemId, item, userId, context);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ItemCreatedEvent = ItemCreatedEvent;
|
|
33
|
+
/**
|
|
34
|
+
* Event emitted when an item is dismissed.
|
|
35
|
+
*/
|
|
36
|
+
class ItemDismissedEvent extends BaseDismissibleEvent {
|
|
37
|
+
constructor(itemId, item, previousItem, userId, context) {
|
|
38
|
+
super(itemId, item, userId, context);
|
|
39
|
+
this.previousItem = previousItem;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ItemDismissedEvent = ItemDismissedEvent;
|
|
43
|
+
/**
|
|
44
|
+
* Event emitted when a dismissed item is restored.
|
|
45
|
+
*/
|
|
46
|
+
class ItemRestoredEvent extends BaseDismissibleEvent {
|
|
47
|
+
constructor(itemId, item, previousItem, userId, context) {
|
|
48
|
+
super(itemId, item, userId, context);
|
|
49
|
+
this.previousItem = previousItem;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ItemRestoredEvent = ItemRestoredEvent;
|
|
53
|
+
//# sourceMappingURL=dismissible.events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dismissible.events.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/events/dismissible.events.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAe,oBAAoB;IAajC,YAAY,MAAc,EAAE,IAAwB,EAAE,MAAc,EAAE,OAAyB;QAC7F,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,oBAAoB;IAC1D,YAAY,MAAc,EAAE,IAAwB,EAAE,MAAc,EAAE,OAAyB;QAC7F,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;AAJD,gDAIC;AAED;;GAEG;AACH,MAAa,gBAAiB,SAAQ,oBAAoB;IACxD,YAAY,MAAc,EAAE,IAAwB,EAAE,MAAc,EAAE,OAAyB;QAC7F,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;AAJD,4CAIC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,oBAAoB;IAI1D,YACE,MAAc,EACd,IAAwB,EACxB,YAAgC,EAChC,MAAc,EACd,OAAyB;QAEzB,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAdD,gDAcC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,oBAAoB;IAIzD,YACE,MAAc,EACd,IAAwB,EACxB,YAAgC,EAChC,MAAc,EACd,OAAyB;QAEzB,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAdD,8CAcC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event names for dismissible operations.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DismissibleEvents: {
|
|
5
|
+
/** Emitted when an existing item is retrieved */
|
|
6
|
+
readonly ITEM_RETRIEVED: "dismissible.item.retrieved";
|
|
7
|
+
/** Emitted when a new item is created */
|
|
8
|
+
readonly ITEM_CREATED: "dismissible.item.created";
|
|
9
|
+
/** Emitted when an item is dismissed */
|
|
10
|
+
readonly ITEM_DISMISSED: "dismissible.item.dismissed";
|
|
11
|
+
/** Emitted when a dismissed item is restored */
|
|
12
|
+
readonly ITEM_RESTORED: "dismissible.item.restored";
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Type representing all dismissible event names.
|
|
16
|
+
*/
|
|
17
|
+
export type DismissibleEventType = (typeof DismissibleEvents)[keyof typeof DismissibleEvents];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DismissibleEvents = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Event names for dismissible operations.
|
|
6
|
+
*/
|
|
7
|
+
exports.DismissibleEvents = {
|
|
8
|
+
/** Emitted when an existing item is retrieved */
|
|
9
|
+
ITEM_RETRIEVED: 'dismissible.item.retrieved',
|
|
10
|
+
/** Emitted when a new item is created */
|
|
11
|
+
ITEM_CREATED: 'dismissible.item.created',
|
|
12
|
+
/** Emitted when an item is dismissed */
|
|
13
|
+
ITEM_DISMISSED: 'dismissible.item.dismissed',
|
|
14
|
+
/** Emitted when a dismissed item is restored */
|
|
15
|
+
ITEM_RESTORED: 'dismissible.item.restored',
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=events.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.constants.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/events/events.constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,iBAAiB,GAAG;IAC/B,iDAAiD;IACjD,cAAc,EAAE,4BAA4B;IAE5C,yCAAyC;IACzC,YAAY,EAAE,0BAA0B;IAExC,wCAAwC;IACxC,cAAc,EAAE,4BAA4B;IAE5C,gDAAgD;IAChD,aAAa,EAAE,2BAA2B;CAClC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./events.constants"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./dismissible.events"), exports);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/events/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,+DAAqC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { HttpException, HttpStatus } from '@nestjs/common';
|
|
2
|
+
/**
|
|
3
|
+
* Base exception class for dismissible errors.
|
|
4
|
+
*/
|
|
5
|
+
declare abstract class DismissibleException extends HttpException {
|
|
6
|
+
constructor(message: string, code: string, statusCode: HttpStatus, itemId?: string);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Exception thrown when an item is not found.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ItemNotFoundException extends DismissibleException {
|
|
12
|
+
constructor(itemId: string);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Exception thrown when trying to dismiss an already dismissed item.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ItemAlreadyDismissedException extends DismissibleException {
|
|
18
|
+
constructor(itemId: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Exception thrown when trying to restore an item that is not dismissed.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ItemNotDismissedException extends DismissibleException {
|
|
24
|
+
constructor(itemId: string);
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ItemNotDismissedException = exports.ItemAlreadyDismissedException = exports.ItemNotFoundException = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
/**
|
|
6
|
+
* Base exception class for dismissible errors.
|
|
7
|
+
*/
|
|
8
|
+
class DismissibleException extends common_1.HttpException {
|
|
9
|
+
constructor(message, code, statusCode, itemId) {
|
|
10
|
+
const response = {
|
|
11
|
+
statusCode,
|
|
12
|
+
error: common_1.HttpStatus[statusCode].replace(/_/g, ' '),
|
|
13
|
+
code,
|
|
14
|
+
message,
|
|
15
|
+
};
|
|
16
|
+
if (itemId) {
|
|
17
|
+
response.itemId = itemId;
|
|
18
|
+
}
|
|
19
|
+
super(response, statusCode);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Exception thrown when an item is not found.
|
|
24
|
+
*/
|
|
25
|
+
class ItemNotFoundException extends DismissibleException {
|
|
26
|
+
constructor(itemId) {
|
|
27
|
+
super(`Item with id "${itemId}" not found`, 'ITEM_NOT_FOUND', common_1.HttpStatus.BAD_REQUEST, itemId);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ItemNotFoundException = ItemNotFoundException;
|
|
31
|
+
/**
|
|
32
|
+
* Exception thrown when trying to dismiss an already dismissed item.
|
|
33
|
+
*/
|
|
34
|
+
class ItemAlreadyDismissedException extends DismissibleException {
|
|
35
|
+
constructor(itemId) {
|
|
36
|
+
super(`Item with id "${itemId}" is already dismissed`, 'ITEM_ALREADY_DISMISSED', common_1.HttpStatus.BAD_REQUEST, itemId);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ItemAlreadyDismissedException = ItemAlreadyDismissedException;
|
|
40
|
+
/**
|
|
41
|
+
* Exception thrown when trying to restore an item that is not dismissed.
|
|
42
|
+
*/
|
|
43
|
+
class ItemNotDismissedException extends DismissibleException {
|
|
44
|
+
constructor(itemId) {
|
|
45
|
+
super(`Item with id "${itemId}" is not dismissed`, 'ITEM_NOT_DISMISSED', common_1.HttpStatus.BAD_REQUEST, itemId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.ItemNotDismissedException = ItemNotDismissedException;
|
|
49
|
+
//# sourceMappingURL=dismissible.exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dismissible.exceptions.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/exceptions/dismissible.exceptions.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAa3D;;GAEG;AACH,MAAe,oBAAqB,SAAQ,sBAAa;IACvD,YAAY,OAAe,EAAE,IAAY,EAAE,UAAsB,EAAE,MAAe;QAChF,MAAM,QAAQ,GAA8B;YAC1C,UAAU;YACV,KAAK,EAAE,mBAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YAChD,IAAI;YACJ,OAAO;SACR,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,oBAAoB;IAC7D,YAAY,MAAc;QACxB,KAAK,CAAC,iBAAiB,MAAM,aAAa,EAAE,gBAAgB,EAAE,mBAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;CACF;AAJD,sDAIC;AAED;;GAEG;AACH,MAAa,6BAA8B,SAAQ,oBAAoB;IACrE,YAAY,MAAc;QACxB,KAAK,CACH,iBAAiB,MAAM,wBAAwB,EAC/C,wBAAwB,EACxB,mBAAU,CAAC,WAAW,EACtB,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AATD,sEASC;AAED;;GAEG;AACH,MAAa,yBAA0B,SAAQ,oBAAoB;IACjE,YAAY,MAAc;QACxB,KAAK,CACH,iBAAiB,MAAM,oBAAoB,EAC3C,oBAAoB,EACpB,mBAAU,CAAC,WAAW,EACtB,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AATD,8DASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const common_1 = require("@nestjs/common");
|
|
4
|
+
const dismissible_exceptions_1 = require("./dismissible.exceptions");
|
|
5
|
+
describe('Dismissible Exceptions', () => {
|
|
6
|
+
describe('ItemNotFoundException', () => {
|
|
7
|
+
it('should create exception with correct structure', () => {
|
|
8
|
+
const exception = new dismissible_exceptions_1.ItemNotFoundException('test-item');
|
|
9
|
+
expect(exception.getStatus()).toBe(common_1.HttpStatus.BAD_REQUEST);
|
|
10
|
+
const response = exception.getResponse();
|
|
11
|
+
expect(response.statusCode).toBe(common_1.HttpStatus.BAD_REQUEST);
|
|
12
|
+
expect(response.code).toBe('ITEM_NOT_FOUND');
|
|
13
|
+
expect(response.message).toContain('test-item');
|
|
14
|
+
expect(response.itemId).toBe('test-item');
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
describe('ItemAlreadyDismissedException', () => {
|
|
18
|
+
it('should create exception with correct structure', () => {
|
|
19
|
+
const exception = new dismissible_exceptions_1.ItemAlreadyDismissedException('test-item');
|
|
20
|
+
expect(exception.getStatus()).toBe(common_1.HttpStatus.BAD_REQUEST);
|
|
21
|
+
const response = exception.getResponse();
|
|
22
|
+
expect(response.statusCode).toBe(common_1.HttpStatus.BAD_REQUEST);
|
|
23
|
+
expect(response.code).toBe('ITEM_ALREADY_DISMISSED');
|
|
24
|
+
expect(response.message).toContain('test-item');
|
|
25
|
+
expect(response.itemId).toBe('test-item');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('ItemNotDismissedException', () => {
|
|
29
|
+
it('should create exception with correct structure', () => {
|
|
30
|
+
const exception = new dismissible_exceptions_1.ItemNotDismissedException('test-item');
|
|
31
|
+
expect(exception.getStatus()).toBe(common_1.HttpStatus.BAD_REQUEST);
|
|
32
|
+
const response = exception.getResponse();
|
|
33
|
+
expect(response.statusCode).toBe(common_1.HttpStatus.BAD_REQUEST);
|
|
34
|
+
expect(response.code).toBe('ITEM_NOT_DISMISSED');
|
|
35
|
+
expect(response.message).toContain('test-item');
|
|
36
|
+
expect(response.itemId).toBe('test-item');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=dismissible.exceptions.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dismissible.exceptions.spec.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/exceptions/dismissible.exceptions.spec.ts"],"names":[],"mappings":";;AAAA,2CAA4C;AAC5C,qEAIkC;AAElC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,8CAAqB,CAAC,WAAW,CAAC,CAAC;YAEzD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAS,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,sDAA6B,CAAC,WAAW,CAAC,CAAC;YAEjE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAS,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,kDAAyB,CAAC,WAAW,CAAC,CAAC;YAE7D,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAS,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dismissible.exceptions';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC"}
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./dismissible.module"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./core"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./api"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./utils"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./events"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./exceptions"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./testing"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./validation"), exports);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dismissible/src/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,iDAAuB;AACvB,gDAAsB;AACtB,kDAAwB;AACxB,mDAAyB;AACzB,uDAA6B;AAC7B,oDAA0B;AAC1B,uDAA6B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseResponseDto = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
/**
|
|
7
|
+
* Base response DTO that wraps all successful API responses
|
|
8
|
+
*/
|
|
9
|
+
class BaseResponseDto {
|
|
10
|
+
}
|
|
11
|
+
exports.BaseResponseDto = BaseResponseDto;
|
|
12
|
+
tslib_1.__decorate([
|
|
13
|
+
(0, swagger_1.ApiProperty)({
|
|
14
|
+
description: 'Response data',
|
|
15
|
+
}),
|
|
16
|
+
tslib_1.__metadata("design:type", Object)
|
|
17
|
+
], BaseResponseDto.prototype, "data", void 0);
|
|
18
|
+
//# sourceMappingURL=base-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-response.dto.js","sourceRoot":"","sources":["../../../../../../libs/dismissible/src/response/dtos/base-response.dto.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAE9C;;GAEG;AACH,MAAa,eAAe;CAK3B;AALD,0CAKC;AADC;IAHC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;KAC7B,CAAC;;6CACM"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type IErrorResponseDto = {
|
|
2
|
+
error: {
|
|
3
|
+
message: string;
|
|
4
|
+
code: number;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* DTO representing error details in API responses
|
|
9
|
+
*/
|
|
10
|
+
export declare class ErrorDetailsDto {
|
|
11
|
+
message: string;
|
|
12
|
+
code: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* DTO for error responses
|
|
16
|
+
*/
|
|
17
|
+
export declare class ErrorResponseDto implements IErrorResponseDto {
|
|
18
|
+
error: ErrorDetailsDto;
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorResponseDto = exports.ErrorDetailsDto = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
/**
|
|
7
|
+
* DTO representing error details in API responses
|
|
8
|
+
*/
|
|
9
|
+
class ErrorDetailsDto {
|
|
10
|
+
}
|
|
11
|
+
exports.ErrorDetailsDto = ErrorDetailsDto;
|
|
12
|
+
tslib_1.__decorate([
|
|
13
|
+
(0, swagger_1.ApiProperty)({
|
|
14
|
+
description: 'Error message',
|
|
15
|
+
example: 'Item not found',
|
|
16
|
+
}),
|
|
17
|
+
tslib_1.__metadata("design:type", String)
|
|
18
|
+
], ErrorDetailsDto.prototype, "message", void 0);
|
|
19
|
+
tslib_1.__decorate([
|
|
20
|
+
(0, swagger_1.ApiProperty)({
|
|
21
|
+
description: 'HTTP status code',
|
|
22
|
+
example: 404,
|
|
23
|
+
}),
|
|
24
|
+
tslib_1.__metadata("design:type", Number)
|
|
25
|
+
], ErrorDetailsDto.prototype, "code", void 0);
|
|
26
|
+
/**
|
|
27
|
+
* DTO for error responses
|
|
28
|
+
*/
|
|
29
|
+
class ErrorResponseDto {
|
|
30
|
+
}
|
|
31
|
+
exports.ErrorResponseDto = ErrorResponseDto;
|
|
32
|
+
tslib_1.__decorate([
|
|
33
|
+
(0, swagger_1.ApiProperty)({
|
|
34
|
+
description: 'Error details',
|
|
35
|
+
type: ErrorDetailsDto,
|
|
36
|
+
}),
|
|
37
|
+
tslib_1.__metadata("design:type", ErrorDetailsDto)
|
|
38
|
+
], ErrorResponseDto.prototype, "error", void 0);
|
|
39
|
+
//# sourceMappingURL=error-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-response.dto.js","sourceRoot":"","sources":["../../../../../../libs/dismissible/src/response/dtos/error-response.dto.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAS9C;;GAEG;AACH,MAAa,eAAe;CAY3B;AAZD,0CAYC;AAPC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,gBAAgB;KAC1B,CAAC;;gDACc;AAMhB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,GAAG;KACb,CAAC;;6CACW;AAGf;;GAEG;AACH,MAAa,gBAAgB;CAM5B;AAND,4CAMC;AADC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,eAAe;KACtB,CAAC;sCACK,eAAe;+CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./base-response.dto"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./error-response.dto"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./success-response.dto"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/dismissible/src/response/dtos/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,+DAAqC;AACrC,iEAAuC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
export type ISuccessResponseDto<T> = {
|
|
3
|
+
data: T;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Factory function to create a success response DTO wrapper.
|
|
7
|
+
*
|
|
8
|
+
* This allows wrapping any data class in a consistent `{ data: T }` structure
|
|
9
|
+
* with proper Swagger documentation.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* class UserDto {
|
|
14
|
+
* @ApiProperty()
|
|
15
|
+
* id: string;
|
|
16
|
+
*
|
|
17
|
+
* @ApiProperty()
|
|
18
|
+
* name: string;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* export class GetUserResponseDto extends SuccessResponseDto(UserDto) {}
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function SuccessResponseDto<T extends Type>(dataClass: T): {
|
|
25
|
+
new (): {
|
|
26
|
+
data: InstanceType<T>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuccessResponseDto = SuccessResponseDto;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
/**
|
|
7
|
+
* Factory function to create a success response DTO wrapper.
|
|
8
|
+
*
|
|
9
|
+
* This allows wrapping any data class in a consistent `{ data: T }` structure
|
|
10
|
+
* with proper Swagger documentation.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* class UserDto {
|
|
15
|
+
* @ApiProperty()
|
|
16
|
+
* id: string;
|
|
17
|
+
*
|
|
18
|
+
* @ApiProperty()
|
|
19
|
+
* name: string;
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* export class GetUserResponseDto extends SuccessResponseDto(UserDto) {}
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function SuccessResponseDto(dataClass) {
|
|
26
|
+
class SuccessResponse {
|
|
27
|
+
}
|
|
28
|
+
tslib_1.__decorate([
|
|
29
|
+
(0, swagger_1.ApiProperty)({ type: dataClass }),
|
|
30
|
+
tslib_1.__metadata("design:type", void 0)
|
|
31
|
+
], SuccessResponse.prototype, "data", void 0);
|
|
32
|
+
return SuccessResponse;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=success-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"success-response.dto.js","sourceRoot":"","sources":["../../../../../../libs/dismissible/src/response/dtos/success-response.dto.ts"],"names":[],"mappings":";;AA0BA,gDAOC;;AAhCD,6CAA8C;AAM9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,kBAAkB,CAAiB,SAAY;IAC7D,MAAM,eAAe;KAGpB;IADC;QADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDACV;IAGzB,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpExceptionFilter = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
let HttpExceptionFilter = class HttpExceptionFilter {
|
|
7
|
+
catch(exception, host) {
|
|
8
|
+
const ctx = host.switchToHttp();
|
|
9
|
+
const response = ctx.getResponse();
|
|
10
|
+
const status = exception.getStatus();
|
|
11
|
+
const errorResponse = {
|
|
12
|
+
error: {
|
|
13
|
+
message: exception.message,
|
|
14
|
+
code: status,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
response.status(status).send(errorResponse);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.HttpExceptionFilter = HttpExceptionFilter;
|
|
21
|
+
exports.HttpExceptionFilter = HttpExceptionFilter = tslib_1.__decorate([
|
|
22
|
+
(0, common_1.Catch)(common_1.HttpException)
|
|
23
|
+
], HttpExceptionFilter);
|
|
24
|
+
//# sourceMappingURL=http-exception-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-exception-filter.js","sourceRoot":"","sources":["../../../../../libs/dismissible/src/response/http-exception-filter.ts"],"names":[],"mappings":";;;;AAAA,2CAAsF;AAK/E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,KAAK,CAAC,SAAwB,EAAE,IAAmB;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAgB,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAErC,MAAM,aAAa,GAAsB;YACvC,KAAK,EAAE;gBACL,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAEF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAfY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,cAAK,EAAC,sBAAa,CAAC;GACR,mBAAmB,CAe/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|