@hed-hog/core 0.0.303 → 0.0.305

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.
Files changed (118) hide show
  1. package/README.md +84 -36
  2. package/dist/auth/auth.controller.d.ts +0 -3
  3. package/dist/auth/auth.controller.d.ts.map +1 -1
  4. package/dist/auth/auth.controller.js +4 -7
  5. package/dist/auth/auth.controller.js.map +1 -1
  6. package/dist/auth/auth.service.d.ts.map +1 -1
  7. package/dist/auth/auth.service.js +6 -3
  8. package/dist/auth/auth.service.js.map +1 -1
  9. package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +9 -0
  10. package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts.map +1 -1
  11. package/dist/dashboard/dashboard-core/dashboard-core.controller.js +12 -0
  12. package/dist/dashboard/dashboard-core/dashboard-core.controller.js.map +1 -1
  13. package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +7 -0
  14. package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts.map +1 -1
  15. package/dist/dashboard/dashboard-core/dashboard-core.service.js +45 -1
  16. package/dist/dashboard/dashboard-core/dashboard-core.service.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/mail-sent/dto/query-mail-sent-list.dto.d.ts +9 -0
  22. package/dist/mail-sent/dto/query-mail-sent-list.dto.d.ts.map +1 -0
  23. package/dist/mail-sent/dto/query-mail-sent-list.dto.js +49 -0
  24. package/dist/mail-sent/dto/query-mail-sent-list.dto.js.map +1 -0
  25. package/dist/mail-sent/mail-sent.controller.d.ts +24 -2
  26. package/dist/mail-sent/mail-sent.controller.d.ts.map +1 -1
  27. package/dist/mail-sent/mail-sent.controller.js +5 -3
  28. package/dist/mail-sent/mail-sent.controller.js.map +1 -1
  29. package/dist/mail-sent/mail-sent.service.d.ts +28 -3
  30. package/dist/mail-sent/mail-sent.service.d.ts.map +1 -1
  31. package/dist/mail-sent/mail-sent.service.js +108 -3
  32. package/dist/mail-sent/mail-sent.service.js.map +1 -1
  33. package/dist/oauth/oauth-callback-coordinator.service.d.ts +18 -0
  34. package/dist/oauth/oauth-callback-coordinator.service.d.ts.map +1 -0
  35. package/dist/oauth/oauth-callback-coordinator.service.js +137 -0
  36. package/dist/oauth/oauth-callback-coordinator.service.js.map +1 -0
  37. package/dist/oauth/oauth.controller.d.ts +4 -2
  38. package/dist/oauth/oauth.controller.d.ts.map +1 -1
  39. package/dist/oauth/oauth.controller.js +39 -11
  40. package/dist/oauth/oauth.controller.js.map +1 -1
  41. package/dist/oauth/oauth.errors.d.ts +16 -0
  42. package/dist/oauth/oauth.errors.d.ts.map +1 -0
  43. package/dist/oauth/oauth.errors.js +30 -0
  44. package/dist/oauth/oauth.errors.js.map +1 -0
  45. package/dist/oauth/oauth.module.d.ts.map +1 -1
  46. package/dist/oauth/oauth.module.js +10 -1
  47. package/dist/oauth/oauth.module.js.map +1 -1
  48. package/dist/oauth/oauth.service.d.ts +9 -1
  49. package/dist/oauth/oauth.service.d.ts.map +1 -1
  50. package/dist/oauth/oauth.service.js +97 -24
  51. package/dist/oauth/oauth.service.js.map +1 -1
  52. package/dist/oauth/providers/abstract.provider.d.ts +6 -0
  53. package/dist/oauth/providers/abstract.provider.d.ts.map +1 -1
  54. package/dist/oauth/providers/abstract.provider.js +34 -0
  55. package/dist/oauth/providers/abstract.provider.js.map +1 -1
  56. package/dist/oauth/providers/microsoft-entra-id.provider.d.ts +3 -0
  57. package/dist/oauth/providers/microsoft-entra-id.provider.d.ts.map +1 -1
  58. package/dist/oauth/providers/microsoft-entra-id.provider.js +40 -22
  59. package/dist/oauth/providers/microsoft-entra-id.provider.js.map +1 -1
  60. package/dist/security/security.service.d.ts +1 -0
  61. package/dist/security/security.service.d.ts.map +1 -1
  62. package/dist/security/security.service.js +9 -10
  63. package/dist/security/security.service.js.map +1 -1
  64. package/dist/session/session.service.d.ts +5 -1
  65. package/dist/session/session.service.d.ts.map +1 -1
  66. package/dist/session/session.service.js +76 -10
  67. package/dist/session/session.service.js.map +1 -1
  68. package/dist/setting/setting.service.js +4 -4
  69. package/dist/setting/setting.service.js.map +1 -1
  70. package/dist/token/token.service.d.ts +1 -0
  71. package/dist/token/token.service.d.ts.map +1 -1
  72. package/dist/token/token.service.js +23 -12
  73. package/dist/token/token.service.js.map +1 -1
  74. package/dist/user/user.service.d.ts +1 -1
  75. package/dist/user/user.service.d.ts.map +1 -1
  76. package/dist/user/user.service.js +3 -0
  77. package/dist/user/user.service.js.map +1 -1
  78. package/hedhog/data/dashboard.yaml +2 -2
  79. package/hedhog/data/mail.yaml +147 -0
  80. package/hedhog/data/route.yaml +8 -0
  81. package/hedhog/frontend/app/account/components/change-email-form.tsx.ejs +87 -8
  82. package/hedhog/frontend/app/account/components/profile-form.tsx.ejs +90 -10
  83. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +145 -31
  84. package/hedhog/frontend/app/configurations/layout.tsx.ejs +1 -1
  85. package/hedhog/frontend/app/dashboard/[slug]/dashboard-content.tsx.ejs +67 -2
  86. package/hedhog/frontend/app/dashboard/components/add-widget-selector-dialog.tsx.ejs +13 -9
  87. package/hedhog/frontend/app/dashboard/dashboard-home-tabs.tsx.ejs +250 -45
  88. package/hedhog/frontend/app/dashboard/management/tabs/component-roles-tab.tsx.ejs +111 -15
  89. package/hedhog/frontend/app/dashboard/management/tabs/dashboard-roles-tab.tsx.ejs +110 -15
  90. package/hedhog/frontend/app/dashboard/management/tabs/items-tab.tsx.ejs +113 -15
  91. package/hedhog/frontend/app/mail/log/page.tsx.ejs +481 -70
  92. package/hedhog/frontend/app/menu/page.tsx.ejs +202 -30
  93. package/hedhog/frontend/app/roles/menus.tsx.ejs +1 -1
  94. package/hedhog/frontend/app/roles/page.tsx.ejs +288 -104
  95. package/hedhog/frontend/app/users/page.tsx.ejs +168 -23
  96. package/hedhog/frontend/messages/en.json +45 -6
  97. package/hedhog/frontend/messages/pt.json +45 -6
  98. package/package.json +4 -4
  99. package/src/auth/auth.controller.ts +15 -19
  100. package/src/auth/auth.service.ts +13 -8
  101. package/src/dashboard/dashboard-core/dashboard-core.controller.ts +22 -9
  102. package/src/dashboard/dashboard-core/dashboard-core.service.ts +75 -1
  103. package/src/index.ts +10 -7
  104. package/src/mail-sent/dto/query-mail-sent-list.dto.ts +30 -0
  105. package/src/mail-sent/mail-sent.controller.ts +14 -2
  106. package/src/mail-sent/mail-sent.service.ts +159 -4
  107. package/src/oauth/oauth-callback-coordinator.service.ts +158 -0
  108. package/src/oauth/oauth.controller.ts +58 -1
  109. package/src/oauth/oauth.errors.ts +32 -0
  110. package/src/oauth/oauth.module.ts +10 -1
  111. package/src/oauth/oauth.service.ts +178 -28
  112. package/src/oauth/providers/abstract.provider.ts +64 -0
  113. package/src/oauth/providers/microsoft-entra-id.provider.ts +92 -56
  114. package/src/security/security.service.ts +12 -10
  115. package/src/session/session.service.ts +84 -9
  116. package/src/setting/setting.service.ts +10 -10
  117. package/src/token/token.service.ts +29 -11
  118. package/src/user/user.service.ts +10 -6
@@ -18,14 +18,15 @@ const api_locale_1 = require("@hed-hog/api-locale");
18
18
  const api_pagination_1 = require("@hed-hog/api-pagination");
19
19
  const common_1 = require("@nestjs/common");
20
20
  const create_dto_1 = require("./dto/create.dto");
21
+ const query_mail_sent_list_dto_1 = require("./dto/query-mail-sent-list.dto");
21
22
  const update_dto_1 = require("./dto/update.dto");
22
23
  const mail_sent_service_1 = require("./mail-sent.service");
23
24
  let MailSentController = class MailSentController {
24
25
  constructor(mailSentService) {
25
26
  this.mailSentService = mailSentService;
26
27
  }
27
- async list(paginationParams) {
28
- return this.mailSentService.list(paginationParams);
28
+ async list(paginationParams, query) {
29
+ return this.mailSentService.list(Object.assign(Object.assign({}, paginationParams), { status: query.status, hasError: query.hasError, recipientEmail: query.recipientEmail, createdAtFrom: query.createdAtFrom, createdAtTo: query.createdAtTo }));
29
30
  }
30
31
  async get(id, locale) {
31
32
  return this.mailSentService.get(locale, id);
@@ -47,8 +48,9 @@ exports.MailSentController = MailSentController;
47
48
  __decorate([
48
49
  (0, common_1.Get)(),
49
50
  __param(0, (0, api_pagination_1.Pagination)()),
51
+ __param(1, (0, common_1.Query)()),
50
52
  __metadata("design:type", Function),
51
- __metadata("design:paramtypes", [Object]),
53
+ __metadata("design:paramtypes", [Object, query_mail_sent_list_dto_1.QueryMailSentListDTO]),
52
54
  __metadata("design:returntype", Promise)
53
55
  ], MailSentController.prototype, "list", null);
54
56
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"mail-sent.controller.js","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAA+C;AAC/C,oDAA6C;AAC7C,4DAAqD;AACrD,2CAWwB;AACxB,iDAA6C;AAC7C,iDAA6C;AAC7C,2DAAsD;AAI/C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAEmB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAGE,AAAN,KAAK,CAAC,IAAI,CAAe,gBAAgB;QACvC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG,CACoB,EAAU,EAC3B,MAAc;QAExB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,IAAe;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAW,MAAc,EAA4B,EAAU,EAAU,IAAe;QAClG,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAC;YACxC,EAAE;YACF,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAW,MAAc,EAAS,IAAe;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AApCY,gDAAkB;AAOvB;IADL,IAAA,YAAG,GAAE;IACM,WAAA,IAAA,2BAAU,GAAE,CAAA;;;;8CAEvB;AAGK;IADL,IAAA,YAAG,EAAC,KAAK,CAAC;IAER,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IACzB,WAAA,IAAA,mBAAM,GAAE,CAAA;;;;6CAGV;AAGK;IADL,IAAA,aAAI,GAAE;IACO,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAO,sBAAS;;gDAEnC;AAGK;IADL,IAAA,cAAK,EAAC,KAAK,CAAC;IACC,WAAA,IAAA,mBAAM,GAAE,CAAA;IAAiB,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;qDAAO,sBAAS;;gDAKnG;AAGK;IADL,IAAA,eAAM,GAAE;IACK,WAAA,IAAA,mBAAM,GAAE,CAAA;IAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAO,eAAS;;gDAE5D;6BAnCU,kBAAkB;IAF9B,IAAA,UAAI,GAAE;IACN,IAAA,mBAAU,EAAC,WAAW,CAAC;IAGnB,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAe,CAAC,CAAC,CAAA;qCACR,mCAAe;GAHxC,kBAAkB,CAoC9B"}
1
+ {"version":3,"file":"mail-sent.controller.js","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAA+C;AAC/C,oDAA6C;AAC7C,4DAAqD;AACrD,2CAYwB;AACxB,iDAA6C;AAC7C,6EAAsE;AACtE,iDAA6C;AAC7C,2DAAsD;AAI/C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAEmB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAGE,AAAN,KAAK,CAAC,IAAI,CACM,gBAAgB,EACrB,KAA2B;QAEpC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,iCAC3B,gBAAgB,KACnB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,WAAW,EAAE,KAAK,CAAC,WAAW,IAC9B,CAAC;IACL,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG,CACoB,EAAU,EAC3B,MAAc;QAExB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,IAAe;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAW,MAAc,EAA4B,EAAU,EAAU,IAAe;QAClG,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAC;YACxC,EAAE;YACF,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAW,MAAc,EAAS,IAAe;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AA9CY,gDAAkB;AAOvB;IADL,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,2BAAU,GAAE,CAAA;IACZ,WAAA,IAAA,cAAK,GAAE,CAAA;;6CAAQ,+CAAoB;;8CAUrC;AAGK;IADL,IAAA,YAAG,EAAC,KAAK,CAAC;IAER,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IACzB,WAAA,IAAA,mBAAM,GAAE,CAAA;;;;6CAGV;AAGK;IADL,IAAA,aAAI,GAAE;IACO,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAO,sBAAS;;gDAEnC;AAGK;IADL,IAAA,cAAK,EAAC,KAAK,CAAC;IACC,WAAA,IAAA,mBAAM,GAAE,CAAA;IAAiB,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;qDAAO,sBAAS;;gDAKnG;AAGK;IADL,IAAA,eAAM,GAAE;IACK,WAAA,IAAA,mBAAM,GAAE,CAAA;IAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAO,eAAS;;gDAE5D;6BA7CU,kBAAkB;IAF9B,IAAA,UAAI,GAAE;IACN,IAAA,mBAAU,EAAC,WAAW,CAAC;IAGnB,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAe,CAAC,CAAC,CAAA;qCACR,mCAAe;GAHxC,kBAAkB,CA8C9B"}
@@ -1,20 +1,44 @@
1
1
  import { DeleteDTO } from '@hed-hog/api';
2
- import { PaginationDTO, PaginationService } from '@hed-hog/api-pagination';
2
+ import { PaginationService } from '@hed-hog/api-pagination';
3
3
  import { PrismaService } from '@hed-hog/api-prisma';
4
4
  import { CreateDTO } from './dto/create.dto';
5
+ import { QueryMailSentListDTO } from './dto/query-mail-sent-list.dto';
5
6
  import { UpdateDTO } from './dto/update.dto';
7
+ type MailSentUserStatus = 'received' | 'read' | 'error';
8
+ type MailSentUserLog = {
9
+ id: number;
10
+ recipient_email: string;
11
+ status: MailSentUserStatus;
12
+ read_at: Date | null;
13
+ error_code: string | null;
14
+ error_message: string | null;
15
+ user_id: number;
16
+ user_identifier_id: number | null;
17
+ created_at: Date;
18
+ updated_at: Date;
19
+ };
6
20
  export declare class MailSentService {
7
21
  private readonly prismaService;
8
22
  private readonly paginationService;
9
23
  constructor(prismaService: PrismaService, paginationService: PaginationService);
10
- list(paginationParams: PaginationDTO): Promise<{
24
+ list(paginationParams: QueryMailSentListDTO): Promise<{
25
+ data: {
26
+ deliverySummary: {
27
+ totalRecipients: number;
28
+ receivedCount: number;
29
+ readCount: number;
30
+ errorCount: number;
31
+ hasError: boolean;
32
+ lastReadAt: Date | null;
33
+ };
34
+ mail_sent_user?: MailSentUserLog[];
35
+ }[];
11
36
  total: any;
12
37
  lastPage: number;
13
38
  page: number;
14
39
  pageSize: number;
15
40
  prev: number;
16
41
  next: number;
17
- data: any[];
18
42
  }>;
19
43
  get(locale: string, id: number): Promise<{
20
44
  body: string;
@@ -59,4 +83,5 @@ export declare class MailSentService {
59
83
  count: number;
60
84
  }>;
61
85
  }
86
+ export {};
62
87
  //# sourceMappingURL=mail-sent.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail-sent.service.d.ts","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,aAAa,EAAE,aAAa,EAE5B,iBAAiB,EAAE,iBAAiB;IAGjD,IAAI,CAAC,gBAAgB,EAAE,aAAa;;;;;;;;;IAsBpC,GAAG,CAAC,MAAM,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;IAY7B,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS;;;;;;;;;;;;IA+B/D,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE;;;;;;;;;;;;IAelE,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,EAAE,GAAG,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CA2B3E"}
1
+ {"version":3,"file":"mail-sent.service.d.ts","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,KAAK,kBAAkB,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAMF,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,aAAa,EAAE,aAAa,EAE5B,iBAAiB,EAAE,iBAAiB;IAGjD,IAAI,CAAC,gBAAgB,EAAE,oBAAoB;;;;;;;;4BA2IrB,IAAI,GAAG,IAAI;;6BAvJtB,eAAe,EAAE;;;;;;;;;IAyK5B,GAAG,CAAC,MAAM,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;IAY7B,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS;;;;;;;;;;;;IA+B/D,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE;;;;;;;;;;;;IAelE,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,EAAE,GAAG,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CA2B3E"}
@@ -23,16 +23,121 @@ let MailSentService = class MailSentService {
23
23
  this.paginationService = paginationService;
24
24
  }
25
25
  async list(paginationParams) {
26
+ var _a, _b, _c, _d;
26
27
  const fields = ['subject', 'from', 'to', 'cc', 'bcc', 'body'];
27
28
  const OR = this.prismaService.createInsensitiveSearch(fields, paginationParams);
29
+ const AND = [];
30
+ if (paginationParams.status &&
31
+ paginationParams.status !== 'all' &&
32
+ ['received', 'read', 'error'].includes(paginationParams.status)) {
33
+ AND.push({
34
+ mail_sent_user: {
35
+ some: {
36
+ status: paginationParams.status,
37
+ },
38
+ },
39
+ });
40
+ }
41
+ const recipientEmail = (_a = paginationParams.recipientEmail) === null || _a === void 0 ? void 0 : _a.trim();
42
+ if (recipientEmail) {
43
+ AND.push({
44
+ mail_sent_user: {
45
+ some: {
46
+ recipient_email: {
47
+ contains: recipientEmail,
48
+ mode: 'insensitive',
49
+ },
50
+ },
51
+ },
52
+ });
53
+ }
54
+ const hasErrorRaw = (_b = paginationParams.hasError) === null || _b === void 0 ? void 0 : _b.trim().toLowerCase();
55
+ if (hasErrorRaw === 'true' || hasErrorRaw === '1') {
56
+ AND.push({
57
+ mail_sent_user: {
58
+ some: {
59
+ status: 'error',
60
+ },
61
+ },
62
+ });
63
+ }
64
+ if (hasErrorRaw === 'false' || hasErrorRaw === '0') {
65
+ AND.push({
66
+ mail_sent_user: {
67
+ none: {
68
+ status: 'error',
69
+ },
70
+ },
71
+ });
72
+ }
73
+ const createdAt = {};
74
+ const createdAtFrom = (_c = paginationParams.createdAtFrom) === null || _c === void 0 ? void 0 : _c.trim();
75
+ const createdAtTo = (_d = paginationParams.createdAtTo) === null || _d === void 0 ? void 0 : _d.trim();
76
+ if (createdAtFrom) {
77
+ const parsedFrom = new Date(createdAtFrom);
78
+ if (!isNaN(parsedFrom.getTime())) {
79
+ createdAt.gte = parsedFrom;
80
+ }
81
+ }
82
+ if (createdAtTo) {
83
+ const parsedTo = new Date(createdAtTo);
84
+ if (!isNaN(parsedTo.getTime())) {
85
+ parsedTo.setHours(23, 59, 59, 999);
86
+ createdAt.lte = parsedTo;
87
+ }
88
+ }
28
89
  if (paginationParams.search && !isNaN(+paginationParams.search)) {
29
90
  OR.push({ id: { equals: +paginationParams.search } });
30
91
  }
31
- return this.paginationService.paginate(this.prismaService.mail_sent, paginationParams, {
32
- where: {
33
- OR,
92
+ const result = await this.paginationService.paginate(this.prismaService.mail_sent, paginationParams, {
93
+ where: Object.assign(Object.assign(Object.assign({}, (OR.length > 0 ? { OR } : {})), (AND.length > 0 ? { AND } : {})), (Object.keys(createdAt).length > 0 ? { created_at: createdAt } : {})),
94
+ include: {
95
+ mail_sent_user: {
96
+ select: {
97
+ id: true,
98
+ recipient_email: true,
99
+ status: true,
100
+ read_at: true,
101
+ error_code: true,
102
+ error_message: true,
103
+ user_id: true,
104
+ user_identifier_id: true,
105
+ created_at: true,
106
+ updated_at: true,
107
+ },
108
+ },
34
109
  },
35
110
  });
111
+ const data = result.data.map((item) => {
112
+ var _a;
113
+ const recipientLogs = (_a = item.mail_sent_user) !== null && _a !== void 0 ? _a : [];
114
+ const summary = recipientLogs.reduce((acc, recipient) => {
115
+ if (recipient.status === 'received') {
116
+ acc.receivedCount += 1;
117
+ }
118
+ if (recipient.status === 'read') {
119
+ acc.readCount += 1;
120
+ if (recipient.read_at &&
121
+ (!acc.lastReadAt || recipient.read_at > acc.lastReadAt)) {
122
+ acc.lastReadAt = recipient.read_at;
123
+ }
124
+ }
125
+ if (recipient.status === 'error') {
126
+ acc.errorCount += 1;
127
+ }
128
+ return acc;
129
+ }, {
130
+ totalRecipients: recipientLogs.length,
131
+ receivedCount: 0,
132
+ readCount: 0,
133
+ errorCount: 0,
134
+ hasError: false,
135
+ lastReadAt: null,
136
+ });
137
+ summary.hasError = summary.errorCount > 0;
138
+ return Object.assign(Object.assign({}, item), { deliverySummary: summary });
139
+ });
140
+ return Object.assign(Object.assign({}, result), { data });
36
141
  }
37
142
  async get(locale, id) {
38
143
  const mailSent = await this.prismaService.mail_sent.findUnique({
@@ -1 +1 @@
1
- {"version":3,"file":"mail-sent.service.js","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail-sent.service.js","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { PrismaService } from '@hed-hog/api-prisma';
2
+ export declare class OAuthCallbackCoordinatorService {
3
+ private readonly prisma;
4
+ private readonly logger;
5
+ private readonly completedCallbacks;
6
+ private readonly completedTtlMs;
7
+ constructor(prisma: PrismaService);
8
+ execute<T>(callbackKey: string, callback: () => Promise<T>): Promise<T>;
9
+ private executeWithPostgresLock;
10
+ private executeWithMysqlLock;
11
+ private shouldMarkCompleted;
12
+ private isCompleted;
13
+ private markCompleted;
14
+ private pruneCompletedCallbacks;
15
+ private toSignedBigInt;
16
+ private toMysqlLockName;
17
+ }
18
+ //# sourceMappingURL=oauth-callback-coordinator.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-callback-coordinator.service.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth-callback-coordinator.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAS5D,qBACa,+BAA+B;IAK9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoD;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;gBAEpB,MAAM,EAAE,aAAa;IAE5C,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAgC/D,uBAAuB;YA2BvB,oBAAoB;IAiClC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;CAIxB"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var OAuthCallbackCoordinatorService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.OAuthCallbackCoordinatorService = void 0;
14
+ const api_prisma_1 = require("@hed-hog/api-prisma");
15
+ const common_1 = require("@nestjs/common");
16
+ const crypto_1 = require("crypto");
17
+ const oauth_errors_1 = require("./oauth.errors");
18
+ let OAuthCallbackCoordinatorService = OAuthCallbackCoordinatorService_1 = class OAuthCallbackCoordinatorService {
19
+ constructor(prisma) {
20
+ this.prisma = prisma;
21
+ this.logger = new common_1.Logger(OAuthCallbackCoordinatorService_1.name);
22
+ this.completedCallbacks = new Map();
23
+ this.completedTtlMs = 10 * 60 * 1000;
24
+ }
25
+ async execute(callbackKey, callback) {
26
+ this.pruneCompletedCallbacks();
27
+ if (this.isCompleted(callbackKey)) {
28
+ throw new oauth_errors_1.OAuthCallbackAlreadyProcessedError();
29
+ }
30
+ try {
31
+ if (this.prisma.isPostgres()) {
32
+ return await this.executeWithPostgresLock(callbackKey, callback);
33
+ }
34
+ if (this.prisma.isMysql()) {
35
+ return await this.executeWithMysqlLock(callbackKey, callback);
36
+ }
37
+ this.logger.warn(`OAuth callback coordination is running without distributed lock support for provider ${this.prisma.getProvider()}.`);
38
+ const result = await callback();
39
+ this.markCompleted(callbackKey);
40
+ return result;
41
+ }
42
+ catch (error) {
43
+ if (this.shouldMarkCompleted(error)) {
44
+ this.markCompleted(callbackKey);
45
+ }
46
+ throw error;
47
+ }
48
+ }
49
+ async executeWithPostgresLock(callbackKey, callback) {
50
+ const lockKey = this.toSignedBigInt(callbackKey);
51
+ return this.prisma.$transaction(async (tx) => {
52
+ var _a;
53
+ const rows = await tx.$queryRaw `
54
+ SELECT pg_try_advisory_xact_lock(${lockKey}) AS locked
55
+ `;
56
+ if (!((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.locked)) {
57
+ throw new oauth_errors_1.OAuthCallbackInProgressError();
58
+ }
59
+ const result = await callback();
60
+ this.markCompleted(callbackKey);
61
+ return result;
62
+ }, {
63
+ maxWait: 5000,
64
+ timeout: 60000,
65
+ });
66
+ }
67
+ async executeWithMysqlLock(callbackKey, callback) {
68
+ const lockName = this.toMysqlLockName(callbackKey);
69
+ return this.prisma.$transaction(async (tx) => {
70
+ var _a;
71
+ const rows = await tx.$queryRaw(api_prisma_1.Prisma.sql `
72
+ SELECT GET_LOCK(${lockName}, 0) AS locked
73
+ `);
74
+ if (((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.locked) !== 1) {
75
+ throw new oauth_errors_1.OAuthCallbackInProgressError();
76
+ }
77
+ try {
78
+ const result = await callback();
79
+ this.markCompleted(callbackKey);
80
+ return result;
81
+ }
82
+ finally {
83
+ await tx.$queryRaw(api_prisma_1.Prisma.sql `
84
+ SELECT RELEASE_LOCK(${lockName}) AS released
85
+ `);
86
+ }
87
+ }, {
88
+ maxWait: 5000,
89
+ timeout: 60000,
90
+ });
91
+ }
92
+ shouldMarkCompleted(error) {
93
+ return (error instanceof oauth_errors_1.OAuthCallbackAlreadyProcessedError ||
94
+ (error instanceof oauth_errors_1.OAuthProviderException &&
95
+ error.reason === 'callback_consumed'));
96
+ }
97
+ isCompleted(callbackKey) {
98
+ const expiresAt = this.completedCallbacks.get(callbackKey);
99
+ if (!expiresAt) {
100
+ return false;
101
+ }
102
+ if (expiresAt <= Date.now()) {
103
+ this.completedCallbacks.delete(callbackKey);
104
+ return false;
105
+ }
106
+ return true;
107
+ }
108
+ markCompleted(callbackKey) {
109
+ this.completedCallbacks.set(callbackKey, Date.now() + this.completedTtlMs);
110
+ }
111
+ pruneCompletedCallbacks() {
112
+ const now = Date.now();
113
+ for (const [callbackKey, expiresAt] of this.completedCallbacks.entries()) {
114
+ if (expiresAt <= now) {
115
+ this.completedCallbacks.delete(callbackKey);
116
+ }
117
+ }
118
+ }
119
+ toSignedBigInt(callbackKey) {
120
+ const hex = (0, crypto_1.createHash)('sha256').update(callbackKey).digest('hex').slice(0, 16);
121
+ const unsigned = BigInt(`0x${hex}`);
122
+ const signedBoundary = BigInt(1) << BigInt(63);
123
+ return unsigned >= signedBoundary
124
+ ? unsigned - (BigInt(1) << BigInt(64))
125
+ : unsigned;
126
+ }
127
+ toMysqlLockName(callbackKey) {
128
+ const suffix = (0, crypto_1.createHash)('sha256').update(callbackKey).digest('hex').slice(0, 48);
129
+ return `oauth:${suffix}`;
130
+ }
131
+ };
132
+ exports.OAuthCallbackCoordinatorService = OAuthCallbackCoordinatorService;
133
+ exports.OAuthCallbackCoordinatorService = OAuthCallbackCoordinatorService = OAuthCallbackCoordinatorService_1 = __decorate([
134
+ (0, common_1.Injectable)(),
135
+ __metadata("design:paramtypes", [api_prisma_1.PrismaService])
136
+ ], OAuthCallbackCoordinatorService);
137
+ //# sourceMappingURL=oauth-callback-coordinator.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-callback-coordinator.service.js","sourceRoot":"","sources":["../../src/oauth/oauth-callback-coordinator.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,oDAA4D;AAC5D,2CAAoD;AACpD,mCAAoC;AACpC,iDAIwB;AAGjB,IAAM,+BAA+B,uCAArC,MAAM,+BAA+B;IAK1C,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAJjC,WAAM,GAAG,IAAI,eAAM,CAAC,iCAA+B,CAAC,IAAI,CAAC,CAAC;QAC1D,uBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC/C,mBAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEI,CAAC;IAEtD,KAAK,CAAC,OAAO,CAAI,WAAmB,EAAE,QAA0B;QAC9D,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,iDAAkC,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC7B,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1B,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wFAAwF,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CACrH,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,WAAmB,EACnB,QAA0B;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;;YACX,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAA4B;6CACtB,OAAO;SAC3C,CAAC;YAEF,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,MAAM,CAAA,EAAE,CAAC;gBACrB,MAAM,IAAI,2CAA4B,EAAE,CAAC;YAC3C,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC,EACD;YACE,OAAO,EAAE,IAAK;YACd,OAAO,EAAE,KAAM;SAChB,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,WAAmB,EACnB,QAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;;YACX,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAAkC,mBAAM,CAAC,GAAG,CAAA;4BACvD,QAAQ;SAC3B,CAAC,CAAC;YAEH,IAAI,CAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,2CAA4B,EAAE,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAChC,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC,SAAS,CAAC,mBAAM,CAAC,GAAG,CAAA;kCACL,QAAQ;WAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EACD;YACE,OAAO,EAAE,IAAK;YACd,OAAO,EAAE,KAAM;SAChB,CACF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAc;QACxC,OAAO,CACL,KAAK,YAAY,iDAAkC;YACnD,CAAC,KAAK,YAAY,qCAAsB;gBACtC,KAAK,CAAC,MAAM,KAAK,mBAAmB,CAAC,CACxC,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,WAAmB;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,WAAmB;QACvC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;IAEO,uBAAuB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YACzE,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,WAAmB;QACxC,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,QAAQ,IAAI,cAAc;YAC/B,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAEO,eAAe,CAAC,WAAmB;QACzC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO,SAAS,MAAM,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAnJY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,mBAAU,GAAE;qCAM0B,0BAAa;GALvC,+BAA+B,CAmJ3C"}
@@ -3,12 +3,14 @@ import { OAuthService } from './oauth.service';
3
3
  export declare class OAuthController {
4
4
  private readonly service;
5
5
  private readonly settingService;
6
+ private readonly logger;
6
7
  constructor(service: OAuthService, settingService: SettingService);
8
+ private logOAuthRequest;
7
9
  githubCallback(code: string, state: string, res: any): Promise<any>;
8
- login(provider: string, res: any): Promise<any>;
10
+ login(origin: string, referer: string, host: string, provider: string, res: any): Promise<any>;
9
11
  register(provider: string, res: any): Promise<any>;
10
12
  connect(provider: string, res: any): Promise<any>;
11
- callbackLogin(locale: string, ipAddress: string, userAgent: string, provider: string, code: string, res: any): Promise<{
13
+ callbackLogin(locale: string, ipAddress: string, userAgent: string, origin: string, referer: string, host: string, forwardedHost: string, provider: string, code: string, res: any): Promise<{
12
14
  accessToken: string;
13
15
  }>;
14
16
  callbackRegister(locale: string, ipAddress: string, userAgent: string, provider: string, code: string, res: any): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.controller.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth.controller.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBACa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAgB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAtD,OAAO,EAAE,YAAY,EAAmB,cAAc,EAAE,cAAc;IAI7F,cAAc,CACH,IAAI,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACtB,GAAG,KAAA;IAUN,KAAK,CAAoB,QAAQ,EAAE,MAAM,EAAS,GAAG,KAAA;IAWrD,QAAQ,CAAoB,QAAQ,EAAE,MAAM,EAAS,GAAG,KAAA;IAWxD,OAAO,CAAoB,QAAQ,EAAE,MAAM,EAAS,GAAG,KAAA;IAWvD,aAAa,CACP,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACC,GAAG,KAAA;;;IAQ3B,gBAAgB,CACV,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACC,GAAG,KAAA;;;IAO3B,eAAe,CACT,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EAChC,EAAE,EAAE,EAAE;;KAAA,EACK,QAAQ,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACC,GAAG,KAAA;;;IAO3B,UAAU,CACJ,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACA,GAAG,KAAA;;;CAIlC"}
1
+ {"version":3,"file":"oauth.controller.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth.controller.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBACa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAgB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAFnF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAE9B,OAAO,EAAE,YAAY,EAAmB,cAAc,EAAE,cAAc;IAEnG,OAAO,CAAC,eAAe;IAkCjB,cAAc,CACH,IAAI,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACtB,GAAG,KAAA;IAUN,KAAK,CACU,MAAM,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAC5B,GAAG,KAAA;IAcN,QAAQ,CAAoB,QAAQ,EAAE,MAAM,EAAS,GAAG,KAAA;IAWxD,OAAO,CAAoB,QAAQ,EAAE,MAAM,EAAS,GAAG,KAAA;IAWvD,aAAa,CACP,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACA,aAAa,EAAE,MAAM,EAC/B,QAAQ,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACC,GAAG,KAAA;;;IAkB3B,gBAAgB,CACV,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACC,GAAG,KAAA;;;IAO3B,eAAe,CACT,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EAChC,EAAE,EAAE,EAAE;;KAAA,EACK,QAAQ,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACC,GAAG,KAAA;;;IAO3B,UAAU,CACJ,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACA,GAAG,KAAA;;;CAIlC"}
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var OAuthController_1;
14
15
  Object.defineProperty(exports, "__esModule", { value: true });
15
16
  exports.OAuthController = void 0;
16
17
  const api_1 = require("@hed-hog/api");
@@ -18,10 +19,20 @@ const api_locale_1 = require("@hed-hog/api-locale");
18
19
  const common_1 = require("@nestjs/common");
19
20
  const setting_service_1 = require("../setting/setting.service");
20
21
  const oauth_service_1 = require("./oauth.service");
21
- let OAuthController = class OAuthController {
22
+ let OAuthController = OAuthController_1 = class OAuthController {
22
23
  constructor(service, settingService) {
23
24
  this.service = service;
24
25
  this.settingService = settingService;
26
+ this.logger = new common_1.Logger(OAuthController_1.name);
27
+ }
28
+ logOAuthRequest(action, provider, { locale, origin, referer, host, ipAddress, userAgent, code, }) {
29
+ var _a;
30
+ const summarizedUserAgent = userAgent
31
+ ? userAgent.length > 120
32
+ ? `${userAgent.slice(0, 117)}...`
33
+ : userAgent
34
+ : 'n/a';
35
+ this.logger.log(`OAuth ${action}: provider=${provider} locale=${locale !== null && locale !== void 0 ? locale : 'n/a'} origin=${origin !== null && origin !== void 0 ? origin : 'n/a'} referer=${referer !== null && referer !== void 0 ? referer : 'n/a'} host=${host !== null && host !== void 0 ? host : 'n/a'} ip=${ipAddress !== null && ipAddress !== void 0 ? ipAddress : 'n/a'} hasCode=${code ? 'yes' : 'no'} codeLength=${(_a = code === null || code === void 0 ? void 0 : code.length) !== null && _a !== void 0 ? _a : 0} userAgent="${summarizedUserAgent}"`);
25
36
  }
26
37
  async githubCallback(code, state, res) {
27
38
  const type = state || 'login';
@@ -29,7 +40,8 @@ let OAuthController = class OAuthController {
29
40
  const redirectURL = `${frontendURL}/callback/github/${type}?code=${encodeURIComponent(code)}`;
30
41
  return res.redirect(redirectURL);
31
42
  }
32
- async login(provider, res) {
43
+ async login(origin, referer, host, provider, res) {
44
+ this.logOAuthRequest('login-init', provider, { origin, referer, host });
33
45
  const url = await this.service.getAuthUrl(provider, `/callback/${provider}/login`);
34
46
  return res.redirect(url);
35
47
  }
@@ -41,7 +53,16 @@ let OAuthController = class OAuthController {
41
53
  const url = this.service.getAuthUrl(provider, `/callback/${provider}/connect`);
42
54
  return res.redirect(url);
43
55
  }
44
- async callbackLogin(locale, ipAddress, userAgent, provider, code, res) {
56
+ async callbackLogin(locale, ipAddress, userAgent, origin, referer, host, forwardedHost, provider, code, res) {
57
+ this.logOAuthRequest('callback-login', provider, {
58
+ locale,
59
+ origin,
60
+ referer,
61
+ host: forwardedHost || host,
62
+ ipAddress,
63
+ userAgent,
64
+ code,
65
+ });
45
66
  return this.service.handleCallback({ res, locale, ipAddress, userAgent, provider: provider, code, type: 'login' });
46
67
  }
47
68
  async callbackRegister(locale, ipAddress, userAgent, provider, code, res) {
@@ -68,10 +89,13 @@ __decorate([
68
89
  __decorate([
69
90
  (0, api_1.Public)(),
70
91
  (0, common_1.Get)(':provider/login'),
71
- __param(0, (0, common_1.Param)('provider')),
72
- __param(1, (0, common_1.Res)()),
92
+ __param(0, (0, common_1.Headers)('origin')),
93
+ __param(1, (0, common_1.Headers)('referer')),
94
+ __param(2, (0, common_1.Headers)('host')),
95
+ __param(3, (0, common_1.Param)('provider')),
96
+ __param(4, (0, common_1.Res)()),
73
97
  __metadata("design:type", Function),
74
- __metadata("design:paramtypes", [String, Object]),
98
+ __metadata("design:paramtypes", [String, String, String, String, Object]),
75
99
  __metadata("design:returntype", Promise)
76
100
  ], OAuthController.prototype, "login", null);
77
101
  __decorate([
@@ -98,11 +122,15 @@ __decorate([
98
122
  __param(0, (0, api_locale_1.Locale)()),
99
123
  __param(1, (0, common_1.Ip)()),
100
124
  __param(2, (0, common_1.Headers)('user-agent')),
101
- __param(3, (0, common_1.Param)('provider')),
102
- __param(4, (0, common_1.Query)('code')),
103
- __param(5, (0, common_1.Res)({ passthrough: true })),
125
+ __param(3, (0, common_1.Headers)('origin')),
126
+ __param(4, (0, common_1.Headers)('referer')),
127
+ __param(5, (0, common_1.Headers)('host')),
128
+ __param(6, (0, common_1.Headers)('x-forwarded-host')),
129
+ __param(7, (0, common_1.Param)('provider')),
130
+ __param(8, (0, common_1.Query)('code')),
131
+ __param(9, (0, common_1.Res)({ passthrough: true })),
104
132
  __metadata("design:type", Function),
105
- __metadata("design:paramtypes", [String, String, String, String, String, Object]),
133
+ __metadata("design:paramtypes", [String, String, String, String, String, String, String, String, String, Object]),
106
134
  __metadata("design:returntype", Promise)
107
135
  ], OAuthController.prototype, "callbackLogin", null);
108
136
  __decorate([
@@ -143,7 +171,7 @@ __decorate([
143
171
  __metadata("design:paramtypes", [String, String, String, String, String, Object]),
144
172
  __metadata("design:returntype", Promise)
145
173
  ], OAuthController.prototype, "disconnect", null);
146
- exports.OAuthController = OAuthController = __decorate([
174
+ exports.OAuthController = OAuthController = OAuthController_1 = __decorate([
147
175
  (0, common_1.Controller)('oauth'),
148
176
  __metadata("design:paramtypes", [oauth_service_1.OAuthService, setting_service_1.SettingService])
149
177
  ], OAuthController);
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.controller.js","sourceRoot":"","sources":["../../src/oauth/oauth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.controller.js","sourceRoot":"","sources":["../../src/oauth/oauth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,sCAA4C;AAC5C,oDAA6C;AAE7C,2CAWwB;AACxB,gEAA4D;AAC5D,mDAA+C;AAGxC,IAAM,eAAe,uBAArB,MAAM,eAAe;IAG1B,YAA6B,OAAqB,EAAmB,cAA8B;QAAtE,YAAO,GAAP,OAAO,CAAc;QAAmB,mBAAc,GAAd,cAAc,CAAgB;QAFlF,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;IAE2C,CAAC;IAE/F,eAAe,CACrB,MAAc,EACd,QAAgB,EAChB,EACE,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,SAAS,EACT,SAAS,EACT,IAAI,GASL;;QAED,MAAM,mBAAmB,GAAG,SAAS;YACnC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;gBACtB,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;gBACjC,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,SAAS,MAAM,cAAc,QAAQ,WAAW,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,WAAW,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,YAAY,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,SAAS,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,KAAK,OAAO,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,eAAe,mBAAmB,GAAG,CACzQ,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CACH,IAAY,EACX,KAAa,EACtB,GAAG;QAEV,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,GAAG,WAAW,oBAAoB,IAAI,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9F,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAIK,AAAN,KAAK,CAAC,KAAK,CACU,MAAc,EACb,OAAe,EAClB,IAAY,EACV,QAAgB,EAC5B,GAAG;QAEV,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CACvC,QAAiD,EACjD,aAAa,QAAQ,QAAQ,CAC9B,CAAC;QACF,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAKK,AAAN,KAAK,CAAC,QAAQ,CAAoB,QAAgB,EAAS,GAAG;QAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CACvC,QAAiD,EACjD,aAAa,QAAQ,WAAW,CACjC,CAAC;QACF,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAKK,AAAN,KAAK,CAAC,OAAO,CAAoB,QAAgB,EAAS,GAAG;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CACjC,QAAiD,EACjD,aAAa,QAAQ,UAAU,CAChC,CAAC;QACF,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAKK,AAAN,KAAK,CAAC,aAAa,CACP,MAAc,EAClB,SAAiB,EACA,SAAiB,EACrB,MAAc,EACb,OAAe,EAClB,IAAY,EACA,aAAqB,EAC/B,QAAgB,EACpB,IAAY,EACC,GAAG;QAE/B,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,QAAQ,EAAE;YAC/C,MAAM;YACN,MAAM;YACN,OAAO;YACP,IAAI,EAAE,aAAa,IAAI,IAAI;YAC3B,SAAS;YACT,SAAS;YACT,IAAI;SACL,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAiD,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9J,CAAC;IAKK,AAAN,KAAK,CAAC,gBAAgB,CACV,MAAc,EAClB,SAAiB,EACA,SAAiB,EACrB,QAAgB,EACpB,IAAY,EACC,GAAG;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAiD,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACjK,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CACT,MAAc,EAClB,SAAiB,EACA,SAAiB,EAChC,EAAE,EAAE,EAAE,EACK,QAAgB,EACpB,IAAY,EACC,GAAG;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAiD,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5K,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACJ,MAAc,EAClB,SAAiB,EACA,SAAiB,EACrB,QAAgB,EACpB,KAAa,EACA,GAAG;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAiD,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACpK,CAAC;CACF,CAAA;AA9JY,0CAAe;AAuCpB;IAFL,IAAA,YAAM,GAAE;IACR,IAAA,YAAG,EAAC,iBAAiB,CAAC;IAEpB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,YAAG,GAAE,CAAA;;;;qDAMP;AAIK;IAFL,IAAA,YAAM,GAAE;IACR,IAAA,YAAG,EAAC,iBAAiB,CAAC;IAEpB,WAAA,IAAA,gBAAO,EAAC,QAAQ,CAAC,CAAA;IACjB,WAAA,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAA;IAClB,WAAA,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;4CASP;AAKK;IAFL,IAAA,YAAM,GAAE;IACR,IAAA,YAAG,EAAC,oBAAoB,CAAC;IACV,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+CAMzD;AAKK;IAFL,IAAA,YAAM,GAAE;IACR,IAAA,YAAG,EAAC,mBAAmB,CAAC;IACV,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;8CAMxD;AAKK;IAFL,IAAA,YAAM,GAAE;IACR,IAAA,YAAG,EAAC,0BAA0B,CAAC;IAE7B,WAAA,IAAA,mBAAM,GAAE,CAAA;IACR,WAAA,IAAA,WAAE,GAAE,CAAA;IACJ,WAAA,IAAA,gBAAO,EAAC,YAAY,CAAC,CAAA;IACrB,WAAA,IAAA,gBAAO,EAAC,QAAQ,CAAC,CAAA;IACjB,WAAA,IAAA,gBAAO,EAAC,SAAS,CAAC,CAAA;IAClB,WAAA,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAA;IACf,WAAA,IAAA,gBAAO,EAAC,kBAAkB,CAAC,CAAA;IAC3B,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;;;oDAa5B;AAKK;IAFL,IAAA,YAAM,GAAE;IACR,IAAA,YAAG,EAAC,6BAA6B,CAAC;IAEhC,WAAA,IAAA,mBAAM,GAAE,CAAA;IACR,WAAA,IAAA,WAAE,GAAE,CAAA;IACJ,WAAA,IAAA,gBAAO,EAAC,YAAY,CAAC,CAAA;IACrB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;;;uDAG5B;AAIK;IADL,IAAA,YAAG,EAAC,4BAA4B,CAAC;IAE/B,WAAA,IAAA,mBAAM,GAAE,CAAA;IACR,WAAA,IAAA,WAAE,GAAE,CAAA;IACJ,WAAA,IAAA,gBAAO,EAAC,YAAY,CAAC,CAAA;IACrB,WAAA,IAAA,UAAI,GAAE,CAAA;IACN,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;;;sDAG5B;AAIK;IADL,IAAA,eAAM,EAAC,WAAW,CAAC;IAEjB,WAAA,IAAA,mBAAM,GAAE,CAAA;IACR,WAAA,IAAA,WAAE,GAAE,CAAA;IACJ,WAAA,IAAA,gBAAO,EAAC,YAAY,CAAC,CAAA;IACrB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,aAAI,EAAC,OAAO,CAAC,CAAA;IACb,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;;;iDAG5B;0BA7JU,eAAe;IAD3B,IAAA,mBAAU,EAAC,OAAO,CAAC;qCAIoB,4BAAY,EAAmC,gCAAc;GAHxF,eAAe,CA8J3B"}
@@ -0,0 +1,16 @@
1
+ export type OAuthProviderFailureReason = 'callback_consumed' | 'invalid_callback' | 'upstream_failure';
2
+ export declare class OAuthProviderException extends Error {
3
+ readonly provider: string;
4
+ readonly reason: OAuthProviderFailureReason;
5
+ readonly status?: number;
6
+ readonly providerError?: string;
7
+ readonly providerErrorCode?: string;
8
+ constructor(provider: string, reason: OAuthProviderFailureReason, message: string, status?: number, providerError?: string, providerErrorCode?: string);
9
+ }
10
+ export declare class OAuthCallbackAlreadyProcessedError extends Error {
11
+ constructor();
12
+ }
13
+ export declare class OAuthCallbackInProgressError extends Error {
14
+ constructor();
15
+ }
16
+ //# sourceMappingURL=oauth.errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.errors.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth.errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAClC,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,0BAA0B;aAElC,MAAM,CAAC,EAAE,MAAM;aACf,aAAa,CAAC,EAAE,MAAM;aACtB,iBAAiB,CAAC,EAAE,MAAM;gBAL1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,0BAA0B,EAClD,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,MAAM;CAK7C;AAED,qBAAa,kCAAmC,SAAQ,KAAK;;CAK5D;AAED,qBAAa,4BAA6B,SAAQ,KAAK;;CAKtD"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OAuthCallbackInProgressError = exports.OAuthCallbackAlreadyProcessedError = exports.OAuthProviderException = void 0;
4
+ class OAuthProviderException extends Error {
5
+ constructor(provider, reason, message, status, providerError, providerErrorCode) {
6
+ super(message);
7
+ this.provider = provider;
8
+ this.reason = reason;
9
+ this.status = status;
10
+ this.providerError = providerError;
11
+ this.providerErrorCode = providerErrorCode;
12
+ this.name = 'OAuthProviderException';
13
+ }
14
+ }
15
+ exports.OAuthProviderException = OAuthProviderException;
16
+ class OAuthCallbackAlreadyProcessedError extends Error {
17
+ constructor() {
18
+ super('OAuth callback already processed.');
19
+ this.name = 'OAuthCallbackAlreadyProcessedError';
20
+ }
21
+ }
22
+ exports.OAuthCallbackAlreadyProcessedError = OAuthCallbackAlreadyProcessedError;
23
+ class OAuthCallbackInProgressError extends Error {
24
+ constructor() {
25
+ super('OAuth callback is already in progress.');
26
+ this.name = 'OAuthCallbackInProgressError';
27
+ }
28
+ }
29
+ exports.OAuthCallbackInProgressError = OAuthCallbackInProgressError;
30
+ //# sourceMappingURL=oauth.errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.errors.js","sourceRoot":"","sources":["../../src/oauth/oauth.errors.ts"],"names":[],"mappings":";;;AAKA,MAAa,sBAAuB,SAAQ,KAAK;IAC/C,YACkB,QAAgB,EAChB,MAAkC,EAClD,OAAe,EACC,MAAe,EACf,aAAsB,EACtB,iBAA0B;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAA4B;QAElC,WAAM,GAAN,MAAM,CAAS;QACf,kBAAa,GAAb,aAAa,CAAS;QACtB,sBAAiB,GAAjB,iBAAiB,CAAS;QAG1C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAZD,wDAYC;AAED,MAAa,kCAAmC,SAAQ,KAAK;IAC3D;QACE,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IACnD,CAAC;CACF;AALD,gFAKC;AAED,MAAa,4BAA6B,SAAQ,KAAK;IACrD;QACE,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AALD,oEAKC"}