@nlabs/reaktor 1.4.1 → 1.5.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 (419) hide show
  1. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/apps.d.ts +1 -2
  2. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/connections.d.ts +0 -1
  3. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/content.d.ts +0 -1
  4. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/conversations.d.ts +0 -1
  5. package/lib/Users/nitrog7/Development/reaktor/src/actions/crm.d.ts +28 -0
  6. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/crud.d.ts +0 -1
  7. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/dynamodb.d.ts +0 -1
  8. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/email.d.ts +0 -1
  9. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/files.d.ts +0 -1
  10. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/groups.d.ts +0 -1
  11. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/images.d.ts +0 -1
  12. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/index.d.ts +2 -1
  13. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/ios.d.ts +0 -1
  14. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/locations.d.ts +0 -1
  15. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/messages.d.ts +0 -1
  16. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/notifications.d.ts +0 -1
  17. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/payments.d.ts +0 -1
  18. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/personas.d.ts +1 -2
  19. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/posts.d.ts +0 -1
  20. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/query.d.ts +0 -1
  21. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/reactions.d.ts +0 -1
  22. package/lib/Users/nitrog7/Development/reaktor/src/actions/rum.d.ts +3 -0
  23. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/s3.d.ts +0 -1
  24. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/search.d.ts +0 -1
  25. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/sms.d.ts +0 -1
  26. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/statistics.d.ts +0 -1
  27. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/subscriptions.d.ts +0 -1
  28. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/tags.d.ts +0 -1
  29. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/users.d.ts +2 -3
  30. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/videos.d.ts +0 -1
  31. package/lib/{actions → Users/nitrog7/Development/reaktor/src/actions}/websockets.d.ts +0 -1
  32. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/arangoAdapter.d.ts +0 -1
  33. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/contentAdapter.d.ts +0 -1
  34. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/fileAdapter.d.ts +0 -1
  35. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/imageAdapter.d.ts +0 -1
  36. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/index.d.ts +0 -1
  37. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/messageAdapter.d.ts +0 -1
  38. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/postAdapter.d.ts +0 -1
  39. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/reaktorAdapter.d.ts +0 -1
  40. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/tagAdapter.d.ts +0 -1
  41. package/lib/{adapters → Users/nitrog7/Development/reaktor/src/adapters}/userAdapter.d.ts +0 -1
  42. package/lib/{config.d.ts → Users/nitrog7/Development/reaktor/src/config.d.ts} +0 -1
  43. package/lib/Users/nitrog7/Development/reaktor/src/constants/collections.d.ts +86 -0
  44. package/lib/{handlers → Users/nitrog7/Development/reaktor/src/handlers}/graphqlHandler.d.ts +0 -1
  45. package/lib/{index.d.ts → Users/nitrog7/Development/reaktor/src/index.d.ts} +0 -1
  46. package/lib/{lambdas → Users/nitrog7/Development/reaktor/src/lambdas}/actions/websockets.d.ts +0 -1
  47. package/lib/{lambdas → Users/nitrog7/Development/reaktor/src/lambdas}/authorizer.d.ts +0 -1
  48. package/lib/{lambdas → Users/nitrog7/Development/reaktor/src/lambdas}/connection.d.ts +4 -5
  49. package/lib/{lambdas → Users/nitrog7/Development/reaktor/src/lambdas}/utils/message.d.ts +0 -1
  50. package/lib/{lambdas → Users/nitrog7/Development/reaktor/src/lambdas}/utils/websocket.d.ts +0 -1
  51. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/conversation.d.ts +1 -2
  52. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/file.d.ts +0 -1
  53. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/group.d.ts +0 -1
  54. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/image.d.ts +0 -1
  55. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/post.d.ts +1 -2
  56. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/tag.d.ts +0 -1
  57. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/user.d.ts +0 -1
  58. package/lib/{mocks → Users/nitrog7/Development/reaktor/src/mocks}/video.d.ts +0 -1
  59. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/content/content.d.ts +0 -1
  60. package/lib/Users/nitrog7/Development/reaktor/src/mutations/crm/crm.d.ts +1 -0
  61. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/events/events.d.ts +0 -1
  62. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/groups/groups.d.ts +0 -1
  63. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/images/images.d.ts +0 -1
  64. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/index.d.ts +3 -2
  65. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/locations/locations.d.ts +0 -1
  66. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/messages/messages.d.ts +0 -1
  67. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/personas/personas.d.ts +0 -1
  68. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/posts/posts.d.ts +0 -1
  69. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/reactions/reactions.d.ts +0 -1
  70. package/lib/Users/nitrog7/Development/reaktor/src/mutations/rum/rum.d.ts +1 -0
  71. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/statistics/statistics.d.ts +0 -1
  72. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/subscriptions/subscriptions.d.ts +0 -1
  73. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/tags/tags.d.ts +0 -1
  74. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/users/users.d.ts +0 -1
  75. package/lib/{mutations → Users/nitrog7/Development/reaktor/src/mutations}/videos/videos.d.ts +0 -1
  76. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/app.d.ts +0 -1
  77. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/bankAccount.d.ts +0 -1
  78. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/connection.d.ts +0 -1
  79. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/content.d.ts +0 -1
  80. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/conversation.d.ts +0 -1
  81. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/creditCard.d.ts +0 -1
  82. package/lib/Users/nitrog7/Development/reaktor/src/objectTypes/crm.d.ts +12 -0
  83. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/document.d.ts +0 -1
  84. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/error.d.ts +0 -1
  85. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/event.d.ts +0 -1
  86. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/external.d.ts +0 -1
  87. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/file.d.ts +0 -1
  88. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/filter.d.ts +0 -1
  89. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/group.d.ts +0 -1
  90. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/iapSubscription.d.ts +0 -1
  91. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/image.d.ts +0 -1
  92. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/index.d.ts +2 -1
  93. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/location.d.ts +0 -1
  94. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/message.d.ts +0 -1
  95. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/passcode.d.ts +0 -1
  96. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/persona.d.ts +0 -1
  97. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/plan.d.ts +0 -1
  98. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/post.d.ts +0 -1
  99. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/query.d.ts +0 -1
  100. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/reaction.d.ts +0 -1
  101. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/relation.d.ts +0 -1
  102. package/lib/Users/nitrog7/Development/reaktor/src/objectTypes/rum.d.ts +3 -0
  103. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/search.d.ts +0 -1
  104. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/statistics.d.ts +0 -1
  105. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/subscription.d.ts +0 -1
  106. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/tag.d.ts +0 -1
  107. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/user.d.ts +0 -1
  108. package/lib/{objectTypes → Users/nitrog7/Development/reaktor/src/objectTypes}/video.d.ts +0 -1
  109. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/content/content.d.ts +0 -1
  110. package/lib/Users/nitrog7/Development/reaktor/src/queries/crm/crm.d.ts +1 -0
  111. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/events/events.d.ts +0 -1
  112. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/groups/groups.d.ts +0 -1
  113. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/images/images.d.ts +0 -1
  114. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/index.d.ts +2 -2
  115. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/locations/locations.d.ts +0 -1
  116. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/messages/messages.d.ts +0 -1
  117. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/personas/personas.d.ts +0 -1
  118. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/posts/posts.d.ts +0 -1
  119. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/query/query.d.ts +0 -1
  120. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/reactions/reactions.d.ts +0 -1
  121. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/statistics/statistics.d.ts +0 -1
  122. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/subscriptions/subscriptions.d.ts +0 -1
  123. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/tags/tags.d.ts +0 -1
  124. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/users/users.d.ts +0 -1
  125. package/lib/{queries → Users/nitrog7/Development/reaktor/src/queries}/videos/videos.d.ts +0 -1
  126. package/lib/Users/nitrog7/Development/reaktor/src/templates/email/layout.d.ts +2 -0
  127. package/lib/Users/nitrog7/Development/reaktor/src/templates/email/passwordForgot.d.ts +2 -0
  128. package/lib/Users/nitrog7/Development/reaktor/src/templates/email/passwordRecovery.d.ts +2 -0
  129. package/lib/Users/nitrog7/Development/reaktor/src/templates/email/verifyEmail.d.ts +2 -0
  130. package/lib/Users/nitrog7/Development/reaktor/src/templates/email/welcome.d.ts +2 -0
  131. package/lib/Users/nitrog7/Development/reaktor/src/templates/sms/passwordForgot.d.ts +2 -0
  132. package/lib/Users/nitrog7/Development/reaktor/src/templates/sms/passwordRecovery.d.ts +2 -0
  133. package/lib/Users/nitrog7/Development/reaktor/src/templates/sms/verifyEmail.d.ts +2 -0
  134. package/lib/Users/nitrog7/Development/reaktor/src/templates/sms/verifyPhone.d.ts +2 -0
  135. package/lib/Users/nitrog7/Development/reaktor/src/templates/sms/welcome.d.ts +2 -0
  136. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/apps.types.d.ts +0 -1
  137. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/arangodb.types.d.ts +1 -2
  138. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/auth.types.d.ts +0 -1
  139. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/connections.types.d.ts +2 -3
  140. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/content.types.d.ts +0 -1
  141. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/conversations.types.d.ts +0 -1
  142. package/lib/Users/nitrog7/Development/reaktor/src/types/crm.types.d.ts +89 -0
  143. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/email.types.d.ts +0 -1
  144. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/error.types.d.ts +0 -1
  145. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/files.types.d.ts +0 -1
  146. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/google.types.d.ts +0 -1
  147. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/groups.types.d.ts +0 -1
  148. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/images.types.d.ts +0 -1
  149. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/index.d.ts +2 -1
  150. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/locations.types.d.ts +0 -1
  151. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/messages.types.d.ts +0 -1
  152. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/notifications.types.d.ts +0 -1
  153. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/payments.types.d.ts +0 -1
  154. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/personas.types.d.ts +0 -1
  155. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/posts.types.d.ts +0 -1
  156. package/lib/Users/nitrog7/Development/reaktor/src/types/rum.types.d.ts +23 -0
  157. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/statistics.types.d.ts +0 -1
  158. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/tags.types.d.ts +0 -1
  159. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/users.types.d.ts +20 -1
  160. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/videos.types.d.ts +0 -1
  161. package/lib/{types → Users/nitrog7/Development/reaktor/src/types}/websockets.types.d.ts +0 -1
  162. package/lib/{upload.d.ts → Users/nitrog7/Development/reaktor/src/upload.d.ts} +0 -1
  163. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/adapterUtils.d.ts +0 -1
  164. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/analyticsUtils.d.ts +0 -1
  165. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/aqlHelpers.d.ts +4 -1
  166. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/arangodbUtils.d.ts +0 -1
  167. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/authUtils.d.ts +0 -1
  168. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/awsUtils.d.ts +0 -1
  169. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/collectionRegistry.d.ts +0 -1
  170. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/contextUtils.d.ts +0 -1
  171. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/dbI18n.d.ts +0 -1
  172. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/dbI18n.example.d.ts +0 -1
  173. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/googleTranslate.d.ts +0 -1
  174. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/graphqlUtils.d.ts +1 -2
  175. package/lib/Users/nitrog7/Development/reaktor/src/utils/imageUtils.d.ts +1 -0
  176. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/index.d.ts +0 -1
  177. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/languageDetection.d.ts +0 -1
  178. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/localeUtils.d.ts +0 -1
  179. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/localeUtils.example.d.ts +1 -1
  180. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/middlewareUtils.d.ts +0 -1
  181. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/queryBuilder.d.ts +0 -1
  182. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/schemaUtils.d.ts +0 -1
  183. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/sessionUtils.d.ts +0 -1
  184. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/stripeUtils.d.ts +1 -2
  185. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/templateUtils.d.ts +0 -1
  186. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/testUtils.d.ts +0 -1
  187. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/translationQueue.d.ts +0 -1
  188. package/lib/{utils → Users/nitrog7/Development/reaktor/src/utils}/translationQueue.example.d.ts +0 -1
  189. package/lib/{videoProcessing.d.ts → Users/nitrog7/Development/reaktor/src/videoProcessing.d.ts} +2 -3
  190. package/lib/actions/apps.js +2 -2
  191. package/lib/actions/content.js +1 -2
  192. package/lib/actions/crm.js +498 -0
  193. package/lib/actions/crud.js +1 -1
  194. package/lib/actions/groups.js +2 -2
  195. package/lib/actions/images.js +3 -10
  196. package/lib/actions/index.js +3 -1
  197. package/lib/actions/locations.js +1 -2
  198. package/lib/actions/posts.js +3 -3
  199. package/lib/actions/rum.js +66 -0
  200. package/lib/actions/search.js +30 -53
  201. package/lib/actions/users.js +124 -160
  202. package/lib/adapters/messageAdapter.js +7 -5
  203. package/lib/adapters/userAdapter.js +42 -2
  204. package/lib/constants/collections.js +17 -1
  205. package/lib/mocks/image.js +3 -3
  206. package/lib/mocks/video.js +3 -3
  207. package/lib/mutations/crm/crm.js +67 -0
  208. package/lib/mutations/index.js +12 -2
  209. package/lib/mutations/rum/rum.js +20 -0
  210. package/lib/objectTypes/crm.js +188 -0
  211. package/lib/objectTypes/index.js +3 -1
  212. package/lib/objectTypes/persona.js +3 -2
  213. package/lib/objectTypes/rum.js +33 -0
  214. package/lib/objectTypes/user.js +83 -2
  215. package/lib/queries/crm/crm.js +77 -0
  216. package/lib/queries/index.js +7 -2
  217. package/lib/queries/videos/videos.js +1 -1
  218. package/lib/types/apps.types.js +1 -1
  219. package/lib/types/arangodb.types.js +1 -1
  220. package/lib/types/crm.types.js +6 -0
  221. package/lib/types/index.js +3 -1
  222. package/lib/types/rum.types.js +6 -0
  223. package/lib/types/users.types.js +1 -1
  224. package/lib/utils/aqlHelpers.js +13 -2
  225. package/lib/utils/collectionRegistry.js +18 -1
  226. package/lib/utils/imageUtils.js +6 -0
  227. package/lib/utils/localeUtils.example.js +3 -4
  228. package/lib/utils/stripeUtils.js +2 -2
  229. package/package.json +53 -39
  230. package/lib/actions/apps.d.ts.map +0 -1
  231. package/lib/actions/connections.d.ts.map +0 -1
  232. package/lib/actions/content.d.ts.map +0 -1
  233. package/lib/actions/conversations.d.ts.map +0 -1
  234. package/lib/actions/crud.d.ts.map +0 -1
  235. package/lib/actions/dynamodb.d.ts.map +0 -1
  236. package/lib/actions/email.d.ts.map +0 -1
  237. package/lib/actions/files.d.ts.map +0 -1
  238. package/lib/actions/groups.d.ts.map +0 -1
  239. package/lib/actions/images.d.ts.map +0 -1
  240. package/lib/actions/index.d.ts.map +0 -1
  241. package/lib/actions/ios.d.ts.map +0 -1
  242. package/lib/actions/locations.d.ts.map +0 -1
  243. package/lib/actions/messages.d.ts.map +0 -1
  244. package/lib/actions/notifications.d.ts.map +0 -1
  245. package/lib/actions/payments.d.ts.map +0 -1
  246. package/lib/actions/personas.d.ts.map +0 -1
  247. package/lib/actions/posts.d.ts.map +0 -1
  248. package/lib/actions/query.d.ts.map +0 -1
  249. package/lib/actions/reactions.d.ts.map +0 -1
  250. package/lib/actions/s3.d.ts.map +0 -1
  251. package/lib/actions/search.d.ts.map +0 -1
  252. package/lib/actions/sms.d.ts.map +0 -1
  253. package/lib/actions/statistics.d.ts.map +0 -1
  254. package/lib/actions/subscriptions.d.ts.map +0 -1
  255. package/lib/actions/tags.d.ts.map +0 -1
  256. package/lib/actions/users.d.ts.map +0 -1
  257. package/lib/actions/videos.d.ts.map +0 -1
  258. package/lib/actions/websockets.d.ts.map +0 -1
  259. package/lib/adapters/arangoAdapter.d.ts.map +0 -1
  260. package/lib/adapters/contentAdapter.d.ts.map +0 -1
  261. package/lib/adapters/fileAdapter.d.ts.map +0 -1
  262. package/lib/adapters/imageAdapter.d.ts.map +0 -1
  263. package/lib/adapters/index.d.ts.map +0 -1
  264. package/lib/adapters/messageAdapter.d.ts.map +0 -1
  265. package/lib/adapters/postAdapter.d.ts.map +0 -1
  266. package/lib/adapters/reaktorAdapter.d.ts.map +0 -1
  267. package/lib/adapters/tagAdapter.d.ts.map +0 -1
  268. package/lib/adapters/userAdapter.d.ts.map +0 -1
  269. package/lib/config.d.ts.map +0 -1
  270. package/lib/constants/collections.d.ts +0 -71
  271. package/lib/constants/collections.d.ts.map +0 -1
  272. package/lib/handlers/graphqlHandler.d.ts.map +0 -1
  273. package/lib/index.d.ts.map +0 -1
  274. package/lib/lambdas/actions/websockets.d.ts.map +0 -1
  275. package/lib/lambdas/authorizer.d.ts.map +0 -1
  276. package/lib/lambdas/connection.d.ts.map +0 -1
  277. package/lib/lambdas/utils/message.d.ts.map +0 -1
  278. package/lib/lambdas/utils/websocket.d.ts.map +0 -1
  279. package/lib/mocks/conversation.d.ts.map +0 -1
  280. package/lib/mocks/file.d.ts.map +0 -1
  281. package/lib/mocks/group.d.ts.map +0 -1
  282. package/lib/mocks/image.d.ts.map +0 -1
  283. package/lib/mocks/post.d.ts.map +0 -1
  284. package/lib/mocks/tag.d.ts.map +0 -1
  285. package/lib/mocks/user.d.ts.map +0 -1
  286. package/lib/mocks/video.d.ts.map +0 -1
  287. package/lib/mutations/content/content.d.ts.map +0 -1
  288. package/lib/mutations/events/events.d.ts.map +0 -1
  289. package/lib/mutations/groups/groups.d.ts.map +0 -1
  290. package/lib/mutations/images/images.d.ts.map +0 -1
  291. package/lib/mutations/index.d.ts.map +0 -1
  292. package/lib/mutations/locations/locations.d.ts.map +0 -1
  293. package/lib/mutations/messages/messages.d.ts.map +0 -1
  294. package/lib/mutations/personas/personas.d.ts.map +0 -1
  295. package/lib/mutations/posts/posts.d.ts.map +0 -1
  296. package/lib/mutations/reactions/reactions.d.ts.map +0 -1
  297. package/lib/mutations/statistics/statistics.d.ts.map +0 -1
  298. package/lib/mutations/subscriptions/subscriptions.d.ts.map +0 -1
  299. package/lib/mutations/tags/tags.d.ts.map +0 -1
  300. package/lib/mutations/users/users.d.ts.map +0 -1
  301. package/lib/mutations/videos/videos.d.ts.map +0 -1
  302. package/lib/objectTypes/app.d.ts.map +0 -1
  303. package/lib/objectTypes/bankAccount.d.ts.map +0 -1
  304. package/lib/objectTypes/connection.d.ts.map +0 -1
  305. package/lib/objectTypes/content.d.ts.map +0 -1
  306. package/lib/objectTypes/conversation.d.ts.map +0 -1
  307. package/lib/objectTypes/creditCard.d.ts.map +0 -1
  308. package/lib/objectTypes/document.d.ts.map +0 -1
  309. package/lib/objectTypes/error.d.ts.map +0 -1
  310. package/lib/objectTypes/event.d.ts.map +0 -1
  311. package/lib/objectTypes/external.d.ts.map +0 -1
  312. package/lib/objectTypes/file.d.ts.map +0 -1
  313. package/lib/objectTypes/filter.d.ts.map +0 -1
  314. package/lib/objectTypes/group.d.ts.map +0 -1
  315. package/lib/objectTypes/iapSubscription.d.ts.map +0 -1
  316. package/lib/objectTypes/image.d.ts.map +0 -1
  317. package/lib/objectTypes/index.d.ts.map +0 -1
  318. package/lib/objectTypes/location.d.ts.map +0 -1
  319. package/lib/objectTypes/message.d.ts.map +0 -1
  320. package/lib/objectTypes/passcode.d.ts.map +0 -1
  321. package/lib/objectTypes/persona.d.ts.map +0 -1
  322. package/lib/objectTypes/plan.d.ts.map +0 -1
  323. package/lib/objectTypes/post.d.ts.map +0 -1
  324. package/lib/objectTypes/query.d.ts.map +0 -1
  325. package/lib/objectTypes/reaction.d.ts.map +0 -1
  326. package/lib/objectTypes/relation.d.ts.map +0 -1
  327. package/lib/objectTypes/search.d.ts.map +0 -1
  328. package/lib/objectTypes/statistics.d.ts.map +0 -1
  329. package/lib/objectTypes/subscription.d.ts.map +0 -1
  330. package/lib/objectTypes/tag.d.ts.map +0 -1
  331. package/lib/objectTypes/user.d.ts.map +0 -1
  332. package/lib/objectTypes/video.d.ts.map +0 -1
  333. package/lib/queries/content/content.d.ts.map +0 -1
  334. package/lib/queries/events/events.d.ts.map +0 -1
  335. package/lib/queries/groups/groups.d.ts.map +0 -1
  336. package/lib/queries/images/images.d.ts.map +0 -1
  337. package/lib/queries/index.d.ts.map +0 -1
  338. package/lib/queries/locations/locations.d.ts.map +0 -1
  339. package/lib/queries/messages/messages.d.ts.map +0 -1
  340. package/lib/queries/personas/personas.d.ts.map +0 -1
  341. package/lib/queries/posts/posts.d.ts.map +0 -1
  342. package/lib/queries/query/query.d.ts.map +0 -1
  343. package/lib/queries/reactions/reactions.d.ts.map +0 -1
  344. package/lib/queries/statistics/statistics.d.ts.map +0 -1
  345. package/lib/queries/subscriptions/subscriptions.d.ts.map +0 -1
  346. package/lib/queries/tags/tags.d.ts.map +0 -1
  347. package/lib/queries/users/users.d.ts.map +0 -1
  348. package/lib/queries/videos/videos.d.ts.map +0 -1
  349. package/lib/templates/email/layout.d.ts +0 -3
  350. package/lib/templates/email/layout.d.ts.map +0 -1
  351. package/lib/templates/email/passwordForgot.d.ts +0 -3
  352. package/lib/templates/email/passwordForgot.d.ts.map +0 -1
  353. package/lib/templates/email/passwordRecovery.d.ts +0 -3
  354. package/lib/templates/email/passwordRecovery.d.ts.map +0 -1
  355. package/lib/templates/email/verifyEmail.d.ts +0 -3
  356. package/lib/templates/email/verifyEmail.d.ts.map +0 -1
  357. package/lib/templates/email/welcome.d.ts +0 -3
  358. package/lib/templates/email/welcome.d.ts.map +0 -1
  359. package/lib/templates/sms/passwordForgot.d.ts +0 -3
  360. package/lib/templates/sms/passwordForgot.d.ts.map +0 -1
  361. package/lib/templates/sms/passwordRecovery.d.ts +0 -3
  362. package/lib/templates/sms/passwordRecovery.d.ts.map +0 -1
  363. package/lib/templates/sms/verifyEmail.d.ts +0 -3
  364. package/lib/templates/sms/verifyEmail.d.ts.map +0 -1
  365. package/lib/templates/sms/verifyPhone.d.ts +0 -3
  366. package/lib/templates/sms/verifyPhone.d.ts.map +0 -1
  367. package/lib/templates/sms/welcome.d.ts +0 -3
  368. package/lib/templates/sms/welcome.d.ts.map +0 -1
  369. package/lib/types/apps.types.d.ts.map +0 -1
  370. package/lib/types/arangodb.types.d.ts.map +0 -1
  371. package/lib/types/auth.types.d.ts.map +0 -1
  372. package/lib/types/connections.types.d.ts.map +0 -1
  373. package/lib/types/content.types.d.ts.map +0 -1
  374. package/lib/types/conversations.types.d.ts.map +0 -1
  375. package/lib/types/email.types.d.ts.map +0 -1
  376. package/lib/types/error.types.d.ts.map +0 -1
  377. package/lib/types/files.types.d.ts.map +0 -1
  378. package/lib/types/google.types.d.ts.map +0 -1
  379. package/lib/types/groups.types.d.ts.map +0 -1
  380. package/lib/types/images.types.d.ts.map +0 -1
  381. package/lib/types/index.d.ts.map +0 -1
  382. package/lib/types/locations.types.d.ts.map +0 -1
  383. package/lib/types/messages.types.d.ts.map +0 -1
  384. package/lib/types/notifications.types.d.ts.map +0 -1
  385. package/lib/types/payments.types.d.ts.map +0 -1
  386. package/lib/types/personas.types.d.ts.map +0 -1
  387. package/lib/types/posts.types.d.ts.map +0 -1
  388. package/lib/types/statistics.types.d.ts.map +0 -1
  389. package/lib/types/tags.types.d.ts.map +0 -1
  390. package/lib/types/users.types.d.ts.map +0 -1
  391. package/lib/types/videos.types.d.ts.map +0 -1
  392. package/lib/types/websockets.types.d.ts.map +0 -1
  393. package/lib/upload.d.ts.map +0 -1
  394. package/lib/utils/adapterUtils.d.ts.map +0 -1
  395. package/lib/utils/analyticsUtils.d.ts.map +0 -1
  396. package/lib/utils/aqlHelpers.d.ts.map +0 -1
  397. package/lib/utils/arangodbUtils.d.ts.map +0 -1
  398. package/lib/utils/authUtils.d.ts.map +0 -1
  399. package/lib/utils/awsUtils.d.ts.map +0 -1
  400. package/lib/utils/collectionRegistry.d.ts.map +0 -1
  401. package/lib/utils/contextUtils.d.ts.map +0 -1
  402. package/lib/utils/dbI18n.d.ts.map +0 -1
  403. package/lib/utils/dbI18n.example.d.ts.map +0 -1
  404. package/lib/utils/googleTranslate.d.ts.map +0 -1
  405. package/lib/utils/graphqlUtils.d.ts.map +0 -1
  406. package/lib/utils/index.d.ts.map +0 -1
  407. package/lib/utils/languageDetection.d.ts.map +0 -1
  408. package/lib/utils/localeUtils.d.ts.map +0 -1
  409. package/lib/utils/localeUtils.example.d.ts.map +0 -1
  410. package/lib/utils/middlewareUtils.d.ts.map +0 -1
  411. package/lib/utils/queryBuilder.d.ts.map +0 -1
  412. package/lib/utils/schemaUtils.d.ts.map +0 -1
  413. package/lib/utils/sessionUtils.d.ts.map +0 -1
  414. package/lib/utils/stripeUtils.d.ts.map +0 -1
  415. package/lib/utils/templateUtils.d.ts.map +0 -1
  416. package/lib/utils/testUtils.d.ts.map +0 -1
  417. package/lib/utils/translationQueue.d.ts.map +0 -1
  418. package/lib/utils/translationQueue.example.d.ts.map +0 -1
  419. package/lib/videoProcessing.d.ts.map +0 -1
@@ -7,7 +7,6 @@ import { Config } from '../config.js';
7
7
  import { translateText } from '../utils/googleTranslate.js';
8
8
  import { extractLanguage, isRegionalLocale } from '../utils/localeUtils.js';
9
9
  import { addItem, getItemBy, getListBy, updateItem } from './crud.js';
10
- const eventCategory = 'content';
11
10
  export const parseContentOptions = (options = {})=>{
12
11
  const { category, isActive = true, key, locale } = options;
13
12
  return {
@@ -210,4 +209,4 @@ export const searchContent = async (context, options = {})=>{
210
209
  return contentList.map((content)=>parseContentFromDb(content));
211
210
  };
212
211
 
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvY29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5cbmltcG9ydCB7cGFyc2VDb250ZW50RnJvbURiLCBwYXJzZUNvbnRlbnRJbnB1dH0gZnJvbSAnLi4vYWRhcHRlcnMvY29udGVudEFkYXB0ZXIuanMnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge3RyYW5zbGF0ZVRleHR9IGZyb20gJy4uL3V0aWxzL2dvb2dsZVRyYW5zbGF0ZS5qcyc7XG5pbXBvcnQge2V4dHJhY3RMYW5ndWFnZSwgaXNSZWdpb25hbExvY2FsZX0gZnJvbSAnLi4vdXRpbHMvbG9jYWxlVXRpbHMuanMnO1xuaW1wb3J0IHthZGRJdGVtLCBnZXRJdGVtQnksIGdldExpc3RCeSwgdXBkYXRlSXRlbX0gZnJvbSAnLi9jcnVkLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0NvbnRlbnRJbnB1dFR5cGUsIENvbnRlbnRPcHRpb25zLCBDb250ZW50VHlwZSwgTG9jYWxlfSBmcm9tICcuLi90eXBlcy9jb250ZW50LnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtGaWx0ZXJHcm91cH0gZnJvbSAnLi4vdXRpbHMvYXFsSGVscGVycy5qcyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnY29udGVudCc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnRPcHRpb25zID0gKG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGNhdGVnb3J5LFxuICAgIGlzQWN0aXZlID0gdHJ1ZSxcbiAgICBrZXksXG4gICAgbG9jYWxlXG4gIH0gPSBvcHRpb25zO1xuXG4gIHJldHVybiB7XG4gICAgY2F0ZWdvcnk6IGNhdGVnb3J5ID8gcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCkgOiB1bmRlZmluZWQsXG4gICAgaXNBY3RpdmUsXG4gICAga2V5OiBrZXkgPyBwYXJzZVN0cmluZyhrZXksIDIwMCkgOiB1bmRlZmluZWQsXG4gICAgbG9jYWxlXG4gIH07XG59O1xuXG5jb25zdCBidWlsZENvbnRlbnRGaWx0ZXJzID0gKG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge30pOiBGaWx0ZXJHcm91cCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtjYXRlZ29yeSwgaXNBY3RpdmUsIGtleSwgbG9jYWxlfSA9IHBhcnNlQ29udGVudE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGZpbHRlcnM6IGFueVtdID0gW107XG5cbiAgaWYoa2V5KSB7XG4gICAgZmlsdGVycy5wdXNoKHtmaWVsZDogJ2tleScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZToga2V5fSk7XG4gIH1cblxuICBpZihsb2NhbGUpIHtcbiAgICBmaWx0ZXJzLnB1c2goe2ZpZWxkOiAnbG9jYWxlJywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBsb2NhbGV9KTtcbiAgfVxuXG4gIGlmKGNhdGVnb3J5KSB7XG4gICAgZmlsdGVycy5wdXNoKHtmaWVsZDogJ2NhdGVnb3J5Jywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBjYXRlZ29yeX0pO1xuICB9XG5cbiAgaWYoaXNBY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGZpbHRlcnMucHVzaCh7ZmllbGQ6ICdpc0FjdGl2ZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogaXNBY3RpdmV9KTtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJzLmxlbmd0aCA+IDAgPyB7b3BlcmF0b3I6ICdBTkQnLCBmaWx0ZXJzfSBhcyBhbnkgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBidWlsZENvbnRlbnRNdXRhdGlvbiA9IChcbiAgY29udGVudElucHV0OiBDb250ZW50SW5wdXRUeXBlLFxuICBvcHRpb25zOiB7cmVhZG9ubHkgaW5jbHVkZUlkZW50aXR5PzogYm9vbGVhbn0gPSB7fVxuKTogUGFydGlhbDxDb250ZW50VHlwZT4gPT4ge1xuICBjb25zdCBwYXJzZWRDb250ZW50ID0gcGFyc2VDb250ZW50SW5wdXQoY29udGVudElucHV0KTtcbiAgY29uc3Qge1xuICAgIGNhdGVnb3J5LFxuICAgIGNvbnRlbnQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgaXNBY3RpdmUsXG4gICAga2V5LFxuICAgIGxvY2FsZTogcGFyc2VkTG9jYWxlXG4gIH0gPSBwYXJzZWRDb250ZW50O1xuICBjb25zdCB7aW5jbHVkZUlkZW50aXR5ID0gZmFsc2V9ID0gb3B0aW9ucztcbiAgY29uc3QgbG9jYWxlOiBMb2NhbGUgPSBwYXJzZWRMb2NhbGUgfHwgJ2VuJztcblxuICByZXR1cm4ge1xuICAgIC4uLihpbmNsdWRlSWRlbnRpdHkgJiYge2tleToga2V5ID8gcGFyc2VTdHJpbmcoa2V5LCAyMDApIDogdW5kZWZpbmVkLCBsb2NhbGV9KSxcbiAgICBjb250ZW50OiBjb250ZW50ICE9PSB1bmRlZmluZWQgPyBwYXJzZVN0cmluZyhjb250ZW50LCAxMDAwMCkgOiB1bmRlZmluZWQsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgPyAoZGVzY3JpcHRpb24gPyBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKSA6IHVuZGVmaW5lZCkgYXMgc3RyaW5nIDogdW5kZWZpbmVkLFxuICAgIGNhdGVnb3J5OiBjYXRlZ29yeSAhPT0gdW5kZWZpbmVkID8gKGNhdGVnb3J5ID8gcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCkgOiB1bmRlZmluZWQpIGFzIHN0cmluZyA6IHVuZGVmaW5lZCxcbiAgICBpc0FjdGl2ZVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnQgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGtleTogc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbik6IFByb21pc2U8Q29udGVudFR5cGUgfCBudWxsPiA9PiB7XG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBnZXRJdGVtQnk8Q29udGVudFR5cGU+KGNvbnRleHQsICdjb250ZW50JywgYnVpbGRDb250ZW50RmlsdGVycyh7a2V5LCBsb2NhbGUsIGlzQWN0aXZlOiB0cnVlfSkpO1xuICByZXR1cm4gY29udGVudCA/IHBhcnNlQ29udGVudEZyb21EYihjb250ZW50KSA6IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGVudFdpdGhGYWxsYmFjayA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAga2V5OiBzdHJpbmcsXG4gIGZhbGxiYWNrQ29udGVudDogc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IGFwcExvY2FsZSA9IChDb25maWcuZ2V0KCdhcHAubG9jYWxlJykgfHwgJ2VuJykgYXMgTG9jYWxlO1xuXG4gIHRyeSB7XG4gICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBnZXRDb250ZW50KGNvbnRleHQsIGtleSwgbG9jYWxlKTtcblxuICAgIGlmKGNvbnRlbnQ/LmNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBjb250ZW50LmNvbnRlbnQ7XG4gICAgfVxuXG4gICAgaWYoaXNSZWdpb25hbExvY2FsZShsb2NhbGUpKSB7XG4gICAgICBjb25zdCBsYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShsb2NhbGUpO1xuICAgICAgY29udGVudCA9IGF3YWl0IGdldENvbnRlbnQoY29udGV4dCwga2V5LCBsYW5ndWFnZSBhcyBMb2NhbGUpO1xuXG4gICAgICBpZihjb250ZW50Py5jb250ZW50KSB7XG4gICAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICBjb250ZW50OiBjb250ZW50LmNvbnRlbnQsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRXh0cmFjdGVkIGZyb20gJHtsYW5ndWFnZX1gXG4gICAgICAgIH0pLmNhdGNoKChzYXZlRXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgZXh0cmFjdGVkIGNvbnRlbnQ6Jywgc2F2ZUVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQuY29udGVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihsb2NhbGUgPT09IGFwcExvY2FsZSkge1xuICAgICAgaWYoZmFsbGJhY2tDb250ZW50KSB7XG4gICAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICBjb250ZW50OiBmYWxsYmFja0NvbnRlbnQsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQXV0by1nZW5lcmF0ZWQgZnJvbSBmYWxsYmFjaydcbiAgICAgICAgfSkuY2F0Y2goKHNhdmVFcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNhdmluZyBmYWxsYmFjayBjb250ZW50OicsIHNhdmVFcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsbGJhY2tDb250ZW50IHx8IGtleTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGxldCBzb3VyY2VDb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudChjb250ZXh0LCBrZXksIGFwcExvY2FsZSk7XG4gICAgICBsZXQgc291cmNlVGV4dDogc3RyaW5nO1xuXG4gICAgICBpZihzb3VyY2VDb250ZW50Py5jb250ZW50KSB7XG4gICAgICAgIHNvdXJjZVRleHQgPSBzb3VyY2VDb250ZW50LmNvbnRlbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZihpc1JlZ2lvbmFsTG9jYWxlKGFwcExvY2FsZSkpIHtcbiAgICAgICAgICBjb25zdCBhcHBMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShhcHBMb2NhbGUpO1xuICAgICAgICAgIHNvdXJjZUNvbnRlbnQgPSBhd2FpdCBnZXRDb250ZW50KGNvbnRleHQsIGtleSwgYXBwTGFuZ3VhZ2UgYXMgTG9jYWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKHNvdXJjZUNvbnRlbnQ/LmNvbnRlbnQpIHtcbiAgICAgICAgICBzb3VyY2VUZXh0ID0gc291cmNlQ29udGVudC5jb250ZW50O1xuICAgICAgICB9IGVsc2UgaWYoZmFsbGJhY2tDb250ZW50KSB7XG4gICAgICAgICAgc291cmNlVGV4dCA9IGZhbGxiYWNrQ29udGVudDtcblxuICAgICAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY29udGVudDogZmFsbGJhY2tDb250ZW50LFxuICAgICAgICAgICAgbG9jYWxlOiBhcHBMb2NhbGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F1dG8tZ2VuZXJhdGVkIGZyb20gZmFsbGJhY2snXG4gICAgICAgICAgfSkuY2F0Y2goKHNhdmVFcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIGZhbGxiYWNrIGFzIGRlZmF1bHQgY29udGVudDonLCBzYXZlRXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdHJhbnNsYXRlZFRleHQgPSBhd2FpdCB0cmFuc2xhdGVUZXh0KHNvdXJjZVRleHQsIGV4dHJhY3RMYW5ndWFnZShsb2NhbGUpLCBleHRyYWN0TGFuZ3VhZ2UoYXBwTG9jYWxlKSk7XG5cbiAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICBrZXksXG4gICAgICAgIGNvbnRlbnQ6IHRyYW5zbGF0ZWRUZXh0LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQXV0by10cmFuc2xhdGVkIGZyb20gJHthcHBMb2NhbGV9YFxuICAgICAgfSkuY2F0Y2goKHNhdmVFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgdHJhbnNsYXRlZCBjb250ZW50OicsIHNhdmVFcnJvcik7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRUZXh0O1xuICAgIH0gY2F0Y2godHJhbnNsYXRpb25FcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignVHJhbnNsYXRpb24gZXJyb3I6JywgdHJhbnNsYXRpb25FcnJvcik7XG5cbiAgICAgIHJldHVybiBmYWxsYmFja0NvbnRlbnQgfHwga2V5O1xuICAgIH1cbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbnRlbnQgZnJvbSBkYXRhYmFzZTonLCBlcnJvcik7XG4gICAgcmV0dXJuIGZhbGxiYWNrQ29udGVudCB8fCBrZXk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRDb250ZW50ID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb250ZW50SW5wdXQ6IENvbnRlbnRJbnB1dFR5cGVcbik6IFByb21pc2U8Q29udGVudFR5cGU+ID0+IHtcbiAgY29uc3Qge3Nlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgcGFyc2VkQ29udGVudCA9IHBhcnNlQ29udGVudElucHV0KGNvbnRlbnRJbnB1dCk7XG4gIGNvbnN0IHtcbiAgICBjYXRlZ29yeSxcbiAgICBjb250ZW50LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGlzQWN0aXZlLFxuICAgIGtleSxcbiAgICBsb2NhbGU6IHBhcnNlZExvY2FsZVxuICB9ID0gcGFyc2VkQ29udGVudDtcbiAgY29uc3QgbG9jYWxlOiBMb2NhbGUgPSBwYXJzZWRMb2NhbGUgfHwgJ2VuJztcbiAgY29uc3QgY29udGVudElkID0gY3JlYXRlSGFzaChgY29udGVudC0ke2tleX0tJHtsb2NhbGV9YCk7XG4gIGNvbnN0IGluc2VydDogQ29udGVudFR5cGUgPSB7XG4gICAgX2tleTogY29udGVudElkLFxuICAgIGtleTogcGFyc2VTdHJpbmcoa2V5LCAyMDApLFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhjb250ZW50LCAxMDAwMCksXG4gICAgLi4uKGRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgJiYge2Rlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiA/IHBhcnNlU3RyaW5nKGRlc2NyaXB0aW9uLCA1MDApIDogdW5kZWZpbmVkfSksXG4gICAgLi4uKGNhdGVnb3J5ICE9PSB1bmRlZmluZWQgJiYge2NhdGVnb3J5OiBjYXRlZ29yeSA/IHBhcnNlU3RyaW5nKGNhdGVnb3J5LCAxMDApIDogdW5kZWZpbmVkfSksXG4gICAgLi4uKGlzQWN0aXZlICE9PSB1bmRlZmluZWQgJiYge2lzQWN0aXZlfSksXG4gICAgdXNlcklkOiBzZXNzaW9uPy51c2VySWQgYXMgc3RyaW5nXG4gIH07XG5cbiAgY29uc3Qgc2F2ZWRDb250ZW50ID0gYXdhaXQgYWRkSXRlbTxDb250ZW50VHlwZT4oY29udGV4dCwgJ2NvbnRlbnQnLCBpbnNlcnQpO1xuICByZXR1cm4gcGFyc2VDb250ZW50RnJvbURiKHNhdmVkQ29udGVudCk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udGVudCA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udGVudElucHV0OiBDb250ZW50SW5wdXRUeXBlXG4pOiBQcm9taXNlPENvbnRlbnRUeXBlPiA9PiB7XG4gIGNvbnN0IHBhcnNlZENvbnRlbnQgPSBwYXJzZUNvbnRlbnRJbnB1dChjb250ZW50SW5wdXQpO1xuICBjb25zdCB7Y29udGVudElkfSA9IHBhcnNlZENvbnRlbnQ7XG5cbiAgaWYoIWNvbnRlbnRJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29udGVudCBJRCBpcyByZXF1aXJlZCBmb3IgdXBkYXRlJyk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQ29udGVudCA9IGF3YWl0IHVwZGF0ZUl0ZW08Q29udGVudFR5cGU+KGNvbnRleHQsICdjb250ZW50JywgY29udGVudElkLCBidWlsZENvbnRlbnRNdXRhdGlvbihjb250ZW50SW5wdXQpKTtcblxuICBpZighdXBkYXRlZENvbnRlbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRlbnQgbm90IGZvdW5kIG9yIGFjY2VzcyBkZW5pZWQnKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZUNvbnRlbnRGcm9tRGIodXBkYXRlZENvbnRlbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaENvbnRlbnQgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge31cbik6IFByb21pc2U8Q29udGVudFR5cGVbXT4gPT4ge1xuICBjb25zdCBjb250ZW50TGlzdCA9IGF3YWl0IGdldExpc3RCeTxDb250ZW50VHlwZT4oXG4gICAgY29udGV4dCxcbiAgICAnY29udGVudCcsXG4gICAgYnVpbGRDb250ZW50RmlsdGVycyhvcHRpb25zKSxcbiAgICB7c29ydDogW3tmaWVsZDogJ2tleScsIGRpcmVjdGlvbjogJ0FTQyd9LCB7ZmllbGQ6ICdsb2NhbGUnLCBkaXJlY3Rpb246ICdBU0MnfV19XG4gICk7XG5cbiAgcmV0dXJuIGNvbnRlbnRMaXN0Lm1hcCgoY29udGVudCkgPT4gcGFyc2VDb250ZW50RnJvbURiKGNvbnRlbnQpKTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsInBhcnNlU3RyaW5nIiwicGFyc2VDb250ZW50RnJvbURiIiwicGFyc2VDb250ZW50SW5wdXQiLCJDb25maWciLCJ0cmFuc2xhdGVUZXh0IiwiZXh0cmFjdExhbmd1YWdlIiwiaXNSZWdpb25hbExvY2FsZSIsImFkZEl0ZW0iLCJnZXRJdGVtQnkiLCJnZXRMaXN0QnkiLCJ1cGRhdGVJdGVtIiwiZXZlbnRDYXRlZ29yeSIsInBhcnNlQ29udGVudE9wdGlvbnMiLCJvcHRpb25zIiwiY2F0ZWdvcnkiLCJpc0FjdGl2ZSIsImtleSIsImxvY2FsZSIsInVuZGVmaW5lZCIsImJ1aWxkQ29udGVudEZpbHRlcnMiLCJmaWx0ZXJzIiwicHVzaCIsImZpZWxkIiwib3BlcmF0b3IiLCJ2YWx1ZSIsImxlbmd0aCIsImJ1aWxkQ29udGVudE11dGF0aW9uIiwiY29udGVudElucHV0IiwicGFyc2VkQ29udGVudCIsImNvbnRlbnQiLCJkZXNjcmlwdGlvbiIsInBhcnNlZExvY2FsZSIsImluY2x1ZGVJZGVudGl0eSIsImdldENvbnRlbnQiLCJjb250ZXh0IiwiZ2V0Q29udGVudFdpdGhGYWxsYmFjayIsImZhbGxiYWNrQ29udGVudCIsImFwcExvY2FsZSIsImdldCIsImxhbmd1YWdlIiwiYWRkQ29udGVudCIsImNhdGNoIiwic2F2ZUVycm9yIiwiY29uc29sZSIsImVycm9yIiwic291cmNlQ29udGVudCIsInNvdXJjZVRleHQiLCJhcHBMYW5ndWFnZSIsInRyYW5zbGF0ZWRUZXh0IiwidHJhbnNsYXRpb25FcnJvciIsInNlc3Npb24iLCJjb250ZW50SWQiLCJpbnNlcnQiLCJfa2V5IiwidXNlcklkIiwic2F2ZWRDb250ZW50IiwidXBkYXRlQ29udGVudCIsIkVycm9yIiwidXBkYXRlZENvbnRlbnQiLCJzZWFyY2hDb250ZW50IiwiY29udGVudExpc3QiLCJzb3J0IiwiZGlyZWN0aW9uIiwibWFwIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxVQUFVLEVBQUVDLFdBQVcsUUFBTywrQkFBK0I7QUFFckUsU0FBUUMsa0JBQWtCLEVB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
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvY29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5cbmltcG9ydCB7cGFyc2VDb250ZW50RnJvbURiLCBwYXJzZUNvbnRlbnRJbnB1dH0gZnJvbSAnLi4vYWRhcHRlcnMvY29udGVudEFkYXB0ZXIuanMnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge3RyYW5zbGF0ZVRleHR9IGZyb20gJy4uL3V0aWxzL2dvb2dsZVRyYW5zbGF0ZS5qcyc7XG5pbXBvcnQge2V4dHJhY3RMYW5ndWFnZSwgaXNSZWdpb25hbExvY2FsZX0gZnJvbSAnLi4vdXRpbHMvbG9jYWxlVXRpbHMuanMnO1xuaW1wb3J0IHthZGRJdGVtLCBnZXRJdGVtQnksIGdldExpc3RCeSwgdXBkYXRlSXRlbX0gZnJvbSAnLi9jcnVkLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0NvbnRlbnRJbnB1dFR5cGUsIENvbnRlbnRPcHRpb25zLCBDb250ZW50VHlwZSwgTG9jYWxlfSBmcm9tICcuLi90eXBlcy9jb250ZW50LnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtGaWx0ZXJHcm91cH0gZnJvbSAnLi4vdXRpbHMvYXFsSGVscGVycy5qcyc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnRPcHRpb25zID0gKG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGNhdGVnb3J5LFxuICAgIGlzQWN0aXZlID0gdHJ1ZSxcbiAgICBrZXksXG4gICAgbG9jYWxlXG4gIH0gPSBvcHRpb25zO1xuXG4gIHJldHVybiB7XG4gICAgY2F0ZWdvcnk6IGNhdGVnb3J5ID8gcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCkgOiB1bmRlZmluZWQsXG4gICAgaXNBY3RpdmUsXG4gICAga2V5OiBrZXkgPyBwYXJzZVN0cmluZyhrZXksIDIwMCkgOiB1bmRlZmluZWQsXG4gICAgbG9jYWxlXG4gIH07XG59O1xuXG5jb25zdCBidWlsZENvbnRlbnRGaWx0ZXJzID0gKG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge30pOiBGaWx0ZXJHcm91cCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtjYXRlZ29yeSwgaXNBY3RpdmUsIGtleSwgbG9jYWxlfSA9IHBhcnNlQ29udGVudE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGZpbHRlcnM6IGFueVtdID0gW107XG5cbiAgaWYoa2V5KSB7XG4gICAgZmlsdGVycy5wdXNoKHtmaWVsZDogJ2tleScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZToga2V5fSk7XG4gIH1cblxuICBpZihsb2NhbGUpIHtcbiAgICBmaWx0ZXJzLnB1c2goe2ZpZWxkOiAnbG9jYWxlJywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBsb2NhbGV9KTtcbiAgfVxuXG4gIGlmKGNhdGVnb3J5KSB7XG4gICAgZmlsdGVycy5wdXNoKHtmaWVsZDogJ2NhdGVnb3J5Jywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBjYXRlZ29yeX0pO1xuICB9XG5cbiAgaWYoaXNBY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGZpbHRlcnMucHVzaCh7ZmllbGQ6ICdpc0FjdGl2ZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogaXNBY3RpdmV9KTtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJzLmxlbmd0aCA+IDAgPyB7b3BlcmF0b3I6ICdBTkQnLCBmaWx0ZXJzfSBhcyBhbnkgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBidWlsZENvbnRlbnRNdXRhdGlvbiA9IChcbiAgY29udGVudElucHV0OiBDb250ZW50SW5wdXRUeXBlLFxuICBvcHRpb25zOiB7cmVhZG9ubHkgaW5jbHVkZUlkZW50aXR5PzogYm9vbGVhbn0gPSB7fVxuKTogUGFydGlhbDxDb250ZW50VHlwZT4gPT4ge1xuICBjb25zdCBwYXJzZWRDb250ZW50ID0gcGFyc2VDb250ZW50SW5wdXQoY29udGVudElucHV0KTtcbiAgY29uc3Qge1xuICAgIGNhdGVnb3J5LFxuICAgIGNvbnRlbnQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgaXNBY3RpdmUsXG4gICAga2V5LFxuICAgIGxvY2FsZTogcGFyc2VkTG9jYWxlXG4gIH0gPSBwYXJzZWRDb250ZW50O1xuICBjb25zdCB7aW5jbHVkZUlkZW50aXR5ID0gZmFsc2V9ID0gb3B0aW9ucztcbiAgY29uc3QgbG9jYWxlOiBMb2NhbGUgPSBwYXJzZWRMb2NhbGUgfHwgJ2VuJztcblxuICByZXR1cm4ge1xuICAgIC4uLihpbmNsdWRlSWRlbnRpdHkgJiYge2tleToga2V5ID8gcGFyc2VTdHJpbmcoa2V5LCAyMDApIDogdW5kZWZpbmVkLCBsb2NhbGV9KSxcbiAgICBjb250ZW50OiBjb250ZW50ICE9PSB1bmRlZmluZWQgPyBwYXJzZVN0cmluZyhjb250ZW50LCAxMDAwMCkgOiB1bmRlZmluZWQsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgPyAoZGVzY3JpcHRpb24gPyBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKSA6IHVuZGVmaW5lZCkgYXMgc3RyaW5nIDogdW5kZWZpbmVkLFxuICAgIGNhdGVnb3J5OiBjYXRlZ29yeSAhPT0gdW5kZWZpbmVkID8gKGNhdGVnb3J5ID8gcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCkgOiB1bmRlZmluZWQpIGFzIHN0cmluZyA6IHVuZGVmaW5lZCxcbiAgICBpc0FjdGl2ZVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnQgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGtleTogc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbik6IFByb21pc2U8Q29udGVudFR5cGUgfCBudWxsPiA9PiB7XG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBnZXRJdGVtQnk8Q29udGVudFR5cGU+KGNvbnRleHQsICdjb250ZW50JywgYnVpbGRDb250ZW50RmlsdGVycyh7a2V5LCBsb2NhbGUsIGlzQWN0aXZlOiB0cnVlfSkpO1xuICByZXR1cm4gY29udGVudCA/IHBhcnNlQ29udGVudEZyb21EYihjb250ZW50KSA6IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGVudFdpdGhGYWxsYmFjayA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAga2V5OiBzdHJpbmcsXG4gIGZhbGxiYWNrQ29udGVudDogc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IGFwcExvY2FsZSA9IChDb25maWcuZ2V0KCdhcHAubG9jYWxlJykgfHwgJ2VuJykgYXMgTG9jYWxlO1xuXG4gIHRyeSB7XG4gICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBnZXRDb250ZW50KGNvbnRleHQsIGtleSwgbG9jYWxlKTtcblxuICAgIGlmKGNvbnRlbnQ/LmNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBjb250ZW50LmNvbnRlbnQ7XG4gICAgfVxuXG4gICAgaWYoaXNSZWdpb25hbExvY2FsZShsb2NhbGUpKSB7XG4gICAgICBjb25zdCBsYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShsb2NhbGUpO1xuICAgICAgY29udGVudCA9IGF3YWl0IGdldENvbnRlbnQoY29udGV4dCwga2V5LCBsYW5ndWFnZSBhcyBMb2NhbGUpO1xuXG4gICAgICBpZihjb250ZW50Py5jb250ZW50KSB7XG4gICAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICBjb250ZW50OiBjb250ZW50LmNvbnRlbnQsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRXh0cmFjdGVkIGZyb20gJHtsYW5ndWFnZX1gXG4gICAgICAgIH0pLmNhdGNoKChzYXZlRXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgZXh0cmFjdGVkIGNvbnRlbnQ6Jywgc2F2ZUVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQuY29udGVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihsb2NhbGUgPT09IGFwcExvY2FsZSkge1xuICAgICAgaWYoZmFsbGJhY2tDb250ZW50KSB7XG4gICAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICBjb250ZW50OiBmYWxsYmFja0NvbnRlbnQsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQXV0by1nZW5lcmF0ZWQgZnJvbSBmYWxsYmFjaydcbiAgICAgICAgfSkuY2F0Y2goKHNhdmVFcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNhdmluZyBmYWxsYmFjayBjb250ZW50OicsIHNhdmVFcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsbGJhY2tDb250ZW50IHx8IGtleTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGxldCBzb3VyY2VDb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudChjb250ZXh0LCBrZXksIGFwcExvY2FsZSk7XG4gICAgICBsZXQgc291cmNlVGV4dDogc3RyaW5nO1xuXG4gICAgICBpZihzb3VyY2VDb250ZW50Py5jb250ZW50KSB7XG4gICAgICAgIHNvdXJjZVRleHQgPSBzb3VyY2VDb250ZW50LmNvbnRlbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZihpc1JlZ2lvbmFsTG9jYWxlKGFwcExvY2FsZSkpIHtcbiAgICAgICAgICBjb25zdCBhcHBMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShhcHBMb2NhbGUpO1xuICAgICAgICAgIHNvdXJjZUNvbnRlbnQgPSBhd2FpdCBnZXRDb250ZW50KGNvbnRleHQsIGtleSwgYXBwTGFuZ3VhZ2UgYXMgTG9jYWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKHNvdXJjZUNvbnRlbnQ/LmNvbnRlbnQpIHtcbiAgICAgICAgICBzb3VyY2VUZXh0ID0gc291cmNlQ29udGVudC5jb250ZW50O1xuICAgICAgICB9IGVsc2UgaWYoZmFsbGJhY2tDb250ZW50KSB7XG4gICAgICAgICAgc291cmNlVGV4dCA9IGZhbGxiYWNrQ29udGVudDtcblxuICAgICAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY29udGVudDogZmFsbGJhY2tDb250ZW50LFxuICAgICAgICAgICAgbG9jYWxlOiBhcHBMb2NhbGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F1dG8tZ2VuZXJhdGVkIGZyb20gZmFsbGJhY2snXG4gICAgICAgICAgfSkuY2F0Y2goKHNhdmVFcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIGZhbGxiYWNrIGFzIGRlZmF1bHQgY29udGVudDonLCBzYXZlRXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdHJhbnNsYXRlZFRleHQgPSBhd2FpdCB0cmFuc2xhdGVUZXh0KHNvdXJjZVRleHQsIGV4dHJhY3RMYW5ndWFnZShsb2NhbGUpLCBleHRyYWN0TGFuZ3VhZ2UoYXBwTG9jYWxlKSk7XG5cbiAgICAgIGFkZENvbnRlbnQoY29udGV4dCwge1xuICAgICAgICBrZXksXG4gICAgICAgIGNvbnRlbnQ6IHRyYW5zbGF0ZWRUZXh0LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQXV0by10cmFuc2xhdGVkIGZyb20gJHthcHBMb2NhbGV9YFxuICAgICAgfSkuY2F0Y2goKHNhdmVFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgdHJhbnNsYXRlZCBjb250ZW50OicsIHNhdmVFcnJvcik7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRUZXh0O1xuICAgIH0gY2F0Y2godHJhbnNsYXRpb25FcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignVHJhbnNsYXRpb24gZXJyb3I6JywgdHJhbnNsYXRpb25FcnJvcik7XG5cbiAgICAgIHJldHVybiBmYWxsYmFja0NvbnRlbnQgfHwga2V5O1xuICAgIH1cbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbnRlbnQgZnJvbSBkYXRhYmFzZTonLCBlcnJvcik7XG4gICAgcmV0dXJuIGZhbGxiYWNrQ29udGVudCB8fCBrZXk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRDb250ZW50ID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb250ZW50SW5wdXQ6IENvbnRlbnRJbnB1dFR5cGVcbik6IFByb21pc2U8Q29udGVudFR5cGU+ID0+IHtcbiAgY29uc3Qge3Nlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3QgcGFyc2VkQ29udGVudCA9IHBhcnNlQ29udGVudElucHV0KGNvbnRlbnRJbnB1dCk7XG4gIGNvbnN0IHtcbiAgICBjYXRlZ29yeSxcbiAgICBjb250ZW50LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGlzQWN0aXZlLFxuICAgIGtleSxcbiAgICBsb2NhbGU6IHBhcnNlZExvY2FsZVxuICB9ID0gcGFyc2VkQ29udGVudDtcbiAgY29uc3QgbG9jYWxlOiBMb2NhbGUgPSBwYXJzZWRMb2NhbGUgfHwgJ2VuJztcbiAgY29uc3QgY29udGVudElkID0gY3JlYXRlSGFzaChgY29udGVudC0ke2tleX0tJHtsb2NhbGV9YCk7XG4gIGNvbnN0IGluc2VydDogQ29udGVudFR5cGUgPSB7XG4gICAgX2tleTogY29udGVudElkLFxuICAgIGtleTogcGFyc2VTdHJpbmcoa2V5LCAyMDApLFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhjb250ZW50LCAxMDAwMCksXG4gICAgLi4uKGRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgJiYge2Rlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiA/IHBhcnNlU3RyaW5nKGRlc2NyaXB0aW9uLCA1MDApIDogdW5kZWZpbmVkfSksXG4gICAgLi4uKGNhdGVnb3J5ICE9PSB1bmRlZmluZWQgJiYge2NhdGVnb3J5OiBjYXRlZ29yeSA/IHBhcnNlU3RyaW5nKGNhdGVnb3J5LCAxMDApIDogdW5kZWZpbmVkfSksXG4gICAgLi4uKGlzQWN0aXZlICE9PSB1bmRlZmluZWQgJiYge2lzQWN0aXZlfSksXG4gICAgdXNlcklkOiBzZXNzaW9uPy51c2VySWQgYXMgc3RyaW5nXG4gIH07XG5cbiAgY29uc3Qgc2F2ZWRDb250ZW50ID0gYXdhaXQgYWRkSXRlbTxDb250ZW50VHlwZT4oY29udGV4dCwgJ2NvbnRlbnQnLCBpbnNlcnQpO1xuICByZXR1cm4gcGFyc2VDb250ZW50RnJvbURiKHNhdmVkQ29udGVudCk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udGVudCA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udGVudElucHV0OiBDb250ZW50SW5wdXRUeXBlXG4pOiBQcm9taXNlPENvbnRlbnRUeXBlPiA9PiB7XG4gIGNvbnN0IHBhcnNlZENvbnRlbnQgPSBwYXJzZUNvbnRlbnRJbnB1dChjb250ZW50SW5wdXQpO1xuICBjb25zdCB7Y29udGVudElkfSA9IHBhcnNlZENvbnRlbnQ7XG5cbiAgaWYoIWNvbnRlbnRJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29udGVudCBJRCBpcyByZXF1aXJlZCBmb3IgdXBkYXRlJyk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQ29udGVudCA9IGF3YWl0IHVwZGF0ZUl0ZW08Q29udGVudFR5cGU+KGNvbnRleHQsICdjb250ZW50JywgY29udGVudElkLCBidWlsZENvbnRlbnRNdXRhdGlvbihjb250ZW50SW5wdXQpKTtcblxuICBpZighdXBkYXRlZENvbnRlbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRlbnQgbm90IGZvdW5kIG9yIGFjY2VzcyBkZW5pZWQnKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZUNvbnRlbnRGcm9tRGIodXBkYXRlZENvbnRlbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaENvbnRlbnQgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIG9wdGlvbnM6IENvbnRlbnRPcHRpb25zID0ge31cbik6IFByb21pc2U8Q29udGVudFR5cGVbXT4gPT4ge1xuICBjb25zdCBjb250ZW50TGlzdCA9IGF3YWl0IGdldExpc3RCeTxDb250ZW50VHlwZT4oXG4gICAgY29udGV4dCxcbiAgICAnY29udGVudCcsXG4gICAgYnVpbGRDb250ZW50RmlsdGVycyhvcHRpb25zKSxcbiAgICB7c29ydDogW3tmaWVsZDogJ2tleScsIGRpcmVjdGlvbjogJ0FTQyd9LCB7ZmllbGQ6ICdsb2NhbGUnLCBkaXJlY3Rpb246ICdBU0MnfV19XG4gICk7XG5cbiAgcmV0dXJuIGNvbnRlbnRMaXN0Lm1hcCgoY29udGVudCkgPT4gcGFyc2VDb250ZW50RnJvbURiKGNvbnRlbnQpKTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsInBhcnNlU3RyaW5nIiwicGFyc2VDb250ZW50RnJvbURiIiwicGFyc2VDb250ZW50SW5wdXQiLCJDb25maWciLCJ0cmFuc2xhdGVUZXh0IiwiZXh0cmFjdExhbmd1YWdlIiwiaXNSZWdpb25hbExvY2FsZSIsImFkZEl0ZW0iLCJnZXRJdGVtQnkiLCJnZXRMaXN0QnkiLCJ1cGRhdGVJdGVtIiwicGFyc2VDb250ZW50T3B0aW9ucyIsIm9wdGlvbnMiLCJjYXRlZ29yeSIsImlzQWN0aXZlIiwia2V5IiwibG9jYWxlIiwidW5kZWZpbmVkIiwiYnVpbGRDb250ZW50RmlsdGVycyIsImZpbHRlcnMiLCJwdXNoIiwiZmllbGQiLCJvcGVyYXRvciIsInZhbHVlIiwibGVuZ3RoIiwiYnVpbGRDb250ZW50TXV0YXRpb24iLCJjb250ZW50SW5wdXQiLCJwYXJzZWRDb250ZW50IiwiY29udGVudCIsImRlc2NyaXB0aW9uIiwicGFyc2VkTG9jYWxlIiwiaW5jbHVkZUlkZW50aXR5IiwiZ2V0Q29udGVudCIsImNvbnRleHQiLCJnZXRDb250ZW50V2l0aEZhbGxiYWNrIiwiZmFsbGJhY2tDb250ZW50IiwiYXBwTG9jYWxlIiwiZ2V0IiwibGFuZ3VhZ2UiLCJhZGRDb250ZW50IiwiY2F0Y2giLCJzYXZlRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJzb3VyY2VDb250ZW50Iiwic291cmNlVGV4dCIsImFwcExhbmd1YWdlIiwidHJhbnNsYXRlZFRleHQiLCJ0cmFuc2xhdGlvbkVycm9yIiwic2Vzc2lvbiIsImNvbnRlbnRJZCIsImluc2VydCIsIl9rZXkiLCJ1c2VySWQiLCJzYXZlZENvbnRlbnQiLCJ1cGRhdGVDb250ZW50IiwiRXJyb3IiLCJ1cGRhdGVkQ29udGVudCIsInNlYXJjaENvbnRlbnQiLCJjb250ZW50TGlzdCIsInNvcnQiLCJkaXJlY3Rpb24iLCJtYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFVBQVUsRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUVyRSxTQUFRQyxrQkFBa0IsRUFBRUMsaUJBQWlCLFFBQU8sZ0NBQWdDO0FBQ3BGLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FB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