@nlabs/reaktor 0.9.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/.env +1 -0
  2. package/.env.example +1 -0
  3. package/DATABASE_I18N_GUIDE.md +434 -0
  4. package/README.md +9 -0
  5. package/TEST_UTILITIES_GUIDE.md +360 -0
  6. package/coverage/index.html +61 -46
  7. package/dist/actions/apps.js +242 -0
  8. package/dist/actions/connections.js +90 -0
  9. package/dist/actions/conversations.js +350 -0
  10. package/dist/actions/dynamodb.js +150 -0
  11. package/dist/actions/email.js +152 -0
  12. package/dist/actions/files.js +283 -0
  13. package/dist/actions/groups.js +292 -0
  14. package/dist/actions/images.js +735 -0
  15. package/dist/actions/index.js +66 -0
  16. package/dist/actions/ios.js +164 -0
  17. package/dist/actions/locations.js +122 -0
  18. package/dist/actions/messages.js +208 -0
  19. package/dist/actions/notifications.js +59 -0
  20. package/dist/actions/payments.js +497 -0
  21. package/dist/actions/personas.js +110 -0
  22. package/dist/actions/posts.js +595 -0
  23. package/dist/actions/reactions.js +322 -0
  24. package/dist/actions/s3.js +133 -0
  25. package/dist/actions/search.js +90 -0
  26. package/dist/actions/sms.js +108 -0
  27. package/dist/actions/statistics.js +62 -0
  28. package/dist/actions/subscription.js +220 -0
  29. package/dist/actions/tags.js +292 -0
  30. package/dist/actions/users.js +784 -0
  31. package/dist/actions/websockets.js +174 -0
  32. package/dist/adapters/arangoAdapter.js +46 -0
  33. package/dist/adapters/fileAdapter.js +76 -0
  34. package/dist/adapters/imageAdapter.js +40 -0
  35. package/dist/adapters/messageAdapter.js +49 -0
  36. package/dist/adapters/postAdapter.js +70 -0
  37. package/dist/adapters/reaktorAdapter.js +44 -0
  38. package/dist/adapters/tagAdapter.js +50 -0
  39. package/dist/adapters/userAdapter.js +115 -0
  40. package/dist/config.js +125 -0
  41. package/dist/index.js +66 -0
  42. package/dist/lambdas/actions/websockets.js +132 -0
  43. package/dist/lambdas/authorizer.js +67 -0
  44. package/dist/lambdas/connection.js +91 -0
  45. package/dist/lambdas/utils/message.js +42 -0
  46. package/dist/lambdas/utils/websocket.js +105 -0
  47. package/dist/mocks/conversation.js +35 -0
  48. package/dist/mocks/file.js +38 -0
  49. package/dist/mocks/group.js +47 -0
  50. package/dist/mocks/image.js +44 -0
  51. package/dist/mocks/nlabs.png +0 -0
  52. package/dist/mocks/post.js +55 -0
  53. package/dist/mocks/tag.js +37 -0
  54. package/dist/mocks/user.js +88 -0
  55. package/dist/mutations/index.js +26 -0
  56. package/dist/mutations/locations.js +44 -0
  57. package/dist/mutations/messages.js +86 -0
  58. package/dist/mutations/personas.js +100 -0
  59. package/dist/mutations/posts.js +53 -0
  60. package/dist/mutations/reactions.js +51 -0
  61. package/dist/mutations/statistics.js +39 -0
  62. package/dist/mutations/subscriptions.js +56 -0
  63. package/dist/mutations/tags.js +120 -0
  64. package/dist/mutations/users.js +116 -0
  65. package/dist/objectTypes/app.js +173 -0
  66. package/dist/objectTypes/bankAccount.js +76 -0
  67. package/dist/objectTypes/connection.js +48 -0
  68. package/dist/objectTypes/conversation.js +77 -0
  69. package/dist/objectTypes/creditCard.js +86 -0
  70. package/dist/objectTypes/document.js +46 -0
  71. package/dist/objectTypes/error.js +46 -0
  72. package/dist/objectTypes/external.js +74 -0
  73. package/dist/objectTypes/file.js +100 -0
  74. package/dist/objectTypes/filter.js +43 -0
  75. package/dist/objectTypes/group.js +123 -0
  76. package/dist/objectTypes/iapSubscription.js +40 -0
  77. package/dist/objectTypes/image.js +129 -0
  78. package/dist/objectTypes/index.js +68 -0
  79. package/dist/objectTypes/location.js +109 -0
  80. package/dist/objectTypes/message.js +96 -0
  81. package/dist/objectTypes/passcode.js +42 -0
  82. package/dist/objectTypes/persona.js +87 -0
  83. package/dist/objectTypes/plan.js +95 -0
  84. package/dist/objectTypes/post.js +125 -0
  85. package/dist/objectTypes/reaction.js +61 -0
  86. package/dist/objectTypes/relation.js +49 -0
  87. package/dist/objectTypes/search.js +72 -0
  88. package/dist/objectTypes/statistics.js +39 -0
  89. package/dist/objectTypes/subscription.js +117 -0
  90. package/dist/objectTypes/tag.js +65 -0
  91. package/dist/objectTypes/user.js +144 -0
  92. package/dist/queries/index.js +33 -0
  93. package/dist/queries/locations.js +45 -0
  94. package/dist/queries/messages.js +52 -0
  95. package/dist/queries/posts.js +154 -0
  96. package/dist/queries/reactions.js +56 -0
  97. package/dist/queries/statistics.js +39 -0
  98. package/dist/queries/subscriptions.js +44 -0
  99. package/dist/queries/tags.js +75 -0
  100. package/dist/queries/users.js +64 -0
  101. package/dist/templates/email/layout.js +302 -0
  102. package/dist/templates/email/passwordForgot.js +38 -0
  103. package/dist/templates/email/passwordRecovery.js +35 -0
  104. package/dist/templates/email/verifyEmail.js +38 -0
  105. package/dist/templates/email/welcome.js +38 -0
  106. package/dist/templates/sms/passwordForgot.js +24 -0
  107. package/dist/templates/sms/passwordRecovery.js +24 -0
  108. package/dist/templates/sms/verifyEmail.js +24 -0
  109. package/dist/templates/sms/verifyPhone.js +24 -0
  110. package/dist/templates/sms/welcome.js +24 -0
  111. package/dist/types/apps.js +32 -0
  112. package/{lib → dist}/types/arangodb.js +1 -1
  113. package/{lib → dist}/types/auth.js +1 -1
  114. package/{lib → dist}/types/connections.js +1 -1
  115. package/dist/types/conversations.js +16 -0
  116. package/{lib → dist}/types/email.js +1 -1
  117. package/dist/types/files.js +16 -0
  118. package/dist/types/google.js +16 -0
  119. package/{lib → dist}/types/groups.js +1 -1
  120. package/dist/types/images.js +16 -0
  121. package/dist/types/index.js +60 -0
  122. package/{lib → dist}/types/locations.js +1 -1
  123. package/{lib → dist}/types/messages.js +1 -1
  124. package/{lib → dist}/types/notifications.js +1 -1
  125. package/dist/types/payments.js +16 -0
  126. package/dist/types/personas.js +16 -0
  127. package/dist/types/posts.js +16 -0
  128. package/{lib → dist}/types/tags.js +1 -1
  129. package/dist/types/users.js +16 -0
  130. package/dist/types/websockets.js +16 -0
  131. package/dist/utils/adapterUtils.js +45 -0
  132. package/dist/utils/analyticsUtils.js +72 -0
  133. package/dist/utils/arangodbUtils.js +165 -0
  134. package/dist/utils/auth.js +57 -0
  135. package/dist/utils/index.js +30 -0
  136. package/{lib → dist}/utils/session.js +10 -7
  137. package/index.js +1 -1
  138. package/jest.config.js +17 -0
  139. package/jest.setup.js +36 -0
  140. package/lex.config.cjs +13 -0
  141. package/lib/actions/apps.js +17 -249
  142. package/lib/actions/connections.js +7 -0
  143. package/lib/actions/content.js +17 -0
  144. package/lib/actions/conversations.js +19 -325
  145. package/lib/actions/dynamodb.js +2 -150
  146. package/lib/actions/email.js +2 -152
  147. package/lib/actions/files.js +5 -287
  148. package/lib/actions/groups.js +23 -263
  149. package/lib/actions/images.js +31 -646
  150. package/lib/actions/index.js +2 -62
  151. package/lib/actions/ios.js +9 -162
  152. package/lib/actions/locations.js +7 -110
  153. package/lib/actions/messages.js +21 -193
  154. package/lib/actions/notifications.js +2 -59
  155. package/lib/actions/payments.js +11 -461
  156. package/lib/actions/posts.js +77 -515
  157. package/lib/actions/profiles.js +8 -0
  158. package/lib/actions/reactions.js +25 -312
  159. package/lib/actions/s3.js +2 -133
  160. package/lib/actions/search.js +5 -90
  161. package/lib/actions/sms.js +2 -106
  162. package/lib/actions/statistics.js +6 -60
  163. package/lib/actions/subscriptions.js +12 -0
  164. package/lib/actions/tags.js +19 -262
  165. package/lib/actions/users.js +67 -537
  166. package/lib/actions/websockets.js +16 -158
  167. package/lib/adapters/arangoAdapter.js +2 -46
  168. package/lib/adapters/contentAdapter.js +2 -0
  169. package/lib/adapters/fileAdapter.js +2 -76
  170. package/lib/adapters/imageAdapter.js +2 -0
  171. package/lib/adapters/messageAdapter.js +2 -0
  172. package/lib/adapters/postAdapter.js +2 -70
  173. package/lib/adapters/reaktorAdapter.js +2 -44
  174. package/lib/adapters/tagAdapter.js +2 -50
  175. package/lib/adapters/userAdapter.js +2 -110
  176. package/lib/config.js +2 -125
  177. package/lib/handlers/graphqlHandler.js +2 -0
  178. package/lib/index.js +2 -30
  179. package/lib/lambdas/actions/websockets.js +14 -112
  180. package/lib/lambdas/authorizer.js +2 -67
  181. package/lib/lambdas/connection.js +2 -92
  182. package/lib/lambdas/utils/message.js +2 -42
  183. package/lib/lambdas/utils/websocket.js +2 -105
  184. package/lib/mocks/conversation.js +2 -35
  185. package/lib/mocks/file.js +2 -38
  186. package/lib/mocks/group.js +2 -47
  187. package/lib/mocks/image.js +2 -43
  188. package/lib/mocks/post.js +2 -55
  189. package/lib/mocks/tag.js +2 -37
  190. package/lib/mocks/user.js +2 -88
  191. package/lib/mutations/index.js +2 -0
  192. package/lib/mutations/locations.integration.js +2 -0
  193. package/lib/mutations/locations.js +2 -0
  194. package/lib/mutations/messages.integration.js +2 -0
  195. package/lib/mutations/messages.js +2 -0
  196. package/lib/mutations/posts.integration.js +2 -0
  197. package/lib/mutations/posts.js +2 -0
  198. package/lib/mutations/profiles.integration.js +2 -0
  199. package/lib/mutations/profiles.js +2 -0
  200. package/lib/mutations/reactions.integration.js +2 -0
  201. package/lib/mutations/reactions.js +2 -0
  202. package/lib/mutations/statistics.integration.js +2 -0
  203. package/lib/mutations/statistics.js +2 -0
  204. package/lib/mutations/subscriptions.integration.js +2 -0
  205. package/lib/mutations/subscriptions.js +2 -0
  206. package/lib/mutations/tags.integration.js +2 -0
  207. package/lib/mutations/tags.js +2 -0
  208. package/lib/mutations/users.integration.js +2 -0
  209. package/lib/mutations/users.js +2 -0
  210. package/lib/objectTypes/app.js +2 -0
  211. package/lib/objectTypes/bankAccount.js +2 -0
  212. package/lib/objectTypes/connection.js +2 -0
  213. package/lib/objectTypes/conversation.js +2 -0
  214. package/lib/objectTypes/creditCard.js +2 -0
  215. package/lib/objectTypes/document.js +2 -0
  216. package/lib/objectTypes/error.js +2 -0
  217. package/lib/objectTypes/external.js +2 -0
  218. package/lib/objectTypes/file.js +2 -0
  219. package/lib/objectTypes/filter.js +2 -0
  220. package/lib/objectTypes/group.js +2 -0
  221. package/lib/objectTypes/iapSubscription.js +2 -0
  222. package/lib/objectTypes/image.js +2 -0
  223. package/lib/objectTypes/index.js +2 -0
  224. package/lib/objectTypes/location.js +2 -0
  225. package/lib/objectTypes/message.js +2 -0
  226. package/lib/objectTypes/passcode.js +2 -0
  227. package/lib/objectTypes/plan.js +2 -0
  228. package/lib/objectTypes/post.js +2 -0
  229. package/lib/objectTypes/profile.js +2 -0
  230. package/lib/objectTypes/reaction.js +2 -0
  231. package/lib/objectTypes/relation.js +2 -0
  232. package/lib/objectTypes/search.js +2 -0
  233. package/lib/objectTypes/statistics.js +2 -0
  234. package/lib/objectTypes/subscription.js +2 -0
  235. package/lib/objectTypes/tag.js +2 -0
  236. package/lib/objectTypes/user.js +2 -0
  237. package/lib/queries/index.js +2 -0
  238. package/lib/queries/locations.integration.js +2 -0
  239. package/lib/queries/locations.js +2 -0
  240. package/lib/queries/messages.integration.js +2 -0
  241. package/lib/queries/messages.js +2 -0
  242. package/lib/queries/posts.integration.js +2 -0
  243. package/lib/queries/posts.js +2 -0
  244. package/lib/queries/reactions.integration.js +2 -0
  245. package/lib/queries/reactions.js +2 -0
  246. package/lib/queries/statistics.js +2 -0
  247. package/lib/queries/subscriptions.js +2 -0
  248. package/lib/queries/tags.integration.js +2 -0
  249. package/lib/queries/tags.js +2 -0
  250. package/lib/queries/users.integration.js +2 -0
  251. package/lib/queries/users.js +2 -0
  252. package/lib/templates/email/layout.js +3 -25
  253. package/lib/templates/email/passwordForgot.js +3 -25
  254. package/lib/templates/email/passwordRecovery.js +3 -25
  255. package/lib/templates/email/verifyEmail.js +3 -25
  256. package/lib/templates/email/welcome.js +3 -25
  257. package/lib/templates/sms/passwordForgot.js +2 -24
  258. package/lib/templates/sms/passwordRecovery.js +2 -24
  259. package/lib/templates/sms/verifyEmail.js +2 -24
  260. package/lib/templates/sms/verifyPhone.js +2 -24
  261. package/lib/templates/sms/welcome.js +2 -24
  262. package/lib/types/apps.types.js +2 -0
  263. package/lib/types/arangodb.types.js +1 -0
  264. package/lib/types/auth.types.js +1 -0
  265. package/lib/types/connections.types.js +1 -0
  266. package/lib/types/content.types.js +1 -0
  267. package/lib/types/conversations.types.js +1 -0
  268. package/lib/types/email.types.js +1 -0
  269. package/lib/types/error.types.js +2 -0
  270. package/lib/types/files.types.js +1 -0
  271. package/lib/types/google.types.js +1 -0
  272. package/lib/types/groups.types.js +1 -0
  273. package/lib/types/images.types.js +1 -0
  274. package/lib/types/index.js +2 -56
  275. package/lib/types/locations.types.js +1 -0
  276. package/lib/types/messages.types.js +1 -0
  277. package/lib/types/notifications.types.js +1 -0
  278. package/lib/types/payments.types.js +1 -0
  279. package/lib/types/posts.types.js +1 -0
  280. package/lib/types/profiles.types.js +1 -0
  281. package/lib/types/statistics.types.js +1 -0
  282. package/lib/types/tags.types.js +1 -0
  283. package/lib/types/users.types.js +1 -0
  284. package/lib/types/websockets.types.js +1 -0
  285. package/lib/utils/adapterUtils.js +2 -45
  286. package/lib/utils/analyticsUtils.js +2 -72
  287. package/lib/utils/arangodbUtils.js +5 -142
  288. package/lib/utils/authUtils.js +2 -0
  289. package/lib/utils/contextUtils.js +2 -0
  290. package/lib/utils/dbI18n.example.js +6 -0
  291. package/lib/utils/dbI18n.js +2 -0
  292. package/lib/utils/googleTranslate.js +2 -0
  293. package/lib/utils/graphqlUtils.js +2 -0
  294. package/lib/utils/index.js +2 -30
  295. package/lib/utils/languageDetection.js +2 -0
  296. package/lib/utils/localeUtils.example.js +2 -0
  297. package/lib/utils/localeUtils.js +2 -0
  298. package/lib/utils/middlewareUtils.js +2 -0
  299. package/lib/utils/sessionUtils.js +2 -0
  300. package/lib/utils/stripeUtils.js +2 -0
  301. package/lib/utils/templateUtils.js +2 -0
  302. package/lib/utils/testUtils.js +2 -0
  303. package/lib/utils/translationQueue.example.js +2 -0
  304. package/lib/utils/translationQueue.js +2 -0
  305. package/package.json +41 -37
  306. package/.eslintrc +0 -10
  307. package/.prettierrc.js +0 -4
  308. package/lib/actions/apps.d.ts +0 -25
  309. package/lib/actions/conversations.d.ts +0 -14
  310. package/lib/actions/dynamodb.d.ts +0 -8
  311. package/lib/actions/email.d.ts +0 -5
  312. package/lib/actions/files.d.ts +0 -19
  313. package/lib/actions/groups.d.ts +0 -14
  314. package/lib/actions/images.d.ts +0 -26
  315. package/lib/actions/index.d.ts +0 -21
  316. package/lib/actions/ios.d.ts +0 -7
  317. package/lib/actions/locations.d.ts +0 -5
  318. package/lib/actions/messages.d.ts +0 -13
  319. package/lib/actions/notifications.d.ts +0 -5
  320. package/lib/actions/payments.d.ts +0 -10
  321. package/lib/actions/posts.d.ts +0 -19
  322. package/lib/actions/reactions.d.ts +0 -30
  323. package/lib/actions/s3.d.ts +0 -7
  324. package/lib/actions/search.d.ts +0 -3
  325. package/lib/actions/sms.d.ts +0 -3
  326. package/lib/actions/statistics.d.ts +0 -3
  327. package/lib/actions/subscription.d.ts +0 -7
  328. package/lib/actions/subscription.js +0 -218
  329. package/lib/actions/tags.d.ts +0 -29
  330. package/lib/actions/users.d.ts +0 -47
  331. package/lib/actions/websockets.d.ts +0 -19
  332. package/lib/adapters/arangoAdapter.d.ts +0 -2
  333. package/lib/adapters/fileAdapter.d.ts +0 -3
  334. package/lib/adapters/postAdapter.d.ts +0 -2
  335. package/lib/adapters/reaktorAdapter.d.ts +0 -6
  336. package/lib/adapters/tagAdapter.d.ts +0 -2
  337. package/lib/adapters/userAdapter.d.ts +0 -2
  338. package/lib/config.d.ts +0 -20
  339. package/lib/index.d.ts +0 -5
  340. package/lib/lambdas/actions/websockets.d.ts +0 -6
  341. package/lib/lambdas/authorizer.d.ts +0 -20
  342. package/lib/lambdas/connection.d.ts +0 -12
  343. package/lib/lambdas/utils/message.d.ts +0 -1
  344. package/lib/lambdas/utils/websocket.d.ts +0 -7
  345. package/lib/mocks/conversation.d.ts +0 -8
  346. package/lib/mocks/file.d.ts +0 -11
  347. package/lib/mocks/group.d.ts +0 -17
  348. package/lib/mocks/image.d.ts +0 -3
  349. package/lib/mocks/post.d.ts +0 -38
  350. package/lib/mocks/tag.d.ts +0 -2
  351. package/lib/mocks/user.d.ts +0 -4
  352. package/lib/templates/email/layout.d.ts +0 -2
  353. package/lib/templates/email/passwordForgot.d.ts +0 -2
  354. package/lib/templates/email/passwordRecovery.d.ts +0 -2
  355. package/lib/templates/email/verifyEmail.d.ts +0 -2
  356. package/lib/templates/email/welcome.d.ts +0 -2
  357. package/lib/templates/sms/passwordForgot.d.ts +0 -2
  358. package/lib/templates/sms/passwordRecovery.d.ts +0 -2
  359. package/lib/templates/sms/verifyEmail.d.ts +0 -2
  360. package/lib/templates/sms/verifyPhone.d.ts +0 -2
  361. package/lib/templates/sms/welcome.d.ts +0 -2
  362. package/lib/types/apps.d.ts +0 -46
  363. package/lib/types/apps.js +0 -32
  364. package/lib/types/arangodb.d.ts +0 -30
  365. package/lib/types/auth.d.ts +0 -7
  366. package/lib/types/connections.d.ts +0 -7
  367. package/lib/types/conversations.d.ts +0 -29
  368. package/lib/types/conversations.js +0 -16
  369. package/lib/types/email.d.ts +0 -13
  370. package/lib/types/error.d.ts +0 -20
  371. package/lib/types/files.d.ts +0 -26
  372. package/lib/types/files.js +0 -16
  373. package/lib/types/google.d.ts +0 -29
  374. package/lib/types/google.js +0 -16
  375. package/lib/types/groups.d.ts +0 -21
  376. package/lib/types/images.d.ts +0 -51
  377. package/lib/types/images.js +0 -16
  378. package/lib/types/index.d.ts +0 -18
  379. package/lib/types/locations.d.ts +0 -20
  380. package/lib/types/messages.d.ts +0 -16
  381. package/lib/types/notifications.d.ts +0 -17
  382. package/lib/types/payments.d.ts +0 -112
  383. package/lib/types/payments.js +0 -16
  384. package/lib/types/posts.d.ts +0 -31
  385. package/lib/types/posts.js +0 -16
  386. package/lib/types/statistics.d.ts +0 -3
  387. package/lib/types/tags.d.ts +0 -10
  388. package/lib/types/users.d.ts +0 -76
  389. package/lib/types/users.js +0 -16
  390. package/lib/types/websocket.d.ts +0 -13
  391. package/lib/types/websocket.js +0 -16
  392. package/lib/utils/adapterUtils.d.ts +0 -1
  393. package/lib/utils/analyticsUtils.d.ts +0 -21
  394. package/lib/utils/arangodbUtils.d.ts +0 -65
  395. package/lib/utils/auth.d.ts +0 -20
  396. package/lib/utils/auth.js +0 -50
  397. package/lib/utils/index.d.ts +0 -5
  398. package/lib/utils/session.d.ts +0 -16
  399. /package/{lib → dist}/types/error.js +0 -0
  400. /package/{lib → dist}/types/statistics.js +0 -0
@@ -1,218 +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 subscription_exports = {};
29
- __export(subscription_exports, {
30
- addPlan: () => addPlan,
31
- addSubscription: () => addSubscription,
32
- deleteSubscription: () => deleteSubscription,
33
- getPlanList: () => getPlanList,
34
- getSubscription: () => getSubscription
35
- });
36
- module.exports = __toCommonJS(subscription_exports);
37
- var import_utils = require("@nlabs/utils");
38
- var import_arangojs = require("arangojs");
39
- var import_luxon = require("luxon");
40
- var import_stripe = __toESM(require("stripe"));
41
- var import_config = require("../config");
42
- var import_users = require("./users");
43
- var import_error = require("../types/error");
44
- var import_arangodbUtils = require("../utils/arangodbUtils");
45
- var import_analyticsUtils = require("../utils/analyticsUtils");
46
- var import_utils2 = require("../utils");
47
- const eventCategory = "subscription";
48
- const apiVersion = "2020-03-02";
49
- const getPlanList = (context, from = 0, to = 30) => {
50
- const action = "getList";
51
- const { database } = context;
52
- const limit = (0, import_arangodbUtils.getLimit)(from, to);
53
- const aqlQry = `FOR p IN plans
54
- ${limit.aql}
55
- SORT p.amount
56
- RETURN p`;
57
- return database.query(aqlQry).then((cursor) => cursor.all()).then((list = []) => list).catch((error) => (0, import_analyticsUtils.logError)({
58
- action,
59
- category: eventCategory,
60
- label: import_error.ErrorTypes.DATABASE_ERROR
61
- }, error, {}).then(() => null).catch((error2) => Promise.reject(error2)));
62
- };
63
- const getSubscription = (context) => {
64
- const action = "getItem";
65
- const { database, session: { userId: sessionId } } = context;
66
- const aqlQry = `FOR s IN subscriptions
67
- FILTER s.userId == ${sessionId} && s.cancelled > 0
68
- LET plan = FIRST(
69
- FOR p IN plans
70
- FILTER p._key == s.planId
71
- )
72
- LIMIT 1
73
- RETURN MERGE(s, {plan: plan})`;
74
- return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription = {}) => subscription).catch((error) => (0, import_analyticsUtils.logError)({
75
- action,
76
- category: eventCategory,
77
- label: import_error.ErrorTypes.DATABASE_ERROR
78
- }, error, {}).then(() => null).catch((error2) => Promise.reject(error2)));
79
- };
80
- const addPlan = (context, item) => {
81
- const action = "addPlan";
82
- const { database, session } = context;
83
- const isAdmin = (0, import_utils2.isAdminUser)(session);
84
- if (!isAdmin) {
85
- return (0, import_analyticsUtils.logException)({
86
- action,
87
- category: eventCategory,
88
- label: "unauthorized",
89
- value: import_error.ErrorTypes.INVALID_SESSION
90
- }, context).then(() => null);
91
- }
92
- const now = Date.now();
93
- const formatId = (0, import_utils.parseId)(item.id);
94
- const planId = formatId === "" ? (0, import_utils.createHash)(`subscription-${session.userId}`) : formatId;
95
- const { amount, currency = "USD", description, interval, intervalCount, name } = item;
96
- const formatAmount = (0, import_utils.parseNum)(amount);
97
- const formatInterval = (0, import_utils.parseChar)(interval, 5).toLowerCase();
98
- const formatIntervalCnt = (0, import_utils.parseNum)(intervalCount, 5);
99
- const formatName = (0, import_utils.parseVarChar)(name, 32);
100
- const formatDesc = (0, import_utils.parseVarChar)(description, 32);
101
- const insert = {
102
- _key: planId,
103
- added: now,
104
- amount: formatAmount,
105
- currency,
106
- description: formatDesc,
107
- interval: formatInterval,
108
- intervalCount: formatIntervalCnt,
109
- modified: now,
110
- name: formatName
111
- };
112
- const aqlQry = import_arangojs.aql`INSERT ${insert} IN plans RETURN NEW`;
113
- return database.query(aqlQry).then((cursor) => cursor.next()).then((plan) => {
114
- const stripeClient = new import_stripe.default(import_config.Config.get("stripe.token"), { apiVersion, typescript: true });
115
- const stripePlan = {
116
- amount: formatAmount * 100,
117
- currency,
118
- id: planId,
119
- interval: formatInterval,
120
- interval_count: formatIntervalCnt,
121
- metadata: {},
122
- name: formatName,
123
- statement_descriptor: formatDesc
124
- };
125
- return stripeClient.plans.create(stripePlan).then(() => plan);
126
- }).catch((error) => (0, import_analyticsUtils.logError)({
127
- action,
128
- category: eventCategory,
129
- label: import_error.ErrorTypes.DATABASE_ERROR
130
- }, error, {}).then(() => null).catch((error2) => Promise.reject(error2)));
131
- };
132
- const addSubscription = (context, item) => {
133
- const action = "addSubscription";
134
- const { database, session: { userId: sessionId, userAccess } } = context;
135
- const isAdmin = userAccess > 2;
136
- if (!isAdmin) {
137
- return (0, import_analyticsUtils.logException)({
138
- action,
139
- category: eventCategory,
140
- label: "unauthorized",
141
- value: "invalid_session"
142
- }, context).then(() => null);
143
- }
144
- const now = Date.now();
145
- const formatId = (0, import_utils.parseId)(item.id);
146
- const subscriptionId = formatId === "" ? (0, import_utils.createHash)(`subscription-${sessionId}`) : formatId;
147
- const { planId, trialEnd, trialPeriod } = item;
148
- const formatPlanId = (0, import_utils.parseId)(planId);
149
- const formatTrialPeriod = 0;
150
- let formatTrialEnd = trialEnd || Date.now();
151
- if (formatTrialPeriod) {
152
- formatTrialEnd = import_luxon.DateTime.local().plus({ days: trialPeriod }).toMillis();
153
- }
154
- return (0, import_users.getUser)(context, { userId: sessionId }).then((user) => {
155
- const insert = {
156
- _key: subscriptionId,
157
- added: now,
158
- cancelDate: 0,
159
- modified: now,
160
- planId: formatPlanId,
161
- trialEnd: formatTrialEnd,
162
- userId: sessionId
163
- };
164
- const aqlQry = import_arangojs.aql`INSERT ${insert} IN plans RETURN NEW`;
165
- return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription = {}) => {
166
- const stripeClient = new import_stripe.default(import_config.Config.get("stripe.token"), { apiVersion, typescript: true });
167
- return stripeClient.subscriptions.create({
168
- customer: user.stripeCustomerId,
169
- items: [
170
- {
171
- plan: formatPlanId
172
- }
173
- ],
174
- metadata: {
175
- userId: sessionId
176
- },
177
- trial_end: formatTrialEnd
178
- }).then(() => subscription);
179
- }).catch((error) => (0, import_analyticsUtils.logError)({
180
- action,
181
- category: eventCategory,
182
- label: import_error.ErrorTypes.DATABASE_ERROR
183
- }, error, {}).then(() => null).catch((error2) => Promise.reject(error2)));
184
- });
185
- };
186
- const deleteSubscription = (context) => {
187
- const action = "deleteSubscription";
188
- const { database } = context;
189
- const now = Date.now();
190
- return getSubscription(context).then((subscription) => {
191
- const stripeClient = new import_stripe.default(import_config.Config.get("stripe.token"), { apiVersion, typescript: true });
192
- return stripeClient.subscriptions.cancel(subscription.transactionId).then(({ canceled_at: cancelDate }) => {
193
- if (cancelDate) {
194
- const update = {
195
- cancelDate,
196
- modified: now,
197
- planId: ""
198
- };
199
- const aqlQry = import_arangojs.aql`UPDATE s WITH ${update} IN subscriptions`;
200
- return database.query(aqlQry).then(() => true).catch((error) => (0, import_analyticsUtils.logError)({
201
- action,
202
- category: eventCategory,
203
- label: import_error.ErrorTypes.DATABASE_ERROR
204
- }, error, {}).then(() => null).catch((error2) => Promise.reject(error2)));
205
- }
206
- return false;
207
- });
208
- });
209
- };
210
- // Annotate the CommonJS export names for ESM import in node:
211
- 0 && (module.exports = {
212
- addPlan,
213
- addSubscription,
214
- deleteSubscription,
215
- getPlanList,
216
- getSubscription
217
- });
218
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3Vic2NyaXB0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2N1cnNvcic7XG5pbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgU3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHR5cGUge0FyYW5nb0RiTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB0eXBlIHtQYXltZW50SW50ZXJ2YWwsIFBheW1lbnRQbGFuLCBQYXltZW50U3Vic2NyaXB0aW9ufSBmcm9tICcuLi90eXBlcy9wYXltZW50cyc7XG5pbXBvcnQge2dldFVzZXJ9IGZyb20gJy4vdXNlcnMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvcic7XG5pbXBvcnQge2dldExpbWl0fSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtpc0FkbWluVXNlcn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc3Vic2NyaXB0aW9uJztcbmNvbnN0IGFwaVZlcnNpb246IGFueSA9ICcyMDIwLTAzLTAyJztcblxuZXhwb3J0IGNvbnN0IGdldFBsYW5MaXN0ID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGZyb206IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IFByb21pc2U8UGF5bWVudFBsYW5bXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgcCBJTiBwbGFuc1xuICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICBTT1JUIHAuYW1vdW50XG4gICAgICBSRVRVUk4gcGA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0ID0gW10pID0+IGxpc3QpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdWJzY3JpcHRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBzIElOIHN1YnNjcmlwdGlvbnNcbiAgICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke3Nlc3Npb25JZH0gJiYgcy5jYW5jZWxsZWQgPiAwXG4gICAgICBMRVQgcGxhbiA9IEZJUlNUKFxuICAgICAgICBGT1IgcCBJTiBwbGFuc1xuICAgICAgICBGSUxURVIgcC5fa2V5ID09IHMucGxhbklkXG4gICAgICApXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gTUVSR0Uocywge3BsYW46IHBsYW59KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uID0ge30pID0+IHN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFBsYW4gPSAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogUGF5bWVudFBsYW4pOiBQcm9taXNlPFBheW1lbnRQbGFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFBsYW4nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24pO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTlxuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBwbGFuSWQ6IHN0cmluZyA9IGZvcm1hdElkID09PSAnJyA/IGNyZWF0ZUhhc2goYHN1YnNjcmlwdGlvbi0ke3Nlc3Npb24udXNlcklkfWApIDogZm9ybWF0SWQ7XG4gIGNvbnN0IHthbW91bnQsIGN1cnJlbmN5ID0gJ1VTRCcsIGRlc2NyaXB0aW9uLCBpbnRlcnZhbCwgaW50ZXJ2YWxDb3VudCwgbmFtZX0gPSBpdGVtO1xuICBjb25zdCBmb3JtYXRBbW91bnQ6IG51bWJlciA9IHBhcnNlTnVtKGFtb3VudCk7XG4gIGNvbnN0IGZvcm1hdEludGVydmFsOiBQYXltZW50SW50ZXJ2YWwgPSBwYXJzZUNoYXIoaW50ZXJ2YWwsIDUpLnRvTG93ZXJDYXNlKCkgYXMgUGF5bWVudEludGVydmFsO1xuICBjb25zdCBmb3JtYXRJbnRlcnZhbENudDogbnVtYmVyID0gcGFyc2VOdW0oaW50ZXJ2YWxDb3VudCwgNSk7XG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlVmFyQ2hhcihuYW1lLCAzMik7XG4gIGNvbnN0IGZvcm1hdERlc2M6IHN0cmluZyA9IHBhcnNlVmFyQ2hhcihkZXNjcmlwdGlvbiwgMzIpO1xuICBjb25zdCBpbnNlcnQ6IFBheW1lbnRQbGFuID0ge1xuICAgIF9rZXk6IHBsYW5JZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGFtb3VudDogZm9ybWF0QW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICAgIGRlc2NyaXB0aW9uOiBmb3JtYXREZXNjLFxuICAgIGludGVydmFsOiBmb3JtYXRJbnRlcnZhbCxcbiAgICBpbnRlcnZhbENvdW50OiBmb3JtYXRJbnRlcnZhbENudCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWU6IGZvcm1hdE5hbWVcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHBsYW46IFBheW1lbnRQbGFuKSA9PiB7XG4gICAgICAvLyBTdHJpcGVcbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IG5ldyBTdHJpcGUoQ29uZmlnLmdldCgnc3RyaXBlLnRva2VuJyksIHthcGlWZXJzaW9uLCB0eXBlc2NyaXB0OiB0cnVlfSk7XG4gICAgICBjb25zdCBzdHJpcGVQbGFuOiBhbnkgPSB7XG4gICAgICAgIGFtb3VudDogZm9ybWF0QW1vdW50ICogMTAwLFxuICAgICAgICBjdXJyZW5jeSxcbiAgICAgICAgaWQ6IHBsYW5JZCxcbiAgICAgICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgICAgICBpbnRlcnZhbF9jb3VudDogZm9ybWF0SW50ZXJ2YWxDbnQsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgICAgIHN0YXRlbWVudF9kZXNjcmlwdG9yOiBmb3JtYXREZXNjXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnBsYW5zXG4gICAgICAgIC5jcmVhdGUoc3RyaXBlUGxhbilcbiAgICAgICAgLnRoZW4oKCkgPT4gcGxhbik7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkLCB1c2VyQWNjZXNzfX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gdXNlckFjY2VzcyA+IDI7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbS5pZCk7XG4gIGNvbnN0IHN1YnNjcmlwdGlvbklkOiBzdHJpbmcgPSBmb3JtYXRJZCA9PT0gJycgPyBjcmVhdGVIYXNoKGBzdWJzY3JpcHRpb24tJHtzZXNzaW9uSWR9YCkgOiBmb3JtYXRJZDtcbiAgY29uc3Qge3BsYW5JZCwgdHJpYWxFbmQsIHRyaWFsUGVyaW9kfSA9IGl0ZW07XG4gIGNvbnN0IGZvcm1hdFBsYW5JZDogc3RyaW5nID0gcGFyc2VJZChwbGFuSWQpO1xuICBjb25zdCBmb3JtYXRUcmlhbFBlcmlvZDogbnVtYmVyID0gMDtcbiAgbGV0IGZvcm1hdFRyaWFsRW5kOiBudW1iZXIgPSB0cmlhbEVuZCB8fCBEYXRlLm5vdygpO1xuXG4gIGlmKGZvcm1hdFRyaWFsUGVyaW9kKSB7XG4gICAgZm9ybWF0VHJpYWxFbmQgPSBEYXRlVGltZS5sb2NhbCgpLnBsdXMoe2RheXM6IHRyaWFsUGVyaW9kfSkudG9NaWxsaXMoKTtcbiAgfVxuXG4gIHJldHVybiBnZXRVc2VyKGNvbnRleHQsIHt1c2VySWQ6IHNlc3Npb25JZH0pXG4gICAgLnRoZW4oKHVzZXIpID0+IHtcbiAgICAgIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgX2tleTogc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgIGNhbmNlbERhdGU6IDAsXG4gICAgICAgIG1vZGlmaWVkOiBub3csXG4gICAgICAgIHBsYW5JZDogZm9ybWF0UGxhbklkLFxuICAgICAgICB0cmlhbEVuZDogZm9ybWF0VHJpYWxFbmQsXG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICB9O1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHt9KSA9PiB7XG4gICAgICAgICAgLy8gU3RyaXBlXG4gICAgICAgICAgY29uc3Qgc3RyaXBlQ2xpZW50ID0gbmV3IFN0cmlwZShDb25maWcuZ2V0KCdzdHJpcGUudG9rZW4nKSwge2FwaVZlcnNpb24sIHR5cGVzY3JpcHQ6IHRydWV9KTtcbiAgICAgICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnN1YnNjcmlwdGlvbnNcbiAgICAgICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgICAgICBjdXN0b21lcjogdXNlci5zdHJpcGVDdXN0b21lcklkLFxuICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBsYW46IGZvcm1hdFBsYW5JZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmlhbF9lbmQ6IGZvcm1hdFRyaWFsRW5kXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICByZXR1cm4gZ2V0U3Vic2NyaXB0aW9uKGNvbnRleHQpXG4gICAgLnRoZW4oKHN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgLy8gU3RyaXBlXG4gICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBuZXcgU3RyaXBlKENvbmZpZy5nZXQoJ3N0cmlwZS50b2tlbicpLCB7YXBpVmVyc2lvbiwgdHlwZXNjcmlwdDogdHJ1ZX0pO1xuICAgICAgcmV0dXJuIHN0cmlwZUNsaWVudC5zdWJzY3JpcHRpb25zXG4gICAgICAgIC5jYW5jZWwoc3Vic2NyaXB0aW9uLnRyYW5zYWN0aW9uSWQpXG4gICAgICAgIC50aGVuKCh7Y2FuY2VsZWRfYXQ6IGNhbmNlbERhdGV9KSA9PiB7XG4gICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNhbmNlbGxlZCBvbiBTdHJpcGUgYmVmb3JlIHVwZGF0aW5nIHRoZSBkYlxuICAgICAgICAgIGlmKGNhbmNlbERhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgICAgY2FuY2VsRGF0ZSxcbiAgICAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgICAgICAgcGxhbklkOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFIHMgV0lUSCAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc2A7XG5cbiAgICAgICAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgICAgICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgICAgICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLG1CQUFxRTtBQUNyRSxzQkFBa0I7QUFHbEIsbUJBQXVCO0FBQ3ZCLG9CQUFtQjtBQUVuQixvQkFBcUI7QUFJckIsbUJBQXNCO0FBQ3RCLG1CQUF5QjtBQUN6QiwyQkFBdUI7QUFDdkIsNEJBQXFDO0FBQ3JDLElBQUFBLGdCQUEwQjtBQUUxQixNQUFNLGdCQUF3QjtBQUM5QixNQUFNLGFBQWtCO0FBRWpCLE1BQU0sY0FBYyxDQUFDLFNBQXFCLE9BQWUsR0FBRyxLQUFhLE9BQStCO0FBQzdHLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFNBQVEsSUFBSTtBQUNuQixRQUFNLFlBQXVCLCtCQUFTLE1BQU0sRUFBRTtBQUM5QyxRQUFNLFNBQWlCO0FBQUEsUUFDakIsTUFBTSxHQUFHO0FBQUE7QUFBQTtBQUlmLFNBQU8sU0FBUyxNQUFNLE1BQU0sRUFDekIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sSUFBSSxDQUFDLEVBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQ3hCLE1BQU0sQ0FBQyxjQUFpQixnQ0FBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPLHdCQUFXO0FBQUEsRUFDcEIsR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxJQUFJLEVBQUUsTUFBTSxDQUFDQyxXQUFVLFFBQVEsT0FBT0EsTUFBSyxDQUFDLENBQUM7QUFDMUU7QUFFTyxNQUFNLGtCQUFrQixDQUFDLFlBQXNEO0FBQ3BGLFFBQU0sU0FBaUI7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QU8sSUFBSSxjQUFjLEdBQUcsRUFBQyxZQUFZLFlBQVksS0FBSSxDQUFDO0FBQzFGLGFBQU8sYUFBYSxjQUNqQixPQUFPO0FBQUEsUUFDTixVQUFVLEtBQUs7QUFBQSxRQUNmLE9BQU87QUFBQSxVQUNMO0FBQUEsWUFDRSxNQUFNO0FBQUEsVUFDUjtBQUFBLFFBQ0Y7QUFBQSxRQUNBLFVBQVU7QUFBQSxVQUNSLFFBQVE7QUFBQSxRQUNWO0FBQUEsUUFDQSxXQUFXO0FBQUEsTUFDYixDQUFDLEVBQ0EsS0FBSyxNQUFNLFlBQVk7QUFBQSxJQUM1QixDQUFDLEVBQ0EsTUFBTSxDQUFDLGNBQWlCLGdDQUFTO0FBQUEsTUFDaEM7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLE9BQU8sd0JBQVc7QUFBQSxJQUNwQixHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLElBQUksRUFBRSxNQUFNLENBQUNELFdBQVUsUUFBUSxPQUFPQSxNQUFLLENBQUMsQ0FBQztBQUFBLEVBQzFFLENBQUM7QUFDTDtBQUVPLE1BQU0scUJBQXFCLENBQUMsWUFBMEM7QUFDM0UsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsU0FBUSxJQUFJO0FBQ25CLFFBQU0sTUFBYyxLQUFLLElBQUk7QUFFN0IsU0FBTyxnQkFBZ0IsT0FBTyxFQUMzQixLQUFLLENBQUMsaUJBQWlCO0FBRXRCLFVBQU0sZUFBZSxJQUFJLGNBQUFDLFFBQU8scUJBQU8sSUFBSSxjQUFjLEdBQUcsRUFBQyxZQUFZLFlBQVksS0FBSSxDQUFDO0FBQzFGLFdBQU8sYUFBYSxjQUNqQixPQUFPLGFBQWEsYUFBYSxFQUNqQyxLQUFLLENBQUMsRUFBQyxhQUFhLFdBQVUsTUFBTTtBQUVuQyxVQUFHLFlBQVk7QUFDYixjQUFNLFNBQThCO0FBQUEsVUFDbEM7QUFBQSxVQUNBLFVBQVU7QUFBQSxVQUNWLFFBQVE7QUFBQSxRQUNWO0FBQ0EsY0FBTSxTQUFtQixvQ0FBb0IsTUFBTTtBQUVuRCxlQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssTUFBTSxJQUFJLEVBQ2YsTUFBTSxDQUFDLGNBQWlCLGdDQUFTO0FBQUEsVUFDaEM7QUFBQSxVQUNBLFVBQVU7QUFBQSxVQUNWLE9BQU8sd0JBQVc7QUFBQSxRQUNwQixHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLElBQUksRUFBRSxNQUFNLENBQUNELFdBQVUsUUFBUSxPQUFPQSxNQUFLLENBQUMsQ0FBQztBQUFBLE1BQzFFO0FBQ0EsYUFBTztBQUFBLElBQ1QsQ0FBQztBQUFBLEVBQ0wsQ0FBQztBQUNMOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfdXRpbHMiLCAiZXJyb3IiLCAiU3RyaXBlIl0KfQo=
@@ -1,29 +0,0 @@
1
- import type { ApiContext } from '../types/auth';
2
- import type { TagType } from '../types/tags';
3
- export interface TagOptions {
4
- readonly from?: number;
5
- readonly search?: string;
6
- readonly to?: number;
7
- readonly userId?: string;
8
- }
9
- export declare const getTags: (context: ApiContext, options?: TagOptions) => Promise<TagType[]>;
10
- export declare const getTagsByItem: (context: ApiContext, itemDocId: string, options?: TagOptions) => Promise<TagType[]>;
11
- export declare const getTag: (context: ApiContext, tagId: string) => Promise<TagType>;
12
- export declare const getTagsByName: (context: ApiContext, tagNames: string[]) => Promise<TagType[]>;
13
- export declare const addTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
14
- export declare const addTagToItem: (context: ApiContext, { itemDocId, tagBy, tagDocId }: {
15
- itemDocId: string;
16
- tagBy?: string;
17
- tagDocId: string;
18
- }) => Promise<TagType>;
19
- export declare const updateTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
20
- export declare const deleteTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
21
- export declare const deleteTagFromItem: (context: ApiContext, { tagDocId, edgeDocId }: {
22
- tagDocId: any;
23
- edgeDocId: any;
24
- }) => Promise<TagType>;
25
- export declare const extractTags: (content: string) => string[];
26
- export declare const updateTagsInItem: (context: ApiContext, { itemDocId, tags }: {
27
- itemDocId: any;
28
- tags: any;
29
- }) => Promise<TagType[]>;
@@ -1,47 +0,0 @@
1
- import type { ApiContext } from '../types/auth';
2
- import type { UserType } from '../types/users';
3
- import { SessionToken } from '../utils/session';
4
- import { SessionError } from '../types/error';
5
- export interface UserOptions {
6
- readonly from?: number;
7
- readonly to?: number;
8
- readonly username?: string;
9
- }
10
- export declare enum UserAccess {
11
- DEACTIVATED = 0,
12
- ACTIVE = 1,
13
- PREMIUM = 2,
14
- CONTENT_ADMIN = 3,
15
- ADMIN = 4
16
- }
17
- export declare const createToken: (userId: string, username: string, userAccess: number, expiresInMinutes?: number) => SessionToken;
18
- export declare const getUserOptional: (fields?: string[]) => any;
19
- export declare const parseUserOptions: (options?: UserOptions) => {
20
- limit: import("..").ArangoDbLimit;
21
- from?: number;
22
- to?: number;
23
- username?: string;
24
- };
25
- export declare const addUser: (context: ApiContext, user: UserType) => Promise<UserType>;
26
- export declare const updateUser: (context: ApiContext, user: UserType) => Promise<UserType>;
27
- export declare const confirmCode: (context: ApiContext, { code, type }: {
28
- code: any;
29
- type: any;
30
- }) => Promise<boolean>;
31
- export declare const deleteUser: (context: ApiContext, user: UserType) => Promise<any>;
32
- export declare const deactivateUser: (context: ApiContext, user: UserType) => Promise<UserType>;
33
- export declare const getDisplayName: (user: UserType) => string;
34
- export declare const getSessionUser: (context: ApiContext) => Promise<UserType>;
35
- export declare const getUser: (context: ApiContext, user: UserType) => Promise<UserType>;
36
- export declare const getUsers: (context: ApiContext, options?: UserOptions) => Promise<UserType[]>;
37
- export declare const getUsersByReactions: (context: ApiContext, { reactions, username }: any, options?: UserOptions) => Promise<UserType[]>;
38
- export declare const getUsersByTags: (context: ApiContext, { tags, username }: any, options?: UserOptions) => Promise<UserType[]>;
39
- export declare const getUsersByLatest: (context: ApiContext, { username }: any, options?: UserOptions) => Promise<UserType[]>;
40
- export declare const refreshSession: (context: ApiContext, { expires, token }: {
41
- expires: any;
42
- token: any;
43
- }) => Promise<SessionToken | SessionError>;
44
- export declare const signIn: (context: ApiContext, args: any) => Promise<SessionToken>;
45
- export declare const signOut: (context: ApiContext) => Promise<boolean>;
46
- export declare const getActiveUserCount: (context: ApiContext) => Promise<any>;
47
- export declare const getUserByToken: (context: ApiContext, token: string) => Promise<UserType>;
@@ -1,19 +0,0 @@
1
- import { ApiContext } from '../types/auth';
2
- export declare const addConnection: (connectionId: string, token: string) => Promise<any>;
3
- export declare const getConnectionByUser: (userId: string) => Promise<any>;
4
- export declare const getConnectionById: (connectionId: string) => Promise<any>;
5
- export declare const getConnectionByConvo: (context: ApiContext, convoId: string) => Promise<any>;
6
- export declare const removeConnection: (connectionId: string) => Promise<any>;
7
- export interface WebSocketClientContext {
8
- readonly requestContext?: {
9
- readonly apiId: string;
10
- readonly domainName: string;
11
- readonly stage: string;
12
- };
13
- }
14
- export declare class WebsocketClient {
15
- client: any;
16
- constructor(config?: any);
17
- setupClient({ requestContext }: WebSocketClientContext): Promise<void>;
18
- send(connection: any, payload: any): Promise<boolean>;
19
- }
@@ -1,2 +0,0 @@
1
- import { DocumentType } from '../types/arangodb';
2
- export declare const parseDocument: (doc: DocumentType) => DocumentType;
@@ -1,3 +0,0 @@
1
- import { FileType } from '../types';
2
- export declare const getFileType: (file: FileType) => string;
3
- export declare const parseFile: (file: FileType) => FileType;
@@ -1,2 +0,0 @@
1
- import { PostType } from '../types';
2
- export declare const parsePost: (post: PostType) => PostType;
@@ -1,6 +0,0 @@
1
- export declare const parseReaktorContent: (content?: string, length?: number) => string;
2
- export declare const parseReaktorDate: (date?: number) => number;
3
- export declare const parseReaktorItemId: (itemId?: string) => string;
4
- export declare const parseReaktorName: (name?: string) => string;
5
- export declare const parseReaktorType: (type?: string) => string;
6
- export declare const parseReaktorUrl: (url?: string) => string;
@@ -1,2 +0,0 @@
1
- import { TagType } from '../types';
2
- export declare const parseTag: (tag: TagType) => TagType;
@@ -1,2 +0,0 @@
1
- import { UserType } from '../types';
2
- export declare const parseUser: (user: UserType) => UserType;
package/lib/config.d.ts DELETED
@@ -1,20 +0,0 @@
1
- export interface AppConfig {
2
- readonly app?: object;
3
- readonly arangodb?: object;
4
- readonly aws?: object;
5
- readonly giphy?: object;
6
- readonly google?: object;
7
- readonly image?: object;
8
- readonly stripe?: object;
9
- readonly twilio?: object;
10
- }
11
- export interface EnvConfig {
12
- readonly local: AppConfig;
13
- readonly dev: AppConfig;
14
- readonly prod: AppConfig;
15
- readonly test: AppConfig;
16
- }
17
- export declare class Config {
18
- static values(): EnvConfig;
19
- static get(path: string | string[]): any;
20
- }
package/lib/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './actions';
2
- export * from './lambdas/authorizer';
3
- export * from './lambdas/connection';
4
- export * from './utils';
5
- export * from './types';
@@ -1,6 +0,0 @@
1
- import { ApiContext } from '../../types/auth';
2
- export declare const addConnection: (connectionId: string, token: string) => Promise<any>;
3
- export declare const getConnectionByUserId: (userId: string) => Promise<any>;
4
- export declare const getConnectionById: (connectionId: string) => Promise<any>;
5
- export declare const getConnectionByConvo: (context: ApiContext, convoId: string) => Promise<any>;
6
- export declare const removeConnection: (connectionId: string) => Promise<any>;
@@ -1,20 +0,0 @@
1
- export declare const generatePolicyDocument: (effect: any, methodArn: any) => {
2
- Version: string;
3
- Statement: {
4
- Action: string;
5
- Effect: any;
6
- Resource: any;
7
- }[];
8
- };
9
- export declare const generateAuthResponse: (principalId: any, effect: any, methodArn: any) => {
10
- principalId: any;
11
- policyDocument: {
12
- Version: string;
13
- Statement: {
14
- Action: string;
15
- Effect: any;
16
- Resource: any;
17
- }[];
18
- };
19
- };
20
- export declare const authorizer: (event: any, context: any, callback: any) => any;
@@ -1,12 +0,0 @@
1
- export declare const connectHandler: (event: any) => Promise<{
2
- statusCode: number;
3
- } | {
4
- message: any;
5
- statusCode: number;
6
- }>;
7
- export declare const defaultHandler: (event: any) => Promise<{
8
- statusCode: number;
9
- }>;
10
- export declare const messageHandler: (event: any) => Promise<{
11
- statusCode: number;
12
- }>;
@@ -1 +0,0 @@
1
- export declare const parseMessage: (content: string) => string;
@@ -1,7 +0,0 @@
1
- export declare class WebsocketClient {
2
- client: any;
3
- constructor(config?: any);
4
- setupClient(config: any): void;
5
- send(connections: any, payload: any): Promise<boolean>;
6
- }
7
- export declare const wsClient: WebsocketClient;
@@ -1,8 +0,0 @@
1
- export declare const mockConversation: {
2
- _id: string;
3
- _key: string;
4
- id: string;
5
- added: number;
6
- userId: string;
7
- users: any[];
8
- };
@@ -1,11 +0,0 @@
1
- export declare const mockFile: {
2
- _id: string;
3
- _key: string;
4
- description: string;
5
- fileId: string;
6
- fileSize: number;
7
- fileType: string;
8
- name: string;
9
- url: string;
10
- userId: string;
11
- };
@@ -1,17 +0,0 @@
1
- export declare const mockGroup: {
2
- _id: string;
3
- _key: string;
4
- added: number;
5
- description: string;
6
- id: string;
7
- modified: number;
8
- name: string;
9
- type: string;
10
- userId: string;
11
- };
12
- export declare const mockGroupEdge: {
13
- _id: string;
14
- _key: string;
15
- _from: string;
16
- _to: string;
17
- };
@@ -1,3 +0,0 @@
1
- import { ImageEdgeType, ImageType } from '../types';
2
- export declare const mockImage: ImageType;
3
- export declare const mockImageEdge: ImageEdgeType;
@@ -1,38 +0,0 @@
1
- export declare const mockPost: {
2
- _id: string;
3
- _key: string;
4
- added: number;
5
- content: string;
6
- endDate: number;
7
- groupId: string;
8
- id: string;
9
- latitude: number;
10
- location: string;
11
- longitude: number;
12
- name: string;
13
- parentId: string;
14
- postId: string;
15
- privacy: string;
16
- startDate: number;
17
- type: string;
18
- userId: string;
19
- };
20
- export declare const mockPostInGroup: {
21
- groupId: string;
22
- _id: string;
23
- _key: string;
24
- added: number;
25
- content: string;
26
- endDate: number;
27
- id: string;
28
- latitude: number;
29
- location: string;
30
- longitude: number;
31
- name: string;
32
- parentId: string;
33
- postId: string;
34
- privacy: string;
35
- startDate: number;
36
- type: string;
37
- userId: string;
38
- };
@@ -1,2 +0,0 @@
1
- import { TagType } from '../types';
2
- export declare const mockTag: TagType;
@@ -1,4 +0,0 @@
1
- import { UserType } from '../types';
2
- export declare const mockUser: UserType;
3
- export declare const mockAdmin: UserType;
4
- export declare const mockJwt = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyQWNjZXNzIjoxLCJ1c2VySWQiOiJ1c2VyMSIsInVzZXJuYW1lIjoiamFtZXNib25kIiwiaWF0IjoxNzE2NTA4MTA3fQ.IRfNMLPXEXi6UGPG_TepcqSHREAJJjvVPs7jnvojhMI";
@@ -1,2 +0,0 @@
1
- declare const _default: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n <title>[appName]</title>\n <link type=\"text/css\" rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Open+Sans:400,700\"/>\n <style type=\"text/css\">\n .ExternalClass,\n .ExternalClass p,\n .ExternalClass span,\n .ExternalClass font,\n .ExternalClass td,\n .ExternalClass div {\n line-height: 100%;\n }\n\n body, img, div, p, ul, li, span, strong, a {\n margin: 0;\n padding: 0;\n }\n\n table {\n border-spacing: 0;\n }\n\n table td {\n border-collapse: collapse;\n }\n\n body {\n color: #000;\n font-family: 'Open Sans', sans-serif, Arial, Helvetica;\n font-size: 14px;\n line-height: 1;\n background-color: #EAEAEA;\n width: 100% !important;\n -webkit-text-size-adjust: none;\n -ms-text-size-adjust: none;\n }\n\n a,\n a:link,\n a:hover,\n a[href^=\"tel\"], a[href^=\"sms\"] {\n color: #000;\n outline: none;\n text-decoration: none !important;\n }\n\n a {\n border: none !important;\n outline: none !important;\n }\n\n a[href^=\"tel\"], a[href^=\"sms\"] {\n pointer-events: none;\n cursor: default;\n }\n\n .mobile_link a[href^=\"tel\"],\n .mobile_link a[href^=\"sms\"] {\n text-decoration: default;\n color: #000 !important;\n pointer-events: auto;\n cursor: default;\n }\n\n img {\n border: none;\n outline: none;\n text-decoration: none;\n height: auto;\n max-width: 100%;\n }\n\n table {\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n }\n\n tr,\n td {\n margin: 0;\n padding: 0;\n }\n\n @media only screen and (max-width: 799px) {\n table[class=\"Externalmain\"] {\n width: 100% !important;\n }\n }\n\n @media only screen and (max-width: 499px) {\n table[class=\"ExternalClass\"] {\n width: 100% !important;\n }\n }\n </style>\n</head>\n\n<body text=\"#333333\" link=\"#9d470a\" bgcolor=\"#EAEAEA\" alink=\"#9d470a\" yahoo=\"fix\" style=\"width:100% !important; color:#ffffff; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size:12px; line-height:1;\">\n<table width=\"100%\" class=\"Externalmain\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"center\">\n <tr>\n <td>\n <table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"center\" class=\"ExternalClass\">\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"center\">\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"center\">\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n <tr>\n <td height=\"35\" style=\"background:#000000;\">\n <img width=\"1\" height=\"1\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" style=\"background:#000000;\">\n <img width=\"130\" height=\"130\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/apps/[appId]/images/email/logo.png\"/>\n </td>\n </tr>\n <tr>\n <td height=\"30\" style=\"background:#000000;\">\n <img width=\"1\" height=\"1\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"text-align: center;background: #ffffff;\">\n <tr>\n <td height=\"50\">\n <img width=\"1\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/spacer.png\" alt=\"\" title=\"\"/>\n </td>\n </tr>\n <tr>\n <td width=\"100%\" style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #77737b; font-size: 14px; letter-spacing: 1px; text-transform: uppercase;\">\n [subTitle]\n </td>\n </tr>\n <tr>\n <td height=\"15\">\n <img width=\"1\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/spacer.png\" alt=\"\" title=\"\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\">\n <img width=\"56\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/border.png\" alt=\"\" title=\"\"/>\n </td>\n </tr>\n <tr>\n <td height=\"15\">\n <img width=\"1\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/spacer.png\" alt=\"\" title=\"\"/>\n </td>\n </tr>\n <tr>\n <td width=\"100%\" style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #1e1c20; font-size: 30px; letter-spacing: 3px; text-transform: uppercase; font-weight: bold;\">\n [title]\n </td>\n </tr>\n <tr>\n <td height=\"30\">\n <img width=\"1\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/spacer.png\" alt=\"\" title=\"\"/>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"color: #000000; text-align: center;background: #ffffff;\">\n <tr>\n <td width=\"30\">\n <img width=\"1\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/spacer.png\" alt=\"\" title=\"\"/>\n </td>\n <td>\n [message]\n </td>\n <td width=\"30\">\n <img width=\"1\" height=\"1\" border=\"0\" src=\"https://box.reaktor.io/images/email/spacer.png\" alt=\"\" title=\"\"/>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"background: #000000;\">\n <tr>\n <td height=\"20\">\n <img width=\"1\" height=\"1\" border=\"0\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n <tr>\n <td align=\"center\" width=\"89\">\n <a href=\"#\">\n <img width=\"90\" height=\"30\" border=\"0\" title=\"\" alt=\"[appName]\" src=\"https://box.reaktor.io/apps/[appId]/images/email/logo-txt.png\"/>\n </a>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td height=\"20\">\n <img width=\"1\" height=\"1\" border=\"0\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td height=\"23\">\n <img width=\"1\" height=\"1\" border=\"0\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\">\n <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"center\">\n <tr>\n [links]\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"text-align: center;\">\n <tr>\n <td height=\"30\">\n <img width=\"1\" height=\"1\" border=\"0\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n <tr>\n <td style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #333;font-size: 12px;\">\n To stop receiving these emails\n <a style=\"font-size: 12px; font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #333; text-decoration: underline;\" href=\"#\"> unsubscribe</a>.\n </td>\n </tr>\n <tr>\n <td height=\"13\">\n <img width=\"1\" height=\"1\" border=\"0\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n <tr>\n <td style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #333; font-size: 12px;\">\n Powered by <a style=\"color: #333;\" href=\"https://reaktor.io\">Reaktor.io</a>\n </td>\n </tr>\n <tr>\n <td height=\"35\">\n <img width=\"1\" height=\"1\" border=\"0\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n</table>\n</body>\n</html>";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n <tr>\n <td style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #000; font-size: 16px; line-height: 24px;\">\n <p>[appName] password reset code: <strong>[resetCode]</strong></p>\n <p style=\"font-size: 12px; line-height: 18px; color: #77737b\">\n <em>Please use the code above to reset your password. It will expire after 15 minutes.</em>\n </p>\n </td>\n </tr>\n <tr>\n <td height=\"60\">\n <img width=\"1\" height=\"1\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n</table>";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n <tr>\n <td style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #77737b; font-size: 14px; line-height: 24px;\">\n Your password has been sucessfully updated!\n </td>\n </tr>\n <tr>\n <td height=\"63\">\n <img width=\"1\" height=\"1\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.gif\"/>\n </td>\n </tr>\n</table>";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n <tr>\n <td style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #77737b; font-size: 14px;\">\n <p style=\"font-size: 14px; line-height: 26px;\">[appName] email verification code: [emailCode]</p>\n <span style=\"font-size: 12px; line-height: 18px;\">\n Please use the code above to verify your email address.\n </span>\n </td>\n </tr>\n <tr>\n <td height=\"63\">\n <img width=\"1\" height=\"1\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.gif\"/>\n </td>\n </tr>\n</table>";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n <tr>\n <td style=\"font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #000; font-size: 16px; line-height: 24px;\">\n <h1>Welcome to [appName]!</h1>\n <p style=\"font-size: 12px; line-height: 18px; color: #77737b\">\n Your user account is setup and activated. You may start updating your profile.\n </p>\n </td>\n </tr>\n <tr>\n <td height=\"60\">\n <img width=\"1\" height=\"1\" title=\"\" alt=\"\" src=\"https://box.reaktor.io/images/email/spacer.png\"/>\n </td>\n </tr>\n</table>";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "[appName] password reset code: [resetCode]";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "Your password for [appName] has been successfully changed.";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "Email verification code is: [emailCode]";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "Phone verification code is: [phoneCode]";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "Welcome to [appName]! Your user account is setup and activated. You may start updating your profile.";
2
- export default _default;