@gravity-platform/ingest 1.1.2

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 (326) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/Abyssale/node/executor.d.ts +12 -0
  3. package/dist/Abyssale/node/executor.d.ts.map +1 -0
  4. package/dist/Abyssale/node/executor.js +72 -0
  5. package/dist/Abyssale/node/executor.js.map +1 -0
  6. package/dist/Abyssale/node/index.d.ts +10 -0
  7. package/dist/Abyssale/node/index.d.ts.map +1 -0
  8. package/dist/Abyssale/node/index.js +90 -0
  9. package/dist/Abyssale/node/index.js.map +1 -0
  10. package/dist/Abyssale/service/abyssaleService.d.ts +45 -0
  11. package/dist/Abyssale/service/abyssaleService.d.ts.map +1 -0
  12. package/dist/Abyssale/service/abyssaleService.js +360 -0
  13. package/dist/Abyssale/service/abyssaleService.js.map +1 -0
  14. package/dist/Abyssale/util/types.d.ts +62 -0
  15. package/dist/Abyssale/util/types.d.ts.map +1 -0
  16. package/dist/Abyssale/util/types.js +6 -0
  17. package/dist/Abyssale/util/types.js.map +1 -0
  18. package/dist/AirtableInsert/node/executor.d.ts +7 -0
  19. package/dist/AirtableInsert/node/executor.d.ts.map +1 -0
  20. package/dist/AirtableInsert/node/executor.js +32 -0
  21. package/dist/AirtableInsert/node/executor.js.map +1 -0
  22. package/dist/AirtableInsert/node/index.d.ts +10 -0
  23. package/dist/AirtableInsert/node/index.d.ts.map +1 -0
  24. package/dist/AirtableInsert/node/index.js +98 -0
  25. package/dist/AirtableInsert/node/index.js.map +1 -0
  26. package/dist/AirtableInsert/service/airtableInsertService.d.ts +8 -0
  27. package/dist/AirtableInsert/service/airtableInsertService.d.ts.map +1 -0
  28. package/dist/AirtableInsert/service/airtableInsertService.js +99 -0
  29. package/dist/AirtableInsert/service/airtableInsertService.js.map +1 -0
  30. package/dist/AirtableInsert/util/types.d.ts +15 -0
  31. package/dist/AirtableInsert/util/types.d.ts.map +1 -0
  32. package/dist/AirtableInsert/util/types.js +3 -0
  33. package/dist/AirtableInsert/util/types.js.map +1 -0
  34. package/dist/ApifyResults/node/executor.d.ts +32 -0
  35. package/dist/ApifyResults/node/executor.d.ts.map +1 -0
  36. package/dist/ApifyResults/node/executor.js +204 -0
  37. package/dist/ApifyResults/node/executor.js.map +1 -0
  38. package/dist/ApifyResults/node/index.d.ts +10 -0
  39. package/dist/ApifyResults/node/index.d.ts.map +1 -0
  40. package/dist/ApifyResults/node/index.js +79 -0
  41. package/dist/ApifyResults/node/index.js.map +1 -0
  42. package/dist/ApifyResults/service/apifyService.d.ts +10 -0
  43. package/dist/ApifyResults/service/apifyService.d.ts.map +1 -0
  44. package/dist/ApifyResults/service/apifyService.js +85 -0
  45. package/dist/ApifyResults/service/apifyService.js.map +1 -0
  46. package/dist/ApifyResults/util/types.d.ts +93 -0
  47. package/dist/ApifyResults/util/types.d.ts.map +1 -0
  48. package/dist/ApifyResults/util/types.js +6 -0
  49. package/dist/ApifyResults/util/types.js.map +1 -0
  50. package/dist/ApifyStarter/node/executor.d.ts +12 -0
  51. package/dist/ApifyStarter/node/executor.d.ts.map +1 -0
  52. package/dist/ApifyStarter/node/executor.js +97 -0
  53. package/dist/ApifyStarter/node/executor.js.map +1 -0
  54. package/dist/ApifyStarter/node/index.d.ts +10 -0
  55. package/dist/ApifyStarter/node/index.d.ts.map +1 -0
  56. package/dist/ApifyStarter/node/index.js +87 -0
  57. package/dist/ApifyStarter/node/index.js.map +1 -0
  58. package/dist/ApifyStarter/service/apifyActorService.d.ts +11 -0
  59. package/dist/ApifyStarter/service/apifyActorService.d.ts.map +1 -0
  60. package/dist/ApifyStarter/service/apifyActorService.js +104 -0
  61. package/dist/ApifyStarter/service/apifyActorService.js.map +1 -0
  62. package/dist/ApifyStarter/util/types.d.ts +23 -0
  63. package/dist/ApifyStarter/util/types.d.ts.map +1 -0
  64. package/dist/ApifyStarter/util/types.js +6 -0
  65. package/dist/ApifyStarter/util/types.js.map +1 -0
  66. package/dist/ApifyStarter/util/validation.d.ts +9 -0
  67. package/dist/ApifyStarter/util/validation.d.ts.map +1 -0
  68. package/dist/ApifyStarter/util/validation.js +59 -0
  69. package/dist/ApifyStarter/util/validation.js.map +1 -0
  70. package/dist/ApolloCompany/node/executor.d.ts +8 -0
  71. package/dist/ApolloCompany/node/executor.d.ts.map +1 -0
  72. package/dist/ApolloCompany/node/executor.js +38 -0
  73. package/dist/ApolloCompany/node/executor.js.map +1 -0
  74. package/dist/ApolloCompany/node/index.d.ts +10 -0
  75. package/dist/ApolloCompany/node/index.d.ts.map +1 -0
  76. package/dist/ApolloCompany/node/index.js +120 -0
  77. package/dist/ApolloCompany/node/index.js.map +1 -0
  78. package/dist/ApolloCompany/service/apolloSearchCompanyService.d.ts +7 -0
  79. package/dist/ApolloCompany/service/apolloSearchCompanyService.d.ts.map +1 -0
  80. package/dist/ApolloCompany/service/apolloSearchCompanyService.js +124 -0
  81. package/dist/ApolloCompany/service/apolloSearchCompanyService.js.map +1 -0
  82. package/dist/ApolloCompany/util/types.d.ts +46 -0
  83. package/dist/ApolloCompany/util/types.d.ts.map +1 -0
  84. package/dist/ApolloCompany/util/types.js +6 -0
  85. package/dist/ApolloCompany/util/types.js.map +1 -0
  86. package/dist/ApolloCompanyEnrich/node/executor.d.ts +8 -0
  87. package/dist/ApolloCompanyEnrich/node/executor.d.ts.map +1 -0
  88. package/dist/ApolloCompanyEnrich/node/executor.js +25 -0
  89. package/dist/ApolloCompanyEnrich/node/executor.js.map +1 -0
  90. package/dist/ApolloCompanyEnrich/node/index.d.ts +10 -0
  91. package/dist/ApolloCompanyEnrich/node/index.d.ts.map +1 -0
  92. package/dist/ApolloCompanyEnrich/node/index.js +67 -0
  93. package/dist/ApolloCompanyEnrich/node/index.js.map +1 -0
  94. package/dist/ApolloCompanyEnrich/service/apolloCompanyEnrichService.d.ts +9 -0
  95. package/dist/ApolloCompanyEnrich/service/apolloCompanyEnrichService.d.ts.map +1 -0
  96. package/dist/ApolloCompanyEnrich/service/apolloCompanyEnrichService.js +40 -0
  97. package/dist/ApolloCompanyEnrich/service/apolloCompanyEnrichService.js.map +1 -0
  98. package/dist/ApolloCompanyEnrich/util/types.d.ts +13 -0
  99. package/dist/ApolloCompanyEnrich/util/types.d.ts.map +1 -0
  100. package/dist/ApolloCompanyEnrich/util/types.js +6 -0
  101. package/dist/ApolloCompanyEnrich/util/types.js.map +1 -0
  102. package/dist/ApolloPeople/node/executor.d.ts +8 -0
  103. package/dist/ApolloPeople/node/executor.d.ts.map +1 -0
  104. package/dist/ApolloPeople/node/executor.js +41 -0
  105. package/dist/ApolloPeople/node/executor.js.map +1 -0
  106. package/dist/ApolloPeople/node/index.d.ts +10 -0
  107. package/dist/ApolloPeople/node/index.d.ts.map +1 -0
  108. package/dist/ApolloPeople/node/index.js +128 -0
  109. package/dist/ApolloPeople/node/index.js.map +1 -0
  110. package/dist/ApolloPeople/service/apolloSearchService.d.ts +6 -0
  111. package/dist/ApolloPeople/service/apolloSearchService.d.ts.map +1 -0
  112. package/dist/ApolloPeople/service/apolloSearchService.js +127 -0
  113. package/dist/ApolloPeople/service/apolloSearchService.js.map +1 -0
  114. package/dist/ApolloPeople/util/types.d.ts +70 -0
  115. package/dist/ApolloPeople/util/types.d.ts.map +1 -0
  116. package/dist/ApolloPeople/util/types.js +6 -0
  117. package/dist/ApolloPeople/util/types.js.map +1 -0
  118. package/dist/ApolloPeopleEnrich/node/executor.d.ts +8 -0
  119. package/dist/ApolloPeopleEnrich/node/executor.d.ts.map +1 -0
  120. package/dist/ApolloPeopleEnrich/node/executor.js +25 -0
  121. package/dist/ApolloPeopleEnrich/node/executor.js.map +1 -0
  122. package/dist/ApolloPeopleEnrich/node/index.d.ts +10 -0
  123. package/dist/ApolloPeopleEnrich/node/index.d.ts.map +1 -0
  124. package/dist/ApolloPeopleEnrich/node/index.js +116 -0
  125. package/dist/ApolloPeopleEnrich/node/index.js.map +1 -0
  126. package/dist/ApolloPeopleEnrich/service/apolloPeopleEnrichService.d.ts +10 -0
  127. package/dist/ApolloPeopleEnrich/service/apolloPeopleEnrichService.d.ts.map +1 -0
  128. package/dist/ApolloPeopleEnrich/service/apolloPeopleEnrichService.js +54 -0
  129. package/dist/ApolloPeopleEnrich/service/apolloPeopleEnrichService.js.map +1 -0
  130. package/dist/ApolloPeopleEnrich/util/types.d.ts +20 -0
  131. package/dist/ApolloPeopleEnrich/util/types.d.ts.map +1 -0
  132. package/dist/ApolloPeopleEnrich/util/types.js +6 -0
  133. package/dist/ApolloPeopleEnrich/util/types.js.map +1 -0
  134. package/dist/ApolloSearch/node/executor.d.ts +9 -0
  135. package/dist/ApolloSearch/node/executor.d.ts.map +1 -0
  136. package/dist/ApolloSearch/node/executor.js +51 -0
  137. package/dist/ApolloSearch/node/executor.js.map +1 -0
  138. package/dist/ApolloSearch/node/index.d.ts +10 -0
  139. package/dist/ApolloSearch/node/index.d.ts.map +1 -0
  140. package/dist/ApolloSearch/node/index.js +128 -0
  141. package/dist/ApolloSearch/node/index.js.map +1 -0
  142. package/dist/ApolloSearch/service/apolloSearchService.d.ts +6 -0
  143. package/dist/ApolloSearch/service/apolloSearchService.d.ts.map +1 -0
  144. package/dist/ApolloSearch/service/apolloSearchService.js +127 -0
  145. package/dist/ApolloSearch/service/apolloSearchService.js.map +1 -0
  146. package/dist/ApolloSearch/util/types.d.ts +70 -0
  147. package/dist/ApolloSearch/util/types.d.ts.map +1 -0
  148. package/dist/ApolloSearch/util/types.js +6 -0
  149. package/dist/ApolloSearch/util/types.js.map +1 -0
  150. package/dist/ApolloSearchCompany/node/executor.d.ts +9 -0
  151. package/dist/ApolloSearchCompany/node/executor.d.ts.map +1 -0
  152. package/dist/ApolloSearchCompany/node/executor.js +49 -0
  153. package/dist/ApolloSearchCompany/node/executor.js.map +1 -0
  154. package/dist/ApolloSearchCompany/node/index.d.ts +10 -0
  155. package/dist/ApolloSearchCompany/node/index.d.ts.map +1 -0
  156. package/dist/ApolloSearchCompany/node/index.js +128 -0
  157. package/dist/ApolloSearchCompany/node/index.js.map +1 -0
  158. package/dist/ApolloSearchCompany/service/apolloSearchCompanyService.d.ts +7 -0
  159. package/dist/ApolloSearchCompany/service/apolloSearchCompanyService.d.ts.map +1 -0
  160. package/dist/ApolloSearchCompany/service/apolloSearchCompanyService.js +98 -0
  161. package/dist/ApolloSearchCompany/service/apolloSearchCompanyService.js.map +1 -0
  162. package/dist/ApolloSearchCompany/util/types.d.ts +48 -0
  163. package/dist/ApolloSearchCompany/util/types.d.ts.map +1 -0
  164. package/dist/ApolloSearchCompany/util/types.js +6 -0
  165. package/dist/ApolloSearchCompany/util/types.js.map +1 -0
  166. package/dist/Document/node/executor.d.ts +22 -0
  167. package/dist/Document/node/executor.d.ts.map +1 -0
  168. package/dist/Document/node/executor.js +85 -0
  169. package/dist/Document/node/executor.js.map +1 -0
  170. package/dist/Document/node/index.d.ts +10 -0
  171. package/dist/Document/node/index.d.ts.map +1 -0
  172. package/dist/Document/node/index.js +58 -0
  173. package/dist/Document/node/index.js.map +1 -0
  174. package/dist/Document/service/documentCache.d.ts +11 -0
  175. package/dist/Document/service/documentCache.d.ts.map +1 -0
  176. package/dist/Document/service/documentCache.js +166 -0
  177. package/dist/Document/service/documentCache.js.map +1 -0
  178. package/dist/Document/util/types.d.ts +70 -0
  179. package/dist/Document/util/types.d.ts.map +1 -0
  180. package/dist/Document/util/types.js +6 -0
  181. package/dist/Document/util/types.js.map +1 -0
  182. package/dist/DocumentParser/node/executor.d.ts +12 -0
  183. package/dist/DocumentParser/node/executor.d.ts.map +1 -0
  184. package/dist/DocumentParser/node/executor.js +200 -0
  185. package/dist/DocumentParser/node/executor.js.map +1 -0
  186. package/dist/DocumentParser/node/index.d.ts +10 -0
  187. package/dist/DocumentParser/node/index.d.ts.map +1 -0
  188. package/dist/DocumentParser/node/index.js +66 -0
  189. package/dist/DocumentParser/node/index.js.map +1 -0
  190. package/dist/DocumentParser/service/docxParser.d.ts +12 -0
  191. package/dist/DocumentParser/service/docxParser.d.ts.map +1 -0
  192. package/dist/DocumentParser/service/docxParser.js +27 -0
  193. package/dist/DocumentParser/service/docxParser.js.map +1 -0
  194. package/dist/DocumentParser/service/fileTypeDetector.d.ts +19 -0
  195. package/dist/DocumentParser/service/fileTypeDetector.d.ts.map +1 -0
  196. package/dist/DocumentParser/service/fileTypeDetector.js +75 -0
  197. package/dist/DocumentParser/service/fileTypeDetector.js.map +1 -0
  198. package/dist/DocumentParser/service/index.d.ts +5 -0
  199. package/dist/DocumentParser/service/index.d.ts.map +1 -0
  200. package/dist/DocumentParser/service/index.js +14 -0
  201. package/dist/DocumentParser/service/index.js.map +1 -0
  202. package/dist/DocumentParser/service/pdfParser.d.ts +16 -0
  203. package/dist/DocumentParser/service/pdfParser.d.ts.map +1 -0
  204. package/dist/DocumentParser/service/pdfParser.js +30 -0
  205. package/dist/DocumentParser/service/pdfParser.js.map +1 -0
  206. package/dist/DocumentParser/service/txtParser.d.ts +11 -0
  207. package/dist/DocumentParser/service/txtParser.d.ts.map +1 -0
  208. package/dist/DocumentParser/service/txtParser.js +35 -0
  209. package/dist/DocumentParser/service/txtParser.js.map +1 -0
  210. package/dist/DocumentParser/util/hashUtils.d.ts +17 -0
  211. package/dist/DocumentParser/util/hashUtils.d.ts.map +1 -0
  212. package/dist/DocumentParser/util/hashUtils.js +34 -0
  213. package/dist/DocumentParser/util/hashUtils.js.map +1 -0
  214. package/dist/DocumentParser/util/types.d.ts +43 -0
  215. package/dist/DocumentParser/util/types.d.ts.map +1 -0
  216. package/dist/DocumentParser/util/types.js +6 -0
  217. package/dist/DocumentParser/util/types.js.map +1 -0
  218. package/dist/ElevenLabs/node/executor.d.ts +12 -0
  219. package/dist/ElevenLabs/node/executor.d.ts.map +1 -0
  220. package/dist/ElevenLabs/node/executor.js +65 -0
  221. package/dist/ElevenLabs/node/executor.js.map +1 -0
  222. package/dist/ElevenLabs/node/index.d.ts +10 -0
  223. package/dist/ElevenLabs/node/index.d.ts.map +1 -0
  224. package/dist/ElevenLabs/node/index.js +92 -0
  225. package/dist/ElevenLabs/node/index.js.map +1 -0
  226. package/dist/ElevenLabs/service/elevenlabsService.d.ts +27 -0
  227. package/dist/ElevenLabs/service/elevenlabsService.d.ts.map +1 -0
  228. package/dist/ElevenLabs/service/elevenlabsService.js +278 -0
  229. package/dist/ElevenLabs/service/elevenlabsService.js.map +1 -0
  230. package/dist/ElevenLabs/util/types.d.ts +43 -0
  231. package/dist/ElevenLabs/util/types.d.ts.map +1 -0
  232. package/dist/ElevenLabs/util/types.js +7 -0
  233. package/dist/ElevenLabs/util/types.js.map +1 -0
  234. package/dist/GoogleSheet/node/executor.d.ts +21 -0
  235. package/dist/GoogleSheet/node/executor.d.ts.map +1 -0
  236. package/dist/GoogleSheet/node/executor.js +156 -0
  237. package/dist/GoogleSheet/node/executor.js.map +1 -0
  238. package/dist/GoogleSheet/node/index.d.ts +10 -0
  239. package/dist/GoogleSheet/node/index.d.ts.map +1 -0
  240. package/dist/GoogleSheet/node/index.js +90 -0
  241. package/dist/GoogleSheet/node/index.js.map +1 -0
  242. package/dist/GoogleSheet/service/googleSheetsService.d.ts +10 -0
  243. package/dist/GoogleSheet/service/googleSheetsService.d.ts.map +1 -0
  244. package/dist/GoogleSheet/service/googleSheetsService.js +44 -0
  245. package/dist/GoogleSheet/service/googleSheetsService.js.map +1 -0
  246. package/dist/GoogleSheet/util/types.d.ts +39 -0
  247. package/dist/GoogleSheet/util/types.d.ts.map +1 -0
  248. package/dist/GoogleSheet/util/types.js +6 -0
  249. package/dist/GoogleSheet/util/types.js.map +1 -0
  250. package/dist/Hyperbrowser/node/executor.d.ts +12 -0
  251. package/dist/Hyperbrowser/node/executor.d.ts.map +1 -0
  252. package/dist/Hyperbrowser/node/executor.js +67 -0
  253. package/dist/Hyperbrowser/node/executor.js.map +1 -0
  254. package/dist/Hyperbrowser/node/index.d.ts +10 -0
  255. package/dist/Hyperbrowser/node/index.d.ts.map +1 -0
  256. package/dist/Hyperbrowser/node/index.js +93 -0
  257. package/dist/Hyperbrowser/node/index.js.map +1 -0
  258. package/dist/Hyperbrowser/service/hyperbrowserService.d.ts +38 -0
  259. package/dist/Hyperbrowser/service/hyperbrowserService.d.ts.map +1 -0
  260. package/dist/Hyperbrowser/service/hyperbrowserService.js +108 -0
  261. package/dist/Hyperbrowser/service/hyperbrowserService.js.map +1 -0
  262. package/dist/Hyperbrowser/util/types.d.ts +44 -0
  263. package/dist/Hyperbrowser/util/types.d.ts.map +1 -0
  264. package/dist/Hyperbrowser/util/types.js +6 -0
  265. package/dist/Hyperbrowser/util/types.js.map +1 -0
  266. package/dist/PlaidTransactions/node/executor.d.ts +10 -0
  267. package/dist/PlaidTransactions/node/executor.d.ts.map +1 -0
  268. package/dist/PlaidTransactions/node/executor.js +142 -0
  269. package/dist/PlaidTransactions/node/executor.js.map +1 -0
  270. package/dist/PlaidTransactions/node/index.d.ts +10 -0
  271. package/dist/PlaidTransactions/node/index.d.ts.map +1 -0
  272. package/dist/PlaidTransactions/node/index.js +120 -0
  273. package/dist/PlaidTransactions/node/index.js.map +1 -0
  274. package/dist/PlaidTransactions/service/plaidService.d.ts +12 -0
  275. package/dist/PlaidTransactions/service/plaidService.d.ts.map +1 -0
  276. package/dist/PlaidTransactions/service/plaidService.js +179 -0
  277. package/dist/PlaidTransactions/service/plaidService.js.map +1 -0
  278. package/dist/PlaidTransactions/util/types.d.ts +90 -0
  279. package/dist/PlaidTransactions/util/types.d.ts.map +1 -0
  280. package/dist/PlaidTransactions/util/types.js +6 -0
  281. package/dist/PlaidTransactions/util/types.js.map +1 -0
  282. package/dist/SearchWeb/node/executor.d.ts +12 -0
  283. package/dist/SearchWeb/node/executor.d.ts.map +1 -0
  284. package/dist/SearchWeb/node/executor.js +56 -0
  285. package/dist/SearchWeb/node/executor.js.map +1 -0
  286. package/dist/SearchWeb/node/index.d.ts +10 -0
  287. package/dist/SearchWeb/node/index.d.ts.map +1 -0
  288. package/dist/SearchWeb/node/index.js +114 -0
  289. package/dist/SearchWeb/node/index.js.map +1 -0
  290. package/dist/SearchWeb/service/searchWebService.d.ts +23 -0
  291. package/dist/SearchWeb/service/searchWebService.d.ts.map +1 -0
  292. package/dist/SearchWeb/service/searchWebService.js +146 -0
  293. package/dist/SearchWeb/service/searchWebService.js.map +1 -0
  294. package/dist/SearchWeb/util/types.d.ts +50 -0
  295. package/dist/SearchWeb/util/types.d.ts.map +1 -0
  296. package/dist/SearchWeb/util/types.js +6 -0
  297. package/dist/SearchWeb/util/types.js.map +1 -0
  298. package/dist/SpatialIngest/node/executor.d.ts +8 -0
  299. package/dist/SpatialIngest/node/executor.d.ts.map +1 -0
  300. package/dist/SpatialIngest/node/executor.js +58 -0
  301. package/dist/SpatialIngest/node/executor.js.map +1 -0
  302. package/dist/SpatialIngest/node/index.d.ts +10 -0
  303. package/dist/SpatialIngest/node/index.d.ts.map +1 -0
  304. package/dist/SpatialIngest/node/index.js +99 -0
  305. package/dist/SpatialIngest/node/index.js.map +1 -0
  306. package/dist/SpatialIngest/service/spatialIngestService.d.ts +29 -0
  307. package/dist/SpatialIngest/service/spatialIngestService.d.ts.map +1 -0
  308. package/dist/SpatialIngest/service/spatialIngestService.js +306 -0
  309. package/dist/SpatialIngest/service/spatialIngestService.js.map +1 -0
  310. package/dist/SpatialIngest/util/types.d.ts +26 -0
  311. package/dist/SpatialIngest/util/types.d.ts.map +1 -0
  312. package/dist/SpatialIngest/util/types.js +3 -0
  313. package/dist/SpatialIngest/util/types.js.map +1 -0
  314. package/dist/credentials/index.d.ts +141 -0
  315. package/dist/credentials/index.d.ts.map +1 -0
  316. package/dist/credentials/index.js +180 -0
  317. package/dist/credentials/index.js.map +1 -0
  318. package/dist/index.d.ts +3 -0
  319. package/dist/index.d.ts.map +1 -0
  320. package/dist/index.js +104 -0
  321. package/dist/index.js.map +1 -0
  322. package/dist/shared/platform.d.ts +11 -0
  323. package/dist/shared/platform.d.ts.map +1 -0
  324. package/dist/shared/platform.js +21 -0
  325. package/dist/shared/platform.js.map +1 -0
  326. package/package.json +53 -0
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Type definitions for Abyssale node
3
+ */
4
+ export interface AbyssaleElementOverride {
5
+ payload?: string;
6
+ image_url?: string;
7
+ background_color?: string;
8
+ color?: string;
9
+ border_color?: string;
10
+ border_radius?: number;
11
+ [key: string]: any;
12
+ }
13
+ export type AbyssaleOutputType = "image" | "pdf" | "video";
14
+ export interface AbyssaleConfig {
15
+ templateId: string;
16
+ outputType?: AbyssaleOutputType;
17
+ formatName?: string;
18
+ compressionLevel?: number;
19
+ elements?: string | Record<string, AbyssaleElementOverride>;
20
+ multiPage?: boolean;
21
+ pageCount?: number;
22
+ }
23
+ export interface AbyssaleFile {
24
+ type: string;
25
+ url: string;
26
+ cdn_url: string;
27
+ filename: string;
28
+ }
29
+ export interface AbyssaleFormat {
30
+ id: string;
31
+ width: number;
32
+ height: number;
33
+ }
34
+ export interface AbyssaleTemplate {
35
+ id: string;
36
+ name: string;
37
+ type: string;
38
+ created_at: number;
39
+ updated_at: number;
40
+ category_name?: string;
41
+ }
42
+ export interface AbyssaleOutput {
43
+ id: string;
44
+ file: AbyssaleFile;
45
+ format: AbyssaleFormat;
46
+ template: AbyssaleTemplate;
47
+ }
48
+ export interface AbyssaleExecutorOutput {
49
+ __outputs: {
50
+ output: {
51
+ url: string;
52
+ cdnUrl: string;
53
+ fileType: string;
54
+ filename: string;
55
+ width: number;
56
+ height: number;
57
+ templateId: string;
58
+ templateName: string;
59
+ };
60
+ };
61
+ }
62
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Abyssale/util/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE;QACT,MAAM,EAAE;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;CACH"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for Abyssale node
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Abyssale/util/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,7 @@
1
+ import { PromiseNode, type NodeExecutionContext } from "@gravity-platform/plugin-base";
2
+ import { AirtableInsertConfig, AirtableInsertExecutorOutput } from "../util/types";
3
+ export default class AirtableInsertExecutor extends PromiseNode {
4
+ constructor();
5
+ protected executeNode(inputs: Record<string, any>, config: AirtableInsertConfig, context: NodeExecutionContext): Promise<AirtableInsertExecutorOutput>;
6
+ }
7
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/AirtableInsert/node/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAKnF,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,WAAW;;cAK7C,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,4BAA4B,CAAC;CAmBzC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const plugin_base_1 = require("@gravity-platform/plugin-base");
4
+ const platform_1 = require("../../shared/platform");
5
+ const airtableInsertService_1 = require("../service/airtableInsertService");
6
+ const NODE_TYPE = "AirtableInsert";
7
+ class AirtableInsertExecutor extends plugin_base_1.PromiseNode {
8
+ constructor() {
9
+ super(NODE_TYPE);
10
+ }
11
+ async executeNode(inputs, config, context) {
12
+ const logger = (0, platform_1.createLogger)("AirtableInsert");
13
+ try {
14
+ const result = await (0, airtableInsertService_1.insertAirtableRecords)(config, context);
15
+ logger.info("Airtable insert completed", { inserted: result.inserted, skipped: result.skipped });
16
+ return {
17
+ __outputs: {
18
+ inserted: result.inserted,
19
+ skipped: result.skipped,
20
+ total: result.total,
21
+ errors: result.errors,
22
+ },
23
+ };
24
+ }
25
+ catch (error) {
26
+ logger.error("Airtable insert failed", { error });
27
+ throw error;
28
+ }
29
+ }
30
+ }
31
+ exports.default = AirtableInsertExecutor;
32
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/AirtableInsert/node/executor.ts"],"names":[],"mappings":";;AAAA,+DAAuF;AACvF,oDAAqD;AAErD,4EAAyE;AAEzE,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAEnC,MAAqB,sBAAuB,SAAQ,yBAAW;IAC7D;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,WAAW,CACzB,MAA2B,EAC3B,MAA4B,EAC5B,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAA,uBAAY,EAAC,gBAAgB,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,6CAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,OAAO;gBACL,SAAS,EAAE;oBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA5BD,yCA4BC"}
@@ -0,0 +1,10 @@
1
+ import { type EnhancedNodeDefinition } from "@gravity-platform/plugin-base";
2
+ import AirtableInsertExecutor from "./executor";
3
+ export declare const NODE_TYPE = "AirtableInsert";
4
+ declare function createNodeDefinition(): EnhancedNodeDefinition;
5
+ export declare const AirtableInsertNode: {
6
+ definition: any;
7
+ executor: typeof AirtableInsertExecutor;
8
+ };
9
+ export { createNodeDefinition };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/AirtableInsert/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,sBAAsB,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,iBAAS,oBAAoB,IAAI,sBAAsB,CAkFtD;AAID,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AirtableInsertNode = exports.NODE_TYPE = void 0;
7
+ exports.createNodeDefinition = createNodeDefinition;
8
+ const plugin_base_1 = require("@gravity-platform/plugin-base");
9
+ const executor_1 = __importDefault(require("./executor"));
10
+ exports.NODE_TYPE = "AirtableInsert";
11
+ function createNodeDefinition() {
12
+ return {
13
+ packageVersion: "1.0.0",
14
+ type: exports.NODE_TYPE,
15
+ name: "Airtable Insert",
16
+ description: "Append records to an Airtable table with optional dedup. Accepts an object or array of objects.",
17
+ category: "Storage",
18
+ color: "#18BFFF",
19
+ logoUrl: "https://res.cloudinary.com/sonik/image/upload/v1775377626/gravity/icons/airtable.png",
20
+ inputs: [
21
+ {
22
+ name: "signal",
23
+ type: plugin_base_1.NodeInputType.OBJECT,
24
+ description: "Records to insert — object or array of objects",
25
+ },
26
+ ],
27
+ outputs: [
28
+ {
29
+ name: "inserted",
30
+ type: plugin_base_1.NodeInputType.NUMBER,
31
+ description: "Number of records inserted",
32
+ },
33
+ {
34
+ name: "skipped",
35
+ type: plugin_base_1.NodeInputType.NUMBER,
36
+ description: "Number of records skipped (duplicates)",
37
+ },
38
+ {
39
+ name: "total",
40
+ type: plugin_base_1.NodeInputType.NUMBER,
41
+ description: "Total records received",
42
+ },
43
+ {
44
+ name: "errors",
45
+ type: plugin_base_1.NodeInputType.ARRAY,
46
+ description: "Any batch errors",
47
+ },
48
+ ],
49
+ configSchema: {
50
+ type: "object",
51
+ required: ["baseId", "tableId", "records"],
52
+ properties: {
53
+ baseId: {
54
+ type: "string",
55
+ title: "Base ID",
56
+ description: "Airtable Base ID (starts with 'app', found in the API docs for your base)",
57
+ default: "",
58
+ "ui:field": "template",
59
+ },
60
+ tableId: {
61
+ type: "string",
62
+ title: "Table Name or ID",
63
+ description: "Table name (e.g. 'Companies') or table ID (starts with 'tbl')",
64
+ default: "",
65
+ "ui:field": "template",
66
+ },
67
+ records: {
68
+ type: "object",
69
+ title: "Records",
70
+ description: "Object or array of objects to insert. Keys must match Airtable column names exactly.",
71
+ default: {},
72
+ "ui:field": "template",
73
+ },
74
+ dedupField: {
75
+ type: "string",
76
+ title: "Dedup Field (optional)",
77
+ description: "Field name to check for duplicates before inserting (e.g. 'id' or 'primary_domain'). Leave blank to skip dedup.",
78
+ default: "",
79
+ },
80
+ },
81
+ },
82
+ credentials: [
83
+ {
84
+ name: "airtableCredential",
85
+ required: true,
86
+ },
87
+ ],
88
+ capabilities: {
89
+ isTrigger: false,
90
+ },
91
+ };
92
+ }
93
+ const definition = createNodeDefinition();
94
+ exports.AirtableInsertNode = {
95
+ definition,
96
+ executor: executor_1.default,
97
+ };
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/AirtableInsert/node/index.ts"],"names":[],"mappings":";;;;;;AAgGS,oDAAoB;AAhG7B,+DAA2F;AAC3F,0DAAgD;AAEnC,QAAA,SAAS,GAAG,gBAAgB,CAAC;AAE1C,SAAS,oBAAoB;IAC3B,OAAO;QACL,cAAc,EAAE,OAAO;QACvB,IAAI,EAAE,iBAAS;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iGAAiG;QAC9G,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,sFAAsF;QAC/F,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,2BAAa,CAAC,MAAM;gBAC1B,WAAW,EAAE,gDAAgD;aAC9D;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,2BAAa,CAAC,MAAM;gBAC1B,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,2BAAa,CAAC,MAAM;gBAC1B,WAAW,EAAE,wCAAwC;aACtD;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,2BAAa,CAAC,MAAM;gBAC1B,WAAW,EAAE,wBAAwB;aACtC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,2BAAa,CAAC,KAAK;gBACzB,WAAW,EAAE,kBAAkB;aAChC;SACF;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;YAC1C,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,2EAA2E;oBACxF,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,UAAU;iBACvB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,kBAAkB;oBACzB,WAAW,EAAE,+DAA+D;oBAC5E,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,UAAU;iBACvB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,sFAAsF;oBACnG,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,UAAU;iBACvB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,wBAAwB;oBAC/B,WAAW,EACT,iHAAiH;oBACnH,OAAO,EAAE,EAAE;iBACZ;aACF;SACF;QACD,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,YAAY,EAAE;YACZ,SAAS,EAAE,KAAK;SACjB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;AAE7B,QAAA,kBAAkB,GAAG;IAChC,UAAU;IACV,QAAQ,EAAE,kBAAsB;CACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { AirtableInsertConfig } from "../util/types";
2
+ export declare function insertAirtableRecords(config: AirtableInsertConfig, context: any): Promise<{
3
+ inserted: number;
4
+ skipped: number;
5
+ total: number;
6
+ errors: string[];
7
+ }>;
8
+ //# sourceMappingURL=airtableInsertService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"airtableInsertService.d.ts","sourceRoot":"","sources":["../../../src/AirtableInsert/service/airtableInsertService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIrD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,GAAG,GACX,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0GjF"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertAirtableRecords = insertAirtableRecords;
4
+ const platform_1 = require("../../shared/platform");
5
+ const AIRTABLE_API_BASE = "https://api.airtable.com/v0";
6
+ async function insertAirtableRecords(config, context) {
7
+ const logger = (0, platform_1.createLogger)("AirtableInsert");
8
+ const credentials = context.credentials?.airtableCredential || context.credentials;
9
+ const pat = credentials?.personalAccessToken;
10
+ if (!pat) {
11
+ throw new Error("Airtable Personal Access Token not found in credentials");
12
+ }
13
+ const { baseId, tableId, dedupField } = config;
14
+ const rawRecords = config.records;
15
+ const rawArray = Array.isArray(rawRecords) ? rawRecords : [rawRecords];
16
+ if (rawArray.length === 0) {
17
+ return { inserted: 0, skipped: 0, total: 0, errors: [] };
18
+ }
19
+ const RESERVED_FIELDS = { id: "apollo_id" };
20
+ const records = rawArray.map((r) => {
21
+ const remapped = {};
22
+ for (const [k, v] of Object.entries(r)) {
23
+ remapped[RESERVED_FIELDS[k] ?? k] = v;
24
+ }
25
+ return remapped;
26
+ });
27
+ const effectiveDedupField = config.dedupField && RESERVED_FIELDS[config.dedupField] ? RESERVED_FIELDS[config.dedupField] : config.dedupField;
28
+ const headers = {
29
+ Authorization: `Bearer ${pat}`,
30
+ "Content-Type": "application/json",
31
+ };
32
+ let existingValues = new Set();
33
+ if (effectiveDedupField && effectiveDedupField.trim()) {
34
+ logger.info("Fetching existing records for dedup", { baseId, tableId, dedupField: effectiveDedupField });
35
+ try {
36
+ let offset;
37
+ do {
38
+ const params = new URLSearchParams({
39
+ fields: [effectiveDedupField],
40
+ ...(offset ? { offset } : {}),
41
+ });
42
+ const res = await fetch(`${AIRTABLE_API_BASE}/${baseId}/${encodeURIComponent(tableId)}?${params}`, { headers });
43
+ if (res.ok) {
44
+ const data = await res.json();
45
+ for (const rec of data.records || []) {
46
+ const val = rec.fields?.[effectiveDedupField];
47
+ if (val)
48
+ existingValues.add(String(val));
49
+ }
50
+ offset = data.offset;
51
+ }
52
+ else {
53
+ break;
54
+ }
55
+ } while (offset);
56
+ logger.info(`Found ${existingValues.size} existing values for dedup`);
57
+ }
58
+ catch (e) {
59
+ logger.warn("Dedup fetch failed, proceeding without dedup", { error: e.message });
60
+ }
61
+ }
62
+ const toInsert = effectiveDedupField && effectiveDedupField.trim()
63
+ ? records.filter((r) => !existingValues.has(String(r[effectiveDedupField] ?? "")))
64
+ : records;
65
+ const skipped = records.length - toInsert.length;
66
+ let inserted = 0;
67
+ const errors = [];
68
+ const BATCH_SIZE = 10;
69
+ for (let i = 0; i < toInsert.length; i += BATCH_SIZE) {
70
+ const batch = toInsert.slice(i, i + BATCH_SIZE);
71
+ const body = {
72
+ records: batch.map((r) => ({ fields: r })),
73
+ };
74
+ try {
75
+ const res = await fetch(`${AIRTABLE_API_BASE}/${baseId}/${encodeURIComponent(tableId)}`, {
76
+ method: "POST",
77
+ headers,
78
+ body: JSON.stringify(body),
79
+ });
80
+ if (!res.ok) {
81
+ const errText = await res.text();
82
+ errors.push(`Batch ${i / BATCH_SIZE + 1}: ${res.status} ${errText}`);
83
+ logger.error("Airtable batch insert failed", { status: res.status, error: errText });
84
+ }
85
+ else {
86
+ const data = await res.json();
87
+ inserted += data.records?.length ?? batch.length;
88
+ logger.info(`Inserted batch ${i / BATCH_SIZE + 1}`, { count: data.records?.length });
89
+ }
90
+ }
91
+ catch (e) {
92
+ errors.push(`Batch ${i / BATCH_SIZE + 1}: ${e.message}`);
93
+ logger.error("Airtable batch insert threw", { error: e.message });
94
+ }
95
+ }
96
+ logger.info("Airtable insert complete", { inserted, skipped, total: records.length, errors: errors.length });
97
+ return { inserted, skipped, total: records.length, errors };
98
+ }
99
+ //# sourceMappingURL=airtableInsertService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"airtableInsertService.js","sourceRoot":"","sources":["../../../src/AirtableInsert/service/airtableInsertService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface AirtableInsertConfig {
2
+ baseId: string;
3
+ tableId: string;
4
+ records: any;
5
+ dedupField: string;
6
+ }
7
+ export interface AirtableInsertExecutorOutput {
8
+ __outputs: {
9
+ inserted: number;
10
+ skipped: number;
11
+ total: number;
12
+ errors: string[];
13
+ };
14
+ }
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/AirtableInsert/util/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/AirtableInsert/util/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { ApifyResultsConfig, ApifyResultsState } from "../util/types";
2
+ import { CallbackNode } from "../../shared/platform";
3
+ export declare class ApifyResultsExecutor extends CallbackNode<ApifyResultsConfig, ApifyResultsState> {
4
+ constructor();
5
+ /**
6
+ * Initialize state for ApifyResults
7
+ */
8
+ initializeState(inputs: any): ApifyResultsState & {
9
+ isComplete?: boolean;
10
+ };
11
+ /**
12
+ * Handle events and fetch/emit Apify results
13
+ */
14
+ handleEvent(event: {
15
+ type: string;
16
+ inputs?: any;
17
+ config?: any;
18
+ }, state: ApifyResultsState & {
19
+ isComplete?: boolean;
20
+ }, emit: (output: any) => void): Promise<ApifyResultsState & {
21
+ isComplete?: boolean;
22
+ }>;
23
+ /**
24
+ * Sanitize Apify item to remove large fields that cause JSON parsing errors
25
+ */
26
+ private sanitizeItem;
27
+ /**
28
+ * Specify that 'continue' is a trigger input
29
+ */
30
+ protected getTriggerInputs(): string[] | null;
31
+ }
32
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/ApifyResults/node/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAyC,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAgB,MAAM,uBAAuB,CAAC;AAMnE,qBAAa,oBAAqB,SAAQ,YAAY,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;;IAK3F;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IAa1E;;OAEG;IACG,WAAW,CACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,CAAA;KAAE,EACnD,KAAK,EAAE,iBAAiB,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,EACnD,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAC1B,OAAO,CAAC,iBAAiB,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAmIxD;;OAEG;IACH,OAAO,CAAC,YAAY;IAqDpB;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAE,GAAG,IAAI;CAI9C"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApifyResultsExecutor = void 0;
4
+ const platform_1 = require("../../shared/platform");
5
+ const apifyService_1 = require("../service/apifyService");
6
+ const crypto_1 = require("crypto");
7
+ const NODE_TYPE = "ApifyResults";
8
+ class ApifyResultsExecutor extends platform_1.CallbackNode {
9
+ constructor() {
10
+ super(NODE_TYPE);
11
+ }
12
+ /**
13
+ * Initialize state for ApifyResults
14
+ */
15
+ initializeState(inputs) {
16
+ // Get resolved config from the executor (set by CallbackNodeActor)
17
+ const config = this.resolvedConfig;
18
+ return {
19
+ items: [],
20
+ currentIndex: 0,
21
+ totalItems: 0,
22
+ runId: config?.runId || "",
23
+ isComplete: false,
24
+ };
25
+ }
26
+ /**
27
+ * Handle events and fetch/emit Apify results
28
+ */
29
+ async handleEvent(event, state, emit) {
30
+ const logger = (0, platform_1.createLogger)("ApifyResults");
31
+ const { inputs, config } = event;
32
+ const resolvedConfig = config;
33
+ // Debug logging to understand input structure
34
+ logger.info(`ApifyResults: Received event`, {
35
+ eventType: event.type,
36
+ inputs: inputs ? Object.keys(inputs) : [],
37
+ config: config ? Object.keys(config) : [],
38
+ hasRunId: !!resolvedConfig?.runId,
39
+ runIdValue: resolvedConfig?.runId,
40
+ stateItemsLength: state.items.length,
41
+ isComplete: state.isComplete,
42
+ });
43
+ // If already complete, don't process any more events
44
+ if (state.isComplete) {
45
+ logger.info(`ApifyResults: Already completed, ignoring event`);
46
+ return state;
47
+ }
48
+ // Check if this is a "continue" signal to advance iteration
49
+ if (inputs?.continue !== undefined && state.items.length > 0) {
50
+ logger.info(`ApifyResults: Received 'continue' signal`);
51
+ // Check if we've exhausted all items
52
+ if (state.currentIndex >= state.items.length) {
53
+ logger.info(`ApifyResults: All items processed, marking complete`);
54
+ return {
55
+ ...state,
56
+ isComplete: true,
57
+ };
58
+ }
59
+ // Process next item
60
+ const currentItem = state.items[state.currentIndex];
61
+ const hasMore = state.currentIndex < state.items.length - 1;
62
+ // Create a summary for logging
63
+ const itemSummary = {
64
+ url: currentItem.url || "No URL",
65
+ status: currentItem.crawl?.httpStatusCode || "Unknown",
66
+ depth: currentItem.crawl?.depth ?? "Unknown",
67
+ };
68
+ logger.info(`ApifyResults: Emitting item ${state.currentIndex + 1}/${state.items.length}`, {
69
+ ...itemSummary,
70
+ hasMore,
71
+ });
72
+ // Emit sanitized item
73
+ const sanitizedItem = this.sanitizeItem(currentItem);
74
+ emit({
75
+ __outputs: {
76
+ item: sanitizedItem,
77
+ index: state.currentIndex,
78
+ total: state.items.length,
79
+ hasMore,
80
+ },
81
+ });
82
+ // Return updated state
83
+ return {
84
+ ...state,
85
+ currentIndex: state.currentIndex + 1,
86
+ isComplete: state.currentIndex + 1 >= state.items.length,
87
+ };
88
+ }
89
+ // If we haven't fetched items yet, fetch them
90
+ if (state.items.length === 0 && resolvedConfig?.runId) {
91
+ logger.info(`ApifyResults: Fetching results for run ${resolvedConfig.runId}`);
92
+ try {
93
+ // Get execution context from the executor (set by CallbackNodeActor)
94
+ const executionContext = this.executionContext;
95
+ if (!executionContext) {
96
+ throw new Error("Execution context not available");
97
+ }
98
+ const results = await (0, apifyService_1.fetchApifyRunResults)(resolvedConfig.runId, executionContext);
99
+ if (!results || !Array.isArray(results)) {
100
+ logger.error(`ApifyResults: Invalid results from Apify`, {
101
+ results: typeof results,
102
+ });
103
+ throw new Error("Invalid results from Apify API");
104
+ }
105
+ logger.info(`ApifyResults: Fetched ${results.length} items from Apify`);
106
+ // If we have items, emit the first one immediately
107
+ if (results.length > 0) {
108
+ const firstItem = results[0];
109
+ const sanitizedItem = this.sanitizeItem(firstItem);
110
+ emit({
111
+ __outputs: {
112
+ item: sanitizedItem,
113
+ index: 0,
114
+ total: results.length,
115
+ hasMore: results.length > 1,
116
+ },
117
+ });
118
+ logger.info(`ApifyResults: Emitted first item (1/${results.length})`);
119
+ }
120
+ // Store items in state and mark first as already emitted
121
+ return {
122
+ ...state,
123
+ items: results,
124
+ totalItems: results.length,
125
+ currentIndex: 1, // Start at 1 since we already emitted the first
126
+ isComplete: results.length <= 1, // Complete if 0 or 1 items
127
+ };
128
+ }
129
+ catch (error) {
130
+ logger.error(`ApifyResults: Failed to fetch results`, {
131
+ error: error instanceof Error ? error.message : "Unknown error",
132
+ runId: resolvedConfig.runId,
133
+ });
134
+ throw error;
135
+ }
136
+ }
137
+ // Default case: no action taken, just return current state
138
+ logger.info(`ApifyResults: No action taken, waiting for continue signal`);
139
+ return state;
140
+ }
141
+ /**
142
+ * Sanitize Apify item to remove large fields that cause JSON parsing errors
143
+ */
144
+ sanitizeItem(item) {
145
+ // Create a shallow copy and remove crawl
146
+ const { crawl, ...itemWithoutCrawl } = item;
147
+ const sanitized = { ...itemWithoutCrawl };
148
+ // Remove headers from metadata if present
149
+ if (sanitized.metadata) {
150
+ const { headers, ...metadataWithoutHeaders } = sanitized.metadata;
151
+ sanitized.metadata = metadataWithoutHeaders;
152
+ }
153
+ // Add universalId based on URL hash (first 12 chars of SHA256)
154
+ if (sanitized.url) {
155
+ const fullHash = (0, crypto_1.createHash)("sha256").update(sanitized.url).digest("hex");
156
+ sanitized.universalId = fullHash.substring(0, 12);
157
+ }
158
+ // Create content hash using all available metadata and text
159
+ const contentParts = [];
160
+ // Add URL
161
+ if (sanitized.url)
162
+ contentParts.push(sanitized.url);
163
+ // Add text content
164
+ if (sanitized.text)
165
+ contentParts.push(sanitized.text);
166
+ // Add metadata fields
167
+ if (sanitized.metadata) {
168
+ if (sanitized.metadata.title)
169
+ contentParts.push(sanitized.metadata.title);
170
+ if (sanitized.metadata.description)
171
+ contentParts.push(sanitized.metadata.description);
172
+ if (sanitized.metadata.canonicalUrl)
173
+ contentParts.push(sanitized.metadata.canonicalUrl);
174
+ if (sanitized.metadata.author)
175
+ contentParts.push(sanitized.metadata.author);
176
+ if (sanitized.metadata.keywords)
177
+ contentParts.push(sanitized.metadata.keywords);
178
+ if (sanitized.metadata.languageCode)
179
+ contentParts.push(sanitized.metadata.languageCode);
180
+ // Add OpenGraph data if present
181
+ if (sanitized.metadata.openGraph && Array.isArray(sanitized.metadata.openGraph)) {
182
+ sanitized.metadata.openGraph.forEach((og) => {
183
+ if (og.content)
184
+ contentParts.push(og.content);
185
+ });
186
+ }
187
+ }
188
+ // Generate content hash from all parts
189
+ if (contentParts.length > 0) {
190
+ const contentString = contentParts.join("|");
191
+ const contentHash = (0, crypto_1.createHash)("sha256").update(contentString).digest("hex");
192
+ sanitized.contentId = contentHash.substring(0, 12);
193
+ }
194
+ return sanitized;
195
+ }
196
+ /**
197
+ * Specify that 'continue' is a trigger input
198
+ */
199
+ getTriggerInputs() {
200
+ return ["continue"];
201
+ }
202
+ }
203
+ exports.ApifyResultsExecutor = ApifyResultsExecutor;
204
+ //# sourceMappingURL=executor.js.map