@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
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Copyright (c) 2026-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ import type { DocumentType } from './arangodb.types.js';
6
+ import type { UserInput, UserType } from './users.types.js';
7
+ export type MailingListStatus = 'active' | 'archived';
8
+ export type MailingListMemberStatus = 'active' | 'removed';
9
+ export type SupportTicketPriority = 'low' | 'normal' | 'high' | 'urgent';
10
+ export type SupportTicketStatus = 'open' | 'in_progress' | 'waiting_on_customer' | 'waiting_on_internal' | 'resolved' | 'closed';
11
+ export type SupportTicketType = 'delivery_issue' | 'refund_request' | 'bug_report' | 'account_issue' | 'general_support';
12
+ export type SupportTicketMessageVisibility = 'internal' | 'customer';
13
+ export interface MailingListType extends DocumentType {
14
+ readonly createdByUserId?: string;
15
+ readonly description?: string;
16
+ readonly mailingListId?: string;
17
+ readonly name?: string;
18
+ readonly status?: MailingListStatus;
19
+ }
20
+ export interface CustomerOrderType extends DocumentType {
21
+ readonly currency?: string;
22
+ readonly customerOrderId?: string;
23
+ readonly productIds?: readonly string[];
24
+ readonly purchasedAt?: number;
25
+ readonly shopifyCustomerId?: string;
26
+ readonly shopifyOrderId?: string;
27
+ readonly totalPrice?: number;
28
+ readonly user?: UserType;
29
+ readonly userId?: string;
30
+ }
31
+ export interface ShopifyProductType extends DocumentType {
32
+ readonly productId?: string;
33
+ readonly title?: string;
34
+ readonly variantId?: string;
35
+ }
36
+ export interface SupportTicketTypeData extends DocumentType {
37
+ readonly assignedToUserId?: string;
38
+ readonly description?: string;
39
+ readonly productId?: string;
40
+ readonly priority?: SupportTicketPriority;
41
+ readonly resolutionSummary?: string;
42
+ readonly resolvedAt?: number;
43
+ readonly closedAt?: number;
44
+ readonly shopifyOrderId?: string;
45
+ readonly status?: SupportTicketStatus;
46
+ readonly subject?: string;
47
+ readonly supportTicketId?: string;
48
+ readonly type?: SupportTicketType;
49
+ readonly user?: UserType;
50
+ readonly userId?: string;
51
+ }
52
+ export interface SupportTicketMessageType extends DocumentType {
53
+ readonly authorUserId?: string;
54
+ readonly body?: string;
55
+ readonly supportTicketId?: string;
56
+ readonly supportTicketMessageId?: string;
57
+ readonly visibility?: SupportTicketMessageVisibility;
58
+ }
59
+ export interface SupportTicketEventType extends DocumentType {
60
+ readonly actorUserId?: string;
61
+ readonly eventType?: string;
62
+ readonly fromValue?: string;
63
+ readonly metadata?: Record<string, unknown>;
64
+ readonly supportTicketEventId?: string;
65
+ readonly supportTicketId?: string;
66
+ readonly toValue?: string;
67
+ }
68
+ export interface CustomerNotificationType extends DocumentType {
69
+ readonly body?: string;
70
+ readonly customerNotificationId?: string;
71
+ readonly errorMessage?: string;
72
+ readonly providerMessageId?: string;
73
+ readonly sentAt?: number;
74
+ readonly status?: string;
75
+ readonly subject?: string;
76
+ readonly supportTicketId?: string;
77
+ readonly type?: string;
78
+ readonly userId?: string;
79
+ }
80
+ export interface ShopifyCustomerOrderInput {
81
+ readonly currency?: string;
82
+ readonly customer?: UserInput;
83
+ readonly productIds?: readonly string[];
84
+ readonly products?: readonly ShopifyProductType[];
85
+ readonly purchasedAt?: number;
86
+ readonly shopifyCustomerId: string;
87
+ readonly shopifyOrderId: string;
88
+ readonly totalPrice?: number;
89
+ }
@@ -15,4 +15,3 @@ export interface EmailType extends DocumentType {
15
15
  readonly user?: UserType;
16
16
  readonly vars?: Record<string, unknown>;
17
17
  }
18
- //# sourceMappingURL=email.types.d.ts.map
@@ -19,4 +19,3 @@ export declare const ErrorTypes: {
19
19
  export type SessionError = {
20
20
  readonly errors?: string[];
21
21
  };
22
- //# sourceMappingURL=error.types.d.ts.map
@@ -25,4 +25,3 @@ export type FileEdgeType = {
25
25
  readonly itemId?: string;
26
26
  readonly itemType?: string;
27
27
  };
28
- //# sourceMappingURL=files.types.d.ts.map
@@ -31,4 +31,3 @@ export type GoogleMapsResultType = {
31
31
  readonly geometry: GoogleMapsLocationType;
32
32
  readonly place_id: string;
33
33
  };
34
- //# sourceMappingURL=google.types.d.ts.map
@@ -20,4 +20,3 @@ export type GroupEdgeType = {
20
20
  readonly isValid?: boolean;
21
21
  readonly userId?: string;
22
22
  };
23
- //# sourceMappingURL=groups.types.d.ts.map
@@ -64,4 +64,3 @@ export type ImageOptions = {
64
64
  readonly to?: number;
65
65
  readonly type?: string;
66
66
  };
67
- //# sourceMappingURL=images.types.d.ts.map
@@ -8,6 +8,7 @@ export * from './auth.types.js';
8
8
  export * from './connections.types.js';
9
9
  export * from './content.types.js';
10
10
  export * from './conversations.types.js';
11
+ export * from './crm.types.js';
11
12
  export * from './email.types.js';
12
13
  export * from './error.types.js';
13
14
  export * from './files.types.js';
@@ -19,10 +20,10 @@ export * from './messages.types.js';
19
20
  export * from './notifications.types.js';
20
21
  export * from './payments.types.js';
21
22
  export * from './posts.types.js';
23
+ export * from './rum.types.js';
22
24
  export * from './personas.types.js';
23
25
  export * from './statistics.types.js';
24
26
  export * from './tags.types.js';
25
27
  export * from './users.types.js';
26
28
  export * from './videos.types.js';
27
29
  export * from './websockets.types.js';
28
- //# sourceMappingURL=index.d.ts.map
@@ -21,4 +21,3 @@ export interface LocationType extends DocumentType {
21
21
  readonly userId?: string;
22
22
  readonly zip?: string;
23
23
  }
24
- //# sourceMappingURL=locations.types.d.ts.map
@@ -21,4 +21,3 @@ export interface MessageType extends DocumentType {
21
21
  readonly userId?: string;
22
22
  }
23
23
  export type MessageInputType = Pick<MessageType, 'content' | 'conversationId' | 'files' | 'images' | 'itemId' | 'itemType' | 'messageId' | 'personaId' | 'read' | 'saved' | 'userId'>;
24
- //# sourceMappingURL=messages.types.d.ts.map
@@ -21,4 +21,3 @@ export type TwilioOptionsType = {
21
21
  readonly from?: string;
22
22
  readonly to?: string;
23
23
  };
24
- //# sourceMappingURL=notifications.types.d.ts.map
@@ -117,4 +117,3 @@ export type PaymentIOSInAppError = {
117
117
  readonly message?: string;
118
118
  readonly valid?: boolean;
119
119
  };
120
- //# sourceMappingURL=payments.types.d.ts.map
@@ -30,4 +30,3 @@ export interface PersonaType extends DocumentType {
30
30
  readonly zip?: string;
31
31
  readonly userId?: string;
32
32
  }
33
- //# sourceMappingURL=personas.types.d.ts.map
@@ -34,4 +34,3 @@ export type PostOptions = {
34
34
  readonly to?: number;
35
35
  readonly type?: string;
36
36
  };
37
- //# sourceMappingURL=posts.types.d.ts.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) 2026-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ export type RumProperty = boolean | number | string;
6
+ export interface RumEventInputType {
7
+ readonly eventId: string;
8
+ readonly journeyId: string;
9
+ readonly name: string;
10
+ readonly path?: string;
11
+ readonly properties?: Record<string, RumProperty>;
12
+ readonly sequence: number;
13
+ readonly timestamp: number;
14
+ readonly type: string;
15
+ }
16
+ export interface RumBatchInputType {
17
+ readonly appId: string;
18
+ readonly events: RumEventInputType[];
19
+ }
20
+ export interface RumTrackResultType {
21
+ readonly accepted: number;
22
+ readonly appId: string;
23
+ }
@@ -1,4 +1,3 @@
1
1
  export type StatisticsType = {
2
2
  readonly activeUsers: number;
3
3
  };
4
- //# sourceMappingURL=statistics.types.d.ts.map
@@ -17,4 +17,3 @@ export interface IsTaggedType extends DocumentType {
17
17
  readonly _to: string;
18
18
  readonly name: string;
19
19
  }
20
- //# sourceMappingURL=tags.types.d.ts.map
@@ -28,6 +28,13 @@ export interface UserType extends DocumentType {
28
28
  readonly lastActive?: number;
29
29
  readonly locale?: Locale;
30
30
  readonly mailingList?: boolean;
31
+ readonly crmTags?: readonly string[];
32
+ readonly emailDeliveryStatus?: string;
33
+ readonly lastPurchasedAt?: number;
34
+ readonly marketingConsentSource?: string;
35
+ readonly marketingOptIn?: boolean;
36
+ readonly marketingOptInAt?: number;
37
+ readonly marketingOptOutAt?: number;
31
38
  readonly name?: string;
32
39
  readonly password?: string;
33
40
  readonly phone?: string;
@@ -45,6 +52,9 @@ export interface UserType extends DocumentType {
45
52
  readonly stripeCardId?: string;
46
53
  readonly stripeCardLast4?: string;
47
54
  readonly stripeCustomerId?: string;
55
+ readonly shopifyCustomerId?: string;
56
+ readonly totalOrderCount?: number;
57
+ readonly totalSpend?: number;
48
58
  readonly thumbId?: string;
49
59
  readonly thumbUrl?: string;
50
60
  readonly timezone?: string;
@@ -90,6 +100,13 @@ export type UserInput = {
90
100
  readonly lastActive?: number;
91
101
  readonly locale?: Locale;
92
102
  readonly mailingList?: boolean;
103
+ readonly crmTags?: readonly string[];
104
+ readonly emailDeliveryStatus?: string;
105
+ readonly lastPurchasedAt?: number;
106
+ readonly marketingConsentSource?: string;
107
+ readonly marketingOptIn?: boolean;
108
+ readonly marketingOptInAt?: number;
109
+ readonly marketingOptOutAt?: number;
93
110
  readonly name?: string;
94
111
  readonly password?: string;
95
112
  readonly phone?: string;
@@ -107,6 +124,9 @@ export type UserInput = {
107
124
  readonly stripeCardId?: string;
108
125
  readonly stripeCardLast4?: string;
109
126
  readonly stripeCustomerId?: string;
127
+ readonly shopifyCustomerId?: string;
128
+ readonly totalOrderCount?: number;
129
+ readonly totalSpend?: number;
110
130
  readonly thumbId?: string;
111
131
  readonly thumbUrl?: string;
112
132
  readonly timezone?: string;
@@ -126,4 +146,3 @@ export type PasscodeType = {
126
146
  readonly passExpires?: number;
127
147
  readonly passcode?: string;
128
148
  };
129
- //# sourceMappingURL=users.types.d.ts.map
@@ -82,4 +82,3 @@ export type VideoMultipartUploadType = {
82
82
  readonly video?: VideoType;
83
83
  readonly videoId: string;
84
84
  };
85
- //# sourceMappingURL=videos.types.d.ts.map
@@ -41,4 +41,3 @@ export interface WebsocketTypingType {
41
41
  }>;
42
42
  readonly username?: string;
43
43
  }
44
- //# sourceMappingURL=websockets.types.d.ts.map
@@ -9,4 +9,3 @@ export type UploadHandlerOptions = {
9
9
  readonly parseContext: UploadContextParser;
10
10
  };
11
11
  export declare const createUploadHandler: ({ allowedCorsOrigins, configureReaktor, defaultCorsOrigin, parseContext }: UploadHandlerOptions) => (event: APIGatewayProxyEvent, _lambdaContext: Context) => Promise<APIGatewayProxyResult>;
12
- //# sourceMappingURL=upload.d.ts.map
@@ -3,4 +3,3 @@
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
5
  export declare const removeEmptyKeys: (obj: any) => any;
6
- //# sourceMappingURL=adapterUtils.d.ts.map
@@ -23,4 +23,3 @@ export declare class UserError extends Error {
23
23
  export declare const logError: (params: ReaktorLogParams, error?: ReaktorError, context?: ApiContext) => Promise<unknown>;
24
24
  export declare const logException: (params: ReaktorLogParams, context: ApiContext) => Promise<unknown>;
25
25
  export declare const logInfo: (params: any) => void;
26
- //# sourceMappingURL=analyticsUtils.d.ts.map
@@ -45,6 +45,10 @@ export declare const buildUserConnectionQuery: (fromUserId: string, toUserId: st
45
45
  export declare const sanitizeCollectionName: (collection: string) => string;
46
46
  export declare const sanitizeFieldName: (field: string) => string;
47
47
  export declare const buildFilterClause: (filters: FilterGroup, docVar?: string) => string;
48
+ export declare const buildPresentFilterGroup: (values: Record<string, unknown>, options?: {
49
+ readonly logic?: 'AND' | 'OR';
50
+ readonly operator?: FilterCondition['operator'];
51
+ }) => FilterGroup;
48
52
  export declare const buildSortClause: (sort: SortOption[], docVar?: string) => string;
49
53
  export declare const buildLimitClause: (limit?: LimitOption) => string;
50
54
  export declare const buildFieldSelection: (fields?: string[], includeCustomFields?: boolean, docVar?: string) => string;
@@ -53,4 +57,3 @@ export declare const buildFullTextSearch: (searchOptions: {
53
57
  query: string;
54
58
  view?: string;
55
59
  }, docVar?: string) => string;
56
- //# sourceMappingURL=aqlHelpers.d.ts.map
@@ -68,4 +68,3 @@ export declare const getLimit: (start?: number, to?: number) => ArangoDbLimit;
68
68
  export declare const selectReactionCountByType: (objectType: string, objectKey: string, field: string, selects: any) => any;
69
69
  export declare const sortIds: (ids: string[], sort?: string) => string[];
70
70
  export declare const getGqlFields: (info: any) => string[];
71
- //# sourceMappingURL=arangodbUtils.d.ts.map
@@ -21,4 +21,3 @@ export declare const getLambdaData: (data: LambdaData | string) => {
21
21
  export declare const parseJsonData: (data: any) => any;
22
22
  export declare const isAuthenticated: (context: ApiContext, userId?: string) => boolean;
23
23
  export declare const createContext: (context: ApiContext, event: any) => Promise<ApiContext>;
24
- //# sourceMappingURL=authUtils.d.ts.map
@@ -3,4 +3,3 @@ export declare const getAwsCredentials: () => {
3
3
  readonly secretAccessKey: string;
4
4
  readonly sessionToken?: string;
5
5
  } | undefined;
6
- //# sourceMappingURL=awsUtils.d.ts.map
@@ -55,4 +55,3 @@ declare class CollectionRegistry {
55
55
  }
56
56
  export declare const registry: CollectionRegistry;
57
57
  export {};
58
- //# sourceMappingURL=collectionRegistry.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { APIGatewayEvent } from 'aws-lambda';
2
2
  import type { LanguageDetectionContext } from './languageDetection.js';
3
3
  export declare const extractLanguageContext: (event: APIGatewayEvent) => LanguageDetectionContext;
4
- //# sourceMappingURL=contextUtils.d.ts.map
@@ -8,4 +8,3 @@ export declare const dbI18nMultiple: (context: ApiContext, translations: Array<{
8
8
  }>) => Promise<string[]>;
9
9
  export declare const dbI18nWithInterpolation: (context: ApiContext, key: string, fallbackContent: string, interpolation?: Record<string, any>, locale?: Locale) => Promise<string>;
10
10
  export declare const dbI18nBatch: (context: ApiContext, keys: string[], fallbackMap: Record<string, string>, locale?: Locale) => Promise<Record<string, string>>;
11
- //# sourceMappingURL=dbI18n.d.ts.map
@@ -18,4 +18,3 @@ export declare function generateWelcomeEmail(context: ApiContext, username: stri
18
18
  export declare function generateNotificationMessages(context: ApiContext, locale?: Locale): Promise<Record<string, string>>;
19
19
  export declare function getErrorMessage(context: ApiContext, errorCode: string, locale?: Locale): Promise<string>;
20
20
  export declare function getUserGreeting(context: ApiContext, userLocale?: string): Promise<string>;
21
- //# sourceMappingURL=dbI18n.example.d.ts.map
@@ -4,4 +4,3 @@
4
4
  */
5
5
  export declare const translateText: (text: string, targetLanguage: string, sourceLanguage?: string) => Promise<string>;
6
6
  export declare const translateBatch: (texts: string[], targetLanguage: string, sourceLanguage?: string) => Promise<string[]>;
7
- //# sourceMappingURL=googleTranslate.d.ts.map
@@ -1,11 +1,10 @@
1
1
  import type { ApiContext } from '../types/auth.types.js';
2
2
  export declare const getRequestedFields: (info: any) => string[];
3
3
  export declare const enhanceContextWithFields: (baseContext: ApiContext) => (root: any, args: any, context: any, info: any) => {
4
- fields: string[];
5
4
  config?: import("../config.js").AppConfig;
6
5
  context?: any;
7
6
  databaseName?: string;
8
7
  languageContext?: import("./languageDetection.js").LanguageDetectionContext;
9
8
  session?: import("./sessionUtils.js").Session;
9
+ fields: string[];
10
10
  };
11
- //# sourceMappingURL=graphqlUtils.d.ts.map
@@ -0,0 +1 @@
1
+ export declare const getImageExtension: (fileType?: string) => 'jpg' | 'png';
@@ -17,4 +17,3 @@ export * from './schemaUtils.js';
17
17
  export * from './sessionUtils.js';
18
18
  export * from './templateUtils.js';
19
19
  export * from './translationQueue.js';
20
- //# sourceMappingURL=index.d.ts.map
@@ -6,4 +6,3 @@ export interface LanguageDetectionContext {
6
6
  userPreference?: Locale;
7
7
  }
8
8
  export declare const detectLanguage: (context: LanguageDetectionContext) => Locale;
9
- //# sourceMappingURL=languageDetection.d.ts.map
@@ -9,4 +9,3 @@ export declare const getFallbackChain: (locale: string) => string[];
9
9
  export declare const getPrimaryLanguages: () => string[];
10
10
  export declare const isValidLocale: (locale: string) => locale is Locale;
11
11
  export declare const getSupportedLocales: () => Locale[];
12
- //# sourceMappingURL=localeUtils.d.ts.map
@@ -2,5 +2,5 @@
2
2
  * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
+ export declare const completeTranslationWorkflow: (userLocale?: string, appLocale?: string) => Promise<void>;
5
6
  export declare const runLocaleExamples: () => Promise<void>;
6
- //# sourceMappingURL=localeUtils.example.d.ts.map
@@ -1,3 +1,2 @@
1
1
  import type { ApiContext } from '../types/auth.types.js';
2
2
  export declare const addFieldsToContext: (resolve: Function, parent: any, args: any, context: ApiContext, info: any) => any;
3
- //# sourceMappingURL=middlewareUtils.d.ts.map
@@ -28,4 +28,3 @@ export declare const validateSearchOptions: (options: SearchOptions) => void;
28
28
  * Validate aggregation options
29
29
  */
30
30
  export declare const validateAggregationOptions: (options: AggregationOptions) => void;
31
- //# sourceMappingURL=queryBuilder.d.ts.map
@@ -3,4 +3,3 @@ export declare const getReaktorMutationFields: (fieldNames: string[]) => string;
3
3
  export declare const getReaktorQueryFields: (fieldNames: string[]) => string;
4
4
  export declare const buildCustomMutations: (fieldNames: string[]) => string;
5
5
  export declare const buildCustomQueries: (fieldNames: string[]) => string;
6
- //# sourceMappingURL=schemaUtils.d.ts.map
@@ -23,4 +23,3 @@ export declare const getSession: (token: string) => Session;
23
23
  export declare const ADMIN_ACCESS_LEVEL = -1;
24
24
  export declare const isAdminUser: (subject?: AccessSubject) => boolean;
25
25
  export declare const hasAccessLevel: (subject: AccessSubject | undefined, accessLevel: number) => boolean;
26
- //# sourceMappingURL=sessionUtils.d.ts.map
@@ -3,6 +3,5 @@
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
5
  import stripe from 'stripe';
6
- export declare const stripeApiVersion = "2026-02-25.clover";
6
+ export declare const stripeApiVersion = "2026-07-29.dahlia";
7
7
  export declare const getStripeClient: () => stripe;
8
- //# sourceMappingURL=stripeUtils.d.ts.map
@@ -1,4 +1,3 @@
1
1
  export type TemplateParams = Record<string, string>;
2
2
  export declare const parseTemplate: (template: string, params: TemplateParams) => string;
3
3
  export declare const createTemplate: <T extends TemplateParams>(templateString: string, params: T) => string;
4
- //# sourceMappingURL=templateUtils.d.ts.map
@@ -89,4 +89,3 @@ export declare const createUtilsTestSuite: (name: string, utilsPath: string, tes
89
89
  expectedOutput: TestReturnValue;
90
90
  }>) => void;
91
91
  export {};
92
- //# sourceMappingURL=testUtils.d.ts.map
@@ -27,4 +27,3 @@ export declare const flush: () => Promise<void>;
27
27
  export declare const clear: () => void;
28
28
  export type { TranslationObject };
29
29
  export { translationQueue };
30
- //# sourceMappingURL=translationQueue.d.ts.map
@@ -31,4 +31,3 @@ export declare function getNotificationMessages(context: ApiContext, locale?: Lo
31
31
  export declare function performanceComparison(context: ApiContext): Promise<Record<string, string>>;
32
32
  export declare function getUserGreeting(context: ApiContext, userLocale?: string, username?: string): Promise<string>;
33
33
  export declare function ensureAllTranslationsProcessed(): Promise<void>;
34
- //# sourceMappingURL=translationQueue.example.d.ts.map
@@ -11,14 +11,14 @@ type MediaConvertJobState = {
11
11
  };
12
12
  };
13
13
  export type ReaktorConfigureHandler = () => void;
14
- export declare const mediaConvertHandler: (event: EventBridgeEvent<"MediaConvert Job State Change", MediaConvertJobState>) => Promise<{
14
+ export declare const mediaConvertHandler: (event: EventBridgeEvent<'MediaConvert Job State Change', MediaConvertJobState>) => Promise<{
15
15
  statusCode: number;
16
16
  }>;
17
17
  export declare const mediaConvertBackfillHandler: () => Promise<{
18
18
  body: string;
19
19
  statusCode: number;
20
20
  }>;
21
- export declare const createMediaConvertHandler: (configureReaktor: ReaktorConfigureHandler) => (event: EventBridgeEvent<"MediaConvert Job State Change", MediaConvertJobState>) => Promise<{
21
+ export declare const createMediaConvertHandler: (configureReaktor: ReaktorConfigureHandler) => (event: EventBridgeEvent<'MediaConvert Job State Change', MediaConvertJobState>) => Promise<{
22
22
  statusCode: number;
23
23
  }>;
24
24
  export declare const createMediaConvertBackfillHandler: (configureReaktor: ReaktorConfigureHandler) => () => Promise<{
@@ -26,4 +26,3 @@ export declare const createMediaConvertBackfillHandler: (configureReaktor: Reakt
26
26
  statusCode: number;
27
27
  }>;
28
28
  export {};
29
- //# sourceMappingURL=videoProcessing.d.ts.map
@@ -155,7 +155,7 @@ export const updateApp = async (context, app)=>{
155
155
  return await updateItem(context, 'apps', appIdParsed, buildAppMutation(app));
156
156
  };
157
157
  export const deleteApp = async (context, app)=>{
158
- const { databaseName, session = {} } = context;
158
+ const { session = {} } = context;
159
159
  const isAdmin = isAdminUser(session);
160
160
  if (!isAdmin) {
161
161
  return Promise.reject(new UserError(ErrorTypes.INVALID_SESSION));
@@ -218,4 +218,4 @@ export const getApps = async (context, options)=>{
218
218
  });
219
219
  };
220
220
 
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvYXBwcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUFyYW5nb0lkLCBwYXJzZUVtYWlsLCBwYXJzZUlkLCBwYXJzZVBob25lLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbiwgVXNlckVycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldERvY0lkLCBnZXRMaW1pdCwgc2VsZWN0UmVhY3Rpb25Db3VudEJ5VHlwZX0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2lzQWRtaW5Vc2VyfSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHthZGRJdGVtLCBkZWxldGVJdGVtLCBnZXRJdGVtQnksIGdldExpc3RCeSwgdXBkYXRlSXRlbX0gZnJvbSAnLi9jcnVkLmpzJztcblxuaW1wb3J0IHR5cGUge0FwcFR5cGV9IGZyb20gJy4uL3R5cGVzL2FwcHMudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1Nlc3Npb259IGZyb20gJy4uL3V0aWxzL3Nlc3Npb25VdGlscy5qcyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnYXBwcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0QXBwT3B0aW9uYWwgPSAoZmllbGRzOiBzdHJpbmdbXSA9IFtdKSA9PlxuICBmaWVsZHMucmVkdWNlKChzZWxlY3RzLCBmaWVsZDogc3RyaW5nKSA9PiB7XG4gICAgaWYoZmllbGQuaW5jbHVkZXMoJ0NvdW50JykpIHtcbiAgICAgIHJldHVybiBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlKCdhcHBzJywgJ2EnLCBmaWVsZCwgc2VsZWN0cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdHM7XG4gIH0sIHtvYmplY3RzOiBbXSwgcXVlcmllczogW119KTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQXBwT3B0aW9ucyA9IChvcHRpb25zOiBBcHBPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBsaW1pdFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRBcHBHZXRGaWx0ZXJzID0gKHtpZCwga2V5LCBuYW1lfTogQXBwT3B0aW9ucyk6IHtsb2dpYzogJ0FORCc7IGNvbmRpdGlvbnM6IGFueVtdfSA9PiB7XG4gIGNvbnN0IGNvbmRpdGlvbnM6IGFueVtdID0gW3tmaWVsZDogJ2FjdGl2ZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogdHJ1ZX1dO1xuXG4gIGlmKGlkKSB7XG4gICAgY29uZGl0aW9ucy5wdXNoKHtmaWVsZDogJ19pZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogcGFyc2VBcmFuZ29JZChpZCl9KTtcbiAgfVxuXG4gIGlmKGtleSkge1xuICAgIGNvbmRpdGlvbnMucHVzaCh7ZmllbGQ6ICdfa2V5Jywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBwYXJzZUlkKGtleSl9KTtcbiAgfVxuXG4gIGlmKG5hbWUpIHtcbiAgICBjb25kaXRpb25zLnB1c2goe2ZpZWxkOiAnbmFtZScsIG9wZXJhdG9yOiAnQ09OVEFJTlMnLCB2YWx1ZTogcGFyc2VTdHJpbmcobmFtZSl9KTtcbiAgfVxuXG4gIHJldHVybiB7bG9naWM6ICdBTkQnLCBjb25kaXRpb25zfTtcbn07XG5cbmNvbnN0IGdldEFwcFF1ZXJ5T3B0aW9ucyA9IChmaWVsZHM6IHN0cmluZ1tdID0gW10pID0+IHtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0QXBwT3B0aW9uYWwoZmllbGRzKTtcblxuICByZXR1cm4ge1xuICAgIGN1c3RvbU9iamVjdHM6IHNlbGVjdE9iamVjdHMubGVuZ3RoID4gMCA/IHNlbGVjdE9iamVjdHMgOiB1bmRlZmluZWQsXG4gICAgY3VzdG9tUXVlcmllczogc2VsZWN0UXVlcmllcy5sZW5ndGggPiAwID8gc2VsZWN0UXVlcmllcyA6IHVuZGVmaW5lZFxuICB9O1xufTtcblxuY29uc3QgZ2V0QXBwS2V5ID0gKGFwcDogQXBwVHlwZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtfa2V5LCBfaWQsIGlkLCBhcHBJZH0gPSBhcHA7XG4gIHJldHVybiBfa2V5IHx8IGlkIHx8IGFwcElkIHx8IF9pZD8uc3BsaXQoJy8nKVsxXTtcbn07XG5cbmNvbnN0IGJ1aWxkQXBwTXV0YXRpb24gPSAoYXBwOiBBcHBUeXBlKTogUGFydGlhbDxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IHtlbWFpbCA9ICcnLCBuYW1lID0gJycsIHBob25lID0gJyd9ID0gYXBwO1xuXG4gIHJldHVybiB7XG4gICAgZW1haWw6IHBhcnNlRW1haWwoZW1haWwpLFxuICAgIG5hbWU6IHBhcnNlU3RyaW5nKG5hbWUpLFxuICAgIHBob25lOiBwYXJzZVBob25lKHBob25lKVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZEFwcCA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0LCBhcHA6IEFwcFR5cGUpOiBQcm9taXNlPEFwcFR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2FkZEFwcCc7XG4gIGNvbnN0IHtuYW1lID0gJyd9ID0gYXBwO1xuICBjb25zdCBpbnNlcnREYXRhID0gYnVpbGRBcHBNdXRhdGlvbihhcHApO1xuICBjb25zdCB7ZW1haWw6IGZvcm1hdEVtYWlsLCBuYW1lOiBmb3JtYXROYW1lfSA9IGluc2VydERhdGE7XG5cbiAgaWYoIWZvcm1hdE5hbWUpIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfQVJHVU1FTlRTXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIENoZWNrIGZvciBleGlzdGluZyBhcHAgdXNpbmcgZ2VuZXJpYyBxdWVyeVxuICAgIGNvbnN0IGNvbmRpdGlvbnM6IGFueVtdID0gW1xuICAgICAge2ZpZWxkOiAnbmFtZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZm9ybWF0TmFtZX1cbiAgICBdO1xuXG4gICAgaWYoZm9ybWF0RW1haWwpIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaCh7ZmllbGQ6ICdlbWFpbCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZm9ybWF0RW1haWx9KTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0FwcHMgPSBhd2FpdCBnZXRMaXN0Qnk8QXBwVHlwZT4oY29udGV4dCwgJ2FwcHMnLCB7XG4gICAgICBsb2dpYzogJ09SJyxcbiAgICAgIGNvbmRpdGlvbnNcbiAgICB9IGFzIGFueSk7XG5cbiAgICBpZihleGlzdGluZ0FwcHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuRVhJU1RJTkdfSVRFTVxuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge25hbWV9XG4gICAgfSwgZXJyb3IgYXMgRXJyb3IsIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3QgaW5zZXJ0OiBBcHBUeXBlID0ge1xuICAgIF9rZXk6IGNyZWF0ZUhhc2gobmFtZSksXG4gICAgYWN0aXZlOiB0cnVlLFxuICAgIC4uLmluc2VydERhdGFcbiAgfTtcblxuICByZXR1cm4gYXdhaXQgYWRkSXRlbTxBcHBUeXBlPihjb250ZXh0LCAnYXBwcycsIGluc2VydCk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCBhcHBJZFBhcnNlZCA9IGdldEFwcEtleShhcHApO1xuXG4gIGlmKCFhcHBJZFBhcnNlZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb246ICd1cGRhdGVBcHAnLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHthcHB9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9BUkdVTUVOVFNcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCB1cGRhdGVJdGVtPEFwcFR5cGU+KGNvbnRleHQsICdhcHBzJywgYXBwSWRQYXJzZWQsIGJ1aWxkQXBwTXV0YXRpb24oYXBwKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uID0ge319ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24gYXMgU2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFVzZXJFcnJvcihFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTikpO1xuICB9XG5cbiAgY29uc3QgYXBwRG9jSWQgPSBnZXREb2NJZCgnYXBwcycsIGFwcCk7XG4gIGNvbnN0IGRlbGV0ZWRBcHAgPSBhd2FpdCBkZWxldGVJdGVtPEFwcFR5cGU+KGNvbnRleHQsICdhcHBzJywgYXBwRG9jSWQpO1xuXG4gIGlmICghZGVsZXRlZEFwcCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb246ICdkZWxldGVBcHAnLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHthcHB9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9JRFxuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGRlbGV0ZWRBcHA7XG59O1xuXG5leHBvcnQgY29uc3QgZGVhY3RpdmF0ZUFwcCA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0LCBhcHA6IEFwcFR5cGUpOiBQcm9taXNlPEFwcFR5cGU+ID0+IHtcbiAgY29uc3Qge3Nlc3Npb24gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbiBhcyBTZXNzaW9uKTtcbiAgY29uc3QgYXBwRG9jSWQgPSBnZXREb2NJZCgnYXBwcycsIGFwcCk7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFVzZXJFcnJvcihFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTikpO1xuICB9XG5cbiAgY29uc3QgdXBkYXRlZDogQXBwVHlwZSA9IHtcbiAgICBhY3RpdmU6IGZhbHNlXG4gIH07XG5cbiAgcmV0dXJuIGF3YWl0IHVwZGF0ZUl0ZW08QXBwVHlwZT4oY29udGV4dCwgJ2FwcHMnLCBhcHBEb2NJZCwgdXBkYXRlZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIG9wdGlvbnM/OiBBcHBPcHRpb25zKTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IHtmaWVsZHMsIHNlc3Npb24gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBwYXJzZWRPcHRpb25zID0gcGFyc2VBcHBPcHRpb25zKG9wdGlvbnMpO1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbiBhcyBTZXNzaW9uKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgZ2V0SXRlbUJ5PEFwcFR5cGU+KGNvbnRleHQsICdhcHBzJywgYnVpbGRBcHBHZXRGaWx0ZXJzKHBhcnNlZE9wdGlvbnMpIGFzIGFueSwgZ2V0QXBwUXVlcnlPcHRpb25zKGZpZWxkcykpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFwcHMgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgb3B0aW9ucz86IEFwcE9wdGlvbnMpOiBQcm9taXNlPEFwcFR5cGVbXT4gPT4ge1xuICBjb25zdCB7ZmllbGRzLCBzZXNzaW9uID0ge319ID0gY29udGV4dDtcbiAgY29uc3QgcGFyc2VkT3B0aW9ucyA9IHBhcnNlQXBwT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3Qge2xpbWl0fSA9IHBhcnNlZE9wdGlvbnM7XG4gIGNvbnN0IGlzQWRtaW4gPSBpc0FkbWluVXNlcihzZXNzaW9uIGFzIFNlc3Npb24pO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBVc2VyRXJyb3IoRXJyb3JUeXBlcy5JTlZBTElEX1NFU1NJT04pKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBnZXRMaXN0Qnk8QXBwVHlwZT4oY29udGV4dCwgJ2FwcHMnLCBidWlsZEFwcEdldEZpbHRlcnMocGFyc2VkT3B0aW9ucykgYXMgYW55LCB7XG4gICAgc29ydDogW3tmaWVsZDogJ25hbWUnLCBkaXJlY3Rpb246ICdBU0MnfV0sXG4gICAgbGltaXQ6IHtmcm9tOiBsaW1pdC5zdGFydCwgdG86IGxpbWl0LnN0YXJ0ICsgbGltaXQubnVtfSxcbiAgICAuLi5nZXRBcHBRdWVyeU9wdGlvbnMoZmllbGRzKVxuICB9KTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsInBhcnNlQXJhbmdvSWQiLCJwYXJzZUVtYWlsIiwicGFyc2VJZCIsInBhcnNlUGhvbmUiLCJwYXJzZVN0cmluZyIsIkVycm9yVHlwZXMiLCJsb2dFcnJvciIsImxvZ0V4Y2VwdGlvbiIsIlVzZXJFcnJvciIsImdldERvY0lkIiwiZ2V0TGltaXQiLCJzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlIiwiaXNBZG1pblVzZXIiLCJhZGRJdGVtIiwiZGVsZXRlSXRlbSIsImdldEl0ZW1CeSIsImdldExpc3RCeSIsInVwZGF0ZUl0ZW0iLCJldmVudENhdGVnb3J5IiwiZ2V0QXBwT3B0aW9uYWwiLCJmaWVsZHMiLCJyZWR1Y2UiLCJzZWxlY3RzIiwiZmllbGQiLCJpbmNsdWRlcyIsIm9iamVjdHMiLCJxdWVyaWVzIiwicGFyc2VBcHBPcHRpb25zIiwib3B0aW9ucyIsImZyb20iLCJ0byIsImxpbWl0IiwiYnVpbGRBcHBHZXRGaWx0ZXJzIiwiaWQiLCJrZXkiLCJuYW1lIiwiY29uZGl0aW9ucyIsIm9wZXJhdG9yIiwidmFsdWUiLCJwdXNoIiwibG9naWMiLCJnZXRBcHBRdWVyeU9wdGlvbnMiLCJzZWxlY3RPYmplY3RzIiwic2VsZWN0UXVlcmllcyIsImN1c3RvbU9iamVjdHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjdXN0b21RdWVyaWVzIiwiZ2V0QXBwS2V5IiwiYXBwIiwiX2tleSIsIl9pZCIsImFwcElkIiwic3BsaXQiLCJidWlsZEFwcE11dGF0aW9uIiwiZW1haWwiLCJwaG9uZSIsImFkZEFwcCIsImNvbnRleHQiLCJhY3Rpb24iLCJpbnNlcnREYXRhIiwiZm9ybWF0RW1haWwiLCJmb3JtYXROYW1lIiwiY2F0ZWdvcnkiLCJwYXJhbXMiLCJJTlZBTElEX0FSR1VNRU5UUyIsImV4aXN0aW5nQXBwcyIsIkVYSVNUSU5HX0lURU0iLCJlcnJvciIsImxhYmVsIiwiREFUQUJBU0VfRVJST1IiLCJpbnNlcnQiLCJhY3RpdmUiLCJ1cGRhdGVBcHAiLCJhcHBJZFBhcnNlZCIsImRlbGV0ZUFwcCIsImRhdGFiYXNlTmFtZSIsInNlc3Npb24iLCJpc0FkbWluIiwiUHJvbWlzZSIsInJlamVjdCIsIklOVkFMSURfU0VTU0lPTiIsImFwcERvY0lkIiwiZGVsZXRlZEFwcCIsIklOVkFMSURfSUQiLCJkZWFjdGl2YXRlQXBwIiwidXBkYXRlZCIsImdldEFwcCIsInBhcnNlZE9wdGlvbnMiLCJnZXRBcHBzIiwic29ydCIsImRpcmVjdGlvbiIsInN0YXJ0IiwibnVtIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxVQUFVLEVBQUVDLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUNySCxTQUFRQyxVQUFVLFFBQU8sMEJBQTBCO0FBQ25ELFNBQVFDLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxTQUFTLFFBQU8sNkJBQTZCO0FBQzdFLFNBQVFDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyx5QkFBeUIsUUFBTyw0QkFBNEI7QUFDeEYsU0FBUUMsV0FBVyxRQUFPLDJCQUEyQjtBQUNyRCxTQUFRQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUVDLFVBQVUsUUFBTyxZQUFZO0FBTWhGLE1BQU1DLGdCQUFnQjtBQVV0QixPQUFPLE1BQU1DLGlCQUFpQixDQUFDQyxTQUFtQixFQUFFLEdBQ2xEQSxPQUFPQyxNQUFNLENBQUMsQ0FBQ0MsU0FBU0M7UUFDdEIsSUFBR0EsTUFBTUMsUUFBUSxDQUFDLFVBQVU7WUFDMUIsT0FBT2IsMEJBQTBCLFFBQVEsS0FBS1ksT0FBT0Q7UUFDdkQ7UUFFQSxPQUFPQTtJQUNULEdBQUc7UUFBQ0csU0FBUyxFQUFFO1FBQUVDLFNBQVMsRUFBRTtJQUFBLEdBQUc7QUFFakMsT0FBTyxNQUFNQyxrQkFBa0IsQ0FBQ0MsVUFBc0IsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sRUFDSkMsT0FBTyxDQUFDLEVBQ1JDLEtBQUssRUFBRSxFQUNSLEdBQUdGO0lBQ0osTUFBTUcsUUFBUXJCLFNBQVNtQixNQUFNQztJQUU3QixPQUFPO1FBQ0wsR0FBR0YsT0FBTztRQUNWRztJQUNGO0FBQ0YsRUFBRTtBQUVGLE1BQU1DLHFCQUFxQixDQUFDLEVBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQWE7SUFDckQsTUFBTUMsYUFBb0I7UUFBQztZQUFDYixPQUFPO1lBQVVjLFVBQVU7WUFBTUMsT0FBTztRQUFJO0tBQUU7SUFFMUUsSUFBR0wsSUFBSTtRQUNMRyxXQUFXRyxJQUFJLENBQUM7WUFBQ2hCLE9BQU87WUFBT2MsVUFBVTtZQUFNQyxPQUFPdEMsY0FBY2lDO1FBQUc7SUFDekU7SUFFQSxJQUFHQyxLQUFLO1FBQ05FLFdBQVdHLElBQUksQ0FBQztZQUFDaEIsT0FBTztZQUFRYyxVQUFVO1lBQU1DLE9BQU9wQyxRQUFRZ0M7UUFBSTtJQUNyRTtJQUVBLElBQUdDLE1BQU07UUFDUEMsV0FBV0csSUFBSSxDQUFDO1lBQUNoQixPQUFPO1lBQVFjLFVBQVU7WUFBWUMsT0FBT2xDLFlBQVkrQjtRQUFLO0lBQ2hGO0lBRUEsT0FBTztRQUFDSyxPQUFPO1FBQU9KO0lBQVU7QUFDbEM7QUFFQSxNQUFNSyxxQkFBcUIsQ0FBQ3JCLFNBQW1CLEVBQUU7SUFDL0MsTUFBTSxFQUFDSyxTQUFTaUIsYUFBYSxFQUFFaEIsU0FBU2lCLGFBQWEsRUFBQyxHQUFHeEIsZUFBZUM7SUFFeEUsT0FBTztRQUNMd0IsZUFBZUYsY0FBY0csTUFBTSxHQUFHLElBQUlILGdCQUFnQkk7UUFDMURDLGVBQWVKLGNBQWNFLE1BQU0sR0FBRyxJQUFJRixnQkFBZ0JHO0lBQzVEO0FBQ0Y7QUFFQSxNQUFNRSxZQUFZLENBQUNDO0lBQ2pCLE1BQU0sRUFBQ0MsSUFBSSxFQUFFQyxHQUFHLEVBQUVsQixFQUFFLEVBQUVtQixLQUFLLEVBQUMsR0FBR0g7SUFDL0IsT0FBT0MsUUFBUWpCLE1BQU1tQixTQUFTRCxLQUFLRSxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ2xEO0FBRUEsTUFBTUMsbUJBQW1CLENBQUNMO0lBQ3hCLE1BQU0sRUFBQ00sUUFBUSxFQUFFLEVBQUVwQixPQUFPLEVBQUUsRUFBRXFCLFFBQVEsRUFBRSxFQUFDLEdBQUdQO0lBRTVDLE9BQU87UUFDTE0sT0FBT3RELFdBQVdzRDtRQUNsQnBCLE1BQU0vQixZQUFZK0I7UUFDbEJxQixPQUFPckQsV0FBV3FEO0lBQ3BCO0FBQ0Y7QUFFQSxPQUFPLE1BQU1DLFNBQVMsT0FBT0MsU0FBcUJUO0lBQ2hELE1BQU1VLFNBQVM7SUFDZixNQUFNLEVBQUN4QixPQUFPLEVBQUUsRUFBQyxHQUFHYztJQUNwQixNQUFNVyxhQUFhTixpQkFBaUJMO0lBQ3BDLE1BQU0sRUFBQ00sT0FBT00sV0FBVyxFQUFFMUIsTUFBTTJCLFVBQVUsRUFBQyxHQUFHRjtJQUUvQyxJQUFHLENBQUNFLFlBQVk7UUFDZCxNQUFNdkQsYUFBYTtZQUNqQm9EO1lBQ0FJLFVBQVU3QztZQUNWOEMsUUFBUTtnQkFBQzdCO1lBQUk7WUFDYkcsT0FBT2pDLFdBQVc0RCxpQkFBaUI7UUFDckMsR0FBR1A7SUFDTDtJQUVBLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsTUFBTXRCLGFBQW9CO1lBQ3hCO2dCQUFDYixPQUFPO2dCQUFRYyxVQUFVO2dCQUFNQyxPQUFPd0I7WUFBVTtTQUNsRDtRQUVELElBQUdELGFBQWE7WUFDZHpCLFdBQVdHLElBQUksQ0FBQztnQkFBQ2hCLE9BQU87Z0JBQVNjLFVBQVU7Z0JBQU1DLE9BQU91QjtZQUFXO1FBQ3JFO1FBRUEsTUFBTUssZUFBZSxNQUFNbEQsVUFBbUIwQyxTQUFTLFFBQVE7WUFDN0RsQixPQUFPO1lBQ1BKO1FBQ0Y7UUFFQSxJQUFHOEIsYUFBYXJCLE1BQU0sRUFBRTtZQUN0QixNQUFNdEMsYUFBYTtnQkFDakJvRDtnQkFDQUksVUFBVTdDO2dCQUNWOEMsUUFBUTtvQkFBQzdCO2dCQUFJO2dCQUNiRyxPQUFPakMsV0FBVzhELGFBQWE7WUFDakMsR0FBR1Q7UUFDTDtJQUNGLEVBQUUsT0FBTVUsT0FBTztRQUNiLE1BQU05RCxTQUFTO1lBQ2JxRDtZQUNBSSxVQUFVN0M7WUFDVm1ELE9BQU9oRSxXQUFXaUUsY0FBYztZQUNoQ04sUUFBUTtnQkFBQzdCO1lBQUk7UUFDZixHQUFHaUMsT0FBZ0JWO0lBQ3JCO0lBRUEsTUFBTWEsU0FBa0I7UUFDdEJyQixNQUFNbkQsV0FBV29DO1FBQ2pCcUMsUUFBUTtRQUNSLEdBQUdaLFVBQVU7SUFDZjtJQUVBLE9BQU8sTUFBTS9DLFFBQWlCNkMsU0FBUyxRQUFRYTtBQUNqRCxFQUFFO0FBRUYsT0FBTyxNQUFNRSxZQUFZLE9BQU9mLFNBQXFCVDtJQUNuRCxNQUFNeUIsY0FBYzFCLFVBQVVDO0lBRTlCLElBQUcsQ0FBQ3lCLGFBQWE7UUFDZixNQUFNbkUsYUFBYTtZQUNqQm9ELFFBQVE7WUFDUkksVUFBVTdDO1lBQ1Y4QyxRQUFRO2dCQUFDZjtZQUFHO1lBQ1pYLE9BQU9qQyxXQUFXNEQsaUJBQWlCO1FBQ3JDLEdBQUdQO0lBQ0w7SUFFQSxPQUFPLE1BQU16QyxXQUFvQnlDLFNBQVMsUUFBUWdCLGFBQWFwQixpQkFBaUJMO0FBQ2xGLEVBQUU7QUFFRixPQUFPLE1BQU0wQixZQUFZLE9BQU9qQixTQUFxQlQ7SUFDbkQsTUFBTSxFQUFDMkIsWUFBWSxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFDLEdBQUduQjtJQUNyQyxNQUFNb0IsVUFBVWxFLFlBQVlpRTtJQUU1QixJQUFHLENBQUNDLFNBQVM7UUFDWCxPQUFPQyxRQUFRQyxNQUFNLENBQUMsSUFBSXhFLFVBQVVILFdBQVc0RSxlQUFlO0lBQ2hFO0lBRUEsTUFBTUMsV0FBV3pFLFNBQVMsUUFBUXdDO0lBQ2xDLE1BQU1rQyxhQUFhLE1BQU1yRSxXQUFvQjRDLFNBQVMsUUFBUXdCO0lBRTlELElBQUksQ0FBQ0MsWUFBWTtRQUNmLE1BQU01RSxhQUFhO1lBQ2pCb0QsUUFBUTtZQUNSSSxVQUFVN0M7WUFDVjhDLFFBQVE7Z0JBQUNmO1lBQUc7WUFDWlgsT0FBT2pDLFdBQVcrRSxVQUFVO1FBQzlCLEdBQUcxQjtJQUNMO0lBRUEsT0FBT3lCO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTUUsZ0JBQWdCLE9BQU8zQixTQUFxQlQ7SUFDdkQsTUFBTSxFQUFDNEIsVUFBVSxDQUFDLENBQUMsRUFBQyxHQUFHbkI7SUFDdkIsTUFBTW9CLFVBQVVsRSxZQUFZaUU7SUFDNUIsTUFBTUssV0FBV3pFLFNBQVMsUUFBUXdDO0lBRWxDLElBQUcsQ0FBQzZCLFNBQVM7UUFDWCxPQUFPQyxRQUFRQyxNQUFNLENBQUMsSUFBSXhFLFVBQVVILFdBQVc0RSxlQUFlO0lBQ2hFO0lBRUEsTUFBTUssVUFBbUI7UUFDdkJkLFFBQVE7SUFDVjtJQUVBLE9BQU8sTUFBTXZELFdBQW9CeUMsU0FBUyxRQUFRd0IsVUFBVUk7QUFDOUQsRUFBRTtBQUVGLE9BQU8sTUFBTUMsU0FBUyxPQUFPN0IsU0FBcUI5QjtJQUNoRCxNQUFNLEVBQUNSLE1BQU0sRUFBRXlELFVBQVUsQ0FBQyxDQUFDLEVBQUMsR0FBR25CO0lBQy9CLE1BQU04QixnQkFBZ0I3RCxnQkFBZ0JDO0lBQ3RDLE1BQU1rRCxVQUFVbEUsWUFBWWlFO0lBRTVCLElBQUcsQ0FBQ0MsU0FBUztRQUNYLE9BQU9DLFFBQVFDLE1BQU0sQ0FBQyxJQUFJeEUsVUFBVUgsV0FBVzRFLGVBQWU7SUFDaEU7SUFFQSxPQUFPLE1BQU1sRSxVQUFtQjJDLFNBQVMsUUFBUTFCLG1CQUFtQndELGdCQUF1Qi9DLG1CQUFtQnJCO0FBQ2hILEVBQUU7QUFFRixPQUFPLE1BQU1xRSxVQUFVLE9BQU8vQixTQUFxQjlCO0lBQ2pELE1BQU0sRUFBQ1IsTUFBTSxFQUFFeUQsVUFBVSxDQUFDLENBQUMsRUFBQyxHQUFHbkI7SUFDL0IsTUFBTThCLGdCQUFnQjdELGdCQUFnQkM7SUFDdEMsTUFBTSxFQUFDRyxLQUFLLEVBQUMsR0FBR3lEO0lBQ2hCLE1BQU1WLFVBQVVsRSxZQUFZaUU7SUFFNUIsSUFBRyxDQUFDQyxTQUFTO1FBQ1gsT0FBT0MsUUFBUUMsTUFBTSxDQUFDLElBQUl4RSxVQUFVSCxXQUFXNEUsZUFBZTtJQUNoRTtJQUVBLE9BQU8sTUFBTWpFLFVBQW1CMEMsU0FBUyxRQUFRMUIsbUJBQW1Cd0QsZ0JBQXVCO1FBQ3pGRSxNQUFNO1lBQUM7Z0JBQUNuRSxPQUFPO2dCQUFRb0UsV0FBVztZQUFLO1NBQUU7UUFDekM1RCxPQUFPO1lBQUNGLE1BQU1FLE1BQU02RCxLQUFLO1lBQUU5RCxJQUFJQyxNQUFNNkQsS0FBSyxHQUFHN0QsTUFBTThELEdBQUc7UUFBQTtRQUN0RCxHQUFHcEQsbUJBQW1CckIsT0FBTztJQUMvQjtBQUNGLEVBQUUifQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvYXBwcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUFyYW5nb0lkLCBwYXJzZUVtYWlsLCBwYXJzZUlkLCBwYXJzZVBob25lLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbiwgVXNlckVycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldERvY0lkLCBnZXRMaW1pdCwgc2VsZWN0UmVhY3Rpb25Db3VudEJ5VHlwZX0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2lzQWRtaW5Vc2VyfSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHthZGRJdGVtLCBkZWxldGVJdGVtLCBnZXRJdGVtQnksIGdldExpc3RCeSwgdXBkYXRlSXRlbX0gZnJvbSAnLi9jcnVkLmpzJztcblxuaW1wb3J0IHR5cGUge0FwcFR5cGV9IGZyb20gJy4uL3R5cGVzL2FwcHMudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1Nlc3Npb259IGZyb20gJy4uL3V0aWxzL3Nlc3Npb25VdGlscy5qcyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnYXBwcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0QXBwT3B0aW9uYWwgPSAoZmllbGRzOiBzdHJpbmdbXSA9IFtdKSA9PlxuICBmaWVsZHMucmVkdWNlKChzZWxlY3RzLCBmaWVsZDogc3RyaW5nKSA9PiB7XG4gICAgaWYoZmllbGQuaW5jbHVkZXMoJ0NvdW50JykpIHtcbiAgICAgIHJldHVybiBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlKCdhcHBzJywgJ2EnLCBmaWVsZCwgc2VsZWN0cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdHM7XG4gIH0sIHtvYmplY3RzOiBbXSwgcXVlcmllczogW119KTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQXBwT3B0aW9ucyA9IChvcHRpb25zOiBBcHBPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBsaW1pdFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRBcHBHZXRGaWx0ZXJzID0gKHtpZCwga2V5LCBuYW1lfTogQXBwT3B0aW9ucyk6IHtsb2dpYzogJ0FORCc7IGNvbmRpdGlvbnM6IGFueVtdfSA9PiB7XG4gIGNvbnN0IGNvbmRpdGlvbnM6IGFueVtdID0gW3tmaWVsZDogJ2FjdGl2ZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogdHJ1ZX1dO1xuXG4gIGlmKGlkKSB7XG4gICAgY29uZGl0aW9ucy5wdXNoKHtmaWVsZDogJ19pZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogcGFyc2VBcmFuZ29JZChpZCl9KTtcbiAgfVxuXG4gIGlmKGtleSkge1xuICAgIGNvbmRpdGlvbnMucHVzaCh7ZmllbGQ6ICdfa2V5Jywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBwYXJzZUlkKGtleSl9KTtcbiAgfVxuXG4gIGlmKG5hbWUpIHtcbiAgICBjb25kaXRpb25zLnB1c2goe2ZpZWxkOiAnbmFtZScsIG9wZXJhdG9yOiAnQ09OVEFJTlMnLCB2YWx1ZTogcGFyc2VTdHJpbmcobmFtZSl9KTtcbiAgfVxuXG4gIHJldHVybiB7bG9naWM6ICdBTkQnLCBjb25kaXRpb25zfTtcbn07XG5cbmNvbnN0IGdldEFwcFF1ZXJ5T3B0aW9ucyA9IChmaWVsZHM6IHN0cmluZ1tdID0gW10pID0+IHtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0QXBwT3B0aW9uYWwoZmllbGRzKTtcblxuICByZXR1cm4ge1xuICAgIGN1c3RvbU9iamVjdHM6IHNlbGVjdE9iamVjdHMubGVuZ3RoID4gMCA/IHNlbGVjdE9iamVjdHMgOiB1bmRlZmluZWQsXG4gICAgY3VzdG9tUXVlcmllczogc2VsZWN0UXVlcmllcy5sZW5ndGggPiAwID8gc2VsZWN0UXVlcmllcyA6IHVuZGVmaW5lZFxuICB9O1xufTtcblxuY29uc3QgZ2V0QXBwS2V5ID0gKGFwcDogQXBwVHlwZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtfa2V5LCBfaWQsIGlkLCBhcHBJZH0gPSBhcHA7XG4gIHJldHVybiBfa2V5IHx8IGlkIHx8IGFwcElkIHx8IF9pZD8uc3BsaXQoJy8nKVsxXTtcbn07XG5cbmNvbnN0IGJ1aWxkQXBwTXV0YXRpb24gPSAoYXBwOiBBcHBUeXBlKTogUGFydGlhbDxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IHtlbWFpbCA9ICcnLCBuYW1lID0gJycsIHBob25lID0gJyd9ID0gYXBwO1xuXG4gIHJldHVybiB7XG4gICAgZW1haWw6IHBhcnNlRW1haWwoZW1haWwpLFxuICAgIG5hbWU6IHBhcnNlU3RyaW5nKG5hbWUpLFxuICAgIHBob25lOiBwYXJzZVBob25lKHBob25lKVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZEFwcCA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0LCBhcHA6IEFwcFR5cGUpOiBQcm9taXNlPEFwcFR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2FkZEFwcCc7XG4gIGNvbnN0IHtuYW1lID0gJyd9ID0gYXBwO1xuICBjb25zdCBpbnNlcnREYXRhID0gYnVpbGRBcHBNdXRhdGlvbihhcHApO1xuICBjb25zdCB7ZW1haWw6IGZvcm1hdEVtYWlsLCBuYW1lOiBmb3JtYXROYW1lfSA9IGluc2VydERhdGE7XG5cbiAgaWYoIWZvcm1hdE5hbWUpIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfQVJHVU1FTlRTXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIENoZWNrIGZvciBleGlzdGluZyBhcHAgdXNpbmcgZ2VuZXJpYyBxdWVyeVxuICAgIGNvbnN0IGNvbmRpdGlvbnM6IGFueVtdID0gW1xuICAgICAge2ZpZWxkOiAnbmFtZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZm9ybWF0TmFtZX1cbiAgICBdO1xuXG4gICAgaWYoZm9ybWF0RW1haWwpIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaCh7ZmllbGQ6ICdlbWFpbCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZm9ybWF0RW1haWx9KTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0FwcHMgPSBhd2FpdCBnZXRMaXN0Qnk8QXBwVHlwZT4oY29udGV4dCwgJ2FwcHMnLCB7XG4gICAgICBsb2dpYzogJ09SJyxcbiAgICAgIGNvbmRpdGlvbnNcbiAgICB9IGFzIGFueSk7XG5cbiAgICBpZihleGlzdGluZ0FwcHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHtuYW1lfSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuRVhJU1RJTkdfSVRFTVxuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge25hbWV9XG4gICAgfSwgZXJyb3IgYXMgRXJyb3IsIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3QgaW5zZXJ0OiBBcHBUeXBlID0ge1xuICAgIF9rZXk6IGNyZWF0ZUhhc2gobmFtZSksXG4gICAgYWN0aXZlOiB0cnVlLFxuICAgIC4uLmluc2VydERhdGFcbiAgfTtcblxuICByZXR1cm4gYXdhaXQgYWRkSXRlbTxBcHBUeXBlPihjb250ZXh0LCAnYXBwcycsIGluc2VydCk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCBhcHBJZFBhcnNlZCA9IGdldEFwcEtleShhcHApO1xuXG4gIGlmKCFhcHBJZFBhcnNlZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb246ICd1cGRhdGVBcHAnLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHthcHB9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9BUkdVTUVOVFNcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCB1cGRhdGVJdGVtPEFwcFR5cGU+KGNvbnRleHQsICdhcHBzJywgYXBwSWRQYXJzZWQsIGJ1aWxkQXBwTXV0YXRpb24oYXBwKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcDogQXBwVHlwZSk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCB7c2Vzc2lvbiA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW4gPSBpc0FkbWluVXNlcihzZXNzaW9uIGFzIFNlc3Npb24pO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBVc2VyRXJyb3IoRXJyb3JUeXBlcy5JTlZBTElEX1NFU1NJT04pKTtcbiAgfVxuXG4gIGNvbnN0IGFwcERvY0lkID0gZ2V0RG9jSWQoJ2FwcHMnLCBhcHApO1xuICBjb25zdCBkZWxldGVkQXBwID0gYXdhaXQgZGVsZXRlSXRlbTxBcHBUeXBlPihjb250ZXh0LCAnYXBwcycsIGFwcERvY0lkKTtcblxuICBpZiAoIWRlbGV0ZWRBcHApIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uOiAnZGVsZXRlQXBwJyxcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7YXBwfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfSURcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBkZWxldGVkQXBwO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlYWN0aXZhdGVBcHAgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgYXBwOiBBcHBUeXBlKTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gIGNvbnN0IHtzZXNzaW9uID0ge319ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24gYXMgU2Vzc2lvbik7XG4gIGNvbnN0IGFwcERvY0lkID0gZ2V0RG9jSWQoJ2FwcHMnLCBhcHApO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBVc2VyRXJyb3IoRXJyb3JUeXBlcy5JTlZBTElEX1NFU1NJT04pKTtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWQ6IEFwcFR5cGUgPSB7XG4gICAgYWN0aXZlOiBmYWxzZVxuICB9O1xuXG4gIHJldHVybiBhd2FpdCB1cGRhdGVJdGVtPEFwcFR5cGU+KGNvbnRleHQsICdhcHBzJywgYXBwRG9jSWQsIHVwZGF0ZWQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFwcCA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0LCBvcHRpb25zPzogQXBwT3B0aW9ucyk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICBjb25zdCB7ZmllbGRzLCBzZXNzaW9uID0ge319ID0gY29udGV4dDtcbiAgY29uc3QgcGFyc2VkT3B0aW9ucyA9IHBhcnNlQXBwT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgaXNBZG1pbiA9IGlzQWRtaW5Vc2VyKHNlc3Npb24gYXMgU2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFVzZXJFcnJvcihFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTikpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGdldEl0ZW1CeTxBcHBUeXBlPihjb250ZXh0LCAnYXBwcycsIGJ1aWxkQXBwR2V0RmlsdGVycyhwYXJzZWRPcHRpb25zKSBhcyBhbnksIGdldEFwcFF1ZXJ5T3B0aW9ucyhmaWVsZHMpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBcHBzID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIG9wdGlvbnM/OiBBcHBPcHRpb25zKTogUHJvbWlzZTxBcHBUeXBlW10+ID0+IHtcbiAgY29uc3Qge2ZpZWxkcywgc2Vzc2lvbiA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHBhcnNlZE9wdGlvbnMgPSBwYXJzZUFwcE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZWRPcHRpb25zO1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbiBhcyBTZXNzaW9uKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVXNlckVycm9yKEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OKSk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgZ2V0TGlzdEJ5PEFwcFR5cGU+KGNvbnRleHQsICdhcHBzJywgYnVpbGRBcHBHZXRGaWx0ZXJzKHBhcnNlZE9wdGlvbnMpIGFzIGFueSwge1xuICAgIHNvcnQ6IFt7ZmllbGQ6ICduYW1lJywgZGlyZWN0aW9uOiAnQVNDJ31dLFxuICAgIGxpbWl0OiB7ZnJvbTogbGltaXQuc3RhcnQsIHRvOiBsaW1pdC5zdGFydCArIGxpbWl0Lm51bX0sXG4gICAgLi4uZ2V0QXBwUXVlcnlPcHRpb25zKGZpZWxkcylcbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbImNyZWF0ZUhhc2giLCJwYXJzZUFyYW5nb0lkIiwicGFyc2VFbWFpbCIsInBhcnNlSWQiLCJwYXJzZVBob25lIiwicGFyc2VTdHJpbmciLCJFcnJvclR5cGVzIiwibG9nRXJyb3IiLCJsb2dFeGNlcHRpb24iLCJVc2VyRXJyb3IiLCJnZXREb2NJZCIsImdldExpbWl0Iiwic2VsZWN0UmVhY3Rpb25Db3VudEJ5VHlwZSIsImlzQWRtaW5Vc2VyIiwiYWRkSXRlbSIsImRlbGV0ZUl0ZW0iLCJnZXRJdGVtQnkiLCJnZXRMaXN0QnkiLCJ1cGRhdGVJdGVtIiwiZXZlbnRDYXRlZ29yeSIsImdldEFwcE9wdGlvbmFsIiwiZmllbGRzIiwicmVkdWNlIiwic2VsZWN0cyIsImZpZWxkIiwiaW5jbHVkZXMiLCJvYmplY3RzIiwicXVlcmllcyIsInBhcnNlQXBwT3B0aW9ucyIsIm9wdGlvbnMiLCJmcm9tIiwidG8iLCJsaW1pdCIsImJ1aWxkQXBwR2V0RmlsdGVycyIsImlkIiwia2V5IiwibmFtZSIsImNvbmRpdGlvbnMiLCJvcGVyYXRvciIsInZhbHVlIiwicHVzaCIsImxvZ2ljIiwiZ2V0QXBwUXVlcnlPcHRpb25zIiwic2VsZWN0T2JqZWN0cyIsInNlbGVjdFF1ZXJpZXMiLCJjdXN0b21PYmplY3RzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiY3VzdG9tUXVlcmllcyIsImdldEFwcEtleSIsImFwcCIsIl9rZXkiLCJfaWQiLCJhcHBJZCIsInNwbGl0IiwiYnVpbGRBcHBNdXRhdGlvbiIsImVtYWlsIiwicGhvbmUiLCJhZGRBcHAiLCJjb250ZXh0IiwiYWN0aW9uIiwiaW5zZXJ0RGF0YSIsImZvcm1hdEVtYWlsIiwiZm9ybWF0TmFtZSIsImNhdGVnb3J5IiwicGFyYW1zIiwiSU5WQUxJRF9BUkdVTUVOVFMiLCJleGlzdGluZ0FwcHMiLCJFWElTVElOR19JVEVNIiwiZXJyb3IiLCJsYWJlbCIsIkRBVEFCQVNFX0VSUk9SIiwiaW5zZXJ0IiwiYWN0aXZlIiwidXBkYXRlQXBwIiwiYXBwSWRQYXJzZWQiLCJkZWxldGVBcHAiLCJzZXNzaW9uIiwiaXNBZG1pbiIsIlByb21pc2UiLCJyZWplY3QiLCJJTlZBTElEX1NFU1NJT04iLCJhcHBEb2NJZCIsImRlbGV0ZWRBcHAiLCJJTlZBTElEX0lEIiwiZGVhY3RpdmF0ZUFwcCIsInVwZGF0ZWQiLCJnZXRBcHAiLCJwYXJzZWRPcHRpb25zIiwiZ2V0QXBwcyIsInNvcnQiLCJkaXJlY3Rpb24iLCJzdGFydCIsIm51bSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsVUFBVSxFQUFFQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsUUFBTywrQkFBK0I7QUFDckgsU0FBUUMsVUFBVSxRQUFPLDBCQUEwQjtBQUNuRCxTQUFRQyxRQUFRLEVBQUVDLFlBQVksRUFBRUMsU0FBUyxR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