@volontariapp/domain-user 2.8.48 → 2.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add event.finished event contracts, streams, badge progress models, and outbox emission for event finished badge flow.
8
+
9
+ - `@volontariapp/shared`: add `EVENT_FINISHED = 'event:finished'` to `EventStream` and `Streams`.
10
+ - `@volontariapp/messaging`:
11
+ - Add `EVENT_FINISHED = 'event.finished'` to `EventEventMessagingType`.
12
+ - Expose `IEventFinishedPayload` and register in `EventRegistry`.
13
+ - `@volontariapp/domain-user`:
14
+ - Add `BadgeProgressModel` (table `badge_progress` tracking `(user_id, metric, value)`).
15
+ - Add `BadgeProgressEventModel` (table `badge_progress_events` for deduplication `(event_id, user_id)`).
16
+ - `@volontariapp/domain-event`:
17
+ - Add `changeStateWithEventFinished` to `IEventRepository` and `PostgresEventRepository`.
18
+ - Update `EventService.changeState` to emit `event.finished` in outbox on transition to `EVENT_STATE_FINISHED` and reject transitions from `FINISHED`.
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies []:
23
+ - @volontariapp/shared@0.12.0
24
+ - @volontariapp/messaging@2.22.0
25
+ - @volontariapp/auth@3.3.16
26
+ - @volontariapp/database@3.4.29
27
+
3
28
  ## 2.8.48
4
29
 
5
30
  ### Patch Changes
@@ -0,0 +1,8 @@
1
+ import type { UserModel } from './user.model.js';
2
+ export declare class BadgeProgressEventModel {
3
+ eventId: string;
4
+ userId: string;
5
+ user?: UserModel;
6
+ createdAt: Date;
7
+ }
8
+ //# sourceMappingURL=badge-progress-event.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-progress-event.model.d.ts","sourceRoot":"","sources":["../../src/models/badge-progress-event.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBACa,uBAAuB;IAElC,OAAO,EAAG,MAAM,CAAC;IAGjB,MAAM,EAAG,MAAM,CAAC;IAIhB,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;CAClB"}
@@ -0,0 +1,38 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm';
11
+ let BadgeProgressEventModel = class BadgeProgressEventModel {
12
+ eventId;
13
+ userId;
14
+ user;
15
+ createdAt;
16
+ };
17
+ __decorate([
18
+ PrimaryColumn({ type: 'uuid', name: 'event_id' }),
19
+ __metadata("design:type", String)
20
+ ], BadgeProgressEventModel.prototype, "eventId", void 0);
21
+ __decorate([
22
+ PrimaryColumn({ type: 'uuid', name: 'user_id' }),
23
+ __metadata("design:type", String)
24
+ ], BadgeProgressEventModel.prototype, "userId", void 0);
25
+ __decorate([
26
+ ManyToOne('UserModel', { onDelete: 'CASCADE' }),
27
+ JoinColumn({ name: 'user_id' }),
28
+ __metadata("design:type", Function)
29
+ ], BadgeProgressEventModel.prototype, "user", void 0);
30
+ __decorate([
31
+ CreateDateColumn({ name: 'created_at' }),
32
+ __metadata("design:type", Date)
33
+ ], BadgeProgressEventModel.prototype, "createdAt", void 0);
34
+ BadgeProgressEventModel = __decorate([
35
+ Entity('badge_progress_events')
36
+ ], BadgeProgressEventModel);
37
+ export { BadgeProgressEventModel };
38
+ //# sourceMappingURL=badge-progress-event.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-progress-event.model.js","sourceRoot":"","sources":["../../src/models/badge-progress-event.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIlF,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAElC,OAAO,CAAU;IAGjB,MAAM,CAAU;IAIhB,IAAI,CAAa;IAGjB,SAAS,CAAQ;CAClB,CAAA;AAXC;IADC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;wDACjC;AAGjB;IADC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uDACjC;AAIhB;IAFC,SAAS,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;qDACf;AAGjB;IADC,gBAAgB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC7B,IAAI;0DAAC;AAZN,uBAAuB;IADnC,MAAM,CAAC,uBAAuB,CAAC;GACnB,uBAAuB,CAanC"}
@@ -0,0 +1,9 @@
1
+ import type { UserModel } from './user.model.js';
2
+ export declare class BadgeProgressModel {
3
+ userId: string;
4
+ metric: string;
5
+ value: number;
6
+ user?: UserModel;
7
+ updatedAt: Date;
8
+ }
9
+ //# sourceMappingURL=badge-progress.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-progress.model.d.ts","sourceRoot":"","sources":["../../src/models/badge-progress.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBACa,kBAAkB;IAE7B,MAAM,EAAG,MAAM,CAAC;IAGhB,MAAM,EAAG,MAAM,CAAC;IAGhB,KAAK,EAAG,MAAM,CAAC;IAIf,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;CAClB"}
@@ -0,0 +1,43 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm';
11
+ let BadgeProgressModel = class BadgeProgressModel {
12
+ userId;
13
+ metric;
14
+ value;
15
+ user;
16
+ updatedAt;
17
+ };
18
+ __decorate([
19
+ PrimaryColumn({ type: 'uuid', name: 'user_id' }),
20
+ __metadata("design:type", String)
21
+ ], BadgeProgressModel.prototype, "userId", void 0);
22
+ __decorate([
23
+ PrimaryColumn({ type: 'varchar', length: 64 }),
24
+ __metadata("design:type", String)
25
+ ], BadgeProgressModel.prototype, "metric", void 0);
26
+ __decorate([
27
+ Column({ type: 'int', default: 0 }),
28
+ __metadata("design:type", Number)
29
+ ], BadgeProgressModel.prototype, "value", void 0);
30
+ __decorate([
31
+ ManyToOne('UserModel', { onDelete: 'CASCADE' }),
32
+ JoinColumn({ name: 'user_id' }),
33
+ __metadata("design:type", Function)
34
+ ], BadgeProgressModel.prototype, "user", void 0);
35
+ __decorate([
36
+ UpdateDateColumn({ name: 'updated_at' }),
37
+ __metadata("design:type", Date)
38
+ ], BadgeProgressModel.prototype, "updatedAt", void 0);
39
+ BadgeProgressModel = __decorate([
40
+ Entity('badge_progress')
41
+ ], BadgeProgressModel);
42
+ export { BadgeProgressModel };
43
+ //# sourceMappingURL=badge-progress.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-progress.model.js","sourceRoot":"","sources":["../../src/models/badge-progress.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI1F,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAE7B,MAAM,CAAU;IAGhB,MAAM,CAAU;IAGhB,KAAK,CAAU;IAIf,IAAI,CAAa;IAGjB,SAAS,CAAQ;CAClB,CAAA;AAdC;IADC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDACjC;AAGhB;IADC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;kDAC/B;AAGhB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;iDACrB;AAIf;IAFC,SAAS,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;gDACf;AAGjB;IADC,gBAAgB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC7B,IAAI;qDAAC;AAfN,kBAAkB;IAD9B,MAAM,CAAC,gBAAgB,CAAC;GACZ,kBAAkB,CAgB9B"}
@@ -1,5 +1,7 @@
1
1
  export * from './badge.model.js';
2
2
  export * from './user.model.js';
3
3
  export * from './user-badge.model.js';
4
+ export * from './badge-progress.model.js';
5
+ export * from './badge-progress-event.model.js';
4
6
  export * from './mapper.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from './badge.model.js';
2
2
  export * from './user.model.js';
3
3
  export * from './user-badge.model.js';
4
+ export * from './badge-progress.model.js';
5
+ export * from './badge-progress-event.model.js';
4
6
  export * from './mapper.js';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volontariapp/domain-user",
3
- "version": "2.8.48",
3
+ "version": "2.9.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -39,15 +39,15 @@
39
39
  "migration:run": "TYPEORM_MIGRATION_RUN=true yarn typeorm migration:run -d src/test/data-source.ts"
40
40
  },
41
41
  "dependencies": {
42
- "@volontariapp/auth": "3.3.15",
42
+ "@volontariapp/auth": "3.3.16",
43
43
  "@volontariapp/contracts": "4.3.14",
44
44
  "@volontariapp/crypto": "0.3.11",
45
- "@volontariapp/database": "3.4.28",
45
+ "@volontariapp/database": "3.4.29",
46
46
  "@volontariapp/errors": "0.6.3",
47
47
  "@volontariapp/errors-nest": "0.13.3",
48
48
  "@volontariapp/logger": "0.3.0",
49
- "@volontariapp/messaging": "2.21.0",
50
- "@volontariapp/shared": "0.11.0"
49
+ "@volontariapp/messaging": "2.22.0",
50
+ "@volontariapp/shared": "0.12.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@nestjs/typeorm": "^11.0.1",