@stamhoofd/models 2.93.0 → 2.95.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 (54) hide show
  1. package/dist/src/factories/RegistrationPeriodFactory.d.ts +1 -0
  2. package/dist/src/factories/RegistrationPeriodFactory.d.ts.map +1 -1
  3. package/dist/src/factories/RegistrationPeriodFactory.js +4 -0
  4. package/dist/src/factories/RegistrationPeriodFactory.js.map +1 -1
  5. package/dist/src/helpers/EmailBuilder.d.ts +27 -1
  6. package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
  7. package/dist/src/helpers/EmailBuilder.js +270 -25
  8. package/dist/src/helpers/EmailBuilder.js.map +1 -1
  9. package/dist/src/migrations/1756115317-email-deleted-at.sql +2 -0
  10. package/dist/src/migrations/1756293494-registration-period-next-period-id.sql +3 -0
  11. package/dist/src/migrations/1756293495-platform-next-period-id.sql +3 -0
  12. package/dist/src/migrations/1756387016-registration-period-custom-name.sql +2 -0
  13. package/dist/src/migrations/1756391212-email-recipients-duplicate.sql +3 -0
  14. package/dist/src/models/Email.d.ts +4 -2
  15. package/dist/src/models/Email.d.ts.map +1 -1
  16. package/dist/src/models/Email.js +160 -36
  17. package/dist/src/models/Email.js.map +1 -1
  18. package/dist/src/models/EmailRecipient.d.ts +7 -1
  19. package/dist/src/models/EmailRecipient.d.ts.map +1 -1
  20. package/dist/src/models/EmailRecipient.js +28 -2
  21. package/dist/src/models/EmailRecipient.js.map +1 -1
  22. package/dist/src/models/Event.d.ts.map +1 -1
  23. package/dist/src/models/Event.js +2 -0
  24. package/dist/src/models/Event.js.map +1 -1
  25. package/dist/src/models/Member.d.ts +1 -1
  26. package/dist/src/models/Member.d.ts.map +1 -1
  27. package/dist/src/models/Member.js +3 -3
  28. package/dist/src/models/Member.js.map +1 -1
  29. package/dist/src/models/Platform.d.ts +1 -0
  30. package/dist/src/models/Platform.d.ts.map +1 -1
  31. package/dist/src/models/Platform.js +5 -0
  32. package/dist/src/models/Platform.js.map +1 -1
  33. package/dist/src/models/RegistrationPeriod.d.ts +4 -1
  34. package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
  35. package/dist/src/models/RegistrationPeriod.js +32 -7
  36. package/dist/src/models/RegistrationPeriod.js.map +1 -1
  37. package/dist/src/models/User.d.ts.map +1 -1
  38. package/dist/src/models/User.js +5 -1
  39. package/dist/src/models/User.js.map +1 -1
  40. package/package.json +2 -2
  41. package/src/factories/RegistrationPeriodFactory.ts +4 -0
  42. package/src/helpers/EmailBuilder.ts +282 -34
  43. package/src/migrations/1756115317-email-deleted-at.sql +2 -0
  44. package/src/migrations/1756293494-registration-period-next-period-id.sql +3 -0
  45. package/src/migrations/1756293495-platform-next-period-id.sql +3 -0
  46. package/src/migrations/1756387016-registration-period-custom-name.sql +2 -0
  47. package/src/migrations/1756391212-email-recipients-duplicate.sql +3 -0
  48. package/src/models/Email.ts +184 -43
  49. package/src/models/EmailRecipient.ts +32 -3
  50. package/src/models/Event.ts +2 -0
  51. package/src/models/Member.ts +3 -3
  52. package/src/models/Platform.ts +4 -0
  53. package/src/models/RegistrationPeriod.ts +32 -7
  54. package/src/models/User.ts +7 -1
@@ -4,6 +4,7 @@ declare class Options {
4
4
  startDate?: Date;
5
5
  endDate?: Date;
6
6
  previousPeriodId?: string;
7
+ nextPeriodId?: string;
7
8
  locked?: boolean;
8
9
  organization?: Organization;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationPeriodFactory.d.ts","sourceRoot":"","sources":["../../../src/factories/RegistrationPeriodFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,cAAM,OAAO;IACT,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACzE,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAe9C"}
1
+ {"version":3,"file":"RegistrationPeriodFactory.d.ts","sourceRoot":"","sources":["../../../src/factories/RegistrationPeriodFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,cAAM,OAAO;IACT,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACzE,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAkB9C"}
@@ -8,6 +8,7 @@ class Options {
8
8
  startDate;
9
9
  endDate;
10
10
  previousPeriodId;
11
+ nextPeriodId;
11
12
  locked;
12
13
  organization;
13
14
  }
@@ -20,6 +21,9 @@ class RegistrationPeriodFactory extends simple_database_1.Factory {
20
21
  if (this.options.previousPeriodId) {
21
22
  period.previousPeriodId = this.options.previousPeriodId;
22
23
  }
24
+ if (this.options.nextPeriodId) {
25
+ period.nextPeriodId = this.options.nextPeriodId;
26
+ }
23
27
  period.settings = structures_1.RegistrationPeriodSettings.create({});
24
28
  period.locked = this.options.locked ?? false;
25
29
  await period.save();
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationPeriodFactory.js","sourceRoot":"","sources":["../../../src/factories/RegistrationPeriodFactory.ts"],"names":[],"mappings":";;;AAAA,iEAAsD;AACtD,sDAAmE;AAEnE,sCAA6D;AAE7D,MAAM,OAAO;IACT,SAAS,CAAQ;IACjB,OAAO,CAAQ;IACf,gBAAgB,CAAU;IAC1B,MAAM,CAAW;IACjB,YAAY,CAAgB;CAC/B;AAED,MAAa,yBAA0B,SAAQ,yBAAoC;IAC/E,KAAK,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,IAAI,2BAAkB,EAAE,CAAC;QAExC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAChC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC5D,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,uCAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QAE7C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAhBD,8DAgBC"}
1
+ {"version":3,"file":"RegistrationPeriodFactory.js","sourceRoot":"","sources":["../../../src/factories/RegistrationPeriodFactory.ts"],"names":[],"mappings":";;;AAAA,iEAAsD;AACtD,sDAAmE;AAEnE,sCAA6D;AAE7D,MAAM,OAAO;IACT,SAAS,CAAQ;IACjB,OAAO,CAAQ;IACf,gBAAgB,CAAU;IAC1B,YAAY,CAAU;IACtB,MAAM,CAAW;IACjB,YAAY,CAAgB;CAC/B;AAED,MAAa,yBAA0B,SAAQ,yBAAoC;IAC/E,KAAK,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,IAAI,2BAAkB,EAAE,CAAC;QAExC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAChC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5B,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACpD,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,uCAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QAE7C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAnBD,8DAmBC"}
@@ -1,5 +1,5 @@
1
1
  import { EmailBuilder, EmailInterfaceRecipient } from '@stamhoofd/email';
2
- import { EmailTemplateType, Platform as PlatformStruct, Recipient, Replacement } from '@stamhoofd/structures';
2
+ import { EmailRecipient, EmailTemplateType, Platform as PlatformStruct, Recipient, Replacement } from '@stamhoofd/structures';
3
3
  import { EmailTemplate, Group, Organization, Webshop } from '../models';
4
4
  export type EmailTemplateOptions = {
5
5
  type: EmailTemplateType;
@@ -48,10 +48,36 @@ export type EmailBuilderOptions = {
48
48
  * @param organization defines replacements and unsubsribe behaviour
49
49
  */
50
50
  export declare function getEmailBuilder(organization: Organization | null, email: EmailBuilderOptions): Promise<EmailBuilder>;
51
+ export declare function mergeReplacement(replacementA: Replacement, replacementB: Replacement): Replacement | false;
52
+ /**
53
+ * Remove duplicates
54
+ */
55
+ export declare function cleanReplacements(replacements: Replacement[]): Replacement[];
56
+ export declare function removeUnusedReplacements(html: string, replacements: Replacement[]): Replacement[];
57
+ export declare function mergeReplacementsIfEqual(replacementsA: Replacement[], replacementsB: Replacement[]): Replacement[] | false;
58
+ /**
59
+ * Filter replacements for display in the backend.
60
+ * @param options.forPreview if true, it will hide sensitive information in the preview that could leak information to admin users
61
+ */
62
+ export declare function stripSensitiveRecipientReplacements(recipient: Recipient | EmailRecipient, options: {
63
+ organization: Organization | null;
64
+ willFill?: boolean;
65
+ }): void;
66
+ /**
67
+ * Fill and hide replacements that don't make sense for web display to the user
68
+ */
69
+ export declare function stripRecipientReplacementsForWebDisplay(recipient: Recipient | EmailRecipient, options: {
70
+ organization: Organization | null;
71
+ }): void;
72
+ /**
73
+ * @param options.forPreview if true, it will hide sensitive information in the preview that could leak information to admin users
74
+ */
51
75
  export declare function fillRecipientReplacements(recipient: Recipient, options: {
52
76
  organization: Organization | null;
53
77
  platform?: PlatformStruct;
54
78
  from: EmailInterfaceRecipient | null;
55
79
  replyTo: EmailInterfaceRecipient | null;
80
+ forPreview?: boolean;
81
+ forceRefresh?: boolean;
56
82
  }): Promise<void>;
57
83
  //# sourceMappingURL=EmailBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailBuilder.d.ts","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailBuilder.d.ts","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,49 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.getEmailTemplate = getEmailTemplate;
4
37
  exports.canSendFromEmail = canSendFromEmail;
5
38
  exports.getDefaultEmailFrom = getDefaultEmailFrom;
6
39
  exports.sendEmailTemplate = sendEmailTemplate;
7
40
  exports.getEmailBuilder = getEmailBuilder;
41
+ exports.mergeReplacement = mergeReplacement;
42
+ exports.cleanReplacements = cleanReplacements;
43
+ exports.removeUnusedReplacements = removeUnusedReplacements;
44
+ exports.mergeReplacementsIfEqual = mergeReplacementsIfEqual;
45
+ exports.stripSensitiveRecipientReplacements = stripSensitiveRecipientReplacements;
46
+ exports.stripRecipientReplacementsForWebDisplay = stripRecipientReplacementsForWebDisplay;
8
47
  exports.fillRecipientReplacements = fillRecipientReplacements;
9
48
  const email_1 = require("@stamhoofd/email");
10
49
  const structures_1 = require("@stamhoofd/structures");
@@ -303,43 +342,249 @@ async function getEmailBuilder(organization, email) {
303
342
  };
304
343
  return builder;
305
344
  }
306
- async function fillRecipientReplacements(recipient, options) {
307
- if (!options.platform) {
308
- options.platform = await models_1.Platform.getSharedPrivateStruct();
345
+ function mergeReplacement(replacementA, replacementB) {
346
+ if (replacementA.token !== replacementB.token) {
347
+ return false;
309
348
  }
310
- const { organization, platform, from, replyTo } = options;
311
- recipient.replacements = recipient.replacements.slice();
312
- // Default signInUrl
313
- let signInUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/login?email=' + encodeURIComponent(recipient.email);
314
- const recipientUser = await models_1.User.getForAuthentication(organization?.id ?? null, recipient.email, { allowWithoutAccount: true });
315
- if (!recipientUser || !recipientUser.hasAccount()) {
316
- // We can create a special token
317
- signInUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/account-aanmaken?email=' + encodeURIComponent(recipient.email);
349
+ if (replacementA.token === 'greeting') {
350
+ // Just take the first one
351
+ return replacementA;
352
+ }
353
+ if (replacementA.token === 'unsubscribeUrl') {
354
+ return replacementA;
355
+ }
356
+ if (replacementA.token === 'signInUrl') {
357
+ return replacementA;
318
358
  }
359
+ if (replacementA.token === 'loginDetails') {
360
+ // loginDetails are always the same for the same user.
361
+ return replacementA;
362
+ }
363
+ return false;
364
+ }
365
+ /**
366
+ * Remove duplicates
367
+ */
368
+ function cleanReplacements(replacements) {
369
+ const foundIds = new Set();
370
+ const cleaned = [];
371
+ for (const r of replacements) {
372
+ if (foundIds.has(r.token)) {
373
+ continue;
374
+ }
375
+ foundIds.add(r.token);
376
+ cleaned.push(r);
377
+ }
378
+ return cleaned;
379
+ }
380
+ function removeUnusedReplacements(html, replacements) {
381
+ const cleaned = [];
382
+ for (const r of replacements) {
383
+ if (html.includes(`{{${r.token}}}`)) {
384
+ cleaned.push(r);
385
+ }
386
+ }
387
+ return cleaned;
388
+ }
389
+ function mergeReplacementsIfEqual(replacementsA, replacementsB) {
390
+ replacementsA = cleanReplacements(replacementsA);
391
+ replacementsB = cleanReplacements(replacementsB);
392
+ if (replacementsA.length !== replacementsB.length) {
393
+ return false;
394
+ }
395
+ const merged = [];
396
+ for (const rA of replacementsA) {
397
+ const rB = replacementsB.find(r => r.token === rA.token);
398
+ if (!rB) {
399
+ return false;
400
+ }
401
+ if (rA.html === rB.html && rA.value === rB.value) {
402
+ merged.push(rA);
403
+ continue;
404
+ }
405
+ const m = mergeReplacement(rA, rB);
406
+ if (!m) {
407
+ return false;
408
+ }
409
+ merged.push(m);
410
+ }
411
+ return merged;
412
+ }
413
+ /**
414
+ * Filter replacements for display in the backend.
415
+ * @param options.forPreview if true, it will hide sensitive information in the preview that could leak information to admin users
416
+ */
417
+ function stripSensitiveRecipientReplacements(recipient, options) {
418
+ const { organization } = options;
419
+ // Remove unsubscribeUrl and signInUrl if present
420
+ recipient.replacements = recipient.replacements.filter(r => r.token !== 'unsubscribeUrl' && r.token !== 'signInUrl');
421
+ if (options.willFill) {
422
+ // Also strip loginDetails, balanceTable and outstandingBalance
423
+ recipient.replacements = recipient.replacements.filter(r => r.token !== 'balanceTable' && r.token !== 'outstandingBalance' && r.token !== 'loginDetails');
424
+ return;
425
+ }
426
+ // Add dummy unsubscribeUrl
427
+ const dummyUnsubscribeUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/unsubscribe?token=example';
428
+ recipient.replacements.push(structures_1.Replacement.create({
429
+ token: 'unsubscribeUrl',
430
+ value: dummyUnsubscribeUrl,
431
+ }));
432
+ // dummy signInUrl
433
+ const dummySignInUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/login';
319
434
  recipient.replacements.push(structures_1.Replacement.create({
320
435
  token: 'signInUrl',
321
- value: signInUrl,
436
+ value: dummySignInUrl,
437
+ }));
438
+ // Strip security codes (because we list ALL security codes, also from members a viewer might not have access to)
439
+ recipient.replacements = recipient.replacements.map((r) => {
440
+ if (r.token !== 'loginDetails') {
441
+ return r;
442
+ }
443
+ return structures_1.Replacement.create({
444
+ ...r,
445
+ // Strip <span class="style-inline-code">(.*)</span> and replace content with XXXX-XXXX-XXXX-XXXX
446
+ html: r.html ? r.html.replace(/<span class="style-inline-code">.*?<\/span>/g, '<span class="style-inline-code">••••</span>') : r.html,
447
+ });
448
+ });
449
+ }
450
+ /**
451
+ * Fill and hide replacements that don't make sense for web display to the user
452
+ */
453
+ function stripRecipientReplacementsForWebDisplay(recipient, options) {
454
+ const { organization } = options;
455
+ // Remove unsubscribeUrl if present
456
+ recipient.replacements = recipient.replacements.filter(r => r.token !== 'unsubscribeUrl' && r.token !== 'loginDetails' && r.token !== 'greeting');
457
+ // Add dummy unsubscribeUrl
458
+ const dummyUnsubscribeUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard);
459
+ recipient.replacements.push(structures_1.Replacement.create({
460
+ token: 'unsubscribeUrl',
461
+ value: dummyUnsubscribeUrl,
322
462
  }));
323
463
  recipient.replacements.push(structures_1.Replacement.create({
324
464
  token: 'loginDetails',
325
465
  value: '',
326
- html: recipientUser && recipientUser.hasAccount() ? `<p class="description"><em>${$t('2fa762f2-c061-4c40-83cb-6ddc3e5f0f7a')} <strong>${utility_1.Formatter.escapeHtml(recipientUser.email)}</strong></em></p>` : `<p class="description"><em>${$t('c2af5148-15a7-44b1-aa3e-91cfc4c66013')} <strong>${utility_1.Formatter.escapeHtml(recipient.email)}</strong>${$t('f3aa8253-d88e-41c7-8c98-ed477806c533')}</em></p>`,
327
466
  }));
328
- // Load balance of this user
329
- // todo: only if detected it is used
330
- if (organization && recipientUser && !recipient.replacements.find(r => r.token === 'balanceTable')) {
331
- const balanceItemModels = await models_1.CachedBalance.balanceForObjects(organization.id, [recipientUser.id], structures_1.ReceivableBalanceType.user, true);
332
- const balanceItems = balanceItemModels.map(i => i.getStructure());
333
- // Get members
467
+ recipient.replacements.push(structures_1.Replacement.create({
468
+ token: 'greeting',
469
+ value: $t('Beste,'),
470
+ }));
471
+ }
472
+ /**
473
+ * @param options.forPreview if true, it will hide sensitive information in the preview that could leak information to admin users
474
+ */
475
+ async function fillRecipientReplacements(recipient, options) {
476
+ if (!options.platform) {
477
+ options.platform = await models_1.Platform.getSharedPrivateStruct();
478
+ }
479
+ const { organization, platform, from, replyTo } = options;
480
+ let recipientUser = null;
481
+ recipient.replacements = recipient.replacements.slice();
482
+ if (options.forPreview) {
483
+ stripSensitiveRecipientReplacements(recipient, options);
484
+ }
485
+ if (!recipient.email && !recipient.userId) {
486
+ const signInUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/login';
487
+ recipient.replacements.push(structures_1.Replacement.create({
488
+ token: 'signInUrl',
489
+ value: signInUrl,
490
+ }));
491
+ if (!recipient.replacements.find(r => r.token === 'loginDetails')) {
492
+ recipient.replacements.push(structures_1.Replacement.create({
493
+ token: 'loginDetails',
494
+ value: '',
495
+ }));
496
+ }
497
+ }
498
+ else {
499
+ // Default signInUrl
500
+ let signInUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/login?email=' + encodeURIComponent(recipient.email);
501
+ recipientUser = recipient.userId ? await models_1.User.select().where('id', recipient.userId).first(false) : await models_1.User.getForAuthentication(organization?.id ?? null, recipient.email, { allowWithoutAccount: true });
502
+ if (STAMHOOFD.userMode !== 'platform' && recipientUser && recipientUser.organizationId && recipientUser.organizationId !== (organization?.id ?? null)) {
503
+ console.warn('User organization does not match current organization, ignoring userId', recipient.userId, recipientUser.organizationId, organization?.id ?? null);
504
+ recipientUser = null;
505
+ }
506
+ if (!recipientUser || !recipientUser.hasAccount()) {
507
+ // We can create a special token
508
+ signInUrl = 'https://' + (organization && STAMHOOFD.userMode === 'organization' ? organization.getHost() : STAMHOOFD.domains.dashboard) + '/account-aanmaken?email=' + encodeURIComponent(recipient.email);
509
+ }
334
510
  recipient.replacements.push(structures_1.Replacement.create({
335
- token: 'outstandingBalance',
336
- value: utility_1.Formatter.price(balanceItems.reduce((sum, i) => sum + i.priceOpen, 0)),
337
- }), structures_1.Replacement.create({
338
- token: 'balanceTable',
339
- value: '',
340
- html: structures_1.BalanceItem.getDetailsHTMLTable(balanceItems),
511
+ token: 'signInUrl',
512
+ value: signInUrl,
341
513
  }));
342
514
  }
515
+ if (options.forceRefresh) {
516
+ // Remove loginDetails to force refresh
517
+ recipient.replacements = recipient.replacements.filter(r => r.token !== 'loginDetails');
518
+ }
519
+ if (!recipient.replacements.find(r => r.token === 'loginDetails')) {
520
+ const emailEscaped = `<strong>${utility_1.Formatter.escapeHtml(recipient.email)}</strong>`;
521
+ if (recipientUser) {
522
+ const suffixes = [];
523
+ if (STAMHOOFD.userMode === 'platform') {
524
+ const { Member } = await Promise.resolve().then(() => __importStar(require('../models/Member')));
525
+ const memberIds = await Member.getMemberIdsForUser(recipientUser);
526
+ const members = await Member.getByIDs(...memberIds);
527
+ if (members.length > 0) {
528
+ for (const member of members) {
529
+ suffixes.push($t('De beveiligingscode voor {firstName} is {securityCode}.', {
530
+ firstName: utility_1.Formatter.escapeHtml(member.firstName),
531
+ securityCode: `<span class="style-inline-code">${utility_1.Formatter.escapeHtml(options.forPreview ? '••••' : utility_1.Formatter.spaceString(member.details.securityCode ?? '', 4, '-'))}</span>`,
532
+ }));
533
+ }
534
+ }
535
+ else {
536
+ console.log('No member found for user', recipientUser.id);
537
+ }
538
+ }
539
+ const suffix = suffixes.length > 0 ? (' ' + suffixes.join(' ')) : '';
540
+ recipient.replacements.push(structures_1.Replacement.create({
541
+ token: 'loginDetails',
542
+ value: '',
543
+ html: recipientUser.hasAccount()
544
+ ? `<p class="description"><em>${$t('Je kan op het ledenportaal inloggen op {email}.', { email: emailEscaped })}${suffix}</em></p>`
545
+ : `<p class="description"><em>${$t('Je kan op het ledenportaal een nieuw account aanmaken op het e-mailadres {email}.', { email: emailEscaped })}${suffix}</em></p>`,
546
+ }));
547
+ }
548
+ else {
549
+ console.log('No user found for email', recipient.email);
550
+ recipient.replacements.push(structures_1.Replacement.create({
551
+ token: 'loginDetails',
552
+ value: '',
553
+ html: `<p class="description"><em>${$t('Je kan op het ledenportaal een nieuw account aanmaken op het e-mailadres {email}', { email: emailEscaped })}</em></p>`,
554
+ }));
555
+ }
556
+ }
557
+ if (options.forceRefresh) {
558
+ // Remove loginDetails to force refresh
559
+ recipient.replacements = recipient.replacements.filter(r => r.token !== 'balanceTable' && r.token !== 'outstandingBalance');
560
+ }
561
+ // Load balance of this user
562
+ // todo: only if detected it is used
563
+ if (!recipient.replacements.find(r => r.token === 'balanceTable')) {
564
+ if (organization && recipientUser) {
565
+ const balanceItemModels = await models_1.CachedBalance.balanceForObjects(organization.id, [recipientUser.id], structures_1.ReceivableBalanceType.user, true);
566
+ const balanceItems = balanceItemModels.map(i => i.getStructure());
567
+ // Get members
568
+ recipient.replacements.push(structures_1.Replacement.create({
569
+ token: 'outstandingBalance',
570
+ value: utility_1.Formatter.price(balanceItems.reduce((sum, i) => sum + i.priceOpen, 0)),
571
+ }), structures_1.Replacement.create({
572
+ token: 'balanceTable',
573
+ value: '',
574
+ html: structures_1.BalanceItem.getDetailsHTMLTable(balanceItems),
575
+ }));
576
+ }
577
+ else {
578
+ recipient.replacements.push(structures_1.Replacement.create({
579
+ token: 'outstandingBalance',
580
+ value: utility_1.Formatter.price(0),
581
+ }), structures_1.Replacement.create({
582
+ token: 'balanceTable',
583
+ value: '',
584
+ html: structures_1.BalanceItem.getDetailsHTMLTable([]),
585
+ }));
586
+ }
587
+ }
343
588
  if (from || replyTo) {
344
589
  const fromAddress = replyTo?.email ?? from.email;
345
590
  if (fromAddress) {
@@ -1 +1 @@
1
- {"version":3,"file":"EmailBuilder.js","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailBuilder.js","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `emails`
2
+ ADD COLUMN `deletedAt` datetime NULL AFTER `updatedAt`;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `registration_periods`
2
+ ADD COLUMN `nextPeriodId` varchar(36) NULL AFTER `previousPeriodId`,
3
+ ADD FOREIGN KEY (`nextPeriodId`) REFERENCES `registration_periods` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `platform`
2
+ ADD COLUMN `nextPeriodId` varchar(36) NULL AFTER `previousPeriodId`,
3
+ ADD FOREIGN KEY (`nextPeriodId`) REFERENCES `registration_periods` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `registration_periods`
2
+ ADD COLUMN `customName` varchar(200) NULL AFTER `nextPeriodId`;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `email_recipients`
2
+ ADD COLUMN `duplicateOfRecipientId` varchar(36) NULL,
3
+ ADD FOREIGN KEY (`duplicateOfRecipientId`) REFERENCES `email_recipients` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -1,10 +1,10 @@
1
- import { EmailAttachment, EmailPreview, EmailRecipientFilter, EmailRecipientFilterType, EmailRecipientsStatus, EmailRecipient as EmailRecipientStruct, EmailStatus, Email as EmailStruct, EmailTemplateType, LimitedFilteredRequest, PaginatedResponse, StamhoofdFilter } from '@stamhoofd/structures';
1
+ import { EmailAttachment, EmailPreview, EmailRecipientFilter, EmailRecipientFilterType, EmailRecipientsStatus, EmailRecipient as EmailRecipientStruct, EmailStatus, Email as EmailStruct, EmailTemplateType, EmailWithRecipients, LimitedFilteredRequest, PaginatedResponse, StamhoofdFilter } from '@stamhoofd/structures';
2
2
  import { SimpleErrors } from '@simonbackx/simple-errors';
3
3
  import { EmailInterfaceRecipient } from '@stamhoofd/email';
4
4
  import { QueueHandlerOptions } from '@stamhoofd/queues';
5
5
  import { QueryableModel } from '@stamhoofd/sql';
6
6
  import { Organization } from './Organization';
7
- export declare function isSoftEmailRecipientError(error: SimpleErrors): boolean;
7
+ import { User } from './User';
8
8
  export declare class Email extends QueryableModel {
9
9
  static table: string;
10
10
  id: string;
@@ -80,6 +80,7 @@ export declare class Email extends QueryableModel {
80
80
  */
81
81
  attachments: EmailAttachment[];
82
82
  sentAt: Date | null;
83
+ deletedAt: Date | null;
83
84
  createdAt: Date;
84
85
  updatedAt: Date;
85
86
  static recipientLoaders: Map<EmailRecipientFilterType, {
@@ -112,5 +113,6 @@ export declare class Email extends QueryableModel {
112
113
  buildExampleRecipient(): Promise<void>;
113
114
  getStructure(): EmailStruct;
114
115
  getPreviewStructure(): Promise<EmailPreview>;
116
+ getStructureForUser(user: User, memberIds: string[]): Promise<EmailWithRecipients>;
115
117
  }
116
118
  //# sourceMappingURL=Email.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../../src/models/Email.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../../src/models/Email.ts"],"names":[],"mappings":"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"}