@dismissible/nestjs-dismissible-item 0.1.0-canary.4b708a5.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/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@dismissible/nestjs-dismissible-item",
3
+ "version": "0.1.0-canary.4b708a5.0",
4
+ "description": "Dismissible item library",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./src/index.mjs",
10
+ "require": "./src/index.js",
11
+ "types": "./src/index.d.ts"
12
+ }
13
+ },
14
+ "peerDependencies": {
15
+ "@nestjs/common": "^11.0.0"
16
+ },
17
+ "peerDependenciesMeta": {
18
+ "@nestjs/common": {
19
+ "optional": false
20
+ }
21
+ },
22
+ "keywords": [
23
+ "nestjs",
24
+ "dismissible",
25
+ "dismissible-item"
26
+ ],
27
+ "author": "",
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": ""
32
+ },
33
+ "type": "commonjs"
34
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Base metadata type for dismissible items.
3
+ * Can be extended with custom metadata fields.
4
+ */
5
+ export type BaseMetadata = Record<string, unknown>;
6
+ /**
7
+ * Represents a dismissible item in the system.
8
+ */
9
+ export declare class DismissibleItemDto<TMetadata extends BaseMetadata = BaseMetadata> {
10
+ id: string;
11
+ userId: string;
12
+ createdAt: Date;
13
+ dismissedAt?: Date;
14
+ metadata?: TMetadata;
15
+ }
@@ -0,0 +1,35 @@
1
+ import { BaseMetadata, DismissibleItemDto } from './dismissible-item';
2
+ /**
3
+ * Options for creating a dismissible item.
4
+ */
5
+ export interface ICreateDismissibleItemOptions<TMetadata extends BaseMetadata> {
6
+ id: string;
7
+ createdAt: Date;
8
+ userId?: string;
9
+ metadata?: TMetadata;
10
+ dismissedAt?: Date;
11
+ }
12
+ /**
13
+ * Factory for creating DismissibleItemDto instances.
14
+ * Uses class-transformer to ensure proper class instantiation.
15
+ */
16
+ export declare class DismissibleItemFactory {
17
+ /**
18
+ * Create a new DismissibleItemDto instance from the provided options.
19
+ * Uses plainToInstance to ensure the result is a proper class instance.
20
+ */
21
+ create<TMetadata extends BaseMetadata = BaseMetadata>(options: ICreateDismissibleItemOptions<TMetadata>): DismissibleItemDto<TMetadata>;
22
+ /**
23
+ * Create a clone of an existing DismissibleItemDto.
24
+ */
25
+ clone<TMetadata extends BaseMetadata = BaseMetadata>(item: DismissibleItemDto<TMetadata>): DismissibleItemDto<TMetadata>;
26
+ /**
27
+ * Create a dismissed version of an existing item.
28
+ */
29
+ createDismissed<TMetadata extends BaseMetadata = BaseMetadata>(item: DismissibleItemDto<TMetadata>, dismissedAt: Date): DismissibleItemDto<TMetadata>;
30
+ /**
31
+ * Create a restored (non-dismissed) version of an existing item.
32
+ * Removes the dismissedAt property.
33
+ */
34
+ createRestored<TMetadata extends BaseMetadata = BaseMetadata>(item: DismissibleItemDto<TMetadata>): DismissibleItemDto<TMetadata>;
35
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DismissibleItemFactory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const class_transformer_1 = require("class-transformer");
7
+ const dismissible_item_1 = require("./dismissible-item");
8
+ /**
9
+ * Factory for creating DismissibleItemDto instances.
10
+ * Uses class-transformer to ensure proper class instantiation.
11
+ */
12
+ let DismissibleItemFactory = class DismissibleItemFactory {
13
+ /**
14
+ * Create a new DismissibleItemDto instance from the provided options.
15
+ * Uses plainToInstance to ensure the result is a proper class instance.
16
+ */
17
+ create(options) {
18
+ return (0, class_transformer_1.plainToInstance)((dismissible_item_1.DismissibleItemDto), options, {
19
+ excludeExtraneousValues: false,
20
+ enableImplicitConversion: true,
21
+ });
22
+ }
23
+ /**
24
+ * Create a clone of an existing DismissibleItemDto.
25
+ */
26
+ clone(item) {
27
+ return this.create({
28
+ id: item.id,
29
+ createdAt: item.createdAt,
30
+ userId: item.userId,
31
+ metadata: item.metadata,
32
+ dismissedAt: item.dismissedAt,
33
+ });
34
+ }
35
+ /**
36
+ * Create a dismissed version of an existing item.
37
+ */
38
+ createDismissed(item, dismissedAt) {
39
+ return this.create({
40
+ id: item.id,
41
+ createdAt: item.createdAt,
42
+ userId: item.userId,
43
+ metadata: item.metadata,
44
+ dismissedAt,
45
+ });
46
+ }
47
+ /**
48
+ * Create a restored (non-dismissed) version of an existing item.
49
+ * Removes the dismissedAt property.
50
+ */
51
+ createRestored(item) {
52
+ return this.create({
53
+ id: item.id,
54
+ createdAt: item.createdAt,
55
+ userId: item.userId,
56
+ metadata: item.metadata,
57
+ dismissedAt: undefined,
58
+ });
59
+ }
60
+ };
61
+ exports.DismissibleItemFactory = DismissibleItemFactory;
62
+ exports.DismissibleItemFactory = DismissibleItemFactory = tslib_1.__decorate([
63
+ (0, common_1.Injectable)()
64
+ ], DismissibleItemFactory);
65
+ //# sourceMappingURL=dismissible-item.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dismissible-item.factory.js","sourceRoot":"","sources":["../../../../libs/dismissible-item/src/dismissible-item.factory.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,yDAAoD;AACpD,yDAAsE;AAatE;;;GAGG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC;;;OAGG;IACH,MAAM,CACJ,OAAiD;QAEjD,OAAO,IAAA,mCAAe,EAAC,CAAA,qCAA6B,CAAA,EAAE,OAAO,EAAE;YAC7D,uBAAuB,EAAE,KAAK;YAC9B,wBAAwB,EAAE,IAAI;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CACH,IAAmC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CACb,IAAmC,EACnC,WAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,cAAc,CACZ,IAAmC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5DY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CA4DlC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DismissibleItemDto = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const class_validator_1 = require("class-validator");
7
+ const class_transformer_1 = require("class-transformer");
8
+ /**
9
+ * Represents a dismissible item in the system.
10
+ */
11
+ class DismissibleItemDto {
12
+ }
13
+ exports.DismissibleItemDto = DismissibleItemDto;
14
+ tslib_1.__decorate([
15
+ (0, swagger_1.ApiProperty)({
16
+ description: 'Unique identifier for the item',
17
+ example: 'welcome-banner-v2',
18
+ }),
19
+ (0, class_validator_1.IsString)(),
20
+ tslib_1.__metadata("design:type", String)
21
+ ], DismissibleItemDto.prototype, "id", void 0);
22
+ tslib_1.__decorate([
23
+ (0, swagger_1.ApiProperty)({
24
+ description: 'User identifier who created the item',
25
+ example: 'user-123',
26
+ }),
27
+ (0, class_validator_1.IsString)(),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], DismissibleItemDto.prototype, "userId", void 0);
30
+ tslib_1.__decorate([
31
+ (0, swagger_1.ApiProperty)({
32
+ description: 'When the item was created',
33
+ example: '2024-01-15T10:30:00.000Z',
34
+ }),
35
+ (0, class_validator_1.IsDate)(),
36
+ (0, class_transformer_1.Type)(() => Date),
37
+ tslib_1.__metadata("design:type", Date)
38
+ ], DismissibleItemDto.prototype, "createdAt", void 0);
39
+ tslib_1.__decorate([
40
+ (0, swagger_1.ApiPropertyOptional)({
41
+ description: 'When the item was dismissed, if applicable',
42
+ example: '2024-01-15T12:00:00.000Z',
43
+ }),
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_validator_1.IsDate)(),
46
+ (0, class_transformer_1.Type)(() => Date),
47
+ tslib_1.__metadata("design:type", Date)
48
+ ], DismissibleItemDto.prototype, "dismissedAt", void 0);
49
+ tslib_1.__decorate([
50
+ (0, swagger_1.ApiPropertyOptional)({
51
+ description: 'Optional metadata associated with the item',
52
+ example: { version: 2, category: 'promotional' },
53
+ type: 'object',
54
+ additionalProperties: true,
55
+ }),
56
+ (0, class_validator_1.IsOptional)(),
57
+ (0, class_validator_1.IsObject)(),
58
+ tslib_1.__metadata("design:type", Object)
59
+ ], DismissibleItemDto.prototype, "metadata", void 0);
60
+ //# sourceMappingURL=dismissible-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dismissible-item.js","sourceRoot":"","sources":["../../../../libs/dismissible-item/src/dismissible-item.ts"],"names":[],"mappings":";;;;AAAA,6CAAmE;AACnE,qDAAyE;AACzE,yDAAyC;AAQzC;;GAEG;AACH,MAAa,kBAAkB;CAyC9B;AAzCD,gDAyCC;AAnCC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,mBAAmB;KAC7B,CAAC;IACD,IAAA,0BAAQ,GAAE;;8CACC;AAOZ;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;;kDACK;AAQhB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,wBAAM,GAAE;IACR,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC;sCACL,IAAI;qDAAC;AASjB;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;IACR,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC;sCACH,IAAI;uDAAC;AAUnB;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE;QAChD,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,IAAI;KAC3B,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oDACU"}
@@ -0,0 +1,2 @@
1
+ export declare class DismissibleItemModule {
2
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DismissibleItemModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const dismissible_item_factory_1 = require("./dismissible-item.factory");
7
+ let DismissibleItemModule = class DismissibleItemModule {
8
+ };
9
+ exports.DismissibleItemModule = DismissibleItemModule;
10
+ exports.DismissibleItemModule = DismissibleItemModule = tslib_1.__decorate([
11
+ (0, common_1.Module)({
12
+ providers: [dismissible_item_factory_1.DismissibleItemFactory],
13
+ exports: [dismissible_item_factory_1.DismissibleItemFactory],
14
+ })
15
+ ], DismissibleItemModule);
16
+ //# sourceMappingURL=dismissible-item.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dismissible-item.module.js","sourceRoot":"","sources":["../../../../libs/dismissible-item/src/dismissible-item.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,yEAAoE;AAM7D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAAG,CAAA;AAAxB,sDAAqB;gCAArB,qBAAqB;IAJjC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,iDAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,iDAAsB,CAAC;KAClC,CAAC;GACW,qBAAqB,CAAG"}
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './dismissible-item';
2
+ export * from './dismissible-item.factory';
3
+ export * from './dismissible-item.module';
package/src/index.js ADDED
@@ -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("./dismissible-item"), exports);
5
+ tslib_1.__exportStar(require("./dismissible-item.factory"), exports);
6
+ tslib_1.__exportStar(require("./dismissible-item.module"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dismissible-item/src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,qEAA2C;AAC3C,oEAA0C"}