@skedulo/integration-sdk 0.2.3 → 0.3.0

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 (411) 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 +38 -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 +54 -1
  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/sync-result.interface.d.ts +1 -1
  287. package/dist/interfaces/sync-result.interface.d.ts.map +1 -1
  288. package/dist/interfaces/target-adapter.interface.d.ts +10 -0
  289. package/dist/interfaces/target-adapter.interface.d.ts.map +1 -0
  290. package/dist/interfaces/target-adapter.interface.js +3 -0
  291. package/dist/interfaces/target-adapter.interface.js.map +1 -0
  292. package/dist/mocks/hubspot.d.ts +4 -0
  293. package/dist/mocks/hubspot.d.ts.map +1 -0
  294. package/dist/mocks/hubspot.js +61 -0
  295. package/dist/mocks/hubspot.js.map +1 -0
  296. package/dist/provenance.d.ts +3 -0
  297. package/dist/provenance.d.ts.map +1 -0
  298. package/dist/provenance.js +12 -0
  299. package/dist/provenance.js.map +1 -0
  300. package/dist/services/dataflow-service.d.ts +21 -0
  301. package/dist/services/dataflow-service.d.ts.map +1 -0
  302. package/dist/services/dataflow-service.js +47 -0
  303. package/dist/services/dataflow-service.js.map +1 -0
  304. package/dist/services/eql.d.ts +2 -0
  305. package/dist/services/eql.d.ts.map +1 -0
  306. package/dist/services/eql.js +10 -0
  307. package/dist/services/eql.js.map +1 -0
  308. package/dist/services/external-id-sync.strategy.d.ts +1 -1
  309. package/dist/services/external-id-sync.strategy.d.ts.map +1 -1
  310. package/dist/services/external-id-sync.strategy.js +18 -9
  311. package/dist/services/external-id-sync.strategy.js.map +1 -1
  312. package/dist/services/id-mapping-sync.strategy.d.ts.map +1 -1
  313. package/dist/services/id-mapping-sync.strategy.js +88 -20
  314. package/dist/services/id-mapping-sync.strategy.js.map +1 -1
  315. package/dist/services/id-mapping.service.js +11 -11
  316. package/dist/services/id-mapping.service.js.map +1 -1
  317. package/dist/services/mapping-service.d.ts +14 -0
  318. package/dist/services/mapping-service.d.ts.map +1 -0
  319. package/dist/services/mapping-service.js +88 -0
  320. package/dist/services/mapping-service.js.map +1 -0
  321. package/dist/services/mapping.service.d.ts +14 -0
  322. package/dist/services/mapping.service.d.ts.map +1 -0
  323. package/dist/services/mapping.service.js +89 -0
  324. package/dist/services/mapping.service.js.map +1 -0
  325. package/dist/services/outbound-service.d.ts +14 -0
  326. package/dist/services/outbound-service.d.ts.map +1 -0
  327. package/dist/services/outbound-service.js +65 -0
  328. package/dist/services/outbound-service.js.map +1 -0
  329. package/dist/services/paragon-workflow-service.d.ts +7 -0
  330. package/dist/services/paragon-workflow-service.d.ts.map +1 -0
  331. package/dist/services/paragon-workflow-service.js +68 -0
  332. package/dist/services/paragon-workflow-service.js.map +1 -0
  333. package/dist/services/paragon-workflow.service.d.ts +8 -0
  334. package/dist/services/paragon-workflow.service.d.ts.map +1 -0
  335. package/dist/services/paragon-workflow.service.js +31 -0
  336. package/dist/services/paragon-workflow.service.js.map +1 -0
  337. package/dist/services/preview-service.d.ts +11 -0
  338. package/dist/services/preview-service.d.ts.map +1 -0
  339. package/dist/services/preview-service.js +66 -0
  340. package/dist/services/preview-service.js.map +1 -0
  341. package/dist/services/pull-service.d.ts +9 -0
  342. package/dist/services/pull-service.d.ts.map +1 -0
  343. package/dist/services/pull-service.js +207 -0
  344. package/dist/services/pull-service.js.map +1 -0
  345. package/dist/services/pull.service.d.ts +11 -0
  346. package/dist/services/pull.service.d.ts.map +1 -0
  347. package/dist/services/pull.service.js +200 -0
  348. package/dist/services/pull.service.js.map +1 -0
  349. package/dist/services/push-service.d.ts +16 -0
  350. package/dist/services/push-service.d.ts.map +1 -0
  351. package/dist/services/push-service.js +76 -0
  352. package/dist/services/push-service.js.map +1 -0
  353. package/dist/services/push.service.d.ts +19 -0
  354. package/dist/services/push.service.d.ts.map +1 -0
  355. package/dist/services/push.service.js +186 -0
  356. package/dist/services/push.service.js.map +1 -0
  357. package/dist/services/routes.factory.d.ts +19 -0
  358. package/dist/services/routes.factory.d.ts.map +1 -0
  359. package/dist/services/routes.factory.js +352 -0
  360. package/dist/services/routes.factory.js.map +1 -0
  361. package/dist/services/scheduled-pull-service.d.ts +7 -0
  362. package/dist/services/scheduled-pull-service.d.ts.map +1 -0
  363. package/dist/services/scheduled-pull-service.js +58 -0
  364. package/dist/services/scheduled-pull-service.js.map +1 -0
  365. package/dist/services/split-filter.d.ts +3 -0
  366. package/dist/services/split-filter.d.ts.map +1 -0
  367. package/dist/services/split-filter.js +50 -0
  368. package/dist/services/split-filter.js.map +1 -0
  369. package/dist/services/sync-runner.d.ts +6 -0
  370. package/dist/services/sync-runner.d.ts.map +1 -1
  371. package/dist/services/sync-runner.js +46 -20
  372. package/dist/services/sync-runner.js.map +1 -1
  373. package/dist/testing/adapter-contract.d.ts +24 -0
  374. package/dist/testing/adapter-contract.d.ts.map +1 -0
  375. package/dist/testing/adapter-contract.js +82 -0
  376. package/dist/testing/adapter-contract.js.map +1 -0
  377. package/dist/utils/auth.d.ts +6 -0
  378. package/dist/utils/auth.d.ts.map +1 -0
  379. package/dist/utils/auth.js +18 -0
  380. package/dist/utils/auth.js.map +1 -0
  381. package/dist/utils/helpers.d.ts +23 -0
  382. package/dist/utils/helpers.d.ts.map +1 -0
  383. package/dist/utils/helpers.js +118 -0
  384. package/dist/utils/helpers.js.map +1 -0
  385. package/dist/utils/http-response.d.ts +16 -0
  386. package/dist/utils/http-response.d.ts.map +1 -0
  387. package/dist/utils/http-response.js +36 -0
  388. package/dist/utils/http-response.js.map +1 -0
  389. package/dist/utils/query-string.d.ts +2 -0
  390. package/dist/utils/query-string.d.ts.map +1 -0
  391. package/dist/utils/query-string.js +13 -0
  392. package/dist/utils/query-string.js.map +1 -0
  393. package/dist/utils/sked-handler.d.ts +22 -0
  394. package/dist/utils/sked-handler.d.ts.map +1 -0
  395. package/dist/utils/sked-handler.js +41 -0
  396. package/dist/utils/sked-handler.js.map +1 -0
  397. package/dist/utils/strings.d.ts +2 -0
  398. package/dist/utils/strings.d.ts.map +1 -0
  399. package/dist/utils/strings.js +14 -0
  400. package/dist/utils/strings.js.map +1 -0
  401. package/dist/utils/unwrap-proxy.d.ts +2 -0
  402. package/dist/utils/unwrap-proxy.d.ts.map +1 -0
  403. package/dist/utils/unwrap-proxy.js +12 -0
  404. package/dist/utils/unwrap-proxy.js.map +1 -0
  405. package/package.json +1 -1
  406. package/yarn.lock +5 -0
  407. package/.claude/worktrees/agent-a16acadaf5412dffd/jest.config.js +0 -12
  408. package/.claude/worktrees/agent-a33c3e4636d488e49/jest.config.js +0 -12
  409. package/.claude/worktrees/agent-a5b1d2ffa4ceef4a6/jest.config.js +0 -12
  410. package/.claude/worktrees/agent-aa1db4c22eabbde8e/jest.config.js +0 -12
  411. package/.claude/worktrees/agent-ac197ae8c69d7061c/jest.config.js +0 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-adapter-handler.js","sourceRoot":"","sources":["../../src/adapters/base-adapter-handler.ts"],"names":[],"mappings":"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"}
@@ -2,28 +2,24 @@ import type { IntegrationContext } from '../context';
2
2
  import type { DataFlow } from '../interfaces/data-flow-spec.interface';
3
3
  import type { Adapter, FieldInfo, ObjectInfo, SampleRecord, UpsertOutcome } from '../interfaces/adapter.interface';
4
4
  import { AdapterRole } from '../constants';
5
+ export type RetryClass = 'transient' | 'permanent';
6
+ export interface StaleMappingArgs {
7
+ attemptUpdate: () => Promise<UpsertOutcome>;
8
+ isStale: (outcome: UpsertOutcome) => boolean;
9
+ retryAsCreate: () => Promise<UpsertOutcome>;
10
+ }
5
11
  /**
6
12
  * Base class for integration adapters. Extend this to get:
7
13
  * - Default no-op implementations for all optional lifecycle hooks
8
14
  * - Default getRecordIdField() returning 'id'
9
15
  * - Abstract declarations for required methods (compile-time enforcement)
16
+ * - Protected utilities for batch upsert + stale-mapping retry
10
17
  *
11
18
  * Override only the methods your adapter needs.
12
- *
13
- * Example:
14
- * export class HubSpotAdapter extends BaseAdapter {
15
- * async upsert(ctx, flow, records) { ... }
16
- * async delete(ctx, flow, ids) { ... }
17
- * async getObjects(ctx) { ... }
18
- * async getFields(ctx, objectName) { ... }
19
- * async fetchSampleRecords(ctx, objectName, properties, limit) { ... }
20
- *
21
- * // Override only the hooks you need:
22
- * async beforeMap(ctx) { ... } // flatten properties.*, prefetch related data
23
- * async afterUpsert(ctx) { ... } // write-back HubSpot IDs
24
- * }
25
19
  */
26
20
  export declare abstract class BaseAdapter implements Adapter {
21
+ /** Canonical system name — subclass must set (e.g. "microsoftDynamics"). */
22
+ abstract integrationType: string;
27
23
  private _role;
28
24
  /** @internal Called by SyncService to assign this adapter's role in the pipeline. */
29
25
  _initRole(role: AdapterRole): void;
@@ -34,10 +30,14 @@ export declare abstract class BaseAdapter implements Adapter {
34
30
  abstract fetchSampleRecords(ctx: IntegrationContext, objectName: string, properties: string[], limit: number): Promise<SampleRecord[]>;
35
31
  /** Returns the field name that identifies records in this adapter's native system. */
36
32
  getRecordIdField(): string;
37
- /** True when this adapter is the source (fetching) adapter in the current SyncService. */
38
- protected isSource(): boolean;
39
- /** True when this adapter is the target (writing) adapter in the current SyncService. */
40
- protected isTarget(): boolean;
33
+ /**
34
+ * Default zip of sourceIds + outcome results. Override only when your
35
+ * adapter's UpsertOutcome.result shape is not "the target ID".
36
+ */
37
+ buildMappingEntries(sourceIds: string[], outcomes: UpsertOutcome[]): Array<{
38
+ sourceId: string;
39
+ targetId: string;
40
+ }>;
41
41
  /** Before FME mapping. Add synthetic fields to ctx.pipeline.data[].raw. */
42
42
  beforeMap(_ctx: IntegrationContext): Promise<void>;
43
43
  /** After FME mapping. ctx.pipeline.data[].mapped is populated. */
@@ -57,5 +57,26 @@ export declare abstract class BaseAdapter implements Adapter {
57
57
  beforeDelete(_ctx: IntegrationContext): Promise<void>;
58
58
  /** After successful delete. */
59
59
  afterDelete(_ctx: IntegrationContext): Promise<void>;
60
+ /** True when this adapter is the source (fetching) adapter in the current SyncService. */
61
+ protected isSource(): boolean;
62
+ /** True when this adapter is the target (writing) adapter in the current SyncService. */
63
+ protected isTarget(): boolean;
64
+ /**
65
+ * Run an async per-record fn over a batch in parallel. Thrown exceptions
66
+ * are converted into permanent UpsertOutcomes carrying the message.
67
+ * Outcomes are returned in input order.
68
+ */
69
+ protected runUpsertBatch<T>(records: T[], perRecord: (record: T, index: number) => Promise<UpsertOutcome>): Promise<UpsertOutcome[]>;
70
+ /**
71
+ * Classify an HTTP status code into a UpsertOutcome retry class.
72
+ * undefined (no response = network/timeout), 429, 408, 425, 5xx → transient.
73
+ * Everything else → permanent.
74
+ */
75
+ protected classifyHttpStatus(status: number | undefined): RetryClass;
76
+ /**
77
+ * Run update → if stale (target gone), retry as create and mark wasCreated.
78
+ * IdMappingSyncStrategy uses wasCreated to overwrite the stale mapping entry.
79
+ */
80
+ protected handleStaleMapping(args: StaleMappingArgs): Promise<UpsertOutcome>;
60
81
  }
61
82
  //# sourceMappingURL=base.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,WAAY,YAAW,OAAO;IAClD,OAAO,CAAC,KAAK,CAA0B;IAEvC,qFAAqF;IACrF,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAMlC,QAAQ,CAAC,MAAM,CACb,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC;IAE3B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtF,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAEnE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAErF,QAAQ,CAAC,kBAAkB,CACzB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC;IAI1B,sFAAsF;IACtF,gBAAgB,IAAI,MAAM;IAM1B,0FAA0F;IAC1F,SAAS,CAAC,QAAQ,IAAI,OAAO;IAI7B,yFAAyF;IACzF,SAAS,CAAC,QAAQ,IAAI,OAAO;IAQ7B,2EAA2E;IACrE,SAAS,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAExD,kEAAkE;IAC5D,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD,yCAAyC;IACnC,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D,oEAAoE;IAC9D,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D,iEAAiE;IAC3D,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1D,uDAAuD;IACjD,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D,+BAA+B;IACzB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAC3D"}
1
+ {"version":3,"file":"base.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAG/B,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAI5C,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC;IAE7C,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED;;;;;;;;GAQG;AACH,8BAAsB,WAAY,YAAW,OAAO;IAClD,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,OAAO,CAAC,KAAK,CAA0B;IAEvC,qFAAqF;IACrF,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAMlC,QAAQ,CAAC,MAAM,CACb,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC;IAE3B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtF,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAEnE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAErF,QAAQ,CAAC,kBAAkB,CACzB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC;IAI1B,sFAAsF;IACtF,gBAAgB,IAAI,MAAM;IAI1B;;;OAGG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,aAAa,EAAE,GACxB,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAehD,2EAA2E;IACrE,SAAS,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAExD,kEAAkE;IAC5D,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD,yCAAyC;IACnC,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D,oEAAoE;IAC9D,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D,iEAAiE;IAC3D,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1D,uDAAuD;IACjD,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D,+BAA+B;IACzB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,0FAA0F;IAC1F,SAAS,CAAC,QAAQ,IAAI,OAAO;IAI7B,yFAAyF;IACzF,SAAS,CAAC,QAAQ,IAAI,OAAO;IAI7B;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,CAAC,EACxB,OAAO,EAAE,CAAC,EAAE,EACZ,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,GAC9D,OAAO,CAAC,aAAa,EAAE,CAAC;IAI3B;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU;IAIpE;;;OAGG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;CAG7E"}
@@ -7,40 +7,33 @@ const constants_1 = require("../constants");
7
7
  * - Default no-op implementations for all optional lifecycle hooks
8
8
  * - Default getRecordIdField() returning 'id'
9
9
  * - Abstract declarations for required methods (compile-time enforcement)
10
+ * - Protected utilities for batch upsert + stale-mapping retry
10
11
  *
11
12
  * Override only the methods your adapter needs.
12
- *
13
- * Example:
14
- * export class HubSpotAdapter extends BaseAdapter {
15
- * async upsert(ctx, flow, records) { ... }
16
- * async delete(ctx, flow, ids) { ... }
17
- * async getObjects(ctx) { ... }
18
- * async getFields(ctx, objectName) { ... }
19
- * async fetchSampleRecords(ctx, objectName, properties, limit) { ... }
20
- *
21
- * // Override only the hooks you need:
22
- * async beforeMap(ctx) { ... } // flatten properties.*, prefetch related data
23
- * async afterUpsert(ctx) { ... } // write-back HubSpot IDs
24
- * }
25
13
  */
26
14
  class BaseAdapter {
27
15
  /** @internal Called by SyncService to assign this adapter's role in the pipeline. */
28
16
  _initRole(role) {
29
17
  this._role = role;
30
18
  }
31
- // ── Identity ──────────────────────────────────────────────────────────────────
19
+ // ── Overridable defaults ──────────────────────────────────────────────────────
32
20
  /** Returns the field name that identifies records in this adapter's native system. */
33
21
  getRecordIdField() {
34
22
  return 'id';
35
23
  }
36
- // ── Role helpers — use inside lifecycle hooks ─────────────────────────────────
37
- /** True when this adapter is the source (fetching) adapter in the current SyncService. */
38
- isSource() {
39
- return this._role === constants_1.AdapterRole.SOURCE;
40
- }
41
- /** True when this adapter is the target (writing) adapter in the current SyncService. */
42
- isTarget() {
43
- return this._role === constants_1.AdapterRole.TARGET;
24
+ /**
25
+ * Default zip of sourceIds + outcome results. Override only when your
26
+ * adapter's UpsertOutcome.result shape is not "the target ID".
27
+ */
28
+ buildMappingEntries(sourceIds, outcomes) {
29
+ return sourceIds
30
+ .map((sourceId, i) => {
31
+ var _a;
32
+ const result = (_a = outcomes[i]) === null || _a === void 0 ? void 0 : _a.result;
33
+ const targetId = typeof result === 'string' || typeof result === 'number' ? String(result) : '';
34
+ return { sourceId, targetId };
35
+ })
36
+ .filter(({ targetId }) => targetId.length > 0);
44
37
  }
45
38
  // ── Pipeline lifecycle hooks — all no-ops by default ─────────────────────────
46
39
  // Override to inject behaviour at specific pipeline steps.
@@ -64,6 +57,71 @@ class BaseAdapter {
64
57
  async beforeDelete(_ctx) { }
65
58
  /** After successful delete. */
66
59
  async afterDelete(_ctx) { }
60
+ // ── Protected utilities for subclasses ───────────────────────────────────────
61
+ /** True when this adapter is the source (fetching) adapter in the current SyncService. */
62
+ isSource() {
63
+ return this._role === constants_1.AdapterRole.SOURCE;
64
+ }
65
+ /** True when this adapter is the target (writing) adapter in the current SyncService. */
66
+ isTarget() {
67
+ return this._role === constants_1.AdapterRole.TARGET;
68
+ }
69
+ /**
70
+ * Run an async per-record fn over a batch in parallel. Thrown exceptions
71
+ * are converted into permanent UpsertOutcomes carrying the message.
72
+ * Outcomes are returned in input order.
73
+ */
74
+ runUpsertBatch(records, perRecord) {
75
+ return runUpsertBatch(records, perRecord);
76
+ }
77
+ /**
78
+ * Classify an HTTP status code into a UpsertOutcome retry class.
79
+ * undefined (no response = network/timeout), 429, 408, 425, 5xx → transient.
80
+ * Everything else → permanent.
81
+ */
82
+ classifyHttpStatus(status) {
83
+ return classifyHttpStatus(status);
84
+ }
85
+ /**
86
+ * Run update → if stale (target gone), retry as create and mark wasCreated.
87
+ * IdMappingSyncStrategy uses wasCreated to overwrite the stale mapping entry.
88
+ */
89
+ handleStaleMapping(args) {
90
+ return handleStaleMapping(args);
91
+ }
67
92
  }
68
93
  exports.BaseAdapter = BaseAdapter;
94
+ // ── Private helpers (module-scoped) ─────────────────────────────────────────────
95
+ async function runUpsertBatch(records, perRecord) {
96
+ return Promise.all(records.map(async (record, index) => {
97
+ try {
98
+ return await perRecord(record, index);
99
+ }
100
+ catch (err) {
101
+ return {
102
+ status: 'permanent',
103
+ error: err instanceof Error ? err.message : String(err),
104
+ };
105
+ }
106
+ }));
107
+ }
108
+ function classifyHttpStatus(status) {
109
+ if (status === undefined)
110
+ return 'transient';
111
+ if (status === 429 || status === 408 || status === 425)
112
+ return 'transient';
113
+ if (status >= 500)
114
+ return 'transient';
115
+ return 'permanent';
116
+ }
117
+ async function handleStaleMapping(args) {
118
+ const updateOutcome = await args.attemptUpdate();
119
+ if (!args.isStale(updateOutcome))
120
+ return updateOutcome;
121
+ const createOutcome = await args.retryAsCreate();
122
+ if (createOutcome.status === 'ok') {
123
+ return Object.assign(Object.assign({}, createOutcome), { wasCreated: true });
124
+ }
125
+ return createOutcome;
126
+ }
69
127
  //# sourceMappingURL=base.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":";;;AASA,4CAA2C;AAE3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAsB,WAAW;IAG/B,qFAAqF;IACrF,SAAS,CAAC,IAAiB;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAuBD,iFAAiF;IAEjF,sFAAsF;IACtF,gBAAgB;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iFAAiF;IAEjF,0FAA0F;IAChF,QAAQ;QAChB,OAAO,IAAI,CAAC,KAAK,KAAK,uBAAW,CAAC,MAAM,CAAC;IAC3C,CAAC;IAED,yFAAyF;IAC/E,QAAQ;QAChB,OAAO,IAAI,CAAC,KAAK,KAAK,uBAAW,CAAC,MAAM,CAAC;IAC3C,CAAC;IAED,gFAAgF;IAChF,2DAA2D;IAC3D,8DAA8D;IAE9D,2EAA2E;IAC3E,KAAK,CAAC,SAAS,CAAC,IAAwB,IAAkB,CAAC;IAE3D,kEAAkE;IAClE,KAAK,CAAC,QAAQ,CAAC,IAAwB,IAAkB,CAAC;IAE1D,yCAAyC;IACzC,KAAK,CAAC,aAAa,CAAC,IAAwB,IAAkB,CAAC;IAE/D,oEAAoE;IACpE,KAAK,CAAC,YAAY,CAAC,IAAwB,IAAkB,CAAC;IAE9D,iEAAiE;IACjE,KAAK,CAAC,YAAY,CAAC,IAAwB,IAAkB,CAAC;IAE9D;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,IAAwB,IAAkB,CAAC;IAE7D,uDAAuD;IACvD,KAAK,CAAC,YAAY,CAAC,IAAwB,IAAkB,CAAC;IAE9D,+BAA+B;IAC/B,KAAK,CAAC,WAAW,CAAC,IAAwB,IAAkB,CAAC;CAC9D;AA9ED,kCA8EC"}
1
+ {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { UpsertOutcome } from '../interfaces/adapter.interface';
2
+ export type RetryClass = 'transient' | 'permanent';
3
+ export declare function classifyHttpStatus(status: number | undefined): RetryClass;
4
+ export declare function runUpsertBatch<T>(records: T[], perRecord: (record: T, index: number) => Promise<UpsertOutcome>): Promise<UpsertOutcome[]>;
5
+ export interface StaleMappingArgs {
6
+ attemptUpdate: () => Promise<UpsertOutcome>;
7
+ isStale: (outcome: UpsertOutcome) => boolean;
8
+ retryAsCreate: () => Promise<UpsertOutcome>;
9
+ }
10
+ export declare function handleStaleMapping(args: StaleMappingArgs): Promise<UpsertOutcome>;
11
+ export declare function defaultBuildMappingEntries(sourceIds: string[], outcomes: UpsertOutcome[]): Array<{
12
+ sourceId: string;
13
+ targetId: string;
14
+ }>;
15
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/adapters/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAKnD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAKzE;AAKD,wBAAsB,cAAc,CAAC,CAAC,EACpC,OAAO,EAAE,CAAC,EAAE,EACZ,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,GAC9D,OAAO,CAAC,aAAa,EAAE,CAAC,CAa1B;AAED,MAAM,WAAW,gBAAgB;IAG/B,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAI5C,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC;IAE7C,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7C;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAQvF;AAKD,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,aAAa,EAAE,GACxB,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAI/C"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classifyHttpStatus = classifyHttpStatus;
4
+ exports.runUpsertBatch = runUpsertBatch;
5
+ exports.handleStaleMapping = handleStaleMapping;
6
+ exports.defaultBuildMappingEntries = defaultBuildMappingEntries;
7
+ // Classify an HTTP status code into a UpsertOutcome retry class.
8
+ // undefined → transient (no response = network/timeout). 429, 408, 425, 5xx → transient.
9
+ // Everything else → permanent.
10
+ function classifyHttpStatus(status) {
11
+ if (status === undefined)
12
+ return 'transient';
13
+ if (status === 429 || status === 408 || status === 425)
14
+ return 'transient';
15
+ if (status >= 500)
16
+ return 'transient';
17
+ return 'permanent';
18
+ }
19
+ // Run an async per-record function over a batch in parallel. Any thrown
20
+ // exception is converted into a permanent UpsertOutcome carrying the message.
21
+ // Outcomes are returned in input order; the perRecord fn receives the index too.
22
+ async function runUpsertBatch(records, perRecord) {
23
+ return Promise.all(records.map(async (record, index) => {
24
+ try {
25
+ return await perRecord(record, index);
26
+ }
27
+ catch (err) {
28
+ return {
29
+ status: 'permanent',
30
+ error: err instanceof Error ? err.message : String(err),
31
+ };
32
+ }
33
+ }));
34
+ }
35
+ // Run update → if stale (target gone), retry as create and mark wasCreated.
36
+ // IdMappingSyncStrategy uses wasCreated to overwrite the stale mapping entry.
37
+ async function handleStaleMapping(args) {
38
+ const updateOutcome = await args.attemptUpdate();
39
+ if (!args.isStale(updateOutcome))
40
+ return updateOutcome;
41
+ const createOutcome = await args.retryAsCreate();
42
+ if (createOutcome.status === 'ok') {
43
+ return Object.assign(Object.assign({}, createOutcome), { wasCreated: true });
44
+ }
45
+ return createOutcome;
46
+ }
47
+ // Default mapping for buildMappingEntries(): zip sourceIds with outcome.result.
48
+ // Strips entries whose target ID resolves to an empty string.
49
+ // Adapters override only when their .result shape differs from "the target ID".
50
+ function defaultBuildMappingEntries(sourceIds, outcomes) {
51
+ return sourceIds
52
+ .map((sourceId, i) => { var _a, _b; return ({ sourceId, targetId: String((_b = (_a = outcomes[i]) === null || _a === void 0 ? void 0 : _a.result) !== null && _b !== void 0 ? _b : '') }); })
53
+ .filter(({ targetId }) => targetId.length > 0);
54
+ }
55
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/adapters/helpers.ts"],"names":[],"mappings":";;AAOA,gDAKC;AAKD,wCAgBC;AAgBD,gDAQC;AAKD,gEAOC;AAjED,iEAAiE;AACjE,yFAAyF;AACzF,+BAA+B;AAC/B,SAAgB,kBAAkB,CAAC,MAA0B;IAC3D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IAC3E,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC;IACtC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,wEAAwE;AACxE,8EAA8E;AAC9E,iFAAiF;AAC1E,KAAK,UAAU,cAAc,CAClC,OAAY,EACZ,SAA+D;IAE/D,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,WAAoB;gBAC5B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAcD,4EAA4E;AAC5E,8EAA8E;AACvE,KAAK,UAAU,kBAAkB,CAAC,IAAsB;IAC7D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,aAAa,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IACjD,IAAI,aAAa,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAClC,uCAAY,aAAa,KAAE,UAAU,EAAE,IAAI,IAAG;IAChD,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,gFAAgF;AAChF,8DAA8D;AAC9D,gFAAgF;AAChF,SAAgB,0BAA0B,CACxC,SAAmB,EACnB,QAAyB;IAEzB,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAA,MAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,MAAM,mCAAI,EAAE,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC;SACjF,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MetadataAdapter } from '../types';
2
+ export declare const skeduloMetadataAdapter: MetadataAdapter;
3
+ //# sourceMappingURL=skedulo-metadata-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skedulo-metadata-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/skedulo-metadata-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,eAAe,EAA4B,MAAM,UAAU,CAAC;AAErF,eAAO,MAAM,sBAAsB,EAAE,eA6CpC,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.skeduloMetadataAdapter = void 0;
15
+ exports.skeduloMetadataAdapter = {
16
+ async listObjects(ctx) {
17
+ const metadata = await ctx.metadataClient.fetchAllMetadata();
18
+ return metadata
19
+ .filter((m) => m.name != null)
20
+ .map((m) => ({ name: m.name, label: m.name }));
21
+ },
22
+ async listFields(ctx, objectName) {
23
+ var _a, _b;
24
+ const all = await ctx.metadataClient.fetchAllMetadata();
25
+ const entry = (all !== null && all !== void 0 ? all : []).find((m) => m.name === objectName || m.mapping === objectName);
26
+ const lookupKey = (_a = entry === null || entry === void 0 ? void 0 : entry.mapping) !== null && _a !== void 0 ? _a : objectName;
27
+ const metadata = await ctx.metadataClient.fetchObjectMetadata(lookupKey);
28
+ return ((_b = metadata.fields) !== null && _b !== void 0 ? _b : [])
29
+ .map((f) => {
30
+ var _a;
31
+ return ({
32
+ name: f.name,
33
+ label: (_a = f.label) !== null && _a !== void 0 ? _a : f.name,
34
+ type: f.type,
35
+ expression: f.name,
36
+ readOnly: f.accessMode === 'read_only',
37
+ required: f.nillable === false && f.accessMode == 'read_write',
38
+ });
39
+ });
40
+ },
41
+ async fetchSampleRecords(ctx, objectName, properties, limit) {
42
+ var _a;
43
+ const fields = ['UID', ...properties.filter((p) => p !== 'UID')];
44
+ const builder = ctx.newQueryBuilder({
45
+ objectName,
46
+ operationName: 'metadataSample',
47
+ readOnly: true,
48
+ });
49
+ const result = await builder.withFields(fields).withLimit(limit).execute();
50
+ const records = ((_a = result === null || result === void 0 ? void 0 : result.records) !== null && _a !== void 0 ? _a : []);
51
+ return records.map((r) => {
52
+ const _a = r, { UID } = _a, rest = __rest(_a, ["UID"]);
53
+ return { id: String(UID !== null && UID !== void 0 ? UID : ''), properties: rest };
54
+ });
55
+ },
56
+ };
57
+ //# sourceMappingURL=skedulo-metadata-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skedulo-metadata-adapter.js","sourceRoot":"","sources":["../../src/adapters/skedulo-metadata-adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGa,QAAA,sBAAsB,GAAoB;IACrD,KAAK,CAAC,WAAW,CAAC,GAAuB;QACvC,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACtE,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;aAClC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAuB,EAAE,UAAkB;;QAC1D,MAAM,GAAG,GAAG,MAAO,GAAW,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,CAC9D,CAAC;QACF,MAAM,SAAS,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,EAAE,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,IAAI;gBACxB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,IAAI;gBAClB,QAAQ,EAAE,CAAC,CAAC,UAAU,KAAK,WAAW;gBACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,YAAY;aAC/D,CAAC,CAAA;SAAA,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAAuB,EACvB,UAAkB,EAClB,UAAoB,EACpB,KAAa;;QAEb,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAI,GAAW,CAAC,eAAe,CAAC;YAC3C,UAAU;YACV,aAAa,EAAE,gBAAgB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,EAAE,CAAmC,CAAC;QAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,KAAmB,CAA+C,EAAlE,EAAE,GAAG,OAA6D,EAAxD,IAAI,cAAd,OAAgB,CAAkD,CAAC;YACzE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MetadataAdapter } from '../types';
2
+ export declare const skeduloMetadataAdapter: MetadataAdapter;
3
+ //# sourceMappingURL=skedulo-metadata.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skedulo-metadata.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/skedulo-metadata.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,eAAe,EAA4B,MAAM,UAAU,CAAC;AAGrF,eAAO,MAAM,sBAAsB,EAAE,eA0CpC,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.skeduloMetadataAdapter = void 0;
15
+ const constants_1 = require("../constants");
16
+ exports.skeduloMetadataAdapter = {
17
+ async listObjects(ctx) {
18
+ const metadata = await ctx.metadataClient.fetchAllMetadata();
19
+ return metadata
20
+ .filter((m) => m.name != null)
21
+ .map((m) => ({ name: m.name, label: m.name }));
22
+ },
23
+ async listFields(ctx, objectName) {
24
+ var _a, _b;
25
+ const all = await ctx.metadataClient.fetchAllMetadata();
26
+ const entry = (all !== null && all !== void 0 ? all : []).find((m) => m.name === objectName || m.mapping === objectName);
27
+ const lookupKey = (_a = entry === null || entry === void 0 ? void 0 : entry.mapping) !== null && _a !== void 0 ? _a : objectName;
28
+ const metadata = await ctx.metadataClient.fetchObjectMetadata(lookupKey);
29
+ return ((_b = metadata.fields) !== null && _b !== void 0 ? _b : []).map((f) => {
30
+ var _a;
31
+ return ({
32
+ name: f.name,
33
+ label: (_a = f.label) !== null && _a !== void 0 ? _a : f.name,
34
+ type: f.type,
35
+ expression: f.name,
36
+ readOnly: f.accessMode === 'read_only',
37
+ required: f.nillable === false && f.accessMode == 'read_write',
38
+ });
39
+ });
40
+ },
41
+ async fetchSampleRecords(ctx, objectName, properties, limit) {
42
+ var _a;
43
+ const fields = ['UID', ...properties.filter((p) => p !== 'UID')];
44
+ const builder = ctx.newQueryBuilder({
45
+ objectName,
46
+ operationName: constants_1.OperationName.METADATA_SAMPLE,
47
+ readOnly: true,
48
+ });
49
+ const result = await builder.withFields(fields).withLimit(limit).execute();
50
+ const records = ((_a = result === null || result === void 0 ? void 0 : result.records) !== null && _a !== void 0 ? _a : []);
51
+ return records.map((r) => {
52
+ const _a = r, { UID } = _a, rest = __rest(_a, ["UID"]);
53
+ return { id: String(UID !== null && UID !== void 0 ? UID : ''), properties: rest };
54
+ });
55
+ },
56
+ };
57
+ //# sourceMappingURL=skedulo-metadata.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skedulo-metadata.adapter.js","sourceRoot":"","sources":["../../src/adapters/skedulo-metadata.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,4CAA6C;AAEhC,QAAA,sBAAsB,GAAoB;IACrD,KAAK,CAAC,WAAW,CAAC,GAAuB;QACvC,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACtE,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;aAClC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAuB,EAAE,UAAkB;;QAC1D,MAAM,GAAG,GAAG,MAAO,GAAW,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;QAC9F,MAAM,SAAS,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,IAAI;gBACxB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,IAAI;gBAClB,QAAQ,EAAE,CAAC,CAAC,UAAU,KAAK,WAAW;gBACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,YAAY;aAC/D,CAAC,CAAA;SAAA,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAAuB,EACvB,UAAkB,EAClB,UAAoB,EACpB,KAAa;;QAEb,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAI,GAAW,CAAC,eAAe,CAAC;YAC3C,UAAU;YACV,aAAa,EAAE,yBAAa,CAAC,eAAe;YAC5C,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,EAAE,CAAmC,CAAC;QAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,KAAmB,CAA+C,EAAlE,EAAE,GAAG,OAA6D,EAAxD,IAAI,cAAd,OAAgB,CAAkD,CAAC;YACzE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -3,6 +3,16 @@ import type { DataFlow } from '../interfaces/data-flow-spec.interface';
3
3
  import type { FilterSpec } from '../interfaces/filter.interface';
4
4
  import type { Adapter, EnrichmentPair, FieldInfo, ObjectInfo, SampleRecord, UpsertOutcome } from '../interfaces/adapter.interface';
5
5
  export declare class SkeduloAdapter implements Adapter<Record<string, unknown>> {
6
+ readonly integrationType = "skedulo";
7
+ readonly capabilities: {
8
+ readonly roles: readonly ["source", "target"];
9
+ readonly allowNewDataFlows: true;
10
+ readonly hasDataFlows: true;
11
+ };
12
+ checkBootstrap(ctx: IntegrationContext): Promise<{
13
+ complete: boolean;
14
+ }>;
15
+ bootstrap(ctx: IntegrationContext): Promise<void>;
6
16
  fetch(ctx: IntegrationContext, flow: DataFlow, since: Date | null, _filter: FilterSpec | null): AsyncIterable<Record<string, unknown>[]>;
7
17
  resolveLookups(ctx: IntegrationContext, flow: DataFlow, pairs: EnrichmentPair[]): Promise<void>;
8
18
  upsert(ctx: IntegrationContext, flow: DataFlow, records: Record<string, unknown>[]): Promise<UpsertOutcome[]>;
@@ -20,4 +30,5 @@ export declare class SkeduloAdapter implements Adapter<Record<string, unknown>>
20
30
  fetchSampleRecords(ctx: IntegrationContext, objectName: string, properties: string[], limit: number): Promise<SampleRecord[]>;
21
31
  private _batchLookup;
22
32
  }
33
+ export declare const skeduloAdapter: SkeduloAdapter;
23
34
  //# sourceMappingURL=skedulo.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skedulo.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/skedulo.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AASzC,qBAAa,cAAe,YAAW,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9D,KAAK,CACV,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,IAAI,GAAG,IAAI,EAClB,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAqCrC,cAAc,CAClB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,cAAc,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC;IAyCV,MAAM,CACV,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC;YAkDb,OAAO;IA8Bf,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnF,iGAAiG;IAC3F,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvF,gBAAgB,IAAI,MAAM;IAI1B,mBAAmB,CACjB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,aAAa,EAAE,GACxB,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ1C,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAe5E,kBAAkB,CACtB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC;YAaZ,YAAY;CA+B3B"}
1
+ {"version":3,"file":"skedulo.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/skedulo.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AAUzC,qBAAa,cAAe,YAAW,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,QAAQ,CAAC,eAAe,aAAa;IAErC,QAAQ,CAAC,YAAY;;;;MAIV;IAML,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAIvE,SAAS,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,KAAK,CACV,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,IAAI,GAAG,IAAI,EAClB,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAsCrC,cAAc,CAClB,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,cAAc,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC;IAyCV,MAAM,CACV,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC;YAkDb,OAAO;IAwCf,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnF,iGAAiG;IAC3F,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvF,gBAAgB,IAAI,MAAM;IAI1B,mBAAmB,CACjB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,aAAa,EAAE,GACxB,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ1C,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAe5E,kBAAkB,CACtB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC;YAaZ,YAAY;CA+B3B;AASD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -24,14 +24,32 @@ var __rest = (this && this.__rest) || function (s, e) {
24
24
  return t;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.SkeduloAdapter = void 0;
27
+ exports.skeduloAdapter = exports.SkeduloAdapter = void 0;
28
28
  const constants_1 = require("../constants");
29
- const utils_1 = require("../utils");
29
+ const helpers_1 = require("../utils/helpers");
30
+ const id_mapping_service_1 = require("../services/id-mapping.service");
30
31
  const SKEDULO_PAGE_SIZE = 200;
31
32
  // Skedulo adapter covers both source (fetch from Skedulo for outbound batch sync)
32
33
  // and target (upsert/delete into Skedulo for inbound sync) roles.
33
34
  // Lookup resolution uses Skedulo EQL to translate ExternalId → UID.
34
35
  class SkeduloAdapter {
36
+ constructor() {
37
+ this.integrationType = 'skedulo';
38
+ this.capabilities = {
39
+ roles: [constants_1.AdapterRole.SOURCE, constants_1.AdapterRole.TARGET],
40
+ allowNewDataFlows: true,
41
+ hasDataFlows: true,
42
+ };
43
+ }
44
+ // ── Bootstrap ───────────────────────────────────────────────────────────────
45
+ // The Skedulo side owns the IntegrationIdMapping custom object that backs the
46
+ // idMapping lookup strategy. Consumers expose these via /setup endpoints.
47
+ async checkBootstrap(ctx) {
48
+ return id_mapping_service_1.IdMappingService.checkSchema(ctx);
49
+ }
50
+ async bootstrap(ctx) {
51
+ await id_mapping_service_1.IdMappingService.ensureSchema(ctx);
52
+ }
35
53
  // ── Source role ─────────────────────────────────────────────────────────────
36
54
  fetch(ctx, flow, since, _filter) {
37
55
  return __asyncGenerator(this, arguments, function* fetch_1() {
@@ -41,10 +59,11 @@ class SkeduloAdapter {
41
59
  let lastUID = null;
42
60
  while (true) {
43
61
  const clauses = [];
62
+ // EQL Instant literals are unquoted; wrapping in single quotes makes EQL parse it as String.
44
63
  if (since)
45
- clauses.push(`LastModifiedDate >= '${(0, utils_1.escapeEqlString)(since.toISOString())}'`);
64
+ clauses.push(`LastModifiedDate >= ${since.toISOString()}`);
46
65
  if (lastUID)
47
- clauses.push(`UID > '${(0, utils_1.escapeEqlString)(lastUID)}'`);
66
+ clauses.push(`UID > '${(0, helpers_1.escapeEqlString)(lastUID)}'`);
48
67
  const eqlFilter = clauses.length > 0 ? clauses.join(' AND ') : undefined;
49
68
  const builder = ctx.newQueryBuilder({
50
69
  objectName: flow.sourceObject,
@@ -160,7 +179,17 @@ class SkeduloAdapter {
160
179
  return records.map(() => ({ status: 'permanent', error: message }));
161
180
  }
162
181
  const uids = ctx.graphqlService.extractUIDs(result);
163
- return records.map((_, i) => { var _a; return ({ status: 'ok', result: (_a = uids[i]) !== null && _a !== void 0 ? _a : null }); });
182
+ return records.map((_, i) => {
183
+ var _a;
184
+ const uid = (_a = uids[i]) !== null && _a !== void 0 ? _a : null;
185
+ if (uid === null && operation === 'insert') {
186
+ return {
187
+ status: 'precondition',
188
+ error: 'insert returned no UID — IntegrationIdMapping may not be bootstrapped (run /setup then /on-initial-sync)',
189
+ };
190
+ }
191
+ return { status: 'ok', result: uid };
192
+ });
164
193
  }
165
194
  async delete(ctx, flow, ids) {
166
195
  for (const id of ids) {
@@ -170,7 +199,7 @@ class SkeduloAdapter {
170
199
  });
171
200
  const result = await builder
172
201
  .withFields(['UID'])
173
- .withFilter(`${flow.matchKeyField} == "${(0, utils_1.escapeEqlString)(id)}"`)
202
+ .withFilter(`${flow.matchKeyField} == "${(0, helpers_1.escapeEqlString)(id)}"`)
174
203
  .withLimit(1)
175
204
  .execute();
176
205
  if (!result.records || result.records.length === 0)
@@ -242,7 +271,7 @@ class SkeduloAdapter {
242
271
  var _a, _b, _c;
243
272
  const result = new Map();
244
273
  for (const chunkValues of chunk(values, constants_1.LOOKUP_CHUNK_SIZE)) {
245
- const list = chunkValues.map((v) => `'${(0, utils_1.escapeEqlString)(v)}'`).join(', ');
274
+ const list = chunkValues.map((v) => `'${(0, helpers_1.escapeEqlString)(v)}'`).join(', ');
246
275
  const builder = ctx.newQueryBuilder({
247
276
  objectName,
248
277
  operationName: constants_1.OperationName.LOOKUP_RESOLVE(objectName),
@@ -270,4 +299,6 @@ function chunk(arr, size) {
270
299
  out.push(arr.slice(i, i + size));
271
300
  return out;
272
301
  }
302
+ // Stateless singleton — every consumer can share the same instance.
303
+ exports.skeduloAdapter = new SkeduloAdapter();
273
304
  //# sourceMappingURL=skedulo.adapter.js.map