airbyte-faros-destination 0.0.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 (744) hide show
  1. package/README.md +178 -0
  2. package/lib/common/graphql-client.d.ts +134 -0
  3. package/lib/common/graphql-client.js +712 -0
  4. package/lib/common/graphql-client.js.map +1 -0
  5. package/lib/common/graphql-writer.d.ts +19 -0
  6. package/lib/common/graphql-writer.js +46 -0
  7. package/lib/common/graphql-writer.js.map +1 -0
  8. package/lib/common/types.d.ts +50 -0
  9. package/lib/common/types.js +20 -0
  10. package/lib/common/types.js.map +1 -0
  11. package/lib/common/write-stats.d.ts +16 -0
  12. package/lib/common/write-stats.js +49 -0
  13. package/lib/common/write-stats.js.map +1 -0
  14. package/lib/community/hasura-backend.d.ts +8 -0
  15. package/lib/community/hasura-backend.js +31 -0
  16. package/lib/community/hasura-backend.js.map +1 -0
  17. package/lib/converters/agileaccelerator/agileaccelerator_types.d.ts +315 -0
  18. package/lib/converters/agileaccelerator/agileaccelerator_types.js +82 -0
  19. package/lib/converters/agileaccelerator/agileaccelerator_types.js.map +1 -0
  20. package/lib/converters/agileaccelerator/common.d.ts +64 -0
  21. package/lib/converters/agileaccelerator/common.js +168 -0
  22. package/lib/converters/agileaccelerator/common.js.map +1 -0
  23. package/lib/converters/agileaccelerator/works.d.ts +7 -0
  24. package/lib/converters/agileaccelerator/works.js +106 -0
  25. package/lib/converters/agileaccelerator/works.js.map +1 -0
  26. package/lib/converters/asana/common.d.ts +40 -0
  27. package/lib/converters/asana/common.js +70 -0
  28. package/lib/converters/asana/common.js.map +1 -0
  29. package/lib/converters/asana/projects.d.ts +7 -0
  30. package/lib/converters/asana/projects.js +30 -0
  31. package/lib/converters/asana/projects.js.map +1 -0
  32. package/lib/converters/asana/sections.d.ts +7 -0
  33. package/lib/converters/asana/sections.js +31 -0
  34. package/lib/converters/asana/sections.js.map +1 -0
  35. package/lib/converters/asana/tags.d.ts +7 -0
  36. package/lib/converters/asana/tags.js +23 -0
  37. package/lib/converters/asana/tags.js.map +1 -0
  38. package/lib/converters/asana/tasks.d.ts +13 -0
  39. package/lib/converters/asana/tasks.js +157 -0
  40. package/lib/converters/asana/tasks.js.map +1 -0
  41. package/lib/converters/asana/users.d.ts +7 -0
  42. package/lib/converters/asana/users.js +17 -0
  43. package/lib/converters/asana/users.js.map +1 -0
  44. package/lib/converters/azure-repos/commits.d.ts +7 -0
  45. package/lib/converters/azure-repos/commits.js +60 -0
  46. package/lib/converters/azure-repos/commits.js.map +1 -0
  47. package/lib/converters/azure-repos/common.d.ts +27 -0
  48. package/lib/converters/azure-repos/common.js +86 -0
  49. package/lib/converters/azure-repos/common.js.map +1 -0
  50. package/lib/converters/azure-repos/models.d.ts +224 -0
  51. package/lib/converters/azure-repos/models.js +33 -0
  52. package/lib/converters/azure-repos/models.js.map +1 -0
  53. package/lib/converters/azure-repos/pull_requests.d.ts +7 -0
  54. package/lib/converters/azure-repos/pull_requests.js +92 -0
  55. package/lib/converters/azure-repos/pull_requests.js.map +1 -0
  56. package/lib/converters/azure-repos/repositories.d.ts +8 -0
  57. package/lib/converters/azure-repos/repositories.js +84 -0
  58. package/lib/converters/azure-repos/repositories.js.map +1 -0
  59. package/lib/converters/azure-repos/users.d.ts +7 -0
  60. package/lib/converters/azure-repos/users.js +45 -0
  61. package/lib/converters/azure-repos/users.js.map +1 -0
  62. package/lib/converters/azure-workitems/boards.d.ts +7 -0
  63. package/lib/converters/azure-workitems/boards.js +26 -0
  64. package/lib/converters/azure-workitems/boards.js.map +1 -0
  65. package/lib/converters/azure-workitems/common.d.ts +8 -0
  66. package/lib/converters/azure-workitems/common.js +18 -0
  67. package/lib/converters/azure-workitems/common.js.map +1 -0
  68. package/lib/converters/azure-workitems/iterations.d.ts +7 -0
  69. package/lib/converters/azure-workitems/iterations.js +27 -0
  70. package/lib/converters/azure-workitems/iterations.js.map +1 -0
  71. package/lib/converters/azure-workitems/models.d.ts +103 -0
  72. package/lib/converters/azure-workitems/models.js +11 -0
  73. package/lib/converters/azure-workitems/models.js.map +1 -0
  74. package/lib/converters/azure-workitems/users.d.ts +7 -0
  75. package/lib/converters/azure-workitems/users.js +27 -0
  76. package/lib/converters/azure-workitems/users.js.map +1 -0
  77. package/lib/converters/azure-workitems/workitems.d.ts +7 -0
  78. package/lib/converters/azure-workitems/workitems.js +55 -0
  79. package/lib/converters/azure-workitems/workitems.js.map +1 -0
  80. package/lib/converters/azureactivedirectory/common.d.ts +8 -0
  81. package/lib/converters/azureactivedirectory/common.js +18 -0
  82. package/lib/converters/azureactivedirectory/common.js.map +1 -0
  83. package/lib/converters/azureactivedirectory/groups.d.ts +7 -0
  84. package/lib/converters/azureactivedirectory/groups.js +50 -0
  85. package/lib/converters/azureactivedirectory/groups.js.map +1 -0
  86. package/lib/converters/azureactivedirectory/models.d.ts +61 -0
  87. package/lib/converters/azureactivedirectory/models.js +3 -0
  88. package/lib/converters/azureactivedirectory/models.js.map +1 -0
  89. package/lib/converters/azureactivedirectory/users.d.ts +8 -0
  90. package/lib/converters/azureactivedirectory/users.js +84 -0
  91. package/lib/converters/azureactivedirectory/users.js.map +1 -0
  92. package/lib/converters/azurepipeline/builds.d.ts +7 -0
  93. package/lib/converters/azurepipeline/builds.js +91 -0
  94. package/lib/converters/azurepipeline/builds.js.map +1 -0
  95. package/lib/converters/azurepipeline/common.d.ts +33 -0
  96. package/lib/converters/azurepipeline/common.js +150 -0
  97. package/lib/converters/azurepipeline/common.js.map +1 -0
  98. package/lib/converters/azurepipeline/models.d.ts +294 -0
  99. package/lib/converters/azurepipeline/models.js +44 -0
  100. package/lib/converters/azurepipeline/models.js.map +1 -0
  101. package/lib/converters/azurepipeline/pipelines.d.ts +8 -0
  102. package/lib/converters/azurepipeline/pipelines.js +47 -0
  103. package/lib/converters/azurepipeline/pipelines.js.map +1 -0
  104. package/lib/converters/azurepipeline/releases.d.ts +7 -0
  105. package/lib/converters/azurepipeline/releases.js +35 -0
  106. package/lib/converters/azurepipeline/releases.js.map +1 -0
  107. package/lib/converters/backlog/common.d.ts +20 -0
  108. package/lib/converters/backlog/common.js +60 -0
  109. package/lib/converters/backlog/common.js.map +1 -0
  110. package/lib/converters/backlog/issues.d.ts +7 -0
  111. package/lib/converters/backlog/issues.js +120 -0
  112. package/lib/converters/backlog/issues.js.map +1 -0
  113. package/lib/converters/backlog/models.d.ts +156 -0
  114. package/lib/converters/backlog/models.js +24 -0
  115. package/lib/converters/backlog/models.js.map +1 -0
  116. package/lib/converters/backlog/projects.d.ts +7 -0
  117. package/lib/converters/backlog/projects.js +79 -0
  118. package/lib/converters/backlog/projects.js.map +1 -0
  119. package/lib/converters/backlog/users.d.ts +7 -0
  120. package/lib/converters/backlog/users.js +27 -0
  121. package/lib/converters/backlog/users.js.map +1 -0
  122. package/lib/converters/bamboohr/common.d.ts +15 -0
  123. package/lib/converters/bamboohr/common.js +30 -0
  124. package/lib/converters/bamboohr/common.js.map +1 -0
  125. package/lib/converters/bamboohr/models.d.ts +34 -0
  126. package/lib/converters/bamboohr/models.js +3 -0
  127. package/lib/converters/bamboohr/models.js.map +1 -0
  128. package/lib/converters/bamboohr/users.d.ts +11 -0
  129. package/lib/converters/bamboohr/users.js +165 -0
  130. package/lib/converters/bamboohr/users.js.map +1 -0
  131. package/lib/converters/bitbucket/branches.d.ts +7 -0
  132. package/lib/converters/bitbucket/branches.js +33 -0
  133. package/lib/converters/bitbucket/branches.js.map +1 -0
  134. package/lib/converters/bitbucket/commits.d.ts +8 -0
  135. package/lib/converters/bitbucket/commits.js +56 -0
  136. package/lib/converters/bitbucket/commits.js.map +1 -0
  137. package/lib/converters/bitbucket/common.d.ts +39 -0
  138. package/lib/converters/bitbucket/common.js +87 -0
  139. package/lib/converters/bitbucket/common.js.map +1 -0
  140. package/lib/converters/bitbucket/deployments.d.ts +12 -0
  141. package/lib/converters/bitbucket/deployments.js +113 -0
  142. package/lib/converters/bitbucket/deployments.js.map +1 -0
  143. package/lib/converters/bitbucket/issues.d.ts +12 -0
  144. package/lib/converters/bitbucket/issues.js +129 -0
  145. package/lib/converters/bitbucket/issues.js.map +1 -0
  146. package/lib/converters/bitbucket/pipeline_steps.d.ts +10 -0
  147. package/lib/converters/bitbucket/pipeline_steps.js +84 -0
  148. package/lib/converters/bitbucket/pipeline_steps.js.map +1 -0
  149. package/lib/converters/bitbucket/pipelines.d.ts +8 -0
  150. package/lib/converters/bitbucket/pipelines.js +96 -0
  151. package/lib/converters/bitbucket/pipelines.js.map +1 -0
  152. package/lib/converters/bitbucket/pull_request_activities.d.ts +12 -0
  153. package/lib/converters/bitbucket/pull_request_activities.js +113 -0
  154. package/lib/converters/bitbucket/pull_request_activities.js.map +1 -0
  155. package/lib/converters/bitbucket/pull_requests.d.ts +10 -0
  156. package/lib/converters/bitbucket/pull_requests.js +98 -0
  157. package/lib/converters/bitbucket/pull_requests.js.map +1 -0
  158. package/lib/converters/bitbucket/repositories.d.ts +7 -0
  159. package/lib/converters/bitbucket/repositories.js +57 -0
  160. package/lib/converters/bitbucket/repositories.js.map +1 -0
  161. package/lib/converters/bitbucket/types.d.ts +662 -0
  162. package/lib/converters/bitbucket/types.js +3 -0
  163. package/lib/converters/bitbucket/types.js.map +1 -0
  164. package/lib/converters/bitbucket/workspace_users.d.ts +7 -0
  165. package/lib/converters/bitbucket/workspace_users.js +32 -0
  166. package/lib/converters/bitbucket/workspace_users.js.map +1 -0
  167. package/lib/converters/bitbucket/workspaces.d.ts +8 -0
  168. package/lib/converters/bitbucket/workspaces.js +62 -0
  169. package/lib/converters/bitbucket/workspaces.js.map +1 -0
  170. package/lib/converters/bitbucket-server/commits.d.ts +7 -0
  171. package/lib/converters/bitbucket-server/commits.js +34 -0
  172. package/lib/converters/bitbucket-server/commits.js.map +1 -0
  173. package/lib/converters/bitbucket-server/common.d.ts +14 -0
  174. package/lib/converters/bitbucket-server/common.js +47 -0
  175. package/lib/converters/bitbucket-server/common.js.map +1 -0
  176. package/lib/converters/bitbucket-server/project_users.d.ts +8 -0
  177. package/lib/converters/bitbucket-server/project_users.js +36 -0
  178. package/lib/converters/bitbucket-server/project_users.js.map +1 -0
  179. package/lib/converters/bitbucket-server/projects.d.ts +7 -0
  180. package/lib/converters/bitbucket-server/projects.js +29 -0
  181. package/lib/converters/bitbucket-server/projects.js.map +1 -0
  182. package/lib/converters/bitbucket-server/pull_request_activities.d.ts +7 -0
  183. package/lib/converters/bitbucket-server/pull_request_activities.js +89 -0
  184. package/lib/converters/bitbucket-server/pull_request_activities.js.map +1 -0
  185. package/lib/converters/bitbucket-server/pull_request_diffs.d.ts +8 -0
  186. package/lib/converters/bitbucket-server/pull_request_diffs.js +41 -0
  187. package/lib/converters/bitbucket-server/pull_request_diffs.js.map +1 -0
  188. package/lib/converters/bitbucket-server/pull_requests.d.ts +9 -0
  189. package/lib/converters/bitbucket-server/pull_requests.js +88 -0
  190. package/lib/converters/bitbucket-server/pull_requests.js.map +1 -0
  191. package/lib/converters/bitbucket-server/repositories.d.ts +7 -0
  192. package/lib/converters/bitbucket-server/repositories.js +35 -0
  193. package/lib/converters/bitbucket-server/repositories.js.map +1 -0
  194. package/lib/converters/bitbucket-server/tags.d.ts +7 -0
  195. package/lib/converters/bitbucket-server/tags.js +30 -0
  196. package/lib/converters/bitbucket-server/tags.js.map +1 -0
  197. package/lib/converters/buildkite/builds.d.ts +7 -0
  198. package/lib/converters/buildkite/builds.js +89 -0
  199. package/lib/converters/buildkite/builds.js.map +1 -0
  200. package/lib/converters/buildkite/common.d.ts +129 -0
  201. package/lib/converters/buildkite/common.js +162 -0
  202. package/lib/converters/buildkite/common.js.map +1 -0
  203. package/lib/converters/buildkite/organizations.d.ts +7 -0
  204. package/lib/converters/buildkite/organizations.js +30 -0
  205. package/lib/converters/buildkite/organizations.js.map +1 -0
  206. package/lib/converters/buildkite/pipelines.d.ts +7 -0
  207. package/lib/converters/buildkite/pipelines.js +33 -0
  208. package/lib/converters/buildkite/pipelines.js.map +1 -0
  209. package/lib/converters/circleci/common.d.ts +27 -0
  210. package/lib/converters/circleci/common.js +96 -0
  211. package/lib/converters/circleci/common.js.map +1 -0
  212. package/lib/converters/circleci/models.d.ts +128 -0
  213. package/lib/converters/circleci/models.js +10 -0
  214. package/lib/converters/circleci/models.js.map +1 -0
  215. package/lib/converters/circleci/pipelines.d.ts +7 -0
  216. package/lib/converters/circleci/pipelines.js +61 -0
  217. package/lib/converters/circleci/pipelines.js.map +1 -0
  218. package/lib/converters/circleci/projects.d.ts +7 -0
  219. package/lib/converters/circleci/projects.js +39 -0
  220. package/lib/converters/circleci/projects.js.map +1 -0
  221. package/lib/converters/circleci/tests.d.ts +18 -0
  222. package/lib/converters/circleci/tests.js +183 -0
  223. package/lib/converters/circleci/tests.js.map +1 -0
  224. package/lib/converters/clickup/common.d.ts +21 -0
  225. package/lib/converters/clickup/common.js +58 -0
  226. package/lib/converters/clickup/common.js.map +1 -0
  227. package/lib/converters/clickup/folders.d.ts +7 -0
  228. package/lib/converters/clickup/folders.js +34 -0
  229. package/lib/converters/clickup/folders.js.map +1 -0
  230. package/lib/converters/clickup/goals.d.ts +6 -0
  231. package/lib/converters/clickup/goals.js +15 -0
  232. package/lib/converters/clickup/goals.js.map +1 -0
  233. package/lib/converters/clickup/lists.d.ts +7 -0
  234. package/lib/converters/clickup/lists.js +34 -0
  235. package/lib/converters/clickup/lists.js.map +1 -0
  236. package/lib/converters/clickup/spaces.d.ts +7 -0
  237. package/lib/converters/clickup/spaces.js +34 -0
  238. package/lib/converters/clickup/spaces.js.map +1 -0
  239. package/lib/converters/clickup/status_histories.d.ts +7 -0
  240. package/lib/converters/clickup/status_histories.js +42 -0
  241. package/lib/converters/clickup/status_histories.js.map +1 -0
  242. package/lib/converters/clickup/tasks.d.ts +11 -0
  243. package/lib/converters/clickup/tasks.js +141 -0
  244. package/lib/converters/clickup/tasks.js.map +1 -0
  245. package/lib/converters/clickup/workspaces.d.ts +7 -0
  246. package/lib/converters/clickup/workspaces.js +40 -0
  247. package/lib/converters/clickup/workspaces.js.map +1 -0
  248. package/lib/converters/common/common.d.ts +10 -0
  249. package/lib/converters/common/common.js +20 -0
  250. package/lib/converters/common/common.js.map +1 -0
  251. package/lib/converters/common/vcs.d.ts +21 -0
  252. package/lib/converters/common/vcs.js +68 -0
  253. package/lib/converters/common/vcs.js.map +1 -0
  254. package/lib/converters/converter-registry.d.ts +25 -0
  255. package/lib/converters/converter-registry.js +66 -0
  256. package/lib/converters/converter-registry.js.map +1 -0
  257. package/lib/converters/converter.d.ts +80 -0
  258. package/lib/converters/converter.js +153 -0
  259. package/lib/converters/converter.js.map +1 -0
  260. package/lib/converters/datadog/common.d.ts +27 -0
  261. package/lib/converters/datadog/common.js +35 -0
  262. package/lib/converters/datadog/common.js.map +1 -0
  263. package/lib/converters/datadog/incidents.d.ts +10 -0
  264. package/lib/converters/datadog/incidents.js +129 -0
  265. package/lib/converters/datadog/incidents.js.map +1 -0
  266. package/lib/converters/datadog/metrics.d.ts +13 -0
  267. package/lib/converters/datadog/metrics.js +63 -0
  268. package/lib/converters/datadog/metrics.js.map +1 -0
  269. package/lib/converters/datadog/users.d.ts +7 -0
  270. package/lib/converters/datadog/users.js +28 -0
  271. package/lib/converters/datadog/users.js.map +1 -0
  272. package/lib/converters/docker/common.d.ts +88 -0
  273. package/lib/converters/docker/common.js +78 -0
  274. package/lib/converters/docker/common.js.map +1 -0
  275. package/lib/converters/docker/tags.d.ts +7 -0
  276. package/lib/converters/docker/tags.js +97 -0
  277. package/lib/converters/docker/tags.js.map +1 -0
  278. package/lib/converters/faros-feed/faros_feed.d.ts +13 -0
  279. package/lib/converters/faros-feed/faros_feed.js +25 -0
  280. package/lib/converters/faros-feed/faros_feed.js.map +1 -0
  281. package/lib/converters/faros-feeds/faros_feed.d.ts +9 -0
  282. package/lib/converters/faros-feeds/faros_feed.js +69 -0
  283. package/lib/converters/faros-feeds/faros_feed.js.map +1 -0
  284. package/lib/converters/faros-feeds/model_names.d.ts +1 -0
  285. package/lib/converters/faros-feeds/model_names.js +136 -0
  286. package/lib/converters/faros-feeds/model_names.js.map +1 -0
  287. package/lib/converters/faros-graphql/faros_graph.d.ts +13 -0
  288. package/lib/converters/faros-graphql/faros_graph.js +25 -0
  289. package/lib/converters/faros-graphql/faros_graph.js.map +1 -0
  290. package/lib/converters/firehydrant/common.d.ts +20 -0
  291. package/lib/converters/firehydrant/common.js +31 -0
  292. package/lib/converters/firehydrant/common.js.map +1 -0
  293. package/lib/converters/firehydrant/incidents.d.ts +14 -0
  294. package/lib/converters/firehydrant/incidents.js +237 -0
  295. package/lib/converters/firehydrant/incidents.js.map +1 -0
  296. package/lib/converters/firehydrant/models.d.ts +212 -0
  297. package/lib/converters/firehydrant/models.js +77 -0
  298. package/lib/converters/firehydrant/models.js.map +1 -0
  299. package/lib/converters/firehydrant/teams.d.ts +7 -0
  300. package/lib/converters/firehydrant/teams.js +27 -0
  301. package/lib/converters/firehydrant/teams.js.map +1 -0
  302. package/lib/converters/firehydrant/users.d.ts +7 -0
  303. package/lib/converters/firehydrant/users.js +39 -0
  304. package/lib/converters/firehydrant/users.js.map +1 -0
  305. package/lib/converters/github/assignees.d.ts +7 -0
  306. package/lib/converters/github/assignees.js +20 -0
  307. package/lib/converters/github/assignees.js.map +1 -0
  308. package/lib/converters/github/branches.d.ts +7 -0
  309. package/lib/converters/github/branches.js +29 -0
  310. package/lib/converters/github/branches.js.map +1 -0
  311. package/lib/converters/github/collaborators.d.ts +7 -0
  312. package/lib/converters/github/collaborators.js +20 -0
  313. package/lib/converters/github/collaborators.js.map +1 -0
  314. package/lib/converters/github/commits.d.ts +7 -0
  315. package/lib/converters/github/commits.js +49 -0
  316. package/lib/converters/github/commits.js.map +1 -0
  317. package/lib/converters/github/common.d.ts +34 -0
  318. package/lib/converters/github/common.js +165 -0
  319. package/lib/converters/github/common.js.map +1 -0
  320. package/lib/converters/github/issue_labels.d.ts +7 -0
  321. package/lib/converters/github/issue_labels.js +21 -0
  322. package/lib/converters/github/issue_labels.js.map +1 -0
  323. package/lib/converters/github/issue_milestones.d.ts +8 -0
  324. package/lib/converters/github/issue_milestones.js +43 -0
  325. package/lib/converters/github/issue_milestones.js.map +1 -0
  326. package/lib/converters/github/issues.d.ts +9 -0
  327. package/lib/converters/github/issues.js +91 -0
  328. package/lib/converters/github/issues.js.map +1 -0
  329. package/lib/converters/github/organizations.d.ts +7 -0
  330. package/lib/converters/github/organizations.js +39 -0
  331. package/lib/converters/github/organizations.js.map +1 -0
  332. package/lib/converters/github/projects.d.ts +7 -0
  333. package/lib/converters/github/projects.js +22 -0
  334. package/lib/converters/github/projects.js.map +1 -0
  335. package/lib/converters/github/pull_request_commits.d.ts +7 -0
  336. package/lib/converters/github/pull_request_commits.js +46 -0
  337. package/lib/converters/github/pull_request_commits.js.map +1 -0
  338. package/lib/converters/github/pull_request_stats.d.ts +7 -0
  339. package/lib/converters/github/pull_request_stats.js +44 -0
  340. package/lib/converters/github/pull_request_stats.js.map +1 -0
  341. package/lib/converters/github/pull_requests.d.ts +7 -0
  342. package/lib/converters/github/pull_requests.js +63 -0
  343. package/lib/converters/github/pull_requests.js.map +1 -0
  344. package/lib/converters/github/releases.d.ts +7 -0
  345. package/lib/converters/github/releases.js +52 -0
  346. package/lib/converters/github/releases.js.map +1 -0
  347. package/lib/converters/github/repositories.d.ts +7 -0
  348. package/lib/converters/github/repositories.js +45 -0
  349. package/lib/converters/github/repositories.js.map +1 -0
  350. package/lib/converters/github/review_comments.d.ts +7 -0
  351. package/lib/converters/github/review_comments.js +41 -0
  352. package/lib/converters/github/review_comments.js.map +1 -0
  353. package/lib/converters/github/reviews.d.ts +7 -0
  354. package/lib/converters/github/reviews.js +61 -0
  355. package/lib/converters/github/reviews.js.map +1 -0
  356. package/lib/converters/github/tags.d.ts +7 -0
  357. package/lib/converters/github/tags.js +32 -0
  358. package/lib/converters/github/tags.js.map +1 -0
  359. package/lib/converters/github/team_memberships.d.ts +7 -0
  360. package/lib/converters/github/team_memberships.js +41 -0
  361. package/lib/converters/github/team_memberships.js.map +1 -0
  362. package/lib/converters/github/teams.d.ts +7 -0
  363. package/lib/converters/github/teams.js +28 -0
  364. package/lib/converters/github/teams.js.map +1 -0
  365. package/lib/converters/github/users.d.ts +7 -0
  366. package/lib/converters/github/users.js +20 -0
  367. package/lib/converters/github/users.js.map +1 -0
  368. package/lib/converters/github/workflow_runs.d.ts +7 -0
  369. package/lib/converters/github/workflow_runs.js +56 -0
  370. package/lib/converters/github/workflow_runs.js.map +1 -0
  371. package/lib/converters/github/workflows.d.ts +8 -0
  372. package/lib/converters/github/workflows.js +45 -0
  373. package/lib/converters/github/workflows.js.map +1 -0
  374. package/lib/converters/gitlab/branches.d.ts +8 -0
  375. package/lib/converters/gitlab/branches.js +45 -0
  376. package/lib/converters/gitlab/branches.js.map +1 -0
  377. package/lib/converters/gitlab/commits.d.ts +7 -0
  378. package/lib/converters/gitlab/commits.js +34 -0
  379. package/lib/converters/gitlab/commits.js.map +1 -0
  380. package/lib/converters/gitlab/common.d.ts +45 -0
  381. package/lib/converters/gitlab/common.js +143 -0
  382. package/lib/converters/gitlab/common.js.map +1 -0
  383. package/lib/converters/gitlab/group_labels.d.ts +7 -0
  384. package/lib/converters/gitlab/group_labels.js +16 -0
  385. package/lib/converters/gitlab/group_labels.js.map +1 -0
  386. package/lib/converters/gitlab/group_milestones.d.ts +8 -0
  387. package/lib/converters/gitlab/group_milestones.js +42 -0
  388. package/lib/converters/gitlab/group_milestones.js.map +1 -0
  389. package/lib/converters/gitlab/groups.d.ts +7 -0
  390. package/lib/converters/gitlab/groups.js +52 -0
  391. package/lib/converters/gitlab/groups.js.map +1 -0
  392. package/lib/converters/gitlab/issues.d.ts +9 -0
  393. package/lib/converters/gitlab/issues.js +100 -0
  394. package/lib/converters/gitlab/issues.js.map +1 -0
  395. package/lib/converters/gitlab/jobs.d.ts +10 -0
  396. package/lib/converters/gitlab/jobs.js +73 -0
  397. package/lib/converters/gitlab/jobs.js.map +1 -0
  398. package/lib/converters/gitlab/merge_request_commits.d.ts +7 -0
  399. package/lib/converters/gitlab/merge_request_commits.js +35 -0
  400. package/lib/converters/gitlab/merge_request_commits.js.map +1 -0
  401. package/lib/converters/gitlab/merge_requests.d.ts +10 -0
  402. package/lib/converters/gitlab/merge_requests.js +66 -0
  403. package/lib/converters/gitlab/merge_requests.js.map +1 -0
  404. package/lib/converters/gitlab/pipelines.d.ts +7 -0
  405. package/lib/converters/gitlab/pipelines.js +59 -0
  406. package/lib/converters/gitlab/pipelines.js.map +1 -0
  407. package/lib/converters/gitlab/project_labels.d.ts +7 -0
  408. package/lib/converters/gitlab/project_labels.js +16 -0
  409. package/lib/converters/gitlab/project_labels.js.map +1 -0
  410. package/lib/converters/gitlab/project_milestones.d.ts +8 -0
  411. package/lib/converters/gitlab/project_milestones.js +42 -0
  412. package/lib/converters/gitlab/project_milestones.js.map +1 -0
  413. package/lib/converters/gitlab/projects.d.ts +7 -0
  414. package/lib/converters/gitlab/projects.js +57 -0
  415. package/lib/converters/gitlab/projects.js.map +1 -0
  416. package/lib/converters/gitlab/releases.d.ts +9 -0
  417. package/lib/converters/gitlab/releases.js +60 -0
  418. package/lib/converters/gitlab/releases.js.map +1 -0
  419. package/lib/converters/gitlab/tags.d.ts +10 -0
  420. package/lib/converters/gitlab/tags.js +42 -0
  421. package/lib/converters/gitlab/tags.js.map +1 -0
  422. package/lib/converters/gitlab/users.d.ts +7 -0
  423. package/lib/converters/gitlab/users.js +34 -0
  424. package/lib/converters/gitlab/users.js.map +1 -0
  425. package/lib/converters/gitlab-ci/groups.d.ts +8 -0
  426. package/lib/converters/gitlab-ci/groups.js +32 -0
  427. package/lib/converters/gitlab-ci/groups.js.map +1 -0
  428. package/lib/converters/gitlab-ci/jobs.d.ts +11 -0
  429. package/lib/converters/gitlab-ci/jobs.js +69 -0
  430. package/lib/converters/gitlab-ci/jobs.js.map +1 -0
  431. package/lib/converters/gitlab-ci/pipelines.d.ts +8 -0
  432. package/lib/converters/gitlab-ci/pipelines.js +49 -0
  433. package/lib/converters/gitlab-ci/pipelines.js.map +1 -0
  434. package/lib/converters/gitlab-ci/projects.d.ts +8 -0
  435. package/lib/converters/gitlab-ci/projects.js +35 -0
  436. package/lib/converters/gitlab-ci/projects.js.map +1 -0
  437. package/lib/converters/googlecalendar/calendar_models.d.ts +554 -0
  438. package/lib/converters/googlecalendar/calendar_models.js +3 -0
  439. package/lib/converters/googlecalendar/calendar_models.js.map +1 -0
  440. package/lib/converters/googlecalendar/calendars.d.ts +7 -0
  441. package/lib/converters/googlecalendar/calendars.js +30 -0
  442. package/lib/converters/googlecalendar/calendars.js.map +1 -0
  443. package/lib/converters/googlecalendar/common.d.ts +52 -0
  444. package/lib/converters/googlecalendar/common.js +138 -0
  445. package/lib/converters/googlecalendar/common.js.map +1 -0
  446. package/lib/converters/googlecalendar/events.d.ts +10 -0
  447. package/lib/converters/googlecalendar/events.js +150 -0
  448. package/lib/converters/googlecalendar/events.js.map +1 -0
  449. package/lib/converters/harness/common.d.ts +102 -0
  450. package/lib/converters/harness/common.js +17 -0
  451. package/lib/converters/harness/common.js.map +1 -0
  452. package/lib/converters/harness/executions.d.ts +15 -0
  453. package/lib/converters/harness/executions.js +240 -0
  454. package/lib/converters/harness/executions.js.map +1 -0
  455. package/lib/converters/hygieia/collector_items.d.ts +8 -0
  456. package/lib/converters/hygieia/collector_items.js +51 -0
  457. package/lib/converters/hygieia/collector_items.js.map +1 -0
  458. package/lib/converters/jenkins/builds.d.ts +11 -0
  459. package/lib/converters/jenkins/builds.js +144 -0
  460. package/lib/converters/jenkins/builds.js.map +1 -0
  461. package/lib/converters/jenkins/common.d.ts +36 -0
  462. package/lib/converters/jenkins/common.js +70 -0
  463. package/lib/converters/jenkins/common.js.map +1 -0
  464. package/lib/converters/jenkins/jobs.d.ts +8 -0
  465. package/lib/converters/jenkins/jobs.js +30 -0
  466. package/lib/converters/jenkins/jobs.js.map +1 -0
  467. package/lib/converters/jira/board_issues.d.ts +7 -0
  468. package/lib/converters/jira/board_issues.js +29 -0
  469. package/lib/converters/jira/board_issues.js.map +1 -0
  470. package/lib/converters/jira/boards.d.ts +7 -0
  471. package/lib/converters/jira/boards.js +35 -0
  472. package/lib/converters/jira/boards.js.map +1 -0
  473. package/lib/converters/jira/common.d.ts +61 -0
  474. package/lib/converters/jira/common.js +65 -0
  475. package/lib/converters/jira/common.js.map +1 -0
  476. package/lib/converters/jira/epics.d.ts +8 -0
  477. package/lib/converters/jira/epics.js +46 -0
  478. package/lib/converters/jira/epics.js.map +1 -0
  479. package/lib/converters/jira/issue_fields.d.ts +6 -0
  480. package/lib/converters/jira/issue_fields.js +16 -0
  481. package/lib/converters/jira/issue_fields.js.map +1 -0
  482. package/lib/converters/jira/issues.d.ts +51 -0
  483. package/lib/converters/jira/issues.js +544 -0
  484. package/lib/converters/jira/issues.js.map +1 -0
  485. package/lib/converters/jira/project_versions.d.ts +9 -0
  486. package/lib/converters/jira/project_versions.js +49 -0
  487. package/lib/converters/jira/project_versions.js.map +1 -0
  488. package/lib/converters/jira/projects.d.ts +7 -0
  489. package/lib/converters/jira/projects.js +41 -0
  490. package/lib/converters/jira/projects.js.map +1 -0
  491. package/lib/converters/jira/pull_requests.d.ts +6 -0
  492. package/lib/converters/jira/pull_requests.js +16 -0
  493. package/lib/converters/jira/pull_requests.js.map +1 -0
  494. package/lib/converters/jira/sprint_issues.d.ts +6 -0
  495. package/lib/converters/jira/sprint_issues.js +16 -0
  496. package/lib/converters/jira/sprint_issues.js.map +1 -0
  497. package/lib/converters/jira/sprints.d.ts +15 -0
  498. package/lib/converters/jira/sprints.js +79 -0
  499. package/lib/converters/jira/sprints.js.map +1 -0
  500. package/lib/converters/jira/users.d.ts +7 -0
  501. package/lib/converters/jira/users.js +33 -0
  502. package/lib/converters/jira/users.js.map +1 -0
  503. package/lib/converters/jira/workflow_statuses.d.ts +6 -0
  504. package/lib/converters/jira/workflow_statuses.js +16 -0
  505. package/lib/converters/jira/workflow_statuses.js.map +1 -0
  506. package/lib/converters/jsonata.d.ts +18 -0
  507. package/lib/converters/jsonata.js +72 -0
  508. package/lib/converters/jsonata.js.map +1 -0
  509. package/lib/converters/notion/common.d.ts +975 -0
  510. package/lib/converters/notion/common.js +185 -0
  511. package/lib/converters/notion/common.js.map +1 -0
  512. package/lib/converters/notion/pages.d.ts +14 -0
  513. package/lib/converters/notion/pages.js +462 -0
  514. package/lib/converters/notion/pages.js.map +1 -0
  515. package/lib/converters/notion/users.d.ts +7 -0
  516. package/lib/converters/notion/users.js +27 -0
  517. package/lib/converters/notion/users.js.map +1 -0
  518. package/lib/converters/octopus/common.d.ts +8 -0
  519. package/lib/converters/octopus/common.js +18 -0
  520. package/lib/converters/octopus/common.js.map +1 -0
  521. package/lib/converters/octopus/deployments.d.ts +13 -0
  522. package/lib/converters/octopus/deployments.js +89 -0
  523. package/lib/converters/octopus/deployments.js.map +1 -0
  524. package/lib/converters/octopus/releases.d.ts +7 -0
  525. package/lib/converters/octopus/releases.js +30 -0
  526. package/lib/converters/octopus/releases.js.map +1 -0
  527. package/lib/converters/okta/common.d.ts +8 -0
  528. package/lib/converters/okta/common.js +18 -0
  529. package/lib/converters/okta/common.js.map +1 -0
  530. package/lib/converters/okta/groups.d.ts +7 -0
  531. package/lib/converters/okta/groups.js +48 -0
  532. package/lib/converters/okta/groups.js.map +1 -0
  533. package/lib/converters/okta/models.d.ts +102 -0
  534. package/lib/converters/okta/models.js +3 -0
  535. package/lib/converters/okta/models.js.map +1 -0
  536. package/lib/converters/okta/users.d.ts +8 -0
  537. package/lib/converters/okta/users.js +74 -0
  538. package/lib/converters/okta/users.js.map +1 -0
  539. package/lib/converters/okta-faros/common.d.ts +4 -0
  540. package/lib/converters/okta-faros/common.js +12 -0
  541. package/lib/converters/okta-faros/common.js.map +1 -0
  542. package/lib/converters/okta-faros/groups.d.ts +13 -0
  543. package/lib/converters/okta-faros/groups.js +24 -0
  544. package/lib/converters/okta-faros/groups.js.map +1 -0
  545. package/lib/converters/okta-faros/users.d.ts +13 -0
  546. package/lib/converters/okta-faros/users.js +24 -0
  547. package/lib/converters/okta-faros/users.js.map +1 -0
  548. package/lib/converters/opsgenie/common.d.ts +20 -0
  549. package/lib/converters/opsgenie/common.js +31 -0
  550. package/lib/converters/opsgenie/common.js.map +1 -0
  551. package/lib/converters/opsgenie/incidents.d.ts +11 -0
  552. package/lib/converters/opsgenie/incidents.js +163 -0
  553. package/lib/converters/opsgenie/incidents.js.map +1 -0
  554. package/lib/converters/opsgenie/models.d.ts +122 -0
  555. package/lib/converters/opsgenie/models.js +40 -0
  556. package/lib/converters/opsgenie/models.js.map +1 -0
  557. package/lib/converters/opsgenie/teams.d.ts +7 -0
  558. package/lib/converters/opsgenie/teams.js +27 -0
  559. package/lib/converters/opsgenie/teams.js.map +1 -0
  560. package/lib/converters/opsgenie/users.d.ts +7 -0
  561. package/lib/converters/opsgenie/users.js +39 -0
  562. package/lib/converters/opsgenie/users.js.map +1 -0
  563. package/lib/converters/pagerduty/common.d.ts +39 -0
  564. package/lib/converters/pagerduty/common.js +45 -0
  565. package/lib/converters/pagerduty/common.js.map +1 -0
  566. package/lib/converters/pagerduty/incident_log_entries.d.ts +8 -0
  567. package/lib/converters/pagerduty/incident_log_entries.js +57 -0
  568. package/lib/converters/pagerduty/incident_log_entries.js.map +1 -0
  569. package/lib/converters/pagerduty/incidents.d.ts +10 -0
  570. package/lib/converters/pagerduty/incidents.js +114 -0
  571. package/lib/converters/pagerduty/incidents.js.map +1 -0
  572. package/lib/converters/pagerduty/priorities_resource.d.ts +10 -0
  573. package/lib/converters/pagerduty/priorities_resource.js +63 -0
  574. package/lib/converters/pagerduty/priorities_resource.js.map +1 -0
  575. package/lib/converters/pagerduty/services.d.ts +9 -0
  576. package/lib/converters/pagerduty/services.js +87 -0
  577. package/lib/converters/pagerduty/services.js.map +1 -0
  578. package/lib/converters/pagerduty/users.d.ts +7 -0
  579. package/lib/converters/pagerduty/users.js +27 -0
  580. package/lib/converters/pagerduty/users.js.map +1 -0
  581. package/lib/converters/phabricator/commits.d.ts +8 -0
  582. package/lib/converters/phabricator/commits.js +81 -0
  583. package/lib/converters/phabricator/commits.js.map +1 -0
  584. package/lib/converters/phabricator/common.d.ts +39 -0
  585. package/lib/converters/phabricator/common.js +137 -0
  586. package/lib/converters/phabricator/common.js.map +1 -0
  587. package/lib/converters/phabricator/projects.d.ts +7 -0
  588. package/lib/converters/phabricator/projects.js +51 -0
  589. package/lib/converters/phabricator/projects.js.map +1 -0
  590. package/lib/converters/phabricator/repositories.d.ts +7 -0
  591. package/lib/converters/phabricator/repositories.js +68 -0
  592. package/lib/converters/phabricator/repositories.js.map +1 -0
  593. package/lib/converters/phabricator/revision_diffs.d.ts +8 -0
  594. package/lib/converters/phabricator/revision_diffs.js +48 -0
  595. package/lib/converters/phabricator/revision_diffs.js.map +1 -0
  596. package/lib/converters/phabricator/revisions.d.ts +7 -0
  597. package/lib/converters/phabricator/revisions.js +51 -0
  598. package/lib/converters/phabricator/revisions.js.map +1 -0
  599. package/lib/converters/phabricator/transactions.d.ts +10 -0
  600. package/lib/converters/phabricator/transactions.js +101 -0
  601. package/lib/converters/phabricator/transactions.js.map +1 -0
  602. package/lib/converters/phabricator/users.d.ts +7 -0
  603. package/lib/converters/phabricator/users.js +40 -0
  604. package/lib/converters/phabricator/users.js.map +1 -0
  605. package/lib/converters/semaphoreci/common.d.ts +27 -0
  606. package/lib/converters/semaphoreci/common.js +98 -0
  607. package/lib/converters/semaphoreci/common.js.map +1 -0
  608. package/lib/converters/semaphoreci/models.d.ts +128 -0
  609. package/lib/converters/semaphoreci/models.js +35 -0
  610. package/lib/converters/semaphoreci/models.js.map +1 -0
  611. package/lib/converters/semaphoreci/pipelines.d.ts +8 -0
  612. package/lib/converters/semaphoreci/pipelines.js +112 -0
  613. package/lib/converters/semaphoreci/pipelines.js.map +1 -0
  614. package/lib/converters/semaphoreci/projects.d.ts +8 -0
  615. package/lib/converters/semaphoreci/projects.js +46 -0
  616. package/lib/converters/semaphoreci/projects.js.map +1 -0
  617. package/lib/converters/servicenow/common.d.ts +39 -0
  618. package/lib/converters/servicenow/common.js +52 -0
  619. package/lib/converters/servicenow/common.js.map +1 -0
  620. package/lib/converters/servicenow/incidents.d.ts +18 -0
  621. package/lib/converters/servicenow/incidents.js +278 -0
  622. package/lib/converters/servicenow/incidents.js.map +1 -0
  623. package/lib/converters/servicenow/users.d.ts +7 -0
  624. package/lib/converters/servicenow/users.js +27 -0
  625. package/lib/converters/servicenow/users.js.map +1 -0
  626. package/lib/converters/shortcut/common.d.ts +16 -0
  627. package/lib/converters/shortcut/common.js +69 -0
  628. package/lib/converters/shortcut/common.js.map +1 -0
  629. package/lib/converters/shortcut/epics.d.ts +7 -0
  630. package/lib/converters/shortcut/epics.js +30 -0
  631. package/lib/converters/shortcut/epics.js.map +1 -0
  632. package/lib/converters/shortcut/iterations.d.ts +7 -0
  633. package/lib/converters/shortcut/iterations.js +30 -0
  634. package/lib/converters/shortcut/iterations.js.map +1 -0
  635. package/lib/converters/shortcut/members.d.ts +7 -0
  636. package/lib/converters/shortcut/members.js +27 -0
  637. package/lib/converters/shortcut/members.js.map +1 -0
  638. package/lib/converters/shortcut/models.d.ts +392 -0
  639. package/lib/converters/shortcut/models.js +31 -0
  640. package/lib/converters/shortcut/models.js.map +1 -0
  641. package/lib/converters/shortcut/projects.d.ts +7 -0
  642. package/lib/converters/shortcut/projects.js +47 -0
  643. package/lib/converters/shortcut/projects.js.map +1 -0
  644. package/lib/converters/shortcut/stories.d.ts +7 -0
  645. package/lib/converters/shortcut/stories.js +128 -0
  646. package/lib/converters/shortcut/stories.js.map +1 -0
  647. package/lib/converters/squadcast/common.d.ts +169 -0
  648. package/lib/converters/squadcast/common.js +63 -0
  649. package/lib/converters/squadcast/common.js.map +1 -0
  650. package/lib/converters/squadcast/events.d.ts +9 -0
  651. package/lib/converters/squadcast/events.js +54 -0
  652. package/lib/converters/squadcast/events.js.map +1 -0
  653. package/lib/converters/squadcast/incidents.d.ts +10 -0
  654. package/lib/converters/squadcast/incidents.js +132 -0
  655. package/lib/converters/squadcast/incidents.js.map +1 -0
  656. package/lib/converters/squadcast/services.d.ts +8 -0
  657. package/lib/converters/squadcast/services.js +30 -0
  658. package/lib/converters/squadcast/services.js.map +1 -0
  659. package/lib/converters/squadcast/users.d.ts +7 -0
  660. package/lib/converters/squadcast/users.js +28 -0
  661. package/lib/converters/squadcast/users.js.map +1 -0
  662. package/lib/converters/statuspage/common.d.ts +125 -0
  663. package/lib/converters/statuspage/common.js +118 -0
  664. package/lib/converters/statuspage/common.js.map +1 -0
  665. package/lib/converters/statuspage/component_groups.d.ts +6 -0
  666. package/lib/converters/statuspage/component_groups.js +15 -0
  667. package/lib/converters/statuspage/component_groups.js.map +1 -0
  668. package/lib/converters/statuspage/component_uptimes.d.ts +8 -0
  669. package/lib/converters/statuspage/component_uptimes.js +44 -0
  670. package/lib/converters/statuspage/component_uptimes.js.map +1 -0
  671. package/lib/converters/statuspage/components.d.ts +8 -0
  672. package/lib/converters/statuspage/components.js +29 -0
  673. package/lib/converters/statuspage/components.js.map +1 -0
  674. package/lib/converters/statuspage/incidents.d.ts +13 -0
  675. package/lib/converters/statuspage/incidents.js +221 -0
  676. package/lib/converters/statuspage/incidents.js.map +1 -0
  677. package/lib/converters/statuspage/pages.d.ts +6 -0
  678. package/lib/converters/statuspage/pages.js +15 -0
  679. package/lib/converters/statuspage/pages.js.map +1 -0
  680. package/lib/converters/statuspage/users.d.ts +7 -0
  681. package/lib/converters/statuspage/users.js +27 -0
  682. package/lib/converters/statuspage/users.js.map +1 -0
  683. package/lib/converters/testrails/cases.d.ts +7 -0
  684. package/lib/converters/testrails/cases.js +43 -0
  685. package/lib/converters/testrails/cases.js.map +1 -0
  686. package/lib/converters/testrails/common.d.ts +20 -0
  687. package/lib/converters/testrails/common.js +66 -0
  688. package/lib/converters/testrails/common.js.map +1 -0
  689. package/lib/converters/testrails/results.d.ts +7 -0
  690. package/lib/converters/testrails/results.js +41 -0
  691. package/lib/converters/testrails/results.js.map +1 -0
  692. package/lib/converters/testrails/runs.d.ts +7 -0
  693. package/lib/converters/testrails/runs.js +56 -0
  694. package/lib/converters/testrails/runs.js.map +1 -0
  695. package/lib/converters/testrails/suites.d.ts +7 -0
  696. package/lib/converters/testrails/suites.js +33 -0
  697. package/lib/converters/testrails/suites.js.map +1 -0
  698. package/lib/converters/victorops/common.d.ts +16 -0
  699. package/lib/converters/victorops/common.js +25 -0
  700. package/lib/converters/victorops/common.js.map +1 -0
  701. package/lib/converters/victorops/incidents.d.ts +12 -0
  702. package/lib/converters/victorops/incidents.js +204 -0
  703. package/lib/converters/victorops/incidents.js.map +1 -0
  704. package/lib/converters/victorops/teams.d.ts +8 -0
  705. package/lib/converters/victorops/teams.js +31 -0
  706. package/lib/converters/victorops/teams.js.map +1 -0
  707. package/lib/converters/victorops/users.d.ts +8 -0
  708. package/lib/converters/victorops/users.js +34 -0
  709. package/lib/converters/victorops/users.js.map +1 -0
  710. package/lib/destination-runner.d.ts +22 -0
  711. package/lib/destination-runner.js +34 -0
  712. package/lib/destination-runner.js.map +1 -0
  713. package/lib/destination.d.ts +57 -0
  714. package/lib/destination.js +665 -0
  715. package/lib/destination.js.map +1 -0
  716. package/lib/index.d.ts +16 -0
  717. package/lib/index.js +40 -0
  718. package/lib/index.js.map +1 -0
  719. package/lib/tsconfig.tsbuildinfo +1 -0
  720. package/package.json +78 -0
  721. package/resources/cloud.json +73 -0
  722. package/resources/community.json +39 -0
  723. package/resources/source-specific-configs/agileaccelerator.json +33 -0
  724. package/resources/source-specific-configs/azurepipeline.json +27 -0
  725. package/resources/source-specific-configs/backlog.json +24 -0
  726. package/resources/source-specific-configs/bamboohr.json +36 -0
  727. package/resources/source-specific-configs/bitbucket.json +28 -0
  728. package/resources/source-specific-configs/circleci.json +24 -0
  729. package/resources/source-specific-configs/clickup.json +35 -0
  730. package/resources/source-specific-configs/datadog.json +42 -0
  731. package/resources/source-specific-configs/docker.json +40 -0
  732. package/resources/source-specific-configs/firehydrant.json +34 -0
  733. package/resources/source-specific-configs/jenkins.json +24 -0
  734. package/resources/source-specific-configs/jira.json +45 -0
  735. package/resources/source-specific-configs/notion.json +313 -0
  736. package/resources/source-specific-configs/opsgenie.json +34 -0
  737. package/resources/source-specific-configs/pagerduty.json +48 -0
  738. package/resources/source-specific-configs/phabricator.json +24 -0
  739. package/resources/source-specific-configs/servicenow.json +72 -0
  740. package/resources/source-specific-configs/spec.json +78 -0
  741. package/resources/source-specific-configs/squadcast.json +28 -0
  742. package/resources/source-specific-configs/statuspage.json +28 -0
  743. package/resources/source-specific-configs/victorops.json +37 -0
  744. package/resources/spec.json +116 -0
@@ -0,0 +1,665 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FarosDestination = void 0;
7
+ const analytics_node_1 = __importDefault(require("analytics-node"));
8
+ const faros_airbyte_cdk_1 = require("faros-airbyte-cdk");
9
+ const faros_feeds_sdk_1 = require("faros-feeds-sdk");
10
+ const faros_js_client_1 = require("faros-js-client");
11
+ const http_1 = __importDefault(require("http"));
12
+ const https_1 = __importDefault(require("https"));
13
+ const lodash_1 = require("lodash");
14
+ const path_1 = __importDefault(require("path"));
15
+ const readline_1 = __importDefault(require("readline"));
16
+ const util_1 = __importDefault(require("util"));
17
+ const uuid_1 = require("uuid");
18
+ const verror_1 = require("verror");
19
+ const graphql_client_1 = require("./common/graphql-client");
20
+ const graphql_writer_1 = require("./common/graphql-writer");
21
+ const types_1 = require("./common/types");
22
+ const write_stats_1 = require("./common/write-stats");
23
+ const hasura_backend_1 = require("./community/hasura-backend");
24
+ const converter_1 = require("./converters/converter");
25
+ const converter_registry_1 = require("./converters/converter-registry");
26
+ const jsonata_1 = require("./converters/jsonata");
27
+ const PACKAGE_ROOT = path_1.default.join(__dirname, '..');
28
+ const BASE_RESOURCES_DIR = path_1.default.join(PACKAGE_ROOT, 'resources');
29
+ const DEFAULT_API_URL = 'https://prod.api.faros.ai';
30
+ /** Faros destination implementation. */
31
+ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
32
+ constructor(logger, specOverride = undefined, edition = undefined, farosClientConfig = undefined, farosClient = undefined, farosGraph = undefined, farosRevisionExpiration = undefined, jsonataConverter = undefined, jsonataMode = jsonata_1.JSONataApplyMode.FALLBACK, invalidRecordStrategy = types_1.InvalidRecordStrategy.SKIP, excludeFieldsByModel = {}, graphQLClient = undefined, analytics = undefined, segmentUserId = undefined) {
33
+ super();
34
+ this.logger = logger;
35
+ this.specOverride = specOverride;
36
+ this.edition = edition;
37
+ this.farosClientConfig = farosClientConfig;
38
+ this.farosClient = farosClient;
39
+ this.farosGraph = farosGraph;
40
+ this.farosRevisionExpiration = farosRevisionExpiration;
41
+ this.jsonataConverter = jsonataConverter;
42
+ this.jsonataMode = jsonataMode;
43
+ this.invalidRecordStrategy = invalidRecordStrategy;
44
+ this.excludeFieldsByModel = excludeFieldsByModel;
45
+ this.graphQLClient = graphQLClient;
46
+ this.analytics = analytics;
47
+ this.segmentUserId = segmentUserId;
48
+ this.onConfigCheck = undefined;
49
+ }
50
+ getFarosClient() {
51
+ if (this.farosClient)
52
+ return this.farosClient;
53
+ throw new verror_1.VError('Faros Client is not initialized');
54
+ }
55
+ getGraphQLClient() {
56
+ if (this.graphQLClient)
57
+ return this.graphQLClient;
58
+ throw new verror_1.VError('GraphQL Client is not initialized');
59
+ }
60
+ async spec() {
61
+ if (this.specOverride)
62
+ return this.specOverride;
63
+ return faros_airbyte_cdk_1.SpecLoader.loadSpec(path_1.default.join(BASE_RESOURCES_DIR, 'spec.json'));
64
+ }
65
+ async check(config) {
66
+ try {
67
+ await this.init(config);
68
+ if (this.onConfigCheck) {
69
+ await this.onConfigCheck(config);
70
+ }
71
+ }
72
+ catch (e) {
73
+ return new faros_airbyte_cdk_1.AirbyteConnectionStatusMessage({
74
+ status: faros_airbyte_cdk_1.AirbyteConnectionStatus.FAILED,
75
+ message: e.message,
76
+ });
77
+ }
78
+ return new faros_airbyte_cdk_1.AirbyteConnectionStatusMessage({
79
+ status: faros_airbyte_cdk_1.AirbyteConnectionStatus.SUCCEEDED,
80
+ });
81
+ }
82
+ makeHttpAgents(keepAlive) {
83
+ return keepAlive
84
+ ? {
85
+ httpAgent: new http_1.default.Agent({ keepAlive: true }),
86
+ httpsAgent: new https_1.default.Agent({ keepAlive: true }),
87
+ }
88
+ : {};
89
+ }
90
+ async initCommunity(config) {
91
+ var _a;
92
+ if (!config.edition_configs.hasura_url) {
93
+ throw new verror_1.VError('Community Edition Hasura URL is not set');
94
+ }
95
+ try {
96
+ const backend = new hasura_backend_1.HasuraBackend(config.edition_configs.hasura_url, config.edition_configs.hasura_admin_secret, this.makeHttpAgents(config.keep_alive));
97
+ const schemaLoader = new faros_js_client_1.HasuraSchemaLoader(config.edition_configs.hasura_url, config.edition_configs.hasura_admin_secret);
98
+ this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, 0, config.edition_configs.community_graphql_batch_size, false);
99
+ }
100
+ catch (e) {
101
+ throw new verror_1.VError(`Failed to initialize Hasura Client. Error: ${e}`);
102
+ }
103
+ try {
104
+ if (!config.dry_run) {
105
+ await this.getGraphQLClient().healthCheck();
106
+ }
107
+ }
108
+ catch (e) {
109
+ throw new verror_1.VError(`Invalid Hasura url. Error: ${e}`);
110
+ }
111
+ this.segmentUserId = config.edition_configs.segment_user_id;
112
+ if (this.segmentUserId) {
113
+ if (!(0, uuid_1.validate)(this.segmentUserId)) {
114
+ throw new verror_1.VError(`Segment User Id ${this.segmentUserId} is not a valid UUID. Example: ${(0, uuid_1.v4)()}`);
115
+ }
116
+ // Segment host is used for testing purposes only
117
+ const host = (_a = config.edition_configs) === null || _a === void 0 ? void 0 : _a.segment_test_host;
118
+ // Only create the client if there's a user id specified
119
+ this.analytics = new analytics_node_1.default('YEu7VC65n9dIR85pQ1tgV2RHQHjo2bwn', {
120
+ host,
121
+ });
122
+ }
123
+ }
124
+ async initCloud(config) {
125
+ var _a, _b;
126
+ if (!config.edition_configs.api_key) {
127
+ throw new verror_1.VError('API key is not set');
128
+ }
129
+ const useGraphQLV2 = ((_a = config.edition_configs.graphql_api) !== null && _a !== void 0 ? _a : 'v2') === 'v2';
130
+ try {
131
+ this.farosClientConfig = {
132
+ url: (_b = config.edition_configs.api_url) !== null && _b !== void 0 ? _b : DEFAULT_API_URL,
133
+ apiKey: config.edition_configs.api_key,
134
+ useGraphQLV2,
135
+ };
136
+ const axiosConfig = {
137
+ timeout: 60000,
138
+ ...this.makeHttpAgents(config.keep_alive),
139
+ };
140
+ this.farosClient = new faros_js_client_1.FarosClient(this.farosClientConfig, this.logger.asPino('info'), axiosConfig);
141
+ }
142
+ catch (e) {
143
+ throw new verror_1.VError(`Failed to initialize Faros Client. Error: ${e}`);
144
+ }
145
+ try {
146
+ if (!config.dry_run && config.edition_configs.check_connection) {
147
+ await this.getFarosClient().tenant();
148
+ }
149
+ }
150
+ catch (e) {
151
+ throw new verror_1.VError(`Invalid Faros API url or API key. Error: ${e}`);
152
+ }
153
+ this.farosGraph = config.edition_configs.graph;
154
+ try {
155
+ if (!config.dry_run && config.edition_configs.check_connection) {
156
+ const exists = await this.getFarosClient().graphExists(this.farosGraph);
157
+ if (!exists) {
158
+ throw new verror_1.VError(`Faros graph ${this.farosGraph} does not exist`);
159
+ }
160
+ }
161
+ }
162
+ catch (e) {
163
+ throw new verror_1.VError(`Invalid Faros graph ${this.farosGraph}. Error: ${e}`);
164
+ }
165
+ this.farosRevisionExpiration = config.edition_configs.expiration;
166
+ if (!this.farosRevisionExpiration) {
167
+ this.farosRevisionExpiration = '5 seconds';
168
+ }
169
+ if (useGraphQLV2) {
170
+ await this.initGraphQLV2(config);
171
+ }
172
+ }
173
+ async initGraphQLV2(config) {
174
+ const client = this.getFarosClient();
175
+ const graph = this.farosGraph;
176
+ try {
177
+ const backend = {
178
+ async healthCheck() {
179
+ await client.graphExists(graph);
180
+ },
181
+ async postQuery(query) {
182
+ return await client.rawGql(graph, query);
183
+ },
184
+ };
185
+ const schemaLoader = {
186
+ async loadSchema() {
187
+ return await client.gqlSchema(graph);
188
+ },
189
+ };
190
+ this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.cloud_graphql_upsert_batch_size, config.edition_configs.cloud_graphql_batch_size);
191
+ }
192
+ catch (e) {
193
+ throw new verror_1.VError(`Failed to initialize GraphQLClient. Error: ${e}`);
194
+ }
195
+ try {
196
+ if (!config.dry_run && config.edition_configs.check_connection) {
197
+ await this.getGraphQLClient().healthCheck();
198
+ }
199
+ }
200
+ catch (e) {
201
+ throw new verror_1.VError(`Failed to health check GraphQLClient. Error: ${e}`);
202
+ }
203
+ }
204
+ initGlobal(config) {
205
+ var _a, _b;
206
+ try {
207
+ this.jsonataConverter = config.jsonata_expression
208
+ ? jsonata_1.JSONataConverter.make(config.jsonata_expression, config.jsonata_destination_models)
209
+ : undefined;
210
+ }
211
+ catch (e) {
212
+ throw new verror_1.VError(`Failed to initialize JSONata converter. Error: ${e}`);
213
+ }
214
+ if (config.invalid_record_strategy &&
215
+ !Object.values(types_1.InvalidRecordStrategy).includes(config.invalid_record_strategy)) {
216
+ throw new verror_1.VError(`Invalid strategy ${config.invalid_record_strategy}. ` +
217
+ `Possible values are ${Object.values(types_1.InvalidRecordStrategy).join(',')}`);
218
+ }
219
+ if (config.invalid_record_strategy) {
220
+ this.invalidRecordStrategy = config.invalid_record_strategy;
221
+ }
222
+ if (config.jsonata_mode &&
223
+ !Object.values(jsonata_1.JSONataApplyMode).includes(config.jsonata_mode)) {
224
+ throw new verror_1.VError(`Invalid JSONata mode ${config.jsonata_mode}. ` +
225
+ `Possible values are ${Object.values(jsonata_1.JSONataApplyMode).join(',')}`);
226
+ }
227
+ if (config.jsonata_mode) {
228
+ this.jsonataMode = config.jsonata_mode;
229
+ }
230
+ if (config.jsonata_expression &&
231
+ (!Array.isArray(config.jsonata_destination_models) ||
232
+ !config.jsonata_destination_models.length)) {
233
+ throw new verror_1.VError('JSONata destination models must be set when using JSONata expression');
234
+ }
235
+ this.excludeFieldsByModel = config.exclude_fields_map
236
+ ? JSON.parse(config.exclude_fields_map)
237
+ : {};
238
+ const jira_configs = (_b = (_a = config.source_specific_configs) === null || _a === void 0 ? void 0 : _a.jira) !== null && _b !== void 0 ? _b : {};
239
+ if (typeof jira_configs.truncate_limit === 'number' &&
240
+ jira_configs.truncate_limit < 0) {
241
+ throw new verror_1.VError('Jira Truncate Limit must be a non-negative number');
242
+ }
243
+ if (typeof jira_configs.additional_fields_array_limit === 'number' &&
244
+ jira_configs.additional_fields_array_limit < 0) {
245
+ throw new verror_1.VError('Jira Additional Fields Array Limit must be a non-negative number');
246
+ }
247
+ const objectTypeConfigKeys = [
248
+ ['bitbucket', 'application_mapping'],
249
+ ['pagerduty', 'application_mapping'],
250
+ ['squadcast', 'application_mapping'],
251
+ ['statuspage', 'application_mapping'],
252
+ ['victorops', 'application_mapping'],
253
+ ];
254
+ objectTypeConfigKeys.forEach((k) => {
255
+ var _a, _b;
256
+ return (0, converter_1.parseObjectConfig)((_b = (_a = config.source_specific_configs) === null || _a === void 0 ? void 0 : _a[k[0]]) === null || _b === void 0 ? void 0 : _b[k[1]], k.join('.'));
257
+ });
258
+ }
259
+ async init(config) {
260
+ var _a, _b, _c;
261
+ const edition = (_b = (_a = config.edition_configs) === null || _a === void 0 ? void 0 : _a.edition) !== null && _b !== void 0 ? _b : types_1.Edition.CLOUD;
262
+ if (!((_c = config.edition_configs) === null || _c === void 0 ? void 0 : _c.edition)) {
263
+ this.logger.info('Edition is not set. Assuming Faros Cloud edition');
264
+ }
265
+ this.edition = edition;
266
+ switch (edition) {
267
+ case types_1.Edition.COMMUNITY:
268
+ await this.initCommunity(config);
269
+ break;
270
+ case types_1.Edition.CLOUD:
271
+ await this.initCloud(config);
272
+ break;
273
+ default:
274
+ throw new verror_1.VError(`Invalid edition ${edition}. ` +
275
+ `Possible values are ${Object.values(types_1.Edition).join(',')}`);
276
+ }
277
+ this.initGlobal(config);
278
+ }
279
+ getOrigin(config, catalog) {
280
+ if (config.origin) {
281
+ this.logger.info(`Using origin '${config.origin}' found in config`);
282
+ return config.origin;
283
+ }
284
+ // Determine origin from stream prefixes
285
+ const origins = (0, lodash_1.uniq)(catalog.streams.map((s) => s.stream.name.split(converter_1.StreamNameSeparator, 1)[0]));
286
+ if (origins.length === 0) {
287
+ throw new verror_1.VError('Could not determine origin from catalog');
288
+ }
289
+ else if (origins.length > 1) {
290
+ throw new verror_1.VError(`Found multiple possible origins from catalog: ${origins.join(',')}`);
291
+ }
292
+ const origin = origins[0];
293
+ this.logger.info(`Determined origin '${origin}' from stream prefixes`);
294
+ return origin;
295
+ }
296
+ async *write(config, catalog, stdin, dryRun) {
297
+ await this.init(config);
298
+ const origin = this.getOrigin(config, catalog);
299
+ const { streams, deleteModelEntries, converterDependencies } = this.initStreamsCheckConverters(catalog);
300
+ const streamsSyncMode = {};
301
+ for (const stream of Object.keys(streams)) {
302
+ streamsSyncMode[stream] = streams[stream].destination_sync_mode;
303
+ }
304
+ let latestStateMessage = undefined;
305
+ const stats = new write_stats_1.WriteStats();
306
+ const dryRunEnabled = config.dry_run === true || dryRun;
307
+ // Avoid creating a new revision and writer when dry run or community edition is enabled
308
+ try {
309
+ const streamContext = new converter_1.StreamContext(this.logger, config, streamsSyncMode, this.farosGraph, origin, this.edition === types_1.Edition.COMMUNITY ? undefined : this.getFarosClient());
310
+ if (dryRunEnabled) {
311
+ this.logger.info("Dry run is ENABLED. Won't write any records");
312
+ for await (const stateMessage of this.writeEntries(streamContext, stdin, streams, converterDependencies, stats)) {
313
+ latestStateMessage = stateMessage;
314
+ }
315
+ }
316
+ else if (this.graphQLClient) {
317
+ this.logger.info(`Using GraphQLClient for writer`);
318
+ const graphQLClient = this.getGraphQLClient();
319
+ await graphQLClient.loadSchema();
320
+ streamContext.resetModels = new Set(deleteModelEntries);
321
+ let originRemapper = undefined;
322
+ if (config.accept_input_records_origin && config.replace_origin_map) {
323
+ const originMap = JSON.parse(config.replace_origin_map);
324
+ originRemapper = (origin) => {
325
+ var _a;
326
+ return (_a = originMap[origin]) !== null && _a !== void 0 ? _a : origin;
327
+ };
328
+ }
329
+ const writer = new graphql_writer_1.GraphQLWriter(graphQLClient, config.accept_input_records_origin
330
+ ? {
331
+ getOrigin: (record) => {
332
+ if (!record.origin) {
333
+ return origin;
334
+ }
335
+ if (!originRemapper) {
336
+ return record.origin;
337
+ }
338
+ return originRemapper(record.origin);
339
+ },
340
+ }
341
+ : { getOrigin: () => origin }, stats, this);
342
+ for await (const stateMessage of this.writeEntries(streamContext, stdin, streams, converterDependencies, stats, writer, async () => await graphQLClient.resetData(origin, Array.from(streamContext.resetModels), this.edition === types_1.Edition.COMMUNITY))) {
343
+ await graphQLClient.flush();
344
+ yield stateMessage;
345
+ }
346
+ }
347
+ else {
348
+ this.logger.info(`Opening a new revision on graph ${this.farosGraph} ` +
349
+ `with expiration of ${this.farosRevisionExpiration}`);
350
+ // Log all models to be deleted (if any)
351
+ if (deleteModelEntries.length > 0) {
352
+ const modelsToDelete = (0, lodash_1.sortBy)(deleteModelEntries).join(',');
353
+ this.logger.info(`Deleting records in destination graph ${this.farosGraph} for models: ${modelsToDelete}`);
354
+ }
355
+ // Create an entry uploader for the destination graph
356
+ const entryUploaderConfig = {
357
+ name: origin,
358
+ url: this.farosClientConfig.url,
359
+ authHeader: this.farosClientConfig.apiKey,
360
+ expiration: this.farosRevisionExpiration,
361
+ graphName: this.farosGraph,
362
+ deleteModelEntries,
363
+ logger: this.logger.asPino('debug'),
364
+ };
365
+ await (0, faros_feeds_sdk_1.withEntryUploader)(entryUploaderConfig, async (writer, state) => {
366
+ try {
367
+ // Log last synced time
368
+ const lastSynced = (state === null || state === void 0 ? void 0 : state.lastSynced)
369
+ ? `last synced at ${state.lastSynced}`
370
+ : 'not synced yet';
371
+ this.logger.info(`Destination graph ${this.farosGraph} was ${lastSynced}`);
372
+ // Process input and write entries
373
+ for await (const stateMessage of this.writeEntries(streamContext, stdin, streams, converterDependencies, stats, writer)) {
374
+ latestStateMessage = stateMessage;
375
+ }
376
+ // Return the current time
377
+ return { lastSynced: new Date().toISOString() };
378
+ }
379
+ finally {
380
+ // Don't forget to close the writer
381
+ if (!writer.writableEnded)
382
+ writer.end();
383
+ }
384
+ });
385
+ }
386
+ if (this.analytics) {
387
+ this.logger.debug('Sending write stats to Segment');
388
+ const fn = (callback) => {
389
+ this.analytics
390
+ .track({
391
+ event: 'Write Stats',
392
+ userId: this.segmentUserId,
393
+ properties: stats,
394
+ }, callback)
395
+ .flush(callback);
396
+ };
397
+ await util_1.default
398
+ .promisify(fn)()
399
+ .catch((err) => this.logger.error(`Failed to send write stats to Segment: ${err.message}`, err.stack));
400
+ }
401
+ // Airbyte updates connection state whenever the destination emits a state
402
+ // message, indicating that prior records have been processed. Since we
403
+ // are writing all records in a single revision, only return the final
404
+ // state message at the end, once the revision has been closed.
405
+ if (latestStateMessage) {
406
+ yield latestStateMessage;
407
+ }
408
+ }
409
+ finally {
410
+ // Log collected statistics
411
+ stats.log(this.logger, dryRunEnabled ? 'Would write' : 'Wrote');
412
+ }
413
+ }
414
+ async *writeEntries(ctx, stdin, streams, converterDependencies, stats, writer, resetData) {
415
+ const recordsToBeProcessedLast = [];
416
+ const convertersUsed = new Map();
417
+ // NOTE: readline.createInterface() will start to consume the input stream once invoked.
418
+ // Having asynchronous operations between interface creation and asynchronous iteration may
419
+ // result in missed lines.
420
+ const input = readline_1.default.createInterface({
421
+ input: stdin,
422
+ terminal: stdin.isTTY,
423
+ });
424
+ try {
425
+ let sourceFailed = undefined;
426
+ // Process input & write records
427
+ for await (const line of input) {
428
+ let stateMessage = undefined;
429
+ await this.handleRecordProcessingError(stats, async () => {
430
+ var _a;
431
+ const msg = (0, faros_airbyte_cdk_1.parseAirbyteMessage)(line);
432
+ stats.messagesRead++;
433
+ if (msg.type === faros_airbyte_cdk_1.AirbyteMessageType.STATE) {
434
+ const message = msg;
435
+ if (((_a = message.sourceStatus) === null || _a === void 0 ? void 0 : _a.status) === 'ERRORED') {
436
+ this.logger.error('Airbyte Source has failed: ' + message.sourceStatus.error);
437
+ sourceFailed = message.sourceStatus;
438
+ }
439
+ else {
440
+ stateMessage = message;
441
+ }
442
+ }
443
+ else if (msg.type === faros_airbyte_cdk_1.AirbyteMessageType.RECORD) {
444
+ stats.recordsRead++;
445
+ const recordMessage = msg;
446
+ if (!recordMessage.record) {
447
+ throw new verror_1.VError('Empty record');
448
+ }
449
+ if (!streams[recordMessage.record.stream]) {
450
+ throw new verror_1.VError(`Undefined stream ${recordMessage.record.stream}`);
451
+ }
452
+ const unpacked = recordMessage.unpackRaw();
453
+ if (!unpacked.record) {
454
+ throw new verror_1.VError('Empty unpacked record');
455
+ }
456
+ const stream = unpacked.record.stream;
457
+ stats.incrementProcessedByStream(stream);
458
+ const converter = this.getConverter(stream);
459
+ // No need to fail on records we don't have a converter yet
460
+ if (!converter) {
461
+ stats.recordsSkipped++;
462
+ return;
463
+ }
464
+ // Collect all the used converters
465
+ if (!convertersUsed.has(stream)) {
466
+ convertersUsed.set(stream, converter);
467
+ }
468
+ const writeRecord = async (context) => {
469
+ stats.recordsWritten += await this.writeRecord(converter, unpacked, stats, context, writer);
470
+ stats.recordsProcessed++;
471
+ };
472
+ // Check if any converters depend on this record stream.
473
+ // If yes, keep the record in the stream context for other converters to get.
474
+ const streamName = converter_1.StreamName.fromString(stream).asString;
475
+ const recordId = converter.id(unpacked);
476
+ if (converterDependencies.has(streamName) && recordId) {
477
+ ctx.set(streamName, String(recordId), unpacked);
478
+ // Print stream context stats every so often
479
+ if (stats.recordsProcessed % 1000 == 0) {
480
+ this.logger.info(`Stream context stats: ${ctx.stats()}`);
481
+ }
482
+ }
483
+ // Process the record immediately if converter has no dependencies,
484
+ // otherwise process it later once all streams are processed.
485
+ if (converter.dependencies.length === 0) {
486
+ await writeRecord(ctx);
487
+ }
488
+ else {
489
+ recordsToBeProcessedLast.push(writeRecord);
490
+ }
491
+ }
492
+ });
493
+ if (stateMessage) {
494
+ yield stateMessage;
495
+ }
496
+ }
497
+ // Process all the remaining records
498
+ if (recordsToBeProcessedLast.length > 0) {
499
+ this.logger.info(`Stdin processing completed, but still have ${recordsToBeProcessedLast.length} records to process`);
500
+ this.logger.info(`Stream context stats: ${ctx.stats()}`);
501
+ for await (const process of recordsToBeProcessedLast) {
502
+ await this.handleRecordProcessingError(stats, () => process(ctx));
503
+ }
504
+ }
505
+ // Invoke on processing complete handler on all the active converters
506
+ for (const converter of convertersUsed.values()) {
507
+ const results = await converter.onProcessingComplete(ctx);
508
+ stats.recordsWritten += await this.writeConvertedRecords(converter, results, stats, writer);
509
+ }
510
+ if (sourceFailed) {
511
+ this.logger.error('Skipping reset of non-incremental models due to' +
512
+ ` Airbyte Source failure: ${sourceFailed.error}`);
513
+ }
514
+ else {
515
+ await (resetData === null || resetData === void 0 ? void 0 : resetData());
516
+ }
517
+ // Don't forget to close the writer
518
+ await (writer === null || writer === void 0 ? void 0 : writer.end());
519
+ }
520
+ finally {
521
+ input.close();
522
+ }
523
+ }
524
+ async handleRecordProcessingError(stats, processRecord) {
525
+ var _a;
526
+ try {
527
+ await processRecord();
528
+ }
529
+ catch (e) {
530
+ stats.recordsErrored++;
531
+ this.logger.error(`Error processing input: ${(_a = e.message) !== null && _a !== void 0 ? _a : JSON.stringify(e)}`, e.stack);
532
+ switch (this.invalidRecordStrategy) {
533
+ case types_1.InvalidRecordStrategy.SKIP:
534
+ stats.recordsSkipped++;
535
+ break;
536
+ case types_1.InvalidRecordStrategy.FAIL:
537
+ throw e;
538
+ }
539
+ }
540
+ }
541
+ initStreamsCheckConverters(catalog) {
542
+ const streams = (0, lodash_1.keyBy)(catalog.streams, (s) => s.stream.name);
543
+ const streamKeys = Object.keys(streams);
544
+ const deleteModelEntries = [];
545
+ const dependenciesByStream = {};
546
+ const incrementalModels = [];
547
+ // Check input streams & initialize record converters
548
+ for (const stream of streamKeys) {
549
+ const destinationSyncMode = streams[stream].destination_sync_mode;
550
+ if (!destinationSyncMode) {
551
+ throw new verror_1.VError(`Undefined destination sync mode for stream ${stream}`);
552
+ }
553
+ const converter = this.getConverter(stream, (err) => {
554
+ if (err.message.includes('Cannot find module ')) {
555
+ this.logger.warn(`No converter found for ${stream}`);
556
+ }
557
+ else {
558
+ this.logger.error(err.message, err.stack);
559
+ }
560
+ });
561
+ if (converter) {
562
+ this.logger.info(`Using ${converter.constructor.name} converter to convert ${stream} stream records`);
563
+ // Collect all converter dependencies
564
+ if (converter.dependencies.length > 0) {
565
+ const streamName = converter.streamName.asString;
566
+ if (!dependenciesByStream[streamName]) {
567
+ dependenciesByStream[streamName] = new Set();
568
+ }
569
+ const deps = dependenciesByStream[streamName];
570
+ converter.dependencies.forEach((d) => deps.add(d.asString));
571
+ }
572
+ // Prepare destination models to delete if any
573
+ if (destinationSyncMode === faros_airbyte_cdk_1.DestinationSyncMode.OVERWRITE) {
574
+ deleteModelEntries.push(...converter.destinationModels);
575
+ }
576
+ else if (streams[stream].sync_mode === faros_airbyte_cdk_1.SyncMode.INCREMENTAL) {
577
+ incrementalModels.push(...converter.destinationModels);
578
+ }
579
+ }
580
+ }
581
+ // Check for circular dependencies and error early if any
582
+ this.checkForCircularDependencies(dependenciesByStream);
583
+ // Collect all converter dependencies
584
+ const converterDependencies = new Set();
585
+ Object.keys(dependenciesByStream).forEach((k) => dependenciesByStream[k].forEach((v) => converterDependencies.add(v)));
586
+ return {
587
+ streams,
588
+ deleteModelEntries: (0, lodash_1.difference)((0, lodash_1.uniq)(deleteModelEntries), (0, lodash_1.uniq)(incrementalModels)),
589
+ converterDependencies,
590
+ };
591
+ }
592
+ getConverter(stream, onLoadError) {
593
+ var _a;
594
+ const converter = converter_registry_1.ConverterRegistry.getConverter(converter_1.StreamName.fromString(stream), onLoadError);
595
+ return this.jsonataMode === jsonata_1.JSONataApplyMode.OVERRIDE
596
+ ? (_a = this.jsonataConverter) !== null && _a !== void 0 ? _a : converter
597
+ : converter !== null && converter !== void 0 ? converter : this.jsonataConverter;
598
+ }
599
+ async writeRecord(converter, recordMessage, stats, ctx, writer) {
600
+ // Apply conversion on the input record
601
+ const results = await converter.convert(recordMessage, ctx);
602
+ // Write the converted records
603
+ return this.writeConvertedRecords(converter, results, stats, writer);
604
+ }
605
+ async writeConvertedRecords(converter, results, stats, writer) {
606
+ if (!Array.isArray(results))
607
+ throw new verror_1.VError('Invalid results: not an array');
608
+ let recordsWritten = 0;
609
+ // Write out the results to the output stream
610
+ for (const result of results) {
611
+ if (!result.model)
612
+ throw new verror_1.VError('Invalid result: undefined model');
613
+ if (!result.record)
614
+ throw new verror_1.VError('Invalid result: undefined record');
615
+ if (typeof result.record !== 'object')
616
+ throw new verror_1.VError('Invalid result: record is not an object');
617
+ // Set the source if missing
618
+ if (!result.record['source']) {
619
+ result.record['source'] = converter.streamName.source;
620
+ }
621
+ // Exclude record fields if necessary
622
+ const exclusions = this.excludeFieldsByModel[result.model];
623
+ if ((exclusions === null || exclusions === void 0 ? void 0 : exclusions.length) > 0) {
624
+ result.record = (0, lodash_1.pickBy)(result.record, (_v, k) => !exclusions.includes(k));
625
+ }
626
+ // Write the record & increment the stats
627
+ let isTimestamped = false;
628
+ if (writer) {
629
+ if (writer instanceof graphql_writer_1.GraphQLWriter) {
630
+ isTimestamped = await writer.write(result);
631
+ }
632
+ else {
633
+ writer.write({ [result.model]: result.record });
634
+ }
635
+ }
636
+ if (!isTimestamped) {
637
+ recordsWritten++;
638
+ stats.incrementWrittenByModel(result.model);
639
+ }
640
+ }
641
+ return recordsWritten;
642
+ }
643
+ addToPath(depsByStream, dep, path) {
644
+ if (path.includes(dep)) {
645
+ throw new verror_1.VError(`Circular converter dependency detected: ${path
646
+ .slice(path.indexOf(dep))
647
+ .concat(dep)
648
+ .join(',')}`);
649
+ }
650
+ path.push(dep);
651
+ if (depsByStream[dep]) {
652
+ return depsByStream[dep].forEach((next) => this.addToPath(depsByStream, next, [...path]));
653
+ }
654
+ }
655
+ checkForCircularDependencies(depsByStream) {
656
+ Object.keys(depsByStream).forEach((dep) => {
657
+ const dd = [...depsByStream[dep].values()];
658
+ this.logger.info(`Records of stream ${dep} will be accumulated and processed last, ` +
659
+ `since their converter has dependencies on streams: ${dd.join(',')}`);
660
+ this.addToPath(depsByStream, dep, []);
661
+ });
662
+ }
663
+ }
664
+ exports.FarosDestination = FarosDestination;
665
+ //# sourceMappingURL=destination.js.map