@nlabs/reaktor 0.10.0 → 0.10.1

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 (314) hide show
  1. package/.env +1 -0
  2. package/.env.example +1 -0
  3. package/DATABASE_I18N_GUIDE.md +434 -0
  4. package/TEST_UTILITIES_GUIDE.md +360 -0
  5. package/coverage/index.html +46 -76
  6. package/index.js +1 -1
  7. package/jest.config.js +17 -0
  8. package/jest.setup.js +36 -0
  9. package/lex.config.cjs +2 -2
  10. package/lib/actions/apps.js +17 -239
  11. package/lib/actions/connections.js +6 -89
  12. package/lib/actions/content.js +17 -0
  13. package/lib/actions/conversations.js +19 -336
  14. package/lib/actions/dynamodb.js +2 -150
  15. package/lib/actions/email.js +2 -152
  16. package/lib/actions/files.js +5 -283
  17. package/lib/actions/groups.js +19 -259
  18. package/lib/actions/images.js +31 -700
  19. package/lib/actions/index.js +2 -66
  20. package/lib/actions/ios.js +9 -162
  21. package/lib/actions/locations.js +7 -122
  22. package/lib/actions/messages.js +21 -196
  23. package/lib/actions/notifications.js +2 -59
  24. package/lib/actions/payments.js +11 -464
  25. package/lib/actions/posts.js +75 -527
  26. package/lib/actions/profiles.js +8 -0
  27. package/lib/actions/reactions.js +25 -312
  28. package/lib/actions/s3.js +2 -133
  29. package/lib/actions/search.js +5 -90
  30. package/lib/actions/sms.js +2 -108
  31. package/lib/actions/statistics.js +6 -60
  32. package/lib/actions/subscriptions.js +12 -0
  33. package/lib/actions/tags.js +19 -287
  34. package/lib/actions/users.js +64 -764
  35. package/lib/actions/websockets.js +14 -158
  36. package/lib/adapters/arangoAdapter.js +2 -46
  37. package/lib/adapters/contentAdapter.js +2 -0
  38. package/lib/adapters/fileAdapter.js +2 -76
  39. package/lib/adapters/imageAdapter.js +2 -40
  40. package/lib/adapters/messageAdapter.js +2 -49
  41. package/lib/adapters/postAdapter.js +2 -70
  42. package/lib/adapters/reaktorAdapter.js +2 -44
  43. package/lib/adapters/tagAdapter.js +2 -50
  44. package/lib/adapters/userAdapter.js +2 -115
  45. package/lib/config.js +2 -125
  46. package/lib/handlers/graphqlHandler.js +2 -0
  47. package/lib/index.js +2 -66
  48. package/lib/lambdas/actions/websockets.js +14 -116
  49. package/lib/lambdas/authorizer.js +2 -67
  50. package/lib/lambdas/connection.js +2 -91
  51. package/lib/lambdas/utils/message.js +2 -42
  52. package/lib/lambdas/utils/websocket.js +2 -105
  53. package/lib/mocks/conversation.js +2 -35
  54. package/lib/mocks/file.js +2 -38
  55. package/lib/mocks/group.js +2 -47
  56. package/lib/mocks/image.js +2 -44
  57. package/lib/mocks/post.js +2 -55
  58. package/lib/mocks/tag.js +2 -37
  59. package/lib/mocks/user.js +2 -88
  60. package/lib/mutations/index.js +2 -26
  61. package/lib/mutations/locations.integration.js +2 -0
  62. package/lib/mutations/locations.js +2 -44
  63. package/lib/mutations/messages.integration.js +2 -0
  64. package/lib/mutations/messages.js +2 -86
  65. package/lib/mutations/posts.integration.js +2 -0
  66. package/lib/mutations/posts.js +2 -53
  67. package/lib/mutations/profiles.integration.js +2 -0
  68. package/lib/mutations/profiles.js +2 -0
  69. package/lib/mutations/reactions.integration.js +2 -0
  70. package/lib/mutations/reactions.js +2 -51
  71. package/lib/mutations/statistics.integration.js +2 -0
  72. package/lib/mutations/statistics.js +2 -39
  73. package/lib/mutations/subscriptions.integration.js +2 -0
  74. package/lib/mutations/subscriptions.js +2 -56
  75. package/lib/mutations/tags.integration.js +2 -0
  76. package/lib/mutations/tags.js +2 -120
  77. package/lib/mutations/users.integration.js +2 -0
  78. package/lib/mutations/users.js +2 -116
  79. package/lib/objectTypes/app.js +2 -173
  80. package/lib/objectTypes/bankAccount.js +2 -76
  81. package/lib/objectTypes/connection.js +2 -48
  82. package/lib/objectTypes/conversation.js +2 -77
  83. package/lib/objectTypes/creditCard.js +2 -86
  84. package/lib/objectTypes/document.js +2 -46
  85. package/lib/objectTypes/error.js +2 -46
  86. package/lib/objectTypes/external.js +2 -74
  87. package/lib/objectTypes/file.js +2 -100
  88. package/lib/objectTypes/filter.js +2 -43
  89. package/lib/objectTypes/group.js +2 -123
  90. package/lib/objectTypes/iapSubscription.js +2 -40
  91. package/lib/objectTypes/image.js +2 -129
  92. package/lib/objectTypes/index.js +2 -68
  93. package/lib/objectTypes/location.js +2 -109
  94. package/lib/objectTypes/message.js +2 -96
  95. package/lib/objectTypes/passcode.js +2 -42
  96. package/lib/objectTypes/plan.js +2 -95
  97. package/lib/objectTypes/post.js +2 -125
  98. package/lib/objectTypes/profile.js +2 -0
  99. package/lib/objectTypes/reaction.js +2 -61
  100. package/lib/objectTypes/relation.js +2 -49
  101. package/lib/objectTypes/search.js +2 -72
  102. package/lib/objectTypes/statistics.js +2 -39
  103. package/lib/objectTypes/subscription.js +2 -117
  104. package/lib/objectTypes/tag.js +2 -65
  105. package/lib/objectTypes/user.js +2 -144
  106. package/lib/queries/index.js +2 -33
  107. package/lib/queries/locations.integration.js +2 -0
  108. package/lib/queries/locations.js +2 -45
  109. package/lib/queries/messages.integration.js +2 -0
  110. package/lib/queries/messages.js +2 -52
  111. package/lib/queries/posts.integration.js +2 -0
  112. package/lib/queries/posts.js +2 -154
  113. package/lib/queries/reactions.integration.js +2 -0
  114. package/lib/queries/reactions.js +2 -56
  115. package/lib/queries/statistics.js +2 -39
  116. package/lib/queries/subscriptions.js +2 -44
  117. package/lib/queries/tags.integration.js +2 -0
  118. package/lib/queries/tags.js +2 -75
  119. package/lib/queries/users.integration.js +2 -0
  120. package/lib/queries/users.js +2 -64
  121. package/lib/templates/email/layout.js +3 -25
  122. package/lib/templates/email/passwordForgot.js +3 -25
  123. package/lib/templates/email/passwordRecovery.js +3 -25
  124. package/lib/templates/email/verifyEmail.js +3 -25
  125. package/lib/templates/email/welcome.js +3 -25
  126. package/lib/templates/sms/passwordForgot.js +2 -24
  127. package/lib/templates/sms/passwordRecovery.js +2 -24
  128. package/lib/templates/sms/verifyEmail.js +2 -24
  129. package/lib/templates/sms/verifyPhone.js +2 -24
  130. package/lib/templates/sms/welcome.js +2 -24
  131. package/lib/types/apps.types.js +2 -32
  132. package/lib/types/arangodb.types.js +1 -16
  133. package/lib/types/auth.types.js +1 -16
  134. package/lib/types/connections.types.js +1 -16
  135. package/lib/types/content.types.js +1 -0
  136. package/lib/types/conversations.types.js +1 -16
  137. package/lib/types/email.types.js +1 -16
  138. package/lib/types/error.types.js +2 -44
  139. package/lib/types/files.types.js +1 -16
  140. package/lib/types/google.types.js +1 -16
  141. package/lib/types/groups.types.js +1 -16
  142. package/lib/types/images.types.js +1 -16
  143. package/lib/types/index.js +2 -60
  144. package/lib/types/locations.types.js +1 -16
  145. package/lib/types/messages.types.js +1 -16
  146. package/lib/types/notifications.types.js +1 -16
  147. package/lib/types/payments.types.js +1 -16
  148. package/lib/types/posts.types.js +1 -16
  149. package/lib/types/profiles.types.js +1 -0
  150. package/lib/types/statistics.types.js +1 -16
  151. package/lib/types/tags.types.js +1 -16
  152. package/lib/types/users.types.js +1 -16
  153. package/lib/types/websockets.types.js +1 -16
  154. package/lib/utils/adapterUtils.js +2 -45
  155. package/lib/utils/analyticsUtils.js +2 -72
  156. package/lib/utils/arangodbUtils.js +5 -163
  157. package/lib/utils/authUtils.js +2 -0
  158. package/lib/utils/contextUtils.js +2 -0
  159. package/lib/utils/dbI18n.example.js +6 -0
  160. package/lib/utils/dbI18n.js +2 -0
  161. package/lib/utils/googleTranslate.js +2 -0
  162. package/lib/utils/graphqlUtils.js +2 -0
  163. package/lib/utils/index.js +2 -30
  164. package/lib/utils/languageDetection.js +2 -0
  165. package/lib/utils/localeUtils.example.js +2 -0
  166. package/lib/utils/localeUtils.js +2 -0
  167. package/lib/utils/middlewareUtils.js +2 -0
  168. package/lib/utils/sessionUtils.js +2 -0
  169. package/lib/utils/stripeUtils.js +2 -43
  170. package/lib/utils/templateUtils.js +2 -0
  171. package/lib/utils/testUtils.js +2 -0
  172. package/lib/utils/translationQueue.example.js +2 -0
  173. package/lib/utils/translationQueue.js +2 -0
  174. package/package.json +27 -24
  175. package/.prettierrc.js +0 -4
  176. package/lib/actions/apps.d.ts +0 -25
  177. package/lib/actions/connections.d.ts +0 -4
  178. package/lib/actions/conversations.d.ts +0 -14
  179. package/lib/actions/dynamodb.d.ts +0 -8
  180. package/lib/actions/email.d.ts +0 -5
  181. package/lib/actions/files.d.ts +0 -19
  182. package/lib/actions/groups.d.ts +0 -14
  183. package/lib/actions/images.d.ts +0 -26
  184. package/lib/actions/index.d.ts +0 -23
  185. package/lib/actions/ios.d.ts +0 -7
  186. package/lib/actions/locations.d.ts +0 -6
  187. package/lib/actions/messages.d.ts +0 -14
  188. package/lib/actions/notifications.d.ts +0 -5
  189. package/lib/actions/payments.d.ts +0 -10
  190. package/lib/actions/personas.d.ts +0 -3
  191. package/lib/actions/personas.js +0 -110
  192. package/lib/actions/posts.d.ts +0 -22
  193. package/lib/actions/reactions.d.ts +0 -30
  194. package/lib/actions/s3.d.ts +0 -7
  195. package/lib/actions/search.d.ts +0 -3
  196. package/lib/actions/sms.d.ts +0 -9
  197. package/lib/actions/statistics.d.ts +0 -3
  198. package/lib/actions/subscription.d.ts +0 -7
  199. package/lib/actions/subscription.js +0 -208
  200. package/lib/actions/tags.d.ts +0 -34
  201. package/lib/actions/users.d.ts +0 -72
  202. package/lib/actions/websockets.d.ts +0 -20
  203. package/lib/adapters/arangoAdapter.d.ts +0 -2
  204. package/lib/adapters/fileAdapter.d.ts +0 -3
  205. package/lib/adapters/imageAdapter.d.ts +0 -2
  206. package/lib/adapters/messageAdapter.d.ts +0 -2
  207. package/lib/adapters/postAdapter.d.ts +0 -2
  208. package/lib/adapters/reaktorAdapter.d.ts +0 -6
  209. package/lib/adapters/tagAdapter.d.ts +0 -2
  210. package/lib/adapters/userAdapter.d.ts +0 -2
  211. package/lib/config.d.ts +0 -20
  212. package/lib/index.d.ts +0 -12
  213. package/lib/lambdas/actions/websockets.d.ts +0 -7
  214. package/lib/lambdas/authorizer.d.ts +0 -20
  215. package/lib/lambdas/connection.d.ts +0 -12
  216. package/lib/lambdas/utils/message.d.ts +0 -1
  217. package/lib/lambdas/utils/websocket.d.ts +0 -7
  218. package/lib/mocks/conversation.d.ts +0 -8
  219. package/lib/mocks/file.d.ts +0 -11
  220. package/lib/mocks/group.d.ts +0 -17
  221. package/lib/mocks/image.d.ts +0 -3
  222. package/lib/mocks/post.d.ts +0 -38
  223. package/lib/mocks/tag.d.ts +0 -2
  224. package/lib/mocks/user.d.ts +0 -4
  225. package/lib/mutations/index.d.ts +0 -3
  226. package/lib/mutations/locations.d.ts +0 -2
  227. package/lib/mutations/messages.d.ts +0 -2
  228. package/lib/mutations/personas.d.ts +0 -2
  229. package/lib/mutations/personas.js +0 -100
  230. package/lib/mutations/posts.d.ts +0 -2
  231. package/lib/mutations/reactions.d.ts +0 -2
  232. package/lib/mutations/statistics.d.ts +0 -2
  233. package/lib/mutations/subscriptions.d.ts +0 -2
  234. package/lib/mutations/tags.d.ts +0 -2
  235. package/lib/mutations/users.d.ts +0 -1
  236. package/lib/objectTypes/app.d.ts +0 -3
  237. package/lib/objectTypes/bankAccount.d.ts +0 -1
  238. package/lib/objectTypes/connection.d.ts +0 -1
  239. package/lib/objectTypes/conversation.d.ts +0 -2
  240. package/lib/objectTypes/creditCard.d.ts +0 -1
  241. package/lib/objectTypes/document.d.ts +0 -1
  242. package/lib/objectTypes/error.d.ts +0 -1
  243. package/lib/objectTypes/external.d.ts +0 -1
  244. package/lib/objectTypes/file.d.ts +0 -2
  245. package/lib/objectTypes/filter.d.ts +0 -1
  246. package/lib/objectTypes/group.d.ts +0 -3
  247. package/lib/objectTypes/iapSubscription.d.ts +0 -1
  248. package/lib/objectTypes/image.d.ts +0 -2
  249. package/lib/objectTypes/index.d.ts +0 -24
  250. package/lib/objectTypes/location.d.ts +0 -2
  251. package/lib/objectTypes/message.d.ts +0 -2
  252. package/lib/objectTypes/passcode.d.ts +0 -1
  253. package/lib/objectTypes/persona.d.ts +0 -3
  254. package/lib/objectTypes/persona.js +0 -87
  255. package/lib/objectTypes/plan.d.ts +0 -2
  256. package/lib/objectTypes/post.d.ts +0 -2
  257. package/lib/objectTypes/reaction.d.ts +0 -2
  258. package/lib/objectTypes/relation.d.ts +0 -1
  259. package/lib/objectTypes/search.d.ts +0 -1
  260. package/lib/objectTypes/statistics.d.ts +0 -1
  261. package/lib/objectTypes/subscription.d.ts +0 -2
  262. package/lib/objectTypes/tag.d.ts +0 -2
  263. package/lib/objectTypes/user.d.ts +0 -4
  264. package/lib/queries/index.d.ts +0 -3
  265. package/lib/queries/locations.d.ts +0 -2
  266. package/lib/queries/messages.d.ts +0 -2
  267. package/lib/queries/posts.d.ts +0 -2
  268. package/lib/queries/reactions.d.ts +0 -2
  269. package/lib/queries/statistics.d.ts +0 -2
  270. package/lib/queries/subscriptions.d.ts +0 -2
  271. package/lib/queries/tags.d.ts +0 -2
  272. package/lib/queries/users.d.ts +0 -1
  273. package/lib/templates/email/layout.d.ts +0 -2
  274. package/lib/templates/email/passwordForgot.d.ts +0 -2
  275. package/lib/templates/email/passwordRecovery.d.ts +0 -2
  276. package/lib/templates/email/verifyEmail.d.ts +0 -2
  277. package/lib/templates/email/welcome.d.ts +0 -2
  278. package/lib/templates/sms/passwordForgot.d.ts +0 -2
  279. package/lib/templates/sms/passwordRecovery.d.ts +0 -2
  280. package/lib/templates/sms/verifyEmail.d.ts +0 -2
  281. package/lib/templates/sms/verifyPhone.d.ts +0 -2
  282. package/lib/templates/sms/welcome.d.ts +0 -2
  283. package/lib/types/apps.types.d.ts +0 -46
  284. package/lib/types/arangodb.types.d.ts +0 -34
  285. package/lib/types/auth.types.d.ts +0 -9
  286. package/lib/types/connections.types.d.ts +0 -5
  287. package/lib/types/conversations.types.d.ts +0 -27
  288. package/lib/types/email.types.d.ts +0 -13
  289. package/lib/types/error.types.d.ts +0 -20
  290. package/lib/types/files.types.d.ts +0 -23
  291. package/lib/types/google.types.d.ts +0 -29
  292. package/lib/types/groups.types.d.ts +0 -18
  293. package/lib/types/images.types.d.ts +0 -52
  294. package/lib/types/index.d.ts +0 -20
  295. package/lib/types/locations.types.d.ts +0 -18
  296. package/lib/types/messages.types.d.ts +0 -16
  297. package/lib/types/notifications.types.d.ts +0 -19
  298. package/lib/types/payments.types.d.ts +0 -109
  299. package/lib/types/personas.types.d.ts +0 -32
  300. package/lib/types/personas.types.js +0 -16
  301. package/lib/types/posts.types.d.ts +0 -28
  302. package/lib/types/statistics.types.d.ts +0 -3
  303. package/lib/types/tags.types.d.ts +0 -15
  304. package/lib/types/users.types.d.ts +0 -79
  305. package/lib/types/websockets.types.d.ts +0 -18
  306. package/lib/utils/adapterUtils.d.ts +0 -1
  307. package/lib/utils/analyticsUtils.d.ts +0 -21
  308. package/lib/utils/arangodbUtils.d.ts +0 -66
  309. package/lib/utils/auth.d.ts +0 -21
  310. package/lib/utils/auth.js +0 -57
  311. package/lib/utils/index.d.ts +0 -5
  312. package/lib/utils/session.d.ts +0 -18
  313. package/lib/utils/session.js +0 -60
  314. package/lib/utils/stripeUtils.d.ts +0 -3
@@ -0,0 +1,2 @@
1
+ import{getContentWithFallback as u}from"../actions/content";class m{batches=new Map;batchTimeout=50;maxBatchSize=20;async translate(e,t,n="en"){if(t.length===0)return{};const o=t.map(({key:r,fallback:i,params:l={}})=>this.getTranslation(e,r,i,l,n)),s=await Promise.all(o),a={};return t.forEach(({key:r},i)=>{a[r]=s[i]}),a}async getTranslation(e,t,n,o={},s="en"){return new Promise((a,r)=>{const i=this.getBatchKey(e,s),l={key:t,fallback:n,params:o,locale:s,resolve:a,reject:r};if(this.batches.has(i)){const c=this.batches.get(i);c.requests.push(l),c.requests.length>=this.maxBatchSize&&(clearTimeout(c.timeout),this.processBatch(i))}else{const c=setTimeout(()=>{this.processBatch(i)},this.batchTimeout);this.batches.set(i,{context:e,requests:[l],timeout:c})}})}async flush(){const e=Array.from(this.batches.keys());await Promise.all(e.map(t=>this.processBatch(t)))}clear(){this.batches.forEach(e=>{clearTimeout(e.timeout),e.requests.forEach(t=>{t.reject(new Error("Translation queue cleared"))})}),this.batches.clear()}getBatchKey(e,t){return`${e.databaseName}:${t}`}async processBatch(e){const t=this.batches.get(e);if(!t)return;this.batches.delete(e),clearTimeout(t.timeout);const n=t.requests.map(async s=>{try{const a=await u(t.context,s.key,s.fallback,s.locale),r=this.interpolate(a,s.params);return{request:s,result:r}}catch{const r=this.interpolate(s.fallback,s.params);return{request:s,result:r}}});(await Promise.allSettled(n)).forEach(s=>{if(s.status==="fulfilled")s.value.request.resolve(s.value.result);else{const{request:a}=s.reason,r=this.interpolate(a.fallback,a.params);a.resolve(r)}})}interpolate(e,t={}){return e.replace(/\{\{(\w+)\}\}/g,(n,o)=>t[o]!==void 0?String(t[o]):n)}}const h=new m,f=(p,e,t)=>h.translate(p,e,t),b=()=>h.flush(),d=()=>h.clear();export{d as clear,b as flush,f as i18n,h as translationQueue};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3RyYW5zbGF0aW9uUXVldWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmltcG9ydCB7Z2V0Q29udGVudFdpdGhGYWxsYmFja30gZnJvbSAnLi4vYWN0aW9ucy9jb250ZW50JztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMnO1xuaW1wb3J0IHR5cGUge0xvY2FsZX0gZnJvbSAnLi4vdHlwZXMvY29udGVudC50eXBlcyc7XG5cbmludGVyZmFjZSBUcmFuc2xhdGlvblJlcXVlc3Qge1xuICBrZXk6IHN0cmluZztcbiAgZmFsbGJhY2s6IHN0cmluZztcbiAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgbG9jYWxlOiBMb2NhbGU7XG4gIHJlc29sdmU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICByZWplY3Q6IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG59XG5cbmludGVyZmFjZSBUcmFuc2xhdGlvbkJhdGNoIHtcbiAgY29udGV4dDogQXBpQ29udGV4dDtcbiAgcmVxdWVzdHM6IFRyYW5zbGF0aW9uUmVxdWVzdFtdO1xuICB0aW1lb3V0OiBOb2RlSlMuVGltZW91dDtcbn1cblxuaW50ZXJmYWNlIFRyYW5zbGF0aW9uT2JqZWN0IHtcbiAga2V5OiBzdHJpbmc7XG4gIGZhbGxiYWNrPzogc3RyaW5nO1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5jbGFzcyBUcmFuc2xhdGlvblF1ZXVlIHtcbiAgcHJpdmF0ZSBiYXRjaGVzOiBNYXA8c3RyaW5nLCBUcmFuc2xhdGlvbkJhdGNoPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBiYXRjaFRpbWVvdXQgPSA1MDtcbiAgcHJpdmF0ZSBtYXhCYXRjaFNpemUgPSAyMDtcblxuICBhc3luYyB0cmFuc2xhdGUoXG4gICAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10sXG4gICAgbG9jYWxlOiBMb2NhbGUgPSAnZW4nXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIGlmKHRyYW5zbGF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9taXNlcyA9IHRyYW5zbGF0aW9ucy5tYXAoKHtrZXksIGZhbGxiYWNrLCBwYXJhbXMgPSB7fX0pID0+XG4gICAgICB0aGlzLmdldFRyYW5zbGF0aW9uKGNvbnRleHQsIGtleSwgZmFsbGJhY2ssIHBhcmFtcywgbG9jYWxlKVxuICAgICk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXG4gICAgY29uc3QgcmVzdWx0TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgdHJhbnNsYXRpb25zLmZvckVhY2goKHtrZXl9LCBpbmRleCkgPT4ge1xuICAgICAgcmVzdWx0TWFwW2tleV0gPSByZXN1bHRzW2luZGV4XTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHRNYXA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFRyYW5zbGF0aW9uKFxuICAgIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgZmFsbGJhY2s6IHN0cmluZyxcbiAgICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgYmF0Y2hLZXkgPSB0aGlzLmdldEJhdGNoS2V5KGNvbnRleHQsIGxvY2FsZSk7XG4gICAgICBjb25zdCByZXF1ZXN0OiBUcmFuc2xhdGlvblJlcXVlc3QgPSB7a2V5LCBmYWxsYmFjaywgcGFyYW1zLCBsb2NhbGUsIHJlc29sdmUsIHJlamVjdH07XG5cbiAgICAgIGlmKCF0aGlzLmJhdGNoZXMuaGFzKGJhdGNoS2V5KSkge1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzQmF0Y2goYmF0Y2hLZXkpO1xuICAgICAgICB9LCB0aGlzLmJhdGNoVGltZW91dCk7XG5cbiAgICAgICAgdGhpcy5iYXRjaGVzLnNldChiYXRjaEtleSwge1xuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgcmVxdWVzdHM6IFtyZXF1ZXN0XSxcbiAgICAgICAgICB0aW1lb3V0XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYmF0Y2ggPSB0aGlzLmJhdGNoZXMuZ2V0KGJhdGNoS2V5KSE7XG4gICAgICAgIGJhdGNoLnJlcXVlc3RzLnB1c2gocmVxdWVzdCk7XG5cbiAgICAgICAgaWYoYmF0Y2gucmVxdWVzdHMubGVuZ3RoID49IHRoaXMubWF4QmF0Y2hTaXplKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGJhdGNoLnRpbWVvdXQpO1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0JhdGNoKGJhdGNoS2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmF0Y2hLZXlzID0gQXJyYXkuZnJvbSh0aGlzLmJhdGNoZXMua2V5cygpKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChiYXRjaEtleXMubWFwKChrZXkpID0+IHRoaXMucHJvY2Vzc0JhdGNoKGtleSkpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuYmF0Y2hlcy5mb3JFYWNoKChiYXRjaCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KGJhdGNoLnRpbWVvdXQpO1xuICAgICAgYmF0Y2gucmVxdWVzdHMuZm9yRWFjaCgocmVxdWVzdCkgPT4ge1xuICAgICAgICByZXF1ZXN0LnJlamVjdChuZXcgRXJyb3IoJ1RyYW5zbGF0aW9uIHF1ZXVlIGNsZWFyZWQnKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmJhdGNoZXMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QmF0Y2hLZXkoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYWxlOiBMb2NhbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtjb250ZXh0LmRhdGFiYXNlTmFtZX06JHtsb2NhbGV9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0JhdGNoKGJhdGNoS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiYXRjaCA9IHRoaXMuYmF0Y2hlcy5nZXQoYmF0Y2hLZXkpO1xuICAgIGlmKCFiYXRjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYmF0Y2hlcy5kZWxldGUoYmF0Y2hLZXkpO1xuICAgIGNsZWFyVGltZW91dChiYXRjaC50aW1lb3V0KTtcblxuICAgIGNvbnN0IHByb21pc2VzID0gYmF0Y2gucmVxdWVzdHMubWFwKGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudFdpdGhGYWxsYmFjayhcbiAgICAgICAgICBiYXRjaC5jb250ZXh0LFxuICAgICAgICAgIHJlcXVlc3Qua2V5LFxuICAgICAgICAgIHJlcXVlc3QuZmFsbGJhY2ssXG4gICAgICAgICAgcmVxdWVzdC5sb2NhbGVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRDb250ZW50ID0gdGhpcy5pbnRlcnBvbGF0ZShjb250ZW50LCByZXF1ZXN0LnBhcmFtcyk7XG4gICAgICAgIHJldHVybiB7cmVxdWVzdCwgcmVzdWx0OiBpbnRlcnBvbGF0ZWRDb250ZW50fTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGVkRmFsbGJhY2sgPSB0aGlzLmludGVycG9sYXRlKHJlcXVlc3QuZmFsbGJhY2ssIHJlcXVlc3QucGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIHtyZXF1ZXN0LCByZXN1bHQ6IGludGVycG9sYXRlZEZhbGxiYWNrfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpO1xuXG4gICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICAgIGlmKHJlc3VsdC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAgIHJlc3VsdC52YWx1ZS5yZXF1ZXN0LnJlc29sdmUocmVzdWx0LnZhbHVlLnJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7cmVxdWVzdH0gPSByZXN1bHQucmVhc29uO1xuICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRGYWxsYmFjayA9IHRoaXMuaW50ZXJwb2xhdGUocmVxdWVzdC5mYWxsYmFjaywgcmVxdWVzdC5wYXJhbXMpO1xuICAgICAgICByZXF1ZXN0LnJlc29sdmUoaW50ZXJwb2xhdGVkRmFsbGJhY2spO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcnBvbGF0ZShjb250ZW50OiBzdHJpbmcsIHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9cXHtcXHsoXFx3KylcXH1cXH0vZywgKG1hdGNoLCBrZXkpID0+IChwYXJhbXNba2V5XSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKHBhcmFtc1trZXldKSA6IG1hdGNoKSk7XG4gIH1cbn1cblxuY29uc3QgdHJhbnNsYXRpb25RdWV1ZSA9IG5ldyBUcmFuc2xhdGlvblF1ZXVlKCk7XG5cbmV4cG9ydCBjb25zdCBpMThuID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10sXG4gIGxvY2FsZT86IExvY2FsZVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9PiB0cmFuc2xhdGlvblF1ZXVlLnRyYW5zbGF0ZShjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG5cbmV4cG9ydCBjb25zdCBmbHVzaCA9ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRyYW5zbGF0aW9uUXVldWUuZmx1c2goKTtcbmV4cG9ydCBjb25zdCBjbGVhciA9ICgpOiB2b2lkID0+IHRyYW5zbGF0aW9uUXVldWUuY2xlYXIoKTtcblxuZXhwb3J0IHR5cGUge1RyYW5zbGF0aW9uT2JqZWN0fTtcblxuZXhwb3J0IHt0cmFuc2xhdGlvblF1ZXVlfTsiXSwKICAibWFwcGluZ3MiOiAiQUFLQSxPQUFRLDBCQUFBQSxNQUE2QixxQkEwQnJDLE1BQU1DLENBQWlCLENBQ2IsUUFBeUMsSUFBSSxJQUM3QyxhQUFlLEdBQ2YsYUFBZSxHQUV2QixNQUFNLFVBQ0pDLEVBQ0FDLEVBQ0FDLEVBQWlCLEtBQ2dCLENBQ2pDLEdBQUdELEVBQWEsU0FBVyxFQUN6QixNQUFPLENBQUMsRUFHVixNQUFNRSxFQUFXRixFQUFhLElBQUksQ0FBQyxDQUFDLElBQUFHLEVBQUssU0FBQUMsRUFBVSxPQUFBQyxFQUFTLENBQUMsQ0FBQyxJQUM1RCxLQUFLLGVBQWVOLEVBQVNJLEVBQUtDLEVBQVVDLEVBQVFKLENBQU0sQ0FDNUQsRUFFTUssRUFBVSxNQUFNLFFBQVEsSUFBSUosQ0FBUSxFQUVwQ0ssRUFBb0MsQ0FBQyxFQUMzQyxPQUFBUCxFQUFhLFFBQVEsQ0FBQyxDQUFDLElBQUFHLENBQUcsRUFB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QU9GLENBQUcsSUFBTSxPQUFZLE9BQU9FLEVBQU9GLENBQUcsQ0FBQyxFQUFJaUIsQ0FBTSxDQUNwSCxDQUNGLENBRUEsTUFBTUMsRUFBbUIsSUFBSXZCLEVBRWhCd0IsRUFBTyxDQUNsQnZCLEVBQ0FDLEVBQ0FDLElBQ29Db0IsRUFBaUIsVUFBVXRCLEVBQVNDLEVBQWNDLENBQU0sRUFFakZzQixFQUFRLElBQXFCRixFQUFpQixNQUFNLEVBQ3BERyxFQUFRLElBQVlILEVBQWlCLE1BQU0iLAogICJuYW1lcyI6IFsiZ2V0Q29udGVudFdpdGhGYWxsYmFjayIsICJUcmFuc2xhdGlvblF1ZXVlIiwgImNvbnRleHQiLCAidHJhbnNsYXRpb25zIiwgImxvY2FsZSIsICJwcm9taXNlcyIsICJrZXkiLCAiZmFsbGJhY2siLCAicGFyYW1zIiwgInJlc3VsdHMiLCAicmVzdWx0TWFwIiwgImluZGV4IiwgInJlc29sdmUiLCAicmVqZWN0IiwgImJhdGNoS2V5IiwgInJlcXVlc3QiLCAiYmF0Y2giLCAidGltZW91dCIsICJiYXRjaEtleXMiLCAiY29udGVudCIsICJpbnRlcnBvbGF0ZWRDb250ZW50IiwgImludGVycG9sYXRlZEZhbGxiYWNrIiwgInJlc3VsdCIsICJtYXRjaCIsICJ0cmFuc2xhdGlvblF1ZXVlIiwgImkxOG4iLCAiZmx1c2giLCAiY2xlYXIiXQp9Cg==
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@nlabs/reaktor",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Reaktor",
5
+ "type": "module",
5
6
  "main": "./lib/index.js",
6
7
  "module": "./lib/index.js",
7
- "types": "./lib/index.d.js",
8
+ "types": "./lib/index.d.ts",
8
9
  "keywords": [
9
10
  "reaktor",
10
11
  "nitrogenlabs",
@@ -28,7 +29,7 @@
28
29
  "scripts": {
29
30
  "build": "lex compile --remove",
30
31
  "clean": "lex clean",
31
- "lint": "lex lint",
32
+ "lint": "lex lint --fix",
32
33
  "prepublishOnly": "npm run build",
33
34
  "publish:major": "npm version major && npm run publish:tags && npm publish",
34
35
  "publish:minor": "npm version minor && npm run publish:tags && npm publish",
@@ -40,53 +41,55 @@
40
41
  "watch": "lex compile --remove --watch"
41
42
  },
42
43
  "dependencies": {
43
- "@aws-sdk/client-apigatewaymanagementapi": "^3.835.0",
44
- "@aws-sdk/client-dynamodb": "^3.835.0",
45
- "@aws-sdk/client-s3": "^3.835.0",
46
- "@aws-sdk/client-ses": "^3.835.0",
47
- "@aws-sdk/client-sns": "^3.835.0",
48
- "@aws-sdk/s3-request-presigner": "^3.835.0",
49
- "@nlabs/arkhamjs": "^3.28.8",
50
- "@nlabs/rip-hunter": "^2.6.4",
51
- "@nlabs/utils": "^1.5.0",
44
+ "@aws-sdk/client-apigatewaymanagementapi": "^3.848.0",
45
+ "@aws-sdk/client-dynamodb": "^3.848.0",
46
+ "@aws-sdk/client-s3": "^3.850.0",
47
+ "@aws-sdk/client-ses": "^3.848.0",
48
+ "@aws-sdk/client-sns": "^3.848.0",
49
+ "@aws-sdk/s3-request-presigner": "^3.850.0",
50
+ "@nlabs/arkhamjs": "^3.31.6",
51
+ "@nlabs/rip-hunter": "^3.0.0",
52
+ "@nlabs/utils": "^2.7.6",
53
+ "@types/aws-lambda": "^8.10.152",
52
54
  "apn": "^2.2.0",
53
- "arangojs": "^10.1.1",
55
+ "arangojs": "^10.1.2",
54
56
  "aws-sdk": "^2.1692.0",
55
57
  "child_process": "^1.0.2",
56
- "core-js": "^3.43.0",
58
+ "core-js": "^3.44.0",
57
59
  "file-type": "^21.0.0",
58
60
  "gm": "^1.25.1",
59
61
  "google-libphonenumber": "^3.2.42",
60
- "googleapis": "150.0.1",
62
+ "googleapis": "153.0.0",
61
63
  "graphql": "^16.11.0",
62
64
  "graphql-compose": "^9.1.0",
63
65
  "graphql-fields": "^2.0.3",
66
+ "i18next": "^25.3.2",
64
67
  "jsonwebtoken": "^9.0.2",
65
68
  "lodash": "^4.17.21",
66
- "luxon": "^3.6.1",
69
+ "luxon": "^3.7.1",
67
70
  "mime-types": "^3.0.1",
68
71
  "net": "^1.0.2",
69
72
  "node-yelp": "^0.0.3",
70
73
  "numeral": "^2.0.6",
71
74
  "sanitize-html": "^2.17.0",
72
75
  "spawn-sync": "^2.0.0",
73
- "stripe": "^18.2.1",
76
+ "stripe": "^18.3.0",
74
77
  "tls": "0.0.1",
75
78
  "to": "^0.2.9",
76
79
  "typed-promisify": "^0.4.0",
77
- "universal-analytics": "^0.5.3"
80
+ "universal-analytics": "^0.5.3",
81
+ "zod": "^4.0.5"
78
82
  },
79
83
  "devDependencies": {
80
- "@nlabs/lex": "^1.47.0",
84
+ "@nlabs/lex": "^1.48.7",
81
85
  "@types/history": "^5.0.0",
82
86
  "@types/jest": "^30.0.0",
83
87
  "@types/luxon": "^3.6.2",
84
- "@types/node": "^24.0.4",
88
+ "@types/node": "^24.0.15",
85
89
  "@types/stripe": "^8.0.417",
86
90
  "@types/twilio": "^3.19.3",
87
- "graphql-tools": "^9.0.18",
91
+ "graphql-tools": "^9.0.20",
88
92
  "typescript": "^5.8.3",
89
- "typescript-eslint": "^8.35.0"
90
- },
91
- "type": "module"
93
+ "typescript-eslint": "^8.38.0"
94
+ }
92
95
  }
package/.prettierrc.js DELETED
@@ -1,4 +0,0 @@
1
-
2
- module.exports = {
3
- bracketSpacing: false
4
- }
@@ -1,25 +0,0 @@
1
- import { AppType } from '../types/apps.types';
2
- import type { ApiContext } from '../types/auth.types';
3
- import type { UserType } from '../types/users.types';
4
- export interface AppOptions {
5
- readonly id?: string;
6
- readonly key?: string;
7
- readonly from?: number;
8
- readonly name?: string;
9
- readonly to?: number;
10
- }
11
- export declare const getAppOptional: (fields?: string[]) => any;
12
- export declare const parseAppOptions: (options?: AppOptions) => {
13
- limit: import("..").ArangoDbLimit;
14
- id?: string;
15
- key?: string;
16
- from?: number;
17
- name?: string;
18
- to?: number;
19
- };
20
- export declare const addApp: (context: ApiContext, app: AppType) => Promise<UserType>;
21
- export declare const updateApp: (context: ApiContext, app: AppType) => Promise<AppType>;
22
- export declare const deleteApp: (context: ApiContext, app: AppType) => Promise<AppType>;
23
- export declare const deactivateApp: (context: ApiContext, app: AppType) => Promise<UserType>;
24
- export declare const getApp: (context: ApiContext, options?: AppOptions) => Promise<AppType>;
25
- export declare const getApps: (context: ApiContext, options?: AppOptions) => Promise<AppType[]>;
@@ -1,4 +0,0 @@
1
- import type { ApiContext, ConnectionType } from '../types';
2
- export declare const addConnection: (context: ApiContext, fromType: string, fromId: string, toType: string, toId: string, value?: string) => Promise<boolean>;
3
- export declare const getConnection: (context: ApiContext, fromType: string, fromId: string, toType: string, toId: string) => Promise<ConnectionType>;
4
- export declare const deleteConnection: (context: ApiContext, fromType: string, fromId: string, toType: string, toId: string) => Promise<boolean>;
@@ -1,14 +0,0 @@
1
- import type { ArangoDbLimit, ConnectionType, ConversationOptions, ConversationType, ConversationUsersParams, DirectConversationParams, UpdateConversationUserParams } from '../types';
2
- import type { ApiContext } from '../types/auth.types';
3
- export declare const parseConversationOptions: (options?: ConversationOptions) => {
4
- limit: ArangoDbLimit;
5
- };
6
- export declare const getConversations: (context: ApiContext, userId: string, options?: any) => Promise<ConversationType[]>;
7
- export declare const getDirectConversation: (context: ApiContext, { fromId, toId, toUser }: DirectConversationParams) => Promise<ConversationType>;
8
- export declare const addDirectConversation: (context: ApiContext, { fromId, toId, toUser }: DirectConversationParams) => Promise<ConversationType>;
9
- export declare const getConnectionUsers: (context: ApiContext, { conversationId, includeAll, isDirect }: ConversationUsersParams) => Promise<ConnectionType[]>;
10
- export declare const getConversationUsers: (context: ApiContext, { conversationId, includeAll, isDirect }: ConversationUsersParams) => Promise<ConversationType[]>;
11
- export declare const getConversation: (context: ApiContext, conversationId: string) => Promise<ConversationType>;
12
- export declare const updateConversation: (context: ApiContext, conversation: ConversationType) => Promise<ConversationType>;
13
- export declare const addUserToConversation: (context: ApiContext, { conversationId, userId }: UpdateConversationUserParams) => Promise<ConversationType>;
14
- export declare const deleteUserFromConversation: (context: ApiContext, { conversationId, userId }: UpdateConversationUserParams) => Promise<ConversationType>;
@@ -1,8 +0,0 @@
1
- import { BatchWriteItemCommandInput, BatchWriteItemCommandOutput, DeleteItemCommandInput, DeleteItemCommandOutput, GetItemCommandInput, GetItemCommandOutput, PutItemCommandInput, PutItemCommandOutput, QueryCommandInput, QueryCommandOutput, UpdateItemCommandInput, UpdateItemCommandOutput } from '@aws-sdk/client-dynamodb';
2
- export declare const dynamoGet: (params: GetItemCommandInput) => Promise<GetItemCommandOutput>;
3
- export declare const parseDynamoList: (results: QueryCommandOutput) => any[];
4
- export declare const dynamoGetList: (params: QueryCommandInput, startItem?: any) => Promise<GetItemCommandOutput[]>;
5
- export declare const dynamoPut: (params: PutItemCommandInput) => Promise<PutItemCommandOutput>;
6
- export declare const dynamoUpdate: (params: UpdateItemCommandInput) => Promise<UpdateItemCommandOutput>;
7
- export declare const dynamoPutList: (params: BatchWriteItemCommandInput) => Promise<BatchWriteItemCommandOutput>;
8
- export declare const dynamoDel: (params: DeleteItemCommandInput) => Promise<DeleteItemCommandOutput>;
@@ -1,5 +0,0 @@
1
- import { SendEmailCommandInput, SendEmailCommandOutput } from '@aws-sdk/client-ses';
2
- import { EmailType } from '../types/email.types';
3
- export declare const sesSend: (params: SendEmailCommandInput) => Promise<SendEmailCommandOutput>;
4
- export declare const sendEmail: (params: EmailType) => Promise<boolean>;
5
- export declare const sendTemplate: (templateName: string, emailParams: EmailType) => Promise<boolean>;
@@ -1,19 +0,0 @@
1
- import { ImageType } from '../types';
2
- import { ApiContext } from '../types/auth.types';
3
- import { FileType } from '../types/files.types';
4
- export declare const GIPHY_URL: string;
5
- export declare const getYouTube: () => import("googleapis").youtube_v3.Youtube;
6
- export declare const insertFile: (context: ApiContext, file: FileType) => Promise<any>;
7
- export declare const upsertFile: (context: ApiContext, file: FileType) => Promise<FileType>;
8
- export declare const uploadFile: (context: any, file: FileType, buffer: Buffer) => Promise<any>;
9
- export declare const addFile: (context: ApiContext, file: FileType) => Promise<FileType>;
10
- export declare const parseGiphyItem: (gifImage: any) => ImageType;
11
- export declare const getGiphyTrends: (limit?: number) => Promise<ImageType[]>;
12
- export declare const getGiphySearch: (query: string, limit?: number) => Promise<ImageType[]>;
13
- export declare const getYouTubeTrends: (limit?: number) => Promise<any[]>;
14
- export declare const getYouTubeSearch: (query: string, limit?: number) => Promise<any[]>;
15
- export declare const getPathUserFiles: (userId: string, filename: string) => string;
16
- export declare const linkFiles: (context: ApiContext, postDocId: string, files: FileType[]) => Promise<any>;
17
- export declare const updateFiles: (context: ApiContext, postDocId: string, files: FileType[]) => Promise<any>;
18
- export declare const encodeBase64: (buffer: Buffer) => string;
19
- export declare const decodeBase64: (dataString: string) => any;
@@ -1,14 +0,0 @@
1
- import { Database } from 'arangojs';
2
- import { ApiContext } from '../types/auth.types';
3
- import { GroupEdgeType, GroupType, GroupUser } from '../types/groups.types';
4
- export declare const getGroupList: (context: ApiContext, from: number, to: number) => Promise<GroupType[]>;
5
- export declare const getGroupListByUser: (context: ApiContext, from: number, to: number) => Promise<GroupType[]>;
6
- export declare const getGroupListByTags: (context: ApiContext, tags: string[], from: number, to: number) => Promise<GroupType[]>;
7
- export declare const getGroup: (context: ApiContext, itemId: string) => Promise<GroupType>;
8
- export declare const getGroupDetails: (context: ApiContext, groupId: string) => Promise<GroupType>;
9
- export declare const createGroupEdge: (database: Database, userId: string, groupId: string) => Promise<GroupEdgeType>;
10
- export declare const addGroup: (context: ApiContext, item: GroupType) => Promise<GroupType>;
11
- export declare const updateGroup: (context: ApiContext, item: GroupType) => Promise<GroupType>;
12
- export declare const deleteGroup: (context: ApiContext, itemId: string) => Promise<GroupType>;
13
- export declare const getGroupsByReaction: (context: ApiContext, reaction: string) => Promise<GroupType[]>;
14
- export declare const isGrouped: (database: Database, userId: string, groupId: string) => Promise<GroupUser>;
@@ -1,26 +0,0 @@
1
- import { PutObjectCommandInput } from '@aws-sdk/client-s3';
2
- import type { ApiContext, ArangoDbLimit, ImageEdgeType, ImageOptions, ImageType, ImageUrlData, QueryFilter } from '../types';
3
- export declare const parseImageOptions: (options?: ImageOptions) => {
4
- limit: ArangoDbLimit;
5
- type: string;
6
- };
7
- export declare const getImageOptional: (fields?: string[]) => any;
8
- export declare const getImagesByUser: (context: ApiContext, userId: string, from?: number, to?: number) => Promise<ImageType[]>;
9
- export declare const getImageCountByItem: (context: ApiContext, itemId: string) => Promise<number>;
10
- export declare const getImagesByItem: (context: ApiContext, itemId: string, options?: ImageOptions) => Promise<ImageType[]>;
11
- export declare const getImagesByGroup: (context: ApiContext, params: {
12
- filters: QueryFilter[];
13
- groupId: string;
14
- from: number;
15
- to: number;
16
- }) => Promise<ImageType[]>;
17
- export declare const getImagesByReactions: (context: ApiContext, reactions?: string[], options?: ImageOptions) => Promise<ImageType[]>;
18
- export declare const getImage: (context: ApiContext, imageId: string) => Promise<ImageType>;
19
- export declare const getPathUserImages: (userId: string, imageId: string, imageType: string, dir?: string) => string;
20
- export declare const getAppImageUrl: ({ bucket, directory, imageId, imageType, isThumb, type, typeId }: ImageUrlData) => string;
21
- export declare const getImageUrl: ({ bucket, imageDir, imageId, imageType, isThumb, type, typeId, urlType }: ImageUrlData) => Promise<string>;
22
- export declare const resizeSaveImage: (context: ApiContext, imageId: string, buffer: Buffer, fileType?: string, s3Options?: PutObjectCommandInput) => Promise<ImageType>;
23
- export declare const addImage: (context: ApiContext, image: ImageType, s3Options?: PutObjectCommandInput) => Promise<ImageType>;
24
- export declare const addImageEdge: (context: ApiContext, imageEdge: ImageEdgeType) => Promise<object>;
25
- export declare const updateImage: (context: ApiContext, image: ImageType, s3Options?: PutObjectCommandInput) => Promise<ImageType>;
26
- export declare const deleteImage: (context: ApiContext, imageId: string) => Promise<ImageType>;
@@ -1,23 +0,0 @@
1
- export * from './apps';
2
- export * from './connections';
3
- export * from './conversations';
4
- export * from './dynamodb';
5
- export * from './email';
6
- export * from './files';
7
- export * from './groups';
8
- export * from './images';
9
- export * from './ios';
10
- export * from './locations';
11
- export * from './messages';
12
- export * from './notifications';
13
- export * from './payments';
14
- export * from './posts';
15
- export * from './reactions';
16
- export * from './s3';
17
- export * from './search';
18
- export * from './sms';
19
- export * from './statistics';
20
- export * from './subscription';
21
- export * from './tags';
22
- export * from './users';
23
- export * from './websockets';
@@ -1,7 +0,0 @@
1
- import { Database } from 'arangojs';
2
- import { ApiContext, PaymentIOSInAppError, PaymentIOSSubscriptionUpdate, PaymentSubscription } from '../types';
3
- export declare const getIosInAppError: (statusCode: string) => PaymentIOSInAppError;
4
- export declare const iosSubscriptionUpdate: (database: Database, subscriptionUpdate: PaymentIOSSubscriptionUpdate) => Promise<void>;
5
- export declare const getIosSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
6
- export declare const addIosInApp: (context: ApiContext, subscription: PaymentSubscription) => Promise<PaymentSubscription>;
7
- export declare const getIosInApp: (context: ApiContext) => Promise<PaymentSubscription>;
@@ -1,6 +0,0 @@
1
- import { ApiContext } from '../types/auth.types';
2
- import { GoogleMapsAddressType } from '../types/google.types';
3
- import { LocationType } from '../types/locations.types';
4
- export declare const getFieldVal: (addressComponents: GoogleMapsAddressType[], name: string) => string;
5
- export declare const addLocation: (context: ApiContext, location: LocationType) => Promise<LocationType>;
6
- export declare const getLocation: (context: ApiContext, locationId: string) => Promise<LocationType>;
@@ -1,14 +0,0 @@
1
- import { Database } from 'arangojs';
2
- import type { ApiContext } from '../types/auth.types';
3
- import type { MessageInputType, MessageType } from '../types/messages.types';
4
- export declare const getMessages: (context: ApiContext, conversationId: string, { from, to }: {
5
- from: any;
6
- to: any;
7
- }) => Promise<MessageType[]>;
8
- export declare const updateMessage: (context: ApiContext, message: MessageInputType) => Promise<MessageType>;
9
- export declare const addMessage: (context: ApiContext, message: MessageInputType) => Promise<MessageType>;
10
- export declare const saveMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
11
- export declare const unsaveMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
12
- export declare const deleteMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
13
- export declare const getMessage: (context: ApiContext, messageId: string) => Promise<MessageType>;
14
- export declare const cleanMessages: (database: Database) => Promise<number>;
@@ -1,5 +0,0 @@
1
- import { Provider, Responses } from 'apn';
2
- import type { NotificationType } from '../types/notifications.types';
3
- export declare const getApnProvider: () => Provider;
4
- export declare const pushNotification: (deviceTokens: string[], note: NotificationType) => Promise<Responses>;
5
- export declare const clearBadges: (deviceTokens: string[]) => Promise<Responses>;
@@ -1,10 +0,0 @@
1
- import { ApiContext, PaymentBankAccount, PaymentCardType, PaymentCharge, PaymentTransfer, UserType } from '../types';
2
- export declare const addCustomerAccount: (context: ApiContext) => Promise<boolean>;
3
- export declare const addBankAccount: (context: ApiContext, bankAccount: PaymentBankAccount) => Promise<boolean>;
4
- export declare const addCreditCard: (context: ApiContext, card: PaymentCardType) => Promise<UserType>;
5
- export declare const updateCreditCard: (context: ApiContext, card: PaymentCardType) => Promise<PaymentCardType>;
6
- export declare const getCreditCards: (context: ApiContext) => Promise<PaymentCardType[]>;
7
- export declare const deleteCreditCard: (context: ApiContext, cardId: string) => Promise<boolean>;
8
- export declare const deleteBankAccount: (context: ApiContext, bankId: string) => Promise<boolean>;
9
- export declare const createPaymentTransfer: (context: ApiContext, transfer: PaymentTransfer) => Promise<PaymentTransfer>;
10
- export declare const createPaymentHold: (context: ApiContext, payment: PaymentCharge) => Promise<PaymentCharge>;
@@ -1,3 +0,0 @@
1
- import type { ApiContext, PersonaType } from '../types';
2
- export declare const addPersona: (context: ApiContext, persona: PersonaType) => Promise<PersonaType>;
3
- export declare const updatePersona: (context: ApiContext, persona: PersonaType) => Promise<PersonaType>;
@@ -1,110 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var personas_exports = {};
19
- __export(personas_exports, {
20
- addPersona: () => addPersona,
21
- updatePersona: () => updatePersona
22
- });
23
- module.exports = __toCommonJS(personas_exports);
24
- var import_utils = require("@nlabs/utils");
25
- var import_aql = require("arangojs/aql");
26
- const addPersona = (context, persona) => {
27
- const { database } = context;
28
- const {
29
- city,
30
- country,
31
- street1,
32
- street2,
33
- zip,
34
- state,
35
- timezone,
36
- firstName,
37
- lastName,
38
- gender,
39
- name,
40
- userId
41
- } = persona;
42
- const update = {
43
- city: city !== void 0 ? (0, import_utils.parseVarChar)(city, 32) : void 0,
44
- country: country !== void 0 ? (0, import_utils.parseVarChar)(country, 32) : void 0,
45
- firstName: firstName !== void 0 ? (0, import_utils.parseVarChar)(firstName, 32) : void 0,
46
- gender: gender !== void 0 ? (0, import_utils.parseChar)(gender, 1).toUpperCase() : void 0,
47
- lastName: lastName !== void 0 ? (0, import_utils.parseVarChar)(lastName, 32) : void 0,
48
- modified: Date.now(),
49
- name: name !== void 0 ? (0, import_utils.parseVarChar)(name, 32) : void 0,
50
- state: state !== void 0 ? (0, import_utils.parseVarChar)(state, 2) : void 0,
51
- street1: street1 !== void 0 ? (0, import_utils.parseVarChar)(street1, 32) : void 0,
52
- street2: street2 !== void 0 ? (0, import_utils.parseVarChar)(street2, 32) : void 0,
53
- timezone: timezone !== void 0 ? (0, import_utils.parseVarChar)(timezone, 32) : void 0,
54
- zip: zip !== void 0 ? (0, import_utils.parseVarChar)(zip, 15) : void 0
55
- };
56
- const insert = {
57
- ...update,
58
- _key: (0, import_utils.createHash)(userId),
59
- added: Date.now(),
60
- userId: (0, import_utils.parseId)(userId)
61
- };
62
- const aqlQry = import_aql.aql`UPSERT {sub: ${insert._key}}
63
- INSERT ${insert}
64
- UPDATE ${update}
65
- IN users RETURN NEW`;
66
- return database.query(aqlQry).then((cursor) => cursor.next());
67
- };
68
- const updatePersona = (context, persona) => {
69
- const { database } = context;
70
- const {
71
- city,
72
- country,
73
- street1,
74
- street2,
75
- zip,
76
- state,
77
- timezone,
78
- firstName,
79
- lastName,
80
- gender,
81
- name,
82
- userId
83
- } = persona;
84
- const update = {
85
- city: city !== void 0 ? (0, import_utils.parseVarChar)(city, 32) : void 0,
86
- country: country !== void 0 ? (0, import_utils.parseVarChar)(country, 32) : void 0,
87
- firstName: firstName !== void 0 ? (0, import_utils.parseVarChar)(firstName, 32) : void 0,
88
- gender: gender !== void 0 ? (0, import_utils.parseChar)(gender, 1).toUpperCase() : void 0,
89
- lastName: lastName !== void 0 ? (0, import_utils.parseVarChar)(lastName, 32) : void 0,
90
- modified: Date.now(),
91
- name: name !== void 0 ? (0, import_utils.parseVarChar)(name, 32) : void 0,
92
- state: state !== void 0 ? (0, import_utils.parseVarChar)(state, 2) : void 0,
93
- street1: street1 !== void 0 ? (0, import_utils.parseVarChar)(street1, 32) : void 0,
94
- street2: street2 !== void 0 ? (0, import_utils.parseVarChar)(street2, 32) : void 0,
95
- timezone: timezone !== void 0 ? (0, import_utils.parseVarChar)(timezone, 32) : void 0,
96
- userId: userId !== void 0 ? (0, import_utils.parseId)(userId) : void 0,
97
- zip: zip !== void 0 ? (0, import_utils.parseVarChar)(zip, 15) : void 0
98
- };
99
- const aqlQry = import_aql.aql`UPDATE {sub: ${persona._key}}
100
- INSERT ${persona}
101
- UPDATE ${update}
102
- IN users RETURN NEW`;
103
- return database.query(aqlQry).then((cursor) => cursor.next());
104
- };
105
- // Annotate the CommonJS export names for ESM import in node:
106
- 0 && (module.exports = {
107
- addPersona,
108
- updatePersona
109
- });
110
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvcGVyc29uYXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgdHlwZSBBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHQsIFBlcnNvbmFUeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBhZGRQZXJzb25hID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBlcnNvbmE6IFBlcnNvbmFUeXBlKTogUHJvbWlzZTxQZXJzb25hVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGNpdHksXG4gICAgY291bnRyeSxcbiAgICBzdHJlZXQxLFxuICAgIHN0cmVldDIsXG4gICAgemlwLFxuICAgIHN0YXRlLFxuICAgIHRpbWV6b25lLFxuICAgIGZpcnN0TmFtZSxcbiAgICBsYXN0TmFtZSxcbiAgICBnZW5kZXIsXG4gICAgbmFtZSxcbiAgICB1c2VySWRcbiAgfSA9IHBlcnNvbmE7XG5cbiAgY29uc3QgdXBkYXRlOiBQZXJzb25hVHlwZSA9IHtcbiAgICBjaXR5OiBjaXR5ICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIoY2l0eSwgMzIpIDogdW5kZWZpbmVkLFxuICAgIGNvdW50cnk6IGNvdW50cnkgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihjb3VudHJ5LCAzMikgOiB1bmRlZmluZWQsXG4gICAgZmlyc3ROYW1lOiBmaXJzdE5hbWUgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihmaXJzdE5hbWUsIDMyKSA6IHVuZGVmaW5lZCxcbiAgICBnZW5kZXI6IGdlbmRlciAhPT0gdW5kZWZpbmVkID8gcGFyc2VDaGFyKGdlbmRlciwgMSkudG9VcHBlckNhc2UoKSA6IHVuZGVmaW5lZCxcbiAgICBsYXN0TmFtZTogbGFzdE5hbWUgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihsYXN0TmFtZSwgMzIpIDogdW5kZWZpbmVkLFxuICAgIG1vZGlmaWVkOiBEYXRlLm5vdygpLFxuICAgIG5hbWU6IG5hbWUgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihuYW1lLCAzMikgOiB1bmRlZmluZWQsXG4gICAgc3RhdGU6IHN0YXRlICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIoc3RhdGUsIDIpIDogdW5kZWZpbmVkLFxuICAgIHN0cmVldDE6IHN0cmVldDEgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihzdHJlZXQxLCAzMikgOiB1bmRlZmluZWQsXG4gICAgc3RyZWV0Mjogc3RyZWV0MiAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKHN0cmVldDIsIDMyKSA6IHVuZGVmaW5lZCxcbiAgICB0aW1lem9uZTogdGltZXpvbmUgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcih0aW1lem9uZSwgMzIpIDogdW5kZWZpbmVkLFxuICAgIHppcDogemlwICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIoemlwLCAxNSkgOiB1bmRlZmluZWRcbiAgfTtcblxuICBjb25zdCBpbnNlcnQ6IFBlcnNvbmFUeXBlID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfa2V5OiBjcmVhdGVIYXNoKHVzZXJJZCksXG4gICAgYWRkZWQ6IERhdGUubm93KCksXG4gICAgdXNlcklkOiBwYXJzZUlkKHVzZXJJZClcbiAgfTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7c3ViOiAke2luc2VydC5fa2V5fX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIHVzZXJzIFJFVFVSTiBORVdgO1xuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KS50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBlcnNvbmEgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcGVyc29uYTogUGVyc29uYVR5cGUpOiBQcm9taXNlPFBlcnNvbmFUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgY2l0eSxcbiAgICBjb3VudHJ5LFxuICAgIHN0cmVldDEsXG4gICAgc3RyZWV0MixcbiAgICB6aXAsXG4gICAgc3RhdGUsXG4gICAgdGltZXpvbmUsXG4gICAgZmlyc3ROYW1lLFxuICAgIGxhc3ROYW1lLFxuICAgIGdlbmRlcixcbiAgICBuYW1lLFxuICAgIHVzZXJJZFxuICB9ID0gcGVyc29uYTtcblxuICBjb25zdCB1cGRhdGU6IFBlcnNvbmFUeXBlID0ge1xuICAgIGNpdHk6IGNpdHkgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihjaXR5LCAzMikgOiB1bmRlZmluZWQsXG4gICAgY291bnRyeTogY291bnRyeSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKGNvdW50cnksIDMyKSA6IHVuZGVmaW5lZCxcbiAgICBmaXJzdE5hbWU6IGZpcnN0TmFtZSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKGZpcnN0TmFtZSwgMzIpIDogdW5kZWZpbmVkLFxuICAgIGdlbmRlcjogZ2VuZGVyICE9PSB1bmRlZmluZWQgPyBwYXJzZUNoYXIoZ2VuZGVyLCAxKS50b1VwcGVyQ2FzZSgpIDogdW5kZWZpbmVkLFxuICAgIGxhc3ROYW1lOiBsYXN0TmFtZSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKGxhc3ROYW1lLCAzMikgOiB1bmRlZmluZWQsXG4gICAgbW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgbmFtZTogbmFtZSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKG5hbWUsIDMyKSA6IHVuZGVmaW5lZCxcbiAgICBzdGF0ZTogc3RhdGUgIT09IHVuZGVmaW5lZCA/IHBhcnNlVmFyQ2hhcihzdGF0ZSwgMikgOiB1bmRlZmluZWQsXG4gICAgc3RyZWV0MTogc3RyZWV0MSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKHN0cmVldDEsIDMyKSA6IHVuZGVmaW5lZCxcbiAgICBzdHJlZXQyOiBzdHJlZXQyICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIoc3RyZWV0MiwgMzIpIDogdW5kZWZpbmVkLFxuICAgIHRpbWV6b25lOiB0aW1lem9uZSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKHRpbWV6b25lLCAzMikgOiB1bmRlZmluZWQsXG4gICAgdXNlcklkOiB1c2VySWQgIT09IHVuZGVmaW5lZCA/IHBhcnNlSWQodXNlcklkKSA6IHVuZGVmaW5lZCxcbiAgICB6aXA6IHppcCAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKHppcCwgMTUpIDogdW5kZWZpbmVkXG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUERBVEUge3N1YjogJHtwZXJzb25hLl9rZXl9fVxuICAgIElOU0VSVCAke3BlcnNvbmF9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIHVzZXJzIFJFVFVSTiBORVdgO1xuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KS50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpO1xufTsiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUEyRDtBQUMzRCxpQkFBaUM7QUFJMUIsTUFBTSxhQUFhLENBQUMsU0FBcUIsWUFBK0M7QUFDN0YsUUFBTSxFQUFDLFNBQVEsSUFBSTtBQUNuQixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFD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
@@ -1,22 +0,0 @@
1
- import type { ApiContext, ArangoDbLimit, FileType, PostInputType, PostOptions, PostType } from '../types';
2
- export declare const parsePostOptions: (options?: PostOptions) => {
3
- latitude: number;
4
- limit: ArangoDbLimit;
5
- longitude: number;
6
- type: string;
7
- };
8
- export declare const getPostOptional: (fields: string[], sessionId: string) => {
9
- objects: any[];
10
- queries: any[];
11
- };
12
- export declare const getPost: (context: ApiContext, postId: string, options?: PostOptions) => Promise<PostType>;
13
- export declare const getPostsByArea: (context: ApiContext, latitude: number, longitude: number, options?: PostOptions) => Promise<PostType[]>;
14
- export declare const getPostsByLatest: (context: ApiContext, options?: PostOptions) => Promise<PostType[]>;
15
- export declare const getPostsByReactions: (context: ApiContext, reactions?: string[], options?: PostOptions) => Promise<PostType[]>;
16
- export declare const getPostsByTags: (context: ApiContext, tags?: string[], options?: PostOptions) => Promise<PostType[]>;
17
- export declare const getPostsByUser: (context: ApiContext, userId: string, options?: PostOptions) => Promise<PostType[]>;
18
- export declare const getPostComments: (context: ApiContext, postId: string, options?: PostOptions) => Promise<PostType[]>;
19
- export declare const addPost: (context: ApiContext, { content, endDate, groupId, location, latitude, longitude, name, parentId, privacy, tags, startDate, type }: PostInputType) => Promise<PostType>;
20
- export declare const updatePost: (context: ApiContext, post: PostInputType) => Promise<PostType>;
21
- export declare const deletePost: (context: ApiContext, postDocId: string) => Promise<PostType>;
22
- export declare const createPostEdge: (context: ApiContext, postDocId: string, itemDocId: string, edgeType?: string, props?: {}) => Promise<FileType>;
@@ -1,30 +0,0 @@
1
- import type { ApiContext, ArangoDbCollection, ArangoDbLimit, UserType, UserReactionQuery } from '../types';
2
- export type ReactionDirection = 'INBOUND' | 'OUTBOUND';
3
- export interface Reaction {
4
- readonly _from?: string;
5
- readonly _key?: string;
6
- readonly _to?: string;
7
- readonly added?: number;
8
- readonly count?: number;
9
- readonly id?: string;
10
- readonly name?: string;
11
- readonly type?: ArangoDbCollection;
12
- readonly value?: string;
13
- }
14
- export interface ReactionOptions {
15
- readonly from?: number;
16
- readonly to?: number;
17
- }
18
- export declare const parseReactionOptions: (options?: ReactionOptions) => {
19
- limit: ArangoDbLimit;
20
- };
21
- export declare const addReaction: (context: ApiContext, itemId: string, reaction?: Reaction, allowDuplicate?: boolean) => Promise<Reaction>;
22
- export declare const deleteReaction: (context: ApiContext, reactionId: string) => Promise<Reaction>;
23
- export declare const deleteReactionByItem: (context: ApiContext, itemId: string, reactionName: string) => Promise<Reaction>;
24
- export declare const updateReaction: (context: ApiContext, reaction?: Reaction) => Promise<Reaction>;
25
- export declare const getReactionCount: (context: ApiContext, itemId: string, reactionName: string) => Promise<Reaction>;
26
- export declare const getReactionCountByUser: (context: ApiContext, itemId: string, itemType: string, reactionName: string) => Promise<Reaction[]>;
27
- export declare const getGroupUsersByReaction: (context: ApiContext, params?: UserReactionQuery) => Promise<UserType[]>;
28
- export declare const getReactionsByItem: (context: ApiContext, itemId: string, reactionName: string, options: ReactionOptions) => Promise<UserType[]>;
29
- export declare const getItemsByReaction: (context: ApiContext, itemId: string, reactionName: string, options: ReactionOptions) => Promise<Reaction[]>;
30
- export declare const hasReaction: (context: ApiContext, itemId: string, reactionName: string, direction?: ReactionDirection) => Promise<boolean>;
@@ -1,7 +0,0 @@
1
- import { DeleteObjectCommandInput, DeleteObjectCommandOutput, DeleteObjectsCommandInput, DeleteObjectsCommandOutput, GetObjectCommandInput, GetObjectCommandOutput, HeadObjectCommandInput, HeadObjectCommandOutput, PutObjectCommandInput, PutObjectCommandOutput } from '@aws-sdk/client-s3';
2
- export declare const s3Get: (params: GetObjectCommandInput) => Promise<GetObjectCommandOutput>;
3
- export declare const s3Head: (params: HeadObjectCommandInput) => Promise<HeadObjectCommandOutput>;
4
- export declare const s3Put: (params: PutObjectCommandInput) => Promise<PutObjectCommandOutput>;
5
- export declare const s3Delete: (params: DeleteObjectCommandInput) => Promise<DeleteObjectCommandOutput>;
6
- export declare const s3DeleteList: (params: DeleteObjectsCommandInput) => Promise<DeleteObjectsCommandOutput>;
7
- export declare const s3GetSignedUrl: (params?: any) => Promise<string>;
@@ -1,3 +0,0 @@
1
- import type { ApiContext } from '../types/auth.types';
2
- import type { UserType } from '../types/users.types';
3
- export declare const getSearchList: (context: ApiContext, query: string, from: number, to: number) => Promise<UserType[]>;
@@ -1,9 +0,0 @@
1
- import { SMSParamsType } from '../types/notifications.types';
2
- interface SNSResponse {
3
- MessageId?: string;
4
- SequenceNumber?: string;
5
- status?: string;
6
- }
7
- export declare const sendSms: ({ app, text, user, variables }: SMSParamsType) => Promise<SNSResponse>;
8
- export declare const sendSmsTemplate: (templateName: string, { app, user, variables }: SMSParamsType) => Promise<boolean>;
9
- export {};
@@ -1,3 +0,0 @@
1
- import type { ApiContext, StatisticsType } from '../types';
2
- export declare const getGlobalStatistics: (context: ApiContext) => Promise<StatisticsType>;
3
- export declare const updateGlobalStatistics: (context: ApiContext) => Promise<StatisticsType>;
@@ -1,7 +0,0 @@
1
- import type { ApiContext } from '../types/auth.types';
2
- import type { PaymentPlan, PaymentSubscription } from '../types/payments.types';
3
- export declare const getPlanList: (context: ApiContext, from?: number, to?: number) => Promise<PaymentPlan[]>;
4
- export declare const getSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
5
- export declare const addPlan: (context: ApiContext, item: PaymentPlan) => Promise<PaymentPlan>;
6
- export declare const addSubscription: (context: ApiContext, item: any) => Promise<PaymentSubscription>;
7
- export declare const deleteSubscription: (context: ApiContext) => Promise<boolean>;