@nlabs/reaktor 0.10.1 → 0.10.5

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 (494) hide show
  1. package/coverage/actions/index.html +21 -36
  2. package/coverage/actions/notifications.ts.html +223 -0
  3. package/coverage/actions/posts.ts.html +2356 -0
  4. package/coverage/adapters/arangoAdapter.ts.html +170 -20
  5. package/coverage/adapters/fileAdapter.ts.html +445 -0
  6. package/coverage/adapters/index.html +72 -42
  7. package/coverage/adapters/postAdapter.ts.html +436 -0
  8. package/coverage/adapters/reaktorAdapter.ts.html +201 -18
  9. package/coverage/adapters/tagAdapter.ts.html +274 -25
  10. package/coverage/adapters/userAdapter.ts.html +829 -0
  11. package/coverage/analyticsUtils.ts.html +286 -0
  12. package/coverage/block-navigation.js +1 -1
  13. package/coverage/config.ts.html +766 -0
  14. package/coverage/index.html +83 -53
  15. package/coverage/mocks/group.ts.html +5 -5
  16. package/coverage/mocks/image.ts.html +18 -12
  17. package/coverage/mocks/index.html +37 -7
  18. package/coverage/mocks/post.ts.html +8 -8
  19. package/coverage/mocks/tag.ts.html +2 -2
  20. package/coverage/mocks/user.ts.html +18 -15
  21. package/coverage/sorter.js +21 -7
  22. package/coverage/testUtils.ts.html +1309 -0
  23. package/coverage/translationQueue.ts.html +592 -0
  24. package/coverage/types/error.types.ts.html +148 -0
  25. package/coverage/types/index.html +2 -2
  26. package/coverage/utils/adapterUtils.ts.html +39 -27
  27. package/coverage/utils/analyticsUtils.ts.html +35 -41
  28. package/coverage/utils/authUtils.ts.html +328 -0
  29. package/coverage/utils/dbI18n.ts.html +280 -0
  30. package/coverage/utils/googleTranslate.ts.html +385 -0
  31. package/coverage/utils/index.html +29 -44
  32. package/coverage/utils/localeUtils.ts.html +193 -0
  33. package/coverage/utils/sessionUtils.ts.html +211 -0
  34. package/coverage/utils/testUtils.ts.html +1309 -0
  35. package/lex.config.mjs +34 -0
  36. package/lib/actions/apps.d.ts +25 -0
  37. package/lib/actions/connections.d.ts +5 -0
  38. package/lib/actions/content.d.ts +13 -0
  39. package/lib/actions/conversations.d.ts +16 -0
  40. package/lib/actions/dynamodb.d.ts +12 -0
  41. package/lib/actions/email.d.ts +8 -0
  42. package/lib/actions/files.d.ts +19 -0
  43. package/lib/actions/groups.d.ts +13 -0
  44. package/lib/actions/images.d.ts +33 -0
  45. package/lib/actions/index.d.ts +28 -0
  46. package/lib/actions/ios.d.ts +7 -0
  47. package/lib/actions/locations.d.ts +6 -0
  48. package/lib/actions/messages.d.ts +13 -0
  49. package/lib/actions/notifications.d.ts +9 -0
  50. package/lib/actions/payments.d.ts +12 -0
  51. package/lib/actions/posts.d.ts +25 -0
  52. package/lib/actions/profiles.d.ts +4 -0
  53. package/lib/actions/reactions.d.ts +32 -0
  54. package/lib/actions/s3.d.ts +11 -0
  55. package/lib/actions/search.d.ts +3 -0
  56. package/lib/actions/sms.d.ts +2 -0
  57. package/lib/actions/statistics.d.ts +4 -0
  58. package/lib/actions/subscriptions.d.ts +7 -0
  59. package/lib/actions/tags.d.ts +34 -0
  60. package/lib/actions/users.d.ts +73 -0
  61. package/lib/actions/videos.d.ts +25 -0
  62. package/lib/actions/websockets.d.ts +20 -0
  63. package/lib/adapters/arangoAdapter.d.ts +8 -0
  64. package/lib/adapters/contentAdapter.d.ts +8 -0
  65. package/lib/adapters/fileAdapter.d.ts +9 -0
  66. package/lib/adapters/imageAdapter.d.ts +8 -0
  67. package/lib/adapters/index.d.ts +9 -0
  68. package/lib/adapters/messageAdapter.d.ts +8 -0
  69. package/lib/adapters/postAdapter.d.ts +8 -0
  70. package/lib/adapters/reaktorAdapter.d.ts +16 -0
  71. package/lib/adapters/tagAdapter.d.ts +9 -0
  72. package/lib/adapters/userAdapter.d.ts +13 -0
  73. package/lib/config.d.ts +57 -0
  74. package/lib/handlers/graphqlHandler.d.ts +4 -0
  75. package/lib/index.d.ts +19 -0
  76. package/lib/lambdas/actions/websockets.d.ts +7 -0
  77. package/lib/lambdas/authorizer.d.ts +20 -0
  78. package/lib/lambdas/connection.d.ts +12 -0
  79. package/lib/lambdas/utils/message.d.ts +1 -0
  80. package/lib/lambdas/utils/websocket.d.ts +7 -0
  81. package/lib/mocks/conversation.d.ts +8 -0
  82. package/lib/mocks/file.d.ts +11 -0
  83. package/lib/mocks/group.d.ts +17 -0
  84. package/lib/mocks/image.d.ts +3 -0
  85. package/lib/mocks/post.d.ts +38 -0
  86. package/lib/mocks/tag.d.ts +2 -0
  87. package/lib/mocks/user.d.ts +4 -0
  88. package/lib/mocks/video.d.ts +3 -0
  89. package/lib/mutations/content.d.ts +2 -0
  90. package/lib/mutations/index.d.ts +11 -0
  91. package/lib/mutations/locations.d.ts +2 -0
  92. package/lib/mutations/messages.d.ts +2 -0
  93. package/lib/mutations/posts.d.ts +2 -0
  94. package/lib/mutations/profiles.d.ts +2 -0
  95. package/lib/mutations/reactions.d.ts +2 -0
  96. package/lib/mutations/statistics.d.ts +2 -0
  97. package/lib/mutations/subscriptions.d.ts +2 -0
  98. package/lib/mutations/tags.d.ts +2 -0
  99. package/lib/mutations/users.d.ts +1 -0
  100. package/lib/objectTypes/app.d.ts +3 -0
  101. package/lib/objectTypes/bankAccount.d.ts +1 -0
  102. package/lib/objectTypes/connection.d.ts +1 -0
  103. package/lib/objectTypes/content.d.ts +2 -0
  104. package/lib/objectTypes/conversation.d.ts +2 -0
  105. package/lib/objectTypes/creditCard.d.ts +1 -0
  106. package/lib/objectTypes/document.d.ts +1 -0
  107. package/lib/objectTypes/error.d.ts +1 -0
  108. package/lib/objectTypes/external.d.ts +1 -0
  109. package/lib/objectTypes/file.d.ts +2 -0
  110. package/lib/objectTypes/filter.d.ts +1 -0
  111. package/lib/objectTypes/group.d.ts +3 -0
  112. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  113. package/lib/objectTypes/image.d.ts +6 -0
  114. package/lib/objectTypes/index.d.ts +26 -0
  115. package/lib/objectTypes/location.d.ts +2 -0
  116. package/lib/objectTypes/message.d.ts +2 -0
  117. package/lib/objectTypes/passcode.d.ts +1 -0
  118. package/lib/objectTypes/plan.d.ts +2 -0
  119. package/lib/objectTypes/post.d.ts +2 -0
  120. package/lib/objectTypes/profile.d.ts +3 -0
  121. package/lib/objectTypes/reaction.d.ts +2 -0
  122. package/lib/objectTypes/relation.d.ts +1 -0
  123. package/lib/objectTypes/search.d.ts +1 -0
  124. package/lib/objectTypes/statistics.d.ts +1 -0
  125. package/lib/objectTypes/subscription.d.ts +2 -0
  126. package/lib/objectTypes/tag.d.ts +2 -0
  127. package/lib/objectTypes/user.d.ts +4 -0
  128. package/lib/queries/content.d.ts +2 -0
  129. package/lib/queries/index.d.ts +10 -0
  130. package/lib/queries/locations.d.ts +2 -0
  131. package/lib/queries/messages.d.ts +2 -0
  132. package/lib/queries/posts.d.ts +2 -0
  133. package/lib/queries/reactions.d.ts +2 -0
  134. package/lib/queries/statistics.d.ts +2 -0
  135. package/lib/queries/subscriptions.d.ts +2 -0
  136. package/lib/queries/tags.d.ts +2 -0
  137. package/lib/queries/users.d.ts +1 -0
  138. package/lib/templates/email/layout.d.ts +2 -0
  139. package/lib/templates/email/passwordForgot.d.ts +2 -0
  140. package/lib/templates/email/passwordRecovery.d.ts +2 -0
  141. package/lib/templates/email/verifyEmail.d.ts +2 -0
  142. package/lib/templates/email/welcome.d.ts +2 -0
  143. package/lib/templates/sms/passwordForgot.d.ts +2 -0
  144. package/lib/templates/sms/passwordRecovery.d.ts +2 -0
  145. package/lib/templates/sms/verifyEmail.d.ts +2 -0
  146. package/lib/templates/sms/verifyPhone.d.ts +2 -0
  147. package/lib/templates/sms/welcome.d.ts +2 -0
  148. package/lib/types/apps.types.d.ts +50 -0
  149. package/lib/types/arangodb.types.d.ts +38 -0
  150. package/lib/types/auth.types.d.ts +15 -0
  151. package/lib/types/connections.types.d.ts +9 -0
  152. package/lib/types/content.types.d.ts +31 -0
  153. package/lib/types/conversations.types.d.ts +31 -0
  154. package/lib/types/email.types.d.ts +17 -0
  155. package/lib/types/error.types.d.ts +21 -0
  156. package/lib/types/files.types.d.ts +27 -0
  157. package/lib/types/google.types.d.ts +33 -0
  158. package/lib/types/groups.types.d.ts +22 -0
  159. package/lib/types/images.types.d.ts +56 -0
  160. package/lib/types/index.d.ts +27 -0
  161. package/lib/types/locations.types.d.ts +22 -0
  162. package/lib/types/messages.types.d.ts +20 -0
  163. package/lib/types/notifications.types.d.ts +23 -0
  164. package/lib/types/payments.types.d.ts +113 -0
  165. package/lib/types/posts.types.d.ts +32 -0
  166. package/lib/types/profiles.types.d.ts +20 -0
  167. package/lib/types/statistics.types.d.ts +3 -0
  168. package/lib/types/tags.types.d.ts +19 -0
  169. package/lib/types/users.types.d.ts +110 -0
  170. package/lib/types/videos.types.d.ts +46 -0
  171. package/lib/types/websockets.types.d.ts +22 -0
  172. package/lib/utils/adapterUtils.d.ts +5 -0
  173. package/lib/utils/analyticsUtils.d.ts +25 -0
  174. package/lib/utils/arangodbUtils.d.ts +70 -0
  175. package/lib/utils/authUtils.d.ts +23 -0
  176. package/lib/utils/contextUtils.d.ts +3 -0
  177. package/lib/utils/dbI18n.d.ts +10 -0
  178. package/lib/utils/dbI18n.example.d.ts +20 -0
  179. package/lib/utils/googleTranslate.d.ts +6 -0
  180. package/lib/utils/graphqlUtils.d.ts +10 -0
  181. package/lib/utils/index.d.ts +18 -0
  182. package/lib/utils/languageDetection.d.ts +8 -0
  183. package/lib/utils/localeUtils.d.ts +11 -0
  184. package/lib/utils/localeUtils.example.d.ts +5 -0
  185. package/lib/utils/middlewareUtils.d.ts +2 -0
  186. package/lib/utils/sessionUtils.d.ts +18 -0
  187. package/lib/utils/stripeUtils.d.ts +7 -0
  188. package/lib/utils/templateUtils.d.ts +3 -0
  189. package/lib/utils/testUtils.d.ts +95 -0
  190. package/lib/utils/translationQueue.d.ts +29 -0
  191. package/lib/utils/translationQueue.example.d.ts +33 -0
  192. package/package.json +28 -28
  193. package/tsconfig.build.json +21 -0
  194. package/tsconfig.lint.json +33 -0
  195. package/tsconfig.test.json +31 -0
  196. package/dist/actions/apps.js +0 -242
  197. package/dist/actions/connections.js +0 -90
  198. package/dist/actions/conversations.js +0 -350
  199. package/dist/actions/dynamodb.js +0 -150
  200. package/dist/actions/email.js +0 -152
  201. package/dist/actions/files.js +0 -283
  202. package/dist/actions/groups.js +0 -292
  203. package/dist/actions/images.js +0 -735
  204. package/dist/actions/index.js +0 -66
  205. package/dist/actions/ios.js +0 -164
  206. package/dist/actions/locations.js +0 -122
  207. package/dist/actions/messages.js +0 -208
  208. package/dist/actions/notifications.js +0 -59
  209. package/dist/actions/payments.js +0 -497
  210. package/dist/actions/personas.js +0 -110
  211. package/dist/actions/posts.js +0 -595
  212. package/dist/actions/reactions.js +0 -322
  213. package/dist/actions/s3.js +0 -133
  214. package/dist/actions/search.js +0 -90
  215. package/dist/actions/sms.js +0 -108
  216. package/dist/actions/statistics.js +0 -62
  217. package/dist/actions/subscription.js +0 -220
  218. package/dist/actions/tags.js +0 -292
  219. package/dist/actions/users.js +0 -784
  220. package/dist/actions/websockets.js +0 -174
  221. package/dist/adapters/arangoAdapter.js +0 -46
  222. package/dist/adapters/fileAdapter.js +0 -76
  223. package/dist/adapters/imageAdapter.js +0 -40
  224. package/dist/adapters/messageAdapter.js +0 -49
  225. package/dist/adapters/postAdapter.js +0 -70
  226. package/dist/adapters/reaktorAdapter.js +0 -44
  227. package/dist/adapters/tagAdapter.js +0 -50
  228. package/dist/adapters/userAdapter.js +0 -115
  229. package/dist/config.js +0 -125
  230. package/dist/index.js +0 -66
  231. package/dist/lambdas/actions/websockets.js +0 -132
  232. package/dist/lambdas/authorizer.js +0 -67
  233. package/dist/lambdas/connection.js +0 -91
  234. package/dist/lambdas/utils/message.js +0 -42
  235. package/dist/lambdas/utils/websocket.js +0 -105
  236. package/dist/mocks/conversation.js +0 -35
  237. package/dist/mocks/file.js +0 -38
  238. package/dist/mocks/group.js +0 -47
  239. package/dist/mocks/image.js +0 -44
  240. package/dist/mocks/nlabs.png +0 -0
  241. package/dist/mocks/post.js +0 -55
  242. package/dist/mocks/tag.js +0 -37
  243. package/dist/mocks/user.js +0 -88
  244. package/dist/mutations/index.js +0 -26
  245. package/dist/mutations/locations.js +0 -44
  246. package/dist/mutations/messages.js +0 -86
  247. package/dist/mutations/personas.js +0 -100
  248. package/dist/mutations/posts.js +0 -53
  249. package/dist/mutations/reactions.js +0 -51
  250. package/dist/mutations/statistics.js +0 -39
  251. package/dist/mutations/subscriptions.js +0 -56
  252. package/dist/mutations/tags.js +0 -120
  253. package/dist/mutations/users.js +0 -116
  254. package/dist/objectTypes/app.js +0 -173
  255. package/dist/objectTypes/bankAccount.js +0 -76
  256. package/dist/objectTypes/connection.js +0 -48
  257. package/dist/objectTypes/conversation.js +0 -77
  258. package/dist/objectTypes/creditCard.js +0 -86
  259. package/dist/objectTypes/document.js +0 -46
  260. package/dist/objectTypes/error.js +0 -46
  261. package/dist/objectTypes/external.js +0 -74
  262. package/dist/objectTypes/file.js +0 -100
  263. package/dist/objectTypes/filter.js +0 -43
  264. package/dist/objectTypes/group.js +0 -123
  265. package/dist/objectTypes/iapSubscription.js +0 -40
  266. package/dist/objectTypes/image.js +0 -129
  267. package/dist/objectTypes/index.js +0 -68
  268. package/dist/objectTypes/location.js +0 -109
  269. package/dist/objectTypes/message.js +0 -96
  270. package/dist/objectTypes/passcode.js +0 -42
  271. package/dist/objectTypes/persona.js +0 -87
  272. package/dist/objectTypes/plan.js +0 -95
  273. package/dist/objectTypes/post.js +0 -125
  274. package/dist/objectTypes/reaction.js +0 -61
  275. package/dist/objectTypes/relation.js +0 -49
  276. package/dist/objectTypes/search.js +0 -72
  277. package/dist/objectTypes/statistics.js +0 -39
  278. package/dist/objectTypes/subscription.js +0 -117
  279. package/dist/objectTypes/tag.js +0 -65
  280. package/dist/objectTypes/user.js +0 -144
  281. package/dist/queries/index.js +0 -33
  282. package/dist/queries/locations.js +0 -45
  283. package/dist/queries/messages.js +0 -52
  284. package/dist/queries/posts.js +0 -154
  285. package/dist/queries/reactions.js +0 -56
  286. package/dist/queries/statistics.js +0 -39
  287. package/dist/queries/subscriptions.js +0 -44
  288. package/dist/queries/tags.js +0 -75
  289. package/dist/queries/users.js +0 -64
  290. package/dist/templates/email/layout.js +0 -302
  291. package/dist/templates/email/passwordForgot.js +0 -38
  292. package/dist/templates/email/passwordRecovery.js +0 -35
  293. package/dist/templates/email/verifyEmail.js +0 -38
  294. package/dist/templates/email/welcome.js +0 -38
  295. package/dist/templates/sms/passwordForgot.js +0 -24
  296. package/dist/templates/sms/passwordRecovery.js +0 -24
  297. package/dist/templates/sms/verifyEmail.js +0 -24
  298. package/dist/templates/sms/verifyPhone.js +0 -24
  299. package/dist/templates/sms/welcome.js +0 -24
  300. package/dist/types/apps.js +0 -32
  301. package/dist/types/arangodb.js +0 -16
  302. package/dist/types/auth.js +0 -16
  303. package/dist/types/connections.js +0 -16
  304. package/dist/types/conversations.js +0 -16
  305. package/dist/types/email.js +0 -16
  306. package/dist/types/error.js +0 -44
  307. package/dist/types/files.js +0 -16
  308. package/dist/types/google.js +0 -16
  309. package/dist/types/groups.js +0 -16
  310. package/dist/types/images.js +0 -16
  311. package/dist/types/index.js +0 -60
  312. package/dist/types/locations.js +0 -16
  313. package/dist/types/messages.js +0 -16
  314. package/dist/types/notifications.js +0 -16
  315. package/dist/types/payments.js +0 -16
  316. package/dist/types/personas.js +0 -16
  317. package/dist/types/posts.js +0 -16
  318. package/dist/types/statistics.js +0 -16
  319. package/dist/types/tags.js +0 -16
  320. package/dist/types/users.js +0 -16
  321. package/dist/types/websockets.js +0 -16
  322. package/dist/utils/adapterUtils.js +0 -45
  323. package/dist/utils/analyticsUtils.js +0 -72
  324. package/dist/utils/arangodbUtils.js +0 -165
  325. package/dist/utils/auth.js +0 -57
  326. package/dist/utils/index.js +0 -30
  327. package/dist/utils/session.js +0 -60
  328. package/jest.config.js +0 -17
  329. package/jest.setup.js +0 -36
  330. package/lex.config.cjs +0 -13
  331. package/lib/actions/apps.js +0 -20
  332. package/lib/actions/connections.js +0 -7
  333. package/lib/actions/content.js +0 -17
  334. package/lib/actions/conversations.js +0 -33
  335. package/lib/actions/dynamodb.js +0 -2
  336. package/lib/actions/email.js +0 -2
  337. package/lib/actions/files.js +0 -5
  338. package/lib/actions/groups.js +0 -52
  339. package/lib/actions/images.js +0 -66
  340. package/lib/actions/index.js +0 -2
  341. package/lib/actions/ios.js +0 -11
  342. package/lib/actions/locations.js +0 -7
  343. package/lib/actions/messages.js +0 -33
  344. package/lib/actions/notifications.js +0 -2
  345. package/lib/actions/payments.js +0 -32
  346. package/lib/actions/posts.js +0 -143
  347. package/lib/actions/profiles.js +0 -8
  348. package/lib/actions/reactions.js +0 -35
  349. package/lib/actions/s3.js +0 -2
  350. package/lib/actions/search.js +0 -5
  351. package/lib/actions/sms.js +0 -2
  352. package/lib/actions/statistics.js +0 -8
  353. package/lib/actions/subscriptions.js +0 -12
  354. package/lib/actions/tags.js +0 -24
  355. package/lib/actions/users.js +0 -84
  356. package/lib/actions/websockets.js +0 -30
  357. package/lib/adapters/arangoAdapter.js +0 -2
  358. package/lib/adapters/contentAdapter.js +0 -2
  359. package/lib/adapters/fileAdapter.js +0 -2
  360. package/lib/adapters/imageAdapter.js +0 -2
  361. package/lib/adapters/messageAdapter.js +0 -2
  362. package/lib/adapters/postAdapter.js +0 -2
  363. package/lib/adapters/reaktorAdapter.js +0 -2
  364. package/lib/adapters/tagAdapter.js +0 -2
  365. package/lib/adapters/userAdapter.js +0 -2
  366. package/lib/config.js +0 -2
  367. package/lib/handlers/graphqlHandler.js +0 -2
  368. package/lib/index.js +0 -2
  369. package/lib/lambdas/actions/websockets.js +0 -30
  370. package/lib/lambdas/authorizer.js +0 -2
  371. package/lib/lambdas/connection.js +0 -2
  372. package/lib/lambdas/utils/message.js +0 -2
  373. package/lib/lambdas/utils/websocket.js +0 -2
  374. package/lib/mocks/conversation.js +0 -2
  375. package/lib/mocks/file.js +0 -2
  376. package/lib/mocks/group.js +0 -2
  377. package/lib/mocks/image.js +0 -2
  378. package/lib/mocks/post.js +0 -2
  379. package/lib/mocks/tag.js +0 -2
  380. package/lib/mocks/user.js +0 -2
  381. package/lib/mutations/index.js +0 -2
  382. package/lib/mutations/locations.integration.js +0 -2
  383. package/lib/mutations/locations.js +0 -2
  384. package/lib/mutations/messages.integration.js +0 -2
  385. package/lib/mutations/messages.js +0 -2
  386. package/lib/mutations/posts.integration.js +0 -2
  387. package/lib/mutations/posts.js +0 -2
  388. package/lib/mutations/profiles.integration.js +0 -2
  389. package/lib/mutations/profiles.js +0 -2
  390. package/lib/mutations/reactions.integration.js +0 -2
  391. package/lib/mutations/reactions.js +0 -2
  392. package/lib/mutations/statistics.integration.js +0 -2
  393. package/lib/mutations/statistics.js +0 -2
  394. package/lib/mutations/subscriptions.integration.js +0 -2
  395. package/lib/mutations/subscriptions.js +0 -2
  396. package/lib/mutations/tags.integration.js +0 -2
  397. package/lib/mutations/tags.js +0 -2
  398. package/lib/mutations/users.integration.js +0 -2
  399. package/lib/mutations/users.js +0 -2
  400. package/lib/objectTypes/app.js +0 -2
  401. package/lib/objectTypes/bankAccount.js +0 -2
  402. package/lib/objectTypes/connection.js +0 -2
  403. package/lib/objectTypes/conversation.js +0 -2
  404. package/lib/objectTypes/creditCard.js +0 -2
  405. package/lib/objectTypes/document.js +0 -2
  406. package/lib/objectTypes/error.js +0 -2
  407. package/lib/objectTypes/external.js +0 -2
  408. package/lib/objectTypes/file.js +0 -2
  409. package/lib/objectTypes/filter.js +0 -2
  410. package/lib/objectTypes/group.js +0 -2
  411. package/lib/objectTypes/iapSubscription.js +0 -2
  412. package/lib/objectTypes/image.js +0 -2
  413. package/lib/objectTypes/index.js +0 -2
  414. package/lib/objectTypes/location.js +0 -2
  415. package/lib/objectTypes/message.js +0 -2
  416. package/lib/objectTypes/passcode.js +0 -2
  417. package/lib/objectTypes/plan.js +0 -2
  418. package/lib/objectTypes/post.js +0 -2
  419. package/lib/objectTypes/profile.js +0 -2
  420. package/lib/objectTypes/reaction.js +0 -2
  421. package/lib/objectTypes/relation.js +0 -2
  422. package/lib/objectTypes/search.js +0 -2
  423. package/lib/objectTypes/statistics.js +0 -2
  424. package/lib/objectTypes/subscription.js +0 -2
  425. package/lib/objectTypes/tag.js +0 -2
  426. package/lib/objectTypes/user.js +0 -2
  427. package/lib/queries/index.js +0 -2
  428. package/lib/queries/locations.integration.js +0 -2
  429. package/lib/queries/locations.js +0 -2
  430. package/lib/queries/messages.integration.js +0 -2
  431. package/lib/queries/messages.js +0 -2
  432. package/lib/queries/posts.integration.js +0 -2
  433. package/lib/queries/posts.js +0 -2
  434. package/lib/queries/reactions.integration.js +0 -2
  435. package/lib/queries/reactions.js +0 -2
  436. package/lib/queries/statistics.js +0 -2
  437. package/lib/queries/subscriptions.js +0 -2
  438. package/lib/queries/tags.integration.js +0 -2
  439. package/lib/queries/tags.js +0 -2
  440. package/lib/queries/users.integration.js +0 -2
  441. package/lib/queries/users.js +0 -2
  442. package/lib/templates/email/layout.js +0 -280
  443. package/lib/templates/email/passwordForgot.js +0 -16
  444. package/lib/templates/email/passwordRecovery.js +0 -13
  445. package/lib/templates/email/verifyEmail.js +0 -16
  446. package/lib/templates/email/welcome.js +0 -16
  447. package/lib/templates/sms/passwordForgot.js +0 -2
  448. package/lib/templates/sms/passwordRecovery.js +0 -2
  449. package/lib/templates/sms/verifyEmail.js +0 -2
  450. package/lib/templates/sms/verifyPhone.js +0 -2
  451. package/lib/templates/sms/welcome.js +0 -2
  452. package/lib/types/apps.types.js +0 -2
  453. package/lib/types/arangodb.types.js +0 -1
  454. package/lib/types/auth.types.js +0 -1
  455. package/lib/types/connections.types.js +0 -1
  456. package/lib/types/content.types.js +0 -1
  457. package/lib/types/conversations.types.js +0 -1
  458. package/lib/types/email.types.js +0 -1
  459. package/lib/types/error.types.js +0 -2
  460. package/lib/types/files.types.js +0 -1
  461. package/lib/types/google.types.js +0 -1
  462. package/lib/types/groups.types.js +0 -1
  463. package/lib/types/images.types.js +0 -1
  464. package/lib/types/index.js +0 -2
  465. package/lib/types/locations.types.js +0 -1
  466. package/lib/types/messages.types.js +0 -1
  467. package/lib/types/notifications.types.js +0 -1
  468. package/lib/types/payments.types.js +0 -1
  469. package/lib/types/posts.types.js +0 -1
  470. package/lib/types/profiles.types.js +0 -1
  471. package/lib/types/statistics.types.js +0 -1
  472. package/lib/types/tags.types.js +0 -1
  473. package/lib/types/users.types.js +0 -1
  474. package/lib/types/websockets.types.js +0 -1
  475. package/lib/utils/adapterUtils.js +0 -2
  476. package/lib/utils/analyticsUtils.js +0 -2
  477. package/lib/utils/arangodbUtils.js +0 -7
  478. package/lib/utils/authUtils.js +0 -2
  479. package/lib/utils/contextUtils.js +0 -2
  480. package/lib/utils/dbI18n.example.js +0 -6
  481. package/lib/utils/dbI18n.js +0 -2
  482. package/lib/utils/googleTranslate.js +0 -2
  483. package/lib/utils/graphqlUtils.js +0 -2
  484. package/lib/utils/index.js +0 -2
  485. package/lib/utils/languageDetection.js +0 -2
  486. package/lib/utils/localeUtils.example.js +0 -2
  487. package/lib/utils/localeUtils.js +0 -2
  488. package/lib/utils/middlewareUtils.js +0 -2
  489. package/lib/utils/sessionUtils.js +0 -2
  490. package/lib/utils/stripeUtils.js +0 -2
  491. package/lib/utils/templateUtils.js +0 -2
  492. package/lib/utils/testUtils.js +0 -2
  493. package/lib/utils/translationQueue.example.js +0 -2
  494. package/lib/utils/translationQueue.js +0 -2
@@ -1,72 +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 analyticsUtils_exports = {};
19
- __export(analyticsUtils_exports, {
20
- IsUserError: () => IsUserError,
21
- UserError: () => UserError,
22
- logError: () => logError,
23
- logException: () => logException,
24
- logInfo: () => logInfo
25
- });
26
- module.exports = __toCommonJS(analyticsUtils_exports);
27
- const IsUserError = Symbol();
28
- class UserError extends Error {
29
- constructor(...args) {
30
- super(...args);
31
- this.name = "Error";
32
- this.message = args[0];
33
- this[IsUserError] = true;
34
- }
35
- }
36
- const logError = (params, error, context) => {
37
- const {
38
- column,
39
- line,
40
- message,
41
- source
42
- } = error || {};
43
- const { database, ...updatedContext } = context || {};
44
- console.error("Reaktor Error:", {
45
- column,
46
- line,
47
- message,
48
- source,
49
- type: "error",
50
- ...params,
51
- ...updatedContext,
52
- error
53
- });
54
- throw error || new UserError(params?.value);
55
- };
56
- const logException = (params, context) => {
57
- const { database, ...updatedContext } = context;
58
- console.error("Reaktor Exception:", { type: "exception", ...params, ...updatedContext });
59
- throw new UserError(params?.value);
60
- };
61
- const logInfo = (params) => {
62
- console.info("Reaktor Log:", { type: "log", ...params });
63
- };
64
- // Annotate the CommonJS export names for ESM import in node:
65
- 0 && (module.exports = {
66
- IsUserError,
67
- UserError,
68
- logError,
69
- logException,
70
- logInfo
71
- });
72
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FuYWx5dGljc1V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFJlYWt0b3JFcnJvciA9IEVycm9yICYge1xuICByZWFkb25seSBjb2x1bW4/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGxpbmU/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFJlYWt0b3JMb2dQYXJhbXMgPSB7XG4gIHJlYWRvbmx5IGFjdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuICByZWFkb25seSBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcmVhZG9ubHkgdmFsdWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgSXNVc2VyRXJyb3IgPSBTeW1ib2woKTtcbmV4cG9ydCBjbGFzcyBVc2VyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICB0aGlzLm5hbWUgPSAnRXJyb3InO1xuICAgIHRoaXMubWVzc2FnZSA9IGFyZ3NbMF07XG4gICAgdGhpc1tJc1VzZXJFcnJvcl0gPSB0cnVlO1xuXG4gICAgLy8gRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxvZ0Vycm9yID0gKHBhcmFtczogUmVha3RvckxvZ1BhcmFtcywgZXJyb3I/OiBSZWFrdG9yRXJyb3IsIGNvbnRleHQ/OiBBcGlDb250ZXh0KTogUHJvbWlzZTx1bmtub3duPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb2x1bW4sXG4gICAgbGluZSxcbiAgICBtZXNzYWdlLFxuICAgIHNvdXJjZVxuICB9ID0gZXJyb3IgfHwge307XG5cbiAgY29uc3Qge2RhdGFiYXNlLCAuLi51cGRhdGVkQ29udGV4dH0gPSBjb250ZXh0IHx8IHt9O1xuXG4gIGNvbnNvbGUuZXJyb3IoJ1JlYWt0b3IgRXJyb3I6Jywge1xuICAgIGNvbHVtbixcbiAgICBsaW5lLFxuICAgIG1lc3NhZ2UsXG4gICAgc291cmNlLFxuICAgIHR5cGU6ICdlcnJvcicsXG4gICAgLi4ucGFyYW1zLFxuICAgIC4uLnVwZGF0ZWRDb250ZXh0LFxuICAgIGVycm9yXG4gIH0pO1xuXG4gIHRocm93IGVycm9yIHx8IG5ldyBVc2VyRXJyb3IocGFyYW1zPy52YWx1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nRXhjZXB0aW9uID0gKHBhcmFtczogUmVha3RvckxvZ1BhcmFtcywgY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIC4uLnVwZGF0ZWRDb250ZXh0fSA9IGNvbnRleHQ7XG5cbiAgY29uc29sZS5lcnJvcignUmVha3RvciBFeGNlcHRpb246Jywge3R5cGU6ICdleGNlcHRpb24nLCAuLi5wYXJhbXMsIC4uLnVwZGF0ZWRDb250ZXh0fSk7XG4gIHRocm93IG5ldyBVc2VyRXJyb3IocGFyYW1zPy52YWx1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nSW5mbyA9IChwYXJhbXMpOiB2b2lkID0+IHtcbiAgY29uc29sZS5pbmZvKCdSZWFrdG9yIExvZzonLCB7dHlwZTogJ2xvZycsIC4uLnBhcmFtc30pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUJPLE1BQU0sY0FBYyxPQUFPO0FBQzNCLE1BQU0sa0JBQWtCLE1BQU07QUFBQSxFQUNuQyxlQUFlLE1BQU07QUFDbkIsVUFBTSxHQUFHLElBQUk7QUFDYixTQUFLLE9BQU87QUFDWixTQUFLLFVBQVUsS0FBSyxDQUFDO0FBQ3JCLFNBQUssV0FBVyxJQUFJO0FBQUEsRUFHdEI7QUFDRjtBQUVPLE1BQU0sV0FBVyxDQUFDLFFBQTBCLE9BQXNCLFlBQTJDO0FBQ2xILFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJLFNBQVMsQ0FBQztBQUVkLFFBQU0sRUFBQyxVQUFVLEdBQUcsZUFBYyxJQUFJLFdBQVcsQ0FBQztBQUVsRCxVQUFRLE1BQU0sa0JBQWtCO0FBQUEsSUFDOUI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLE1BQU07QUFBQSxJQUNOLEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQSxJQUNIO0FBQUEsRUFDRixDQUFDO0FBRUQsUUFBTSxTQUFTLElBQUksVUFBVSxRQUFRLEtBQUs7QUFDNUM7QUFFTyxNQUFNLGVBQWUsQ0FBQyxRQUEwQixZQUEwQztBQUMvRixRQUFNLEVBQUMsVUFBVSxHQUFHLGVBQWMsSUFBSTtBQUV0QyxVQUFRLE1BQU0sc0JBQXNCLEVBQUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxHQUFHLGVBQWMsQ0FBQztBQUNyRixRQUFNLElBQUksVUFBVSxRQUFRLEtBQUs7QUFDbkM7QUFFTyxNQUFNLFVBQVUsQ0FBQyxXQUFpQjtBQUN2QyxVQUFRLEtBQUssZ0JBQWdCLEVBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTSxDQUFDO0FBQ3ZEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,165 +0,0 @@
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
@@ -1,57 +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 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==
@@ -1,30 +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 __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=
@@ -1,60 +0,0 @@
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.config.js DELETED
@@ -1,17 +0,0 @@
1
- module.exports = {
2
- setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
3
- testEnvironment: 'node',
4
- transform: {
5
- '^.+\\.ts$': 'ts-jest'
6
- },
7
- moduleFileExtensions: ['ts', 'js', 'json'],
8
- transformIgnorePatterns: [
9
- 'node_modules/(?!(zod)/)'
10
- ],
11
- extensionsToTreatAsEsm: ['.ts'],
12
- globals: {
13
- 'ts-jest': {
14
- useESM: true
15
- }
16
- }
17
- };
package/jest.setup.js DELETED
@@ -1,36 +0,0 @@
1
- // Centralized ArangoDB mock for all tests
2
- jest.mock('arangojs', () => ({
3
- ...jest.requireActual('arangojs'),
4
- aql: jest.fn((templateStrings, ...args) => {
5
- // Concatenate template strings and interpolate arguments
6
- let result = '';
7
- for (let i = 0; i < templateStrings.length; i++) {
8
- result += templateStrings[i];
9
- if (i < args.length) {
10
- // Add the actual value to the template
11
- result += args[i];
12
- }
13
- }
14
- // Normalize to single line: remove newlines and normalize whitespace
15
- const singleLine = result.replace(/\s+/g, ' ').trim();
16
- return [singleLine, ...args];
17
- })
18
- }));
19
-
20
- // Mock the useDb function from arangodbUtils with a basic default
21
- const mockUseDb = jest.fn(() => ({
22
- collection: jest.fn(() => ({
23
- save: jest.fn(() => Promise.resolve()),
24
- remove: jest.fn(() => Promise.resolve()),
25
- update: jest.fn(() => Promise.resolve())
26
- })),
27
- query: jest.fn(() => Promise.resolve({
28
- all: jest.fn(() => Promise.resolve([])),
29
- next: jest.fn(() => Promise.resolve({}))
30
- }))
31
- }));
32
-
33
- jest.mock('./src/utils/arangodbUtils', () => ({
34
- ...jest.requireActual('./src/utils/arangodbUtils'),
35
- useDb: mockUseDb
36
- }));
package/lex.config.cjs DELETED
@@ -1,13 +0,0 @@
1
- module.exports = {
2
- ai: {
3
- maxTokens: 4000,
4
- model: 'cursor-code',
5
- provider: 'cursor',
6
- temperature: 0.1
7
- },
8
- outputPath: 'lib',
9
- preset: 'node22',
10
- targetEnvironment: 'node',
11
- useTypescript: true
12
- };
13
-
@@ -1,20 +0,0 @@
1
- import{createHash as q,parseArangoId as $,parseEmail as _,parseId as U,parsePhone as j,parseString as f}from"@nlabs/utils";import{aql as g}from"arangojs";import{ErrorTypes as o}from"../types/error.types";import{logError as E,logException as h,UserError as I}from"../utils/analyticsUtils";import{getDocId as O,getLimit as w,selectReactionCountByType as x,useDb as R}from"../utils/arangodbUtils";import{isAdminUser as N}from"../utils/sessionUtils";const l="apps",S=(e=[])=>e.reduce((t,r)=>r.includes("Count")?x("apps","a",r,t):t,{objects:[],queries:[]}),D=(e={})=>{const{from:t=0,to:r=30}=e,a=w(t,r);return{...e,limit:a}},v=async(e,t)=>{const r="addUser",{databaseName:a}=e,{email:m,name:n,phone:i}=t,p=f(n),s=_(m),c=j(i);if(!p)return h({action:r,category:l,params:{name:n},value:o.INVALID_ARGUMENTS},e);const y=[`a.name == "${p}"`];s&&y.push(`a.email == "${s}"`);const A=`FOR u IN users
2
- FILTER ${y.join(" || ")}
3
- RETURN u`;try{if((await R(a).query(A).then(b=>b.all())).length)return h({action:r,category:l,params:{name:n},value:o.EXISTING_ITEM},e)}catch(u){return E({action:r,category:l,label:o.DATABASE_ERROR,params:{name:n}},u,e)}const T={_key:q(n,null),active:!0,added:Date.now(),email:s,modified:Date.now(),name:p,phone:c},d=g`INSERT ${T} IN apps RETURN NEW`;return await R(a).query(d).then(u=>u.next()||{}).catch(u=>E({action:r,category:l,label:o.DATABASE_ERROR,params:{name:n}},u,e))},F=async(e,t)=>{const r="updateApp",{databaseName:a}=e,{_key:m,_id:n,id:i,appId:p,...s}=t,c=O("apps",t),y=g`LET a = DOCUMENT(${c})
4
- UPDATE a WITH ${s} IN apps
5
- RETURN NEW`;return await R(a).query(y).then(A=>A.next()).catch(A=>E({action:r,category:l,label:o.DATABASE_ERROR,params:{app:t}},A,e))},M=async(e,t)=>{const r="deleteApp",{databaseName:a,session:m}=e,n=N(m),i=O("apps",t);if(!n)return Promise.reject(new I(o.INVALID_SESSION));const p=g`FOR a IN apps
6
- FILTER a._id == \"${i}\"
7
- LIMIT 1
8
- REMOVE a IN apps
9
- RETURN OLD`;return R(a).query(p).then(s=>s.next()).catch(s=>E({action:r,category:l,label:o.DATABASE_ERROR,params:t},s,e))},V=(e,t)=>{const r="deactivateApp",{databaseName:a,session:m}=e,n=N(m),i=O("apps",t);if(!n)return Promise.reject(new I(o.INVALID_SESSION));const s=g`UPDATE ${i} WITH ${{active:!1}} IN apps LIMIT 1 RETURN NEW`;return R(a).query(s).then(c=>c.next()).catch(c=>E({action:r,category:l,label:o.DATABASE_ERROR,params:t},c,e))},W=(e,t)=>{const r="getApp",{databaseName:a,fields:m,session:n}=e,{id:i,key:p,name:s}=D(t),{objects:c,queries:y}=S(m),A=["a.active == true"];if(!N(n))return Promise.reject(new I(o.INVALID_SESSION));i&&A.push(`a._id == "${$(i)}"`),p&&A.push(`a._key == "apps/${U(p)}"`),s&&A.push(`CONTAINS(a.name, "${f(s)}")`);const d=`FOR a IN apps
10
- FILTER ${A.join(" && ")}
11
- ${y.join(`
12
- `)}
13
- RETURN MERGE(a, {${c.join(", ")}})`;return R(a).query(d).then(u=>u.next()).catch(u=>(E({action:r,category:l,label:o.DATABASE_ERROR,params:t},u,e),null))},G=async(e,t)=>{const r="getApps",{databaseName:a,fields:m,session:n}=e,{limit:i,name:p}=D(t),{objects:s,queries:c}=S(m),y=["a.active == true"];if(!N(n))return Promise.reject(new I(o.INVALID_SESSION));p&&y.push(`CONTAINS(a.name, "${f(p)}")`);const T=`FOR a IN apps
14
- FILTER ${y.join(" && ")}
15
- ${c.join(`
16
- `)}
17
- ${i.aql}
18
- SORT a.name
19
- RETURN MERGE(a, {${s.join(", ")}})`;return R(a).query(T).then(d=>d.all()).catch(d=>(E({action:r,category:l,label:o.DATABASE_ERROR,params:t},d,e),[]))};export{v as addApp,V as deactivateApp,M as deleteApp,W as getApp,S as getAppOptional,G as getApps,D as parseAppOptions,F as updateApp};
20
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvYXBwcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VFbWFpbCwgcGFyc2VJZCwgcGFyc2VQaG9uZSwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtBcHBUeXBlfSBmcm9tICcuLi90eXBlcy9hcHBzLnR5cGVzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHtsb2dFcnJvciwgbG9nRXhjZXB0aW9uLCBVc2VyRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcbmltcG9ydCB7Z2V0RG9jSWQsIGdldExpbWl0LCBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlLCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscyc7XG5pbXBvcnQge2lzQWRtaW5Vc2VyfSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7VXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2FwcHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcE9wdGlvbnMge1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBmcm9tPzogbnVtYmVyO1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB0bz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEFwcE9wdGlvbmFsID0gKGZpZWxkczogc3RyaW5nW10gPSBbXSkgPT5cbiAgZmllbGRzLnJlZHVjZSgoc2VsZWN0cywgZmllbGQ6IHN0cmluZykgPT4ge1xuICAgIGlmKGZpZWxkLmluY2x1ZGVzKCdDb3VudCcpKSB7XG4gICAgICByZXR1cm4gc2VsZWN0UmVhY3Rpb25Db3VudEJ5VHlwZSgnYXBwcycsICdhJywgZmllbGQsIHNlbGVjdHMpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RzO1xuICB9LCB7b2JqZWN0czogW10sIHF1ZXJpZXM6IFtdfSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUFwcE9wdGlvbnMgPSAob3B0aW9uczogQXBwT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBmcm9tID0gMCxcbiAgICB0byA9IDMwXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgbGltaXRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRBcHAgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgYXBwOiBBcHBUeXBlKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnYWRkVXNlcic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qge2VtYWlsLCBuYW1lLCBwaG9uZX0gPSBhcHA7XG4gIGNvbnN0IGZvcm1hdE5hbWUgPSBwYXJzZVN0cmluZyhuYW1lKTtcbiAgY29uc3QgZm9ybWF0RW1haWwgPSBwYXJzZUVtYWlsKGVtYWlsKTtcbiAgY29uc3QgZm9ybWF0UGhvbmUgPSBwYXJzZVBob25lKHBob25lKTtcblxuICBpZighZm9ybWF0TmFtZSkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfQVJHVU1FTlRTXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBmaWx0ZXJzOiBzdHJpbmdbXSA9IFtgYS5uYW1lID09IFwiJHtmb3JtYXROYW1lfVwiYF07XG5cbiAgaWYoZm9ybWF0RW1haWwpIHtcbiAgICBmaWx0ZXJzLnB1c2goYGEuZW1haWwgPT0gXCIke2Zvcm1hdEVtYWlsfVwiYCk7XG4gIH1cblxuICBjb25zdCBjaGVja1F1ZXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyB8fCAnKX1cbiAgICBSRVRVUk4gdWA7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBleGlzdGluZ0FwcHMgPSBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGNoZWNrUXVlcnkpLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKTtcblxuICAgIGlmKGV4aXN0aW5nQXBwcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuRVhJU1RJTkdfSVRFTVxuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtuYW1lfVxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGluc2VydDogQXBwVHlwZSA9IHtcbiAgICBfa2V5OiBjcmVhdGVIYXNoKG5hbWUsIG51bGwpLFxuICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICBlbWFpbDogZm9ybWF0RW1haWwsXG4gICAgbW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICBwaG9uZTogZm9ybWF0UGhvbmVcbiAgfTtcblxuICBjb25zdCBpbnNlcnRRdWVyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBhcHBzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGluc2VydFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkgfHwge30pXG4gICAgLmNhdGNoKChlcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge25hbWV9XG4gICAgfSwgZXJyb3IsIGNvbnRleHQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVBcHAgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgYXBwOiBBcHBUeXBlKTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3VwZGF0ZUFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qge19rZXksIF9pZCwgaWQsIGFwcElkLCAuLi51cGRhdGVkfSA9IGFwcDtcbiAgY29uc3QgYXBwRG9jSWQgPSBnZXREb2NJZCgnYXBwcycsIGFwcCk7XG4gIGNvbnN0IGFwcFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgYSA9IERPQ1VNRU5UKCR7YXBwRG9jSWR9KVxuICAgIFVQREFURSBhIFdJVEggJHt1cGRhdGVkfSBJTiBhcHBzXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGF3YWl0IHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXBwUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PlxuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgICAgcGFyYW1zOiB7YXBwfVxuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVBcHAgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgYXBwOiBBcHBUeXBlKTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZUFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24pO1xuICBjb25zdCBhcHBEb2NJZCA9IGdldERvY0lkKCdhcHBzJywgYXBwKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICBjb25zdCBhcWxRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGEgSU4gYXBwc1xuICAgIEZJTFRFUiBhLl9pZCA9PSBcXFwiJHthcHBEb2NJZH1cXFwiXG4gICAgTElNSVQgMVxuICAgIFJFTU9WRSBhIElOIGFwcHNcbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3IpID0+XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgICBwYXJhbXM6IGFwcCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWFjdGl2YXRlQXBwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVhY3RpdmF0ZUFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24pO1xuICBjb25zdCBhcHBEb2NJZCA9IGdldERvY0lkKCdhcHBzJywgYXBwKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkOiBBcHBUeXBlID0ge1xuICAgIGFjdGl2ZTogZmFsc2VcbiAgfTtcbiAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQREFURSAke2FwcERvY0lkfSBXSVRIICR7dXBkYXRlZH0gSU4gYXBwcyBMSU1JVCAxIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgICBwYXJhbXM6IGFwcCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCwgb3B0aW9ucz86IEFwcE9wdGlvbnMpOiBQcm9taXNlPEFwcFR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0QXBwJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgZmllbGRzLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtpZCwga2V5LCBuYW1lfSA9IHBhcnNlQXBwT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0QXBwT3B0aW9uYWwoZmllbGRzKTtcbiAgY29uc3QgZmlsdGVyQnk6IHN0cmluZ1tdID0gWydhLmFjdGl2ZSA9PSB0cnVlJ107XG4gIGNvbnN0IGlzQWRtaW4gPSBpc0FkbWluVXNlcihzZXNzaW9uKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICBpZihpZCkge1xuICAgIGZpbHRlckJ5LnB1c2goYGEuX2lkID09IFwiJHtwYXJzZUFyYW5nb0lkKGlkKX1cImApO1xuICB9XG5cbiAgaWYoa2V5KSB7XG4gICAgZmlsdGVyQnkucHVzaChgYS5fa2V5ID09IFwiYXBwcy8ke3BhcnNlSWQoa2V5KX1cImApO1xuICB9XG5cbiAgaWYobmFtZSkge1xuICAgIGZpbHRlckJ5LnB1c2goYENPTlRBSU5TKGEubmFtZSwgXCIke3BhcnNlU3RyaW5nKG5hbWUpfVwiKWApO1xuICB9XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiBhIElOIGFwcHNcbiAgICBGSUxURVIgJHtmaWx0ZXJCeS5qb2luKCcgJiYgJyl9XG4gICAgJHtzZWxlY3RRdWVyaWVzLmpvaW4oJ1xcbicpfVxuICAgIFJFVFVSTiBNRVJHRShhLCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkgYXMgdW5rbm93biBhcyBBcHBUeXBlKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgICBwYXJhbXM6IG9wdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFwcHMgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgb3B0aW9ucz86IEFwcE9wdGlvbnMpOiBQcm9taXNlPEFwcFR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRBcHBzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgZmllbGRzLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtsaW1pdCwgbmFtZX0gPSBwYXJzZUFwcE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHtvYmplY3RzOiBzZWxlY3RPYmplY3RzLCBxdWVyaWVzOiBzZWxlY3RRdWVyaWVzfSA9IGdldEFwcE9wdGlvbmFsKGZpZWxkcyk7XG4gIGNvbnN0IGZpbHRlckJ5OiBzdHJpbmdbXSA9IFsnYS5hY3RpdmUgPT0gdHJ1ZSddO1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFVzZXJFcnJvcihFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTikpO1xuICB9XG5cbiAgaWYobmFtZSkge1xuICAgIGZpbHRlckJ5LnB1c2goYENPTlRBSU5TKGEubmFtZSwgXCIke3BhcnNlU3RyaW5nKG5hbWUpfVwiKWApO1xuICB9XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiBhIElOIGFwcHNcbiAgICBGSUxURVIgJHtmaWx0ZXJCeS5qb2luKCcgJiYgJyl9XG4gICAgJHtzZWxlY3RRdWVyaWVzLmpvaW4oJ1xcbicpfVxuICAgICR7bGltaXQuYXFsfVxuICAgIFNPUlQgYS5uYW1lXG4gICAgUkVUVVJOIE1FUkdFKGEsIHske3NlbGVjdE9iamVjdHMuam9pbignLCAnKX19KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpIGFzIHVua25vd24gYXMgQXBwVHlwZVtdKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgICBwYXJhbXM6IG9wdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAg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QyxLQUU3QyxPQUFPNUMsRUFBTWdCLENBQVksRUFBRSxNQUFNd0IsQ0FBUSxFQUN0QyxLQUFNZixHQUFXQSxFQUFPLElBQUksQ0FBeUIsRUFDckQsTUFBT0MsSUFDTmhDLEVBQVMsQ0FDUCxPQUFBcUIsRUFDQSxTQUFVYixFQUNWLE1BQU9ULEVBQVcsZUFDbEIsT0FBUWUsQ0FDVixFQUFHa0IsRUFBT2IsQ0FBTyxFQUNWLENBQUMsRUFDVCxDQUNMIiwKICAibmFtZXMiOiBbImNyZWF0ZUhhc2giLCAicGFyc2VBcmFuZ29JZCIsICJwYXJzZUVtYWlsIiwgInBhcnNlSWQiLCAicGFyc2VQaG9uZSIsICJwYXJzZVN0cmluZyIsICJhcWwiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJsb2dFeGNlcHRpb24iLCAiVXNlckVycm9yIiwgImdldERvY0lkIiwgImdldExpbWl0IiwgInNlbGVjdFJlYWN0aW9uQ291bnRCeVR5cGUiLCAidXNlRGIiLCAiaXNBZG1pblVzZXIiLCAiZXZlbnRDYXRlZ29yeSIsICJnZXRBcHBPcHRpb25hbCIsICJmaWVsZHMiLCAic2VsZWN0cyIsICJmaWVsZCIsICJwYXJzZUFwcE9wdGlvbnMiLCAib3B0aW9ucyIsICJmcm9tIiwgInRvIiwgImxpbWl0IiwgImFkZEFwcCIsICJjb250ZXh0IiwgImFwcCIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgImVtYWlsIiwgIm5hbWUiLCAicGhvbmUiLCAiZm9ybWF0TmFtZSIsICJmb3JtYXRFbWFpbCIsICJmb3JtYXRQaG9uZSIsICJmaWx0ZXJzIiwgImNoZWNrUXVlcnkiLCAiY3Vyc29yIiwgImVycm9yIiwgImluc2VydCIsICJpbnNlcnRRdWVyeSIsICJ1cGRhdGVBcHAiLCAiX2tleSIsICJfaWQiLCAiaWQiLCAiYXBwSWQiLCAidXBkYXRlZCIsICJhcHBEb2NJZCIsICJhcHBRdWVyeSIsICJkZWxldGVBcHAiLCAic2Vzc2lvbiIsICJpc0FkbWluIiwgImFxbFF1ZXJ5IiwgImRlYWN0aXZhdGVBcHAiLCAiZ2V0QXBwIiwgImtleSIsICJzZWxlY3RPYmplY3RzIiwgInNlbGVjdFF1ZXJpZXMiLCAiZmlsdGVyQnkiLCAiZ2V0QXBwcyJdCn0K
@@ -1,7 +0,0 @@
1
- import{parseArangoId as e,parseString as I}from"@nlabs/utils";import{aql as p}from"arangojs";import{ErrorTypes as y}from"../types/error.types";import{logError as f}from"../utils/analyticsUtils";import{useDb as d}from"../utils/arangodbUtils";const A="connections",q=(t,s,i,n,c,r)=>{const a="addConnection",{databaseName:g}=t,m=e(`${s}/${i}`),l=e(`${n}/${c}`),o={_from:m,_to:l,isDirect:!0,type:n,value:r?I(r,32):void 0},h=p`INSERT ${o} IN hasConnection`;return d(g).query(h).then(()=>!0).catch(u=>(f({action:a,category:A,label:y.DATABASE_ERROR},u,t),!1))},D=(t,s,i,n,c)=>{const r="getConnection",{databaseName:a}=t,g=e(`${s}/${i}`),m=e(`${n}/${c}`),l=p`FOR hc in hasConnection
2
- FILTER hc._from == ${g} && hc._to == ${m}
3
- LIMIT 1`;return d(a).query(l).then(o=>o.next()).catch(o=>f({action:r,category:A,label:y.DATABASE_ERROR},o,t))},b=(t,s,i,n,c)=>{const r="deleteReactionByItem",{databaseName:a}=t,g=e(`${s}/${i}`),m=e(`${n}/${c}`),l=p`FOR hc in hasConnection
4
- FILTER hc._from == ${g} && hc._to == ${m}
5
- LIMIT 1
6
- REMOVE hc IN hasConnection`;return d(a).query(l).then(()=>!0).catch(o=>(f({action:r,category:A,label:y.DATABASE_ERROR},o,t),!1))};export{q as addConnection,b as deleteConnection,D as getConnection};
7
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29ubmVjdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dCwgQ29ubmVjdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2Nvbm5lY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IGFkZENvbm5lY3Rpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGZyb21UeXBlOiBzdHJpbmcsXG4gIGZyb21JZDogc3RyaW5nLFxuICB0b1R5cGU6IHN0cmluZyxcbiAgdG9JZDogc3RyaW5nLFxuICB2YWx1ZT86IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZENvbm5lY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG5cbiAgY29uc3QgZm9ybWF0RnJvbURvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGAke2Zyb21UeXBlfS8ke2Zyb21JZH1gKTtcbiAgY29uc3QgZm9ybWF0VG9Eb2NJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChgJHt0b1R5cGV9LyR7dG9JZH1gKTtcbiAgY29uc3QgaW5zZXJ0ID0ge1xuICAgIF9mcm9tOiBmb3JtYXRGcm9tRG9jSWQsXG4gICAgX3RvOiBmb3JtYXRUb0RvY0lkLFxuICAgIGlzRGlyZWN0OiB0cnVlLFxuICAgIHR5cGU6IHRvVHlwZSxcbiAgICB2YWx1ZTogISF2YWx1ZSA/IHBhcnNlU3RyaW5nKHZhbHVlLCAzMikgOiB1bmRlZmluZWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIGhhc0Nvbm5lY3Rpb25gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgZnJvbVR5cGU6IHN0cmluZyxcbiAgZnJvbUlkOiBzdHJpbmcsXG4gIHRvVHlwZTogc3RyaW5nLFxuICB0b0lkOiBzdHJpbmdcbik6IFByb21pc2U8Q29ubmVjdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29ubmVjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcblxuICBjb25zdCBmb3JtYXRGcm9tRG9jSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoYCR7ZnJvbVR5cGV9LyR7ZnJvbUlkfWApO1xuICBjb25zdCBmb3JtYXRUb0RvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGAke3RvVHlwZX0vJHt0b0lkfWApO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGhjIGluIGhhc0Nvbm5lY3Rpb25cbiAgICBGSUxURVIgaGMuX2Zyb20gPT0gJHtmb3JtYXRGcm9tRG9jSWR9ICYmIGhjLl90byA9PSAke2Zvcm1hdFRvRG9jSWR9XG4gICAgTElNSVQgMWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZUNvbm5lY3Rpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGZyb21UeXBlOiBzdHJpbmcsXG4gIGZyb21JZDogc3RyaW5nLFxuICB0b1R5cGU6IHN0cmluZyxcbiAgdG9JZDogc3RyaW5nXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlUmVhY3Rpb25CeUl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEZyb21Eb2NJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChgJHtmcm9tVHlwZX0vJHtmcm9tSWR9YCk7XG4gIGNvbnN0IGZvcm1hdFRvRG9jSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoYCR7dG9UeXBlfS8ke3RvSWR9YCk7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgaGMgaW4gaGFzQ29ubmVjdGlvblxuICAgIEZJTFRFUiBoYy5fZnJvbSA9PSAke2Zvcm1hdEZyb21Eb2NJZH0gJiYgaGMuX3RvID09ICR7Zm9ybWF0VG9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIGhjIElOIGhhc0Nvbm5lY3Rpb25gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxpQkFBQUEsRUFBZSxlQUFBQyxNQUFrQixlQUN6QyxPQUFRLE9BQUFDLE1BQVUsV0FFbEIsT0FBUSxjQUFBQyxNQUFpQix1QkFDekIsT0FBUSxZQUFBQyxNQUFlLDBCQUN2QixPQUFRLFNBQUFDLE1BQVkseUJBS3BCLE1BQU1DLEVBQXdCLGNBRWpCQyxFQUFnQixDQUMzQkMsRUFDQUMsRUFDQUMsRUFDQUMsRUFDQUMsRUFDQUMsSUFDcUIsQ0FDckIsTUFBTUMsRUFBaUIsZ0JBQ2pCLENBQUMsYUFBQUMsQ0FBWSxFQUFJUCxFQUVqQlEsRUFBMEJoQixFQUFjLEdBQUdTLENBQVEsSUFBSUMsQ0FBTSxFQUFFLEVBQy9ETyxFQUF3QmpCLEVBQWMsR0FBR1csQ0FBTSxJQUFJQyxDQUFJLEVBQUUsRUFDekRNLEVBQVMsQ0FDYixNQUFPRixFQUNQLElBQUtDLEVBQ0wsU0FBVSxHQUNWLEtBQU1OLEVBQ04sTUFBU0UsRUFBUVosRUFBWVksRUFBTyxFQUFFLEVBQUksTUFDNUMsRUFDTU0sRUFBbUJqQixXQUFhZ0IsQ0FBTSxvQkFFNUMsT0FBT2IsRUFBTVUsQ0FBWSxFQUFFLE1BQU1JLENBQU0sRUFDcEMsS0FBSyxJQUFNLEVBQUksRUFDZixNQUFPQyxJQUNOaEIsRUFBUyxDQUNQLE9BQUFVLEVBQ0EsU0FBVVIsRUFDVixNQUFPSCxFQUFXLGNBQ3BCLEVBQUdpQixFQUFPWixDQUFPLEVBQ1YsR0FDUixDQUNMLEVBRWFhLEVBQWdCLENBQzNCYixFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxJQUM0QixDQUM1QixNQUFNRSxFQUFpQixnQkFDakIsQ0FBQyxhQUFBQyxDQUFZLEVBQUlQLEVBRWpCUSxFQUEwQmhCLEVBQWMsR0FBR1MsQ0FBUSxJQUFJQyxDQUFNLEVBQUUsRUFDL0RPLEVBQXdCakIsRUFBYyxHQUFHVyxDQUFNLElBQUlDLENBQUksRUFBRSxFQUV6RE8sRUFBbUJqQjtBQUFBLHlCQUNGYyxDQUFlLGlCQUFpQkMsQ0FBYTtBQUFBLGFBR3BFLE9BQU9aLEVBQU1VLENBQVksRUFBRSxNQUFNSSxDQUFNLEVBQ3BDLEtBQU1HLEdBQVdBLEVBQU8sS0FBSyxDQUFDLEVBQzlCLE1BQU9GLEdBQWlCaEIsRUFBUyxDQUNoQyxPQUFBVSxFQUNBLFNBQVVSLEVBQ1YsTUFBT0gsRUFBVyxjQUNwQixFQUFHaUIsRUFBT1osQ0FBTyxDQUFDLENBQ3RCLEVBRWFlLEVBQW1CLENBQzlCZixFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxJQUNxQixDQUNyQixNQUFNRSxFQUFpQix1QkFDakIsQ0FBQyxhQUFBQyxDQUFZLEVBQUlQLEVBQ2pCUSxFQUEwQmhCLEVBQWMsR0FBR1MsQ0FBUSxJQUFJQyxDQUFNLEVBQUUsRUFDL0RPLEVBQXdCakIsRUFBYyxHQUFHVyxDQUFNLElBQUlDLENBQUksRUFBRSxFQUV6RE8sRUFBbUJqQjtBQUFBLHlCQUNGYyxDQUFlLGlCQUFpQkMsQ0FBYTtBQUFBO0FBQUEsZ0NBSXBFLE9BQU9aLEVBQU1VLENBQVksRUFBRSxNQUFNSSxDQUFNLEVBQ3BDLEtBQUssSUFBTSxFQUFJLEVBQ2YsTUFBT0MsSUFDTmhCLEVBQVMsQ0FDUCxPQUFBVSxFQUNBLFNBQVVSLEVBQ1YsTUFBT0gsRUFBVyxjQUNwQixFQUFHaUIsRUFBT1osQ0FBTyxFQUNWLEdBQ1IsQ0FDTCIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlU3RyaW5nIiwgImFxbCIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgInVzZURiIiwgImV2ZW50Q2F0ZWdvcnkiLCAiYWRkQ29ubmVjdGlvbiIsICJjb250ZXh0IiwgImZyb21UeXBlIiwgImZyb21JZCIsICJ0b1R5cGUiLCAidG9JZCIsICJ2YWx1ZSIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgImZvcm1hdEZyb21Eb2NJZCIsICJmb3JtYXRUb0RvY0lkIiwgImluc2VydCIsICJhcWxRcnkiLCAiZXJyb3IiLCAiZ2V0Q29ubmVjdGlvbiIsICJjdXJzb3IiLCAiZGVsZXRlQ29ubmVjdGlvbiJdCn0K
@@ -1,17 +0,0 @@
1
- import{createHash as $,parseString as u}from"@nlabs/utils";import{aql as N}from"arangojs";import{parseContentFromDb as A,parseContentInput as O}from"../adapters/contentAdapter";import{Config as b}from"../config";import{ErrorTypes as T}from"../types/error.types";import{logError as R}from"../utils/analyticsUtils";import{useDb as v}from"../utils/arangodbUtils";import{translateText as x}from"../utils/googleTranslate";import{extractLanguage as E,isRegionalLocale as q}from"../utils/localeUtils";const w="content",D=(e={})=>{const{category:t,isActive:o=!0,key:r,locale:c}=e;return{category:t?u(t,100):void 0,isActive:o,key:r?u(r,200):void 0,locale:c}},C=async(e,t,o="en")=>{const r="getContent",{databaseName:c}=e,s=u(t,200),n=u(o,5),p=N`
2
- FOR c IN content
3
- FILTER c.key == ${s} && c.locale == ${n} && c.isActive == true
4
- LIMIT 1
5
- RETURN c
6
- `;try{const a=await v(c).query(p).then(i=>i.next()).catch(i=>R({action:r,category:w,label:T.DATABASE_ERROR},i,e));return a?A(a):null}catch(a){throw a}},j=async(e,t,o,r="en")=>{const c=b.get("app.locale")||"en";try{let s=await C(e,t,r);if(s?.content)return s.content;if(q(r)){const n=E(r);if(s=await C(e,t,n),s?.content)return h(e,{key:t,content:s.content,locale:r,description:`Extracted from ${n}`}).catch(p=>{}),s.content}if(r===c)return o&&h(e,{key:t,content:o,locale:r,description:"Auto-generated from fallback"}).catch(n=>{}),o||t;try{let n=await C(e,t,c),p;if(n?.content)p=n.content;else{if(q(c)){const i=E(c);n=await C(e,t,i)}if(n?.content)p=n.content;else if(o)p=o,h(e,{key:t,content:o,locale:c,description:"Auto-generated from fallback"}).catch(i=>{});else return t}const a=await x(p,E(r),E(c));return h(e,{key:t,content:a,locale:r,description:`Auto-translated from ${c}`}).catch(i=>{}),a}catch{return o||t}}catch{return o||t}},h=async(e,t)=>{const o="addContent",{databaseName:r,session:c}=e,s=Date.now(),n=O(t),{key:p,locale:a="en",content:i,description:y,category:l,isActive:f=!0}=n,d=$(`content-${p}-${a}`),I={_id:`content/${d}`,_key:d,added:s,key:u(p,200),locale:a,content:u(i,1e4),description:y?u(y,500):void 0,category:l?u(l,100):void 0,isActive:f,modified:s,userId:c?.userId},m=N`INSERT ${I} IN content RETURN NEW`;try{const g=await v(r).query(m).then(L=>L.next()).catch(L=>R({action:o,category:w,label:T.DATABASE_ERROR},L,e));return A(g)}catch(g){throw g}},K=async(e,t)=>{const o="updateContent",{databaseName:r}=e,c=Date.now(),s=O(t),{contentId:n,key:p,locale:a="en",content:i,description:y,category:l,isActive:f}=s;if(!n)throw new Error("Content ID is required for update");const d={content:u(i,1e4),modified:c};y!==void 0&&(d.description=y?u(y,500):void 0),l!==void 0&&(d.category=l?u(l,100):void 0),f!==void 0&&(d.isActive=f);const I=N`
7
- FOR c IN content
8
- FILTER c._key == ${n}
9
- UPDATE c WITH ${d} IN content
10
- RETURN NEW
11
- `;try{const m=await v(r).query(I).then(g=>g.next()).catch(g=>R({action:o,category:w,label:T.DATABASE_ERROR},g,e));if(!m)throw new Error("Content not found or access denied");return A(m)}catch(m){throw m}},M=async(e,t={})=>{const o="searchContent",{databaseName:r}=e,{category:c,isActive:s,key:n,locale:p}=D(t),a=[],i={};n&&(a.push("c.key == @key"),i.key=n),p&&(a.push("c.locale == @locale"),i.locale=p),c&&(a.push("c.category == @category"),i.category=c),s!==void 0&&(a.push("c.isActive == @isActive"),i.isActive=s);const l=`
12
- FOR c IN content
13
- ${a.length>0?`FILTER ${a.join(" && ")}`:""}
14
- SORT c.key, c.locale
15
- RETURN c
16
- `;try{return(await v(r).query(l,i).then(d=>d.all()).catch(d=>R({action:o,category:w,label:T.DATABASE_ERROR},d,e))).map(d=>A(d))}catch(f){throw f}};export{h as addContent,C as getContent,j as getContentWithFallback,D as parseContentOptions,M as searchContent,K as updateContent};
17
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udGVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtwYXJzZUNvbnRlbnRGcm9tRGIsIHBhcnNlQ29udGVudElucHV0fSBmcm9tICcuLi9hZGFwdGVycy9jb250ZW50QWRhcHRlcic7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscyc7XG5pbXBvcnQge3RyYW5zbGF0ZVRleHR9IGZyb20gJy4uL3V0aWxzL2dvb2dsZVRyYW5zbGF0ZSc7XG5pbXBvcnQge2V4dHJhY3RMYW5ndWFnZSwgaXNSZWdpb25hbExvY2FsZX0gZnJvbSAnLi4vdXRpbHMvbG9jYWxlVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7Q29udGVudElucHV0VHlwZSwgQ29udGVudE9wdGlvbnMsIENvbnRlbnRUeXBlLCBMb2NhbGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnY29udGVudCc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnRPcHRpb25zID0gKG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGNhdGVnb3J5LFxuICAgIGlzQWN0aXZlID0gdHJ1ZSxcbiAgICBrZXksXG4gICAgbG9jYWxlXG4gIH0gPSBvcHRpb25zO1xuXG4gIHJldHVybiB7XG4gICAgY2F0ZWdvcnk6IGNhdGVnb3J5ID8gcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCkgOiB1bmRlZmluZWQsXG4gICAgaXNBY3RpdmUsXG4gICAga2V5OiBrZXkgPyBwYXJzZVN0cmluZyhrZXksIDIwMCkgOiB1bmRlZmluZWQsXG4gICAgbG9jYWxlXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGVudCA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAga2V5OiBzdHJpbmcsXG4gIGxvY2FsZTogc3RyaW5nID0gJ2VuJ1xuKTogUHJvbWlzZTxDb250ZW50VHlwZSB8IG51bGw+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udGVudCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0S2V5OiBzdHJpbmcgPSBwYXJzZVN0cmluZyhrZXksIDIwMCk7XG4gIGNvbnN0IGZvcm1hdExvY2FsZTogc3RyaW5nID0gcGFyc2VTdHJpbmcobG9jYWxlLCA1KTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgIEZPUiBjIElOIGNvbnRlbnRcbiAgICBGSUxURVIgYy5rZXkgPT0gJHtmb3JtYXRLZXl9ICYmIGMubG9jYWxlID09ICR7Zm9ybWF0TG9jYWxlfSAmJiBjLmlzQWN0aXZlID09IHRydWVcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGNcbiAgYDtcblxuICB0cnkge1xuICAgIGNvbnN0IGNvbnRlbnQ6IENvbnRlbnRUeXBlIHwgbnVsbCA9IGF3YWl0IHVzZURiKGRhdGFiYXNlTmFtZSlcbiAgICAgIC5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG5cbiAgICByZXR1cm4gY29udGVudCA/IHBhcnNlQ29udGVudEZyb21EYihjb250ZW50KSA6IG51bGw7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnRXaXRoRmFsbGJhY2sgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGtleTogc3RyaW5nLFxuICBmYWxsYmFja0NvbnRlbnQ6IHN0cmluZyxcbiAgbG9jYWxlOiBMb2NhbGUgPSAnZW4nXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBjb25zdCBhcHBMb2NhbGUgPSAoQ29uZmlnLmdldCgnYXBwLmxvY2FsZScpIHx8ICdlbicpIGFzIExvY2FsZTtcblxuICB0cnkge1xuICAgIGxldCBjb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudChjb250ZXh0LCBrZXksIGxvY2FsZSk7XG5cbiAgICBpZihjb250ZW50Py5jb250ZW50KSB7XG4gICAgICByZXR1cm4gY29udGVudC5jb250ZW50O1xuICAgIH1cblxuICAgIGlmKGlzUmVnaW9uYWxMb2NhbGUobG9jYWxlKSkge1xuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UobG9jYWxlKTtcbiAgICAgIGNvbnRlbnQgPSBhd2FpdCBnZXRDb250ZW50KGNvbnRleHQsIGtleSwgbGFuZ3VhZ2UgYXMgTG9jYWxlKTtcblxuICAgICAgaWYoY29udGVudD8uY29udGVudCkge1xuICAgICAgICBhZGRDb250ZW50KGNvbnRleHQsIHtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgY29udGVudDogY29udGVudC5jb250ZW50LFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYEV4dHJhY3RlZCBmcm9tICR7bGFuZ3VhZ2V9YFxuICAgICAgICB9KS5jYXRjaCgoc2F2ZUVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIGV4dHJhY3RlZCBjb250ZW50OicsIHNhdmVFcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb250ZW50LmNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYobG9jYWxlID09PSBhcHBMb2NhbGUpIHtcbiAgICAgIGlmKGZhbGxiYWNrQ29udGVudCkge1xuICAgICAgICBhZGRDb250ZW50KGNvbnRleHQsIHtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgY29udGVudDogZmFsbGJhY2tDb250ZW50LFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F1dG8tZ2VuZXJhdGVkIGZyb20gZmFsbGJhY2snXG4gICAgICAgIH0pLmNhdGNoKChzYXZlRXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgZmFsbGJhY2sgY29udGVudDonLCBzYXZlRXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbGxiYWNrQ29udGVudCB8fCBrZXk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBsZXQgc291cmNlQ29udGVudCA9IGF3YWl0IGdldENvbnRlbnQoY29udGV4dCwga2V5LCBhcHBMb2NhbGUpO1xuICAgICAgbGV0IHNvdXJjZVRleHQ6IHN0cmluZztcblxuICAgICAgaWYoc291cmNlQ29udGVudD8uY29udGVudCkge1xuICAgICAgICBzb3VyY2VUZXh0ID0gc291cmNlQ29udGVudC5jb250ZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYoaXNSZWdpb25hbExvY2FsZShhcHBMb2NhbGUpKSB7XG4gICAgICAgICAgY29uc3QgYXBwTGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UoYXBwTG9jYWxlKTtcbiAgICAgICAgICBzb3VyY2VDb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudChjb250ZXh0LCBrZXksIGFwcExhbmd1YWdlIGFzIExvY2FsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZihzb3VyY2VDb250ZW50Py5jb250ZW50KSB7XG4gICAgICAgICAgc291cmNlVGV4dCA9IHNvdXJjZUNvbnRlbnQuY29udGVudDtcbiAgICAgICAgfSBlbHNlIGlmKGZhbGxiYWNrQ29udGVudCkge1xuICAgICAgICAgIHNvdXJjZVRleHQgPSBmYWxsYmFja0NvbnRlbnQ7XG5cbiAgICAgICAgICBhZGRDb250ZW50KGNvbnRleHQsIHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGZhbGxiYWNrQ29udGVudCxcbiAgICAgICAgICAgIGxvY2FsZTogYXBwTG9jYWxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBdXRvLWdlbmVyYXRlZCBmcm9tIGZhbGxiYWNrJ1xuICAgICAgICAgIH0pLmNhdGNoKChzYXZlRXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNhdmluZyBmYWxsYmFjayBhcyBkZWZhdWx0IGNvbnRlbnQ6Jywgc2F2ZUVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0ID0gYXdhaXQgdHJhbnNsYXRlVGV4dChzb3VyY2VUZXh0LCBleHRyYWN0TGFuZ3VhZ2UobG9jYWxlKSwgZXh0cmFjdExhbmd1YWdlKGFwcExvY2FsZSkpO1xuXG4gICAgICBhZGRDb250ZW50KGNvbnRleHQsIHtcbiAgICAgICAga2V5LFxuICAgICAgICBjb250ZW50OiB0cmFuc2xhdGVkVGV4dCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogYEF1dG8tdHJhbnNsYXRlZCBmcm9tICR7YXBwTG9jYWxlfWBcbiAgICAgIH0pLmNhdGNoKChzYXZlRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIHRyYW5zbGF0ZWQgY29udGVudDonLCBzYXZlRXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0cmFuc2xhdGVkVGV4dDtcbiAgICB9IGNhdGNoKHRyYW5zbGF0aW9uRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RyYW5zbGF0aW9uIGVycm9yOicsIHRyYW5zbGF0aW9uRXJyb3IpO1xuXG4gICAgICByZXR1cm4gZmFsbGJhY2tDb250ZW50IHx8IGtleTtcbiAgICB9XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBjb250ZW50IGZyb20gZGF0YWJhc2U6JywgZXJyb3IpO1xuICAgIHJldHVybiBmYWxsYmFja0NvbnRlbnQgfHwga2V5O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgYWRkQ29udGVudCA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udGVudElucHV0OiBDb250ZW50SW5wdXRUeXBlXG4pOiBQcm9taXNlPENvbnRlbnRUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZENvbnRlbnQnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGNvbnN0IHBhcnNlZENvbnRlbnQgPSBwYXJzZUNvbnRlbnRJbnB1dChjb250ZW50SW5wdXQpO1xuICBjb25zdCB7a2V5LCBsb2NhbGUgPSAnZW4nLCBjb250ZW50LCBkZXNjcmlwdGlvbiwgY2F0ZWdvcnksIGlzQWN0aXZlID0gdHJ1ZX0gPSBwYXJzZWRDb250ZW50O1xuXG4gIGNvbnN0IGNvbnRlbnRJZCA9IGNyZWF0ZUhhc2goYGNvbnRlbnQtJHtrZXl9LSR7bG9jYWxlfWApO1xuICBjb25zdCBpbnNlcnQ6IENvbnRlbnRUeXBlID0ge1xuICAgIF9pZDogYGNvbnRlbnQvJHtjb250ZW50SWR9YCxcbiAgICBfa2V5OiBjb250ZW50SWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBrZXk6IHBhcnNlU3RyaW5nKGtleSwgMjAwKSxcbiAgICBsb2NhbGUsXG4gICAgY29udGVudDogcGFyc2VTdHJpbmcoY29udGVudCwgMTAwMDApLFxuICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiA/IHBhcnNlU3RyaW5nKGRlc2NyaXB0aW9uLCA1MDApIDogdW5kZWZpbmVkLFxuICAgIGNhdGVnb3J5OiBjYXRlZ29yeSA/IHBhcnNlU3RyaW5nKGNhdGVnb3J5LCAxMDApIDogdW5kZWZpbmVkLFxuICAgIGlzQWN0aXZlLFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgdXNlcklkOiBzZXNzaW9uPy51c2VySWRcbiAgfTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gY29udGVudCBSRVRVUk4gTkVXYDtcblxuICB0cnkge1xuICAgIGNvbnN0IHNhdmVkQ29udGVudDogQ29udGVudFR5cGUgPSBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpXG4gICAgICAucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCkpO1xuXG4gICAgcmV0dXJuIHBhcnNlQ29udGVudEZyb21EYihzYXZlZENvbnRlbnQpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVDb250ZW50ID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb250ZW50SW5wdXQ6IENvbnRlbnRJbnB1dFR5cGVcbik6IFByb21pc2U8Q29udGVudFR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlQ29udGVudCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgcGFyc2VkQ29udGVudCA9IHBhcnNlQ29udGVudElucHV0KGNvbnRlbnRJbnB1dCk7XG4gIGNvbnN0IHtjb250ZW50SWQsIGtleSwgbG9jYWxlID0gJ2VuJywgY29udGVudCwgZGVzY3JpcHRpb24sIGNhdGVnb3J5LCBpc0FjdGl2ZX0gPSBwYXJzZWRDb250ZW50O1xuXG4gIGlmKCFjb250ZW50SWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRlbnQgSUQgaXMgcmVxdWlyZWQgZm9yIHVwZGF0ZScpO1xuICB9XG5cbiAgY29uc3QgdXBkYXRlOiBhbnkgPSB7XG4gICAgY29udGVudDogcGFyc2VTdHJpbmcoY29udGVudCwgMTAwMDApLFxuICAgIG1vZGlmaWVkOiBub3dcbiAgfTtcblxuICBpZihkZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdXBkYXRlLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24gPyBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKSA6IHVuZGVmaW5lZDtcbiAgfVxuICBpZihjYXRlZ29yeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdXBkYXRlLmNhdGVnb3J5ID0gY2F0ZWdvcnkgPyBwYXJzZVN0cmluZyhjYXRlZ29yeSwgMTAwKSA6IHVuZGVmaW5lZDtcbiAgfVxuICBpZihpc0FjdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdXBkYXRlLmlzQWN0aXZlID0gaXNBY3RpdmU7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgIEZPUiBjIElOIGNvbnRlbnRcbiAgICBGSUxURVIgYy5fa2V5ID09ICR7Y29udGVudElkfVxuICAgIFVQREFURSBjIFdJVEggJHt1cGRhdGV9IElOIGNvbnRlbnRcbiAgICBSRVRVUk4gTkVXXG4gIGA7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB1cGRhdGVkQ29udGVudDogQ29udGVudFR5cGUgPSBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpXG4gICAgICAucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCkpO1xuXG4gICAgaWYoIXVwZGF0ZWRDb250ZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRlbnQgbm90IGZvdW5kIG9yIGFjY2VzcyBkZW5pZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VDb250ZW50RnJvbURiKHVwZGF0ZWRDb250ZW50KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoQ29udGVudCA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgb3B0aW9uczogQ29udGVudE9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxDb250ZW50VHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3NlYXJjaENvbnRlbnQnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtjYXRlZ29yeSwgaXNBY3RpdmUsIGtleSwgbG9jYWxlfSA9IHBhcnNlQ29udGVudE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgY29uc3QgZmlsdGVyQ29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgYmluZFZhcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICBpZihrZXkpIHtcbiAgICBmaWx0ZXJDb25kaXRpb25zLnB1c2goJ2Mua2V5ID09IEBrZXknKTtcbiAgICBiaW5kVmFycy5rZXkgPSBrZXk7XG4gIH1cblxuICBpZihsb2NhbGUpIHtcbiAgICBmaWx0ZXJDb25kaXRpb25zLnB1c2goJ2MubG9jYWxlID09IEBsb2NhbGUnKTtcbiAgICBiaW5kVmFycy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICBpZihjYXRlZ29yeSkge1xuICAgIGZpbHRlckNvbmRpdGlvbnMucHVzaCgnYy5jYXRlZ29yeSA9PSBAY2F0ZWdvcnknKTtcbiAgICBiaW5kVmFycy5jYXRlZ29yeSA9IGNhdGVnb3J5O1xuICB9XG5cbiAgaWYoaXNBY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGZpbHRlckNvbmRpdGlvbnMucHVzaCgnYy5pc0FjdGl2ZSA9PSBAaXNBY3RpdmUnKTtcbiAgICBiaW5kVmFycy5pc0FjdGl2ZSA9IGlzQWN0aXZlO1xuICB9XG5cbiAgY29uc3QgZmlsdGVyQ2xhdXNlID0gZmlsdGVyQ29uZGl0aW9ucy5sZW5ndGggPiAwID8gYEZJTFRFUiAke2ZpbHRlckNvbmRpdGlvbnMuam9pbignICYmICcpfWAgOiAnJztcblxuICBjb25zdCBhcWxRdWVyeSA9IGBcbiAgICBGT1IgYyBJTiBjb250ZW50XG4gICAgJHtmaWx0ZXJDbGF1c2V9XG4gICAgU09SVCBjLmtleSwgYy5sb2NhbGVcbiAgICBSRVRVUk4gY1xuICBgO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY29udGVudExpc3QgPSBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpXG4gICAgICAucXVlcnkoYXFsUXVlcnksIGJpbmRWYXJzKVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG5cbiAgICByZXR1cm4gKGNvbnRlbnRMaXN0IGFzIENvbnRlbnRUeXBlW10pLm1hcCgoY29udGVudCkgPT4gcGFyc2VDb250ZW50RnJvbURiKGNvbnRlbnQpKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsY0FBQUEsRUFBWSxlQUFBQyxNQUFrQixlQUN0QyxPQUFRLE9BQUFDLE1BQVUsV0FHbEIsT0FBUSxzQkFBQUMsRUFBb0IscUJBQUFDLE1BQXdCLDZCQUNwRCxPQUFRLFVBQUFDLE1BQWEsWUFDckIsT0FBUSxjQUFBQyxNQUFpQix1QkFDekIsT0FBUSxZQUFBQyxNQUFlLDBCQUN2QixPQUFRLFNBQUFDLE1BQVkseUJBQ3BCLE9BQVEsaUJBQUFDLE1BQW9CLDJCQUM1QixPQUFRLG1CQUFBQyxFQUFpQixvQkFBQUMsTUFBdUIsdUJBS2hELE1BQU1DLEVBQXdCLFVBRWpCQyxFQUFzQixDQUFDQyxFQUEwQixDQUFDLElBQU0sQ0FDbkUsS0FBTSxDQUNKLFNBQUFDLEVBQ0EsU0FBQUMsRUFBVyxHQUNYLElBQUFDLEVBQ0EsT0FBQUMsQ0FDRixFQUFJSixFQUVKLE1BQU8sQ0FDTCxTQUFVQyxFQUFXZCxFQUFZYyxFQUFVLEdBQUcsRUFBSSxPQUNsRCxT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LEVBQUssT0FBQUMsQ0FBTSxFQUFJTCxFQUFvQkMsQ0FBTyxFQUUvRHFDLEVBQTZCLENBQUMsRUFDOUJDLEVBQWdDLENBQUMsRUFFcENuQyxJQUNEa0MsRUFBaUIsS0FBSyxlQUFlLEVBQ3JDQyxFQUFTLElBQU1uQyxHQUdkQyxJQUNEaUMsRUFBaUIsS0FBSyxxQkFBcUIsRUFDM0NDLEVBQVMsT0FBU2xDLEdBR2pCSCxJQUNEb0MsRUFBaUIsS0FBSyx5QkFBeUIsRUFDL0NDLEVBQVMsU0FBV3JDLEdBR25CQyxJQUFhLFNBQ2RtQyxFQUFpQixLQUFLLHlCQUF5QixFQUMvQ0MsRUFBUyxTQUFXcEMsR0FLdEIsTUFBTXFDLEVBQVc7QUFBQTtBQUFBLE1BRklGLEVBQWlCLE9BQVMsRUFBSSxVQUFVQSxFQUFpQixLQUFLLE1BQU0sQ0FBQyxHQUFLLEVBSS9FO0FBQUE7QUFBQTtBQUFBLElBS2hCLEdBQUksQ0FVRixPQVRvQixNQUFNM0MsRUFBTWMsQ0FBWSxFQUN6QyxNQUFNK0IsRUFBVUQsQ0FBUSxFQUN4QixLQUFNekIsR0FBV0EsRUFBTyxJQUFJLENBQUMsRUFDN0IsTUFBT0MsR0FBaUJyQixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVQsRUFDVixNQUFPTixFQUFXLGNBQ3BCLEVBQUdzQixFQUFPUixDQUFPLENBQUMsR0FFa0IsSUFBS00sR0FBWXZCLEVBQW1CdUIsQ0FBTyxDQUFDLENBQ3BGLE9BQVFFLEVBQU8sQ0FDYixNQUFNQSxDQUNSLENBQ0YiLAogICJuYW1lcyI6IFsiY3JlYXRlSGFzaCIsICJwYXJzZVN0cmluZyIsICJhcWwiLCAicGFyc2VDb250ZW50RnJvbURiIiwgInBhcnNlQ29udGVudElucHV0IiwgIkNvbmZpZyIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgInVzZURiIiwgInRyYW5zbGF0ZVRleHQiLCAiZXh0cmFjdExhbmd1YWdlIiwgImlzUmVnaW9uYWxMb2NhbGUiLCAiZXZlbnRDYXRlZ29yeSIsICJwYXJzZUNvbnRlbnRPcHRpb25zIiwgIm9wdGlvbnMiLCAiY2F0ZWdvcnkiLCAiaXNBY3RpdmUiLCAia2V5IiwgImxvY2FsZSIsICJnZXRDb250ZW50IiwgImNvbnRleHQiLCAiYWN0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJmb3JtYXRLZXkiLCAiZm9ybWF0TG9jYWxlIiwgImFxbFFyeSIsICJjb250ZW50IiwgImN1cnNvciIsICJlcnJvciIsICJnZXRDb250ZW50V2l0aEZhbGxiYWNrIiwgImZhbGxiYWNrQ29udGVudCIsICJhcHBMb2NhbGUiLCAibGFuZ3VhZ2UiLCAiYWRkQ29udGVudCIsICJzYXZlRXJyb3IiLCAic291cmNlQ29udGVudCIsICJzb3VyY2VUZXh0IiwgImFwcExhbmd1YWdlIiwgInRyYW5zbGF0ZWRUZXh0IiwgImNvbnRlbnRJbnB1dCIsICJzZXNzaW9uIiwgIm5vdyIsICJwYXJzZWRDb250ZW50IiwgImRlc2NyaXB0aW9uIiwgImNvbnRlbnRJZCIsICJpbnNlcnQiLCAic2F2ZWRDb250ZW50IiwgInVwZGF0ZUNvbnRlbnQiLCAidXBkYXRlIiwgInVwZGF0ZWRDb250ZW50IiwgInNlYXJjaENvbnRlbnQiLCAiZmlsdGVyQ29uZGl0aW9ucyIsICJiaW5kVmFycyIsICJhcWxRdWVyeSJdCn0K