@skedulo/integration-sdk 0.2.4 → 0.3.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 (409) hide show
  1. package/CHANGELOG.md +43 -1
  2. package/README.md +9 -0
  3. package/dist/adapters/adapter-registry.d.ts +9 -0
  4. package/dist/adapters/adapter-registry.d.ts.map +1 -0
  5. package/dist/adapters/adapter-registry.js +34 -0
  6. package/dist/adapters/adapter-registry.js.map +1 -0
  7. package/dist/adapters/base-adapter-handler.d.ts +105 -0
  8. package/dist/adapters/base-adapter-handler.d.ts.map +1 -0
  9. package/dist/adapters/base-adapter-handler.js +379 -0
  10. package/dist/adapters/base-adapter-handler.js.map +1 -0
  11. package/dist/adapters/base.adapter.d.ts +38 -17
  12. package/dist/adapters/base.adapter.d.ts.map +1 -1
  13. package/dist/adapters/base.adapter.js +80 -22
  14. package/dist/adapters/base.adapter.js.map +1 -1
  15. package/dist/adapters/helpers.d.ts +15 -0
  16. package/dist/adapters/helpers.d.ts.map +1 -0
  17. package/dist/adapters/helpers.js +55 -0
  18. package/dist/adapters/helpers.js.map +1 -0
  19. package/dist/adapters/skedulo-metadata-adapter.d.ts +3 -0
  20. package/dist/adapters/skedulo-metadata-adapter.d.ts.map +1 -0
  21. package/dist/adapters/skedulo-metadata-adapter.js +57 -0
  22. package/dist/adapters/skedulo-metadata-adapter.js.map +1 -0
  23. package/dist/adapters/skedulo-metadata.adapter.d.ts +3 -0
  24. package/dist/adapters/skedulo-metadata.adapter.d.ts.map +1 -0
  25. package/dist/adapters/skedulo-metadata.adapter.js +57 -0
  26. package/dist/adapters/skedulo-metadata.adapter.js.map +1 -0
  27. package/dist/adapters/skedulo.adapter.d.ts +11 -0
  28. package/dist/adapters/skedulo.adapter.d.ts.map +1 -1
  29. package/dist/adapters/skedulo.adapter.js +31 -7
  30. package/dist/adapters/skedulo.adapter.js.map +1 -1
  31. package/dist/adapters/upsert-harness.d.ts +15 -0
  32. package/dist/adapters/upsert-harness.d.ts.map +1 -0
  33. package/dist/adapters/upsert-harness.js +55 -0
  34. package/dist/adapters/upsert-harness.js.map +1 -0
  35. package/dist/clients/dataflow-client.d.ts +18 -0
  36. package/dist/clients/dataflow-client.d.ts.map +1 -0
  37. package/dist/clients/dataflow-client.js +43 -0
  38. package/dist/clients/dataflow-client.js.map +1 -0
  39. package/dist/clients/dataflow.client.js +2 -2
  40. package/dist/clients/dataflow.client.js.map +1 -1
  41. package/dist/clients/proxy-client.d.ts +13 -0
  42. package/dist/clients/proxy-client.d.ts.map +1 -0
  43. package/dist/clients/proxy-client.js +20 -0
  44. package/dist/clients/proxy-client.js.map +1 -0
  45. package/dist/clients/proxy.client.d.ts +11 -1
  46. package/dist/clients/proxy.client.d.ts.map +1 -1
  47. package/dist/clients/proxy.client.js.map +1 -1
  48. package/dist/constants.d.ts +7 -0
  49. package/dist/constants.d.ts.map +1 -1
  50. package/dist/constants.js +7 -1
  51. package/dist/constants.js.map +1 -1
  52. package/dist/context.d.ts +5 -0
  53. package/dist/context.d.ts.map +1 -1
  54. package/dist/context.js +9 -0
  55. package/dist/context.js.map +1 -1
  56. package/dist/dist/adapters/skedulo-metadata-adapter.d.ts +3 -0
  57. package/dist/dist/adapters/skedulo-metadata-adapter.d.ts.map +1 -0
  58. package/dist/dist/adapters/skedulo-metadata-adapter.js +57 -0
  59. package/dist/dist/adapters/skedulo-metadata-adapter.js.map +1 -0
  60. package/dist/dist/adapters/skedulo-metadata.adapter.d.ts +3 -0
  61. package/dist/dist/adapters/skedulo-metadata.adapter.d.ts.map +1 -0
  62. package/dist/dist/adapters/skedulo-metadata.adapter.js +57 -0
  63. package/dist/dist/adapters/skedulo-metadata.adapter.js.map +1 -0
  64. package/dist/dist/adapters/skedulo.adapter.d.ts +15 -0
  65. package/dist/dist/adapters/skedulo.adapter.d.ts.map +1 -0
  66. package/dist/dist/adapters/skedulo.adapter.js +213 -0
  67. package/dist/dist/adapters/skedulo.adapter.js.map +1 -0
  68. package/dist/dist/browser.d.ts +12 -0
  69. package/dist/dist/browser.d.ts.map +1 -0
  70. package/dist/dist/browser.js +9 -0
  71. package/dist/dist/browser.js.map +1 -0
  72. package/dist/dist/clients/dataflow-client.d.ts +18 -0
  73. package/dist/dist/clients/dataflow-client.d.ts.map +1 -0
  74. package/dist/dist/clients/dataflow-client.js +43 -0
  75. package/dist/dist/clients/dataflow-client.js.map +1 -0
  76. package/dist/dist/clients/dataflow.client.d.ts +19 -0
  77. package/dist/dist/clients/dataflow.client.d.ts.map +1 -0
  78. package/dist/dist/clients/dataflow.client.js +28 -0
  79. package/dist/dist/clients/dataflow.client.js.map +1 -0
  80. package/dist/dist/clients/proxy-client.d.ts +13 -0
  81. package/dist/dist/clients/proxy-client.d.ts.map +1 -0
  82. package/dist/dist/clients/proxy-client.js +20 -0
  83. package/dist/dist/clients/proxy-client.js.map +1 -0
  84. package/dist/dist/clients/proxy.client.d.ts +13 -0
  85. package/dist/dist/clients/proxy.client.d.ts.map +1 -0
  86. package/dist/dist/clients/proxy.client.js +21 -0
  87. package/dist/dist/clients/proxy.client.js.map +1 -0
  88. package/dist/dist/constants.d.ts +17 -0
  89. package/dist/dist/constants.d.ts.map +1 -0
  90. package/dist/dist/constants.js +20 -0
  91. package/dist/dist/constants.js.map +1 -0
  92. package/dist/dist/context.d.ts +19 -0
  93. package/dist/dist/context.d.ts.map +1 -0
  94. package/dist/dist/context.js +40 -0
  95. package/dist/dist/context.js.map +1 -0
  96. package/dist/dist/handlers/metadata.handler.d.ts +17 -0
  97. package/dist/dist/handlers/metadata.handler.d.ts.map +1 -0
  98. package/dist/dist/handlers/metadata.handler.js +50 -0
  99. package/dist/dist/handlers/metadata.handler.js.map +1 -0
  100. package/dist/dist/index.d.ts +18 -0
  101. package/dist/dist/index.d.ts.map +1 -0
  102. package/dist/dist/index.js +48 -0
  103. package/dist/dist/index.js.map +1 -0
  104. package/dist/dist/interfaces/adapter.interface.d.ts +122 -0
  105. package/dist/dist/interfaces/adapter.interface.d.ts.map +1 -0
  106. package/dist/dist/interfaces/adapter.interface.js +3 -0
  107. package/dist/dist/interfaces/adapter.interface.js.map +1 -0
  108. package/dist/dist/interfaces/data-flow-spec.interface.d.ts +22 -0
  109. package/dist/dist/interfaces/data-flow-spec.interface.d.ts.map +1 -0
  110. package/dist/dist/interfaces/data-flow-spec.interface.js +3 -0
  111. package/dist/dist/interfaces/data-flow-spec.interface.js.map +1 -0
  112. package/dist/dist/interfaces/field-mapping.interface.d.ts +26 -0
  113. package/dist/dist/interfaces/field-mapping.interface.d.ts.map +1 -0
  114. package/dist/dist/interfaces/field-mapping.interface.js +3 -0
  115. package/dist/dist/interfaces/field-mapping.interface.js.map +1 -0
  116. package/dist/dist/interfaces/filter.interface.d.ts +19 -0
  117. package/dist/dist/interfaces/filter.interface.d.ts.map +1 -0
  118. package/dist/dist/interfaces/filter.interface.js +20 -0
  119. package/dist/dist/interfaces/filter.interface.js.map +1 -0
  120. package/dist/dist/interfaces/integration-capabilities.interface.d.ts +13 -0
  121. package/dist/dist/interfaces/integration-capabilities.interface.d.ts.map +1 -0
  122. package/dist/dist/interfaces/integration-capabilities.interface.js +3 -0
  123. package/dist/dist/interfaces/integration-capabilities.interface.js.map +1 -0
  124. package/dist/dist/interfaces/lookup-rule.interface.d.ts +14 -0
  125. package/dist/dist/interfaces/lookup-rule.interface.d.ts.map +1 -0
  126. package/dist/dist/interfaces/lookup-rule.interface.js +3 -0
  127. package/dist/dist/interfaces/lookup-rule.interface.js.map +1 -0
  128. package/dist/dist/interfaces/mapped-event.interface.d.ts +9 -0
  129. package/dist/dist/interfaces/mapped-event.interface.d.ts.map +1 -0
  130. package/dist/dist/interfaces/mapped-event.interface.js +3 -0
  131. package/dist/dist/interfaces/mapped-event.interface.js.map +1 -0
  132. package/dist/dist/interfaces/mapping-config.interface.d.ts +26 -0
  133. package/dist/dist/interfaces/mapping-config.interface.d.ts.map +1 -0
  134. package/dist/dist/interfaces/mapping-config.interface.js +3 -0
  135. package/dist/dist/interfaces/mapping-config.interface.js.map +1 -0
  136. package/dist/dist/interfaces/metadata-adapter.interface.d.ts +26 -0
  137. package/dist/dist/interfaces/metadata-adapter.interface.d.ts.map +1 -0
  138. package/dist/dist/interfaces/metadata-adapter.interface.js +3 -0
  139. package/dist/dist/interfaces/metadata-adapter.interface.js.map +1 -0
  140. package/dist/dist/interfaces/pull-adapter.interface.d.ts +50 -0
  141. package/dist/dist/interfaces/pull-adapter.interface.d.ts.map +1 -0
  142. package/dist/dist/interfaces/pull-adapter.interface.js +3 -0
  143. package/dist/dist/interfaces/pull-adapter.interface.js.map +1 -0
  144. package/dist/dist/interfaces/push-adapter.interface.d.ts +28 -0
  145. package/dist/dist/interfaces/push-adapter.interface.d.ts.map +1 -0
  146. package/dist/dist/interfaces/push-adapter.interface.js +3 -0
  147. package/dist/dist/interfaces/push-adapter.interface.js.map +1 -0
  148. package/dist/dist/interfaces/sample-fetcher.interface.d.ts +4 -0
  149. package/dist/dist/interfaces/sample-fetcher.interface.d.ts.map +1 -0
  150. package/dist/dist/interfaces/sample-fetcher.interface.js +3 -0
  151. package/dist/dist/interfaces/sample-fetcher.interface.js.map +1 -0
  152. package/dist/dist/interfaces/sync-result.interface.d.ts +19 -0
  153. package/dist/dist/interfaces/sync-result.interface.d.ts.map +1 -0
  154. package/dist/dist/interfaces/sync-result.interface.js +3 -0
  155. package/dist/dist/interfaces/sync-result.interface.js.map +1 -0
  156. package/dist/dist/interfaces/target-adapter.interface.d.ts +10 -0
  157. package/dist/dist/interfaces/target-adapter.interface.d.ts.map +1 -0
  158. package/dist/dist/interfaces/target-adapter.interface.js +3 -0
  159. package/dist/dist/interfaces/target-adapter.interface.js.map +1 -0
  160. package/dist/dist/mocks/hubspot.d.ts +4 -0
  161. package/dist/dist/mocks/hubspot.d.ts.map +1 -0
  162. package/dist/dist/mocks/hubspot.js +61 -0
  163. package/dist/dist/mocks/hubspot.js.map +1 -0
  164. package/dist/dist/provenance.d.ts +3 -0
  165. package/dist/dist/provenance.d.ts.map +1 -0
  166. package/dist/dist/provenance.js +12 -0
  167. package/dist/dist/provenance.js.map +1 -0
  168. package/dist/dist/services/dataflow-service.d.ts +21 -0
  169. package/dist/dist/services/dataflow-service.d.ts.map +1 -0
  170. package/dist/dist/services/dataflow-service.js +47 -0
  171. package/dist/dist/services/dataflow-service.js.map +1 -0
  172. package/dist/dist/services/dataflow.service.d.ts +20 -0
  173. package/dist/dist/services/dataflow.service.d.ts.map +1 -0
  174. package/dist/dist/services/dataflow.service.js +52 -0
  175. package/dist/dist/services/dataflow.service.js.map +1 -0
  176. package/dist/dist/services/eql.d.ts +2 -0
  177. package/dist/dist/services/eql.d.ts.map +1 -0
  178. package/dist/dist/services/eql.js +10 -0
  179. package/dist/dist/services/eql.js.map +1 -0
  180. package/dist/dist/services/mapping-service.d.ts +14 -0
  181. package/dist/dist/services/mapping-service.d.ts.map +1 -0
  182. package/dist/dist/services/mapping-service.js +88 -0
  183. package/dist/dist/services/mapping-service.js.map +1 -0
  184. package/dist/dist/services/mapping.service.d.ts +14 -0
  185. package/dist/dist/services/mapping.service.d.ts.map +1 -0
  186. package/dist/dist/services/mapping.service.js +89 -0
  187. package/dist/dist/services/mapping.service.js.map +1 -0
  188. package/dist/dist/services/outbound-service.d.ts +14 -0
  189. package/dist/dist/services/outbound-service.d.ts.map +1 -0
  190. package/dist/dist/services/outbound-service.js +65 -0
  191. package/dist/dist/services/outbound-service.js.map +1 -0
  192. package/dist/dist/services/paragon-workflow-service.d.ts +7 -0
  193. package/dist/dist/services/paragon-workflow-service.d.ts.map +1 -0
  194. package/dist/dist/services/paragon-workflow-service.js +68 -0
  195. package/dist/dist/services/paragon-workflow-service.js.map +1 -0
  196. package/dist/dist/services/paragon-workflow.service.d.ts +8 -0
  197. package/dist/dist/services/paragon-workflow.service.d.ts.map +1 -0
  198. package/dist/dist/services/paragon-workflow.service.js +31 -0
  199. package/dist/dist/services/paragon-workflow.service.js.map +1 -0
  200. package/dist/dist/services/preview-service.d.ts +11 -0
  201. package/dist/dist/services/preview-service.d.ts.map +1 -0
  202. package/dist/dist/services/preview-service.js +66 -0
  203. package/dist/dist/services/preview-service.js.map +1 -0
  204. package/dist/dist/services/preview.service.d.ts +11 -0
  205. package/dist/dist/services/preview.service.d.ts.map +1 -0
  206. package/dist/dist/services/preview.service.js +74 -0
  207. package/dist/dist/services/preview.service.js.map +1 -0
  208. package/dist/dist/services/pull-service.d.ts +9 -0
  209. package/dist/dist/services/pull-service.d.ts.map +1 -0
  210. package/dist/dist/services/pull-service.js +207 -0
  211. package/dist/dist/services/pull-service.js.map +1 -0
  212. package/dist/dist/services/pull.service.d.ts +11 -0
  213. package/dist/dist/services/pull.service.d.ts.map +1 -0
  214. package/dist/dist/services/pull.service.js +200 -0
  215. package/dist/dist/services/pull.service.js.map +1 -0
  216. package/dist/dist/services/push-service.d.ts +16 -0
  217. package/dist/dist/services/push-service.d.ts.map +1 -0
  218. package/dist/dist/services/push-service.js +76 -0
  219. package/dist/dist/services/push-service.js.map +1 -0
  220. package/dist/dist/services/push.service.d.ts +19 -0
  221. package/dist/dist/services/push.service.d.ts.map +1 -0
  222. package/dist/dist/services/push.service.js +186 -0
  223. package/dist/dist/services/push.service.js.map +1 -0
  224. package/dist/dist/services/scheduled-pull-service.d.ts +7 -0
  225. package/dist/dist/services/scheduled-pull-service.d.ts.map +1 -0
  226. package/dist/dist/services/scheduled-pull-service.js +58 -0
  227. package/dist/dist/services/scheduled-pull-service.js.map +1 -0
  228. package/dist/dist/services/split-filter.d.ts +3 -0
  229. package/dist/dist/services/split-filter.d.ts.map +1 -0
  230. package/dist/dist/services/split-filter.js +50 -0
  231. package/dist/dist/services/split-filter.js.map +1 -0
  232. package/dist/dist/services/sync-runner.d.ts +22 -0
  233. package/dist/dist/services/sync-runner.d.ts.map +1 -0
  234. package/dist/dist/services/sync-runner.js +110 -0
  235. package/dist/dist/services/sync-runner.js.map +1 -0
  236. package/dist/dist/services/sync.service.d.ts +21 -0
  237. package/dist/dist/services/sync.service.d.ts.map +1 -0
  238. package/dist/dist/services/sync.service.js +166 -0
  239. package/dist/dist/services/sync.service.js.map +1 -0
  240. package/dist/dist/types.d.ts +11 -0
  241. package/dist/dist/types.d.ts.map +1 -0
  242. package/dist/dist/types.js +6 -0
  243. package/dist/dist/types.js.map +1 -0
  244. package/dist/dist/utils/compileFilter.d.ts +3 -0
  245. package/dist/dist/utils/compileFilter.d.ts.map +1 -0
  246. package/dist/dist/utils/compileFilter.js +73 -0
  247. package/dist/dist/utils/compileFilter.js.map +1 -0
  248. package/dist/dist/utils/normalizeDataFlow.d.ts +3 -0
  249. package/dist/dist/utils/normalizeDataFlow.d.ts.map +1 -0
  250. package/dist/dist/utils/normalizeDataFlow.js +30 -0
  251. package/dist/dist/utils/normalizeDataFlow.js.map +1 -0
  252. package/dist/dist/utils.d.ts +2 -0
  253. package/dist/dist/utils.d.ts.map +1 -0
  254. package/dist/dist/utils.js +10 -0
  255. package/dist/dist/utils.js.map +1 -0
  256. package/dist/handlers/metadata.handler.d.ts +0 -4
  257. package/dist/handlers/metadata.handler.d.ts.map +1 -1
  258. package/dist/handlers/metadata.handler.js +8 -12
  259. package/dist/handlers/metadata.handler.js.map +1 -1
  260. package/dist/index.d.ts +15 -7
  261. package/dist/index.d.ts.map +1 -1
  262. package/dist/index.js +22 -4
  263. package/dist/index.js.map +1 -1
  264. package/dist/interfaces/adapter.interface.d.ts +62 -0
  265. package/dist/interfaces/adapter.interface.d.ts.map +1 -1
  266. package/dist/interfaces/integration-capabilities.interface.d.ts +4 -9
  267. package/dist/interfaces/integration-capabilities.interface.d.ts.map +1 -1
  268. package/dist/interfaces/mapping-config.interface.d.ts +26 -0
  269. package/dist/interfaces/mapping-config.interface.d.ts.map +1 -0
  270. package/dist/interfaces/mapping-config.interface.js +3 -0
  271. package/dist/interfaces/mapping-config.interface.js.map +1 -0
  272. package/dist/interfaces/metadata-adapter.interface.d.ts +26 -0
  273. package/dist/interfaces/metadata-adapter.interface.d.ts.map +1 -0
  274. package/dist/interfaces/metadata-adapter.interface.js +3 -0
  275. package/dist/interfaces/metadata-adapter.interface.js.map +1 -0
  276. package/dist/interfaces/pull-adapter.interface.d.ts +50 -0
  277. package/dist/interfaces/pull-adapter.interface.d.ts.map +1 -0
  278. package/dist/interfaces/pull-adapter.interface.js +3 -0
  279. package/dist/interfaces/pull-adapter.interface.js.map +1 -0
  280. package/dist/interfaces/push-adapter.interface.d.ts +28 -0
  281. package/dist/interfaces/push-adapter.interface.d.ts.map +1 -0
  282. package/dist/interfaces/push-adapter.interface.js +3 -0
  283. package/dist/interfaces/push-adapter.interface.js.map +1 -0
  284. package/dist/interfaces/sync-flow-strategy.interface.d.ts +2 -1
  285. package/dist/interfaces/sync-flow-strategy.interface.d.ts.map +1 -1
  286. package/dist/interfaces/target-adapter.interface.d.ts +10 -0
  287. package/dist/interfaces/target-adapter.interface.d.ts.map +1 -0
  288. package/dist/interfaces/target-adapter.interface.js +3 -0
  289. package/dist/interfaces/target-adapter.interface.js.map +1 -0
  290. package/dist/mocks/hubspot.d.ts +4 -0
  291. package/dist/mocks/hubspot.d.ts.map +1 -0
  292. package/dist/mocks/hubspot.js +61 -0
  293. package/dist/mocks/hubspot.js.map +1 -0
  294. package/dist/provenance.d.ts +3 -0
  295. package/dist/provenance.d.ts.map +1 -0
  296. package/dist/provenance.js +12 -0
  297. package/dist/provenance.js.map +1 -0
  298. package/dist/services/dataflow-service.d.ts +21 -0
  299. package/dist/services/dataflow-service.d.ts.map +1 -0
  300. package/dist/services/dataflow-service.js +47 -0
  301. package/dist/services/dataflow-service.js.map +1 -0
  302. package/dist/services/eql.d.ts +2 -0
  303. package/dist/services/eql.d.ts.map +1 -0
  304. package/dist/services/eql.js +10 -0
  305. package/dist/services/eql.js.map +1 -0
  306. package/dist/services/external-id-sync.strategy.d.ts +1 -1
  307. package/dist/services/external-id-sync.strategy.d.ts.map +1 -1
  308. package/dist/services/external-id-sync.strategy.js +18 -9
  309. package/dist/services/external-id-sync.strategy.js.map +1 -1
  310. package/dist/services/id-mapping-sync.strategy.d.ts.map +1 -1
  311. package/dist/services/id-mapping-sync.strategy.js +86 -22
  312. package/dist/services/id-mapping-sync.strategy.js.map +1 -1
  313. package/dist/services/id-mapping.service.js +11 -11
  314. package/dist/services/id-mapping.service.js.map +1 -1
  315. package/dist/services/mapping-service.d.ts +14 -0
  316. package/dist/services/mapping-service.d.ts.map +1 -0
  317. package/dist/services/mapping-service.js +88 -0
  318. package/dist/services/mapping-service.js.map +1 -0
  319. package/dist/services/mapping.service.d.ts +14 -0
  320. package/dist/services/mapping.service.d.ts.map +1 -0
  321. package/dist/services/mapping.service.js +89 -0
  322. package/dist/services/mapping.service.js.map +1 -0
  323. package/dist/services/outbound-service.d.ts +14 -0
  324. package/dist/services/outbound-service.d.ts.map +1 -0
  325. package/dist/services/outbound-service.js +65 -0
  326. package/dist/services/outbound-service.js.map +1 -0
  327. package/dist/services/paragon-workflow-service.d.ts +7 -0
  328. package/dist/services/paragon-workflow-service.d.ts.map +1 -0
  329. package/dist/services/paragon-workflow-service.js +68 -0
  330. package/dist/services/paragon-workflow-service.js.map +1 -0
  331. package/dist/services/paragon-workflow.service.d.ts +8 -0
  332. package/dist/services/paragon-workflow.service.d.ts.map +1 -0
  333. package/dist/services/paragon-workflow.service.js +31 -0
  334. package/dist/services/paragon-workflow.service.js.map +1 -0
  335. package/dist/services/preview-service.d.ts +11 -0
  336. package/dist/services/preview-service.d.ts.map +1 -0
  337. package/dist/services/preview-service.js +66 -0
  338. package/dist/services/preview-service.js.map +1 -0
  339. package/dist/services/pull-service.d.ts +9 -0
  340. package/dist/services/pull-service.d.ts.map +1 -0
  341. package/dist/services/pull-service.js +207 -0
  342. package/dist/services/pull-service.js.map +1 -0
  343. package/dist/services/pull.service.d.ts +11 -0
  344. package/dist/services/pull.service.d.ts.map +1 -0
  345. package/dist/services/pull.service.js +200 -0
  346. package/dist/services/pull.service.js.map +1 -0
  347. package/dist/services/push-service.d.ts +16 -0
  348. package/dist/services/push-service.d.ts.map +1 -0
  349. package/dist/services/push-service.js +76 -0
  350. package/dist/services/push-service.js.map +1 -0
  351. package/dist/services/push.service.d.ts +19 -0
  352. package/dist/services/push.service.d.ts.map +1 -0
  353. package/dist/services/push.service.js +186 -0
  354. package/dist/services/push.service.js.map +1 -0
  355. package/dist/services/routes.factory.d.ts +19 -0
  356. package/dist/services/routes.factory.d.ts.map +1 -0
  357. package/dist/services/routes.factory.js +352 -0
  358. package/dist/services/routes.factory.js.map +1 -0
  359. package/dist/services/scheduled-pull-service.d.ts +7 -0
  360. package/dist/services/scheduled-pull-service.d.ts.map +1 -0
  361. package/dist/services/scheduled-pull-service.js +58 -0
  362. package/dist/services/scheduled-pull-service.js.map +1 -0
  363. package/dist/services/split-filter.d.ts +3 -0
  364. package/dist/services/split-filter.d.ts.map +1 -0
  365. package/dist/services/split-filter.js +50 -0
  366. package/dist/services/split-filter.js.map +1 -0
  367. package/dist/services/sync-runner.d.ts +6 -0
  368. package/dist/services/sync-runner.d.ts.map +1 -1
  369. package/dist/services/sync-runner.js +46 -20
  370. package/dist/services/sync-runner.js.map +1 -1
  371. package/dist/testing/adapter-contract.d.ts +24 -0
  372. package/dist/testing/adapter-contract.d.ts.map +1 -0
  373. package/dist/testing/adapter-contract.js +82 -0
  374. package/dist/testing/adapter-contract.js.map +1 -0
  375. package/dist/utils/auth.d.ts +6 -0
  376. package/dist/utils/auth.d.ts.map +1 -0
  377. package/dist/utils/auth.js +18 -0
  378. package/dist/utils/auth.js.map +1 -0
  379. package/dist/utils/helpers.d.ts +23 -0
  380. package/dist/utils/helpers.d.ts.map +1 -0
  381. package/dist/utils/helpers.js +118 -0
  382. package/dist/utils/helpers.js.map +1 -0
  383. package/dist/utils/http-response.d.ts +16 -0
  384. package/dist/utils/http-response.d.ts.map +1 -0
  385. package/dist/utils/http-response.js +36 -0
  386. package/dist/utils/http-response.js.map +1 -0
  387. package/dist/utils/query-string.d.ts +2 -0
  388. package/dist/utils/query-string.d.ts.map +1 -0
  389. package/dist/utils/query-string.js +13 -0
  390. package/dist/utils/query-string.js.map +1 -0
  391. package/dist/utils/sked-handler.d.ts +22 -0
  392. package/dist/utils/sked-handler.d.ts.map +1 -0
  393. package/dist/utils/sked-handler.js +41 -0
  394. package/dist/utils/sked-handler.js.map +1 -0
  395. package/dist/utils/strings.d.ts +2 -0
  396. package/dist/utils/strings.d.ts.map +1 -0
  397. package/dist/utils/strings.js +14 -0
  398. package/dist/utils/strings.js.map +1 -0
  399. package/dist/utils/unwrap-proxy.d.ts +2 -0
  400. package/dist/utils/unwrap-proxy.d.ts.map +1 -0
  401. package/dist/utils/unwrap-proxy.js +12 -0
  402. package/dist/utils/unwrap-proxy.js.map +1 -0
  403. package/package.json +1 -1
  404. package/yarn.lock +5 -0
  405. package/.claude/worktrees/agent-a16acadaf5412dffd/jest.config.js +0 -12
  406. package/.claude/worktrees/agent-a33c3e4636d488e49/jest.config.js +0 -12
  407. package/.claude/worktrees/agent-a5b1d2ffa4ceef4a6/jest.config.js +0 -12
  408. package/.claude/worktrees/agent-aa1db4c22eabbde8e/jest.config.js +0 -12
  409. package/.claude/worktrees/agent-ac197ae8c69d7061c/jest.config.js +0 -12
@@ -1,7 +1,35 @@
1
1
  import type { IntegrationContext } from '../context';
2
+ import type { AdapterRole } from '../constants';
2
3
  import type { DataFlow } from './data-flow-spec.interface';
3
4
  import type { FilterSpec } from './filter.interface';
4
5
  import type { MappingConfigDto } from './field-mapping.interface';
6
+ import type { IntegrationCapabilities } from './integration-capabilities.interface';
7
+ import type { MappedEvent } from './mapped-event.interface';
8
+ /**
9
+ * Result of parsing a vendor change-event webhook envelope. Either a
10
+ * normalized `MappedEvent` ready for the sync runner, or a validation
11
+ * error message the handler turns into a 400 response.
12
+ */
13
+ export type ParsedChangeEvent = {
14
+ event: MappedEvent;
15
+ } | {
16
+ error: string;
17
+ };
18
+ /**
19
+ * Declarative capability description for an Adapter. Extends
20
+ * `IntegrationCapabilities` so the adapter is the single source of truth —
21
+ * the consumer's `GET /capabilities` route just returns `adapter.capabilities`.
22
+ */
23
+ export interface AdapterCapabilities extends IntegrationCapabilities {
24
+ /**
25
+ * Which sync roles this adapter supports. Source-only systems (e.g. Workday)
26
+ * declare `[AdapterRole.SOURCE]`; target-only systems declare
27
+ * `[AdapterRole.TARGET]`; bidirectional adapters declare both.
28
+ * When omitted, the SDK defaults to `[AdapterRole.SOURCE, AdapterRole.TARGET]`
29
+ * for backwards compatibility with existing adapters.
30
+ */
31
+ roles: readonly AdapterRole[];
32
+ }
5
33
  export interface UpsertOutcome {
6
34
  status: 'ok' | 'transient' | 'permanent' | 'precondition';
7
35
  /** Adapter-specific result data (e.g. Skedulo UID, HubSpot ID). Shape is not assumed by the SDK. */
@@ -50,6 +78,15 @@ export interface DataFlowTemplate {
50
78
  name: string;
51
79
  /** Short human-readable description shown in the template picker. */
52
80
  description?: string;
81
+ /**
82
+ * Source integrationType. Required for adapters whose templates cover both
83
+ * inbound and outbound flows (e.g. Salesforce has SF→Skedulo and Skedulo→SF
84
+ * templates in the same list); omit for single-direction integrations where
85
+ * the UI infers it from `adapter.integrationType`.
86
+ */
87
+ sourceSystem?: string;
88
+ /** Target integrationType. See `sourceSystem` notes. */
89
+ targetSystem?: string;
53
90
  sourceObject: string;
54
91
  targetObject: string;
55
92
  mappingConfig: MappingConfigDto;
@@ -65,6 +102,18 @@ export interface SampleAPI {
65
102
  description?: string;
66
103
  }
67
104
  export interface Adapter<TRecord = Record<string, unknown>> {
105
+ /**
106
+ * Canonical system name this adapter speaks for — e.g. "microsoftDynamics",
107
+ * "hubspot", "skedulo". Matches `flow.sourceSystem` / `flow.targetSystem` and
108
+ * the key used in `AdapterRegistry`. Lets the SDK derive userAgent labels,
109
+ * request sources, and auto-built registries from the adapter alone.
110
+ */
111
+ integrationType: string;
112
+ /**
113
+ * Optional declarative capabilities. When omitted, the SDK treats the adapter
114
+ * as supporting both SOURCE and TARGET roles for backwards compatibility.
115
+ */
116
+ capabilities?: AdapterCapabilities;
68
117
  /**
69
118
  * Called per raw record immediately after fetch(), before beforeMap().
70
119
  * Return false to skip the record (counted as skipped, not filtered).
@@ -91,6 +140,19 @@ export interface Adapter<TRecord = Record<string, unknown>> {
91
140
  * SyncService applies spec.filter locally as a safety net after normalization.
92
141
  */
93
142
  fetch?(ctx: IntegrationContext, flow: DataFlow, since: Date | null, filter: FilterSpec | null): AsyncIterable<TRecord[]>;
143
+ /**
144
+ * Parse a vendor's inbound change-event webhook envelope into a `MappedEvent`.
145
+ * Called by `BaseAdapterHandler.onChangeEvent` — implement when your function
146
+ * exposes the `/on-change-event` route (i.e. real-time inbound sync).
147
+ *
148
+ * Return `{ event }` when the envelope is valid, or `{ error }` to short-circuit
149
+ * with a 400 response — the handler does the HTTP work.
150
+ *
151
+ * The envelope shape is vendor-specific (Dynamics wraps it in a JSON string in
152
+ * `body.data`; HubSpot ships a `subscriptionType` discriminator) which is why
153
+ * this lives on the adapter rather than the handler.
154
+ */
155
+ parseChangeEvent?(body: unknown): ParsedChangeEvent;
94
156
  /** Before FME mapping. Add synthetic fields to ctx.pipeline.data[].raw. */
95
157
  beforeMap?(ctx: IntegrationContext): Promise<void>;
96
158
  /** After FME mapping. ctx.pipeline.data[].mapped is populated. */
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;IAC1D,oGAAoG;IACpG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,gBAAgB,CAAC;IAChC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6CD,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAGxD;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAEhE;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAE/D;;;;;OAKG;IACH,KAAK,CAAC,CACJ,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,IAAI,GAAG,IAAI,EAClB,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAM5B,2EAA2E;IAC3E,SAAS,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,kEAAkE;IAClE,QAAQ,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,yCAAyC;IACzC,aAAa,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,oEAAoE;IACpE,YAAY,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,iEAAiE;IACjE,YAAY,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,yEAAyE;IACzE,WAAW,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,uDAAuD;IACvD,YAAY,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,+BAA+B;IAC/B,WAAW,CAAC,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIrD;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjG;;;;OAIG;IACH,MAAM,CACJ,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E;;;OAGG;IACH,MAAM,CAAC,CACL,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5B;;;OAGG;IACH,MAAM,CAAC,CACL,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAI5B,4DAA4D;IAC5D,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE3D,sCAAsC;IACtC,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAE7E,uDAAuD;IACvD,kBAAkB,CAChB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3B,mFAAmF;IACnF,YAAY,CAAC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE7C,qEAAqE;IACrE,aAAa,CAAC,IAAI,SAAS,EAAE,CAAC;IAI9B;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,MAAM,CAAC;IAE5B;;;;OAIG;IACH,mBAAmB,CAAC,CAClB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,aAAa,EAAE,GACxB,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjD;;;;OAIG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF"}
1
+ {"version":3,"file":"adapter.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/adapter.interface.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,15 @@
1
+ import type { LookupStrategy } from '../constants';
1
2
  export interface IntegrationCapabilities {
2
- /**
3
- * Whether the integration supports creating custom fields in the external system
4
- * when pushing data from Skedulo (e.g. HubSpot custom properties).
5
- */
6
- allowCustomFields: boolean;
7
3
  /**
8
4
  * Whether users are allowed to create new data flows for this integration.
9
5
  * Set to false for read-only or tightly scoped integrations (e.g. Workday).
10
6
  */
11
7
  allowNewDataFlows: boolean;
12
8
  /**
13
- * Identity resolution strategy used by this integration.
14
- * 'externalId' (default): requires ExternalId custom field on each synced Skedulo object.
15
- * 'idMapping': uses IntegrationIdMapping custom object as a bi-directional identity store.
9
+ * Identity resolution strategy used by this integration. Defaults to ExternalId.
10
+ * See `LookupStrategy` enum for the available values and their meaning.
16
11
  */
17
- lookupStrategy?: 'externalId' | 'idMapping';
12
+ lookupStrategy?: LookupStrategy;
18
13
  /**
19
14
  * Whether this integration exposes data flows.
20
15
  * When false (or absent), the Data Flows tab is hidden in the UI.
@@ -1 +1 @@
1
- {"version":3,"file":"integration-capabilities.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/integration-capabilities.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAC5C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"integration-capabilities.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/integration-capabilities.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
@@ -0,0 +1,26 @@
1
+ export type ValidationAction = 'SKIP' | 'ERROR' | 'WARN';
2
+ export interface TranslationTable {
3
+ name: string;
4
+ mappings: Record<string, string>;
5
+ }
6
+ export interface MappingConfigMapping {
7
+ target: string;
8
+ expression: string;
9
+ label?: string;
10
+ }
11
+ export interface MappingConfigDto {
12
+ mappings: MappingConfigMapping[];
13
+ version?: string;
14
+ translations?: TranslationTable[];
15
+ variables?: Array<{
16
+ name: string;
17
+ expression: string;
18
+ }>;
19
+ validations?: Array<{
20
+ condition: string;
21
+ action: ValidationAction;
22
+ label?: string;
23
+ message?: string;
24
+ }>;
25
+ }
26
+ //# sourceMappingURL=mapping-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-config.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/mapping-config.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,gBAAgB,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mapping-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-config.interface.js","sourceRoot":"","sources":["../../src/interfaces/mapping-config.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import type { IntegrationContext } from '../context';
2
+ export interface ObjectInfo {
3
+ name: string;
4
+ label: string;
5
+ }
6
+ export interface FieldInfo {
7
+ name: string;
8
+ label: string;
9
+ type: string;
10
+ /** Optional JSONata path used by the mapping editor. Defaults to `name`. */
11
+ expression?: string;
12
+ /** UI excludes read-only fields from the target field picker. */
13
+ readOnly?: boolean;
14
+ /** UI warns if a required field has no corresponding mapping rule. */
15
+ required?: boolean;
16
+ }
17
+ export interface SampleRecord {
18
+ id: string;
19
+ properties: Record<string, unknown>;
20
+ }
21
+ export interface MetadataAdapter {
22
+ listObjects(ctx: IntegrationContext): Promise<ObjectInfo[]>;
23
+ listFields(ctx: IntegrationContext, objectName: string): Promise<FieldInfo[]>;
24
+ fetchSampleRecords(ctx: IntegrationContext, objectName: string, properties: string[], limit: number): Promise<SampleRecord[]>;
25
+ }
26
+ //# sourceMappingURL=metadata-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-adapter.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/metadata-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5D,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9E,kBAAkB,CAChB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=metadata-adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-adapter.interface.js","sourceRoot":"","sources":["../../src/interfaces/metadata-adapter.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import type { IntegrationContext } from '../context';
2
+ import type { DataFlowSpec } from './data-flow-spec.interface';
3
+ import type { FilterSpec } from './filter.interface';
4
+ export interface EnrichmentPair {
5
+ /** Normalized vendor record — output of normalize() (or fetch() if normalize is absent). */
6
+ raw: Record<string, unknown>;
7
+ /**
8
+ * Mapped Skedulo record with lookup UIDs already resolved.
9
+ * Length and order must be preserved if returned from `enrich`.
10
+ */
11
+ mapped: Record<string, unknown>;
12
+ }
13
+ export interface PullAdapter<TRecord = Record<string, unknown>> {
14
+ /**
15
+ * Yield batches of records from the source system.
16
+ * since=null → initial sync (all records); since=Date → delta (modified since).
17
+ * The adapter receives the full FilterSpec and decides internally what to push
18
+ * to the vendor API (e.g. lastmodifieddate range) vs. what to ignore.
19
+ * Records yielded here are the raw vendor response — normalize() converts them
20
+ * to the canonical shape before local filtering and mapping.
21
+ */
22
+ fetch(ctx: IntegrationContext, flow: DataFlowSpec, since: Date | null, filter: FilterSpec | null): AsyncIterable<TRecord[]>;
23
+ /**
24
+ * Optional. Called once per batch immediately after fetch(), before local
25
+ * filtering and field mapping.
26
+ *
27
+ * Responsible for two things:
28
+ * 1. Structural normalization — convert the vendor format to a flat
29
+ * Record<string, unknown> the mapping engine can operate on.
30
+ * Examples: XML → JSON, flatten HubSpot `properties.*` to top-level keys.
31
+ * 2. Transformation — inject synthetic / computed fields that mapping
32
+ * expressions can reference but that don't exist in the vendor payload.
33
+ *
34
+ * The output is the canonical record shape. This is also the shape that
35
+ * fetchSampleRecords should return, so field names visible in the mapping UI
36
+ * match what arrives here at runtime.
37
+ *
38
+ * Must return one record per input, same order.
39
+ */
40
+ normalize?(ctx: IntegrationContext, spec: DataFlowSpec, records: TRecord[]): Promise<Record<string, unknown>[]>;
41
+ /**
42
+ * Optional. Called once per batch after lookup resolution, before upsert.
43
+ * Receives (normalized vendor record, mapped Skedulo record with lookup UIDs
44
+ * already resolved) pairs. Must return one enriched record per input pair,
45
+ * same order. Length mismatch is a programming error and causes an upsert
46
+ * shape mismatch.
47
+ */
48
+ enrich?(ctx: IntegrationContext, spec: DataFlowSpec, pairs: EnrichmentPair[]): Promise<Record<string, unknown>[]>;
49
+ }
50
+ //# sourceMappingURL=pull-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-adapter.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/pull-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D;;;;;;;OAOG;IACH,KAAK,CACH,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,IAAI,GAAG,IAAI,EAClB,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,CACR,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAEtC;;;;;;OAMG;IACH,MAAM,CAAC,CACL,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,cAAc,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;CACvC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pull-adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-adapter.interface.js","sourceRoot":"","sources":["../../src/interfaces/pull-adapter.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { IntegrationContext } from '../context';
2
+ import type { DataFlowSpec } from './data-flow-spec.interface';
3
+ export type PushClassification = 'ok' | 'transient' | 'permanent';
4
+ export interface PushOutcome {
5
+ status: PushClassification;
6
+ externalId?: string;
7
+ error?: string;
8
+ }
9
+ export interface PushAdapter {
10
+ /**
11
+ * Upsert/delete one record on the vendor side.
12
+ * Adapter classifies failures: `transient` (retry-worthy — 429/5xx/network)
13
+ * vs `permanent` (4xx validation, malformed payload).
14
+ */
15
+ pushOne(ctx: IntegrationContext, flow: DataFlowSpec, sourceRecordId: string, operation: 'INSERT' | 'UPDATE' | 'DELETE', mappedRecord: Record<string, unknown> | null): Promise<PushOutcome>;
16
+ /**
17
+ * Optional. Batch upsert of multiple records in one vendor API call.
18
+ * When defined, PushService.runFlow() uses this instead of per-record pushOne()
19
+ * calls for better throughput. The returned array must preserve input order;
20
+ * length mismatch is a programming error.
21
+ *
22
+ * Adapters that support bulk APIs (e.g. HubSpot batch create/update) should
23
+ * implement this. Adapters without bulk support can omit it — PushService
24
+ * falls back to calling pushOne() per record.
25
+ */
26
+ upsert?(ctx: IntegrationContext, flow: DataFlowSpec, records: Record<string, unknown>[]): Promise<PushOutcome[]>;
27
+ }
28
+ //# sourceMappingURL=push-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-adapter.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/push-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,OAAO,CACL,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EACzC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAC3C,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB;;;;;;;;;OASG;IACH,MAAM,CAAC,CACL,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=push-adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-adapter.interface.js","sourceRoot":"","sources":["../../src/interfaces/push-adapter.interface.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import type { LookupStrategy } from '../constants';
1
2
  import type { IntegrationContext } from '../context';
2
3
  import type { Adapter } from './adapter.interface';
3
4
  import type { DataFlow } from './data-flow-spec.interface';
@@ -5,7 +6,7 @@ import type { FilterSpec } from './filter.interface';
5
6
  import type { MappedEvent } from './mapped-event.interface';
6
7
  import type { BatchResult, SyncResult } from './sync-result.interface';
7
8
  export interface SyncRunOptions {
8
- lookupStrategy?: 'externalId' | 'idMapping';
9
+ lookupStrategy?: LookupStrategy;
9
10
  /**
10
11
  * How far back from lastRunAt to set the effective cursor (milliseconds).
11
12
  * Covers records modified during the tail of the previous run.
@@ -1 +1 @@
1
- {"version":3,"file":"sync-flow-strategy.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/sync-flow-strategy.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAC5C;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CACV,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,iBAAiB,CACf,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB,iBAAiB,CACf,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"sync-flow-strategy.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/sync-flow-strategy.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CACV,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,iBAAiB,CACf,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB,iBAAiB,CACf,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
@@ -0,0 +1,10 @@
1
+ import type { IntegrationContext } from '../context';
2
+ import type { DataFlowSpec } from './data-flow-spec.interface';
3
+ export interface TargetAdapter {
4
+ /**
5
+ * Upsert a batch of mapped records into the target system.
6
+ * Called by PullService after lookup resolution and optional enrich().
7
+ */
8
+ upsert(ctx: IntegrationContext, spec: DataFlowSpec, records: Record<string, unknown>[]): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=target-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-adapter.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/target-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,MAAM,CACJ,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=target-adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-adapter.interface.js","sourceRoot":"","sources":["../../src/interfaces/target-adapter.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { DataFlowSpec } from '../types';
2
+ export declare const HUBSPOT_CONTACT_SPEC: DataFlowSpec;
3
+ export declare const HUBSPOT_ACCOUNT_SPEC: DataFlowSpec;
4
+ //# sourceMappingURL=hubspot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubspot.d.ts","sourceRoot":"","sources":["../../src/mocks/hubspot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,oBAAoB,EAAE,YA6BlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YA0BlC,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HUBSPOT_ACCOUNT_SPEC = exports.HUBSPOT_CONTACT_SPEC = void 0;
4
+ exports.HUBSPOT_CONTACT_SPEC = {
5
+ id: 1,
6
+ name: 'HubSpot Contacts → Skedulo Contacts',
7
+ tenantIntegrationId: 1,
8
+ integrationType: 'hubspot',
9
+ sourceObject: 'contacts',
10
+ targetObject: 'Contacts',
11
+ direction: 'INBOUND',
12
+ strategy: 'PARAGON_WORKFLOW',
13
+ mappingConfig: {
14
+ mappings: [
15
+ { target: 'ExternalId', expression: '`id`', label: 'HubSpot contact ID' },
16
+ { target: 'FirstName', expression: 'properties.firstname', label: 'First name' },
17
+ { target: 'LastName', expression: 'properties.lastname', label: 'Last name' },
18
+ { target: 'Email', expression: 'properties.email', label: 'Email address' },
19
+ { target: 'Phone', expression: 'properties.phone', label: 'Phone' },
20
+ { target: 'MobilePhone', expression: 'properties.mobilephone', label: 'Mobile phone' },
21
+ { target: 'Title', expression: 'properties.jobtitle', label: 'Title' },
22
+ { target: 'MailingCity', expression: 'properties.city', label: 'Mailing city' },
23
+ { target: 'MailingState', expression: 'properties.state', label: 'Mailing state' },
24
+ { target: 'MailingStreet', expression: 'properties.address', label: 'Mailing street' },
25
+ { target: 'MailingPostalCode', expression: 'properties.zip', label: 'Mailing postal code' },
26
+ ],
27
+ validations: [
28
+ { condition: '$not($exists(`id`))', action: 'ERROR', label: 'required_id', message: 'Required field id is missing' },
29
+ ],
30
+ },
31
+ matchKeyField: 'ExternalId',
32
+ provenanceMarker: 'hubspot-sync',
33
+ };
34
+ exports.HUBSPOT_ACCOUNT_SPEC = {
35
+ id: 2,
36
+ name: 'HubSpot Companies → Skedulo Accounts',
37
+ tenantIntegrationId: 1,
38
+ integrationType: 'hubspot',
39
+ sourceObject: 'companies',
40
+ targetObject: 'Accounts',
41
+ direction: 'INBOUND',
42
+ strategy: 'PARAGON_WORKFLOW',
43
+ mappingConfig: {
44
+ mappings: [
45
+ { target: 'ExternalId', expression: '`id`', label: 'HubSpot company ID' },
46
+ { target: 'Name', expression: 'properties.name', label: 'Company name' },
47
+ { target: 'Phone', expression: 'properties.phone', label: 'Phone' },
48
+ { target: 'BillingStreet', expression: 'properties.address', label: 'Billing street' },
49
+ { target: 'BillingCity', expression: 'properties.city', label: 'Billing city' },
50
+ { target: 'BillingState', expression: 'properties.state', label: 'Billing state' },
51
+ { target: 'BillingPostalCode', expression: 'properties.zip', label: 'Billing postal code' },
52
+ ],
53
+ validations: [
54
+ { condition: '$not($exists(`id`))', action: 'ERROR', label: 'required_id', message: 'Required field id is missing' },
55
+ { condition: '$not($exists(properties.name))', action: 'ERROR', label: 'required_name', message: 'Required field name is missing' },
56
+ ],
57
+ },
58
+ matchKeyField: 'ExternalId',
59
+ provenanceMarker: 'hubspot-sync',
60
+ };
61
+ //# sourceMappingURL=hubspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubspot.js","sourceRoot":"","sources":["../../src/mocks/hubspot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function applyProvenance<T extends Record<string, unknown>>(record: T, marker: string): T;
2
+ export declare function hasOwnProvenance(payload: Record<string, unknown>, marker: string): boolean;
3
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,GACb,CAAC,CAEH;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAET"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyProvenance = applyProvenance;
4
+ exports.hasOwnProvenance = hasOwnProvenance;
5
+ const PROVENANCE_KEY = '__skedulo_provenance';
6
+ function applyProvenance(record, marker) {
7
+ return Object.assign(Object.assign({}, record), { [PROVENANCE_KEY]: marker });
8
+ }
9
+ function hasOwnProvenance(payload, marker) {
10
+ return payload[PROVENANCE_KEY] === marker;
11
+ }
12
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":";;AAEA,0CAKC;AAED,4CAKC;AAdD,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C,SAAgB,eAAe,CAC7B,MAAS,EACT,MAAc;IAEd,uCAAY,MAAM,KAAE,CAAC,cAAc,CAAC,EAAE,MAAM,IAAG;AACjD,CAAC;AAED,SAAgB,gBAAgB,CAC9B,OAAgC,EAChC,MAAc;IAEd,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { DataFlowClient } from '../clients/dataflow-client';
2
+ import type { DataFlowSpec } from '../types';
3
+ export declare class DataFlowService {
4
+ private readonly client;
5
+ private static _mockSpecs;
6
+ static registerMockSpec(spec: DataFlowSpec): void;
7
+ static clearMockSpecs(): void;
8
+ constructor(client: DataFlowClient);
9
+ getSpecByFilter(args: {
10
+ integrationType: string;
11
+ sourceObject: string;
12
+ strategy: DataFlowSpec['strategy'];
13
+ projectId?: string;
14
+ }): Promise<DataFlowSpec | null>;
15
+ getSpecById(id: number): Promise<DataFlowSpec | null>;
16
+ listActive(filter: {
17
+ integrationType: string;
18
+ strategy?: DataFlowSpec['strategy'];
19
+ }): Promise<DataFlowSpec[]>;
20
+ }
21
+ //# sourceMappingURL=dataflow-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataflow-service.d.ts","sourceRoot":"","sources":["../../src/services/dataflow-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,qBAAa,eAAe;IAiBd,OAAO,CAAC,QAAQ,CAAC,MAAM;IAfnC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsB;IAE/C,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IASjD,MAAM,CAAC,cAAc,IAAI,IAAI;gBAIA,MAAM,EAAE,cAAc;IAE7C,eAAe,CAAC,IAAI,EAAE;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAgB1B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIrD,UAAU,CAAC,MAAM,EAAE;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAU5B"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataFlowService = void 0;
4
+ class DataFlowService {
5
+ static registerMockSpec(spec) {
6
+ const idx = DataFlowService._mockSpecs.findIndex(s => s.id === spec.id);
7
+ if (idx >= 0) {
8
+ DataFlowService._mockSpecs[idx] = spec;
9
+ }
10
+ else {
11
+ DataFlowService._mockSpecs.push(spec);
12
+ }
13
+ }
14
+ static clearMockSpecs() {
15
+ DataFlowService._mockSpecs = [];
16
+ }
17
+ constructor(client) {
18
+ this.client = client;
19
+ }
20
+ async getSpecByFilter(args) {
21
+ const list = await this.client.list({
22
+ integrationType: args.integrationType,
23
+ sourceObject: args.sourceObject,
24
+ strategy: args.strategy,
25
+ status: 'ACTIVE',
26
+ projectId: args.projectId,
27
+ });
28
+ if (list && list.length > 0) {
29
+ return this.client.getById(list[0].id);
30
+ }
31
+ return null;
32
+ }
33
+ async getSpecById(id) {
34
+ return this.client.getById(id);
35
+ }
36
+ async listActive(filter) {
37
+ const list = await this.client.list(Object.assign(Object.assign({ integrationType: filter.integrationType }, (filter.strategy ? { strategy: filter.strategy } : {})), { status: 'ACTIVE' }));
38
+ if (!list || list.length === 0)
39
+ return [];
40
+ const specs = await Promise.all(list.map((item) => this.client.getById(item.id)));
41
+ return specs.filter((s) => s !== null);
42
+ }
43
+ }
44
+ exports.DataFlowService = DataFlowService;
45
+ // TODO: remove when integration service has real data flows
46
+ DataFlowService._mockSpecs = [];
47
+ //# sourceMappingURL=dataflow-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataflow-service.js","sourceRoot":"","sources":["../../src/services/dataflow-service.ts"],"names":[],"mappings":";;;AAGA,MAAa,eAAe;IAI1B,MAAM,CAAC,gBAAgB,CAAC,IAAkB;QACxC,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,KAAK,CAAC,eAAe,CAAC,IAKrB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAGhB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,+BACjC,eAAe,EAAE,MAAM,CAAC,eAAe,IACpC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACzD,MAAM,EAAE,QAAQ,IAChB,CAAC;QACH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;;AAxDH,0CAyDC;AAxDC,4DAA4D;AAC7C,0BAAU,GAAmB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function escapeEqlString(value: string): string;
2
+ //# sourceMappingURL=eql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eql.d.ts","sourceRoot":"","sources":["../../src/services/eql.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeEqlString = escapeEqlString;
4
+ // EQL string literals use single quotes; the resulting filter is embedded in a
5
+ // GraphQL string literal that uses double quotes. Escape backslashes and single
6
+ // quotes only.
7
+ function escapeEqlString(value) {
8
+ return value.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
9
+ }
10
+ //# sourceMappingURL=eql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eql.js","sourceRoot":"","sources":["../../src/services/eql.ts"],"names":[],"mappings":";;AAGA,0CAEC;AALD,+EAA+E;AAC/E,gFAAgF;AAChF,eAAe;AACf,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC"}
@@ -8,6 +8,6 @@ import type { SyncFlowStrategy } from '../interfaces/sync-flow-strategy.interfac
8
8
  export declare class ExternalIdSyncStrategy implements SyncFlowStrategy {
9
9
  processBatch(ctx: IntegrationContext, flow: DataFlow, source: Adapter | null, target: Adapter, records: Record<string, unknown>[], localFilter: FilterSpec | null): Promise<BatchResult>;
10
10
  handleDeleteEvent(ctx: IntegrationContext, flow: DataFlow, target: Adapter, recordId: string): Promise<SyncResult>;
11
- handleUpsertEvent(ctx: IntegrationContext, flow: DataFlow, _source: Adapter | null, target: Adapter, event: MappedEvent): Promise<SyncResult>;
11
+ handleUpsertEvent(ctx: IntegrationContext, flow: DataFlow, source: Adapter | null, target: Adapter, event: MappedEvent): Promise<SyncResult>;
12
12
  }
13
13
  //# sourceMappingURL=external-id-sync.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-id-sync.strategy.d.ts","sourceRoot":"","sources":["../../src/services/external-id-sync.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAQnF,qBAAa,sBAAuB,YAAW,gBAAgB;IACvD,YAAY,CAChB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,OAAO,CAAC,WAAW,CAAC;IAkFjB,iBAAiB,CACrB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;IAiBhB,iBAAiB,CACrB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC;CA8BvB"}
1
+ {"version":3,"file":"external-id-sync.strategy.d.ts","sourceRoot":"","sources":["../../src/services/external-id-sync.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAQnF,qBAAa,sBAAuB,YAAW,gBAAgB;IACvD,YAAY,CAChB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,OAAO,CAAC,WAAW,CAAC;IAkFjB,iBAAiB,CACrB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;IAiBhB,iBAAiB,CACrB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC;CA0CvB"}