@stamhoofd/structures 2.59.0 → 2.61.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 (237) hide show
  1. package/dist/index.d.ts +9 -7
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +10 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/AuditLog.d.ts +13 -49
  6. package/dist/src/AuditLog.d.ts.map +1 -1
  7. package/dist/src/AuditLog.js +197 -286
  8. package/dist/src/AuditLog.js.map +1 -1
  9. package/dist/src/AuditLogRenderer.d.ts.map +1 -1
  10. package/dist/src/AuditLogRenderer.js +13 -3
  11. package/dist/src/AuditLogRenderer.js.map +1 -1
  12. package/dist/src/AuditLogReplacement.d.ts +67 -0
  13. package/dist/src/AuditLogReplacement.d.ts.map +1 -0
  14. package/dist/src/AuditLogReplacement.js +228 -0
  15. package/dist/src/AuditLogReplacement.js.map +1 -0
  16. package/dist/src/Document.d.ts +2 -0
  17. package/dist/src/Document.d.ts.map +1 -1
  18. package/dist/src/Document.js +7 -0
  19. package/dist/src/Document.js.map +1 -1
  20. package/dist/src/Group.d.ts +2 -2
  21. package/dist/src/Group.d.ts.map +1 -1
  22. package/dist/src/Group.js +16 -3
  23. package/dist/src/Group.js.map +1 -1
  24. package/dist/src/GroupCategory.d.ts +1 -1
  25. package/dist/src/GroupCategory.d.ts.map +1 -1
  26. package/dist/src/GroupCategory.js +1 -1
  27. package/dist/src/GroupCategory.js.map +1 -1
  28. package/dist/src/OrganizationEmail.d.ts +1 -1
  29. package/dist/src/OrganizationEmail.d.ts.map +1 -1
  30. package/dist/src/OrganizationEmail.js +1 -1
  31. package/dist/src/OrganizationEmail.js.map +1 -1
  32. package/dist/src/PaymentConfiguration.d.ts +2 -2
  33. package/dist/src/PaymentConfiguration.d.ts.map +1 -1
  34. package/dist/src/PaymentConfiguration.js +2 -2
  35. package/dist/src/PaymentConfiguration.js.map +1 -1
  36. package/dist/src/PermissionRole.d.ts +1 -1
  37. package/dist/src/PermissionRole.d.ts.map +1 -1
  38. package/dist/src/PermissionRole.js +1 -1
  39. package/dist/src/PermissionRole.js.map +1 -1
  40. package/dist/src/RegistrationPeriod.d.ts +2 -2
  41. package/dist/src/RegistrationPeriod.d.ts.map +1 -1
  42. package/dist/src/RegistrationPeriod.js +2 -2
  43. package/dist/src/RegistrationPeriod.js.map +1 -1
  44. package/dist/src/RegistrationPeriodBase.d.ts +1 -1
  45. package/dist/src/RegistrationPeriodBase.d.ts.map +1 -1
  46. package/dist/src/RegistrationPeriodBase.js +1 -1
  47. package/dist/src/RegistrationPeriodBase.js.map +1 -1
  48. package/dist/src/ResourcePermissions.d.ts +1 -1
  49. package/dist/src/ResourcePermissions.d.ts.map +1 -1
  50. package/dist/src/ResourcePermissions.js +1 -1
  51. package/dist/src/ResourcePermissions.js.map +1 -1
  52. package/dist/src/RichText.d.ts +1 -0
  53. package/dist/src/RichText.d.ts.map +1 -1
  54. package/dist/src/RichText.js +3 -0
  55. package/dist/src/RichText.js.map +1 -1
  56. package/dist/src/SetupStepReview.d.ts +1 -1
  57. package/dist/src/SetupStepReview.d.ts.map +1 -1
  58. package/dist/src/SetupStepReview.js +1 -1
  59. package/dist/src/SetupStepReview.js.map +1 -1
  60. package/dist/src/SetupStepType.d.ts +1 -1
  61. package/dist/src/SetupSteps.d.ts +1 -0
  62. package/dist/src/SetupSteps.d.ts.map +1 -1
  63. package/dist/src/SetupSteps.js +21 -5
  64. package/dist/src/SetupSteps.js.map +1 -1
  65. package/dist/src/Version.d.ts +1 -1
  66. package/dist/src/Version.js +1 -1
  67. package/dist/src/addresses/Address.d.ts +3 -1
  68. package/dist/src/addresses/Address.d.ts.map +1 -1
  69. package/dist/src/addresses/Address.js +1 -1
  70. package/dist/src/addresses/Address.js.map +1 -1
  71. package/dist/src/circular-dependencies/AuditLogReplacementDependencies.d.ts +2 -0
  72. package/dist/src/circular-dependencies/AuditLogReplacementDependencies.d.ts.map +1 -0
  73. package/dist/src/circular-dependencies/AuditLogReplacementDependencies.js +32 -0
  74. package/dist/src/circular-dependencies/AuditLogReplacementDependencies.js.map +1 -0
  75. package/dist/src/data/audit-log-words.d.ts +10 -1
  76. package/dist/src/data/audit-log-words.d.ts.map +1 -1
  77. package/dist/src/data/audit-log-words.js +10 -1
  78. package/dist/src/data/audit-log-words.js.map +1 -1
  79. package/dist/src/files/Image.d.ts +2 -0
  80. package/dist/src/files/Image.d.ts.map +1 -1
  81. package/dist/src/files/Image.js +9 -0
  82. package/dist/src/files/Image.js.map +1 -1
  83. package/dist/src/filters/PropertyFilter.d.ts +2 -0
  84. package/dist/src/filters/PropertyFilter.d.ts.map +1 -1
  85. package/dist/src/filters/PropertyFilter.js +19 -0
  86. package/dist/src/filters/PropertyFilter.js.map +1 -1
  87. package/dist/src/helpers/uuidToName.d.ts +2 -0
  88. package/dist/src/helpers/uuidToName.d.ts.map +1 -0
  89. package/dist/src/helpers/uuidToName.js +27 -0
  90. package/dist/src/helpers/uuidToName.js.map +1 -0
  91. package/dist/src/members/MemberDetails.d.ts +4 -2
  92. package/dist/src/members/MemberDetails.d.ts.map +1 -1
  93. package/dist/src/members/MemberDetails.js +5 -1
  94. package/dist/src/members/MemberDetails.js.map +1 -1
  95. package/dist/src/members/MemberResponsibilityRecord.d.ts +2 -0
  96. package/dist/src/members/MemberResponsibilityRecord.d.ts.map +1 -1
  97. package/dist/src/members/MemberResponsibilityRecord.js +4 -0
  98. package/dist/src/members/MemberResponsibilityRecord.js.map +1 -1
  99. package/dist/src/members/Parent.d.ts +1 -1
  100. package/dist/src/members/Parent.d.ts.map +1 -1
  101. package/dist/src/members/Parent.js +1 -1
  102. package/dist/src/members/Parent.js.map +1 -1
  103. package/dist/src/members/Registration.d.ts +1 -0
  104. package/dist/src/members/Registration.d.ts.map +1 -1
  105. package/dist/src/members/Registration.js +4 -0
  106. package/dist/src/members/Registration.js.map +1 -1
  107. package/dist/src/members/records/RecordAnswer.d.ts +4 -2
  108. package/dist/src/members/records/RecordAnswer.d.ts.map +1 -1
  109. package/dist/src/members/records/RecordAnswer.js +8 -2
  110. package/dist/src/members/records/RecordAnswer.js.map +1 -1
  111. package/dist/src/members/records/RecordSettings.d.ts +1 -1
  112. package/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  113. package/dist/src/members/records/RecordSettings.js +1 -1
  114. package/dist/src/members/records/RecordSettings.js.map +1 -1
  115. package/dist/src/webshops/CartItem.d.ts +2 -2
  116. package/dist/src/webshops/CartItem.d.ts.map +1 -1
  117. package/dist/src/webshops/CartItem.js +2 -2
  118. package/dist/src/webshops/CartItem.js.map +1 -1
  119. package/esm/dist/index.d.ts +9 -7
  120. package/esm/dist/index.d.ts.map +1 -1
  121. package/esm/dist/index.js +10 -7
  122. package/esm/dist/index.js.map +1 -1
  123. package/esm/dist/src/AuditLog.d.ts +13 -49
  124. package/esm/dist/src/AuditLog.d.ts.map +1 -1
  125. package/esm/dist/src/AuditLog.js +193 -278
  126. package/esm/dist/src/AuditLog.js.map +1 -1
  127. package/esm/dist/src/AuditLogRenderer.d.ts.map +1 -1
  128. package/esm/dist/src/AuditLogRenderer.js +13 -3
  129. package/esm/dist/src/AuditLogRenderer.js.map +1 -1
  130. package/esm/dist/src/AuditLogReplacement.d.ts +67 -0
  131. package/esm/dist/src/AuditLogReplacement.d.ts.map +1 -0
  132. package/esm/dist/src/AuditLogReplacement.js +223 -0
  133. package/esm/dist/src/AuditLogReplacement.js.map +1 -0
  134. package/esm/dist/src/Document.d.ts +2 -0
  135. package/esm/dist/src/Document.d.ts.map +1 -1
  136. package/esm/dist/src/Document.js +7 -0
  137. package/esm/dist/src/Document.js.map +1 -1
  138. package/esm/dist/src/Group.d.ts +2 -2
  139. package/esm/dist/src/Group.d.ts.map +1 -1
  140. package/esm/dist/src/Group.js +16 -3
  141. package/esm/dist/src/Group.js.map +1 -1
  142. package/esm/dist/src/GroupCategory.d.ts +1 -1
  143. package/esm/dist/src/GroupCategory.d.ts.map +1 -1
  144. package/esm/dist/src/GroupCategory.js +1 -1
  145. package/esm/dist/src/GroupCategory.js.map +1 -1
  146. package/esm/dist/src/OrganizationEmail.d.ts +1 -1
  147. package/esm/dist/src/OrganizationEmail.d.ts.map +1 -1
  148. package/esm/dist/src/OrganizationEmail.js +1 -1
  149. package/esm/dist/src/OrganizationEmail.js.map +1 -1
  150. package/esm/dist/src/PaymentConfiguration.d.ts +2 -2
  151. package/esm/dist/src/PaymentConfiguration.d.ts.map +1 -1
  152. package/esm/dist/src/PaymentConfiguration.js +2 -2
  153. package/esm/dist/src/PaymentConfiguration.js.map +1 -1
  154. package/esm/dist/src/PermissionRole.d.ts +1 -1
  155. package/esm/dist/src/PermissionRole.d.ts.map +1 -1
  156. package/esm/dist/src/PermissionRole.js +1 -1
  157. package/esm/dist/src/PermissionRole.js.map +1 -1
  158. package/esm/dist/src/RegistrationPeriod.d.ts +2 -2
  159. package/esm/dist/src/RegistrationPeriod.d.ts.map +1 -1
  160. package/esm/dist/src/RegistrationPeriod.js +2 -2
  161. package/esm/dist/src/RegistrationPeriod.js.map +1 -1
  162. package/esm/dist/src/RegistrationPeriodBase.d.ts +1 -1
  163. package/esm/dist/src/RegistrationPeriodBase.d.ts.map +1 -1
  164. package/esm/dist/src/RegistrationPeriodBase.js +1 -1
  165. package/esm/dist/src/RegistrationPeriodBase.js.map +1 -1
  166. package/esm/dist/src/ResourcePermissions.d.ts +1 -1
  167. package/esm/dist/src/ResourcePermissions.d.ts.map +1 -1
  168. package/esm/dist/src/ResourcePermissions.js +1 -1
  169. package/esm/dist/src/ResourcePermissions.js.map +1 -1
  170. package/esm/dist/src/RichText.d.ts +1 -0
  171. package/esm/dist/src/RichText.d.ts.map +1 -1
  172. package/esm/dist/src/RichText.js +3 -0
  173. package/esm/dist/src/RichText.js.map +1 -1
  174. package/esm/dist/src/SetupStepReview.d.ts +1 -1
  175. package/esm/dist/src/SetupStepReview.d.ts.map +1 -1
  176. package/esm/dist/src/SetupStepReview.js +1 -1
  177. package/esm/dist/src/SetupStepReview.js.map +1 -1
  178. package/esm/dist/src/SetupStepType.d.ts +1 -1
  179. package/esm/dist/src/SetupSteps.d.ts +1 -0
  180. package/esm/dist/src/SetupSteps.d.ts.map +1 -1
  181. package/esm/dist/src/SetupSteps.js +21 -5
  182. package/esm/dist/src/SetupSteps.js.map +1 -1
  183. package/esm/dist/src/Version.d.ts +1 -1
  184. package/esm/dist/src/Version.js +1 -1
  185. package/esm/dist/src/addresses/Address.d.ts +3 -1
  186. package/esm/dist/src/addresses/Address.d.ts.map +1 -1
  187. package/esm/dist/src/addresses/Address.js +1 -1
  188. package/esm/dist/src/addresses/Address.js.map +1 -1
  189. package/esm/dist/src/circular-dependencies/AuditLogReplacementDependencies.d.ts +2 -0
  190. package/esm/dist/src/circular-dependencies/AuditLogReplacementDependencies.d.ts.map +1 -0
  191. package/esm/dist/src/circular-dependencies/AuditLogReplacementDependencies.js +30 -0
  192. package/esm/dist/src/circular-dependencies/AuditLogReplacementDependencies.js.map +1 -0
  193. package/esm/dist/src/data/audit-log-words.d.ts +10 -1
  194. package/esm/dist/src/data/audit-log-words.d.ts.map +1 -1
  195. package/esm/dist/src/data/audit-log-words.js +10 -1
  196. package/esm/dist/src/data/audit-log-words.js.map +1 -1
  197. package/esm/dist/src/files/Image.d.ts +2 -0
  198. package/esm/dist/src/files/Image.d.ts.map +1 -1
  199. package/esm/dist/src/files/Image.js +9 -0
  200. package/esm/dist/src/files/Image.js.map +1 -1
  201. package/esm/dist/src/filters/PropertyFilter.d.ts +2 -0
  202. package/esm/dist/src/filters/PropertyFilter.d.ts.map +1 -1
  203. package/esm/dist/src/filters/PropertyFilter.js +19 -0
  204. package/esm/dist/src/filters/PropertyFilter.js.map +1 -1
  205. package/esm/dist/src/helpers/uuidToName.d.ts +2 -0
  206. package/esm/dist/src/helpers/uuidToName.d.ts.map +1 -0
  207. package/esm/dist/src/helpers/uuidToName.js +24 -0
  208. package/esm/dist/src/helpers/uuidToName.js.map +1 -0
  209. package/esm/dist/src/members/MemberDetails.d.ts +4 -2
  210. package/esm/dist/src/members/MemberDetails.d.ts.map +1 -1
  211. package/esm/dist/src/members/MemberDetails.js +5 -1
  212. package/esm/dist/src/members/MemberDetails.js.map +1 -1
  213. package/esm/dist/src/members/MemberResponsibilityRecord.d.ts +2 -0
  214. package/esm/dist/src/members/MemberResponsibilityRecord.d.ts.map +1 -1
  215. package/esm/dist/src/members/MemberResponsibilityRecord.js +4 -0
  216. package/esm/dist/src/members/MemberResponsibilityRecord.js.map +1 -1
  217. package/esm/dist/src/members/Parent.d.ts +1 -1
  218. package/esm/dist/src/members/Parent.d.ts.map +1 -1
  219. package/esm/dist/src/members/Parent.js +1 -1
  220. package/esm/dist/src/members/Parent.js.map +1 -1
  221. package/esm/dist/src/members/Registration.d.ts +1 -0
  222. package/esm/dist/src/members/Registration.d.ts.map +1 -1
  223. package/esm/dist/src/members/Registration.js +4 -0
  224. package/esm/dist/src/members/Registration.js.map +1 -1
  225. package/esm/dist/src/members/records/RecordAnswer.d.ts +4 -2
  226. package/esm/dist/src/members/records/RecordAnswer.d.ts.map +1 -1
  227. package/esm/dist/src/members/records/RecordAnswer.js +8 -2
  228. package/esm/dist/src/members/records/RecordAnswer.js.map +1 -1
  229. package/esm/dist/src/members/records/RecordSettings.d.ts +1 -1
  230. package/esm/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  231. package/esm/dist/src/members/records/RecordSettings.js +1 -1
  232. package/esm/dist/src/members/records/RecordSettings.js.map +1 -1
  233. package/esm/dist/src/webshops/CartItem.d.ts +2 -2
  234. package/esm/dist/src/webshops/CartItem.d.ts.map +1 -1
  235. package/esm/dist/src/webshops/CartItem.js +2 -2
  236. package/esm/dist/src/webshops/CartItem.js.map +1 -1
  237. package/package.json +2 -2
@@ -1,24 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
- import { ArrayDecoder, AutoEncoder, DateDecoder, EnumDecoder, field, MapDecoder, NumberDecoder, StringDecoder } from '@simonbackx/simple-encoding';
2
+ import { ArrayDecoder, AutoEncoder, DateDecoder, EnumDecoder, field, MapDecoder, StringDecoder } from '@simonbackx/simple-encoding';
3
+ import { Formatter } from '@stamhoofd/utility';
3
4
  import { renderTemplate } from './AuditLogRenderer.js';
5
+ import { AuditLogReplacement } from './AuditLogReplacement.js';
4
6
  import { NamedObject } from './Event.js';
5
- import wordDictionary from './data/audit-log-words.js';
6
- import { Platform } from './Platform.js';
7
- import { PaymentMethodHelper } from './PaymentMethod.js';
8
- import { ParentTypeHelper } from './members/ParentType.js';
9
- import { OrderStatusHelper } from './webshops/Order.js';
10
- import { DocumentStatusHelper } from './Document.js';
11
- import { AccessRightHelper } from './AccessRight.js';
12
- import { CheckoutMethodTypeHelper } from './webshops/WebshopMetaData.js';
13
- import { CountryHelper } from './addresses/CountryDecoder.js';
14
- import { OrganizationTypeHelper } from './OrganizationType.js';
15
- import { PaymentStatusHelper } from './PaymentStatus.js';
16
- import { UmbrellaOrganizationHelper } from './UmbrellaOrganization.js';
17
- import { STPackageTypeHelper } from './billing/STPackage.js';
18
- import { getGroupStatusName } from './Group.js';
19
- import { getGenderName } from './members/Gender.js';
20
- import { getSetupStepName } from './SetupStepType.js';
21
- import { Formatter } from '@stamhoofd/utility';
22
7
  export var AuditLogSource;
23
8
  (function (AuditLogSource) {
24
9
  AuditLogSource["User"] = "User";
@@ -96,27 +81,19 @@ export var AuditLogType;
96
81
  AuditLogType["MemberPlatformMembershipAdded"] = "MemberPlatformMembershipAdded";
97
82
  AuditLogType["MemberPlatformMembershipEdited"] = "MemberPlatformMembershipEdited";
98
83
  AuditLogType["MemberPlatformMembershipDeleted"] = "MemberPlatformMembershipDeleted";
84
+ // Email
85
+ AuditLogType["EmailSent"] = "EmailSent";
86
+ AuditLogType["EmailSending"] = "EmailSending";
87
+ // Marked as spam events
88
+ AuditLogType["EmailAddressMarkedAsSpam"] = "EmailAddressMarkedAsSpam";
89
+ AuditLogType["EmailAddressHardBounced"] = "EmailAddressHardBounced";
90
+ AuditLogType["EmailAddressSoftBounced"] = "EmailAddressSoftBounced";
91
+ AuditLogType["EmailAddressUnsubscribed"] = "EmailAddressUnsubscribed";
92
+ AuditLogType["EmailAddressFraudComplaint"] = "EmailAddressFraudComplaint";
93
+ AuditLogType["EmailTemplateAdded"] = "EmailTemplateAdded";
94
+ AuditLogType["EmailTemplateEdited"] = "EmailTemplateEdited";
95
+ AuditLogType["EmailTemplateDeleted"] = "EmailTemplateDeleted";
99
96
  })(AuditLogType || (AuditLogType = {}));
100
- export var AuditLogReplacementType;
101
- (function (AuditLogReplacementType) {
102
- AuditLogReplacementType["Member"] = "Member";
103
- AuditLogReplacementType["User"] = "User";
104
- AuditLogReplacementType["Organization"] = "Organization";
105
- AuditLogReplacementType["Group"] = "Group";
106
- AuditLogReplacementType["Event"] = "Event";
107
- AuditLogReplacementType["Color"] = "Color";
108
- AuditLogReplacementType["Image"] = "Image";
109
- AuditLogReplacementType["Key"] = "Key";
110
- AuditLogReplacementType["Array"] = "Array";
111
- AuditLogReplacementType["RegistrationPeriod"] = "RegistrationPeriod";
112
- AuditLogReplacementType["Uuid"] = "Uuid";
113
- AuditLogReplacementType["StripeAccount"] = "StripeAccount";
114
- AuditLogReplacementType["Webshop"] = "Webshop";
115
- AuditLogReplacementType["Order"] = "Order";
116
- AuditLogReplacementType["Payment"] = "Payment";
117
- AuditLogReplacementType["PlatformMembershipType"] = "PlatformMembershipType";
118
- AuditLogReplacementType["MemberResponsibility"] = "MemberResponsibility";
119
- })(AuditLogReplacementType || (AuditLogReplacementType = {}));
120
97
  export function getAuditLogTypeName(type) {
121
98
  switch (type) {
122
99
  case AuditLogType.MemberEdited:
@@ -211,6 +188,26 @@ export function getAuditLogTypeName(type) {
211
188
  return `Wijzigingen aan aansluitingen`;
212
189
  case AuditLogType.MemberPlatformMembershipDeleted:
213
190
  return `Verwijderde aansluitingen`;
191
+ case AuditLogType.EmailSent:
192
+ return `Succesvol verzonden e-mails`;
193
+ case AuditLogType.EmailSending:
194
+ return `E-mails gestart met verzenden`;
195
+ case AuditLogType.EmailAddressMarkedAsSpam:
196
+ return `E-mailadressen gemarkeerd als spam`;
197
+ case AuditLogType.EmailAddressHardBounced:
198
+ return `E-mailadressen die hard gebounced zijn`;
199
+ case AuditLogType.EmailAddressSoftBounced:
200
+ return `E-mailadressen die soft gebounced zijn`;
201
+ case AuditLogType.EmailAddressUnsubscribed:
202
+ return `E-mailadressen die zich hebben uitgeschreven`;
203
+ case AuditLogType.EmailTemplateAdded:
204
+ return `Nieuwe e-mailtemplates`;
205
+ case AuditLogType.EmailTemplateEdited:
206
+ return `Wijzigingen aan e-mailtemplates`;
207
+ case AuditLogType.EmailTemplateDeleted:
208
+ return `Verwijderde e-mailtemplates`;
209
+ case AuditLogType.EmailAddressFraudComplaint:
210
+ return `E-mailadressen die een fraudeklacht hebben ingediend`;
214
211
  }
215
212
  return type;
216
213
  }
@@ -308,6 +305,26 @@ export function getAuditLogTypeIcon(type) {
308
305
  return [`membership-filled`, `edit`];
309
306
  case AuditLogType.MemberPlatformMembershipDeleted:
310
307
  return [`membership-filled`, `canceled red`];
308
+ case AuditLogType.EmailSent:
309
+ return [`email`, `success primary`];
310
+ case AuditLogType.EmailSending:
311
+ return [`email`, `clock`];
312
+ case AuditLogType.EmailAddressMarkedAsSpam:
313
+ return [`email`, `error red`];
314
+ case AuditLogType.EmailAddressHardBounced:
315
+ return [`email`, `error red`];
316
+ case AuditLogType.EmailAddressSoftBounced:
317
+ return [`email`, `warning`];
318
+ case AuditLogType.EmailAddressUnsubscribed:
319
+ return [`email`, `disabled red`];
320
+ case AuditLogType.EmailAddressFraudComplaint:
321
+ return [`email`, `error red`];
322
+ case AuditLogType.EmailTemplateAdded:
323
+ return [`email-template`, `add green`];
324
+ case AuditLogType.EmailTemplateEdited:
325
+ return [`email-template`, `edit`];
326
+ case AuditLogType.EmailTemplateDeleted:
327
+ return [`email-template`, `canceled red`];
311
328
  }
312
329
  return [`help`];
313
330
  }
@@ -334,23 +351,23 @@ function getAuditLogTypeTitleTemplate(type) {
334
351
  case AuditLogType.OrganizationDeleted:
335
352
  return `De lokale groep {{org}} werd verwijderd`;
336
353
  case AuditLogType.EventEdited:
337
- return `De activiteit {{e}} werd gewijzigd`;
354
+ return `De activiteit {{e}}{{if org " (" org ")"}} werd gewijzigd`;
338
355
  case AuditLogType.EventAdded:
339
- return `De activiteit {{e}} werd aangemaakt`;
356
+ return `De activiteit {{e}}{{if org " (" org ")"}} werd aangemaakt`;
340
357
  case AuditLogType.EventDeleted:
341
- return `De activiteit {{e}} werd verwijderd`;
358
+ return `De activiteit {{e}}{{if org " (" org ")"}} werd verwijderd`;
342
359
  case AuditLogType.GroupEdited:
343
- return `De groep {{g}} werd gewijzigd`;
360
+ return `De groep {{g}}{{if org " (" org ")"}} werd gewijzigd`;
344
361
  case AuditLogType.GroupAdded:
345
- return `De groep {{g}} werd aangemaakt`;
362
+ return `De groep {{g}}{{if org " (" org ")"}} werd aangemaakt`;
346
363
  case AuditLogType.GroupDeleted:
347
- return `De groep {{g}} werd verwijderd`;
364
+ return `De groep {{g}}{{if org " (" org ")"}} werd verwijderd`;
348
365
  case AuditLogType.WaitingListEdited:
349
- return `De wachtlijst {{g}} werd gewijzigd`;
366
+ return `De wachtlijst {{g}}{{if org " (" org ")"}} werd gewijzigd`;
350
367
  case AuditLogType.WaitingListAdded:
351
- return `De wachtlijst {{g}} werd aangemaakt`;
368
+ return `De wachtlijst {{g}}{{if org " (" org ")"}} werd aangemaakt`;
352
369
  case AuditLogType.WaitingListDeleted:
353
- return `De wachtlijst {{g}} werd verwijderd`;
370
+ return `De wachtlijst {{g}}{{if org " (" org ")"}} werd verwijderd`;
354
371
  case AuditLogType.RegistrationPeriodEdited:
355
372
  return `Het werkjaar {{p}} werd gewijzigd`;
356
373
  case AuditLogType.RegistrationPeriodAdded:
@@ -358,17 +375,17 @@ function getAuditLogTypeTitleTemplate(type) {
358
375
  case AuditLogType.RegistrationPeriodDeleted:
359
376
  return `Het werkjaar {{p}} werd verwijderd`;
360
377
  case AuditLogType.StripeAccountAdded:
361
- return `Stripe account {{a}} aangemaakt`;
378
+ return `Stripe account {{a}}{{if org " (" org ")"}} aangemaakt`;
362
379
  case AuditLogType.StripeAccountDeleted:
363
- return `Stripe account {{a}} verwijderd`;
380
+ return `Stripe account {{a}}{{if org " (" org ")"}} verwijderd`;
364
381
  case AuditLogType.StripeAccountEdited:
365
- return `Stripe account {{a}} gewijzigd`;
382
+ return `Stripe account {{a}}{{if org " (" org ")"}} gewijzigd`;
366
383
  case AuditLogType.WebshopEdited:
367
- return `De webshop {{w}} werd gewijzigd`;
384
+ return `De webshop {{w}}{{if org " (" org ")"}} werd gewijzigd`;
368
385
  case AuditLogType.WebshopAdded:
369
- return `De webshop {{w}} werd aangemaakt`;
386
+ return `De webshop {{w}}{{if org " (" org ")"}} werd aangemaakt`;
370
387
  case AuditLogType.WebshopDeleted:
371
- return `De webshop {{w}} werd verwijderd`;
388
+ return `De webshop {{w}}{{if org " (" org ")"}} werd verwijderd`;
372
389
  case AuditLogType.OrderAdded:
373
390
  return `{{capitalizeFirstLetter o}} werd geplaatst (voor {{w}})`;
374
391
  case AuditLogType.OrderEdited:
@@ -382,11 +399,11 @@ function getAuditLogTypeTitleTemplate(type) {
382
399
  case AuditLogType.PaymentDeleted:
383
400
  return `{{capitalizeFirstLetter p}} werd verwijderd`;
384
401
  case AuditLogType.DocumentTemplateAdded:
385
- return `Document {{d}} werd aangemaakt`;
402
+ return `Document {{d}}{{if org " (" org ")"}} werd aangemaakt`;
386
403
  case AuditLogType.DocumentTemplateEdited:
387
- return `Document {{d}} werd gewijzigd`;
404
+ return `Document {{d}}{{if org " (" org ")"}} werd gewijzigd`;
388
405
  case AuditLogType.DocumentTemplateDeleted:
389
- return `Document {{d}} werd verwijderd`;
406
+ return `Document {{d}}{{if org " (" org ")"}} werd verwijderd`;
390
407
  case AuditLogType.UserAdded:
391
408
  return `Account {{u}} werd aangemaakt`;
392
409
  case AuditLogType.UserEdited:
@@ -405,6 +422,40 @@ function getAuditLogTypeTitleTemplate(type) {
405
422
  return `Aansluiting {{pm}} werd gewijzigd bij {{m}}{{if org " via " org}}`;
406
423
  case AuditLogType.MemberPlatformMembershipDeleted:
407
424
  return `Aansluiting {{pm}} werd verwijderd bij {{m}}{{if org " via " org}}`;
425
+ case AuditLogType.EmailSent:
426
+ return `E-mail {{e}} werd succesvol verzonden aan {{c}} {{ plural c 'ontvanger' 'ontvangers' }}`;
427
+ case AuditLogType.EmailSending:
428
+ return `E-mail {{e}} werd ingepland om te verzenden aan {{c}} {{ plural c 'ontvanger' 'ontvangers' }}`;
429
+ case AuditLogType.EmailAddressMarkedAsSpam:
430
+ return `{{if subject 'De e-mail ‘', subject '’'}}{{unless subject 'Een e-mail'}} werd door {{e}} als spam gemarkeerd`;
431
+ case AuditLogType.EmailAddressFraudComplaint:
432
+ return `{{if subject 'De e-mail ‘', subject '’'}}{{unless subject 'Een e-mail'}} werd door {{e}} als fraude, phishing of virus gemarkeerd`;
433
+ case AuditLogType.EmailAddressHardBounced:
434
+ return `{{if subject 'De e-mail ‘', subject '’'}}{{unless subject 'Een e-mail'}} naar {{e}} is permanent mislukt`;
435
+ case AuditLogType.EmailAddressSoftBounced:
436
+ return `{{if subject 'De e-mail ‘', subject '’'}}{{unless subject 'Een e-mail'}} naar {{e}} is mislukt`;
437
+ case AuditLogType.EmailAddressUnsubscribed:
438
+ return `{{e}} heeft zich uitgeschreven voor e-mails`;
439
+ case AuditLogType.EmailTemplateAdded:
440
+ return `E-mailtemplate {{e}} werd aangemaakt {{if org " voor " org}}`;
441
+ case AuditLogType.EmailTemplateEdited:
442
+ return `E-mailtemplate {{e}} werd gewijzigd {{if org " voor " org}}`;
443
+ case AuditLogType.EmailTemplateDeleted:
444
+ return `E-mailtemplate {{e}} werd verwijderd {{if org " voor " org}}`;
445
+ }
446
+ }
447
+ function getAuditLogTypeDescriptionTemplate(type) {
448
+ switch (type) {
449
+ case AuditLogType.EmailSent:
450
+ return `{{html}}`;
451
+ case AuditLogType.EmailAddressMarkedAsSpam:
452
+ return `Verzonden door {{sender}} {{if org " (" org ")"}}\n{{if subType 'Reden: ' subType '\n'}}{{if response 'Volledig antwoord: ' response '\n'}}Soms doen mensen dit per ongeluk. Vraag hen dan de e-mail terug als 'geen spam' te markeren.`;
453
+ case AuditLogType.EmailAddressHardBounced:
454
+ return `Verzonden door {{sender}} {{if org " (" org ")"}}\n{{if subType 'Reden: ' subType '\n'}}{{if response 'Volledig antwoord: ' response '\n'}}De e-mailprovider gaat ervanuit dat dit een permanent probleem is, dus toekomstige e-mails zullen niet meer verzonden worden naar dit adres. Meestal komt dit voor bij een ongeldig e-mailadres.`;
455
+ case AuditLogType.EmailAddressSoftBounced:
456
+ return `Verzonden door {{sender}} {{if org " (" org ")"}}\n{{if subType 'Reden: ' subType '\n'}}{{if response 'Volledig antwoord: ' response '\n'}}Wellicht gaat het om een tijdelijk probleem (bv. volle inbox).`;
457
+ case AuditLogType.EmailAddressFraudComplaint:
458
+ return `Verzonden door {{sender}} {{if org " (" org ")"}}\n{{if subType 'Reden: ' subType '\n'}}{{if response 'Volledig antwoord: ' response}}`;
408
459
  }
409
460
  }
410
461
  function getTypeReplacements(type) {
@@ -449,204 +500,43 @@ function getTypeReplacements(type) {
449
500
  case AuditLogType.OrderEdited:
450
501
  case AuditLogType.OrderDeleted:
451
502
  return ['o', 'w'];
503
+ case AuditLogType.PaymentAdded:
504
+ case AuditLogType.PaymentEdited:
505
+ case AuditLogType.PaymentDeleted:
506
+ return ['p'];
507
+ case AuditLogType.DocumentTemplateAdded:
508
+ case AuditLogType.DocumentTemplateEdited:
509
+ case AuditLogType.DocumentTemplateDeleted:
510
+ return ['d'];
511
+ case AuditLogType.UserAdded:
512
+ case AuditLogType.UserEdited:
513
+ case AuditLogType.UserDeleted:
514
+ return ['u'];
515
+ case AuditLogType.MemberResponsibilityRecordAdded:
516
+ case AuditLogType.MemberResponsibilityRecordEdited:
517
+ case AuditLogType.MemberResponsibilityRecordDeleted:
518
+ return ['r', 'm'];
519
+ case AuditLogType.MemberPlatformMembershipAdded:
520
+ case AuditLogType.MemberPlatformMembershipEdited:
521
+ case AuditLogType.MemberPlatformMembershipDeleted:
522
+ return ['pm', 'm'];
523
+ case AuditLogType.EmailSent:
524
+ case AuditLogType.EmailSending:
525
+ return ['e'];
526
+ case AuditLogType.EmailAddressMarkedAsSpam:
527
+ case AuditLogType.EmailAddressHardBounced:
528
+ case AuditLogType.EmailAddressSoftBounced:
529
+ case AuditLogType.EmailAddressUnsubscribed:
530
+ case AuditLogType.EmailAddressFraudComplaint:
531
+ return ['e'];
532
+ case AuditLogType.EmailTemplateAdded:
533
+ case AuditLogType.EmailTemplateEdited:
534
+ case AuditLogType.EmailTemplateDeleted:
535
+ return ['e'];
452
536
  default:
453
537
  return [];
454
538
  }
455
539
  }
456
- export class AuditLogReplacement extends AutoEncoder {
457
- constructor() {
458
- super(...arguments);
459
- this.value = '';
460
- this.description = '';
461
- this.values = [];
462
- }
463
- flatten() {
464
- if (this.type === AuditLogReplacementType.Array) {
465
- const cleanedValues = [];
466
- for (const v of this.values.flatMap(v => v.flatten())) {
467
- if (v.type === AuditLogReplacementType.Key) {
468
- const last = cleanedValues[cleanedValues.length - 1];
469
- if (last && last.type === AuditLogReplacementType.Key) {
470
- if (last.value) {
471
- last.value += '.';
472
- }
473
- last.value += v.value;
474
- continue;
475
- }
476
- }
477
- cleanedValues.push(v);
478
- }
479
- return cleanedValues;
480
- }
481
- return [this];
482
- }
483
- prepend(add) {
484
- if (!add) {
485
- return this;
486
- }
487
- return AuditLogReplacement.array([...add.flatten(), this]);
488
- }
489
- append(add) {
490
- if (!add) {
491
- return this;
492
- }
493
- return AuditLogReplacement.array([this, ...add.flatten()]);
494
- }
495
- static array(values) {
496
- const v = AuditLogReplacement.create({ values: values.flatMap(v => v.flatten()), type: AuditLogReplacementType.Array }).flatten();
497
- if (v.length === 1) {
498
- return v[0];
499
- }
500
- return AuditLogReplacement.create({ values: v, type: AuditLogReplacementType.Array });
501
- }
502
- static key(str) {
503
- if (!str) {
504
- return AuditLogReplacement.array([]);
505
- }
506
- return AuditLogReplacement.create({ value: str, type: AuditLogReplacementType.Key });
507
- }
508
- static uuid(id) {
509
- return AuditLogReplacement.create({
510
- id,
511
- value: uuidToName(id) || '',
512
- type: AuditLogReplacementType.Uuid,
513
- });
514
- }
515
- static string(str) {
516
- return AuditLogReplacement.create({ value: str });
517
- }
518
- toString() {
519
- if (this.type === AuditLogReplacementType.Key) {
520
- return getAuditLogPatchKeyName(this.value);
521
- }
522
- if (this.type === AuditLogReplacementType.Uuid || (this.id && !this.value && isUuid(this.id))) {
523
- if (this.id && !this.value) {
524
- const name = uuidToName(this.id);
525
- if (name) {
526
- return name;
527
- }
528
- return '';
529
- }
530
- }
531
- if (this.type === AuditLogReplacementType.Array) {
532
- return this.values.map(v => v.toString()).filter(v => !!v).join(' → ');
533
- }
534
- return this.value;
535
- }
536
- toKey() {
537
- if (this.type === AuditLogReplacementType.Array) {
538
- return this.values.map(v => v.toKey()).filter(v => !!v).join('.');
539
- }
540
- return this.value;
541
- }
542
- }
543
- __decorate([
544
- field({ field: 'v', decoder: StringDecoder, optional: true })
545
- ], AuditLogReplacement.prototype, "value", void 0);
546
- __decorate([
547
- field({ field: 'd', decoder: StringDecoder, optional: true })
548
- ], AuditLogReplacement.prototype, "description", void 0);
549
- __decorate([
550
- field({ field: 'a', decoder: new ArrayDecoder(AuditLogReplacement), optional: true })
551
- ], AuditLogReplacement.prototype, "values", void 0);
552
- __decorate([
553
- field({ field: 'i', decoder: StringDecoder, optional: true })
554
- ], AuditLogReplacement.prototype, "id", void 0);
555
- __decorate([
556
- field({ field: 't', decoder: new EnumDecoder(AuditLogReplacementType), optional: true })
557
- ], AuditLogReplacement.prototype, "type", void 0);
558
- __decorate([
559
- field({ field: 'c', decoder: NumberDecoder, optional: true })
560
- ], AuditLogReplacement.prototype, "count", void 0);
561
- export function isUuid(value) {
562
- if (typeof value !== 'string') {
563
- return false;
564
- }
565
- return value.length === 36 && value[8] === '-' && value[13] === '-' && value[18] === '-' && value[23] === '-';
566
- }
567
- export function uuidToName(uuid) {
568
- // Look up in UUID library list
569
- const objectLists = [
570
- Platform.shared.config.premiseTypes,
571
- Platform.shared.config.eventTypes,
572
- Platform.shared.config.defaultAgeGroups,
573
- Platform.shared.config.tags,
574
- Platform.shared.config.recordsConfiguration.recordCategories,
575
- Platform.shared.config.membershipTypes,
576
- ];
577
- for (const list of objectLists) {
578
- for (const object of list) {
579
- if (object.id === uuid) {
580
- return object.name;
581
- }
582
- }
583
- }
584
- return null;
585
- }
586
- const enumHelpers = [
587
- PaymentMethodHelper.getPluralName,
588
- ParentTypeHelper.getName,
589
- OrderStatusHelper.getName,
590
- DocumentStatusHelper.getName,
591
- AccessRightHelper.getName,
592
- CheckoutMethodTypeHelper.getName,
593
- CountryHelper.getName,
594
- OrganizationTypeHelper.getName.bind(OrganizationTypeHelper),
595
- PaymentStatusHelper.getName.bind(PaymentStatusHelper),
596
- UmbrellaOrganizationHelper.getName.bind(UmbrellaOrganizationHelper),
597
- STPackageTypeHelper.getName.bind(STPackageTypeHelper),
598
- ParentTypeHelper.getName.bind(ParentTypeHelper),
599
- getGroupStatusName,
600
- getGenderName,
601
- getSetupStepName,
602
- ];
603
- export function getAuditLogPatchKeyName(key) {
604
- // Strip prefixes
605
- const stripPrefixes = ['settings.', 'meta.', 'privateMeta.', 'privateConfig.', 'config.', 'privateSettings.', 'details.', 'data.'];
606
- for (const prefix of stripPrefixes) {
607
- if (key.startsWith(prefix)) {
608
- key = key.substring(prefix.length);
609
- }
610
- }
611
- if (wordDictionary[key]) {
612
- return wordDictionary[key];
613
- }
614
- // Check first letter is a capital letter
615
- if (key.length > 1 && key[0] === key[0].toUpperCase()) {
616
- for (const helper of enumHelpers) {
617
- try {
618
- const result = helper(key);
619
- if (result && result !== key) {
620
- return result;
621
- }
622
- }
623
- catch (e) {
624
- console.error(e);
625
- }
626
- }
627
- }
628
- if (key.includes('.')) {
629
- const splitted = key.split('.');
630
- if (splitted.length > 2) {
631
- const firstTwoWords = splitted.slice(0, 2).join('.');
632
- if (firstTwoWords !== getAuditLogPatchKeyName(firstTwoWords)) {
633
- return `${getAuditLogPatchKeyName(firstTwoWords)} → ${getAuditLogPatchKeyName(splitted.slice(2).join('.'))}`;
634
- }
635
- }
636
- const firstWord = splitted[0];
637
- const remaining = splitted.slice(1).join('.');
638
- return `${getAuditLogPatchKeyName(firstWord)} → ${getAuditLogPatchKeyName(remaining)}`;
639
- }
640
- if (key.length > 2 && key.endsWith('Id')) {
641
- // Strip id and try again
642
- return getAuditLogPatchKeyName(key.substring(0, key.length - 2));
643
- }
644
- // Replace camel case with spaces
645
- key = key.replace(/([a-z])([A-Z])/g, '$1 $2');
646
- // Replace _ case with spaces
647
- key = key.replace(/_+/g, ' ').trim();
648
- return key;
649
- }
650
540
  export var AuditLogPatchItemType;
651
541
  (function (AuditLogPatchItemType) {
652
542
  AuditLogPatchItemType["Added"] = "Added";
@@ -655,6 +545,10 @@ export var AuditLogPatchItemType;
655
545
  AuditLogPatchItemType["Reordered"] = "Reordered";
656
546
  })(AuditLogPatchItemType || (AuditLogPatchItemType = {}));
657
547
  export class AuditLogPatchItem extends AutoEncoder {
548
+ constructor() {
549
+ super(...arguments);
550
+ this.key = AuditLogReplacement.empty();
551
+ }
658
552
  autoType() {
659
553
  if (!this.oldValue && this.value) {
660
554
  this.type = AuditLogPatchItemType.Added;
@@ -680,6 +574,37 @@ __decorate([
680
574
  __decorate([
681
575
  field({ field: 't', decoder: new EnumDecoder(AuditLogPatchItemType), optional: true })
682
576
  ], AuditLogPatchItem.prototype, "type", void 0);
577
+ const helpers = {
578
+ plural: (context, object, singular, plural) => {
579
+ if (object instanceof AuditLogReplacement) {
580
+ if (object.count === undefined) {
581
+ return object.value === '1' ? [singular] : [plural];
582
+ }
583
+ return object.count === 1 ? [singular] : [plural];
584
+ }
585
+ return [object === 1 || object === '1' ? singular : plural];
586
+ },
587
+ capitalizeFirstLetter: (context, object) => {
588
+ if (object instanceof AuditLogReplacement) {
589
+ const clone = object.clone();
590
+ clone.value = Formatter.capitalizeFirstLetter(clone.value);
591
+ return [clone];
592
+ }
593
+ return [object];
594
+ },
595
+ if: (context, object, ...prefixes) => {
596
+ if (object) {
597
+ return [...prefixes];
598
+ }
599
+ return [];
600
+ },
601
+ unless: (context, object, ...prefixes) => {
602
+ if (!object) {
603
+ return [...prefixes];
604
+ }
605
+ return [];
606
+ },
607
+ };
683
608
  export class AuditLog extends AutoEncoder {
684
609
  constructor() {
685
610
  super(...arguments);
@@ -699,34 +624,24 @@ export class AuditLog extends AutoEncoder {
699
624
  return renderTemplate(getAuditLogTypeTitleTemplate(this.type), {
700
625
  type: 'text',
701
626
  context: Object.fromEntries(this.replacements.entries()),
702
- helpers: {
703
- plural: (context, object, singular, plural) => {
704
- if (object instanceof AuditLogReplacement) {
705
- return object.count === 1 ? [singular] : [plural];
706
- }
707
- return [object === 1 ? singular : plural];
708
- },
709
- capitalizeFirstLetter: (context, object) => {
710
- if (object instanceof AuditLogReplacement) {
711
- const clone = object.clone();
712
- clone.value = Formatter.capitalizeFirstLetter(clone.value);
713
- return [clone];
714
- }
715
- return [object];
716
- },
717
- if: (context, object, ...prefixes) => {
718
- if (object) {
719
- return [...prefixes];
720
- }
721
- return [];
722
- },
723
- unless: (context, object, ...prefixes) => {
724
- if (!object) {
725
- return [...prefixes];
726
- }
727
- return [];
728
- },
729
- },
627
+ helpers,
628
+ });
629
+ }
630
+ catch (e) {
631
+ console.error('Invalid render template', e);
632
+ return ['Onbekende actie'];
633
+ }
634
+ }
635
+ get renderableDescription() {
636
+ const template = getAuditLogTypeDescriptionTemplate(this.type);
637
+ if (!template) {
638
+ return [];
639
+ }
640
+ try {
641
+ return renderTemplate(template, {
642
+ type: 'text',
643
+ context: Object.fromEntries(this.replacements.entries()),
644
+ helpers,
730
645
  });
731
646
  }
732
647
  catch (e) {