@stamhoofd/structures 2.1.1 → 2.1.4

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 (349) hide show
  1. package/dist/index.d.ts +19 -11
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +20 -11
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/Document.d.ts +11 -4
  6. package/dist/src/Document.d.ts.map +1 -1
  7. package/dist/src/Document.js +57 -7
  8. package/dist/src/Document.js.map +1 -1
  9. package/dist/src/Group.d.ts +10 -17
  10. package/dist/src/Group.d.ts.map +1 -1
  11. package/dist/src/Group.js +25 -22
  12. package/dist/src/Group.js.map +1 -1
  13. package/dist/src/GroupCategory.d.ts +11 -10
  14. package/dist/src/GroupCategory.d.ts.map +1 -1
  15. package/dist/src/GroupCategory.js +19 -36
  16. package/dist/src/GroupCategory.js.map +1 -1
  17. package/dist/src/GroupSettings.d.ts +11 -0
  18. package/dist/src/GroupSettings.d.ts.map +1 -1
  19. package/dist/src/GroupSettings.js +13 -0
  20. package/dist/src/GroupSettings.js.map +1 -1
  21. package/dist/src/Organization.d.ts +22 -12
  22. package/dist/src/Organization.d.ts.map +1 -1
  23. package/dist/src/Organization.js +38 -44
  24. package/dist/src/Organization.js.map +1 -1
  25. package/dist/src/OrganizationMetaData.d.ts +18 -1
  26. package/dist/src/OrganizationMetaData.d.ts.map +1 -1
  27. package/dist/src/OrganizationMetaData.js +23 -0
  28. package/dist/src/OrganizationMetaData.js.map +1 -1
  29. package/dist/src/Permissions.d.ts +134 -29
  30. package/dist/src/Permissions.d.ts.map +1 -1
  31. package/dist/src/Permissions.js +534 -115
  32. package/dist/src/Permissions.js.map +1 -1
  33. package/dist/src/Platform.d.ts +39 -1
  34. package/dist/src/Platform.d.ts.map +1 -1
  35. package/dist/src/Platform.js +101 -4
  36. package/dist/src/Platform.js.map +1 -1
  37. package/dist/src/RegistrationPeriod.d.ts +12 -1
  38. package/dist/src/RegistrationPeriod.d.ts.map +1 -1
  39. package/dist/src/RegistrationPeriod.js +21 -0
  40. package/dist/src/RegistrationPeriod.js.map +1 -1
  41. package/dist/src/User.d.ts +6 -3
  42. package/dist/src/User.d.ts.map +1 -1
  43. package/dist/src/User.js +52 -2
  44. package/dist/src/User.js.map +1 -1
  45. package/dist/src/Version.d.ts +1 -1
  46. package/dist/src/Version.js +1 -1
  47. package/dist/src/admin/OrganizationSummary.js +1 -1
  48. package/dist/src/admin/OrganizationSummary.js.map +1 -1
  49. package/dist/src/billing/STPackage.js +2 -2
  50. package/dist/src/billing/STPackage.js.map +1 -1
  51. package/dist/src/billing/STPackageBundle.js +2 -2
  52. package/dist/src/billing/STPackageBundle.js.map +1 -1
  53. package/dist/src/endpoints/RegisterResponse.d.ts +2 -2
  54. package/dist/src/endpoints/RegisterResponse.d.ts.map +1 -1
  55. package/dist/src/endpoints/RegisterResponse.js +2 -3
  56. package/dist/src/endpoints/RegisterResponse.js.map +1 -1
  57. package/dist/src/filters/PropertyFilter.d.ts +13 -10
  58. package/dist/src/filters/PropertyFilter.d.ts.map +1 -1
  59. package/dist/src/filters/PropertyFilter.js +35 -22
  60. package/dist/src/filters/PropertyFilter.js.map +1 -1
  61. package/dist/src/filters/new/FilteredRequest.d.ts +4 -1
  62. package/dist/src/filters/new/FilteredRequest.d.ts.map +1 -1
  63. package/dist/src/filters/new/FilteredRequest.js +18 -5
  64. package/dist/src/filters/new/FilteredRequest.js.map +1 -1
  65. package/dist/src/filters/new/InMemoryFilter.d.ts +7 -7
  66. package/dist/src/filters/new/InMemoryFilter.d.ts.map +1 -1
  67. package/dist/src/filters/new/InMemoryFilter.js +143 -49
  68. package/dist/src/filters/new/InMemoryFilter.js.map +1 -1
  69. package/dist/src/filters/new/Sorters.d.ts.map +1 -1
  70. package/dist/src/filters/new/Sorters.js +0 -2
  71. package/dist/src/filters/new/Sorters.js.map +1 -1
  72. package/dist/src/filters/new/StamhoofdFilter.d.ts +6 -3
  73. package/dist/src/filters/new/StamhoofdFilter.d.ts.map +1 -1
  74. package/dist/src/filters/new/StamhoofdFilter.js +11 -0
  75. package/dist/src/filters/new/StamhoofdFilter.js.map +1 -1
  76. package/dist/src/grouping/PaginatedResponse.d.ts +6 -6
  77. package/dist/src/grouping/PaginatedResponse.d.ts.map +1 -1
  78. package/dist/src/grouping/PaginatedResponse.js +3 -2
  79. package/dist/src/grouping/PaginatedResponse.js.map +1 -1
  80. package/dist/src/members/EmergencyContact.d.ts +1 -0
  81. package/dist/src/members/EmergencyContact.d.ts.map +1 -1
  82. package/dist/src/members/EmergencyContact.js +6 -1
  83. package/dist/src/members/EmergencyContact.js.map +1 -1
  84. package/dist/src/members/Member.d.ts +0 -10
  85. package/dist/src/members/Member.d.ts.map +1 -1
  86. package/dist/src/members/Member.js +0 -18
  87. package/dist/src/members/Member.js.map +1 -1
  88. package/dist/src/members/MemberDetails.d.ts +14 -35
  89. package/dist/src/members/MemberDetails.d.ts.map +1 -1
  90. package/dist/src/members/MemberDetails.js +137 -274
  91. package/dist/src/members/MemberDetails.js.map +1 -1
  92. package/dist/src/members/MemberWithRegistrations.d.ts +11 -17
  93. package/dist/src/members/MemberWithRegistrations.d.ts.map +1 -1
  94. package/dist/src/members/MemberWithRegistrations.js +9 -197
  95. package/dist/src/members/MemberWithRegistrations.js.map +1 -1
  96. package/dist/src/members/OrganizationRecordsConfiguration.d.ts +10 -48
  97. package/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
  98. package/dist/src/members/OrganizationRecordsConfiguration.js +8 -161
  99. package/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
  100. package/dist/src/members/PlatformMember.d.ts +6 -6
  101. package/dist/src/members/PlatformMember.d.ts.map +1 -1
  102. package/dist/src/members/PlatformMember.js +17 -14
  103. package/dist/src/members/PlatformMember.js.map +1 -1
  104. package/dist/src/members/Registration.d.ts +4 -1
  105. package/dist/src/members/Registration.d.ts.map +1 -1
  106. package/dist/src/members/Registration.js +11 -2
  107. package/dist/src/members/Registration.js.map +1 -1
  108. package/dist/src/members/RegistrationWithMember.d.ts +0 -2
  109. package/dist/src/members/RegistrationWithMember.d.ts.map +1 -1
  110. package/dist/src/members/RegistrationWithMember.js +0 -4
  111. package/dist/src/members/RegistrationWithMember.js.map +1 -1
  112. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.js +109 -63
  113. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.js.map +1 -1
  114. package/dist/src/members/checkout/RegisterCheckout.d.ts +98 -17
  115. package/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  116. package/dist/src/members/checkout/RegisterCheckout.js +545 -22
  117. package/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  118. package/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts +1 -1
  119. package/dist/src/members/records/RecordCategory.d.ts +17 -16
  120. package/dist/src/members/records/RecordCategory.d.ts.map +1 -1
  121. package/dist/src/members/records/RecordCategory.js +38 -179
  122. package/dist/src/members/records/RecordCategory.js.map +1 -1
  123. package/dist/src/members/records/RecordConfigurationFactory.d.ts.map +1 -1
  124. package/dist/src/members/records/RecordConfigurationFactory.js +62 -45
  125. package/dist/src/members/records/RecordConfigurationFactory.js.map +1 -1
  126. package/dist/src/members/records/RecordFactory.d.ts.map +1 -1
  127. package/dist/src/members/records/RecordFactory.js +6 -12
  128. package/dist/src/members/records/RecordFactory.js.map +1 -1
  129. package/dist/src/members/records/RecordSettings.d.ts +2 -1
  130. package/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  131. package/dist/src/members/records/RecordSettings.js +13 -4
  132. package/dist/src/members/records/RecordSettings.js.map +1 -1
  133. package/dist/src/webshops/Checkout.d.ts +11 -8
  134. package/dist/src/webshops/Checkout.d.ts.map +1 -1
  135. package/dist/src/webshops/Checkout.js +29 -71
  136. package/dist/src/webshops/Checkout.js.map +1 -1
  137. package/dist/src/webshops/TransferSettings.d.ts +1 -1
  138. package/dist/src/webshops/TransferSettings.d.ts.map +1 -1
  139. package/dist/src/webshops/TransferSettings.js +5 -8
  140. package/dist/src/webshops/TransferSettings.js.map +1 -1
  141. package/dist/src/webshops/Webshop.js +2 -2
  142. package/dist/src/webshops/Webshop.js.map +1 -1
  143. package/dist/src/webshops/WebshopMetaData.d.ts +8 -0
  144. package/dist/src/webshops/WebshopMetaData.d.ts.map +1 -1
  145. package/dist/src/webshops/WebshopMetaData.js +9 -1
  146. package/dist/src/webshops/WebshopMetaData.js.map +1 -1
  147. package/esm/dist/index.d.ts +19 -11
  148. package/esm/dist/index.d.ts.map +1 -1
  149. package/esm/dist/index.js +20 -11
  150. package/esm/dist/index.js.map +1 -1
  151. package/esm/dist/src/Document.d.ts +11 -4
  152. package/esm/dist/src/Document.d.ts.map +1 -1
  153. package/esm/dist/src/Document.js +57 -7
  154. package/esm/dist/src/Document.js.map +1 -1
  155. package/esm/dist/src/Group.d.ts +10 -17
  156. package/esm/dist/src/Group.d.ts.map +1 -1
  157. package/esm/dist/src/Group.js +26 -23
  158. package/esm/dist/src/Group.js.map +1 -1
  159. package/esm/dist/src/GroupCategory.d.ts +11 -10
  160. package/esm/dist/src/GroupCategory.d.ts.map +1 -1
  161. package/esm/dist/src/GroupCategory.js +20 -37
  162. package/esm/dist/src/GroupCategory.js.map +1 -1
  163. package/esm/dist/src/GroupSettings.d.ts +11 -0
  164. package/esm/dist/src/GroupSettings.d.ts.map +1 -1
  165. package/esm/dist/src/GroupSettings.js +13 -0
  166. package/esm/dist/src/GroupSettings.js.map +1 -1
  167. package/esm/dist/src/Organization.d.ts +22 -12
  168. package/esm/dist/src/Organization.d.ts.map +1 -1
  169. package/esm/dist/src/Organization.js +39 -45
  170. package/esm/dist/src/Organization.js.map +1 -1
  171. package/esm/dist/src/OrganizationMetaData.d.ts +18 -1
  172. package/esm/dist/src/OrganizationMetaData.d.ts.map +1 -1
  173. package/esm/dist/src/OrganizationMetaData.js +23 -0
  174. package/esm/dist/src/OrganizationMetaData.js.map +1 -1
  175. package/esm/dist/src/Permissions.d.ts +134 -29
  176. package/esm/dist/src/Permissions.d.ts.map +1 -1
  177. package/esm/dist/src/Permissions.js +529 -113
  178. package/esm/dist/src/Permissions.js.map +1 -1
  179. package/esm/dist/src/Platform.d.ts +39 -1
  180. package/esm/dist/src/Platform.d.ts.map +1 -1
  181. package/esm/dist/src/Platform.js +98 -4
  182. package/esm/dist/src/Platform.js.map +1 -1
  183. package/esm/dist/src/RegistrationPeriod.d.ts +12 -1
  184. package/esm/dist/src/RegistrationPeriod.d.ts.map +1 -1
  185. package/esm/dist/src/RegistrationPeriod.js +21 -0
  186. package/esm/dist/src/RegistrationPeriod.js.map +1 -1
  187. package/esm/dist/src/User.d.ts +6 -3
  188. package/esm/dist/src/User.d.ts.map +1 -1
  189. package/esm/dist/src/User.js +52 -2
  190. package/esm/dist/src/User.js.map +1 -1
  191. package/esm/dist/src/Version.d.ts +1 -1
  192. package/esm/dist/src/Version.js +1 -1
  193. package/esm/dist/src/admin/OrganizationSummary.js +1 -1
  194. package/esm/dist/src/admin/OrganizationSummary.js.map +1 -1
  195. package/esm/dist/src/billing/STPackage.js +2 -2
  196. package/esm/dist/src/billing/STPackage.js.map +1 -1
  197. package/esm/dist/src/billing/STPackageBundle.js +2 -2
  198. package/esm/dist/src/billing/STPackageBundle.js.map +1 -1
  199. package/esm/dist/src/endpoints/RegisterResponse.d.ts +2 -2
  200. package/esm/dist/src/endpoints/RegisterResponse.d.ts.map +1 -1
  201. package/esm/dist/src/endpoints/RegisterResponse.js +2 -3
  202. package/esm/dist/src/endpoints/RegisterResponse.js.map +1 -1
  203. package/esm/dist/src/filters/PropertyFilter.d.ts +13 -10
  204. package/esm/dist/src/filters/PropertyFilter.d.ts.map +1 -1
  205. package/esm/dist/src/filters/PropertyFilter.js +36 -23
  206. package/esm/dist/src/filters/PropertyFilter.js.map +1 -1
  207. package/esm/dist/src/filters/new/FilteredRequest.d.ts +4 -1
  208. package/esm/dist/src/filters/new/FilteredRequest.d.ts.map +1 -1
  209. package/esm/dist/src/filters/new/FilteredRequest.js +18 -6
  210. package/esm/dist/src/filters/new/FilteredRequest.js.map +1 -1
  211. package/esm/dist/src/filters/new/InMemoryFilter.d.ts +7 -7
  212. package/esm/dist/src/filters/new/InMemoryFilter.d.ts.map +1 -1
  213. package/esm/dist/src/filters/new/InMemoryFilter.js +142 -49
  214. package/esm/dist/src/filters/new/InMemoryFilter.js.map +1 -1
  215. package/esm/dist/src/filters/new/Sorters.d.ts.map +1 -1
  216. package/esm/dist/src/filters/new/Sorters.js +0 -2
  217. package/esm/dist/src/filters/new/Sorters.js.map +1 -1
  218. package/esm/dist/src/filters/new/StamhoofdFilter.d.ts +6 -3
  219. package/esm/dist/src/filters/new/StamhoofdFilter.d.ts.map +1 -1
  220. package/esm/dist/src/filters/new/StamhoofdFilter.js +9 -1
  221. package/esm/dist/src/filters/new/StamhoofdFilter.js.map +1 -1
  222. package/esm/dist/src/grouping/PaginatedResponse.d.ts +6 -6
  223. package/esm/dist/src/grouping/PaginatedResponse.d.ts.map +1 -1
  224. package/esm/dist/src/grouping/PaginatedResponse.js +3 -2
  225. package/esm/dist/src/grouping/PaginatedResponse.js.map +1 -1
  226. package/esm/dist/src/members/EmergencyContact.d.ts +1 -0
  227. package/esm/dist/src/members/EmergencyContact.d.ts.map +1 -1
  228. package/esm/dist/src/members/EmergencyContact.js +6 -1
  229. package/esm/dist/src/members/EmergencyContact.js.map +1 -1
  230. package/esm/dist/src/members/Member.d.ts +0 -10
  231. package/esm/dist/src/members/Member.d.ts.map +1 -1
  232. package/esm/dist/src/members/Member.js +1 -19
  233. package/esm/dist/src/members/Member.js.map +1 -1
  234. package/esm/dist/src/members/MemberDetails.d.ts +14 -35
  235. package/esm/dist/src/members/MemberDetails.d.ts.map +1 -1
  236. package/esm/dist/src/members/MemberDetails.js +139 -276
  237. package/esm/dist/src/members/MemberDetails.js.map +1 -1
  238. package/esm/dist/src/members/MemberWithRegistrations.d.ts +11 -17
  239. package/esm/dist/src/members/MemberWithRegistrations.d.ts.map +1 -1
  240. package/esm/dist/src/members/MemberWithRegistrations.js +9 -197
  241. package/esm/dist/src/members/MemberWithRegistrations.js.map +1 -1
  242. package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts +10 -48
  243. package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
  244. package/esm/dist/src/members/OrganizationRecordsConfiguration.js +8 -160
  245. package/esm/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
  246. package/esm/dist/src/members/PlatformMember.d.ts +6 -6
  247. package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
  248. package/esm/dist/src/members/PlatformMember.js +17 -14
  249. package/esm/dist/src/members/PlatformMember.js.map +1 -1
  250. package/esm/dist/src/members/Registration.d.ts +4 -1
  251. package/esm/dist/src/members/Registration.d.ts.map +1 -1
  252. package/esm/dist/src/members/Registration.js +11 -2
  253. package/esm/dist/src/members/Registration.js.map +1 -1
  254. package/esm/dist/src/members/RegistrationWithMember.d.ts +0 -2
  255. package/esm/dist/src/members/RegistrationWithMember.d.ts.map +1 -1
  256. package/esm/dist/src/members/RegistrationWithMember.js +0 -4
  257. package/esm/dist/src/members/RegistrationWithMember.js.map +1 -1
  258. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.js +109 -63
  259. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.js.map +1 -1
  260. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts +98 -17
  261. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  262. package/esm/dist/src/members/checkout/RegisterCheckout.js +539 -20
  263. package/esm/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  264. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts +1 -1
  265. package/esm/dist/src/members/records/RecordCategory.d.ts +17 -16
  266. package/esm/dist/src/members/records/RecordCategory.d.ts.map +1 -1
  267. package/esm/dist/src/members/records/RecordCategory.js +39 -179
  268. package/esm/dist/src/members/records/RecordCategory.js.map +1 -1
  269. package/esm/dist/src/members/records/RecordConfigurationFactory.d.ts.map +1 -1
  270. package/esm/dist/src/members/records/RecordConfigurationFactory.js +63 -46
  271. package/esm/dist/src/members/records/RecordConfigurationFactory.js.map +1 -1
  272. package/esm/dist/src/members/records/RecordFactory.d.ts.map +1 -1
  273. package/esm/dist/src/members/records/RecordFactory.js +6 -12
  274. package/esm/dist/src/members/records/RecordFactory.js.map +1 -1
  275. package/esm/dist/src/members/records/RecordSettings.d.ts +2 -1
  276. package/esm/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  277. package/esm/dist/src/members/records/RecordSettings.js +13 -4
  278. package/esm/dist/src/members/records/RecordSettings.js.map +1 -1
  279. package/esm/dist/src/webshops/Checkout.d.ts +11 -8
  280. package/esm/dist/src/webshops/Checkout.d.ts.map +1 -1
  281. package/esm/dist/src/webshops/Checkout.js +30 -72
  282. package/esm/dist/src/webshops/Checkout.js.map +1 -1
  283. package/esm/dist/src/webshops/TransferSettings.d.ts +1 -1
  284. package/esm/dist/src/webshops/TransferSettings.d.ts.map +1 -1
  285. package/esm/dist/src/webshops/TransferSettings.js +1 -4
  286. package/esm/dist/src/webshops/TransferSettings.js.map +1 -1
  287. package/esm/dist/src/webshops/Webshop.js +2 -2
  288. package/esm/dist/src/webshops/Webshop.js.map +1 -1
  289. package/esm/dist/src/webshops/WebshopMetaData.d.ts +8 -0
  290. package/esm/dist/src/webshops/WebshopMetaData.d.ts.map +1 -1
  291. package/esm/dist/src/webshops/WebshopMetaData.js +9 -1
  292. package/esm/dist/src/webshops/WebshopMetaData.js.map +1 -1
  293. package/package.json +2 -2
  294. package/dist/src/grouping/KeychainedMembers.d.ts +0 -14
  295. package/dist/src/grouping/KeychainedMembers.d.ts.map +0 -1
  296. package/dist/src/grouping/KeychainedMembers.js +0 -27
  297. package/dist/src/grouping/KeychainedMembers.js.map +0 -1
  298. package/dist/src/grouping/KeychainedResponse.d.ts +0 -25
  299. package/dist/src/grouping/KeychainedResponse.d.ts.map +0 -1
  300. package/dist/src/grouping/KeychainedResponse.js +0 -38
  301. package/dist/src/grouping/KeychainedResponse.js.map +0 -1
  302. package/dist/src/members/EncryptedMemberWithRegistrations.d.ts +0 -8
  303. package/dist/src/members/EncryptedMemberWithRegistrations.d.ts.map +0 -1
  304. package/dist/src/members/EncryptedMemberWithRegistrations.js +0 -18
  305. package/dist/src/members/EncryptedMemberWithRegistrations.js.map +0 -1
  306. package/dist/src/members/checkout/RegisterCart.d.ts +0 -49
  307. package/dist/src/members/checkout/RegisterCart.d.ts.map +0 -1
  308. package/dist/src/members/checkout/RegisterCart.js +0 -207
  309. package/dist/src/members/checkout/RegisterCart.js.map +0 -1
  310. package/dist/src/members/checkout/RegisterCartPriceCalculator.d.ts +0 -41
  311. package/dist/src/members/checkout/RegisterCartPriceCalculator.d.ts.map +0 -1
  312. package/dist/src/members/checkout/RegisterCartPriceCalculator.js +0 -352
  313. package/dist/src/members/checkout/RegisterCartPriceCalculator.js.map +0 -1
  314. package/dist/src/members/checkout/RegisterCartValidator.d.ts +0 -35
  315. package/dist/src/members/checkout/RegisterCartValidator.d.ts.map +0 -1
  316. package/dist/src/members/checkout/RegisterCartValidator.js +0 -345
  317. package/dist/src/members/checkout/RegisterCartValidator.js.map +0 -1
  318. package/dist/src/members/checkout/RegisterItem.d.ts +0 -59
  319. package/dist/src/members/checkout/RegisterItem.d.ts.map +0 -1
  320. package/dist/src/members/checkout/RegisterItem.js +0 -148
  321. package/dist/src/members/checkout/RegisterItem.js.map +0 -1
  322. package/esm/dist/src/grouping/KeychainedMembers.d.ts +0 -14
  323. package/esm/dist/src/grouping/KeychainedMembers.d.ts.map +0 -1
  324. package/esm/dist/src/grouping/KeychainedMembers.js +0 -23
  325. package/esm/dist/src/grouping/KeychainedMembers.js.map +0 -1
  326. package/esm/dist/src/grouping/KeychainedResponse.d.ts +0 -25
  327. package/esm/dist/src/grouping/KeychainedResponse.d.ts.map +0 -1
  328. package/esm/dist/src/grouping/KeychainedResponse.js +0 -33
  329. package/esm/dist/src/grouping/KeychainedResponse.js.map +0 -1
  330. package/esm/dist/src/members/EncryptedMemberWithRegistrations.d.ts +0 -8
  331. package/esm/dist/src/members/EncryptedMemberWithRegistrations.d.ts.map +0 -1
  332. package/esm/dist/src/members/EncryptedMemberWithRegistrations.js +0 -14
  333. package/esm/dist/src/members/EncryptedMemberWithRegistrations.js.map +0 -1
  334. package/esm/dist/src/members/checkout/RegisterCart.d.ts +0 -49
  335. package/esm/dist/src/members/checkout/RegisterCart.d.ts.map +0 -1
  336. package/esm/dist/src/members/checkout/RegisterCart.js +0 -202
  337. package/esm/dist/src/members/checkout/RegisterCart.js.map +0 -1
  338. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.d.ts +0 -41
  339. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.d.ts.map +0 -1
  340. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.js +0 -347
  341. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.js.map +0 -1
  342. package/esm/dist/src/members/checkout/RegisterCartValidator.d.ts +0 -35
  343. package/esm/dist/src/members/checkout/RegisterCartValidator.d.ts.map +0 -1
  344. package/esm/dist/src/members/checkout/RegisterCartValidator.js +0 -341
  345. package/esm/dist/src/members/checkout/RegisterCartValidator.js.map +0 -1
  346. package/esm/dist/src/members/checkout/RegisterItem.d.ts +0 -59
  347. package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +0 -1
  348. package/esm/dist/src/members/checkout/RegisterItem.js +0 -142
  349. package/esm/dist/src/members/checkout/RegisterItem.js.map +0 -1
@@ -1,15 +1,10 @@
1
- import { AutoEncoder } from '@simonbackx/simple-encoding';
1
+ import { AutoEncoder, AutoEncoderPatchType } from '@simonbackx/simple-encoding';
2
2
  import { Address } from '../addresses/Address';
3
3
  import { Replacement } from '../endpoints/EmailRequest';
4
- import { ChoicesFilterDefinition } from '../filters/ChoicesFilter';
5
- import { NumberFilterDefinition } from '../filters/NumberFilter';
6
4
  import { Group } from '../Group';
7
- import { OrganizationMetaData } from '../OrganizationMetaData';
8
5
  import { EmergencyContact } from './EmergencyContact';
9
6
  import { Gender } from './Gender';
10
7
  import { Parent } from './Parent';
11
- import { LegacyRecord } from './records/LegacyRecord';
12
- import { LegacyRecordType } from './records/LegacyRecordType';
13
8
  import { RecordAnswer } from './records/RecordAnswer';
14
9
  import { ReviewTimes } from './ReviewTime';
15
10
  /**
@@ -37,35 +32,21 @@ export declare class MemberDetails extends AutoEncoder {
37
32
  address: Address | null;
38
33
  parents: Parent[];
39
34
  emergencyContacts: EmergencyContact[];
40
- recordAnswers: RecordAnswer[];
41
- /**
42
- * @deprecated
43
- */
44
- records: LegacyRecord[];
45
- requiresFinancialSupport?: BooleanStatus;
35
+ recordAnswers: Map<string, RecordAnswer>;
36
+ requiresFinancialSupport: BooleanStatus | null;
46
37
  /**
47
38
  * Gave permission to collect sensitive information
48
39
  */
49
- dataPermissions?: BooleanStatus;
50
- /**
51
- * @deprecated
52
- */
53
- doctor: EmergencyContact | null;
40
+ dataPermissions: BooleanStatus | null;
54
41
  /**
55
42
  * Last time the records were reviewed
56
43
  */
57
44
  reviewTimes: ReviewTimes;
58
- /**
59
- * @deprecated
60
- * Keep track whether this are recovered member details. Only set this back to false when:
61
- * - The data is entered manually again (by member / parents)
62
- * - Warning message is dismissed / removed in the dashboard by organization
63
- */
64
- isRecovered: boolean;
65
45
  /**
66
46
  * Call this to clean up capitals in all the available data
67
47
  */
68
48
  cleanData(): void;
49
+ isEqual(other: MemberDetails): boolean;
69
50
  get name(): string;
70
51
  ageForYear(year: number): number | null;
71
52
  ageOnDate(date: Date): number | null;
@@ -86,23 +67,23 @@ export declare class MemberDetails extends AutoEncoder {
86
67
  } | null;
87
68
  getMatchingGroups(groups: Group[]): Group[];
88
69
  updateAddress(oldValue: Address, newValue: Address): void;
70
+ updateAddressPatch(oldValue: Address, newValue: Address): AutoEncoderPatchType<MemberDetails> | null;
89
71
  /**
90
72
  * This will SET the parent
91
73
  */
92
74
  updateParent(parent: Parent): void;
93
75
  /**
94
- * This will add or update the parent (possibily partially if not all data is present)
95
- */
96
- addParent(parent: Parent): void;
76
+ * This will SET the parent
77
+ */
78
+ updateParentPatch(parent: Parent): AutoEncoderPatchType<MemberDetails> | null;
97
79
  /**
98
- * @deprecated
99
- * This will add or update the parent (possibily partially if not all data is present)
100
- */
101
- addRecord(record: LegacyRecord): void;
80
+ * This will SET the parent
81
+ */
82
+ updateEmergencyContactPatch(emergencyContact: EmergencyContact): AutoEncoderPatchType<MemberDetails> | null;
102
83
  /**
103
- * @deprecated
84
+ * This will add or update the parent (possibily partially if not all data is present)
104
85
  */
105
- removeRecord(type: LegacyRecordType): void;
86
+ addParent(parent: Parent): void;
106
87
  get parentsHaveAccess(): boolean | 0 | null;
107
88
  /**
108
89
  * Return all the e-mail addresses that should have access to this user
@@ -116,8 +97,6 @@ export declare class MemberDetails extends AutoEncoder {
116
97
  * Apply newer details without deleting data or replacing filled in data with empty data
117
98
  */
118
99
  merge(other: MemberDetails): void;
119
- static getBaseFilterDefinitions(): (NumberFilterDefinition<MemberDetails> | ChoicesFilterDefinition<MemberDetails>)[];
120
- upgradeFromLegacy(organizationMeta: OrganizationMetaData): void;
121
100
  getEmailReplacements(): Replacement[];
122
101
  }
123
102
  //# sourceMappingURL=MemberDetails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemberDetails.d.ts","sourceRoot":"","sources":["../../../../src/members/MemberDetails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemberDetails.d.ts","sourceRoot":"","sources":["../../../../src/members/MemberDetails.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,13 @@
1
1
  import { __decorate } from "tslib";
2
- import { ArrayDecoder, AutoEncoder, BooleanDecoder, DateDecoder, EnumDecoder, field, StringDecoder } from '@simonbackx/simple-encoding';
2
+ import { ArrayDecoder, AutoEncoder, BooleanDecoder, DateDecoder, EnumDecoder, field, MapDecoder, PatchableArray, StringDecoder } from '@simonbackx/simple-encoding';
3
3
  import { Formatter, StringCompare } from '@stamhoofd/utility';
4
4
  import { Address } from '../addresses/Address';
5
5
  import { Replacement } from '../endpoints/EmailRequest';
6
- import { ChoicesFilterChoice, ChoicesFilterDefinition, ChoicesFilterMode } from '../filters/ChoicesFilter';
7
- import { NumberFilterDefinition } from '../filters/NumberFilter';
8
6
  import { GroupGenderType } from '../GroupGenderType';
9
7
  import { EmergencyContact } from './EmergencyContact';
10
8
  import { Gender } from './Gender';
11
9
  import { Parent } from './Parent';
12
- import { LegacyRecord, OldRecord } from './records/LegacyRecord';
13
- import { LegacyRecordType, OldRecordType } from './records/LegacyRecordType';
14
- import { RecordAnswerDecoder, RecordCheckboxAnswer, RecordChooseOneAnswer, RecordTextAnswer } from './records/RecordAnswer';
15
- import { RecordFactory } from './records/RecordFactory';
16
- import { RecordChoice, RecordType, RecordWarning, RecordWarningType } from './records/RecordSettings';
10
+ import { RecordAnswerDecoder } from './records/RecordAnswer';
17
11
  import { ReviewTimes } from './ReviewTime';
18
12
  /**
19
13
  * Keep track of date nad time of an edited boolean value
@@ -56,26 +50,16 @@ export class MemberDetails extends AutoEncoder {
56
50
  this.address = null;
57
51
  this.parents = [];
58
52
  this.emergencyContacts = [];
59
- this.recordAnswers = [];
53
+ this.recordAnswers = new Map();
54
+ this.requiresFinancialSupport = null;
60
55
  /**
61
- * @deprecated
56
+ * Gave permission to collect sensitive information
62
57
  */
63
- this.records = [];
64
- /**
65
- * @deprecated
66
- */
67
- this.doctor = null;
58
+ this.dataPermissions = null;
68
59
  /**
69
60
  * Last time the records were reviewed
70
61
  */
71
62
  this.reviewTimes = ReviewTimes.create({});
72
- /**
73
- * @deprecated
74
- * Keep track whether this are recovered member details. Only set this back to false when:
75
- * - The data is entered manually again (by member / parents)
76
- * - Warning message is dismissed / removed in the dashboard by organization
77
- */
78
- this.isRecovered = false;
79
63
  }
80
64
  /**
81
65
  * Call this to clean up capitals in all the available data
@@ -102,6 +86,30 @@ export class MemberDetails extends AutoEncoder {
102
86
  contact.cleanData();
103
87
  }
104
88
  }
89
+ isEqual(other) {
90
+ if (!this.firstName || !other.firstName) {
91
+ // Not possible to compare
92
+ return false;
93
+ }
94
+ if (!this.lastName || !other.lastName) {
95
+ // Not possible to compare
96
+ return false;
97
+ }
98
+ if (!this.birthDay || !other.birthDay) {
99
+ // Not possible to compare
100
+ return false;
101
+ }
102
+ if (this.firstName != other.firstName) {
103
+ return false;
104
+ }
105
+ if (this.lastName != other.lastName) {
106
+ return false;
107
+ }
108
+ if (this.birthDayFormatted != other.birthDayFormatted) {
109
+ return false;
110
+ }
111
+ return true;
112
+ }
105
113
  get name() {
106
114
  if (!this.firstName) {
107
115
  return this.lastName;
@@ -215,6 +223,28 @@ export class MemberDetails extends AutoEncoder {
215
223
  }
216
224
  }
217
225
  }
226
+ updateAddressPatch(oldValue, newValue) {
227
+ const str = oldValue.toString();
228
+ let patch = MemberDetails.patch({});
229
+ let changed = false;
230
+ if (this.address && this.address.toString() == str) {
231
+ patch = patch.patch({ address: newValue });
232
+ changed = true;
233
+ }
234
+ for (const parent of this.parents) {
235
+ if (parent.address && parent.address.toString() == str) {
236
+ //parent.address = newValue
237
+ const arr = new PatchableArray();
238
+ arr.addPatch(Parent.patch({ id: parent.id, address: newValue }));
239
+ patch = patch.patch({ parents: arr });
240
+ changed = true;
241
+ }
242
+ }
243
+ if (changed) {
244
+ return patch;
245
+ }
246
+ return null;
247
+ }
218
248
  /**
219
249
  * This will SET the parent
220
250
  */
@@ -225,6 +255,50 @@ export class MemberDetails extends AutoEncoder {
225
255
  }
226
256
  }
227
257
  }
258
+ /**
259
+ * This will SET the parent
260
+ */
261
+ updateParentPatch(parent) {
262
+ let patch = MemberDetails.patch({});
263
+ let changed = false;
264
+ for (const [index, _parent] of this.parents.entries()) {
265
+ if (_parent.id == parent.id || _parent.isEqual(parent)) {
266
+ const arr = new PatchableArray();
267
+ // Assure we auto correct possible duplicates
268
+ arr.addDelete(_parent.id);
269
+ arr.addDelete(_parent.id);
270
+ arr.addPut(parent);
271
+ patch = patch.patch({ parents: arr });
272
+ changed = true;
273
+ }
274
+ }
275
+ if (changed) {
276
+ return patch;
277
+ }
278
+ return null;
279
+ }
280
+ /**
281
+ * This will SET the parent
282
+ */
283
+ updateEmergencyContactPatch(emergencyContact) {
284
+ let patch = MemberDetails.patch({});
285
+ let changed = false;
286
+ for (const [index, _emergencyContact] of this.emergencyContacts.entries()) {
287
+ if (_emergencyContact.id == emergencyContact.id || _emergencyContact.isEqual(emergencyContact)) {
288
+ const arr = new PatchableArray();
289
+ // Assure we auto correct possible duplicates
290
+ arr.addDelete(_emergencyContact.id);
291
+ arr.addDelete(_emergencyContact.id);
292
+ arr.addPut(emergencyContact);
293
+ patch = patch.patch({ emergencyContacts: arr });
294
+ changed = true;
295
+ }
296
+ }
297
+ if (changed) {
298
+ return patch;
299
+ }
300
+ return null;
301
+ }
228
302
  /**
229
303
  * This will add or update the parent (possibily partially if not all data is present)
230
304
  */
@@ -280,32 +354,6 @@ export class MemberDetails extends AutoEncoder {
280
354
  }
281
355
  this.parents.push(parent);
282
356
  }
283
- /**
284
- * @deprecated
285
- * This will add or update the parent (possibily partially if not all data is present)
286
- */
287
- addRecord(record) {
288
- for (const [index, _record] of this.records.entries()) {
289
- if (_record.type === record.type) {
290
- this.records[index] = record;
291
- return;
292
- }
293
- }
294
- this.records.push(record);
295
- }
296
- /**
297
- * @deprecated
298
- */
299
- removeRecord(type) {
300
- for (let index = this.records.length - 1; index >= 0; index--) {
301
- const record = this.records[index];
302
- if (record.type === type) {
303
- this.records.splice(index, 1);
304
- // Keep going to fix possible previous errors that caused duplicate types
305
- // This is safe because we loop backwards
306
- }
307
- }
308
- }
309
357
  get parentsHaveAccess() {
310
358
  return (this.age && (this.age < 18 || (this.age < 24 && !this.address)));
311
359
  }
@@ -386,9 +434,6 @@ export class MemberDetails extends AutoEncoder {
386
434
  this.emergencyContacts = other.emergencyContacts;
387
435
  }
388
436
  this.reviewTimes.merge(other.reviewTimes);
389
- for (const record of other.records) {
390
- this.addRecord(record);
391
- }
392
437
  if (other.requiresFinancialSupport && (!this.requiresFinancialSupport || this.requiresFinancialSupport.date < other.requiresFinancialSupport.date)) {
393
438
  this.requiresFinancialSupport = other.requiresFinancialSupport;
394
439
  }
@@ -396,14 +441,14 @@ export class MemberDetails extends AutoEncoder {
396
441
  this.dataPermissions = other.dataPermissions;
397
442
  }
398
443
  // Merge answers
399
- const newAnswers = this.recordAnswers.slice();
400
- for (const answer of other.recordAnswers) {
401
- const existingIndex = newAnswers.findIndex(a => a.settings.id === answer.settings.id);
402
- if (existingIndex == -1) {
403
- newAnswers.push(answer);
444
+ const newAnswers = new Map(this.recordAnswers);
445
+ for (const answer of other.recordAnswers.values()) {
446
+ const existing = newAnswers.get(answer.settings.id);
447
+ if (!existing) {
448
+ newAnswers.set(answer.settings.id, answer);
404
449
  }
405
- else if (answer.date >= newAnswers[existingIndex].date) {
406
- newAnswers.splice(existingIndex, 1, answer);
450
+ else if (answer.date >= existing.date) {
451
+ newAnswers.set(answer.settings.id, answer);
407
452
  }
408
453
  else {
409
454
  // keep existing, this one is more up-to-date, don't add the other answer
@@ -411,175 +456,6 @@ export class MemberDetails extends AutoEncoder {
411
456
  }
412
457
  this.recordAnswers = newAnswers;
413
458
  }
414
- static getBaseFilterDefinitions() {
415
- // When you make changes here, make sure the ID's match the those of MemberDetailsWithGroups
416
- return [
417
- new NumberFilterDefinition({
418
- id: "member_age",
419
- name: "Leeftijd",
420
- getValue: (details) => {
421
- var _a;
422
- return (_a = details.age) !== null && _a !== void 0 ? _a : 99;
423
- },
424
- floatingPoint: false
425
- }),
426
- new ChoicesFilterDefinition({
427
- id: "member_gender",
428
- name: "Geslacht",
429
- choices: [
430
- new ChoicesFilterChoice(Gender.Male, "Man"),
431
- new ChoicesFilterChoice(Gender.Female, "Vrouw"),
432
- new ChoicesFilterChoice(Gender.Other, "Andere"),
433
- ],
434
- getValue: (details) => {
435
- return [details.gender];
436
- },
437
- defaultMode: ChoicesFilterMode.Or
438
- })
439
- ];
440
- }
441
- upgradeFromLegacy(organizationMeta) {
442
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
443
- if (!this.requiresFinancialSupport) {
444
- this.requiresFinancialSupport = BooleanStatus.create({
445
- value: !!this.records.find(r => r.type === LegacyRecordType.FinancialProblems),
446
- date: (_a = this.reviewTimes.getLastReview("records")) !== null && _a !== void 0 ? _a : new Date()
447
- });
448
- }
449
- if (!this.dataPermissions) {
450
- this.dataPermissions = BooleanStatus.create({
451
- value: !!this.records.find(r => r.type === LegacyRecordType.DataPermissions),
452
- date: (_b = this.reviewTimes.getLastReview("records")) !== null && _b !== void 0 ? _b : new Date()
453
- });
454
- }
455
- for (const record of this.records) {
456
- // Mi ma migrate
457
- const settings = RecordFactory.create(record.type);
458
- if (!settings) {
459
- continue;
460
- }
461
- if (record.type === LegacyRecordType.PicturePermissions) {
462
- const answer = RecordChooseOneAnswer.create({
463
- settings,
464
- selectedChoice: RecordChoice.create({
465
- id: "yes",
466
- name: "Ja, ik geef toestemming",
467
- }),
468
- date: new Date(2021, 0, 1), // Always give it the same date
469
- reviewedAt: (_c = this.reviewTimes.getLastReview("records")) !== null && _c !== void 0 ? _c : null
470
- });
471
- this.recordAnswers.push(answer);
472
- }
473
- else if (record.type === LegacyRecordType.GroupPicturePermissions) {
474
- // Do not add if we already have full permission
475
- if (this.records.find(r => r.type === LegacyRecordType.PicturePermissions)) {
476
- continue;
477
- }
478
- const answer = RecordChooseOneAnswer.create({
479
- settings,
480
- selectedChoice: RecordChoice.create({
481
- id: "groups_only",
482
- name: "Ik geef enkel toestemming voor groepsfoto's",
483
- warning: RecordWarning.create({
484
- id: "",
485
- text: "Enkel toestemming voor groepsfoto's",
486
- type: RecordWarningType.Error
487
- })
488
- }),
489
- date: new Date(2021, 0, 1), // Always give it the same date
490
- reviewedAt: (_d = this.reviewTimes.getLastReview("records")) !== null && _d !== void 0 ? _d : null
491
- });
492
- this.recordAnswers.push(answer);
493
- }
494
- else if (settings.type === RecordType.Checkbox) {
495
- const answer = RecordCheckboxAnswer.create({
496
- settings,
497
- selected: true,
498
- comments: record.description ? record.description : undefined,
499
- date: new Date(2021, 0, 1), // Always give it the same date
500
- reviewedAt: (_e = this.reviewTimes.getLastReview("records")) !== null && _e !== void 0 ? _e : null
501
- });
502
- this.recordAnswers.push(answer);
503
- }
504
- else if (settings.type === RecordType.Textarea) {
505
- const answer = RecordTextAnswer.create({
506
- settings,
507
- value: record.description ? record.description : null,
508
- date: new Date(2021, 0, 1), // Always give it the same date
509
- reviewedAt: (_f = this.reviewTimes.getLastReview("records")) !== null && _f !== void 0 ? _f : null
510
- });
511
- this.recordAnswers.push(answer);
512
- }
513
- else {
514
- throw new Error("Unsupported type " + settings.type);
515
- }
516
- }
517
- // Complete with unselected properties
518
- const age = (_g = this.age) !== null && _g !== void 0 ? _g : 18;
519
- for (const record of organizationMeta.recordsConfiguration.recordCategories.flatMap(c => c.getAllRecords())) {
520
- const answer = this.recordAnswers.find(a => a.settings.id == record.id);
521
- if (answer) {
522
- continue;
523
- }
524
- // Member is older than 18 years, and no permissions for medicines
525
- if (record.id === "legacy-type-" + LegacyRecordType.PicturePermissions) {
526
- const alternativeAnswer = this.recordAnswers.find(a => a.settings.id == "legacy-type-" + LegacyRecordType.GroupPicturePermissions);
527
- if (alternativeAnswer) {
528
- continue;
529
- }
530
- // No permissions
531
- const a = RecordChooseOneAnswer.create({
532
- settings: record,
533
- selectedChoice: RecordChoice.create({
534
- id: "no",
535
- name: "Nee, ik geef geen toestemming",
536
- warning: RecordWarning.create({
537
- id: "",
538
- text: "Geen toestemming voor publicatie foto's",
539
- type: RecordWarningType.Error
540
- })
541
- }),
542
- date: new Date(2021, 0, 1), // Always give it the same date
543
- reviewedAt: (_h = this.reviewTimes.getLastReview("records")) !== null && _h !== void 0 ? _h : null
544
- });
545
- this.recordAnswers.push(a);
546
- continue;
547
- }
548
- if (record.type !== RecordType.Checkbox) {
549
- continue;
550
- }
551
- // Member is older than 18 years, and no permissions for medicines
552
- if (record.id === "legacy-type-" + LegacyRecordType.MedicinePermissions && (age !== null && age !== void 0 ? age : 18) >= 18) {
553
- // Don't add this property
554
- continue;
555
- }
556
- const a = RecordCheckboxAnswer.create({
557
- settings: record,
558
- selected: false,
559
- date: new Date(2021, 0, 1), // Always give it the same date
560
- reviewedAt: (_j = this.reviewTimes.getLastReview("records")) !== null && _j !== void 0 ? _j : null
561
- });
562
- this.recordAnswers.push(a);
563
- }
564
- // Doctor
565
- if (this.doctor) {
566
- this.recordAnswers.push(RecordTextAnswer.create({
567
- settings: RecordFactory.createDoctorName(),
568
- value: this.doctor.name,
569
- date: new Date(2021, 0, 1), // Always give it the same date
570
- reviewedAt: (_k = this.reviewTimes.getLastReview("records")) !== null && _k !== void 0 ? _k : null
571
- }));
572
- this.recordAnswers.push(RecordTextAnswer.create({
573
- settings: RecordFactory.createDoctorPhone(),
574
- value: this.doctor.phone,
575
- date: new Date(2021, 0, 1), // Always give it the same date
576
- reviewedAt: (_l = this.reviewTimes.getLastReview("records")) !== null && _l !== void 0 ? _l : null
577
- }));
578
- }
579
- // Clear outdated data
580
- this.doctor = null;
581
- this.records = [];
582
- }
583
459
  getEmailReplacements() {
584
460
  return [
585
461
  Replacement.create({
@@ -629,61 +505,51 @@ __decorate([
629
505
  field({ decoder: new ArrayDecoder(EmergencyContact) })
630
506
  ], MemberDetails.prototype, "emergencyContacts", void 0);
631
507
  __decorate([
632
- field({ decoder: new ArrayDecoder(RecordAnswerDecoder), version: 120 })
508
+ field({ decoder: new ArrayDecoder(RecordAnswerDecoder), version: 120 }),
509
+ field({
510
+ decoder: new MapDecoder(StringDecoder, RecordAnswerDecoder),
511
+ version: 252,
512
+ upgrade: (old) => {
513
+ const map = new Map();
514
+ for (const answer of old) {
515
+ map.set(answer.settings.id, answer);
516
+ }
517
+ return map;
518
+ }
519
+ })
633
520
  ], MemberDetails.prototype, "recordAnswers", void 0);
634
521
  __decorate([
635
- field({ decoder: new ArrayDecoder(OldRecord) }),
522
+ field({ decoder: BooleanStatus, version: 117, optional: true }),
636
523
  field({
637
- decoder: new ArrayDecoder(LegacyRecord), version: 54, upgrade: (old) => {
638
- const addIfNotFound = new Map();
639
- addIfNotFound.set(LegacyRecordType.DataPermissions, true);
640
- addIfNotFound.set(LegacyRecordType.PicturePermissions, true);
641
- addIfNotFound.set(LegacyRecordType.GroupPicturePermissions, false);
642
- addIfNotFound.set(LegacyRecordType.MedicinePermissions, true);
643
- const result = old.flatMap((o) => {
644
- // Does this type exist in LegacyRecordType?
645
- if (Object.values(LegacyRecordType).includes(o.type)) {
646
- return [LegacyRecord.create(o)]; // compatible
647
- }
648
- if (o.type === OldRecordType.NoPictures) {
649
- // Do not add picture permissions
650
- addIfNotFound.set(LegacyRecordType.PicturePermissions, false);
651
- }
652
- if (o.type === OldRecordType.OnlyGroupPictures) {
653
- // Yay
654
- addIfNotFound.set(LegacyRecordType.PicturePermissions, false);
655
- addIfNotFound.set(LegacyRecordType.GroupPicturePermissions, true);
656
- }
657
- if (o.type === OldRecordType.NoData) {
658
- // Yay
659
- addIfNotFound.set(LegacyRecordType.DataPermissions, false);
660
- }
661
- if (o.type === OldRecordType.NoPermissionForMedicines) {
662
- // Yay
663
- addIfNotFound.set(LegacyRecordType.MedicinePermissions, false);
664
- }
665
- return [];
666
- });
667
- for (const [key, add] of addIfNotFound.entries()) {
668
- if (add) {
669
- result.push(LegacyRecord.create({
670
- type: key
671
- }));
672
- }
524
+ decoder: BooleanStatus,
525
+ version: 258,
526
+ optional: false,
527
+ nullable: true,
528
+ downgrade: (newValue) => newValue === null ? undefined : newValue,
529
+ upgrade: (oldValue) => {
530
+ if (!oldValue) {
531
+ return null;
673
532
  }
674
- return result;
533
+ return oldValue;
675
534
  }
676
535
  })
677
- ], MemberDetails.prototype, "records", void 0);
678
- __decorate([
679
- field({ decoder: BooleanStatus, version: 117, optional: true })
680
536
  ], MemberDetails.prototype, "requiresFinancialSupport", void 0);
681
537
  __decorate([
682
- field({ decoder: BooleanStatus, version: 117, optional: true })
538
+ field({ decoder: BooleanStatus, version: 117, optional: true }),
539
+ field({
540
+ decoder: BooleanStatus,
541
+ version: 256,
542
+ optional: true,
543
+ nullable: true,
544
+ downgrade: (newValue) => newValue === null ? undefined : newValue,
545
+ upgrade: (oldValue) => {
546
+ if (!oldValue) {
547
+ return null;
548
+ }
549
+ return oldValue;
550
+ }
551
+ })
683
552
  ], MemberDetails.prototype, "dataPermissions", void 0);
684
- __decorate([
685
- field({ decoder: EmergencyContact, nullable: true })
686
- ], MemberDetails.prototype, "doctor", void 0);
687
553
  __decorate([
688
554
  field({ decoder: DateDecoder, nullable: true, version: 20, field: "lastReviewed" }),
689
555
  field({ decoder: ReviewTimes, version: 71, upgrade: (oldDate) => {
@@ -697,7 +563,4 @@ __decorate([
697
563
  return times;
698
564
  } })
699
565
  ], MemberDetails.prototype, "reviewTimes", void 0);
700
- __decorate([
701
- field({ decoder: BooleanDecoder, version: 69 })
702
- ], MemberDetails.prototype, "isRecovered", void 0);
703
566
  //# sourceMappingURL=MemberDetails.js.map