@opfr/services 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/index.es.js +9465 -130309
  2. package/dist/index.umd.js +16 -399
  3. package/dist/services/crew/definition/schema.d.ts +5 -4
  4. package/dist/services/crew/definition/schema.d.ts.map +1 -1
  5. package/dist/services/crew/definition/schema.js +2 -1
  6. package/dist/services/crew/definition/schema.js.map +1 -1
  7. package/dist/services/crew/index.d.ts +4 -1
  8. package/dist/services/crew/index.d.ts.map +1 -1
  9. package/dist/services/crew/index.js +4 -1
  10. package/dist/services/crew/index.js.map +1 -1
  11. package/dist/services/crew/process/findOne.d.ts +6 -5
  12. package/dist/services/crew/process/findOne.d.ts.map +1 -1
  13. package/dist/services/crew/process/findOne.js.map +1 -1
  14. package/dist/services/crew/query/getters.d.ts +8 -0
  15. package/dist/services/crew/query/getters.d.ts.map +1 -0
  16. package/dist/services/crew/query/getters.js +42 -0
  17. package/dist/services/crew/query/getters.js.map +1 -0
  18. package/dist/services/crew/query/updates.d.ts +5 -0
  19. package/dist/services/crew/query/updates.d.ts.map +1 -1
  20. package/dist/services/crew/query/updates.js +61 -0
  21. package/dist/services/crew/query/updates.js.map +1 -1
  22. package/dist/services/crew/types.d.ts +3 -2
  23. package/dist/services/crew/types.d.ts.map +1 -1
  24. package/dist/services/index.d.ts +1 -0
  25. package/dist/services/index.d.ts.map +1 -1
  26. package/dist/services/index.js +1 -0
  27. package/dist/services/index.js.map +1 -1
  28. package/dist/services/invitations/definition/model.d.ts +30 -0
  29. package/dist/services/invitations/definition/model.d.ts.map +1 -0
  30. package/dist/services/invitations/definition/model.js +4 -0
  31. package/dist/services/invitations/definition/model.js.map +1 -0
  32. package/dist/services/invitations/definition/schema.d.ts +43 -0
  33. package/dist/services/invitations/definition/schema.d.ts.map +1 -0
  34. package/dist/services/invitations/definition/schema.js +13 -0
  35. package/dist/services/invitations/definition/schema.js.map +1 -0
  36. package/dist/services/invitations/index.d.ts +6 -0
  37. package/dist/services/invitations/index.d.ts.map +1 -0
  38. package/dist/services/invitations/index.js +6 -0
  39. package/dist/services/invitations/index.js.map +1 -0
  40. package/dist/services/invitations/process/create.d.ts +3 -0
  41. package/dist/services/invitations/process/create.d.ts.map +1 -0
  42. package/dist/services/invitations/process/create.js +7 -0
  43. package/dist/services/invitations/process/create.js.map +1 -0
  44. package/dist/services/invitations/process/deleteMany.d.ts +3 -0
  45. package/dist/services/invitations/process/deleteMany.d.ts.map +1 -0
  46. package/dist/services/invitations/process/deleteMany.js +7 -0
  47. package/dist/services/invitations/process/deleteMany.js.map +1 -0
  48. package/dist/services/invitations/process/findOne.d.ts +3 -0
  49. package/dist/services/invitations/process/findOne.d.ts.map +1 -0
  50. package/dist/services/invitations/process/findOne.js +11 -0
  51. package/dist/services/invitations/process/findOne.js.map +1 -0
  52. package/dist/services/invitations/process/updateOne.d.ts +29 -0
  53. package/dist/services/invitations/process/updateOne.d.ts.map +1 -0
  54. package/dist/services/invitations/process/updateOne.js +5 -0
  55. package/dist/services/invitations/process/updateOne.js.map +1 -0
  56. package/dist/services/invitations/types.d.ts +42 -0
  57. package/dist/services/invitations/types.d.ts.map +1 -0
  58. package/dist/services/invitations/types.js +2 -0
  59. package/dist/services/invitations/types.js.map +1 -0
  60. package/dist/services/user/definition/schema.d.ts +5 -4
  61. package/dist/services/user/definition/schema.d.ts.map +1 -1
  62. package/dist/services/user/index.d.ts +5 -1
  63. package/dist/services/user/index.d.ts.map +1 -1
  64. package/dist/services/user/index.js +5 -1
  65. package/dist/services/user/index.js.map +1 -1
  66. package/dist/services/user/process/create.d.ts +3 -2
  67. package/dist/services/user/process/create.d.ts.map +1 -1
  68. package/dist/services/user/process/create.js +2 -2
  69. package/dist/services/user/process/create.js.map +1 -1
  70. package/dist/services/user/process/deleteOne.d.ts +2 -0
  71. package/dist/services/user/process/deleteOne.d.ts.map +1 -0
  72. package/dist/services/user/process/deleteOne.js +5 -0
  73. package/dist/services/user/process/deleteOne.js.map +1 -0
  74. package/dist/services/user/process/findOne.d.ts +8 -11
  75. package/dist/services/user/process/findOne.d.ts.map +1 -1
  76. package/dist/services/user/process/findOne.js +1 -1
  77. package/dist/services/user/process/findOne.js.map +1 -1
  78. package/dist/services/user/process/populateUser.d.ts +30 -0
  79. package/dist/services/user/process/populateUser.d.ts.map +1 -0
  80. package/dist/services/user/process/populateUser.js +50 -0
  81. package/dist/services/user/process/populateUser.js.map +1 -0
  82. package/dist/services/user/query/getters.d.ts +36 -0
  83. package/dist/services/user/query/getters.d.ts.map +1 -0
  84. package/dist/services/user/query/getters.js +92 -0
  85. package/dist/services/user/query/getters.js.map +1 -0
  86. package/dist/services/user/query/updates.d.ts +4 -0
  87. package/dist/services/user/query/updates.d.ts.map +1 -1
  88. package/dist/services/user/query/updates.js +12 -0
  89. package/dist/services/user/query/updates.js.map +1 -1
  90. package/dist/services/user/types.d.ts +36 -33
  91. package/dist/services/user/types.d.ts.map +1 -1
  92. package/dist/services/user-crew/definition/schema.d.ts +5 -4
  93. package/dist/services/user-crew/definition/schema.d.ts.map +1 -1
  94. package/dist/services/user-crew/definition/schema.js +1 -1
  95. package/dist/services/user-crew/definition/schema.js.map +1 -1
  96. package/dist/services/user-crew/index.d.ts +3 -0
  97. package/dist/services/user-crew/index.d.ts.map +1 -1
  98. package/dist/services/user-crew/index.js +3 -0
  99. package/dist/services/user-crew/index.js.map +1 -1
  100. package/dist/services/user-crew/process/exists.d.ts +37 -0
  101. package/dist/services/user-crew/process/exists.d.ts.map +1 -0
  102. package/dist/services/user-crew/process/exists.js +5 -0
  103. package/dist/services/user-crew/process/exists.js.map +1 -0
  104. package/dist/services/user-crew/process/findOne.d.ts +1 -1
  105. package/dist/services/user-crew/process/findOne.d.ts.map +1 -1
  106. package/dist/services/user-crew/query/updates.d.ts +28 -0
  107. package/dist/services/user-crew/query/updates.d.ts.map +1 -0
  108. package/dist/services/user-crew/query/updates.js +9 -0
  109. package/dist/services/user-crew/query/updates.js.map +1 -0
  110. package/dist/services/user-crew/types.d.ts +6 -2
  111. package/dist/services/user-crew/types.d.ts.map +1 -1
  112. package/dist/services/user-daily-report/definition/schema.d.ts +2 -2
  113. package/dist/services/user-daily-report/process/create.d.ts +2 -6
  114. package/dist/services/user-daily-report/process/create.d.ts.map +1 -1
  115. package/dist/services/user-daily-report/process/create.js.map +1 -1
  116. package/dist/services/user-daily-report/process/findOne.d.ts +1 -6
  117. package/dist/services/user-daily-report/process/findOne.d.ts.map +1 -1
  118. package/dist/services/user-games/definition/schema.d.ts +2 -2
  119. package/dist/services/user-games/index.d.ts +2 -0
  120. package/dist/services/user-games/index.d.ts.map +1 -1
  121. package/dist/services/user-games/index.js +2 -0
  122. package/dist/services/user-games/index.js.map +1 -1
  123. package/dist/services/user-games/process/create.d.ts +2 -6
  124. package/dist/services/user-games/process/create.d.ts.map +1 -1
  125. package/dist/services/user-games/process/create.js.map +1 -1
  126. package/dist/services/user-games/process/findOne.d.ts +1 -6
  127. package/dist/services/user-games/process/findOne.d.ts.map +1 -1
  128. package/dist/services/user-games/query/getters.d.ts +1 -0
  129. package/dist/services/user-games/query/getters.d.ts.map +1 -0
  130. package/dist/services/user-games/query/getters.js +2 -0
  131. package/dist/services/user-games/query/getters.js.map +1 -0
  132. package/dist/services/user-games/query/updates.d.ts +29 -0
  133. package/dist/services/user-games/query/updates.d.ts.map +1 -0
  134. package/dist/services/user-games/query/updates.js +20 -0
  135. package/dist/services/user-games/query/updates.js.map +1 -0
  136. package/dist/services/user-inventory/definition/schema.d.ts +2 -2
  137. package/dist/services/user-inventory/definition/schema.js +1 -1
  138. package/dist/services/user-inventory/definition/schema.js.map +1 -1
  139. package/dist/services/user-inventory/index.d.ts +4 -0
  140. package/dist/services/user-inventory/index.d.ts.map +1 -1
  141. package/dist/services/user-inventory/index.js +4 -0
  142. package/dist/services/user-inventory/index.js.map +1 -1
  143. package/dist/services/user-inventory/process/create.d.ts +2 -6
  144. package/dist/services/user-inventory/process/create.d.ts.map +1 -1
  145. package/dist/services/user-inventory/process/create.js.map +1 -1
  146. package/dist/services/user-inventory/process/findOne.d.ts +3 -7
  147. package/dist/services/user-inventory/process/findOne.d.ts.map +1 -1
  148. package/dist/services/user-inventory/process/findOne.js +2 -2
  149. package/dist/services/user-inventory/process/findOne.js.map +1 -1
  150. package/dist/services/user-inventory/query/getters.d.ts +6 -0
  151. package/dist/services/user-inventory/query/getters.d.ts.map +1 -0
  152. package/dist/services/user-inventory/query/getters.js +41 -0
  153. package/dist/services/user-inventory/query/getters.js.map +1 -0
  154. package/dist/services/user-inventory/query/updates.d.ts +34 -0
  155. package/dist/services/user-inventory/query/updates.d.ts.map +1 -0
  156. package/dist/services/user-inventory/query/updates.js +35 -0
  157. package/dist/services/user-inventory/query/updates.js.map +1 -0
  158. package/dist/services/user-inventory/types.d.ts +3 -3
  159. package/dist/services/user-inventory/types.d.ts.map +1 -1
  160. package/dist/services/user-meta/definition/schema.d.ts +5 -4
  161. package/dist/services/user-meta/definition/schema.d.ts.map +1 -1
  162. package/dist/services/user-meta/definition/schema.js +2 -0
  163. package/dist/services/user-meta/definition/schema.js.map +1 -1
  164. package/dist/services/user-meta/index.d.ts +3 -1
  165. package/dist/services/user-meta/index.d.ts.map +1 -1
  166. package/dist/services/user-meta/index.js +3 -1
  167. package/dist/services/user-meta/index.js.map +1 -1
  168. package/dist/services/user-meta/process/create.d.ts +2 -6
  169. package/dist/services/user-meta/process/create.d.ts.map +1 -1
  170. package/dist/services/user-meta/process/create.js.map +1 -1
  171. package/dist/services/user-meta/process/findOne.d.ts +1 -6
  172. package/dist/services/user-meta/process/findOne.d.ts.map +1 -1
  173. package/dist/services/user-meta/process/findOneAndUpdate.d.ts +30 -0
  174. package/dist/services/user-meta/process/findOneAndUpdate.d.ts.map +1 -0
  175. package/dist/services/user-meta/process/findOneAndUpdate.js +8 -0
  176. package/dist/services/user-meta/process/findOneAndUpdate.js.map +1 -0
  177. package/dist/services/user-meta/query/getters.d.ts +44 -0
  178. package/dist/services/user-meta/query/getters.d.ts.map +1 -1
  179. package/dist/services/user-meta/query/getters.js +103 -0
  180. package/dist/services/user-meta/query/getters.js.map +1 -1
  181. package/dist/services/user-meta/query/updates.d.ts +39 -0
  182. package/dist/services/user-meta/query/updates.d.ts.map +1 -0
  183. package/dist/services/user-meta/query/updates.js +152 -0
  184. package/dist/services/user-meta/query/updates.js.map +1 -0
  185. package/dist/services/user-meta/types.d.ts +3 -2
  186. package/dist/services/user-meta/types.d.ts.map +1 -1
  187. package/dist/services/user-ornaments/definition/schema.d.ts +2 -2
  188. package/dist/services/user-ornaments/index.d.ts +3 -1
  189. package/dist/services/user-ornaments/index.d.ts.map +1 -1
  190. package/dist/services/user-ornaments/index.js +3 -1
  191. package/dist/services/user-ornaments/index.js.map +1 -1
  192. package/dist/services/user-ornaments/process/findOne.d.ts +1 -1
  193. package/dist/services/user-ornaments/process/findOne.d.ts.map +1 -1
  194. package/dist/services/user-ornaments/process/findOne.js.map +1 -1
  195. package/dist/services/user-ornaments/query/updates.d.ts +2 -0
  196. package/dist/services/user-ornaments/query/updates.d.ts.map +1 -1
  197. package/dist/services/user-ornaments/query/updates.js +10 -0
  198. package/dist/services/user-ornaments/query/updates.js.map +1 -1
  199. package/dist/services/user-quest/definition/schema.d.ts +2 -2
  200. package/dist/services/user-quest/definition/schema.js +1 -1
  201. package/dist/services/user-quest/definition/schema.js.map +1 -1
  202. package/dist/services/user-quest/index.d.ts +3 -2
  203. package/dist/services/user-quest/index.d.ts.map +1 -1
  204. package/dist/services/user-quest/index.js +3 -2
  205. package/dist/services/user-quest/index.js.map +1 -1
  206. package/dist/services/user-quest/process/create.d.ts +2 -6
  207. package/dist/services/user-quest/process/create.d.ts.map +1 -1
  208. package/dist/services/user-quest/process/create.js.map +1 -1
  209. package/dist/services/user-quest/query/getters.d.ts +1 -2
  210. package/dist/services/user-quest/query/getters.d.ts.map +1 -1
  211. package/dist/services/user-quest/query/getters.js.map +1 -1
  212. package/dist/services/user-quest-meta/definition/schema.d.ts +2 -2
  213. package/dist/services/user-quest-meta/index.d.ts +2 -0
  214. package/dist/services/user-quest-meta/index.d.ts.map +1 -1
  215. package/dist/services/user-quest-meta/index.js +2 -0
  216. package/dist/services/user-quest-meta/index.js.map +1 -1
  217. package/dist/services/user-quest-meta/process/create.d.ts +2 -6
  218. package/dist/services/user-quest-meta/process/create.d.ts.map +1 -1
  219. package/dist/services/user-quest-meta/process/create.js.map +1 -1
  220. package/dist/services/user-quest-meta/process/updateOne.d.ts +2 -2
  221. package/dist/services/user-quest-meta/process/updateOne.d.ts.map +1 -1
  222. package/dist/services/user-quest-meta/process/updateOne.js +2 -2
  223. package/dist/services/user-quest-meta/process/updateOne.js.map +1 -1
  224. package/dist/services/user-quest-meta/query/updates.d.ts +37 -0
  225. package/dist/services/user-quest-meta/query/updates.d.ts.map +1 -0
  226. package/dist/services/user-quest-meta/query/updates.js +68 -0
  227. package/dist/services/user-quest-meta/query/updates.js.map +1 -0
  228. package/dist/services/user-raid/definition/schema.d.ts +2 -2
  229. package/dist/services/user-raid/index.d.ts +3 -0
  230. package/dist/services/user-raid/index.d.ts.map +1 -1
  231. package/dist/services/user-raid/index.js +3 -0
  232. package/dist/services/user-raid/index.js.map +1 -1
  233. package/dist/services/user-raid/process/create.d.ts +2 -6
  234. package/dist/services/user-raid/process/create.d.ts.map +1 -1
  235. package/dist/services/user-raid/process/create.js.map +1 -1
  236. package/dist/services/user-raid/query/getters.d.ts +5 -0
  237. package/dist/services/user-raid/query/getters.d.ts.map +1 -0
  238. package/dist/services/user-raid/query/getters.js +10 -0
  239. package/dist/services/user-raid/query/getters.js.map +1 -0
  240. package/dist/services/user-raid/query/updates.d.ts +29 -0
  241. package/dist/services/user-raid/query/updates.d.ts.map +1 -0
  242. package/dist/services/user-raid/query/updates.js +25 -0
  243. package/dist/services/user-raid/query/updates.js.map +1 -0
  244. package/dist/services/user-shop/definition/schema.d.ts +2 -2
  245. package/dist/services/user-shop/process/create.d.ts +2 -6
  246. package/dist/services/user-shop/process/create.d.ts.map +1 -1
  247. package/dist/services/user-shop/process/create.js.map +1 -1
  248. package/dist/services/user-shop/process/findOne.d.ts +1 -6
  249. package/dist/services/user-shop/process/findOne.d.ts.map +1 -1
  250. package/package.json +4 -3
@@ -0,0 +1,6 @@
1
+ import type { ItemId } from '@opfr/items';
2
+ import type { CharacteristicsRecord } from '@opfr/utils-type';
3
+ import type { UserInventory } from '../types';
4
+ export declare const getItemQuantity: (userInventory: UserInventory, itemId: ItemId) => number;
5
+ export declare const getUserEquipmentsCharacteristics: (userInventory: UserInventory) => CharacteristicsRecord;
6
+ //# sourceMappingURL=getters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getters.d.ts","sourceRoot":"","sources":["../../../../src/services/user-inventory/query/getters.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,eAAe,kBACX,aAAa,UACpB,MAAM,WAGf,CAAC;AAqBF,eAAO,MAAM,gCAAgC,kBAC5B,aAAa,0BA+B7B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { AllPanoplies, EQUIPMENT_SLOT, fromDBToEquipableEquipment, } from '@opfr/equipments';
2
+ import { filterNullAndUndefined, mergeObjects } from '@opfr/utils-lang';
3
+ export const getItemQuantity = (userInventory, itemId) => {
4
+ return userInventory.itemList.get(itemId) ?? 0;
5
+ };
6
+ const getPanoplyEffectiveBonus = (userInventory, panoply) => {
7
+ const equipments = filterNullAndUndefined(Object.values(userInventory.equippedItems));
8
+ const nbEquipped = panoply.equipments.filter(equipment => equipments.find(e => e.id === equipment.id)).length;
9
+ if (nbEquipped === panoply.equipments.length) {
10
+ return panoply.fullBonus;
11
+ }
12
+ else if (nbEquipped >= panoply.equipments.length / 2) {
13
+ return panoply.halfBonus;
14
+ }
15
+ return null;
16
+ };
17
+ export const getUserEquipmentsCharacteristics = (userInventory) => {
18
+ let characteristics = {
19
+ vitality: 0,
20
+ strength: 0,
21
+ agility: 0,
22
+ chance: 0,
23
+ intelligence: 0,
24
+ wisdom: 0,
25
+ };
26
+ for (const slot of EQUIPMENT_SLOT) {
27
+ const equipment = userInventory.equippedItems[slot];
28
+ if (!equipment) {
29
+ continue;
30
+ }
31
+ characteristics = mergeObjects(characteristics, fromDBToEquipableEquipment(equipment).characteristics, (a, b) => a + b);
32
+ }
33
+ for (const panoply of AllPanoplies) {
34
+ const result = getPanoplyEffectiveBonus(userInventory, panoply);
35
+ if (result) {
36
+ characteristics = mergeObjects(characteristics, result, (a, b) => a + b);
37
+ }
38
+ }
39
+ return characteristics;
40
+ };
41
+ //# sourceMappingURL=getters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getters.js","sourceRoot":"","sources":["../../../../src/services/user-inventory/query/getters.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQxE,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,aAA4B,EAC5B,MAAc,EACd,EAAE;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,aAA4B,EAC5B,OAAgB,EACkB,EAAE;IACpC,MAAM,UAAU,GAAG,sBAAsB,CACvC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAC3C,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CACvD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAC5C,CAAC,MAAM,CAAC;IAET,IAAI,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;SAAM,IAAI,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,aAA4B,EAC5B,EAAE;IACF,IAAI,eAAe,GAA0B;QAC3C,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,CAAC;KACV,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QACD,eAAe,GAAG,YAAY,CAC5B,eAAe,EACf,0BAA0B,CAAC,SAAS,CAAC,CAAC,eAAe,EACrD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAChB,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,wBAAwB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,MAAM,EAAE,CAAC;YACX,eAAe,GAAG,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1,34 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import type { Types } from 'mongoose';
27
+ import type { ItemId } from '@opfr/items';
28
+ import type { UserInventory } from '../types';
29
+ export declare const addInventoryItem: (id: Types.ObjectId, itemId: ItemId, quantity: number) => Promise<void>;
30
+ export declare const addInventoryItems: (id: Types.ObjectId, items: Record<ItemId, number>) => Promise<void>;
31
+ export declare const removeInventoryItem: (id: Types.ObjectId, itemId: ItemId, quantity: number) => Promise<void>;
32
+ export declare const removeAllItemInventory: (id: Types.ObjectId, itemId: ItemId) => Promise<void>;
33
+ export declare const addEquipments: (id: Types.ObjectId, list: UserInventory['equipmentList']) => Promise<void>;
34
+ //# sourceMappingURL=updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../../../src/services/user-inventory/query/updates.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,gBAAgB,OACvB,MAAM,QAAQ,UACV,MAAM,YACJ,MAAM,kBAGjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,OACxB,MAAM,QAAQ,SACX,OAAO,MAAM,EAAE,MAAM,CAAC,kBAS9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAC1B,MAAM,QAAQ,UACV,MAAM,YACJ,MAAM,kBAiBjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAC7B,MAAM,QAAQ,UACV,MAAM,kBAGf,CAAC;AAEF,eAAO,MAAM,aAAa,OACpB,MAAM,QAAQ,QACZ,aAAa,CAAC,eAAe,CAAC,kBAGrC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { updateUserInventory } from '../process/updateOne';
2
+ export const addInventoryItem = async (id, itemId, quantity) => {
3
+ await updateUserInventory(id, { $inc: { [`itemList.${itemId}`]: quantity } });
4
+ };
5
+ export const addInventoryItems = async (id, items) => {
6
+ await updateUserInventory(id, {
7
+ $inc: Object.fromEntries(Object.entries(items)
8
+ .filter(([, quantity]) => quantity > 0)
9
+ .map(([itemId, quantity]) => [`itemList.${itemId}`, quantity])),
10
+ });
11
+ };
12
+ export const removeInventoryItem = async (id, itemId, quantity) => {
13
+ await updateUserInventory(id, [
14
+ {
15
+ $set: {
16
+ [`itemList.${itemId}`]: {
17
+ $cond: {
18
+ if: {
19
+ $lt: [{ $add: [`$itemList.${itemId}`, -quantity] }, 0],
20
+ },
21
+ then: 0,
22
+ else: { $add: [`$itemList.${itemId}`, -quantity] },
23
+ },
24
+ },
25
+ },
26
+ },
27
+ ]);
28
+ };
29
+ export const removeAllItemInventory = async (id, itemId) => {
30
+ await updateUserInventory(id, { $set: { [`itemList.${itemId}`]: 0 } });
31
+ };
32
+ export const addEquipments = async (id, list) => {
33
+ await updateUserInventory(id, { $push: { equipmentList: { $each: list } } });
34
+ };
35
+ //# sourceMappingURL=updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../../src/services/user-inventory/query/updates.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,EAAkB,EAClB,MAAc,EACd,QAAgB,EAChB,EAAE;IACF,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,EAAkB,EAClB,KAA6B,EAC7B,EAAE;IACF,MAAM,mBAAmB,CAAC,EAAE,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC,CACjE;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,EAAkB,EAClB,MAAc,EACd,QAAgB,EAChB,EAAE;IACF,MAAM,mBAAmB,CAAC,EAAE,EAAE;QAC5B;YACE,IAAI,EAAE;gBACJ,CAAC,YAAY,MAAM,EAAE,CAAC,EAAE;oBACtB,KAAK,EAAE;wBACL,EAAE,EAAE;4BACF,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;yBACvD;wBACD,IAAI,EAAE,CAAC;wBACP,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,aAAa,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;qBACnD;iBACF;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,EAAkB,EAClB,MAAc,EACd,EAAE;IACF,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,EAAkB,EAClB,IAAoC,EACpC,EAAE;IACF,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC"}
@@ -26,16 +26,16 @@
26
26
  /// <reference types="mongoose/types/inferschematype" />
27
27
  /// <reference types="mongoose/types/inferrawdoctype" />
28
28
  import type { Document, Types } from 'mongoose';
29
- import type { EquippedItems } from '@opfr/equipments';
29
+ import type { EquipmentId, EquippedItems } from '@opfr/equipments';
30
30
  import type { ItemId } from '@opfr/items';
31
31
  export interface UserInventory {
32
32
  user: Types.ObjectId;
33
33
  equippedItems: EquippedItems;
34
34
  equipmentList: {
35
- id: string;
35
+ id: EquipmentId;
36
36
  seed: number;
37
37
  }[];
38
- itemList: Partial<Record<ItemId, number>>;
38
+ itemList: Map<ItemId, number>;
39
39
  recipes: string[];
40
40
  }
41
41
  export interface UserInventoryDocument extends Document, UserInventory {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/user-inventory/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IAErB,aAAa,EAAE,aAAa,CAAC;IAE7B,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IACJ,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ,EAAE,aAAa;CAAG"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/user-inventory/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IAErB,aAAa,EAAE,aAAa,CAAC;IAE7B,aAAa,EAAE;QACb,EAAE,EAAE,WAAW,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IACJ,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ,EAAE,aAAa;CAAG"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="mongoose/types/document" />
2
+ /// <reference types="mongoose/types/types" />
2
3
  /// <reference types="mongoose/types/models" />
3
4
  /// <reference types="mongoose/types/schemaoptions" />
4
5
  /// <reference types="mongoose/types/utility" />
@@ -30,13 +31,13 @@
30
31
  import { Schema } from 'mongoose';
31
32
  import type { UserMetaDocument } from '../types';
32
33
  declare const userMetaSchema: Schema<UserMetaDocument, import("mongoose").Model<UserMetaDocument, any, any, any, import("mongoose").Document<unknown, any, UserMetaDocument> & UserMetaDocument & Required<{
33
- _id: unknown;
34
+ _id: import("mongoose").Types.ObjectId;
34
35
  }> & {
35
- __v?: number;
36
+ __v?: number | undefined;
36
37
  }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, UserMetaDocument, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<UserMetaDocument>> & import("mongoose").FlatRecord<UserMetaDocument> & Required<{
37
- _id: unknown;
38
+ _id: import("mongoose").Types.ObjectId;
38
39
  }> & {
39
- __v?: number;
40
+ __v?: number | undefined;
40
41
  }>;
41
42
  export { userMetaSchema };
42
43
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/definition/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AASjD,QAAA,MAAM,cAAc;;;;;;;;EA8ElB,CAAC;AAQH,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/definition/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AASjD,QAAA,MAAM,cAAc;;;;;;;;EA8ElB,CAAC;AAUH,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -81,6 +81,8 @@ const userMetaSchema = new Schema({
81
81
  },
82
82
  });
83
83
  userMetaSchema.index({ user: 1 });
84
+ userMetaSchema.index({ 'xp.amount': -1 });
85
+ userMetaSchema.index({ berry: -1 });
84
86
  userMetaSchema.post('updateOne', async function (doc) {
85
87
  await userMetaMiddleware(doc);
86
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/services/user-meta/definition/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIlD,MAAM,QAAQ,GAAG;IACf,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;IACxC,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;CACvC,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,MAAM,CAAmB;IAClD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,MAAM;KACZ;IAED,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IAE1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IAChD,EAAE,EAAE;QACF,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE;QACtD,KAAK,EAAE;YACL,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE;YACnD,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;SAClD;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACjD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KACrC;IAED,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAE;aACZ;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAE;aACZ;SACF;QACD,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAE;aACZ;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAE;aACZ;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAE;aACZ;SACF;QACD,EAAE,EAAE;YACF,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAE;aACZ;SACF;KACF;IAED,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;IAElC,eAAe,EAAE;QACf,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACrC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACpC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;KACrC;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;QACtC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC7C;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACrC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACpC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;KACrC;CACF,CAAC,CAAC;AAEH,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAElC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,GAAG;IAClD,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/services/user-meta/definition/schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import * as userMetaGetters from './query/getters';
2
+ import * as userMetaUpdates from './query/updates';
1
3
  export type * from './types';
2
4
  export { userMetaModel } from './definition/model';
3
- export * as userMetaGetters from './query/getters';
4
5
  export * from './process/findOne';
6
+ export { userMetaGetters, userMetaUpdates };
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/user-meta/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,eAAe,MAAM,iBAAiB,CAAC;AAEnD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/user-meta/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,iBAAiB,CAAC;AAEnD,mBAAmB,SAAS,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
@@ -1,4 +1,6 @@
1
+ import * as userMetaGetters from './query/getters';
2
+ import * as userMetaUpdates from './query/updates';
1
3
  export { userMetaModel } from './definition/model';
2
- export * as userMetaGetters from './query/getters';
3
4
  export * from './process/findOne';
5
+ export { userMetaGetters, userMetaUpdates };
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/user-meta/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,eAAe,MAAM,iBAAiB,CAAC;AAEnD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/user-meta/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,iBAAiB,CAAC;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
@@ -1,4 +1,3 @@
1
- /// <reference types="mongoose/types/document" />
2
1
  /// <reference types="mongoose/types/aggregate" />
3
2
  /// <reference types="mongoose/types/callback" />
4
3
  /// <reference types="mongoose/types/collection" />
@@ -25,9 +24,6 @@
25
24
  /// <reference types="mongoose/types/inferschematype" />
26
25
  /// <reference types="mongoose/types/inferrawdoctype" />
27
26
  import type { Types } from 'mongoose';
28
- export declare const createUserMeta: (user: Types.ObjectId) => Promise<import("mongoose").Document<unknown, {}, import("src").UserMetaDocument> & import("src").UserMetaDocument & Required<{
29
- _id: unknown;
30
- }> & {
31
- __v?: number;
32
- }>;
27
+ import type { UserMetaDocument } from '../types';
28
+ export declare const createUserMeta: (user: Types.ObjectId) => Promise<UserMetaDocument>;
33
29
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/process/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAItC,eAAO,MAAM,cAAc,SAAgB,MAAM,QAAQ;;;;EAIxD,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/process/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,cAAc,SACnB,MAAM,QAAQ,KACnB,QAAQ,gBAAgB,CAI1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/services/user-meta/process/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAoB,EAAE,EAAE;IAC3D,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC;QAChC,IAAI;KACL,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/services/user-meta/process/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,IAAoB,EACO,EAAE;IAC7B,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC;QAChC,IAAI;KACL,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- /// <reference types="mongoose/types/document" />
2
1
  /// <reference types="mongoose/types/aggregate" />
3
2
  /// <reference types="mongoose/types/callback" />
4
3
  /// <reference types="mongoose/types/collection" />
@@ -26,9 +25,5 @@
26
25
  /// <reference types="mongoose/types/inferrawdoctype" />
27
26
  import type { ProjectionType, Types } from 'mongoose';
28
27
  import type { UserMetaDocument } from '../types';
29
- export declare const findUserMeta: (user: Types.ObjectId, projection?: ProjectionType<UserMetaDocument>) => Promise<import("mongoose").Document<unknown, {}, UserMetaDocument> & UserMetaDocument & Required<{
30
- _id: unknown;
31
- }> & {
32
- __v?: number;
33
- }>;
28
+ export declare const findUserMeta: (user: Types.ObjectId, projection?: ProjectionType<UserMetaDocument>) => Promise<UserMetaDocument>;
34
29
  //# sourceMappingURL=findOne.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/process/findOne.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,eAAO,MAAM,YAAY,SACjB,MAAM,QAAQ,eACR,eAAe,gBAAgB,CAAC;;;;EAQ7C,CAAC"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/process/findOne.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,eAAO,MAAM,YAAY,SACjB,MAAM,QAAQ,eACR,eAAe,gBAAgB,CAAC,8BAQ7C,CAAC"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="mongoose/types/query" />
2
+ /// <reference types="mongoose/types/aggregate" />
3
+ /// <reference types="mongoose/types/callback" />
4
+ /// <reference types="mongoose/types/collection" />
5
+ /// <reference types="mongoose/types/connection" />
6
+ /// <reference types="mongoose/types/cursor" />
7
+ /// <reference types="mongoose/types/document" />
8
+ /// <reference types="mongoose/types/error" />
9
+ /// <reference types="mongoose/types/expressions" />
10
+ /// <reference types="mongoose/types/helpers" />
11
+ /// <reference types="mongoose/types/middlewares" />
12
+ /// <reference types="mongoose/types/indexes" />
13
+ /// <reference types="mongoose/types/models" />
14
+ /// <reference types="mongoose/types/mongooseoptions" />
15
+ /// <reference types="mongoose/types/pipelinestage" />
16
+ /// <reference types="mongoose/types/populate" />
17
+ /// <reference types="mongoose/types/query" />
18
+ /// <reference types="mongoose/types/schemaoptions" />
19
+ /// <reference types="mongoose/types/schematypes" />
20
+ /// <reference types="mongoose/types/session" />
21
+ /// <reference types="mongoose/types/types" />
22
+ /// <reference types="mongoose/types/utility" />
23
+ /// <reference types="mongoose/types/validation" />
24
+ /// <reference types="mongoose/types/virtuals" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
27
+ import type { Types, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
28
+ import type { UserMetaDocument } from '../types';
29
+ export declare const findUserMetaAndUpdate: (user: Types.ObjectId, update: UpdateQuery<UserMetaDocument> | UpdateWithAggregationPipeline) => import("mongoose").Query<UserMetaDocument, UserMetaDocument, {}, UserMetaDocument, "findOneAndUpdate", {}>;
30
+ //# sourceMappingURL=findOneAndUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOneAndUpdate.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/process/findOneAndUpdate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,6BAA6B,EAC9B,MAAM,UAAU,CAAC;AAGlB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,qBAAqB,SAC1B,MAAM,QAAQ,UACZ,YAAY,gBAAgB,CAAC,GAAG,6BAA6B,+GAMtE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { userMetaModel } from '../definition/model';
2
+ export const findUserMetaAndUpdate = (user, update) => {
3
+ return userMetaModel.findOneAndUpdate({ user }, update, {
4
+ returnDocument: 'after',
5
+ upsert: true,
6
+ });
7
+ };
8
+ //# sourceMappingURL=findOneAndUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOneAndUpdate.js","sourceRoot":"","sources":["../../../../src/services/user-meta/process/findOneAndUpdate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,IAAoB,EACpB,MAAqE,EACrE,EAAE;IACF,OAAO,aAAa,CAAC,gBAAgB,CAAmB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE;QACxE,cAAc,EAAE,OAAO;QACvB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,3 +1,47 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import type { Types } from 'mongoose';
27
+ import type { CharacteristicsRecord } from '@opfr/utils-type';
28
+ import type { UserInventory } from '../../user-inventory';
1
29
  import type { UserMeta } from '../types';
30
+ export declare const getTotalCharacteristics: (userMeta: UserMeta) => CharacteristicsRecord;
2
31
  export declare const calcXpBoost: (userMeta: UserMeta) => number;
32
+ export declare const calcXp: (userMeta: UserMeta, amount: number, multiplier: number) => number;
33
+ export declare const calcBerry: (userMeta: UserMeta, amount: number) => number;
34
+ export declare const calcCooldownWorkBuff: (userMeta: UserMeta) => number;
35
+ export declare const calcDropWorkBuff: (userMeta: UserMeta) => number;
36
+ export declare const calcBerryWorkBuff: (userMeta: UserMeta) => number;
37
+ export declare const calcBerryGlobalBuff: (userMeta: UserMeta) => number;
38
+ export declare const calcCooldownCasinoBuff: (userMeta: UserMeta) => number;
39
+ export declare const getMaxHp: (userMeta: UserMeta, userInventory: UserInventory) => number;
40
+ export declare const getGlobalRank: (id: Types.ObjectId) => Promise<{
41
+ rank: number;
42
+ }>;
43
+ export declare const getBerryRank: (id: Types.ObjectId) => Promise<{
44
+ rank: number;
45
+ }>;
46
+ export declare const hasMalusBuff: (userMeta: UserMeta) => boolean;
3
47
  //# sourceMappingURL=getters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getters.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/query/getters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,WAAW,aAAc,QAAQ,KAAG,MAehD,CAAC"}
1
+ {"version":3,"file":"getters.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/query/getters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAItC,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,uBAAuB,aACxB,QAAQ,KACjB,qBAQF,CAAC;AAEF,eAAO,MAAM,WAAW,aAAc,QAAQ,KAAG,MAehD,CAAC;AAEF,eAAO,MAAM,MAAM,aACP,QAAQ,UACV,MAAM,cACF,MAAM,KACjB,MAIF,CAAC;AAEF,eAAO,MAAM,SAAS,aAAc,QAAQ,UAAU,MAAM,KAAG,MAK9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAAc,QAAQ,WAStD,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAc,QAAQ,WASlD,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAAc,QAAQ,WASnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,QAAQ,WASrD,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAc,QAAQ,WASxD,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAc,QAAQ,iBAAiB,aAAa,WAKzD,CAAC;AAEjB,eAAO,MAAM,aAAa,OACpB,MAAM,QAAQ,KACjB,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAe1B,CAAC;AAEF,eAAO,MAAM,YAAY,OACnB,MAAM,QAAQ,KACjB,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAe1B,CAAC;AAEF,eAAO,MAAM,YAAY,aAAc,QAAQ,YAoB9C,CAAC"}
@@ -1,4 +1,16 @@
1
+ import { getComputedCharacteristicValue } from '@opfr/raids';
1
2
  import { hasExpire } from '@opfr/utils-lang';
3
+ import { DEFAULT_MAX_HP, HP_PER_VITALITY } from '@opfr/utils-type';
4
+ import { CHARACTERISTICS } from '@opfr/utils-type';
5
+ import { userInventoryGetters } from '../../user-inventory';
6
+ import { userMetaModel } from '../definition/model';
7
+ export const getTotalCharacteristics = (userMeta) => {
8
+ return Object.fromEntries(CHARACTERISTICS.map(c => [
9
+ c,
10
+ getComputedCharacteristicValue(userMeta.characteristics[c]) +
11
+ userMeta.scrolls[c],
12
+ ]));
13
+ };
2
14
  export const calcXpBoost = (userMeta) => {
3
15
  const { boost } = userMeta.xp;
4
16
  return ((boost !== null && Date.now() < boost.getTime() ? 0.2 : 0) +
@@ -8,4 +20,95 @@ export const calcXpBoost = (userMeta) => {
8
20
  ? multiplier
9
21
  : 0), 0));
10
22
  };
23
+ export const calcXp = (userMeta, amount, multiplier) => {
24
+ amount *= 1 + calcXpBoost(userMeta);
25
+ return Math.ceil(amount * multiplier);
26
+ };
27
+ export const calcBerry = (userMeta, amount) => {
28
+ const boost = calcBerryGlobalBuff(userMeta);
29
+ if (amount <= 0)
30
+ return amount;
31
+ return Math.ceil(amount * (boost || 1));
32
+ };
33
+ export const calcCooldownWorkBuff = (userMeta) => {
34
+ return userMeta.buffs.cooldown.work.reduce((acc, { expireAt, startAt, multiplier }) => acc +
35
+ (new Date() >= (startAt ?? new Date()) && !hasExpire(expireAt)
36
+ ? multiplier
37
+ : 0), 1);
38
+ };
39
+ export const calcDropWorkBuff = (userMeta) => {
40
+ return userMeta.buffs.drop.work.reduce((acc, { expireAt, startAt, multiplier }) => acc +
41
+ (new Date() >= (startAt ?? new Date()) && !hasExpire(expireAt)
42
+ ? multiplier
43
+ : 0), 1);
44
+ };
45
+ export const calcBerryWorkBuff = (userMeta) => {
46
+ return userMeta.buffs.berry.work.reduce((acc, { expireAt, startAt, multiplier }) => acc +
47
+ (new Date() >= (startAt ?? new Date()) && !hasExpire(expireAt)
48
+ ? multiplier
49
+ : 0), 1);
50
+ };
51
+ export const calcBerryGlobalBuff = (userMeta) => {
52
+ return userMeta.buffs.berry.global.reduce((acc, { expireAt, startAt, multiplier }) => acc +
53
+ (new Date() >= (startAt ?? new Date()) && !hasExpire(expireAt)
54
+ ? multiplier
55
+ : 0), 1);
56
+ };
57
+ export const calcCooldownCasinoBuff = (userMeta) => {
58
+ return userMeta.buffs.cooldown.casino.reduce((acc, { expireAt, startAt, multiplier }) => acc +
59
+ (new Date() >= (startAt ?? new Date()) && !hasExpire(expireAt)
60
+ ? multiplier
61
+ : 0), 1);
62
+ };
63
+ export const getMaxHp = (userMeta, userInventory) => ((getTotalCharacteristics(userMeta).vitality ?? 0) +
64
+ userInventoryGetters.getUserEquipmentsCharacteristics(userInventory)
65
+ .vitality) *
66
+ HP_PER_VITALITY +
67
+ DEFAULT_MAX_HP;
68
+ export const getGlobalRank = async (id) => {
69
+ return (await userMetaModel.aggregate([
70
+ {
71
+ $setWindowFields: {
72
+ sortBy: { 'xp.amount': -1 },
73
+ output: {
74
+ rank: { $rank: {} },
75
+ },
76
+ },
77
+ },
78
+ { $match: { _id: id } },
79
+ { $project: { rank: 1 } },
80
+ ]))[0];
81
+ };
82
+ export const getBerryRank = async (id) => {
83
+ return (await userMetaModel.aggregate([
84
+ {
85
+ $setWindowFields: {
86
+ sortBy: { berry: -1 },
87
+ output: {
88
+ rank: { $rank: {} },
89
+ },
90
+ },
91
+ },
92
+ { $match: { _id: id } },
93
+ { $project: { rank: 1 } },
94
+ ]))[0];
95
+ };
96
+ export const hasMalusBuff = (userMeta) => {
97
+ const allBuffs = [
98
+ ...userMeta.buffs.xp.global,
99
+ ...userMeta.buffs.berry.global,
100
+ ...userMeta.buffs.berry.work,
101
+ ...userMeta.buffs.cooldown.work,
102
+ ...userMeta.buffs.cooldown.casino,
103
+ ...userMeta.buffs.drop.work,
104
+ ];
105
+ for (const { multiplier, startAt, expireAt } of allBuffs) {
106
+ if (multiplier < 0 &&
107
+ new Date() < expireAt &&
108
+ (startAt ?? new Date()) <= new Date()) {
109
+ return true;
110
+ }
111
+ }
112
+ return false;
113
+ };
11
114
  //# sourceMappingURL=getters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getters.js","sourceRoot":"","sources":["../../../../src/services/user-meta/query/getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAU,EAAE;IACxD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IAE9B,OAAO,CACL,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CACzC,GAAG;YACH,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC5D,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,CAAC,CAAC,EACR,CAAC,CACF,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"getters.js","sourceRoot":"","sources":["../../../../src/services/user-meta/query/getters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import type { Types } from 'mongoose';
27
+ import type { ItemId } from '@opfr/items';
28
+ import type { UserInventory } from '../../user-inventory';
29
+ import type { UserMeta } from '../types';
30
+ export declare const addXp: (userId: Types.ObjectId, amount: number) => Promise<void>;
31
+ export declare const addBerry: (userId: Types.ObjectId, amount: number) => Promise<void>;
32
+ export declare const updatePremium: (userId: Types.ObjectId, premium: boolean) => Promise<void>;
33
+ export declare const updateBoost: (userId: Types.ObjectId, ms: number) => Promise<Date | null>;
34
+ export declare const updateBuff: (userId: Types.ObjectId, path: 'cooldown.casino' | 'cooldown.work' | 'berry.work' | 'berry.global' | 'drop.work' | 'xp.global', origin: `${string}$${ItemId}`, multiplier: number, endIn: number, startIn?: number) => Promise<void>;
35
+ export declare const gainHp: (user: Types.ObjectId, hp: number, { userMeta: _userMeta, userInventory: _userInventory, }: {
36
+ userMeta?: UserMeta;
37
+ userInventory?: UserInventory;
38
+ }) => Promise<void>;
39
+ //# sourceMappingURL=updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../../../src/services/user-meta/query/updates.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,eAAO,MAAM,KAAK,WAAkB,MAAM,QAAQ,UAAU,MAAM,kBAEjE,CAAC;AAEF,eAAO,MAAM,QAAQ,WAAkB,MAAM,QAAQ,UAAU,MAAM,kBAgBpE,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,MAAM,QAAQ,WACb,OAAO,kBAGjB,CAAC;AAEF,eAAO,MAAM,WAAW,WAAkB,MAAM,QAAQ,MAAM,MAAM,yBAoBnE,CAAC;AAEF,eAAO,MAAM,UAAU,WACb,MAAM,QAAQ,QAElB,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,WAAW,GACX,WAAW,UACP,GAAG,MAAM,IAAI,MAAM,EAAE,cACjB,MAAM,SACX,MAAM,YACH,MAAM,kBA+FjB,CAAC;AAEF,eAAO,MAAM,MAAM,SACX,MAAM,QAAQ,MAChB,MAAM,2DAIP;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,kBAc1D,CAAC"}