@nlabs/reaktor 0.8.1 → 0.10.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 (445) hide show
  1. package/.prettierrc.js +4 -0
  2. package/README.md +10 -1
  3. package/coverage/actions/groups.ts.html +1039 -0
  4. package/coverage/actions/images.ts.html +2500 -0
  5. package/coverage/actions/index.html +131 -0
  6. package/coverage/actions/tags.ts.html +1000 -0
  7. package/coverage/adapters/arangoAdapter.ts.html +151 -0
  8. package/coverage/adapters/index.html +146 -0
  9. package/coverage/adapters/reaktorAdapter.ts.html +127 -0
  10. package/coverage/adapters/tagAdapter.ts.html +160 -0
  11. package/coverage/base.css +224 -0
  12. package/coverage/block-navigation.js +87 -0
  13. package/coverage/clover.xml +6 -0
  14. package/coverage/coverage-final.json +1 -0
  15. package/coverage/favicon.png +0 -0
  16. package/coverage/index.html +221 -0
  17. package/coverage/lcov-report/base.css +224 -0
  18. package/coverage/lcov-report/block-navigation.js +87 -0
  19. package/coverage/lcov-report/favicon.png +0 -0
  20. package/coverage/lcov-report/index.html +101 -0
  21. package/coverage/lcov-report/prettify.css +1 -0
  22. package/coverage/lcov-report/prettify.js +2 -0
  23. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  24. package/coverage/lcov-report/sorter.js +196 -0
  25. package/coverage/lcov.info +0 -0
  26. package/coverage/mocks/file.ts.html +118 -0
  27. package/coverage/mocks/group.ts.html +145 -0
  28. package/coverage/mocks/image.ts.html +136 -0
  29. package/coverage/mocks/index.html +146 -0
  30. package/coverage/mocks/post.ts.html +169 -0
  31. package/coverage/mocks/tag.ts.html +121 -0
  32. package/coverage/mocks/user.ts.html +268 -0
  33. package/coverage/prettify.css +1 -0
  34. package/coverage/prettify.js +2 -0
  35. package/coverage/sort-arrow-sprite.png +0 -0
  36. package/coverage/sorter.js +196 -0
  37. package/coverage/types/error.ts.html +145 -0
  38. package/coverage/types/index.html +116 -0
  39. package/coverage/utils/adapterUtils.ts.html +151 -0
  40. package/coverage/utils/analyticsUtils.ts.html +292 -0
  41. package/coverage/utils/arangodbUtils.ts.html +463 -0
  42. package/coverage/utils/index.html +146 -0
  43. package/dist/actions/apps.js +242 -0
  44. package/dist/actions/connections.js +90 -0
  45. package/dist/actions/conversations.js +350 -0
  46. package/dist/actions/dynamodb.js +150 -0
  47. package/dist/actions/email.js +152 -0
  48. package/dist/actions/files.js +283 -0
  49. package/dist/actions/groups.js +292 -0
  50. package/dist/actions/images.js +735 -0
  51. package/dist/actions/index.js +66 -0
  52. package/dist/actions/ios.js +164 -0
  53. package/dist/actions/locations.js +122 -0
  54. package/dist/actions/messages.js +208 -0
  55. package/dist/actions/notifications.js +59 -0
  56. package/dist/actions/payments.js +497 -0
  57. package/dist/actions/personas.js +110 -0
  58. package/dist/actions/posts.js +595 -0
  59. package/dist/actions/reactions.js +322 -0
  60. package/dist/actions/s3.js +133 -0
  61. package/dist/actions/search.js +90 -0
  62. package/dist/actions/sms.js +108 -0
  63. package/dist/actions/statistics.js +62 -0
  64. package/dist/actions/subscription.js +220 -0
  65. package/dist/actions/tags.js +292 -0
  66. package/dist/actions/users.js +784 -0
  67. package/dist/actions/websockets.js +174 -0
  68. package/dist/adapters/arangoAdapter.js +46 -0
  69. package/dist/adapters/fileAdapter.js +76 -0
  70. package/dist/adapters/imageAdapter.js +40 -0
  71. package/dist/adapters/messageAdapter.js +49 -0
  72. package/dist/adapters/postAdapter.js +70 -0
  73. package/dist/adapters/reaktorAdapter.js +44 -0
  74. package/dist/adapters/tagAdapter.js +50 -0
  75. package/dist/adapters/userAdapter.js +115 -0
  76. package/dist/config.js +125 -0
  77. package/dist/index.js +66 -0
  78. package/dist/lambdas/actions/websockets.js +132 -0
  79. package/dist/lambdas/authorizer.js +67 -0
  80. package/dist/lambdas/connection.js +91 -0
  81. package/dist/lambdas/utils/message.js +42 -0
  82. package/dist/lambdas/utils/websocket.js +105 -0
  83. package/dist/mocks/conversation.js +35 -0
  84. package/dist/mocks/file.js +38 -0
  85. package/dist/mocks/group.js +47 -0
  86. package/dist/mocks/image.js +44 -0
  87. package/dist/mocks/nlabs.png +0 -0
  88. package/dist/mocks/post.js +55 -0
  89. package/dist/mocks/tag.js +37 -0
  90. package/dist/mocks/user.js +88 -0
  91. package/dist/mutations/index.js +26 -0
  92. package/dist/mutations/locations.js +44 -0
  93. package/dist/mutations/messages.js +86 -0
  94. package/dist/mutations/personas.js +100 -0
  95. package/dist/mutations/posts.js +53 -0
  96. package/dist/mutations/reactions.js +51 -0
  97. package/dist/mutations/statistics.js +39 -0
  98. package/dist/mutations/subscriptions.js +56 -0
  99. package/dist/mutations/tags.js +120 -0
  100. package/dist/mutations/users.js +116 -0
  101. package/dist/objectTypes/app.js +173 -0
  102. package/dist/objectTypes/bankAccount.js +76 -0
  103. package/dist/objectTypes/connection.js +48 -0
  104. package/dist/objectTypes/conversation.js +77 -0
  105. package/dist/objectTypes/creditCard.js +86 -0
  106. package/dist/objectTypes/document.js +46 -0
  107. package/dist/objectTypes/error.js +46 -0
  108. package/dist/objectTypes/external.js +74 -0
  109. package/dist/objectTypes/file.js +100 -0
  110. package/dist/objectTypes/filter.js +43 -0
  111. package/dist/objectTypes/group.js +123 -0
  112. package/dist/objectTypes/iapSubscription.js +40 -0
  113. package/dist/objectTypes/image.js +129 -0
  114. package/dist/objectTypes/index.js +68 -0
  115. package/dist/objectTypes/location.js +109 -0
  116. package/dist/objectTypes/message.js +96 -0
  117. package/dist/objectTypes/passcode.js +42 -0
  118. package/dist/objectTypes/persona.js +87 -0
  119. package/dist/objectTypes/plan.js +95 -0
  120. package/dist/objectTypes/post.js +125 -0
  121. package/dist/objectTypes/reaction.js +61 -0
  122. package/dist/objectTypes/relation.js +49 -0
  123. package/dist/objectTypes/search.js +72 -0
  124. package/dist/objectTypes/statistics.js +39 -0
  125. package/dist/objectTypes/subscription.js +117 -0
  126. package/dist/objectTypes/tag.js +65 -0
  127. package/dist/objectTypes/user.js +144 -0
  128. package/dist/queries/index.js +33 -0
  129. package/dist/queries/locations.js +45 -0
  130. package/dist/queries/messages.js +52 -0
  131. package/dist/queries/posts.js +154 -0
  132. package/dist/queries/reactions.js +56 -0
  133. package/dist/queries/statistics.js +39 -0
  134. package/dist/queries/subscriptions.js +44 -0
  135. package/dist/queries/tags.js +75 -0
  136. package/dist/queries/users.js +64 -0
  137. package/dist/templates/email/layout.js +302 -0
  138. package/dist/templates/email/passwordForgot.js +38 -0
  139. package/dist/templates/email/passwordRecovery.js +35 -0
  140. package/dist/templates/email/verifyEmail.js +38 -0
  141. package/dist/templates/email/welcome.js +38 -0
  142. package/dist/templates/sms/passwordForgot.js +24 -0
  143. package/dist/templates/sms/passwordRecovery.js +24 -0
  144. package/dist/templates/sms/verifyEmail.js +24 -0
  145. package/dist/templates/sms/verifyPhone.js +24 -0
  146. package/dist/templates/sms/welcome.js +24 -0
  147. package/dist/types/apps.js +32 -0
  148. package/dist/types/arangodb.js +16 -0
  149. package/{lib → dist}/types/auth.js +1 -1
  150. package/{lib → dist}/types/connections.js +1 -1
  151. package/{lib → dist}/types/conversations.js +1 -1
  152. package/{lib → dist}/types/email.js +1 -1
  153. package/dist/types/error.js +44 -0
  154. package/{lib → dist}/types/files.js +1 -1
  155. package/dist/types/google.js +16 -0
  156. package/{lib → dist}/types/groups.js +1 -1
  157. package/dist/types/images.js +16 -0
  158. package/dist/types/index.js +60 -0
  159. package/{lib → dist}/types/locations.js +1 -1
  160. package/dist/types/messages.js +16 -0
  161. package/{lib → dist}/types/notifications.js +1 -1
  162. package/dist/types/payments.js +16 -0
  163. package/dist/types/personas.js +16 -0
  164. package/dist/types/posts.js +16 -0
  165. package/{lib → dist}/types/statistics.js +1 -1
  166. package/{lib → dist}/types/tags.js +1 -1
  167. package/dist/types/users.js +16 -0
  168. package/dist/types/websockets.js +16 -0
  169. package/dist/utils/adapterUtils.js +45 -0
  170. package/dist/utils/analyticsUtils.js +72 -0
  171. package/dist/utils/arangodbUtils.js +165 -0
  172. package/dist/utils/auth.js +57 -0
  173. package/dist/utils/index.js +30 -0
  174. package/dist/utils/session.js +60 -0
  175. package/jest.setup.js +0 -0
  176. package/jpg:- +0 -0
  177. package/lex.config.cjs +13 -0
  178. package/lib/actions/apps.d.ts +25 -0
  179. package/lib/actions/apps.js +242 -0
  180. package/lib/actions/connections.d.ts +4 -0
  181. package/lib/actions/connections.js +90 -0
  182. package/lib/actions/conversations.d.ts +12 -12
  183. package/lib/actions/conversations.js +147 -131
  184. package/lib/actions/dynamodb.d.ts +8 -8
  185. package/lib/actions/dynamodb.js +35 -32
  186. package/lib/actions/email.d.ts +3 -5
  187. package/lib/actions/email.js +33 -63
  188. package/lib/actions/files.d.ts +17 -14
  189. package/lib/actions/files.js +184 -202
  190. package/lib/actions/groups.d.ts +4 -4
  191. package/lib/actions/groups.js +47 -45
  192. package/lib/actions/images.d.ts +17 -13
  193. package/lib/actions/images.js +325 -264
  194. package/lib/actions/index.d.ts +3 -0
  195. package/lib/actions/index.js +7 -1
  196. package/lib/actions/ios.js +11 -10
  197. package/lib/actions/locations.d.ts +5 -2
  198. package/lib/actions/locations.js +41 -37
  199. package/lib/actions/messages.d.ts +4 -3
  200. package/lib/actions/messages.js +35 -32
  201. package/lib/actions/notifications.d.ts +2 -2
  202. package/lib/actions/notifications.js +1 -1
  203. package/lib/actions/payments.d.ts +2 -2
  204. package/lib/actions/payments.js +87 -83
  205. package/lib/actions/personas.d.ts +3 -0
  206. package/lib/actions/personas.js +110 -0
  207. package/lib/actions/posts.d.ts +11 -10
  208. package/lib/actions/posts.js +186 -152
  209. package/lib/actions/reactions.d.ts +5 -5
  210. package/lib/actions/reactions.js +30 -28
  211. package/lib/actions/s3.d.ts +7 -7
  212. package/lib/actions/s3.js +37 -32
  213. package/lib/actions/search.d.ts +3 -3
  214. package/lib/actions/search.js +13 -11
  215. package/lib/actions/sms.d.ts +9 -3
  216. package/lib/actions/sms.js +60 -34
  217. package/lib/actions/statistics.d.ts +3 -2
  218. package/lib/actions/statistics.js +21 -18
  219. package/lib/actions/subscription.d.ts +2 -2
  220. package/lib/actions/subscription.js +32 -39
  221. package/lib/actions/tags.d.ts +23 -20
  222. package/lib/actions/tags.js +161 -205
  223. package/lib/actions/users.d.ts +50 -22
  224. package/lib/actions/users.js +441 -217
  225. package/lib/actions/websockets.d.ts +19 -5
  226. package/lib/actions/websockets.js +89 -61
  227. package/lib/adapters/arangoAdapter.d.ts +2 -0
  228. package/lib/adapters/arangoAdapter.js +46 -0
  229. package/lib/adapters/fileAdapter.d.ts +3 -0
  230. package/lib/adapters/fileAdapter.js +76 -0
  231. package/lib/adapters/imageAdapter.d.ts +2 -0
  232. package/lib/adapters/imageAdapter.js +40 -0
  233. package/lib/adapters/messageAdapter.d.ts +2 -0
  234. package/lib/adapters/messageAdapter.js +49 -0
  235. package/lib/adapters/postAdapter.d.ts +2 -0
  236. package/lib/adapters/postAdapter.js +70 -0
  237. package/lib/adapters/reaktorAdapter.d.ts +6 -0
  238. package/lib/adapters/reaktorAdapter.js +44 -0
  239. package/lib/adapters/tagAdapter.d.ts +2 -0
  240. package/lib/adapters/tagAdapter.js +50 -0
  241. package/lib/adapters/userAdapter.d.ts +2 -0
  242. package/lib/adapters/userAdapter.js +115 -0
  243. package/lib/config.js +16 -17
  244. package/lib/index.d.ts +7 -0
  245. package/lib/index.js +44 -8
  246. package/lib/lambdas/actions/websockets.d.ts +7 -6
  247. package/lib/lambdas/actions/websockets.js +15 -11
  248. package/lib/lambdas/authorizer.js +4 -4
  249. package/lib/lambdas/connection.js +20 -20
  250. package/lib/lambdas/utils/message.js +1 -1
  251. package/lib/lambdas/utils/websocket.js +8 -7
  252. package/lib/mocks/conversation.d.ts +8 -0
  253. package/lib/mocks/conversation.js +35 -0
  254. package/lib/mocks/file.d.ts +11 -0
  255. package/lib/mocks/file.js +38 -0
  256. package/lib/mocks/group.d.ts +17 -0
  257. package/lib/mocks/group.js +47 -0
  258. package/lib/mocks/image.d.ts +3 -0
  259. package/lib/mocks/image.js +44 -0
  260. package/lib/mocks/nlabs.png +0 -0
  261. package/lib/mocks/post.d.ts +38 -0
  262. package/lib/mocks/post.js +55 -0
  263. package/lib/mocks/tag.d.ts +2 -0
  264. package/lib/mocks/tag.js +37 -0
  265. package/lib/mocks/user.d.ts +4 -0
  266. package/lib/mocks/user.js +88 -0
  267. package/lib/mutations/index.d.ts +3 -0
  268. package/lib/mutations/index.js +26 -0
  269. package/lib/mutations/locations.d.ts +2 -0
  270. package/lib/mutations/locations.js +44 -0
  271. package/lib/mutations/messages.d.ts +2 -0
  272. package/lib/mutations/messages.js +86 -0
  273. package/lib/mutations/personas.d.ts +2 -0
  274. package/lib/mutations/personas.js +100 -0
  275. package/lib/mutations/posts.d.ts +2 -0
  276. package/lib/mutations/posts.js +53 -0
  277. package/lib/mutations/reactions.d.ts +2 -0
  278. package/lib/mutations/reactions.js +51 -0
  279. package/lib/mutations/statistics.d.ts +2 -0
  280. package/lib/mutations/statistics.js +39 -0
  281. package/lib/mutations/subscriptions.d.ts +2 -0
  282. package/lib/mutations/subscriptions.js +56 -0
  283. package/lib/mutations/tags.d.ts +2 -0
  284. package/lib/mutations/tags.js +120 -0
  285. package/lib/mutations/users.d.ts +1 -0
  286. package/lib/mutations/users.js +116 -0
  287. package/lib/objectTypes/app.d.ts +3 -0
  288. package/lib/objectTypes/app.js +173 -0
  289. package/lib/objectTypes/bankAccount.d.ts +1 -0
  290. package/lib/objectTypes/bankAccount.js +76 -0
  291. package/lib/objectTypes/connection.d.ts +1 -0
  292. package/lib/objectTypes/connection.js +48 -0
  293. package/lib/objectTypes/conversation.d.ts +2 -0
  294. package/lib/objectTypes/conversation.js +77 -0
  295. package/lib/objectTypes/creditCard.d.ts +1 -0
  296. package/lib/objectTypes/creditCard.js +86 -0
  297. package/lib/objectTypes/document.d.ts +1 -0
  298. package/lib/objectTypes/document.js +46 -0
  299. package/lib/objectTypes/error.d.ts +1 -0
  300. package/lib/objectTypes/error.js +46 -0
  301. package/lib/objectTypes/external.d.ts +1 -0
  302. package/lib/objectTypes/external.js +74 -0
  303. package/lib/objectTypes/file.d.ts +2 -0
  304. package/lib/objectTypes/file.js +100 -0
  305. package/lib/objectTypes/filter.d.ts +1 -0
  306. package/lib/objectTypes/filter.js +43 -0
  307. package/lib/objectTypes/group.d.ts +3 -0
  308. package/lib/objectTypes/group.js +123 -0
  309. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  310. package/lib/objectTypes/iapSubscription.js +40 -0
  311. package/lib/objectTypes/image.d.ts +2 -0
  312. package/lib/objectTypes/image.js +129 -0
  313. package/lib/objectTypes/index.d.ts +24 -0
  314. package/lib/objectTypes/index.js +68 -0
  315. package/lib/objectTypes/location.d.ts +2 -0
  316. package/lib/objectTypes/location.js +109 -0
  317. package/lib/objectTypes/message.d.ts +2 -0
  318. package/lib/objectTypes/message.js +96 -0
  319. package/lib/objectTypes/passcode.d.ts +1 -0
  320. package/lib/objectTypes/passcode.js +42 -0
  321. package/lib/objectTypes/persona.d.ts +3 -0
  322. package/lib/objectTypes/persona.js +87 -0
  323. package/lib/objectTypes/plan.d.ts +2 -0
  324. package/lib/objectTypes/plan.js +95 -0
  325. package/lib/objectTypes/post.d.ts +2 -0
  326. package/lib/objectTypes/post.js +125 -0
  327. package/lib/objectTypes/reaction.d.ts +2 -0
  328. package/lib/objectTypes/reaction.js +61 -0
  329. package/lib/objectTypes/relation.d.ts +1 -0
  330. package/lib/objectTypes/relation.js +49 -0
  331. package/lib/objectTypes/search.d.ts +1 -0
  332. package/lib/objectTypes/search.js +72 -0
  333. package/lib/objectTypes/statistics.d.ts +1 -0
  334. package/lib/objectTypes/statistics.js +39 -0
  335. package/lib/objectTypes/subscription.d.ts +2 -0
  336. package/lib/objectTypes/subscription.js +117 -0
  337. package/lib/objectTypes/tag.d.ts +2 -0
  338. package/lib/objectTypes/tag.js +65 -0
  339. package/lib/objectTypes/user.d.ts +4 -0
  340. package/lib/objectTypes/user.js +144 -0
  341. package/lib/queries/index.d.ts +3 -0
  342. package/lib/queries/index.js +33 -0
  343. package/lib/queries/locations.d.ts +2 -0
  344. package/lib/queries/locations.js +45 -0
  345. package/lib/queries/messages.d.ts +2 -0
  346. package/lib/queries/messages.js +52 -0
  347. package/lib/queries/posts.d.ts +2 -0
  348. package/lib/queries/posts.js +154 -0
  349. package/lib/queries/reactions.d.ts +2 -0
  350. package/lib/queries/reactions.js +56 -0
  351. package/lib/queries/statistics.d.ts +2 -0
  352. package/lib/queries/statistics.js +39 -0
  353. package/lib/queries/subscriptions.d.ts +2 -0
  354. package/lib/queries/subscriptions.js +44 -0
  355. package/lib/queries/tags.d.ts +2 -0
  356. package/lib/queries/tags.js +75 -0
  357. package/lib/queries/users.d.ts +1 -0
  358. package/lib/queries/users.js +64 -0
  359. package/lib/types/{apps.d.ts → apps.types.d.ts} +19 -17
  360. package/lib/types/apps.types.js +32 -0
  361. package/lib/types/arangodb.types.d.ts +34 -0
  362. package/lib/types/arangodb.types.js +16 -0
  363. package/lib/types/auth.types.d.ts +9 -0
  364. package/lib/types/auth.types.js +16 -0
  365. package/lib/types/connections.types.d.ts +5 -0
  366. package/lib/types/connections.types.js +16 -0
  367. package/lib/types/conversations.types.d.ts +27 -0
  368. package/lib/types/conversations.types.js +16 -0
  369. package/lib/types/email.types.d.ts +13 -0
  370. package/lib/types/email.types.js +16 -0
  371. package/lib/types/error.types.d.ts +20 -0
  372. package/lib/types/error.types.js +44 -0
  373. package/lib/types/{files.d.ts → files.types.d.ts} +9 -12
  374. package/lib/types/files.types.js +16 -0
  375. package/lib/types/google.types.d.ts +29 -0
  376. package/lib/types/google.types.js +16 -0
  377. package/lib/types/{groups.d.ts → groups.types.d.ts} +6 -10
  378. package/lib/types/groups.types.js +16 -0
  379. package/lib/types/images.types.d.ts +52 -0
  380. package/lib/types/images.types.js +16 -0
  381. package/lib/types/index.d.ts +20 -18
  382. package/lib/types/index.js +41 -37
  383. package/lib/types/{locations.d.ts → locations.types.d.ts} +4 -6
  384. package/lib/types/locations.types.js +16 -0
  385. package/lib/types/messages.types.d.ts +16 -0
  386. package/lib/types/messages.types.js +16 -0
  387. package/lib/types/notifications.types.d.ts +19 -0
  388. package/lib/types/notifications.types.js +16 -0
  389. package/lib/types/{payments.d.ts → payments.types.d.ts} +13 -19
  390. package/lib/types/payments.types.js +16 -0
  391. package/lib/types/personas.types.d.ts +32 -0
  392. package/lib/types/personas.types.js +16 -0
  393. package/lib/types/posts.types.d.ts +28 -0
  394. package/lib/types/posts.types.js +16 -0
  395. package/lib/types/statistics.types.d.ts +3 -0
  396. package/lib/types/statistics.types.js +16 -0
  397. package/lib/types/tags.types.d.ts +15 -0
  398. package/lib/types/tags.types.js +16 -0
  399. package/lib/types/{users.d.ts → users.types.d.ts} +21 -22
  400. package/lib/types/users.types.js +16 -0
  401. package/lib/types/{websocket.d.ts → websockets.types.d.ts} +7 -3
  402. package/lib/types/websockets.types.js +16 -0
  403. package/lib/utils/adapterUtils.d.ts +1 -0
  404. package/lib/utils/adapterUtils.js +45 -0
  405. package/lib/utils/analyticsUtils.d.ts +21 -0
  406. package/lib/utils/analyticsUtils.js +72 -0
  407. package/lib/utils/arangodbUtils.d.ts +66 -0
  408. package/lib/utils/arangodbUtils.js +165 -0
  409. package/lib/utils/auth.d.ts +19 -3
  410. package/lib/utils/auth.js +20 -30
  411. package/lib/utils/index.d.ts +3 -4
  412. package/lib/utils/index.js +7 -9
  413. package/lib/utils/session.d.ts +10 -10
  414. package/lib/utils/session.js +15 -3
  415. package/lib/utils/stripeUtils.d.ts +3 -0
  416. package/lib/utils/{graphql.js → stripeUtils.js} +12 -15
  417. package/package.json +38 -30
  418. package/lib/types/apps.js +0 -16
  419. package/lib/types/arangodb.d.ts +0 -17
  420. package/lib/types/arangodb.js +0 -16
  421. package/lib/types/auth.d.ts +0 -7
  422. package/lib/types/connections.d.ts +0 -8
  423. package/lib/types/conversations.d.ts +0 -16
  424. package/lib/types/email.d.ts +0 -12
  425. package/lib/types/google.d.ts +0 -27
  426. package/lib/types/google.js +0 -16
  427. package/lib/types/images.d.ts +0 -42
  428. package/lib/types/images.js +0 -16
  429. package/lib/types/messages.d.ts +0 -27
  430. package/lib/types/messages.js +0 -16
  431. package/lib/types/notifications.d.ts +0 -19
  432. package/lib/types/payments.js +0 -16
  433. package/lib/types/posts.d.ts +0 -47
  434. package/lib/types/posts.js +0 -16
  435. package/lib/types/statistics.d.ts +0 -3
  436. package/lib/types/tags.d.ts +0 -15
  437. package/lib/types/users.js +0 -16
  438. package/lib/types/websocket.js +0 -16
  439. package/lib/utils/analytics.d.ts +0 -14
  440. package/lib/utils/analytics.js +0 -88
  441. package/lib/utils/arangodb.d.ts +0 -9
  442. package/lib/utils/arangodb.js +0 -118
  443. package/lib/utils/graphql.d.ts +0 -1
  444. package/lib/utils/objects.d.ts +0 -3
  445. package/lib/utils/objects.js +0 -59
@@ -0,0 +1,165 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var arangodbUtils_exports = {};
29
+ __export(arangodbUtils_exports, {
30
+ collectionDetails: () => collectionDetails,
31
+ getDocId: () => getDocId,
32
+ getGqlFields: () => getGqlFields,
33
+ getLimit: () => getLimit,
34
+ selectReactionCountByType: () => selectReactionCountByType,
35
+ sortIds: () => sortIds,
36
+ useDb: () => useDb
37
+ });
38
+ module.exports = __toCommonJS(arangodbUtils_exports);
39
+ var import_utils = require("@nlabs/utils");
40
+ var import_arangojs = require("arangojs");
41
+ var import_graphql_fields = __toESM(require("graphql-fields"), 1);
42
+ const useDb = (databaseName) => new import_arangojs.Database({
43
+ auth: {
44
+ password: process.env.ARANGODB_PASSWORD,
45
+ username: process.env.ARANGODB_USERNAME
46
+ },
47
+ databaseName,
48
+ url: `${process.env.ARANGODB_URL}:${process.env.ARANGODB_PORT}`
49
+ });
50
+ const collectionDetails = {
51
+ apps: {
52
+ collection: "apps",
53
+ key: "appId"
54
+ },
55
+ conversations: {
56
+ collection: "conversations",
57
+ key: "conversationId"
58
+ },
59
+ files: {
60
+ collection: "files",
61
+ key: "fileId"
62
+ },
63
+ groups: {
64
+ collection: "groups",
65
+ key: "groupId"
66
+ },
67
+ images: {
68
+ collection: "images",
69
+ key: "imageId"
70
+ },
71
+ locations: {
72
+ collection: "locations",
73
+ key: "locationId"
74
+ },
75
+ messages: {
76
+ collection: "messages",
77
+ key: "messageId"
78
+ },
79
+ notifications: {
80
+ collection: "notifications",
81
+ key: "notificationId"
82
+ },
83
+ payments: {
84
+ collection: "payments",
85
+ key: "paymentId"
86
+ },
87
+ posts: {
88
+ collection: "posts",
89
+ key: "postId"
90
+ },
91
+ reactions: {
92
+ collection: "reactions",
93
+ key: "reactionId"
94
+ },
95
+ subscriptions: {
96
+ collection: "subscriptions",
97
+ key: "subscriptionId"
98
+ },
99
+ tags: {
100
+ collection: "tags",
101
+ key: "tagId"
102
+ },
103
+ users: {
104
+ collection: "users",
105
+ key: "userId"
106
+ }
107
+ };
108
+ const getDocId = (collection, item) => {
109
+ const { _id, _key, id } = item;
110
+ const itemId = (0, import_utils.parseArangoId)(_id || id);
111
+ if (itemId) {
112
+ const idParts = itemId.split("/");
113
+ if (collectionDetails[idParts[0]]) {
114
+ return itemId;
115
+ }
116
+ }
117
+ let itemKey = (0, import_utils.parseId)(_key);
118
+ if (!itemKey) {
119
+ itemKey = item[collectionDetails[collection].key];
120
+ }
121
+ return itemKey ? `${collection}/${itemKey}` : "";
122
+ };
123
+ const getLimit = (start = 0, to = 30) => {
124
+ let num = (0, import_utils.parseNum)(to) - (0, import_utils.parseNum)(start);
125
+ if (num > 50) {
126
+ num = 50;
127
+ }
128
+ return { aql: to >= 0 ? `LIMIT ${start}, ${num}` : "", num, start };
129
+ };
130
+ const selectReactionCountByType = (objectType, objectKey, field, selects) => {
131
+ const reactionType = field.substring(0, field.indexOf("Count"));
132
+ selects.queries.push(`LET ${field} = FIRST(
133
+ FOR obj, r IN INBOUND ${objectKey}._id hasReaction
134
+ FILTER r.name == "${reactionType}" && r.type == "${objectType}"
135
+ COLLECT WITH COUNT INTO count
136
+ RETURN count
137
+ )`);
138
+ selects.objects.push(`${field}:${field}`);
139
+ return selects;
140
+ };
141
+ const sortIds = (ids, sort = "ASC") => ids.sort((a, b) => {
142
+ if (sort.toUpperCase() === "ASC") {
143
+ return a.localeCompare(b);
144
+ }
145
+ return b.localeCompare(a);
146
+ });
147
+ const getGqlFields = (info) => {
148
+ const fields = (0, import_graphql_fields.default)(info) || {};
149
+ const methodName = Object.keys(fields)[0];
150
+ if (methodName) {
151
+ return Object.keys(fields[methodName]);
152
+ }
153
+ return [];
154
+ };
155
+ // Annotate the CommonJS export names for ESM import in node:
156
+ 0 && (module.exports = {
157
+ collectionDetails,
158
+ getDocId,
159
+ getGqlFields,
160
+ getLimit,
161
+ selectReactionCountByType,
162
+ sortIds,
163
+ useDb
164
+ });
165
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FyYW5nb2RiVXRpbHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlTnVtfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtEYXRhYmFzZX0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IGdyYXBocWxGaWVsZHMgZnJvbSAnZ3JhcGhxbC1maWVsZHMnO1xuXG5pbXBvcnQgdHlwZSB7QXJhbmdvRGJDb2xsZWN0aW9uLCBBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5cbmV4cG9ydCBjb25zdCB1c2VEYiA9IChkYXRhYmFzZU5hbWU6IHN0cmluZyk6IERhdGFiYXNlID0+IG5ldyBEYXRhYmFzZSh7XG4gIGF1dGg6IHtcbiAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuQVJBTkdPREJfUEFTU1dPUkQsXG4gICAgdXNlcm5hbWU6IHByb2Nlc3MuZW52LkFSQU5HT0RCX1VTRVJOQU1FXG4gIH0sXG4gIGRhdGFiYXNlTmFtZSxcbiAgdXJsOiBgJHtwcm9jZXNzLmVudi5BUkFOR09EQl9VUkx9OiR7cHJvY2Vzcy5lbnYuQVJBTkdPREJfUE9SVH1gXG59KTtcblxuZXhwb3J0IGNvbnN0IGNvbGxlY3Rpb25EZXRhaWxzID0ge1xuICBhcHBzOiB7XG4gICAgY29sbGVjdGlvbjogJ2FwcHMnLFxuICAgIGtleTogJ2FwcElkJ1xuICB9LFxuICBjb252ZXJzYXRpb25zOiB7XG4gICAgY29sbGVjdGlvbjogJ2NvbnZlcnNhdGlvbnMnLFxuICAgIGtleTogJ2NvbnZlcnNhdGlvbklkJ1xuICB9LFxuICBmaWxlczoge1xuICAgIGNvbGxlY3Rpb246ICdmaWxlcycsXG4gICAga2V5OiAnZmlsZUlkJ1xuICB9LFxuICBncm91cHM6IHtcbiAgICBjb2xsZWN0aW9uOiAnZ3JvdXBzJyxcbiAgICBrZXk6ICdncm91cElkJ1xuICB9LFxuICBpbWFnZXM6IHtcbiAgICBjb2xsZWN0aW9uOiAnaW1hZ2VzJyxcbiAgICBrZXk6ICdpbWFnZUlkJ1xuICB9LFxuICBsb2NhdGlvbnM6IHtcbiAgICBjb2xsZWN0aW9uOiAnbG9jYXRpb25zJyxcbiAgICBrZXk6ICdsb2NhdGlvbklkJ1xuICB9LFxuICBtZXNzYWdlczoge1xuICAgIGNvbGxlY3Rpb246ICdtZXNzYWdlcycsXG4gICAga2V5OiAnbWVzc2FnZUlkJ1xuICB9LFxuICBub3RpZmljYXRpb25zOiB7XG4gICAgY29sbGVjdGlvbjogJ25vdGlmaWNhdGlvbnMnLFxuICAgIGtleTogJ25vdGlmaWNhdGlvbklkJ1xuICB9LFxuICBwYXltZW50czoge1xuICAgIGNvbGxlY3Rpb246ICdwYXltZW50cycsXG4gICAga2V5OiAncGF5bWVudElkJ1xuICB9LFxuICBwb3N0czoge1xuICAgIGNvbGxlY3Rpb246ICdwb3N0cycsXG4gICAga2V5OiAncG9zdElkJ1xuICB9LFxuICByZWFjdGlvbnM6IHtcbiAgICBjb2xsZWN0aW9uOiAncmVhY3Rpb25zJyxcbiAgICBrZXk6ICdyZWFjdGlvbklkJ1xuICB9LFxuICBzdWJzY3JpcHRpb25zOiB7XG4gICAgY29sbGVjdGlvbjogJ3N1YnNjcmlwdGlvbnMnLFxuICAgIGtleTogJ3N1YnNjcmlwdGlvbklkJ1xuICB9LFxuICB0YWdzOiB7XG4gICAgY29sbGVjdGlvbjogJ3RhZ3MnLFxuICAgIGtleTogJ3RhZ0lkJ1xuICB9LFxuICB1c2Vyczoge1xuICAgIGNvbGxlY3Rpb246ICd1c2VycycsXG4gICAga2V5OiAndXNlcklkJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RG9jSWQgPSAoY29sbGVjdGlvbjogQXJhbmdvRGJDb2xsZWN0aW9uLCBpdGVtKTogc3RyaW5nID0+IHtcbiAgY29uc3Qge19pZCwgX2tleSwgaWR9ID0gaXRlbTtcbiAgY29uc3QgaXRlbUlkID0gcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQpO1xuXG4gIGlmKGl0ZW1JZCkge1xuICAgIGNvbnN0IGlkUGFydHMgPSBpdGVtSWQuc3BsaXQoJy8nKTtcblxuICAgIGlmKGNvbGxlY3Rpb25EZXRhaWxzW2lkUGFydHNbMF1dKSB7XG4gICAgICByZXR1cm4gaXRlbUlkO1xuICAgIH1cbiAgfVxuXG4gIGxldCBpdGVtS2V5ID0gcGFyc2VJZChfa2V5KTtcblxuICBpZighaXRlbUtleSkge1xuICAgIGl0ZW1LZXkgPSBpdGVtW2NvbGxlY3Rpb25EZXRhaWxzW2NvbGxlY3Rpb25dLmtleV07XG4gIH1cblxuICByZXR1cm4gaXRlbUtleSA/IGAke2NvbGxlY3Rpb259LyR7aXRlbUtleX1gIDogJyc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGltaXQgPSAoc3RhcnQ6IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IEFyYW5nb0RiTGltaXQgPT4ge1xuICBsZXQgbnVtID0gcGFyc2VOdW0odG8pIC0gcGFyc2VOdW0oc3RhcnQpO1xuXG4gIGlmKG51bSA+IDUwKSB7XG4gICAgbnVtID0gNTA7XG4gIH1cblxuICByZXR1cm4ge2FxbDogdG8gPj0gMCA/IGBMSU1JVCAke3N0YXJ0fSwgJHtudW19YCA6ICcnLCBudW0sIHN0YXJ0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlID0gKG9iamVjdFR5cGU6IHN0cmluZywgb2JqZWN0S2V5OiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcsIHNlbGVjdHMpID0+IHtcbiAgY29uc3QgcmVhY3Rpb25UeXBlOiBzdHJpbmcgPSBmaWVsZC5zdWJzdHJpbmcoMCwgZmllbGQuaW5kZXhPZignQ291bnQnKSk7XG4gIHNlbGVjdHMucXVlcmllcy5wdXNoKGBMRVQgJHtmaWVsZH0gPSBGSVJTVChcbiAgICAgIEZPUiBvYmosIHIgSU4gSU5CT1VORCAke29iamVjdEtleX0uX2lkIGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5uYW1lID09IFwiJHtyZWFjdGlvblR5cGV9XCIgJiYgci50eXBlID09IFwiJHtvYmplY3RUeXBlfVwiXG4gICAgICBDT0xMRUNUIFdJVEggQ09VTlQgSU5UTyBjb3VudFxuICAgICAgUkVUVVJOIGNvdW50XG4gICAgKWApO1xuICBzZWxlY3RzLm9iamVjdHMucHVzaChgJHtmaWVsZH06JHtmaWVsZH1gKTtcbiAgcmV0dXJuIHNlbGVjdHM7XG59O1xuXG5leHBvcnQgY29uc3Qgc29ydElkcyA9IChpZHM6IHN0cmluZ1tdLCBzb3J0OiBzdHJpbmcgPSAnQVNDJyk6IHN0cmluZ1tdID0+IGlkcy5zb3J0KChhLCBiKSA9PiB7XG4gIGlmKHNvcnQudG9VcHBlckNhc2UoKSA9PT0gJ0FTQycpIHtcbiAgICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIpO1xuICB9XG5cbiAgcmV0dXJuIGIubG9jYWxlQ29tcGFyZShhKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0R3FsRmllbGRzID0gKGluZm8pID0+IHtcbiAgY29uc3QgZmllbGRzID0gZ3JhcGhxbEZpZWxkcyhpbmZvKSB8fCB7fTtcbiAgY29uc3QgbWV0aG9kTmFtZTogc3RyaW5nID0gT2JqZWN0LmtleXMoZmllbGRzKVswXTtcblxuICBpZihtZXRob2ROYW1lKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpZWxkc1ttZXRob2ROYW1lXSk7XG4gIH1cblxuICByZXR1cm4gW107XG59OyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBK0M7QUFDL0Msc0JBQXVCO0FBQ3ZCLDRCQUEwQjtBQUluQixNQUFNLFFBQVEsQ0FBQyxpQkFBbUMsSUFBSSx5QkFBUztBQUFBLEVBQ3BFLE1BQU07QUFBQSxJQUNKLFVBQVUsUUFBUSxJQUFJO0FBQUEsSUFDdEIsVUFBVSxRQUFRLElBQUk7QUFBQSxFQUN4QjtBQUFBLEVBQ0E7QUFBQSxFQUNBLEtBQUssR0FBRyxRQUFRLElBQUksWUFBWSxJQUFJLFFBQVEsSUFBSSxhQUFhO0FBQy9ELENBQUM7QUFFTSxNQUFNLG9CQUFvQjtBQUFBLEVBQy9CLE1BQU07QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ0wsWUFBWTtBQUFBLElBQ1osS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLFlBQVk7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNSLFlBQVk7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1IsWUFBWTtBQUFBLElBQ1osS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNMLFlBQVk7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZUFBZTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsRUFDUDtBQUNGO0FBRU8sTUFBTSxXQUFXLENBQUMsWUFBZ0MsU0FBaUI7QUFDeEUsUUFBTSxFQUFDLEtBQUssTUFBTSxHQUFFLElBQUk7QUFDeEIsUUFBTSxhQUFTLDRCQUFjLE9BQU8sRUFBRTtBQUV0QyxNQUFHLFFBQVE7QUFDVCxVQUFNLFVBQVUsT0FBTyxNQUFNLEdBQUc7QUFFaEMsUUFBRyxrQkFBa0IsUUFBUSxDQUFDLENBQUMsR0FBRztBQUNoQyxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxNQUFJLGNBQVUsc0JBQVEsSUFBSTtBQUUxQixNQUFHLENBQUMsU0FBUztBQUNYLGNBQVUsS0FBSyxrQkFBa0IsVUFBVSxFQUFFLEdBQUc7QUFBQSxFQUNsRDtBQUVBLFNBQU8sVUFBVSxHQUFHLFVBQVUsSUFBSSxPQUFPLEtBQUs7QUFDaEQ7QUFFTyxNQUFNLFdBQVcsQ0FBQyxRQUFnQixHQUFHLEtBQWEsT0FBc0I7QUFDN0UsTUFBSSxVQUFNLHVCQUFTLEVBQUUsUUFBSSx1QkFBUyxLQUFLO0FBRXZDLE1BQUcsTUFBTSxJQUFJO0FBQ1gsVUFBTTtBQUFBLEVBQ1I7QUFFQSxTQUFPLEVBQUMsS0FBSyxNQUFNLElBQUksU0FBUyxLQUFLLEtBQUssR0FBRyxLQUFLLElBQUksS0FBSyxNQUFLO0FBQ2xFO0FBRU8sTUFBTSw0QkFBNEIsQ0FBQyxZQUFvQixXQUFtQixPQUFlLFlBQVk7QUFDMUcsUUFBTSxlQUF1QixNQUFNLFVBQVUsR0FBRyxNQUFNLFFBQVEsT0FBTyxDQUFDO0FBQ3RFLFVBQVEsUUFBUSxLQUFLLE9BQU8sS0FBSztBQUFBLDhCQUNMLFNBQVM7QUFBQSwwQkFDYixZQUFZLG1CQUFtQixVQUFVO0FBQUE7QUFBQTtBQUFBLE1BRzdEO0FBQ0osVUFBUSxRQUFRLEtBQUssR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFO0FBQ3hDLFNBQU87QUFDVDtBQUVPLE1BQU0sVUFBVSxDQUFDLEtBQWUsT0FBZSxVQUFvQixJQUFJLEtBQUssQ0FBQyxHQUFHLE1BQU07QUFDM0YsTUFBRyxLQUFLLFlBQVksTUFBTSxPQUFPO0FBQy9CLFdBQU8sRUFBRSxjQUFjLENBQUM7QUFBQSxFQUMxQjtBQUVBLFNBQU8sRUFBRSxjQUFjLENBQUM7QUFDMUIsQ0FBQztBQUVNLE1BQU0sZUFBZSxDQUFDLFNBQVM7QUFDcEMsUUFBTSxhQUFTLHNCQUFBQSxTQUFjLElBQUksS0FBSyxDQUFDO0FBQ3ZDLFFBQU0sYUFBcUIsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO0FBRWhELE1BQUcsWUFBWTtBQUNiLFdBQU8sT0FBTyxLQUFLLE9BQU8sVUFBVSxDQUFDO0FBQUEsRUFDdkM7QUFFQSxTQUFPLENBQUM7QUFDVjsiLAogICJuYW1lcyI6IFsiZ3JhcGhxbEZpZWxkcyJdCn0K
@@ -0,0 +1,57 @@
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 auth_exports = {};
19
+ __export(auth_exports, {
20
+ getLambdaData: () => getLambdaData,
21
+ isAuthenticated: () => isAuthenticated,
22
+ parseJsonData: () => parseJsonData
23
+ });
24
+ module.exports = __toCommonJS(auth_exports);
25
+ const getLambdaData = (data) => {
26
+ if (typeof data === "string") {
27
+ return {
28
+ body: parseJsonData(data),
29
+ context: {}
30
+ };
31
+ }
32
+ const { body, "body-json": bodyJson, requestContext } = data;
33
+ const queryData = body || bodyJson;
34
+ return {
35
+ body: parseJsonData(queryData),
36
+ context: requestContext ? { ...requestContext } : {}
37
+ };
38
+ };
39
+ const parseJsonData = (data) => {
40
+ try {
41
+ return JSON.parse(data);
42
+ } catch (error) {
43
+ return data;
44
+ }
45
+ };
46
+ const isAuthenticated = (context, userId) => {
47
+ const { session } = context;
48
+ const { userAccess, userId: sessionUserId } = session;
49
+ return userAccess > 3 || sessionUserId === userId;
50
+ };
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ getLambdaData,
54
+ isAuthenticated,
55
+ parseJsonData
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2F1dGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge0FwcFN0YWdlLCB0eXBlIEFwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7U2Vzc2lvbn0gZnJvbSAnLi9zZXNzaW9uJztcblxuZXhwb3J0IHR5cGUgTGFtYmRhRGF0YUNvbnRleHQgPSB7YWNjb3VudElkOiAnYWNjb3VudElkJyxcbiAgcmVhZG9ubHkgcmVxdWVzdElkOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHJlcXVlc3RUaW1lRXBvY2g6IG51bWJlcixcbiAgcmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nLFxuICByZWFkb25seSByZXNvdXJjZVBhdGg6IHN0cmluZyxcbiAgcmVhZG9ubHkgc3RhZ2U6IEFwcFN0YWdlXG59O1xuXG5leHBvcnQgdHlwZSBMYW1iZGFEYXRhID0ge1xuICByZWFkb25seSBib2R5Pzogc3RyaW5nIHwgb2JqZWN0O1xuICByZWFkb25seSAnYm9keS1qc29uJz86IHN0cmluZztcbiAgcmVhZG9ubHkgY29udGV4dD86IExhbWJkYURhdGFDb250ZXh0O1xuICByZWFkb25seSByZXF1ZXN0Q29udGV4dD86IG9iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMYW1iZGFEYXRhID0gKGRhdGE6IExhbWJkYURhdGEgfCBzdHJpbmcpID0+IHtcbiAgaWYodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IHBhcnNlSnNvbkRhdGEoZGF0YSksXG4gICAgICBjb250ZXh0OiB7fVxuICAgIH07XG4gIH1cblxuICBjb25zdCB7Ym9keSwgJ2JvZHktanNvbic6IGJvZHlKc29uLCByZXF1ZXN0Q29udGV4dH0gPSBkYXRhIGFzIExhbWJkYURhdGE7XG4gIGNvbnN0IHF1ZXJ5RGF0YSA9IGJvZHkgfHwgYm9keUpzb247XG5cbiAgcmV0dXJuIHtcbiAgICBib2R5OiBwYXJzZUpzb25EYXRhKHF1ZXJ5RGF0YSksXG4gICAgY29udGV4dDogcmVxdWVzdENvbnRleHQgPyB7Li4ucmVxdWVzdENvbnRleHR9IDoge31cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUpzb25EYXRhID0gKGRhdGEpOiBhbnkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc0F1dGhlbnRpY2F0ZWQgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qge3Nlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3Qge3VzZXJBY2Nlc3MsIHVzZXJJZDogc2Vzc2lvblVzZXJJZH0gPSBzZXNzaW9uO1xuXG4gIHJldHVybiB1c2VyQWNjZXNzID4gMyB8fCBzZXNzaW9uVXNlcklkID09PSB1c2VySWQ7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCTyxNQUFNLGdCQUFnQixDQUFDLFNBQThCO0FBQzFELE1BQUcsT0FBTyxTQUFTLFVBQVU7QUFDM0IsV0FBTztBQUFBLE1BQ0wsTUFBTSxjQUFjLElBQUk7QUFBQSxNQUN4QixTQUFTLENBQUM7QUFBQSxJQUNaO0FBQUEsRUFDRjtBQUVBLFFBQU0sRUFBQyxNQUFNLGFBQWEsVUFBVSxlQUFjLElBQUk7QUFDdEQsUUFBTSxZQUFZLFFBQVE7QUFFMUIsU0FBTztBQUFBLElBQ0wsTUFBTSxjQUFjLFNBQVM7QUFBQSxJQUM3QixTQUFTLGlCQUFpQixFQUFDLEdBQUcsZUFBYyxJQUFJLENBQUM7QUFBQSxFQUNuRDtBQUNGO0FBRU8sTUFBTSxnQkFBZ0IsQ0FBQyxTQUFjO0FBQzFDLE1BQUk7QUFDRixXQUFPLEtBQUssTUFBTSxJQUFJO0FBQUEsRUFDeEIsU0FBUSxPQUFPO0FBQ2IsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVPLE1BQU0sa0JBQWtCLENBQUMsU0FBcUIsV0FBbUI7QUFDdEUsUUFBTSxFQUFDLFFBQU8sSUFBSTtBQUNsQixRQUFNLEVBQUMsWUFBWSxRQUFRLGNBQWEsSUFBSTtBQUU1QyxTQUFPLGFBQWEsS0FBSyxrQkFBa0I7QUFDN0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var utils_exports = {};
16
+ module.exports = __toCommonJS(utils_exports);
17
+ __reExport(utils_exports, require("./adapterUtils"), module.exports);
18
+ __reExport(utils_exports, require("./analyticsUtils"), module.exports);
19
+ __reExport(utils_exports, require("./arangodbUtils"), module.exports);
20
+ __reExport(utils_exports, require("./auth"), module.exports);
21
+ __reExport(utils_exports, require("./session"), module.exports);
22
+ // Annotate the CommonJS export names for ESM import in node:
23
+ 0 && (module.exports = {
24
+ ...require("./adapterUtils"),
25
+ ...require("./analyticsUtils"),
26
+ ...require("./arangodbUtils"),
27
+ ...require("./auth"),
28
+ ...require("./session")
29
+ });
30
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJcbi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2FuYWx5dGljc1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXJhbmdvZGJVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uJzsiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFLQSwwQkFBYywyQkFMZDtBQU1BLDBCQUFjLDZCQU5kO0FBT0EsMEJBQWMsNEJBUGQ7QUFRQSwwQkFBYyxtQkFSZDtBQVNBLDBCQUFjLHNCQVRkOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,60 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var session_exports = {};
29
+ __export(session_exports, {
30
+ getSession: () => getSession,
31
+ isAdminUser: () => isAdminUser,
32
+ setSession: () => setSession
33
+ });
34
+ module.exports = __toCommonJS(session_exports);
35
+ var import_jsonwebtoken = __toESM(require("jsonwebtoken"), 1);
36
+ const setSession = (session) => import_jsonwebtoken.default.sign(session, process.env.SESSION_SECRET);
37
+ const getSession = (token) => {
38
+ try {
39
+ return import_jsonwebtoken.default.verify(token, process.env.SESSION_SECRET);
40
+ } catch (error) {
41
+ switch (error.message) {
42
+ case "jwt expired": {
43
+ const err = new Error("expired_session");
44
+ throw err;
45
+ }
46
+ default: {
47
+ const err = new Error("invalid_session");
48
+ throw err;
49
+ }
50
+ }
51
+ }
52
+ };
53
+ const isAdminUser = (session) => session.userAccess > 2;
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ getSession,
57
+ isAdminUser,
58
+ setSession
59
+ });
60
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3Nlc3Npb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgand0IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5cbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3InO1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uID0ge1xuICByZWFkb25seSBlcnJvcnM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZXhwPzogbnVtYmVyO1xuICByZWFkb25seSBpYXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VyQWNjZXNzPzogbnVtYmVyO1xuICByZWFkb25seSB1c2VySWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNlc3Npb25Ub2tlbiA9IHtcbiAgcmVhZG9ubHkgZXhwaXJlczogbnVtYmVyO1xuICByZWFkb25seSBpc3N1ZWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdG9rZW46IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0U2Vzc2lvbiA9IChzZXNzaW9uOiBTZXNzaW9uKTogc3RyaW5nID0+IGp3dC5zaWduKHNlc3Npb24sIHByb2Nlc3MuZW52LlNFU1NJT05fU0VDUkVUKTtcblxuZXhwb3J0IGNvbnN0IGdldFNlc3Npb24gPSAodG9rZW46IHN0cmluZyk6IFNlc3Npb24gPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBqd3QudmVyaWZ5KHRva2VuLCBwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBzd2l0Y2goZXJyb3IubWVzc2FnZSkge1xuICAgICAgY2FzZSAnand0IGV4cGlyZWQnOiB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignZXhwaXJlZF9zZXNzaW9uJyk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCdpbnZhbGlkX3Nlc3Npb24nKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzQWRtaW5Vc2VyID0gKHNlc3Npb246IFNlc3Npb24pID0+IHNlc3Npb24udXNlckFjY2VzcyA+IDI7Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSwwQkFBZ0I7QUFxQlQsTUFBTSxhQUFhLENBQUMsWUFBNkIsb0JBQUFBLFFBQUksS0FBSyxTQUFTLFFBQVEsSUFBSSxjQUFjO0FBRTdGLE1BQU0sYUFBYSxDQUFDLFVBQTJCO0FBQ3BELE1BQUk7QUFDRixXQUFPLG9CQUFBQSxRQUFJLE9BQU8sT0FBTyxRQUFRLElBQUksY0FBYztBQUFBLEVBQ3JELFNBQVEsT0FBTztBQUNiLFlBQU8sTUFBTSxTQUFTO0FBQUEsTUFDcEIsS0FBSyxlQUFlO0FBQ2xCLGNBQU0sTUFBTSxJQUFJLE1BQU0saUJBQWlCO0FBQ3ZDLGNBQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxTQUFTO0FBQ1AsY0FBTSxNQUFNLElBQUksTUFBTSxpQkFBaUI7QUFDdkMsY0FBTTtBQUFBLE1BQ1I7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBRU8sTUFBTSxjQUFjLENBQUMsWUFBcUIsUUFBUSxhQUFhOyIsCiAgIm5hbWVzIjogWyJqd3QiXQp9Cg==
package/jest.setup.js ADDED
File without changes
package/jpg:- ADDED
Binary file
package/lex.config.cjs ADDED
@@ -0,0 +1,13 @@
1
+ module.exports = {
2
+ ai: {
3
+ provider: 'cursor',
4
+ model: 'cursor-code',
5
+ maxTokens: 4000,
6
+ temperature: 0.1
7
+ },
8
+ outputPath: 'lib',
9
+ preset: 'node22',
10
+ targetEnvironment: 'node',
11
+ useTypescript: true
12
+ };
13
+
@@ -0,0 +1,25 @@
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[]>;
@@ -0,0 +1,242 @@
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 apps_exports = {};
19
+ __export(apps_exports, {
20
+ addApp: () => addApp,
21
+ deactivateApp: () => deactivateApp,
22
+ deleteApp: () => deleteApp,
23
+ getApp: () => getApp,
24
+ getAppOptional: () => getAppOptional,
25
+ getApps: () => getApps,
26
+ parseAppOptions: () => parseAppOptions,
27
+ updateApp: () => updateApp
28
+ });
29
+ module.exports = __toCommonJS(apps_exports);
30
+ var import_utils = require("@nlabs/utils");
31
+ var import_arangojs = require("arangojs");
32
+ var import_error = require("../types/error.types");
33
+ var import_analyticsUtils = require("../utils/analyticsUtils");
34
+ var import_arangodbUtils = require("../utils/arangodbUtils");
35
+ var import_session = require("../utils/session");
36
+ const eventCategory = "apps";
37
+ const getAppOptional = (fields = []) => fields.reduce((selects, field) => {
38
+ if (field.includes("Count")) {
39
+ return (0, import_arangodbUtils.selectReactionCountByType)("apps", "a", field, selects);
40
+ }
41
+ return selects;
42
+ }, { objects: [], queries: [] });
43
+ const parseAppOptions = (options = {}) => {
44
+ const {
45
+ from = 0,
46
+ to = 30
47
+ } = options;
48
+ const limit = (0, import_arangodbUtils.getLimit)(from, to);
49
+ return {
50
+ ...options,
51
+ limit
52
+ };
53
+ };
54
+ const addApp = async (context, app) => {
55
+ const action = "addUser";
56
+ const { database } = context;
57
+ const { email, name, phone } = app;
58
+ const formatName = (0, import_utils.parseString)(name);
59
+ const formatEmail = (0, import_utils.parseEmail)(email);
60
+ const formatPhone = (0, import_utils.parsePhone)(phone);
61
+ if (!formatName) {
62
+ return (0, import_analyticsUtils.logException)({
63
+ action,
64
+ category: eventCategory,
65
+ params: { name },
66
+ value: import_error.ErrorTypes.INVALID_ARGUMENTS
67
+ }, context);
68
+ }
69
+ const filters = [`a.name == "${formatName}"`];
70
+ if (formatEmail) {
71
+ filters.push(`a.email == "${formatEmail}"`);
72
+ }
73
+ const checkQuery = `FOR u IN users
74
+ FILTER ${filters.join(" || ")}
75
+ RETURN u`;
76
+ try {
77
+ const existingApps = await database.query(checkQuery).then((cursor) => cursor.all());
78
+ if (existingApps.length) {
79
+ return (0, import_analyticsUtils.logException)({
80
+ action,
81
+ category: eventCategory,
82
+ params: { name },
83
+ value: import_error.ErrorTypes.EXISTING_ITEM
84
+ }, context);
85
+ }
86
+ } catch (error) {
87
+ return (0, import_analyticsUtils.logError)({
88
+ action,
89
+ category: eventCategory,
90
+ label: import_error.ErrorTypes.DATABASE_ERROR,
91
+ params: { name }
92
+ }, error, context);
93
+ }
94
+ const insert = {
95
+ _key: (0, import_utils.createHash)(name, null),
96
+ active: true,
97
+ added: Date.now(),
98
+ email: formatEmail,
99
+ modified: Date.now(),
100
+ name: formatName,
101
+ phone: formatPhone
102
+ };
103
+ const insertQuery = import_arangojs.aql`INSERT ${insert} IN apps RETURN NEW`;
104
+ return await database.query(insertQuery).then((cursor) => cursor.next() || {}).catch((error) => (0, import_analyticsUtils.logError)({
105
+ action,
106
+ category: eventCategory,
107
+ label: import_error.ErrorTypes.DATABASE_ERROR,
108
+ params: { name }
109
+ }, error, context));
110
+ };
111
+ const updateApp = async (context, app) => {
112
+ const action = "updateApp";
113
+ const { database } = context;
114
+ const { _key, _id, id, appId, ...updated } = app;
115
+ const appDocId = (0, import_arangodbUtils.getDocId)("apps", app);
116
+ const appQuery = import_arangojs.aql`LET a = DOCUMENT(${appDocId})
117
+ UPDATE a WITH ${updated} IN apps
118
+ RETURN NEW`;
119
+ return await database.query(appQuery).then((cursor) => cursor.next()).catch(
120
+ (error) => (0, import_analyticsUtils.logError)({
121
+ action,
122
+ category: eventCategory,
123
+ label: import_error.ErrorTypes.DATABASE_ERROR,
124
+ params: { app }
125
+ }, error, context)
126
+ );
127
+ };
128
+ const deleteApp = async (context, app) => {
129
+ const action = "deleteApp";
130
+ const { database, session } = context;
131
+ const isAdmin = (0, import_session.isAdminUser)(session);
132
+ const appDocId = (0, import_arangodbUtils.getDocId)("apps", app);
133
+ if (!isAdmin) {
134
+ return Promise.reject(new import_analyticsUtils.UserError(import_error.ErrorTypes.INVALID_SESSION));
135
+ }
136
+ const aqlQuery = import_arangojs.aql`FOR a IN apps
137
+ FILTER a._id == \"${appDocId}\"
138
+ LIMIT 1
139
+ REMOVE a IN apps
140
+ RETURN OLD`;
141
+ return database.query(aqlQuery).then((cursor) => cursor.next()).catch((error) => (0, import_analyticsUtils.logError)({
142
+ action,
143
+ category: eventCategory,
144
+ label: import_error.ErrorTypes.DATABASE_ERROR,
145
+ params: app
146
+ }, error, context));
147
+ };
148
+ const deactivateApp = (context, app) => {
149
+ const action = "deactivateApp";
150
+ const { database, session } = context;
151
+ const isAdmin = (0, import_session.isAdminUser)(session);
152
+ const appDocId = (0, import_arangodbUtils.getDocId)("apps", app);
153
+ if (!isAdmin) {
154
+ return Promise.reject(new import_analyticsUtils.UserError(import_error.ErrorTypes.INVALID_SESSION));
155
+ }
156
+ const updated = {
157
+ active: false
158
+ };
159
+ const aqlQuery = import_arangojs.aql`UPDATE ${appDocId} WITH ${updated} IN apps LIMIT 1 RETURN NEW`;
160
+ return database.query(aqlQuery).then((cursor) => cursor.next()).catch(
161
+ (error) => (0, import_analyticsUtils.logError)({
162
+ action,
163
+ category: eventCategory,
164
+ label: import_error.ErrorTypes.DATABASE_ERROR,
165
+ params: app
166
+ }, error, context)
167
+ );
168
+ };
169
+ const getApp = (context, options) => {
170
+ const action = "getApp";
171
+ const { database, fields, session } = context;
172
+ const { id, key, name } = parseAppOptions(options);
173
+ const { objects: selectObjects, queries: selectQueries } = getAppOptional(fields);
174
+ const filterBy = ["a.active == true"];
175
+ const isAdmin = (0, import_session.isAdminUser)(session);
176
+ if (!isAdmin) {
177
+ return Promise.reject(new import_analyticsUtils.UserError(import_error.ErrorTypes.INVALID_SESSION));
178
+ }
179
+ if (id) {
180
+ filterBy.push(`a._id == "${(0, import_utils.parseArangoId)(id)}"`);
181
+ }
182
+ if (key) {
183
+ filterBy.push(`a._key == "apps/${(0, import_utils.parseId)(key)}"`);
184
+ }
185
+ if (name) {
186
+ filterBy.push(`CONTAINS(a.name, "${(0, import_utils.parseString)(name)}")`);
187
+ }
188
+ const aqlQuery = `FOR a IN apps
189
+ FILTER ${filterBy.join(" && ")}
190
+ ${selectQueries.join("\n")}
191
+ RETURN MERGE(a, {${selectObjects.join(", ")}})`;
192
+ return database.query(aqlQuery).then((cursor) => cursor.next()).catch((error) => {
193
+ (0, import_analyticsUtils.logError)({
194
+ action,
195
+ category: eventCategory,
196
+ label: import_error.ErrorTypes.DATABASE_ERROR,
197
+ params: options
198
+ }, error, context);
199
+ return null;
200
+ });
201
+ };
202
+ const getApps = async (context, options) => {
203
+ const action = "getApps";
204
+ const { database, fields, session } = context;
205
+ const { limit, name } = parseAppOptions(options);
206
+ const { objects: selectObjects, queries: selectQueries } = getAppOptional(fields);
207
+ const filterBy = ["a.active == true"];
208
+ const isAdmin = (0, import_session.isAdminUser)(session);
209
+ if (!isAdmin) {
210
+ return Promise.reject(new import_analyticsUtils.UserError(import_error.ErrorTypes.INVALID_SESSION));
211
+ }
212
+ if (name) {
213
+ filterBy.push(`CONTAINS(a.name, "${(0, import_utils.parseString)(name)}")`);
214
+ }
215
+ const aqlQuery = `FOR a IN apps
216
+ FILTER ${filterBy.join(" && ")}
217
+ ${selectQueries.join("\n")}
218
+ ${limit.aql}
219
+ SORT a.name
220
+ RETURN MERGE(a, {${selectObjects.join(", ")}})`;
221
+ return database.query(aqlQuery).then((cursor) => cursor.all()).catch((error) => {
222
+ (0, import_analyticsUtils.logError)({
223
+ action,
224
+ category: eventCategory,
225
+ label: import_error.ErrorTypes.DATABASE_ERROR,
226
+ params: options
227
+ }, error, context);
228
+ return [];
229
+ });
230
+ };
231
+ // Annotate the CommonJS export names for ESM import in node:
232
+ 0 && (module.exports = {
233
+ addApp,
234
+ deactivateApp,
235
+ deleteApp,
236
+ getApp,
237
+ getAppOptional,
238
+ getApps,
239
+ parseAppOptions,
240
+ updateApp
241
+ });
242
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvYXBwcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VFbWFpbCwgcGFyc2VJZCwgcGFyc2VQaG9uZSwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtBcHBUeXBlfSBmcm9tICcuLi90eXBlcy9hcHBzLnR5cGVzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHtsb2dFcnJvciwgbG9nRXhjZXB0aW9uLCBVc2VyRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcbmltcG9ydCB7Z2V0RG9jSWQsIGdldExpbWl0LCBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlfSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzJztcbmltcG9ydCB7aXNBZG1pblVzZXJ9IGZyb20gJy4uL3V0aWxzL3Nlc3Npb24nO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7VXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2FwcHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcE9wdGlvbnMge1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBmcm9tPzogbnVtYmVyO1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB0bz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEFwcE9wdGlvbmFsID0gKGZpZWxkczogc3RyaW5nW10gPSBbXSkgPT5cbiAgZmllbGRzLnJlZHVjZSgoc2VsZWN0cywgZmllbGQ6IHN0cmluZykgPT4ge1xuICAgIGlmKGZpZWxkLmluY2x1ZGVzKCdDb3VudCcpKSB7XG4gICAgICByZXR1cm4gc2VsZWN0UmVhY3Rpb25Db3VudEJ5VHlwZSgnYXBwcycsICdhJywgZmllbGQsIHNlbGVjdHMpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RzO1xuICB9LCB7b2JqZWN0czogW10sIHF1ZXJpZXM6IFtdfSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUFwcE9wdGlvbnMgPSAob3B0aW9uczogQXBwT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBmcm9tID0gMCxcbiAgICB0byA9IDMwXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgbGltaXRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRBcHAgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgYXBwOiBBcHBUeXBlKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnYWRkVXNlcic7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCB7ZW1haWwsIG5hbWUsIHBob25lfSA9IGFwcDtcbiAgY29uc3QgZm9ybWF0TmFtZSA9IHBhcnNlU3RyaW5nKG5hbWUpO1xuICBjb25zdCBmb3JtYXRFbWFpbCA9IHBhcnNlRW1haWwoZW1haWwpO1xuICBjb25zdCBmb3JtYXRQaG9uZSA9IHBhcnNlUGhvbmUocGhvbmUpO1xuXG4gIGlmKCFmb3JtYXROYW1lKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge25hbWV9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9BUkdVTUVOVFNcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gW2BhLm5hbWUgPT0gXCIke2Zvcm1hdE5hbWV9XCJgXTtcblxuICBpZihmb3JtYXRFbWFpbCkge1xuICAgIGZpbHRlcnMucHVzaChgYS5lbWFpbCA9PSBcIiR7Zm9ybWF0RW1haWx9XCJgKTtcbiAgfVxuXG4gIGNvbnN0IGNoZWNrUXVlcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgIEZJTFRFUiAke2ZpbHRlcnMuam9pbignIHx8ICcpfVxuICAgIFJFVFVSTiB1YDtcblxuICB0cnkge1xuICAgIGNvbnN0IGV4aXN0aW5nQXBwcyA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGNoZWNrUXVlcnkpLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKTtcblxuICAgIGlmKGV4aXN0aW5nQXBwcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuRVhJU1RJTkdfSVRFTVxuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtuYW1lfVxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGluc2VydDogQXBwVHlwZSA9IHtcbiAgICBfa2V5OiBjcmVhdGVIYXNoKG5hbWUsIG51bGwpLFxuICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICBlbWFpbDogZm9ybWF0RW1haWwsXG4gICAgbW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICBwaG9uZTogZm9ybWF0UGhvbmVcbiAgfTtcblxuICBjb25zdCBpbnNlcnRRdWVyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBhcHBzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBhd2FpdCBkYXRhYmFzZS5xdWVyeShpbnNlcnRRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpIHx8IHt9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtuYW1lfVxuICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVBcHAnO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qge19rZXksIF9pZCwgaWQsIGFwcElkLCAuLi51cGRhdGVkfSA9IGFwcDtcbiAgY29uc3QgYXBwRG9jSWQgPSBnZXREb2NJZCgnYXBwcycsIGFwcCk7XG4gIGNvbnN0IGFwcFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgYSA9IERPQ1VNRU5UKCR7YXBwRG9jSWR9KVxuICAgIFVQREFURSBhIFdJVEggJHt1cGRhdGVkfSBJTiBhcHBzXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFwcFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcikgPT5cbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICAgIHBhcmFtczoge2FwcH1cbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdkZWxldGVBcHAnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24pO1xuICBjb25zdCBhcHBEb2NJZCA9IGdldERvY0lkKCdhcHBzJywgYXBwKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICBjb25zdCBhcWxRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGEgSU4gYXBwc1xuICAgIEZJTFRFUiBhLl9pZCA9PSBcXFwiJHthcHBEb2NJZH1cXFwiXG4gICAgTElNSVQgMVxuICAgIFJFTU9WRSBhIElOIGFwcHNcbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PlxuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgICAgcGFyYW1zOiBhcHAgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVhY3RpdmF0ZUFwcCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBhcHA6IEFwcFR5cGUpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlYWN0aXZhdGVBcHAnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24pO1xuICBjb25zdCBhcHBEb2NJZCA9IGdldERvY0lkKCdhcHBzJywgYXBwKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkOiBBcHBUeXBlID0ge1xuICAgIGFjdGl2ZTogZmFsc2VcbiAgfTtcbiAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQREFURSAke2FwcERvY0lkfSBXSVRIICR7dXBkYXRlZH0gSU4gYXBwcyBMSU1JVCAxIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PlxuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgICAgcGFyYW1zOiBhcHAgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXBwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG9wdGlvbnM/OiBBcHBPcHRpb25zKTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgZmllbGRzLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtpZCwga2V5LCBuYW1lfSA9IHBhcnNlQXBwT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0QXBwT3B0aW9uYWwoZmllbGRzKTtcbiAgY29uc3QgZmlsdGVyQnk6IHN0cmluZ1tdID0gWydhLmFjdGl2ZSA9PSB0cnVlJ107XG4gIGNvbnN0IGlzQWRtaW4gPSBpc0FkbWluVXNlcihzZXNzaW9uKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICBpZihpZCkge1xuICAgIGZpbHRlckJ5LnB1c2goYGEuX2lkID09IFwiJHtwYXJzZUFyYW5nb0lkKGlkKX1cImApO1xuICB9XG5cbiAgaWYoa2V5KSB7XG4gICAgZmlsdGVyQnkucHVzaChgYS5fa2V5ID09IFwiYXBwcy8ke3BhcnNlSWQoa2V5KX1cImApO1xuICB9XG5cbiAgaWYobmFtZSkge1xuICAgIGZpbHRlckJ5LnB1c2goYENPTlRBSU5TKGEubmFtZSwgXCIke3BhcnNlU3RyaW5nKG5hbWUpfVwiKWApO1xuICB9XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiBhIElOIGFwcHNcbiAgICBGSUxURVIgJHtmaWx0ZXJCeS5qb2luKCcgJiYgJyl9XG4gICAgJHtzZWxlY3RRdWVyaWVzLmpvaW4oJ1xcbicpfVxuICAgIFJFVFVSTiBNRVJHRShhLCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpIGFzIHVua25vd24gYXMgQXBwVHlwZSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBcHBzID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIG9wdGlvbnM/OiBBcHBPcHRpb25zKTogUHJvbWlzZTxBcHBUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0QXBwcyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgZmllbGRzLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtsaW1pdCwgbmFtZX0gPSBwYXJzZUFwcE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHtvYmplY3RzOiBzZWxlY3RPYmplY3RzLCBxdWVyaWVzOiBzZWxlY3RRdWVyaWVzfSA9IGdldEFwcE9wdGlvbmFsKGZpZWxkcyk7XG4gIGNvbnN0IGZpbHRlckJ5OiBzdHJpbmdbXSA9IFsnYS5hY3RpdmUgPT0gdHJ1ZSddO1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFVzZXJFcnJvcihFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTikpO1xuICB9XG5cbiAgaWYobmFtZSkge1xuICAgIGZpbHRlckJ5LnB1c2goYENPTlRBSU5TKGEubmFtZSwgXCIke3BhcnNlU3RyaW5nKG5hbWUpfVwiKWApO1xuICB9XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiBhIElOIGFwcHNcbiAgICBGSUxURVIgJHtmaWx0ZXJCeS5qb2luKCcgJiYgJyl9XG4gICAgJHtzZWxlY3RRdWVyaWVzLmpvaW4oJ1xcbicpfVxuICAgICR7bGltaXQuYXFsfVxuICAgIFNPUlQgYS5uYW1lXG4gICAgUkVUVVJOIE1FUkdFKGEsIHske3NlbGVjdE9iamVjdHMuam9pbignLCAnKX19KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIEFwcFR5cGVbXSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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
@@ -0,0 +1,4 @@
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>;