@carlonicora/nestjs-neo4jsonapi 8.5.0 → 8.6.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.
Files changed (112) hide show
  1. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  2. package/dist/bootstrap/app.module.factory.js +1 -0
  3. package/dist/bootstrap/app.module.factory.js.map +1 -1
  4. package/dist/bootstrap/bootstrap.options.d.ts +14 -0
  5. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  6. package/dist/config/enums/queue.id.d.ts +1 -0
  7. package/dist/config/enums/queue.id.d.ts.map +1 -1
  8. package/dist/config/enums/queue.id.js +1 -0
  9. package/dist/config/enums/queue.id.js.map +1 -1
  10. package/dist/core/email/templates/en/accountDeleted.hbs +23 -0
  11. package/dist/core/email/templates/en/accountDeletionRequested.hbs +28 -0
  12. package/dist/foundations/account-deletion/account-deletion.config.d.ts +18 -0
  13. package/dist/foundations/account-deletion/account-deletion.config.d.ts.map +1 -0
  14. package/dist/foundations/account-deletion/account-deletion.config.js +6 -0
  15. package/dist/foundations/account-deletion/account-deletion.config.js.map +1 -0
  16. package/dist/foundations/account-deletion/account-deletion.constants.d.ts +36 -0
  17. package/dist/foundations/account-deletion/account-deletion.constants.d.ts.map +1 -0
  18. package/dist/foundations/account-deletion/account-deletion.constants.js +41 -0
  19. package/dist/foundations/account-deletion/account-deletion.constants.js.map +1 -0
  20. package/dist/foundations/account-deletion/account-deletion.module.d.ts +31 -0
  21. package/dist/foundations/account-deletion/account-deletion.module.d.ts.map +1 -0
  22. package/dist/foundations/account-deletion/account-deletion.module.js +98 -0
  23. package/dist/foundations/account-deletion/account-deletion.module.js.map +1 -0
  24. package/dist/foundations/account-deletion/controllers/account-deletion.controller.d.ts +28 -0
  25. package/dist/foundations/account-deletion/controllers/account-deletion.controller.d.ts.map +1 -0
  26. package/dist/foundations/account-deletion/controllers/account-deletion.controller.js +132 -0
  27. package/dist/foundations/account-deletion/controllers/account-deletion.controller.js.map +1 -0
  28. package/dist/foundations/account-deletion/cron/account-deletion.cron.d.ts +20 -0
  29. package/dist/foundations/account-deletion/cron/account-deletion.cron.d.ts.map +1 -0
  30. package/dist/foundations/account-deletion/cron/account-deletion.cron.js +78 -0
  31. package/dist/foundations/account-deletion/cron/account-deletion.cron.js.map +1 -0
  32. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.d.ts +14 -0
  33. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.d.ts.map +1 -0
  34. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.js +51 -0
  35. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.js.map +1 -0
  36. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.d.ts +14 -0
  37. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.d.ts.map +1 -0
  38. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.js +51 -0
  39. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.js.map +1 -0
  40. package/dist/foundations/account-deletion/entities/account-deletion.d.ts +20 -0
  41. package/dist/foundations/account-deletion/entities/account-deletion.d.ts.map +1 -0
  42. package/dist/foundations/account-deletion/entities/account-deletion.js +21 -0
  43. package/dist/foundations/account-deletion/entities/account-deletion.js.map +1 -0
  44. package/dist/foundations/account-deletion/entities/account-deletion.meta.d.ts +3 -0
  45. package/dist/foundations/account-deletion/entities/account-deletion.meta.d.ts.map +1 -0
  46. package/dist/foundations/account-deletion/entities/account-deletion.meta.js +10 -0
  47. package/dist/foundations/account-deletion/entities/account-deletion.meta.js.map +1 -0
  48. package/dist/foundations/account-deletion/index.d.ts +15 -0
  49. package/dist/foundations/account-deletion/index.d.ts.map +1 -0
  50. package/dist/foundations/account-deletion/index.js +31 -0
  51. package/dist/foundations/account-deletion/index.js.map +1 -0
  52. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.d.ts +29 -0
  53. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.d.ts.map +1 -0
  54. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.js +5 -0
  55. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.js.map +1 -0
  56. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.d.ts +12 -0
  57. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.d.ts.map +1 -0
  58. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.js +5 -0
  59. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.js.map +1 -0
  60. package/dist/foundations/account-deletion/processors/account-deletion.processor.d.ts +28 -0
  61. package/dist/foundations/account-deletion/processors/account-deletion.processor.d.ts.map +1 -0
  62. package/dist/foundations/account-deletion/processors/account-deletion.processor.js +97 -0
  63. package/dist/foundations/account-deletion/processors/account-deletion.processor.js.map +1 -0
  64. package/dist/foundations/account-deletion/repositories/account-deletion.repository.d.ts +85 -0
  65. package/dist/foundations/account-deletion/repositories/account-deletion.repository.d.ts.map +1 -0
  66. package/dist/foundations/account-deletion/repositories/account-deletion.repository.js +186 -0
  67. package/dist/foundations/account-deletion/repositories/account-deletion.repository.js.map +1 -0
  68. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.d.ts +77 -0
  69. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.d.ts.map +1 -0
  70. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.js +243 -0
  71. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.js.map +1 -0
  72. package/dist/foundations/account-deletion/services/account-deletion.service.d.ts +105 -0
  73. package/dist/foundations/account-deletion/services/account-deletion.service.d.ts.map +1 -0
  74. package/dist/foundations/account-deletion/services/account-deletion.service.js +300 -0
  75. package/dist/foundations/account-deletion/services/account-deletion.service.js.map +1 -0
  76. package/dist/foundations/account-deletion/services/account-wipe.service.d.ts +64 -0
  77. package/dist/foundations/account-deletion/services/account-wipe.service.d.ts.map +1 -0
  78. package/dist/foundations/account-deletion/services/account-wipe.service.js +134 -0
  79. package/dist/foundations/account-deletion/services/account-wipe.service.js.map +1 -0
  80. package/dist/foundations/account-deletion/services/full-company-deletion.service.d.ts +88 -0
  81. package/dist/foundations/account-deletion/services/full-company-deletion.service.d.ts.map +1 -0
  82. package/dist/foundations/account-deletion/services/full-company-deletion.service.js +184 -0
  83. package/dist/foundations/account-deletion/services/full-company-deletion.service.js.map +1 -0
  84. package/dist/foundations/account-deletion/utils/deliverable-email.d.ts +8 -0
  85. package/dist/foundations/account-deletion/utils/deliverable-email.d.ts.map +1 -0
  86. package/dist/foundations/account-deletion/utils/deliverable-email.js +20 -0
  87. package/dist/foundations/account-deletion/utils/deliverable-email.js.map +1 -0
  88. package/dist/foundations/auth/entities/auth.d.ts +1 -0
  89. package/dist/foundations/auth/entities/auth.d.ts.map +1 -1
  90. package/dist/foundations/auth/entities/auth.js +4 -0
  91. package/dist/foundations/auth/entities/auth.js.map +1 -1
  92. package/dist/foundations/auth/repositories/auth.repository.d.ts +2 -0
  93. package/dist/foundations/auth/repositories/auth.repository.d.ts.map +1 -1
  94. package/dist/foundations/auth/repositories/auth.repository.js +4 -0
  95. package/dist/foundations/auth/repositories/auth.repository.js.map +1 -1
  96. package/dist/foundations/auth/services/auth.service.d.ts +3 -1
  97. package/dist/foundations/auth/services/auth.service.d.ts.map +1 -1
  98. package/dist/foundations/auth/services/auth.service.js +11 -2
  99. package/dist/foundations/auth/services/auth.service.js.map +1 -1
  100. package/dist/foundations/foundations.modules.d.ts +7 -0
  101. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  102. package/dist/foundations/foundations.modules.js +5 -0
  103. package/dist/foundations/foundations.modules.js.map +1 -1
  104. package/dist/foundations/index.d.ts +1 -0
  105. package/dist/foundations/index.d.ts.map +1 -1
  106. package/dist/foundations/index.js +1 -0
  107. package/dist/foundations/index.js.map +1 -1
  108. package/dist/foundations/user/entities/user.d.ts +3 -0
  109. package/dist/foundations/user/entities/user.d.ts.map +1 -1
  110. package/dist/foundations/user/entities/user.js +4 -0
  111. package/dist/foundations/user/entities/user.js.map +1 -1
  112. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.factory.d.ts","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAwB7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAkKpE"}
1
+ {"version":3,"file":"app.module.factory.d.ts","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAwB7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAmKpE"}
@@ -166,6 +166,7 @@ function createAppModule(options) {
166
166
  handbook: options.handbook,
167
167
  howTo: options.howTo,
168
168
  blog: options.blog,
169
+ accountDeletion: options.accountDeletion,
169
170
  emailAutomation: options.emailAutomation,
170
171
  analytics: options.analytics,
171
172
  billing: options.billing,
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.factory.js","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,0CAkKC;AA7MD,2CAA6D;AAC7D,2CAA6D;AAC7D,uCAAyC;AACzC,yDAA2D;AAC3D,+CAAkD;AAClD,iDAAoD;AACpD,2CAA+C;AAC/C,mCAAsC;AACtC,2CAAuC;AACvC,6CAAgG;AAChG,2CAA6B;AAE7B,6DAAwD;AACxD,oFAA+E;AAC/E,sCAA8G;AAC9G,0EAAsE;AACtE,qEAAgE;AAEhE,qDAAiD;AACjD,4EAAuE;AACvE,kDAA8C;AAC9C,uFAAkF;AAClF,iEAAsE;AACtE,qEAAiE;AAGjE;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,eAAe,CAAC,OAAyB;;IAEvD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;QACtB,MAAM,CAAC,OAAO,CAAC,UAAyB;YACtC,6EAA6E;YAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;YAEvD,8EAA8E;YAC9E,8EAA8E;YAC9E,yEAAyE;YACzE,MAAM,gBAAgB,GAAI,EAAE,GAAG,mBAAU,EAAE,GAAG,SAAS,EAA0B,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC;YAE9G,+CAA+C;YAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,mBAAU,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,mBAAU,CAAC;YAEjG,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;oBACnB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YAE1C,OAAO;gBACL,MAAM,EAAE,oBAAkB;gBAC1B,OAAO,EAAE;oBACP,iCAAiC;oBACjC,kCAAkB,CAAC,OAAO,EAAE;oBAE5B,yCAAyC;oBACzC,+BAAa,CAAC,OAAO,CAAC,UAAU,CAAC;oBAEjC,8BAA8B;oBAC9B,qBAAY,CAAC,OAAO,CAAC;wBACnB,IAAI,EAAE,CAAC,YAAY,CAAC;wBACpB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI;qBACZ,CAAC;oBAEF,kDAAkD;oBAClD,2BAAe,CAAC,YAAY,CAAC;wBAC3B,OAAO,EAAE,CAAC,qBAAY,CAAC;wBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;wBACvB,UAAU,EAAE,CAAC,MAA0C,EAAE,EAAE;4BACzD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAA2B,WAAW,CAAC,CAAC;4BACpE,OAAO;gCACL,UAAU,EAAE;oCACV,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;oCAC/D,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE;iCAC7D;6BACF,CAAC;wBACJ,CAAC;qBACF,CAAC;oBAEF,0BAA0B;oBAC1B,sBAAS,CAAC,OAAO,CAAC;wBAChB,MAAM,EAAE,IAAI;wBACZ,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,EAAE;qBACpD,CAAC;oBAEF,gCAAgC;oBAChC,wBAAU,CAAC,OAAO,CAAC;wBACjB,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,IAAI,IAAI;wBACxD,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,IAAI;yBACZ;wBACD,SAAS,EAAE;4BACT,EAAE,GAAG,EAAE,2BAAa,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;4BACxD,IAAI,4BAAc,CAAC,CAAC,YAAY,CAAC,CAAC;4BAClC,oCAAsB;yBACvB;qBACF,CAAC;oBAEF,sDAAsD;oBACtD,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,yBAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAEhE,wCAAwC;oBACxC,wBAAU,CAAC,OAAO,CAAC;wBACjB,QAAQ;wBACR,eAAe,EAAE,OAAO,CAAC,eAAe;wBACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;qBACrC,CAAC;oBAEF,qFAAqF;oBACrF,mFAAmF;oBACnF,4FAA4F;oBAC5F,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ;wBAC/B,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,uCAAiB,CAAC,OAAO,CAAC;gCACxB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gCAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gCAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gCAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gCAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gCACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gCAClB,eAAe,EAAE,OAAO,CAAC,eAAe;gCACxC,SAAS,EAAE,OAAO,CAAC,SAAS;gCAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gCACxB,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE;6BAC5C,CAAC;yBACH,CAAC;oBAEN,yEAAyE;oBACzE,qEAAqE;oBACrE,6CAAoB;oBAEpB,kEAAkE;oBAClE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,6BAAY,CAAC,CAAC;oBAEnD,4DAA4D;oBAC5D,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAE5C,iDAAiD;oBACjD,8BAAa;oBAEb,4FAA4F;oBAC5F,GAAG,OAAO,CAAC,UAAU;oBAErB,6DAA6D;oBAC7D,gFAAgF;oBAChF,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI,mBAAU,CAAC,OAAO,CAAC,KAAK;wBACvD,CAAC,CAAC;4BACE,qBAAY,CAAC,YAAY,CAAC;gCACxB,OAAO,EAAE,CAAC,qBAAY,CAAC;gCACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gCACvB,UAAU,EAAE,CAAC,MAA0C,EAAE,EAAE;oCACzD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAyB,SAAS,CAAC,CAAC;oCAC9D,OAAO;wCACL,KAAK,EAAE,OAAO,CAAC,KAAK;wCACpB,OAAO,EAAE;4CACP,8BAAiB,CAAC,MAAM;4CACxB,8BAAiB,CAAC,aAAa;4CAC/B,8BAAiB,CAAC,gBAAgB;yCACnC;wCACD,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;qCAC/D,CAAC;gCACJ,CAAC;6BACF,CAAC;4BACF,8BAAa;yBACd;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR;gBACD,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE;oBACT,mEAAmE;oBACnE,2EAA2E;oBAC3E,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAS,EAAE,QAAQ,EAAE,6CAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrF,qEAAqE;oBACrE,0DAA0D;oBAC1D,EAAE,OAAO,EAAE,iCAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,EAAE;iBAClF;gBACD,OAAO,EAAE,CAAC,iCAAmB,CAAC;aAC/B,CAAC;QACJ,CAAC;KACF,CAAA;IA7JK,kBAAkB;QADvB,IAAA,eAAM,EAAC,EAAE,CAAC;OACL,kBAAkB,CA6JvB;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"app.module.factory.js","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { ReferralModuleConfig } from "../foundations/referral/interfaces/referra
8
8
  import { HandbookModuleConfig } from "../foundations/handbook/interfaces/handbook.config.interface";
9
9
  import { HowToModuleConfig } from "../foundations/how-to/interfaces/how-to.config.interface";
10
10
  import { BlogModuleConfig } from "../foundations/blog/interfaces/blog.config.interface";
11
+ import { AccountDeletionModuleConfig } from "../foundations/account-deletion/account-deletion.config";
11
12
  import { BillingModuleConfig } from "../foundations/billing/interfaces/billing.config.interface";
12
13
  import { EmailAutomationModuleConfig } from "../foundations/email-automation/interfaces/email-automation.config.interface";
13
14
  import { UserActivityModuleConfig } from "../foundations/user-activity/interfaces/user-activity.config.interface";
@@ -141,6 +142,19 @@ export interface BootstrapOptions {
141
142
  * ```
142
143
  */
143
144
  blog?: BlogModuleConfig;
145
+ /**
146
+ * Configuration for the account-deletion feature module.
147
+ * Forwarded to `FoundationsModule.forRoot({ accountDeletion })`. OPT-IN:
148
+ * omitted, nothing is mounted (no routes, cron, queue, processor or login
149
+ * hook) and `CompanyService.deleteImmediate` is unchanged. `{}` enables
150
+ * self-service deletion with the 7-day grace period.
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * accountDeletion: {}
155
+ * ```
156
+ */
157
+ accountDeletion?: AccountDeletionModuleConfig;
144
158
  /**
145
159
  * Configuration for the email-automation feature module.
146
160
  * Forwarded to `FoundationsModule.forRoot({ emailAutomation })`, exactly like
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Consumers should extend this enum with their own queue IDs
4
4
  */
5
5
  export declare enum QueueId {
6
+ ACCOUNT_DELETION = "account-deletion",
6
7
  ANALYTICS = "analytics",
7
8
  CHUNK = "chunk",
8
9
  COMPANY = "company",
@@ -1 +1 @@
1
- {"version":3,"file":"queue.id.d.ts","sourceRoot":"","sources":["../../../src/config/enums/queue.id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,OAAO;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,aAAa,iBAAiB;IAC9B,KAAK,UAAU;IACf,aAAa,kBAAkB;CAChC"}
1
+ {"version":3,"file":"queue.id.d.ts","sourceRoot":"","sources":["../../../src/config/enums/queue.id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,OAAO;IACjB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,aAAa,iBAAiB;IAC9B,KAAK,UAAU;IACf,aAAa,kBAAkB;CAChC"}
@@ -7,6 +7,7 @@ exports.QueueId = void 0;
7
7
  */
8
8
  var QueueId;
9
9
  (function (QueueId) {
10
+ QueueId["ACCOUNT_DELETION"] = "account-deletion";
10
11
  QueueId["ANALYTICS"] = "analytics";
11
12
  QueueId["CHUNK"] = "chunk";
12
13
  QueueId["COMPANY"] = "company";
@@ -1 +1 @@
1
- {"version":3,"file":"queue.id.js","sourceRoot":"","sources":["../../../src/config/enums/queue.id.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,OAaX;AAbD,WAAY,OAAO;IACjB,kCAAuB,CAAA;IACvB,0BAAe,CAAA;IACf,8BAAmB,CAAA;IACnB,gDAAqC,CAAA;IACrC,wDAA6C,CAAA;IAC7C,8CAAmC,CAAA;IACnC,wBAAa,CAAA;IACb,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,yCAA8B,CAAA;IAC9B,0BAAe,CAAA;IACf,0CAA+B,CAAA;AACjC,CAAC,EAbW,OAAO,uBAAP,OAAO,QAalB"}
1
+ {"version":3,"file":"queue.id.js","sourceRoot":"","sources":["../../../src/config/enums/queue.id.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,OAcX;AAdD,WAAY,OAAO;IACjB,gDAAqC,CAAA;IACrC,kCAAuB,CAAA;IACvB,0BAAe,CAAA;IACf,8BAAmB,CAAA;IACnB,gDAAqC,CAAA;IACrC,wDAA6C,CAAA;IAC7C,8CAAmC,CAAA;IACnC,wBAAa,CAAA;IACb,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,yCAA8B,CAAA;IAC9B,0BAAe,CAAA;IACf,0CAA+B,CAAA;AACjC,CAAC,EAdW,OAAO,uBAAP,OAAO,QAclB"}
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Your account has been deleted</title>
7
+ </head>
8
+ <body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">
9
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="max-width: 600px; margin: 0 auto;">
10
+ <tr><td>{{> header}}</td></tr>
11
+ <tr>
12
+ <td style="padding: 32px;">
13
+ <h1 style="color: #1a1a1a; font-size: 24px; font-weight: 600; margin: 0 0 24px 0; line-height: 1.3;">Your account has been deleted</h1>
14
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Hello{{#if name}} {{name}}{{/if}},</p>
15
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Your account and all your data have been deleted. This is the last email we send to this address.</p>
16
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Your invoices stay with Stripe, our payment provider, because the law requires it.</p>
17
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">You are always welcome to sign up again.</p>
18
+ </td>
19
+ </tr>
20
+ <tr><td>{{> footer}}</td></tr>
21
+ </table>
22
+ </body>
23
+ </html>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Your account will be deleted on {{deletionDate}}</title>
7
+ </head>
8
+ <body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">
9
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="max-width: 600px; margin: 0 auto;">
10
+ <tr><td>{{> header}}</td></tr>
11
+ <tr>
12
+ <td style="padding: 32px;">
13
+ <h1 style="color: #1a1a1a; font-size: 24px; font-weight: 600; margin: 0 0 24px 0; line-height: 1.3;">Your account will be deleted on {{deletionDate}}</h1>
14
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Hello{{#if name}} {{name}}{{/if}},</p>
15
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">You asked us to delete your account. On {{deletionDate}} we will delete your account and all your data. You have been logged out everywhere.</p>
16
+ {{#if subscriptionCancelled}}
17
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Your subscription was cancelled today.</p>
18
+ {{/if}}
19
+ <div style="text-align: center; margin: 32px 0;">
20
+ <a href="{{keepUrl}}" style="display: inline-block; background: #1a1a1a; color: #ffffff; padding: 14px 28px; text-decoration: none; border-radius: 4px; font-weight: 600; font-size: 16px;">Keep my account</a>
21
+ </div>
22
+ <p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Logging in also keeps it. If you did not ask for this, press the button and change your password.</p>
23
+ </td>
24
+ </tr>
25
+ <tr><td>{{> footer}}</td></tr>
26
+ </table>
27
+ </body>
28
+ </html>
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Configuration of the opt-in account-deletion feature.
3
+ *
4
+ * Passing `accountDeletion` (even `{}`) to `bootstrap()` /
5
+ * `FoundationsModule.forRoot()` mounts the feature; omitting it mounts nothing.
6
+ */
7
+ export interface AccountDeletionModuleConfig {
8
+ /**
9
+ * Days between the request and the wipe. Logging in or the undo link cancels
10
+ * the request inside this window.
11
+ *
12
+ * @default 7
13
+ */
14
+ graceDays?: number;
15
+ }
16
+ export declare const DEFAULT_ACCOUNT_DELETION_CONFIG: Required<AccountDeletionModuleConfig>;
17
+ export declare const ACCOUNT_DELETION_CONFIG: unique symbol;
18
+ //# sourceMappingURL=account-deletion.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.config.d.ts","sourceRoot":"","sources":["../../../src/foundations/account-deletion/account-deletion.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,2BAA2B,CAAoB,CAAC;AAEvG,eAAO,MAAM,uBAAuB,eAAoC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACCOUNT_DELETION_CONFIG = exports.DEFAULT_ACCOUNT_DELETION_CONFIG = void 0;
4
+ exports.DEFAULT_ACCOUNT_DELETION_CONFIG = { graceDays: 7 };
5
+ exports.ACCOUNT_DELETION_CONFIG = Symbol("ACCOUNT_DELETION_CONFIG");
6
+ //# sourceMappingURL=account-deletion.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.config.js","sourceRoot":"","sources":["../../../src/foundations/account-deletion/account-deletion.config.ts"],"names":[],"mappings":";;;AAgBa,QAAA,+BAA+B,GAA0C,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAE1F,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { JobsOptions } from "bullmq";
2
+ /** Job names on `QueueId.ACCOUNT_DELETION`. */
3
+ export declare const ACCOUNT_DELETION_JOB_NAMES: {
4
+ /** Wipe one user (data `AccountDeletionJobData`). Enqueued by the daily cron. */
5
+ readonly deleteAccount: "delete-account";
6
+ /** Wipe one company (data `CompanyWipeJobData`). Enqueued by `FullCompanyDeletionService.deleteCompany`. */
7
+ readonly deleteCompany: "delete-company";
8
+ /** The final "your account has been deleted" email (data `AccountDeletedEmailJobData`). */
9
+ readonly accountDeletedEmail: "account-deleted-email";
10
+ };
11
+ export interface AccountDeletionJobData {
12
+ userId: string;
13
+ }
14
+ export interface CompanyWipeJobData {
15
+ companyId: string;
16
+ }
17
+ export interface AccountDeletedEmailJobData {
18
+ to: string;
19
+ name: string;
20
+ locale: string;
21
+ }
22
+ /** Options of the `delete-account` and `delete-company` jobs. No payload lingers once a job completes. */
23
+ export declare const ACCOUNT_DELETION_JOB_OPTIONS: JobsOptions;
24
+ /**
25
+ * Options of the final email job. A completed email job is kept for three days
26
+ * so its job id still exists when a crashed wipe re-runs (the retry backoff or
27
+ * the next daily cron): BullMQ ignores an add whose job id exists, so the email
28
+ * goes out once. After three days the job, and the address in it, are removed.
29
+ */
30
+ export declare const ACCOUNT_DELETED_EMAIL_JOB_OPTIONS: JobsOptions;
31
+ /** Nodes deleted per transaction by every bulk delete of the wipe. */
32
+ export declare const WIPE_BATCH_SIZE = 1000;
33
+ export declare const accountDeletionJobId: (userId: string) => string;
34
+ export declare const companyWipeJobId: (companyId: string) => string;
35
+ export declare const accountDeletedEmailJobId: (userId: string) => string;
36
+ //# sourceMappingURL=account-deletion.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.constants.d.ts","sourceRoot":"","sources":["../../../src/foundations/account-deletion/account-deletion.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,+CAA+C;AAC/C,eAAO,MAAM,0BAA0B;IACrC,iFAAiF;;IAEjF,4GAA4G;;IAE5G,2FAA2F;;CAEnF,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,0GAA0G;AAC1G,eAAO,MAAM,4BAA4B,EAAE,WAK1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,EAAE,WAK/C,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,eAAe,OAAO,CAAC;AAGpC,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAsC,CAAC;AAC7F,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,KAAG,MAAyC,CAAC;AAC/F,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,MAA2C,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accountDeletedEmailJobId = exports.companyWipeJobId = exports.accountDeletionJobId = exports.WIPE_BATCH_SIZE = exports.ACCOUNT_DELETED_EMAIL_JOB_OPTIONS = exports.ACCOUNT_DELETION_JOB_OPTIONS = exports.ACCOUNT_DELETION_JOB_NAMES = void 0;
4
+ /** Job names on `QueueId.ACCOUNT_DELETION`. */
5
+ exports.ACCOUNT_DELETION_JOB_NAMES = {
6
+ /** Wipe one user (data `AccountDeletionJobData`). Enqueued by the daily cron. */
7
+ deleteAccount: "delete-account",
8
+ /** Wipe one company (data `CompanyWipeJobData`). Enqueued by `FullCompanyDeletionService.deleteCompany`. */
9
+ deleteCompany: "delete-company",
10
+ /** The final "your account has been deleted" email (data `AccountDeletedEmailJobData`). */
11
+ accountDeletedEmail: "account-deleted-email",
12
+ };
13
+ /** Options of the `delete-account` and `delete-company` jobs. No payload lingers once a job completes. */
14
+ exports.ACCOUNT_DELETION_JOB_OPTIONS = {
15
+ attempts: 3,
16
+ backoff: { type: "exponential", delay: 60_000 },
17
+ removeOnComplete: true,
18
+ removeOnFail: { count: 100 },
19
+ };
20
+ /**
21
+ * Options of the final email job. A completed email job is kept for three days
22
+ * so its job id still exists when a crashed wipe re-runs (the retry backoff or
23
+ * the next daily cron): BullMQ ignores an add whose job id exists, so the email
24
+ * goes out once. After three days the job, and the address in it, are removed.
25
+ */
26
+ exports.ACCOUNT_DELETED_EMAIL_JOB_OPTIONS = {
27
+ attempts: 3,
28
+ backoff: { type: "exponential", delay: 60_000 },
29
+ removeOnComplete: { age: 3 * 24 * 60 * 60 },
30
+ removeOnFail: { count: 100 },
31
+ };
32
+ /** Nodes deleted per transaction by every bulk delete of the wipe. */
33
+ exports.WIPE_BATCH_SIZE = 1000;
34
+ // BullMQ job ids must not contain ":".
35
+ const accountDeletionJobId = (userId) => `account-deletion-${userId}`;
36
+ exports.accountDeletionJobId = accountDeletionJobId;
37
+ const companyWipeJobId = (companyId) => `company-deletion-${companyId}`;
38
+ exports.companyWipeJobId = companyWipeJobId;
39
+ const accountDeletedEmailJobId = (userId) => `account-deleted-email-${userId}`;
40
+ exports.accountDeletedEmailJobId = accountDeletedEmailJobId;
41
+ //# sourceMappingURL=account-deletion.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.constants.js","sourceRoot":"","sources":["../../../src/foundations/account-deletion/account-deletion.constants.ts"],"names":[],"mappings":";;;AAEA,+CAA+C;AAClC,QAAA,0BAA0B,GAAG;IACxC,iFAAiF;IACjF,aAAa,EAAE,gBAAgB;IAC/B,4GAA4G;IAC5G,aAAa,EAAE,gBAAgB;IAC/B,2FAA2F;IAC3F,mBAAmB,EAAE,uBAAuB;CACpC,CAAC;AAgBX,0GAA0G;AAC7F,QAAA,4BAA4B,GAAgB;IACvD,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC7B,CAAC;AAEF;;;;;GAKG;AACU,QAAA,iCAAiC,GAAgB;IAC5D,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3C,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC7B,CAAC;AAEF,sEAAsE;AACzD,QAAA,eAAe,GAAG,IAAI,CAAC;AAEpC,uCAAuC;AAChC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC;AAAhF,QAAA,oBAAoB,wBAA4D;AACtF,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,oBAAoB,SAAS,EAAE,CAAC;AAAlF,QAAA,gBAAgB,oBAAkE;AACxF,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,yBAAyB,MAAM,EAAE,CAAC;AAAzF,QAAA,wBAAwB,4BAAiE"}
@@ -0,0 +1,31 @@
1
+ import { DynamicModule, OnModuleInit } from "@nestjs/common";
2
+ import { AccountDeletionModuleConfig } from "./account-deletion.config";
3
+ /**
4
+ * AccountDeletionModule — self-service account deletion with a grace period.
5
+ *
6
+ * OPT-IN (OD-3): mounted only when the app passes `accountDeletion` to
7
+ * `bootstrap()` / `FoundationsModule.forRoot()`. Absent, no route, cron, queue,
8
+ * processor or login hook exists and login behaves exactly as before.
9
+ *
10
+ * Global so `AuthService` (AuthModule) can inject the optional
11
+ * `ACCOUNT_DELETION_LOGIN_HOOK`, and an app can provide
12
+ * `{ provide: COMPANY_DELETION_HANDLER, useExisting: FullCompanyDeletionService }`.
13
+ * The app's own content plugs in through `ACCOUNT_DELETION_HANDLER`.
14
+ *
15
+ * `AccountDeletionDescriptor` is a synthetic resource with no Neo4j node: its
16
+ * serialiser is listed here and its model registered in `onModuleInit` (OD-2).
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * FoundationsModule.forRoot({ accountDeletion: {} }) // 7-day grace
21
+ * FoundationsModule.forRoot({ accountDeletion: { graceDays: 14 } })
22
+ * ```
23
+ */
24
+ export declare class AccountDeletionModule implements OnModuleInit {
25
+ /**
26
+ * @param config - merged over DEFAULT_ACCOUNT_DELETION_CONFIG
27
+ */
28
+ static forRoot(config?: AccountDeletionModuleConfig): DynamicModule;
29
+ onModuleInit(): void;
30
+ }
31
+ //# sourceMappingURL=account-deletion.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/account-deletion/account-deletion.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS7E,OAAO,EAEL,2BAA2B,EAE5B,MAAM,2BAA2B,CAAC;AAYnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAyBa,qBAAsB,YAAW,YAAY;IACxD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,aAAa;IAWnE,YAAY;CAGb"}
@@ -0,0 +1,98 @@
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 AccountDeletionModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AccountDeletionModule = void 0;
11
+ const bullmq_1 = require("@nestjs/bullmq");
12
+ const common_1 = require("@nestjs/common");
13
+ const conditional_service_decorator_1 = require("../../common/decorators/conditional-service.decorator");
14
+ const registry_1 = require("../../common/registries/registry");
15
+ const queue_id_1 = require("../../config/enums/queue.id");
16
+ const audit_module_1 = require("../audit/audit.module");
17
+ const s3_module_1 = require("../s3/s3.module");
18
+ const stripe_customer_module_1 = require("../stripe-customer/stripe-customer.module");
19
+ const stripe_subscription_module_1 = require("../stripe-subscription/stripe-subscription.module");
20
+ const response_language_module_1 = require("../user/response-language.module");
21
+ const account_deletion_config_1 = require("./account-deletion.config");
22
+ const account_deletion_controller_1 = require("./controllers/account-deletion.controller");
23
+ const account_deletion_cron_1 = require("./cron/account-deletion.cron");
24
+ const account_deletion_1 = require("./entities/account-deletion");
25
+ const account_deletion_login_hook_interface_1 = require("./interfaces/account-deletion-login-hook.interface");
26
+ const account_deletion_processor_1 = require("./processors/account-deletion.processor");
27
+ const account_deletion_repository_1 = require("./repositories/account-deletion.repository");
28
+ const account_deletion_wipe_repository_1 = require("./repositories/account-deletion.wipe.repository");
29
+ const account_deletion_service_1 = require("./services/account-deletion.service");
30
+ const account_wipe_service_1 = require("./services/account-wipe.service");
31
+ const full_company_deletion_service_1 = require("./services/full-company-deletion.service");
32
+ /**
33
+ * AccountDeletionModule — self-service account deletion with a grace period.
34
+ *
35
+ * OPT-IN (OD-3): mounted only when the app passes `accountDeletion` to
36
+ * `bootstrap()` / `FoundationsModule.forRoot()`. Absent, no route, cron, queue,
37
+ * processor or login hook exists and login behaves exactly as before.
38
+ *
39
+ * Global so `AuthService` (AuthModule) can inject the optional
40
+ * `ACCOUNT_DELETION_LOGIN_HOOK`, and an app can provide
41
+ * `{ provide: COMPANY_DELETION_HANDLER, useExisting: FullCompanyDeletionService }`.
42
+ * The app's own content plugs in through `ACCOUNT_DELETION_HANDLER`.
43
+ *
44
+ * `AccountDeletionDescriptor` is a synthetic resource with no Neo4j node: its
45
+ * serialiser is listed here and its model registered in `onModuleInit` (OD-2).
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * FoundationsModule.forRoot({ accountDeletion: {} }) // 7-day grace
50
+ * FoundationsModule.forRoot({ accountDeletion: { graceDays: 14 } })
51
+ * ```
52
+ */
53
+ let AccountDeletionModule = AccountDeletionModule_1 = class AccountDeletionModule {
54
+ /**
55
+ * @param config - merged over DEFAULT_ACCOUNT_DELETION_CONFIG
56
+ */
57
+ static forRoot(config) {
58
+ const merged = { ...account_deletion_config_1.DEFAULT_ACCOUNT_DELETION_CONFIG, ...config };
59
+ return {
60
+ module: AccountDeletionModule_1,
61
+ global: true,
62
+ providers: [{ provide: account_deletion_config_1.ACCOUNT_DELETION_CONFIG, useValue: merged }],
63
+ exports: [account_deletion_config_1.ACCOUNT_DELETION_CONFIG],
64
+ };
65
+ }
66
+ onModuleInit() {
67
+ registry_1.modelRegistry.register(account_deletion_1.AccountDeletionDescriptor.model);
68
+ }
69
+ };
70
+ exports.AccountDeletionModule = AccountDeletionModule;
71
+ exports.AccountDeletionModule = AccountDeletionModule = AccountDeletionModule_1 = __decorate([
72
+ (0, common_1.Global)(),
73
+ (0, common_1.Module)({
74
+ imports: [
75
+ // defaultJobOptions are left to each job (ACCOUNT_DELETION_JOB_OPTIONS), set by whoever enqueues.
76
+ bullmq_1.BullModule.registerQueue({ name: queue_id_1.QueueId.ACCOUNT_DELETION }),
77
+ audit_module_1.AuditModule,
78
+ s3_module_1.S3Module,
79
+ stripe_customer_module_1.StripeCustomerModule,
80
+ stripe_subscription_module_1.StripeSubscriptionModule,
81
+ response_language_module_1.ResponseLanguageModule,
82
+ ],
83
+ controllers: [account_deletion_controller_1.AccountDeletionController],
84
+ providers: [
85
+ account_deletion_1.AccountDeletionDescriptor.model.serialiser,
86
+ account_deletion_repository_1.AccountDeletionRepository,
87
+ account_deletion_service_1.AccountDeletionService,
88
+ { provide: account_deletion_login_hook_interface_1.ACCOUNT_DELETION_LOGIN_HOOK, useExisting: account_deletion_service_1.AccountDeletionService },
89
+ account_deletion_wipe_repository_1.AccountDeletionWipeRepository,
90
+ account_wipe_service_1.AccountWipeService,
91
+ full_company_deletion_service_1.FullCompanyDeletionService,
92
+ account_deletion_cron_1.AccountDeletionCron,
93
+ (0, conditional_service_decorator_1.createWorkerProvider)(account_deletion_processor_1.AccountDeletionProcessor),
94
+ ],
95
+ exports: [account_deletion_login_hook_interface_1.ACCOUNT_DELETION_LOGIN_HOOK, account_deletion_service_1.AccountDeletionService, account_deletion_repository_1.AccountDeletionRepository, full_company_deletion_service_1.FullCompanyDeletionService],
96
+ })
97
+ ], AccountDeletionModule);
98
+ //# sourceMappingURL=account-deletion.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.module.js","sourceRoot":"","sources":["../../../src/foundations/account-deletion/account-deletion.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA6E;AAC7E,yGAA6F;AAC7F,+DAAiE;AACjE,0DAAsD;AACtD,wDAAoD;AACpD,+CAA2C;AAC3C,sFAAiF;AACjF,kGAA6F;AAC7F,+EAA0E;AAC1E,uEAImC;AACnC,2FAAsF;AACtF,wEAAmE;AACnE,kEAAwE;AACxE,8GAAiG;AACjG,wFAAmF;AACnF,4FAAuF;AACvF,sGAAgG;AAChG,kFAA6E;AAC7E,0EAAqE;AACrE,4FAAsF;AAEtF;;;;;;;;;;;;;;;;;;;;GAoBG;AA0BI,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAoC;QACjD,MAAM,MAAM,GAA0C,EAAE,GAAG,yDAA+B,EAAE,GAAG,MAAM,EAAE,CAAC;QAExG,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iDAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnE,OAAO,EAAE,CAAC,iDAAuB,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,4CAAyB,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAlBY,sDAAqB;gCAArB,qBAAqB;IAzBjC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,kGAAkG;YAClG,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,kBAAO,CAAC,gBAAgB,EAAE,CAAC;YAC5D,0BAAW;YACX,oBAAQ;YACR,6CAAoB;YACpB,qDAAwB;YACxB,iDAAsB;SACvB;QACD,WAAW,EAAE,CAAC,uDAAyB,CAAC;QACxC,SAAS,EAAE;YACT,4CAAyB,CAAC,KAAK,CAAC,UAAU;YAC1C,uDAAyB;YACzB,iDAAsB;YACtB,EAAE,OAAO,EAAE,mEAA2B,EAAE,WAAW,EAAE,iDAAsB,EAAE;YAC7E,gEAA6B;YAC7B,yCAAkB;YAClB,0DAA0B;YAC1B,2CAAmB;YACnB,IAAA,oDAAoB,EAAC,qDAAwB,CAAC;SAC/C;QACD,OAAO,EAAE,CAAC,mEAA2B,EAAE,iDAAsB,EAAE,uDAAyB,EAAE,0DAA0B,CAAC;KACtH,CAAC;GACW,qBAAqB,CAkBjC"}
@@ -0,0 +1,28 @@
1
+ import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface";
2
+ import { CacheService } from "../../../core/cache/services/cache.service";
3
+ import { JsonApiSingleDocument } from "../../../core/jsonapi/interfaces/jsonapi.document.interface";
4
+ import { AuditService } from "../../audit/services/audit.service";
5
+ import { AccountDeletionKeepPostDTO } from "../dtos/account-deletion.keep.post.dto";
6
+ import { AccountDeletionPostDTO } from "../dtos/account-deletion.post.dto";
7
+ import { AccountDeletionService } from "../services/account-deletion.service";
8
+ /**
9
+ * Account deletion request routes (opt-in `accountDeletion` feature).
10
+ *
11
+ * Guards are set per route, not on the class: the public keep link has no
12
+ * session guard (so the permission gate never runs for it). Self-service
13
+ * routes use the Auth section (OD-5); the admin routes are administrator-only
14
+ * through `@Roles(SystemRoles.Administrator)` on `JwtAuthGuard` (OD-6).
15
+ * `/me` and `/keep` are declared before `/:userId` so they are never read as a user id.
16
+ */
17
+ export declare class AccountDeletionController {
18
+ private readonly accountDeletionService;
19
+ private readonly cacheService;
20
+ private readonly auditService;
21
+ constructor(accountDeletionService: AccountDeletionService, cacheService: CacheService, auditService: AuditService);
22
+ findMine(req: AuthenticatedRequest): Promise<JsonApiSingleDocument>;
23
+ keep(body: AccountDeletionKeepPostDTO): Promise<void>;
24
+ findByUser(req: AuthenticatedRequest, userId: string): Promise<JsonApiSingleDocument>;
25
+ request(req: AuthenticatedRequest, body: AccountDeletionPostDTO): Promise<JsonApiSingleDocument>;
26
+ requestForUser(req: AuthenticatedRequest, userId: string, body: AccountDeletionPostDTO): Promise<JsonApiSingleDocument>;
27
+ }
28
+ //# sourceMappingURL=account-deletion.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/account-deletion/controllers/account-deletion.controller.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E;;;;;;;;GAQG;AACH,qBAEa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAKvC,QAAQ,CAAQ,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAO1E,IAAI,CAAS,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D,UAAU,CAAQ,GAAG,EAAE,oBAAoB,EAAmB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAO7G,OAAO,CACJ,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE,sBAAsB,GACnC,OAAO,CAAC,qBAAqB,CAAC;IAgB3B,cAAc,CACX,GAAG,EAAE,oBAAoB,EACf,MAAM,EAAE,MAAM,EACvB,IAAI,EAAE,sBAAsB,GACnC,OAAO,CAAC,qBAAqB,CAAC;CAOlC"}
@@ -0,0 +1,132 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AccountDeletionController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const core_module_ids_1 = require("../../../common/constants/core-module.ids");
18
+ const system_roles_1 = require("../../../common/constants/system.roles");
19
+ const audit_decorator_1 = require("../../../common/decorators/audit.decorator");
20
+ const cache_invalidate_decorator_1 = require("../../../common/decorators/cache-invalidate.decorator");
21
+ const module_decorator_1 = require("../../../common/decorators/module.decorator");
22
+ const roles_decorator_1 = require("../../../common/decorators/roles.decorator");
23
+ const validate_id_decorator_1 = require("../../../common/decorators/validate-id.decorator");
24
+ const jwt_auth_guard_1 = require("../../../common/guards/jwt.auth.guard");
25
+ const cache_service_1 = require("../../../core/cache/services/cache.service");
26
+ const audit_service_1 = require("../../audit/services/audit.service");
27
+ const account_deletion_keep_post_dto_1 = require("../dtos/account-deletion.keep.post.dto");
28
+ const account_deletion_post_dto_1 = require("../dtos/account-deletion.post.dto");
29
+ const account_deletion_meta_1 = require("../entities/account-deletion.meta");
30
+ const account_deletion_service_1 = require("../services/account-deletion.service");
31
+ /**
32
+ * Account deletion request routes (opt-in `accountDeletion` feature).
33
+ *
34
+ * Guards are set per route, not on the class: the public keep link has no
35
+ * session guard (so the permission gate never runs for it). Self-service
36
+ * routes use the Auth section (OD-5); the admin routes are administrator-only
37
+ * through `@Roles(SystemRoles.Administrator)` on `JwtAuthGuard` (OD-6).
38
+ * `/me` and `/keep` are declared before `/:userId` so they are never read as a user id.
39
+ */
40
+ let AccountDeletionController = class AccountDeletionController {
41
+ constructor(accountDeletionService, cacheService, auditService) {
42
+ this.accountDeletionService = accountDeletionService;
43
+ this.cacheService = cacheService;
44
+ this.auditService = auditService;
45
+ }
46
+ async findMine(req) {
47
+ return this.accountDeletionService.findPreview({ userId: req.user.userId });
48
+ }
49
+ async keep(body) {
50
+ await this.accountDeletionService.keep({ token: body.data.attributes.token });
51
+ }
52
+ async findByUser(req, userId) {
53
+ return this.accountDeletionService.findPreview({ userId });
54
+ }
55
+ async request(req, body) {
56
+ // Self only on this route: an administrator acting on another user uses POST /:userId.
57
+ if (body.data.id !== req.user.userId)
58
+ throw new common_1.ForbiddenException("You can only delete your own account");
59
+ return this.accountDeletionService.request({
60
+ targetUserId: req.user.userId,
61
+ actingUserId: req.user.userId,
62
+ confirmation: body.data.attributes.confirmation,
63
+ });
64
+ }
65
+ async requestForUser(req, userId, body) {
66
+ return this.accountDeletionService.request({
67
+ targetUserId: userId,
68
+ actingUserId: req.user.userId,
69
+ confirmation: body.data.attributes.confirmation,
70
+ });
71
+ }
72
+ };
73
+ exports.AccountDeletionController = AccountDeletionController;
74
+ __decorate([
75
+ (0, common_1.Get)(`${account_deletion_meta_1.accountDeletionMeta.endpoint}/me`),
76
+ (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
77
+ __param(0, (0, common_1.Req)()),
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", [Object]),
80
+ __metadata("design:returntype", Promise)
81
+ ], AccountDeletionController.prototype, "findMine", null);
82
+ __decorate([
83
+ (0, common_1.Post)(`${account_deletion_meta_1.accountDeletionMeta.endpoint}/keep`),
84
+ (0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
85
+ (0, cache_invalidate_decorator_1.CacheInvalidate)(account_deletion_meta_1.accountDeletionMeta),
86
+ __param(0, (0, common_1.Body)()),
87
+ __metadata("design:type", Function),
88
+ __metadata("design:paramtypes", [account_deletion_keep_post_dto_1.AccountDeletionKeepPostDTO]),
89
+ __metadata("design:returntype", Promise)
90
+ ], AccountDeletionController.prototype, "keep", null);
91
+ __decorate([
92
+ (0, common_1.Get)(`${account_deletion_meta_1.accountDeletionMeta.endpoint}/:userId`),
93
+ (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
94
+ (0, roles_decorator_1.Roles)(system_roles_1.SystemRoles.Administrator),
95
+ (0, audit_decorator_1.Audit)(account_deletion_meta_1.accountDeletionMeta, "userId"),
96
+ __param(0, (0, common_1.Req)()),
97
+ __param(1, (0, common_1.Param)("userId")),
98
+ __metadata("design:type", Function),
99
+ __metadata("design:paramtypes", [Object, String]),
100
+ __metadata("design:returntype", Promise)
101
+ ], AccountDeletionController.prototype, "findByUser", null);
102
+ __decorate([
103
+ (0, common_1.Post)(account_deletion_meta_1.accountDeletionMeta.endpoint),
104
+ (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
105
+ (0, cache_invalidate_decorator_1.CacheInvalidate)(account_deletion_meta_1.accountDeletionMeta),
106
+ __param(0, (0, common_1.Req)()),
107
+ __param(1, (0, common_1.Body)()),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [Object, account_deletion_post_dto_1.AccountDeletionPostDTO]),
110
+ __metadata("design:returntype", Promise)
111
+ ], AccountDeletionController.prototype, "request", null);
112
+ __decorate([
113
+ (0, common_1.Post)(`${account_deletion_meta_1.accountDeletionMeta.endpoint}/:userId`),
114
+ (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
115
+ (0, roles_decorator_1.Roles)(system_roles_1.SystemRoles.Administrator),
116
+ (0, validate_id_decorator_1.ValidateId)("userId"),
117
+ (0, cache_invalidate_decorator_1.CacheInvalidate)(account_deletion_meta_1.accountDeletionMeta),
118
+ __param(0, (0, common_1.Req)()),
119
+ __param(1, (0, common_1.Param)("userId")),
120
+ __param(2, (0, common_1.Body)()),
121
+ __metadata("design:type", Function),
122
+ __metadata("design:paramtypes", [Object, String, account_deletion_post_dto_1.AccountDeletionPostDTO]),
123
+ __metadata("design:returntype", Promise)
124
+ ], AccountDeletionController.prototype, "requestForUser", null);
125
+ exports.AccountDeletionController = AccountDeletionController = __decorate([
126
+ (0, module_decorator_1.ModuleACL)({ module: core_module_ids_1.CoreModuleId.Auth }),
127
+ (0, common_1.Controller)(),
128
+ __metadata("design:paramtypes", [account_deletion_service_1.AccountDeletionService,
129
+ cache_service_1.CacheService,
130
+ audit_service_1.AuditService])
131
+ ], AccountDeletionController);
132
+ //# sourceMappingURL=account-deletion.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-deletion.controller.js","sourceRoot":"","sources":["../../../../src/foundations/account-deletion/controllers/account-deletion.controller.ts"],"names":[],"mappings":"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"}