@stamhoofd/structures 2.1.1 → 2.1.3

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 +26 -1
  34. package/dist/src/Platform.d.ts.map +1 -1
  35. package/dist/src/Platform.js +72 -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 +26 -1
  180. package/esm/dist/src/Platform.d.ts.map +1 -1
  181. package/esm/dist/src/Platform.js +70 -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,345 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RegisterCartValidator = void 0;
4
- const simple_errors_1 = require("@simonbackx/simple-errors");
5
- const utility_1 = require("@stamhoofd/utility");
6
- const GroupSettings_1 = require("../../GroupSettings");
7
- /**
8
- * Class that can validate a Cart and registrations.
9
- * This is usefull to share the validation between backend and frontend (for both the encrypted and non-encrypted versions)
10
- */
11
- class RegisterCartValidator {
12
- static isAlreadyRegistered(member, group, waitingList) {
13
- return !!member.registrations.find(r => r.groupId === group.id && (waitingList || r.registeredAt !== null) && r.deactivatedAt === null && r.waitingList === waitingList && r.cycle === group.cycle);
14
- }
15
- static canRegister(member, group, family, groups, categories, cart) {
16
- var _a, _b;
17
- // Already registered
18
- if (this.isAlreadyRegistered(member, group, false)) {
19
- return {
20
- closed: true,
21
- waitingList: false,
22
- message: "Al ingeschreven",
23
- description: "Je kan " + member.details.firstName + " maar één keer inschrijven voor " + group.settings.name,
24
- invited: false
25
- };
26
- }
27
- // Check all categories maximum limits
28
- if (this.hasReachedCategoryMaximum(member, group, groups, categories, cart)) {
29
- // Only happens if maximum is reached in teh cart (because maximum without cart is already checked in shouldShow)
30
- return {
31
- closed: true,
32
- waitingList: false,
33
- message: "Niet combineerbaar",
34
- description: "Je kan niet meer inschrijven voor " + group.settings.name + " omdat je al ingeschreven bent of aan het inschrijven bent voor een groep die je niet kan combineren.",
35
- invited: false
36
- };
37
- }
38
- // Check if we have an invite (doesn't matter if registrations are closed)
39
- if (member.registrations.find(r => r.groupId === group.id && r.waitingList && r.canRegister && r.cycle === group.cycle)) {
40
- // Max members doesn't matter (invites are counted into the occupancy)
41
- return {
42
- closed: false,
43
- waitingList: false,
44
- message: "Uitnodiging",
45
- description: "Je bent uitgenodigd om " + member.details.firstName + " in te schrijven voor " + group.settings.name,
46
- invited: true
47
- };
48
- }
49
- if (group.notYetOpen) {
50
- return {
51
- closed: true,
52
- waitingList: false,
53
- message: "Nog niet geopend",
54
- description: "De inschrijvingen voor " + group.settings.name + " zijn nog niet geopend.",
55
- invited: false
56
- };
57
- }
58
- if (group.closed) {
59
- return {
60
- closed: true,
61
- waitingList: false,
62
- message: "Gesloten",
63
- description: "De inschrijvingen voor " + group.settings.name + " zijn afgelopen.",
64
- invited: false
65
- };
66
- }
67
- // Check if it fits
68
- if (member.details) {
69
- if (!member.details.doesMatchGroup(group)) {
70
- return {
71
- closed: true,
72
- waitingList: false,
73
- ...member.details.getMatchingError(group),
74
- invited: false
75
- };
76
- }
77
- }
78
- // Check if registrations are limited
79
- if (group.settings.requireGroupIds.length > 0) {
80
- if (!member.registrations.find(r => {
81
- const registrationGroup = groups.find(g => g.id === r.groupId);
82
- if (!registrationGroup) {
83
- return false;
84
- }
85
- return group.settings.requireGroupIds.includes(r.groupId) && r.registeredAt !== null && r.deactivatedAt === null && !r.waitingList && r.cycle === registrationGroup.cycle;
86
- }) && !cart.find(item => group.settings.requireGroupIds.includes(item.groupId) && item.memberId === member.id && !item.waitingList)) {
87
- return {
88
- closed: true,
89
- waitingList: false,
90
- message: "Niet toegelaten",
91
- description: "Inschrijving bij " + utility_1.Formatter.joinLast(group.settings.requireGroupIds.map(id => { var _a, _b; return (_b = (_a = groups.find(g => g.id === id)) === null || _a === void 0 ? void 0 : _a.settings.name) !== null && _b !== void 0 ? _b : "Onbekend"; }), ", ", " of ") + " is verplicht voor je kan inschrijven voor " + group.settings.name,
92
- invited: false
93
- };
94
- }
95
- }
96
- // Check if registrations are limited
97
- if (group.settings.preventPreviousGroupIds.length > 0) {
98
- if (member.registrations.find(r => {
99
- const registrationGroup = groups.find(g => g.id === r.groupId);
100
- if (!registrationGroup) {
101
- return false;
102
- }
103
- return group.settings.preventPreviousGroupIds.includes(r.groupId) && r.registeredAt !== null && r.deactivatedAt === null && !r.waitingList && r.cycle === registrationGroup.cycle - 1;
104
- })) {
105
- return {
106
- closed: true,
107
- waitingList: false,
108
- message: "Niet toegelaten",
109
- description: "Inschrijven voor " + group.settings.name + " kan enkel als je de vorige keer niet was ingeschreven voor " + utility_1.Formatter.joinLast(group.settings.preventPreviousGroupIds.map(id => { var _a, _b; return (_b = (_a = groups.find(g => g.id === id)) === null || _a === void 0 ? void 0 : _a.settings.name) !== null && _b !== void 0 ? _b : "Onbekend"; }), ", ", " of "),
110
- invited: false
111
- };
112
- }
113
- }
114
- // Check if registrations are limited
115
- if (group.settings.requirePreviousGroupIds.length > 0) {
116
- if (!member.registrations.find(r => {
117
- const registrationGroup = groups.find(g => g.id === r.groupId);
118
- if (!registrationGroup) {
119
- return false;
120
- }
121
- return group.settings.requirePreviousGroupIds.includes(r.groupId) && r.registeredAt !== null && r.deactivatedAt === null && !r.waitingList && r.cycle === registrationGroup.cycle - 1;
122
- })) {
123
- return {
124
- closed: true,
125
- waitingList: false,
126
- message: "Niet toegelaten",
127
- description: "Inschrijven voor " + group.settings.name + " kan enkel als je de vorige keer was ingeschreven voor " + utility_1.Formatter.joinLast(group.settings.requirePreviousGroupIds.map(id => { var _a, _b; return (_b = (_a = groups.find(g => g.id === id)) === null || _a === void 0 ? void 0 : _a.settings.name) !== null && _b !== void 0 ? _b : "Onbekend"; }), ", ", " of "),
128
- invited: false
129
- };
130
- }
131
- }
132
- const existingMember = this.isExistingMember(member, groups) || (group.settings.priorityForFamily && !!family.find(f => this.isExistingMember(f, groups)));
133
- // Pre registrations?
134
- if (group.activePreRegistrationDate) {
135
- if (!existingMember) {
136
- return {
137
- closed: true,
138
- waitingList: false,
139
- message: "Voorinschrijvingen",
140
- description: "Momenteel zijn de voorinschrijvingen nog bezig voor " + group.settings.name + ". Dit is enkel voor bestaande leden" + (group.settings.priorityForFamily ? " en hun broers/zussen" : "") + ".",
141
- invited: false
142
- };
143
- }
144
- }
145
- if (group.settings.waitingListType === GroupSettings_1.WaitingListType.All) {
146
- if (this.isAlreadyRegistered(member, group, true)) {
147
- return {
148
- closed: true,
149
- waitingList: false,
150
- message: "Al op wachtlijst",
151
- description: member.details.firstName + " staat al op de wachtlijst voor " + group.settings.name,
152
- invited: false
153
- };
154
- }
155
- return {
156
- closed: false,
157
- waitingList: true,
158
- message: "Wachtlijst",
159
- description: (_a = this.getAlreadyInCartDescription({ member, group, cart, waitingList: true })) !== null && _a !== void 0 ? _a : 'Je kan inschrijven op de wachtlijst',
160
- invited: false
161
- };
162
- }
163
- if (group.settings.waitingListType === GroupSettings_1.WaitingListType.ExistingMembersFirst && !existingMember) {
164
- if (this.isAlreadyRegistered(member, group, true)) {
165
- return {
166
- closed: true,
167
- waitingList: false,
168
- message: "Al op wachtlijst",
169
- description: member.details.firstName + " staat al op de wachtlijst voor " + group.settings.name,
170
- invited: false
171
- };
172
- }
173
- return {
174
- closed: false,
175
- waitingList: true,
176
- message: "Wachtlijst nieuwe leden",
177
- description: this.getAlreadyInCartDescription({ member, group, cart, waitingList: true }),
178
- invited: false
179
- };
180
- }
181
- // Check if reached maximum with cart
182
- // Check maximum
183
- const available = group.settings.availableMembers;
184
- if (available !== null) {
185
- const count = cart.filter(item => item.groupId === group.id && item.memberId !== member.id && !item.waitingList).length;
186
- const reachedMaximum = count >= available;
187
- if (reachedMaximum) {
188
- // Check if we have a reserved spot
189
- const now = new Date();
190
- const reserved = member.registrations.find(r => r.groupId === group.id && r.reservedUntil && r.reservedUntil > now && !r.waitingList && r.registeredAt === null && r.cycle === group.cycle);
191
- if (!reserved) {
192
- if (!group.settings.waitingListIfFull) {
193
- // Maximum reached without waiting list -> closed
194
- return {
195
- closed: true,
196
- waitingList: false,
197
- message: "Volzet",
198
- description: available > 0 ? ("Er zijn nog maar " + available + " plaatsen meer vrij voor " + group.settings.name + ". Je kan " + member.details.firstName + " niet meer inschrijven.") : ("Er zijn geen plaatsen meer vrij voor " + group.settings.name + ". Je kan " + member.details.firstName + " niet meer inschrijven."),
199
- invited: false
200
- };
201
- }
202
- if (this.isAlreadyRegistered(member, group, true)) {
203
- return {
204
- closed: true,
205
- waitingList: false,
206
- message: "Al op wachtlijst",
207
- description: member.details.firstName + " staat al op de wachtlijst voor " + group.settings.name,
208
- invited: false
209
- };
210
- }
211
- // Still allow waiting list
212
- return {
213
- closed: false,
214
- waitingList: true,
215
- message: "Wachtlijst (volzet)",
216
- description: ((_b = this.getAlreadyInCartDescription({ member, group, cart, waitingList: true })) !== null && _b !== void 0 ? _b : "") + (available > 0 ? ("Er zijn nog maar " + available + " plaatsen meer vrij voor " + group.settings.name + ". Je kan " + member.details.firstName + " niet meer inschrijven. Je kan wel nog inschrijven voor de wachtlijst.") : "Er zijn geen plaatsen meer vrij voor " + group.settings.name + ". Je kan " + member.details.firstName + " niet meer inschrijven. Je kan wel nog inschrijven voor de wachtlijst."),
217
- invited: false
218
- };
219
- }
220
- else {
221
- return {
222
- closed: false,
223
- waitingList: false,
224
- message: "Tijdelijk gereserveerd",
225
- invited: false
226
- };
227
- }
228
- }
229
- }
230
- // Normal registrations available
231
- return {
232
- closed: false,
233
- waitingList: false,
234
- message: group.activePreRegistrationDate ? 'Voorinschrijvingen' : undefined,
235
- description: this.getAlreadyInCartDescription({ member, group, cart, waitingList: false }),
236
- invited: false
237
- };
238
- }
239
- static getAlreadyInCartDescription({ member, group, waitingList, cart }) {
240
- const item = cart.find(item => item.memberId === member.id && item.groupId === group.id);
241
- if (!item) {
242
- return;
243
- }
244
- if (item.waitingList) {
245
- if (!waitingList) {
246
- // From waitingList -> normal registration is possible and doesn't need a warning
247
- return;
248
- }
249
- return "Dit staat klaar in jouw mandje. Bevestig het mandje om jouw plaats op de wachtlijst te bevestigen. ";
250
- }
251
- return "Dit staat klaar in jouw mandje. Bevestig het mandje om jouw plaats om jouw inschrijving te bevestigen. ";
252
- }
253
- /**
254
- * Return true if this member was registered in the previous year (current doesn't count)
255
- */
256
- static isExistingMember(member, groups) {
257
- if (member.registrations.length === 0) {
258
- return false;
259
- }
260
- // Check if no year was skipped
261
- for (const registration of member.registrations) {
262
- const group = groups.find(g => g.id === registration.groupId);
263
- if (group === undefined) {
264
- // Archived or deleted. Use the registeredAt date (should be in the last 1.5 years)
265
- if (registration.registeredAt !== null && registration.deactivatedAt === null && registration.waitingList === false && registration.registeredAt > new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 365 * 1.5)) {
266
- return true;
267
- }
268
- continue;
269
- }
270
- if (!registration.waitingList && registration.registeredAt !== null && registration.deactivatedAt === null && group && registration.cycle === group.cycle - 1) {
271
- // This was the previous year
272
- return true;
273
- }
274
- }
275
- return false;
276
- }
277
- /**
278
- * True if you cannot register because you reached the maximum of a group category
279
- */
280
- static hasReachedCategoryMaximum(member, group, groups, categories, cart = []) {
281
- const parents = group.getParentCategories(categories, false);
282
- for (const parent of parents) {
283
- if (parent.settings.maximumRegistrations !== null) {
284
- const count = member.registrations.filter(r => {
285
- if (r.registeredAt !== null && !r.waitingList && r.deactivatedAt === null && parent.groupIds.includes(r.groupId)) {
286
- // Check cycle (only count current periods, not previous periods)
287
- const g = groups.find(gg => gg.id === r.groupId);
288
- return g && g.cycle === r.cycle;
289
- }
290
- return false;
291
- }).length;
292
- const waiting = cart.filter(item => {
293
- return item.memberId === member.id && parent.groupIds.includes(item.groupId) && item.groupId !== group.id;
294
- }).length;
295
- if (count + waiting >= parent.settings.maximumRegistrations) {
296
- return true;
297
- }
298
- }
299
- }
300
- return false;
301
- }
302
- static validateItem(item, family, groups, categories, previousItems) {
303
- const member = family.find(m => m.id === item.memberId);
304
- const group = groups.find(g => g.id === item.groupId);
305
- if (!member) {
306
- throw new simple_errors_1.SimpleError({
307
- code: "invalid_member",
308
- message: "Invalid member",
309
- human: "Het lid dat je wilt inschrijven bestaat niet (meer)"
310
- });
311
- }
312
- if (!group) {
313
- throw new simple_errors_1.SimpleError({
314
- code: "invalid_group",
315
- message: "Invalid group",
316
- human: "De inschrijvingsgroep waarvoor je wilt inschrijven bestaat niet (meer)"
317
- });
318
- }
319
- const canRegister = this.canRegister(member, group, family, groups, categories, previousItems);
320
- if (canRegister.closed) {
321
- throw new simple_errors_1.SimpleError({
322
- code: "invalid_registration",
323
- message: "Registration not possible anymore",
324
- // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
325
- human: canRegister.description ? canRegister.description : ("Je kan " + member.details.firstName + " niet meer inschrijven voor " + group.settings.name + (canRegister.message ? (' (' + canRegister.message + ')') : ''))
326
- });
327
- }
328
- if (!item.waitingList && canRegister.waitingList) {
329
- throw new simple_errors_1.SimpleError({
330
- code: "invalid_registration",
331
- message: "Registration not possible anymore, waiting list required",
332
- human: canRegister.description ? canRegister.description : ("Je kan " + member.details.firstName + " enkel nog inschrijven voor de wachtlijst van " + group.settings.name + (canRegister.message ? (' (' + canRegister.message + ')') : ''))
333
- });
334
- }
335
- if (item.waitingList && !canRegister.waitingList) {
336
- throw new simple_errors_1.SimpleError({
337
- code: "invalid_registration",
338
- message: "Waiting list not possible",
339
- human: "Je hoeft " + member.details.firstName + " niet langer op de wachtlijst van " + group.settings.name + " in te schrijven. We hebben het uit je winkelmandje verwijderd, voeg het opnieuw toe zonder wachtlijst."
340
- });
341
- }
342
- }
343
- }
344
- exports.RegisterCartValidator = RegisterCartValidator;
345
- //# sourceMappingURL=RegisterCartValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegisterCartValidator.js","sourceRoot":"","sources":["../../../../src/members/checkout/RegisterCartValidator.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { AutoEncoder } from '@simonbackx/simple-encoding';
2
- import { MemberBalanceItem } from '../../BalanceItemDetailed';
3
- import { Group } from '../../Group';
4
- import { GroupCategory } from '../../GroupCategory';
5
- import { Organization } from '../../Organization';
6
- import { MemberWithRegistrations } from '../MemberWithRegistrations';
7
- import { UnknownMemberWithRegistrations } from './UnknownMemberWithRegistrations';
8
- /**
9
- * Version destined for the server and client side storage
10
- */
11
- export declare class IDRegisterItem extends AutoEncoder {
12
- memberId: string;
13
- groupId: string;
14
- reduced: boolean;
15
- waitingList: boolean;
16
- /**
17
- * Will get validated. Is used to check if the price has changed between frontend and backend
18
- */
19
- calculatedPrice: number;
20
- convert(organization: Organization, members: MemberWithRegistrations[]): RegisterItem | null;
21
- validate(family: UnknownMemberWithRegistrations[], groups: Group[], categories: GroupCategory[], previousItems: (IDRegisterItem | RegisterItem)[]): void;
22
- }
23
- /**
24
- * Used in memory in the client
25
- * Do not extend IDRegisterItem to prevent leaking information when encoding a RegisterItem as IDRegisterItem.
26
- * This version is not encodeable
27
- */
28
- export declare class RegisterItem {
29
- member: MemberWithRegistrations;
30
- group: Group;
31
- reduced: boolean;
32
- waitingList: boolean;
33
- calculatedPrice: number;
34
- /**
35
- * Unique identifier to check if two cart items are the same
36
- */
37
- get id(): string;
38
- get groupId(): string;
39
- get memberId(): string;
40
- constructor(member: MemberWithRegistrations, group: Group, settings: {
41
- reduced: boolean;
42
- waitingList: boolean;
43
- });
44
- convert(): IDRegisterItem;
45
- validate(family: UnknownMemberWithRegistrations[], groups: Group[], categories: GroupCategory[], previousItems: (IDRegisterItem | RegisterItem)[]): void;
46
- }
47
- /**
48
- * Contains an intention to pay for an outstanding balance item
49
- */
50
- export declare class BalanceItemCartItem extends AutoEncoder {
51
- get id(): string;
52
- item: MemberBalanceItem;
53
- /**
54
- * Amount you want to pay of that balance item
55
- */
56
- price: number;
57
- validate(balanceItems: MemberBalanceItem[]): void;
58
- }
59
- //# sourceMappingURL=RegisterItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegisterItem.d.ts","sourceRoot":"","sources":["../../../../src/members/checkout/RegisterItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwD,MAAM,6BAA6B,CAAC;AAGhH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAE3C,QAAQ,EAAE,MAAM,CAAA;IAGhB,OAAO,EAAE,MAAM,CAAA;IAGf,OAAO,EAAE,OAAO,CAAA;IAGhB,WAAW,UAAQ;IAEnB;;OAEG;IAEH,eAAe,SAAI;IAEnB,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,YAAY,GAAG,IAAI;IAY5F,QAAQ,CAAC,MAAM,EAAE,8BAA8B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE;CAGpJ;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACrB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,UAAQ;IACf,WAAW,UAAQ;IACnB,eAAe,SAAI;IAEnB;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;gBAEW,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;QACjE,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,EAAE,OAAO,CAAA;KACvB;IAOD,OAAO,IAAI,cAAc;IAQzB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE;CAGpJ;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAChD,IAAI,EAAE,WAEL;IAGD,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IAEH,KAAK,SAAI;IAET,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE;CAwC7C"}
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BalanceItemCartItem = exports.RegisterItem = exports.IDRegisterItem = void 0;
4
- const tslib_1 = require("tslib");
5
- const simple_encoding_1 = require("@simonbackx/simple-encoding");
6
- const simple_errors_1 = require("@simonbackx/simple-errors");
7
- const BalanceItemDetailed_1 = require("../../BalanceItemDetailed");
8
- const RegisterCartValidator_1 = require("./RegisterCartValidator");
9
- /**
10
- * Version destined for the server and client side storage
11
- */
12
- class IDRegisterItem extends simple_encoding_1.AutoEncoder {
13
- constructor() {
14
- super(...arguments);
15
- this.waitingList = false;
16
- /**
17
- * Will get validated. Is used to check if the price has changed between frontend and backend
18
- */
19
- this.calculatedPrice = 0;
20
- }
21
- convert(organization, members) {
22
- const group = organization.groups.find(g => g.id === this.groupId);
23
- if (!group) {
24
- return null;
25
- }
26
- const member = members.find(g => g.id === this.memberId);
27
- if (!member) {
28
- return null;
29
- }
30
- return new RegisterItem(member, group, this);
31
- }
32
- validate(family, groups, categories, previousItems) {
33
- RegisterCartValidator_1.RegisterCartValidator.validateItem(this, family, groups, categories, previousItems);
34
- }
35
- }
36
- exports.IDRegisterItem = IDRegisterItem;
37
- tslib_1.__decorate([
38
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.StringDecoder })
39
- ], IDRegisterItem.prototype, "memberId", void 0);
40
- tslib_1.__decorate([
41
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.StringDecoder })
42
- ], IDRegisterItem.prototype, "groupId", void 0);
43
- tslib_1.__decorate([
44
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.BooleanDecoder })
45
- ], IDRegisterItem.prototype, "reduced", void 0);
46
- tslib_1.__decorate([
47
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.BooleanDecoder })
48
- ], IDRegisterItem.prototype, "waitingList", void 0);
49
- tslib_1.__decorate([
50
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
51
- ], IDRegisterItem.prototype, "calculatedPrice", void 0);
52
- /**
53
- * Used in memory in the client
54
- * Do not extend IDRegisterItem to prevent leaking information when encoding a RegisterItem as IDRegisterItem.
55
- * This version is not encodeable
56
- */
57
- class RegisterItem {
58
- /**
59
- * Unique identifier to check if two cart items are the same
60
- */
61
- get id() {
62
- return this.member.id + "." + this.group.id;
63
- }
64
- get groupId() {
65
- return this.group.id;
66
- }
67
- get memberId() {
68
- return this.member.id;
69
- }
70
- constructor(member, group, settings) {
71
- this.reduced = false;
72
- this.waitingList = false;
73
- this.calculatedPrice = 0;
74
- this.member = member;
75
- this.group = group;
76
- this.reduced = settings.reduced;
77
- this.waitingList = settings.waitingList;
78
- }
79
- convert() {
80
- return IDRegisterItem.create(Object.assign({
81
- memberId: this.member.id,
82
- groupId: this.group.id,
83
- calculatedPrice: this.calculatedPrice
84
- }, this));
85
- }
86
- validate(family, groups, categories, previousItems) {
87
- RegisterCartValidator_1.RegisterCartValidator.validateItem(this, family, groups, categories, previousItems);
88
- }
89
- }
90
- exports.RegisterItem = RegisterItem;
91
- /**
92
- * Contains an intention to pay for an outstanding balance item
93
- */
94
- class BalanceItemCartItem extends simple_encoding_1.AutoEncoder {
95
- constructor() {
96
- super(...arguments);
97
- /**
98
- * Amount you want to pay of that balance item
99
- */
100
- this.price = 0;
101
- }
102
- get id() {
103
- return this.item.id;
104
- }
105
- validate(balanceItems) {
106
- const found = balanceItems.find(b => b.id === this.item.id);
107
- if (!found) {
108
- throw new simple_errors_1.SimpleError({
109
- code: "not_found",
110
- message: "Eén van de openstaande bedragen is niet meer beschikbaar."
111
- });
112
- }
113
- this.item = found;
114
- const maxPrice = BalanceItemDetailed_1.MemberBalanceItem.getOutstandingBalance([found]).total; // Allow to start multiple payments for pending balance items in case of payment cancellations
115
- if (maxPrice === 0) {
116
- throw new simple_errors_1.SimpleError({
117
- code: "not_found",
118
- message: "Eén van de openstaande bedragen is ondertussen al betaald."
119
- });
120
- }
121
- if (maxPrice < 0) {
122
- // Allow negative prices
123
- if (this.price > 0) {
124
- this.price = maxPrice;
125
- }
126
- if (this.price < maxPrice) {
127
- // Don't throw: we'll throw a different error during checkout if the price has changed
128
- this.price = maxPrice;
129
- }
130
- return;
131
- }
132
- if (this.price < 0) {
133
- this.price = maxPrice;
134
- }
135
- if (this.price > maxPrice) {
136
- // Don't throw: we'll throw a different error during checkout if the price has changed
137
- this.price = maxPrice;
138
- }
139
- }
140
- }
141
- exports.BalanceItemCartItem = BalanceItemCartItem;
142
- tslib_1.__decorate([
143
- (0, simple_encoding_1.field)({ decoder: BalanceItemDetailed_1.MemberBalanceItem })
144
- ], BalanceItemCartItem.prototype, "item", void 0);
145
- tslib_1.__decorate([
146
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
147
- ], BalanceItemCartItem.prototype, "price", void 0);
148
- //# sourceMappingURL=RegisterItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegisterItem.js","sourceRoot":"","sources":["../../../../src/members/checkout/RegisterItem.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { AutoEncoder } from '@simonbackx/simple-encoding';
2
- import { Member } from '../members/Member';
3
- /**
4
- * Equivalent of KeychainedResponse, but this one is patchable and used by the patchusermembers endpoint
5
- */
6
- export declare class KeychainedMembers extends AutoEncoder {
7
- members: Member[];
8
- /**
9
- * @deprecated
10
- * Can get dropped after a few months
11
- */
12
- keychainItems: never[];
13
- }
14
- //# sourceMappingURL=KeychainedMembers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KeychainedMembers.d.ts","sourceRoot":"","sources":["../../../../src/grouping/KeychainedMembers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAS,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAE9C,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB;;;OAGG;IAEH,aAAa,EAAE,KAAK,EAAE,CAAK;CAC9B"}
@@ -1,23 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { AnyDecoder, ArrayDecoder, AutoEncoder, field } from '@simonbackx/simple-encoding';
3
- import { Member } from '../members/Member';
4
- /**
5
- * Equivalent of KeychainedResponse, but this one is patchable and used by the patchusermembers endpoint
6
- */
7
- export class KeychainedMembers extends AutoEncoder {
8
- constructor() {
9
- super(...arguments);
10
- /**
11
- * @deprecated
12
- * Can get dropped after a few months
13
- */
14
- this.keychainItems = [];
15
- }
16
- }
17
- __decorate([
18
- field({ decoder: new ArrayDecoder(Member) })
19
- ], KeychainedMembers.prototype, "members", void 0);
20
- __decorate([
21
- field({ decoder: new ArrayDecoder(AnyDecoder), optional: true })
22
- ], KeychainedMembers.prototype, "keychainItems", void 0);
23
- //# sourceMappingURL=KeychainedMembers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KeychainedMembers.js","sourceRoot":"","sources":["../../../../src/grouping/KeychainedMembers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAAlD;;QAII;;;WAGG;QAEH,kBAAa,GAAY,EAAE,CAAA;IAC/B,CAAC;CAAA;AARG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;kDAC5B;AAOjB;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wDACtC"}