@nodetool-ai/base-nodes 0.7.0-rc.11

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 (353) hide show
  1. package/dist/index.d.ts +72 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +270 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/lib/audio-wav.d.ts +66 -0
  6. package/dist/lib/audio-wav.d.ts.map +1 -0
  7. package/dist/lib/audio-wav.js +215 -0
  8. package/dist/lib/audio-wav.js.map +1 -0
  9. package/dist/nodes/agents.d.ts +253 -0
  10. package/dist/nodes/agents.d.ts.map +1 -0
  11. package/dist/nodes/agents.js +2784 -0
  12. package/dist/nodes/agents.js.map +1 -0
  13. package/dist/nodes/anthropic.d.ts +26 -0
  14. package/dist/nodes/anthropic.d.ts.map +1 -0
  15. package/dist/nodes/anthropic.js +133 -0
  16. package/dist/nodes/anthropic.js.map +1 -0
  17. package/dist/nodes/apify.d.ts +120 -0
  18. package/dist/nodes/apify.d.ts.map +1 -0
  19. package/dist/nodes/apify.js +618 -0
  20. package/dist/nodes/apify.js.map +1 -0
  21. package/dist/nodes/audio.d.ts +301 -0
  22. package/dist/nodes/audio.d.ts.map +1 -0
  23. package/dist/nodes/audio.js +1274 -0
  24. package/dist/nodes/audio.js.map +1 -0
  25. package/dist/nodes/code-node.d.ts +34 -0
  26. package/dist/nodes/code-node.d.ts.map +1 -0
  27. package/dist/nodes/code-node.js +343 -0
  28. package/dist/nodes/code-node.js.map +1 -0
  29. package/dist/nodes/code.d.ts +301 -0
  30. package/dist/nodes/code.d.ts.map +1 -0
  31. package/dist/nodes/code.js +850 -0
  32. package/dist/nodes/code.js.map +1 -0
  33. package/dist/nodes/compare.d.ts +18 -0
  34. package/dist/nodes/compare.d.ts.map +1 -0
  35. package/dist/nodes/compare.js +122 -0
  36. package/dist/nodes/compare.js.map +1 -0
  37. package/dist/nodes/constant.d.ts +315 -0
  38. package/dist/nodes/constant.d.ts.map +1 -0
  39. package/dist/nodes/constant.js +715 -0
  40. package/dist/nodes/constant.js.map +1 -0
  41. package/dist/nodes/control.d.ts +83 -0
  42. package/dist/nodes/control.d.ts.map +1 -0
  43. package/dist/nodes/control.js +212 -0
  44. package/dist/nodes/control.js.map +1 -0
  45. package/dist/nodes/data.d.ts +369 -0
  46. package/dist/nodes/data.d.ts.map +1 -0
  47. package/dist/nodes/data.js +1590 -0
  48. package/dist/nodes/data.js.map +1 -0
  49. package/dist/nodes/document.d.ts +134 -0
  50. package/dist/nodes/document.d.ts.map +1 -0
  51. package/dist/nodes/document.js +984 -0
  52. package/dist/nodes/document.js.map +1 -0
  53. package/dist/nodes/extended-placeholders.d.ts +6 -0
  54. package/dist/nodes/extended-placeholders.d.ts.map +1 -0
  55. package/dist/nodes/extended-placeholders.js +19 -0
  56. package/dist/nodes/extended-placeholders.js.map +1 -0
  57. package/dist/nodes/gemini.d.ts +109 -0
  58. package/dist/nodes/gemini.d.ts.map +1 -0
  59. package/dist/nodes/gemini.js +861 -0
  60. package/dist/nodes/gemini.js.map +1 -0
  61. package/dist/nodes/generators.d.ts +84 -0
  62. package/dist/nodes/generators.d.ts.map +1 -0
  63. package/dist/nodes/generators.js +937 -0
  64. package/dist/nodes/generators.js.map +1 -0
  65. package/dist/nodes/image.d.ts +232 -0
  66. package/dist/nodes/image.d.ts.map +1 -0
  67. package/dist/nodes/image.js +1395 -0
  68. package/dist/nodes/image.js.map +1 -0
  69. package/dist/nodes/input.d.ts +445 -0
  70. package/dist/nodes/input.d.ts.map +1 -0
  71. package/dist/nodes/input.js +1459 -0
  72. package/dist/nodes/input.js.map +1 -0
  73. package/dist/nodes/kie-dynamic.d.ts +31 -0
  74. package/dist/nodes/kie-dynamic.d.ts.map +1 -0
  75. package/dist/nodes/kie-dynamic.js +270 -0
  76. package/dist/nodes/kie-dynamic.js.map +1 -0
  77. package/dist/nodes/lib-audio-dsp.d.ts +85 -0
  78. package/dist/nodes/lib-audio-dsp.d.ts.map +1 -0
  79. package/dist/nodes/lib-audio-dsp.js +450 -0
  80. package/dist/nodes/lib-audio-dsp.js.map +1 -0
  81. package/dist/nodes/lib-audio-effects.d.ts +116 -0
  82. package/dist/nodes/lib-audio-effects.d.ts.map +1 -0
  83. package/dist/nodes/lib-audio-effects.js +905 -0
  84. package/dist/nodes/lib-audio-effects.js.map +1 -0
  85. package/dist/nodes/lib-browser.d.ts +99 -0
  86. package/dist/nodes/lib-browser.d.ts.map +1 -0
  87. package/dist/nodes/lib-browser.js +692 -0
  88. package/dist/nodes/lib-browser.js.map +1 -0
  89. package/dist/nodes/lib-charts.d.ts +20 -0
  90. package/dist/nodes/lib-charts.d.ts.map +1 -0
  91. package/dist/nodes/lib-charts.js +245 -0
  92. package/dist/nodes/lib-charts.js.map +1 -0
  93. package/dist/nodes/lib-datetime.d.ts +108 -0
  94. package/dist/nodes/lib-datetime.d.ts.map +1 -0
  95. package/dist/nodes/lib-datetime.js +421 -0
  96. package/dist/nodes/lib-datetime.js.map +1 -0
  97. package/dist/nodes/lib-doc-convert.d.ts +19 -0
  98. package/dist/nodes/lib-doc-convert.d.ts.map +1 -0
  99. package/dist/nodes/lib-doc-convert.js +257 -0
  100. package/dist/nodes/lib-doc-convert.js.map +1 -0
  101. package/dist/nodes/lib-doc-transform.d.ts +39 -0
  102. package/dist/nodes/lib-doc-transform.d.ts.map +1 -0
  103. package/dist/nodes/lib-doc-transform.js +335 -0
  104. package/dist/nodes/lib-doc-transform.js.map +1 -0
  105. package/dist/nodes/lib-docx.d.ts +106 -0
  106. package/dist/nodes/lib-docx.d.ts.map +1 -0
  107. package/dist/nodes/lib-docx.js +595 -0
  108. package/dist/nodes/lib-docx.js.map +1 -0
  109. package/dist/nodes/lib-epub.d.ts +55 -0
  110. package/dist/nodes/lib-epub.d.ts.map +1 -0
  111. package/dist/nodes/lib-epub.js +220 -0
  112. package/dist/nodes/lib-epub.js.map +1 -0
  113. package/dist/nodes/lib-excel.d.ts +74 -0
  114. package/dist/nodes/lib-excel.d.ts.map +1 -0
  115. package/dist/nodes/lib-excel.js +448 -0
  116. package/dist/nodes/lib-excel.js.map +1 -0
  117. package/dist/nodes/lib-graphql.d.ts +66 -0
  118. package/dist/nodes/lib-graphql.d.ts.map +1 -0
  119. package/dist/nodes/lib-graphql.js +333 -0
  120. package/dist/nodes/lib-graphql.js.map +1 -0
  121. package/dist/nodes/lib-grid.d.ts +27 -0
  122. package/dist/nodes/lib-grid.d.ts.map +1 -0
  123. package/dist/nodes/lib-grid.js +172 -0
  124. package/dist/nodes/lib-grid.js.map +1 -0
  125. package/dist/nodes/lib-html-parse.d.ts +108 -0
  126. package/dist/nodes/lib-html-parse.d.ts.map +1 -0
  127. package/dist/nodes/lib-html-parse.js +365 -0
  128. package/dist/nodes/lib-html-parse.js.map +1 -0
  129. package/dist/nodes/lib-http.d.ts +98 -0
  130. package/dist/nodes/lib-http.d.ts.map +1 -0
  131. package/dist/nodes/lib-http.js +267 -0
  132. package/dist/nodes/lib-http.js.map +1 -0
  133. package/dist/nodes/lib-image-color-grading.d.ts +3 -0
  134. package/dist/nodes/lib-image-color-grading.d.ts.map +1 -0
  135. package/dist/nodes/lib-image-color-grading.js +1386 -0
  136. package/dist/nodes/lib-image-color-grading.js.map +1 -0
  137. package/dist/nodes/lib-image-draw.d.ts +3 -0
  138. package/dist/nodes/lib-image-draw.d.ts.map +1 -0
  139. package/dist/nodes/lib-image-draw.js +470 -0
  140. package/dist/nodes/lib-image-draw.js.map +1 -0
  141. package/dist/nodes/lib-image-enhance.d.ts +3 -0
  142. package/dist/nodes/lib-image-enhance.d.ts.map +1 -0
  143. package/dist/nodes/lib-image-enhance.js +731 -0
  144. package/dist/nodes/lib-image-enhance.js.map +1 -0
  145. package/dist/nodes/lib-image-filter.d.ts +3 -0
  146. package/dist/nodes/lib-image-filter.d.ts.map +1 -0
  147. package/dist/nodes/lib-image-filter.js +684 -0
  148. package/dist/nodes/lib-image-filter.js.map +1 -0
  149. package/dist/nodes/lib-image-utils.d.ts +24 -0
  150. package/dist/nodes/lib-image-utils.d.ts.map +1 -0
  151. package/dist/nodes/lib-image-utils.js +150 -0
  152. package/dist/nodes/lib-image-utils.js.map +1 -0
  153. package/dist/nodes/lib-mail.d.ts +74 -0
  154. package/dist/nodes/lib-mail.d.ts.map +1 -0
  155. package/dist/nodes/lib-mail.js +452 -0
  156. package/dist/nodes/lib-mail.js.map +1 -0
  157. package/dist/nodes/lib-markdown.d.ts +70 -0
  158. package/dist/nodes/lib-markdown.d.ts.map +1 -0
  159. package/dist/nodes/lib-markdown.js +236 -0
  160. package/dist/nodes/lib-markdown.js.map +1 -0
  161. package/dist/nodes/lib-nlp.d.ts +98 -0
  162. package/dist/nodes/lib-nlp.d.ts.map +1 -0
  163. package/dist/nodes/lib-nlp.js +374 -0
  164. package/dist/nodes/lib-nlp.js.map +1 -0
  165. package/dist/nodes/lib-notion.d.ts +99 -0
  166. package/dist/nodes/lib-notion.d.ts.map +1 -0
  167. package/dist/nodes/lib-notion.js +601 -0
  168. package/dist/nodes/lib-notion.js.map +1 -0
  169. package/dist/nodes/lib-ocr.d.ts +31 -0
  170. package/dist/nodes/lib-ocr.d.ts.map +1 -0
  171. package/dist/nodes/lib-ocr.js +143 -0
  172. package/dist/nodes/lib-ocr.js.map +1 -0
  173. package/dist/nodes/lib-os.d.ts +312 -0
  174. package/dist/nodes/lib-os.d.ts.map +1 -0
  175. package/dist/nodes/lib-os.js +909 -0
  176. package/dist/nodes/lib-os.js.map +1 -0
  177. package/dist/nodes/lib-pdf.d.ts +142 -0
  178. package/dist/nodes/lib-pdf.d.ts.map +1 -0
  179. package/dist/nodes/lib-pdf.js +871 -0
  180. package/dist/nodes/lib-pdf.js.map +1 -0
  181. package/dist/nodes/lib-pptx.d.ts +29 -0
  182. package/dist/nodes/lib-pptx.d.ts.map +1 -0
  183. package/dist/nodes/lib-pptx.js +122 -0
  184. package/dist/nodes/lib-pptx.js.map +1 -0
  185. package/dist/nodes/lib-rss.d.ts +31 -0
  186. package/dist/nodes/lib-rss.d.ts.map +1 -0
  187. package/dist/nodes/lib-rss.js +163 -0
  188. package/dist/nodes/lib-rss.js.map +1 -0
  189. package/dist/nodes/lib-s3.d.ts +112 -0
  190. package/dist/nodes/lib-s3.d.ts.map +1 -0
  191. package/dist/nodes/lib-s3.js +521 -0
  192. package/dist/nodes/lib-s3.js.map +1 -0
  193. package/dist/nodes/lib-secret.d.ts +15 -0
  194. package/dist/nodes/lib-secret.d.ts.map +1 -0
  195. package/dist/nodes/lib-secret.js +42 -0
  196. package/dist/nodes/lib-secret.js.map +1 -0
  197. package/dist/nodes/lib-sqlite.d.ts +102 -0
  198. package/dist/nodes/lib-sqlite.d.ts.map +1 -0
  199. package/dist/nodes/lib-sqlite.js +532 -0
  200. package/dist/nodes/lib-sqlite.js.map +1 -0
  201. package/dist/nodes/lib-supabase.d.ts +86 -0
  202. package/dist/nodes/lib-supabase.d.ts.map +1 -0
  203. package/dist/nodes/lib-supabase.js +425 -0
  204. package/dist/nodes/lib-supabase.js.map +1 -0
  205. package/dist/nodes/lib-svg.d.ts +199 -0
  206. package/dist/nodes/lib-svg.d.ts.map +1 -0
  207. package/dist/nodes/lib-svg.js +1027 -0
  208. package/dist/nodes/lib-svg.js.map +1 -0
  209. package/dist/nodes/lib-tensorflow.d.ts +71 -0
  210. package/dist/nodes/lib-tensorflow.d.ts.map +1 -0
  211. package/dist/nodes/lib-tensorflow.js +351 -0
  212. package/dist/nodes/lib-tensorflow.js.map +1 -0
  213. package/dist/nodes/lib-twilio.d.ts +71 -0
  214. package/dist/nodes/lib-twilio.d.ts.map +1 -0
  215. package/dist/nodes/lib-twilio.js +469 -0
  216. package/dist/nodes/lib-twilio.js.map +1 -0
  217. package/dist/nodes/lib-validate.d.ts +84 -0
  218. package/dist/nodes/lib-validate.d.ts.map +1 -0
  219. package/dist/nodes/lib-validate.js +215 -0
  220. package/dist/nodes/lib-validate.js.map +1 -0
  221. package/dist/nodes/lib-video-download.d.ts +26 -0
  222. package/dist/nodes/lib-video-download.d.ts.map +1 -0
  223. package/dist/nodes/lib-video-download.js +299 -0
  224. package/dist/nodes/lib-video-download.js.map +1 -0
  225. package/dist/nodes/messaging.d.ts +88 -0
  226. package/dist/nodes/messaging.d.ts.map +1 -0
  227. package/dist/nodes/messaging.js +418 -0
  228. package/dist/nodes/messaging.js.map +1 -0
  229. package/dist/nodes/mistral.d.ts +83 -0
  230. package/dist/nodes/mistral.d.ts.map +1 -0
  231. package/dist/nodes/mistral.js +450 -0
  232. package/dist/nodes/mistral.js.map +1 -0
  233. package/dist/nodes/model3d/analysis.d.ts +13 -0
  234. package/dist/nodes/model3d/analysis.d.ts.map +1 -0
  235. package/dist/nodes/model3d/analysis.js +36 -0
  236. package/dist/nodes/model3d/analysis.js.map +1 -0
  237. package/dist/nodes/model3d/base.d.ts +11 -0
  238. package/dist/nodes/model3d/base.d.ts.map +1 -0
  239. package/dist/nodes/model3d/base.js +20 -0
  240. package/dist/nodes/model3d/base.js.map +1 -0
  241. package/dist/nodes/model3d/boolean-ops.d.ts +2 -0
  242. package/dist/nodes/model3d/boolean-ops.d.ts.map +1 -0
  243. package/dist/nodes/model3d/boolean-ops.js +172 -0
  244. package/dist/nodes/model3d/boolean-ops.js.map +1 -0
  245. package/dist/nodes/model3d/cleanup.d.ts +47 -0
  246. package/dist/nodes/model3d/cleanup.d.ts.map +1 -0
  247. package/dist/nodes/model3d/cleanup.js +136 -0
  248. package/dist/nodes/model3d/cleanup.js.map +1 -0
  249. package/dist/nodes/model3d/convert.d.ts +14 -0
  250. package/dist/nodes/model3d/convert.d.ts.map +1 -0
  251. package/dist/nodes/model3d/convert.js +64 -0
  252. package/dist/nodes/model3d/convert.js.map +1 -0
  253. package/dist/nodes/model3d/defaults.d.ts +34 -0
  254. package/dist/nodes/model3d/defaults.d.ts.map +1 -0
  255. package/dist/nodes/model3d/defaults.js +28 -0
  256. package/dist/nodes/model3d/defaults.js.map +1 -0
  257. package/dist/nodes/model3d/document-ops.d.ts +4 -0
  258. package/dist/nodes/model3d/document-ops.d.ts.map +1 -0
  259. package/dist/nodes/model3d/document-ops.js +40 -0
  260. package/dist/nodes/model3d/document-ops.js.map +1 -0
  261. package/dist/nodes/model3d/generation.d.ts +39 -0
  262. package/dist/nodes/model3d/generation.d.ts.map +1 -0
  263. package/dist/nodes/model3d/generation.js +179 -0
  264. package/dist/nodes/model3d/generation.js.map +1 -0
  265. package/dist/nodes/model3d/glb.d.ts +29 -0
  266. package/dist/nodes/model3d/glb.d.ts.map +1 -0
  267. package/dist/nodes/model3d/glb.js +255 -0
  268. package/dist/nodes/model3d/glb.js.map +1 -0
  269. package/dist/nodes/model3d/index.d.ts +20 -0
  270. package/dist/nodes/model3d/index.d.ts.map +1 -0
  271. package/dist/nodes/model3d/index.js +38 -0
  272. package/dist/nodes/model3d/index.js.map +1 -0
  273. package/dist/nodes/model3d/io.d.ts +38 -0
  274. package/dist/nodes/model3d/io.d.ts.map +1 -0
  275. package/dist/nodes/model3d/io.js +162 -0
  276. package/dist/nodes/model3d/io.js.map +1 -0
  277. package/dist/nodes/model3d/mesh-ops.d.ts +40 -0
  278. package/dist/nodes/model3d/mesh-ops.d.ts.map +1 -0
  279. package/dist/nodes/model3d/mesh-ops.js +775 -0
  280. package/dist/nodes/model3d/mesh-ops.js.map +1 -0
  281. package/dist/nodes/model3d/nodes.d.ts +2 -0
  282. package/dist/nodes/model3d/nodes.d.ts.map +1 -0
  283. package/dist/nodes/model3d/nodes.js +2 -0
  284. package/dist/nodes/model3d/nodes.js.map +1 -0
  285. package/dist/nodes/model3d/ops.d.ts +37 -0
  286. package/dist/nodes/model3d/ops.d.ts.map +1 -0
  287. package/dist/nodes/model3d/ops.js +137 -0
  288. package/dist/nodes/model3d/ops.js.map +1 -0
  289. package/dist/nodes/model3d/transforms.d.ts +49 -0
  290. package/dist/nodes/model3d/transforms.d.ts.map +1 -0
  291. package/dist/nodes/model3d/transforms.js +142 -0
  292. package/dist/nodes/model3d/transforms.js.map +1 -0
  293. package/dist/nodes/model3d/types.d.ts +81 -0
  294. package/dist/nodes/model3d/types.d.ts.map +1 -0
  295. package/dist/nodes/model3d/types.js +2 -0
  296. package/dist/nodes/model3d/types.js.map +1 -0
  297. package/dist/nodes/model3d/utils.d.ts +34 -0
  298. package/dist/nodes/model3d/utils.d.ts.map +1 -0
  299. package/dist/nodes/model3d/utils.js +185 -0
  300. package/dist/nodes/model3d/utils.js.map +1 -0
  301. package/dist/nodes/model3d.d.ts +2 -0
  302. package/dist/nodes/model3d.d.ts.map +1 -0
  303. package/dist/nodes/model3d.js +2 -0
  304. package/dist/nodes/model3d.js.map +1 -0
  305. package/dist/nodes/openai.d.ts +172 -0
  306. package/dist/nodes/openai.d.ts.map +1 -0
  307. package/dist/nodes/openai.js +1294 -0
  308. package/dist/nodes/openai.js.map +1 -0
  309. package/dist/nodes/output.d.ts +29 -0
  310. package/dist/nodes/output.d.ts.map +1 -0
  311. package/dist/nodes/output.js +87 -0
  312. package/dist/nodes/output.js.map +1 -0
  313. package/dist/nodes/sandbox.d.ts +67 -0
  314. package/dist/nodes/sandbox.d.ts.map +1 -0
  315. package/dist/nodes/sandbox.js +681 -0
  316. package/dist/nodes/sandbox.js.map +1 -0
  317. package/dist/nodes/search.d.ts +117 -0
  318. package/dist/nodes/search.d.ts.map +1 -0
  319. package/dist/nodes/search.js +607 -0
  320. package/dist/nodes/search.js.map +1 -0
  321. package/dist/nodes/team.d.ts +74 -0
  322. package/dist/nodes/team.d.ts.map +1 -0
  323. package/dist/nodes/team.js +304 -0
  324. package/dist/nodes/team.js.map +1 -0
  325. package/dist/nodes/text-extra.d.ts +633 -0
  326. package/dist/nodes/text-extra.d.ts.map +1 -0
  327. package/dist/nodes/text-extra.js +2226 -0
  328. package/dist/nodes/text-extra.js.map +1 -0
  329. package/dist/nodes/tool-agents.d.ts +334 -0
  330. package/dist/nodes/tool-agents.d.ts.map +1 -0
  331. package/dist/nodes/tool-agents.js +1861 -0
  332. package/dist/nodes/tool-agents.js.map +1 -0
  333. package/dist/nodes/triggers.d.ts +107 -0
  334. package/dist/nodes/triggers.d.ts.map +1 -0
  335. package/dist/nodes/triggers.js +706 -0
  336. package/dist/nodes/triggers.js.map +1 -0
  337. package/dist/nodes/vector.d.ts +168 -0
  338. package/dist/nodes/vector.d.ts.map +1 -0
  339. package/dist/nodes/vector.js +1121 -0
  340. package/dist/nodes/vector.js.map +1 -0
  341. package/dist/nodes/video.d.ts +387 -0
  342. package/dist/nodes/video.d.ts.map +1 -0
  343. package/dist/nodes/video.js +2361 -0
  344. package/dist/nodes/video.js.map +1 -0
  345. package/dist/nodes/workflow.d.ts +24 -0
  346. package/dist/nodes/workflow.d.ts.map +1 -0
  347. package/dist/nodes/workflow.js +146 -0
  348. package/dist/nodes/workflow.js.map +1 -0
  349. package/dist/nodes/workspace.d.ts +203 -0
  350. package/dist/nodes/workspace.d.ts.map +1 -0
  351. package/dist/nodes/workspace.js +795 -0
  352. package/dist/nodes/workspace.js.map +1 -0
  353. package/package.json +103 -0
@@ -0,0 +1,257 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BaseNode, prop } from "@nodetool-ai/node-sdk";
8
+ import { execFile as execFileCb } from "node:child_process";
9
+ import { promises as fs } from "node:fs";
10
+ import os from "node:os";
11
+ import path from "node:path";
12
+ import { promisify } from "node:util";
13
+ const execFile = promisify(execFileCb);
14
+ /**
15
+ * Resolve bytes from a ref object or raw Uint8Array.
16
+ */
17
+ function isByte(value) {
18
+ return typeof value === "number" &&
19
+ Number.isInteger(value) &&
20
+ value >= 0 &&
21
+ value <= 255;
22
+ }
23
+ function bufferFromArrayLike(value) {
24
+ if (!Number.isSafeInteger(value.length) || value.length < 0) {
25
+ return null;
26
+ }
27
+ const bytes = new Uint8Array(value.length);
28
+ for (let i = 0; i < value.length; i++) {
29
+ const item = value[i];
30
+ if (!isByte(item)) {
31
+ return null;
32
+ }
33
+ bytes[i] = item;
34
+ }
35
+ return Buffer.from(bytes);
36
+ }
37
+ function bufferFromNumericObject(obj) {
38
+ if (!Object.hasOwn(obj, "0")) {
39
+ return null;
40
+ }
41
+ let length = 0;
42
+ while (Object.hasOwn(obj, String(length))) {
43
+ if (!isByte(obj[String(length)])) {
44
+ return null;
45
+ }
46
+ length++;
47
+ }
48
+ if (length === 0) {
49
+ return null;
50
+ }
51
+ const bytes = new Uint8Array(length);
52
+ let numericKeyCount = 0;
53
+ for (const key in obj) {
54
+ if (!Object.hasOwn(obj, key) || !/^\d+$/.test(key)) {
55
+ continue;
56
+ }
57
+ const index = Number(key);
58
+ if (index >= length) {
59
+ return null;
60
+ }
61
+ const value = obj[key];
62
+ if (!isByte(value)) {
63
+ return null;
64
+ }
65
+ bytes[index] = value;
66
+ numericKeyCount++;
67
+ }
68
+ if (numericKeyCount !== length) {
69
+ return null;
70
+ }
71
+ return Buffer.from(bytes);
72
+ }
73
+ function bufferFromBase64(value) {
74
+ const trimmed = value.trim();
75
+ const dataUriMatch = trimmed.match(/^data:[^;]+;base64,(.+)$/s);
76
+ const payload = dataUriMatch ? dataUriMatch[1] : trimmed;
77
+ if ((!dataUriMatch && payload.length <= 20) ||
78
+ payload.length % 4 !== 0 ||
79
+ !/^[A-Za-z0-9+/\n\r]+=*$/.test(payload)) {
80
+ return null;
81
+ }
82
+ return Buffer.from(payload, "base64");
83
+ }
84
+ function refToBytes(ref) {
85
+ if (ref == null)
86
+ return null;
87
+ if (typeof ref === "string") {
88
+ return bufferFromBase64(ref);
89
+ }
90
+ // Native Uint8Array/Buffer — always copy to own the memory
91
+ if (ref instanceof Uint8Array)
92
+ return Buffer.copyBytesFrom(ref);
93
+ if (Buffer.isBuffer(ref))
94
+ return Buffer.from(ref);
95
+ if (ref instanceof ArrayBuffer)
96
+ return Buffer.from(new Uint8Array(ref));
97
+ if (ArrayBuffer.isView(ref)) {
98
+ const view = ref;
99
+ return Buffer.from(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
100
+ }
101
+ if (Array.isArray(ref)) {
102
+ return bufferFromArrayLike(ref);
103
+ }
104
+ if (typeof ref !== "object")
105
+ return null;
106
+ // Cross-context Uint8Array (constructor name match, instanceof fails)
107
+ const name = ref.constructor?.name;
108
+ if ((name === "Uint8Array" || name === "Buffer") &&
109
+ typeof ref.length === "number") {
110
+ const fromArrayLike = bufferFromArrayLike(ref);
111
+ if (fromArrayLike) {
112
+ return fromArrayLike;
113
+ }
114
+ }
115
+ const obj = ref;
116
+ const fromNumericObject = bufferFromNumericObject(obj);
117
+ if (fromNumericObject) {
118
+ return fromNumericObject;
119
+ }
120
+ if ("data" in obj) {
121
+ return refToBytes(obj.data);
122
+ }
123
+ return null;
124
+ }
125
+ async function loadFromUri(uri, context) {
126
+ if (!uri)
127
+ return null;
128
+ if (context?.storage) {
129
+ const stored = await context.storage.retrieve(uri);
130
+ if (stored !== null)
131
+ return Buffer.from(stored);
132
+ }
133
+ let filePath = uri;
134
+ if (filePath.startsWith("file://")) {
135
+ filePath = decodeURIComponent(new URL(filePath).pathname);
136
+ }
137
+ try {
138
+ return Buffer.from(await fs.readFile(filePath));
139
+ }
140
+ catch {
141
+ return null;
142
+ }
143
+ }
144
+ // ---------------------------------------------------------------------------
145
+ // PDF → Markdown
146
+ // ---------------------------------------------------------------------------
147
+ async function pdfToText(inputBytes) {
148
+ const { LiteParse } = await import("@llamaindex/liteparse");
149
+ const parser = new LiteParse({ ocrEnabled: false });
150
+ const result = await parser.parse(inputBytes, true);
151
+ return result.text;
152
+ }
153
+ // ---------------------------------------------------------------------------
154
+ // DOCX → Markdown (pandoc)
155
+ // ---------------------------------------------------------------------------
156
+ async function docxToMarkdown(inputBytes) {
157
+ const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "nodetool-docx-"));
158
+ const inputPath = path.join(tmpDir, "input.docx");
159
+ try {
160
+ await fs.writeFile(inputPath, inputBytes);
161
+ const { stdout } = await execFile("pandoc", [inputPath, "-f", "docx", "-t", "markdown", "--wrap=none"], { maxBuffer: 50 * 1024 * 1024, timeout: 60000 });
162
+ return stdout;
163
+ }
164
+ finally {
165
+ await fs.rm(tmpDir, { recursive: true, force: true });
166
+ }
167
+ }
168
+ // ---------------------------------------------------------------------------
169
+ // Shared byte format detection
170
+ // ---------------------------------------------------------------------------
171
+ async function convertBytes(bytes, turndown) {
172
+ if (bytes.length >= 4 && bytes[0] === 0x25 && bytes[1] === 0x50 && bytes[2] === 0x44 && bytes[3] === 0x46) {
173
+ return pdfToText(bytes);
174
+ }
175
+ if (bytes.length >= 4 && bytes[0] === 0x50 && bytes[1] === 0x4b && bytes[2] === 0x03 && bytes[3] === 0x04) {
176
+ return docxToMarkdown(bytes);
177
+ }
178
+ const text = bytes.toString("utf-8");
179
+ if (text.includes("<") && text.includes(">")) {
180
+ return turndown.turndown(text);
181
+ }
182
+ return text;
183
+ }
184
+ // ---------------------------------------------------------------------------
185
+ // ConvertToMarkdown node
186
+ // ---------------------------------------------------------------------------
187
+ export class ConvertToMarkdownLibNode extends BaseNode {
188
+ static nodeType = "lib.convert.ConvertToMarkdown";
189
+ static title = "Convert To Markdown";
190
+ static description = "Converts PDF, DOCX, or HTML to markdown text.\n markdown, convert, document, pdf, docx, html, bytes\n\n Connect one input — document ref, raw bytes, or HTML string.";
191
+ static requiredRuntimes = ["pandoc"];
192
+ static metadataOutputTypes = {
193
+ output: "str"
194
+ };
195
+ static exposeAsTool = true;
196
+ async process(context) {
197
+ const TurndownService = (await import("turndown")).default;
198
+ const turndown = new TurndownService();
199
+ // 1. Document ref input
200
+ const doc = this.document;
201
+ if (doc && typeof doc === "object") {
202
+ const uri = typeof doc.uri === "string" ? doc.uri : "";
203
+ let bytes = refToBytes(doc);
204
+ if ((!bytes || bytes.length === 0) && uri) {
205
+ bytes = await loadFromUri(uri, context);
206
+ }
207
+ if (bytes && bytes.length > 0) {
208
+ return { output: await convertBytes(bytes, turndown) };
209
+ }
210
+ if (typeof doc.data === "string" && doc.data) {
211
+ if (doc.data.includes("<") && doc.data.includes(">")) {
212
+ return { output: turndown.turndown(doc.data) };
213
+ }
214
+ return { output: doc.data };
215
+ }
216
+ }
217
+ // 2. Raw bytes input
218
+ const rawBytes = refToBytes(this.bytes);
219
+ if (rawBytes && rawBytes.length > 0) {
220
+ return { output: await convertBytes(rawBytes, turndown) };
221
+ }
222
+ // 3. HTML string input
223
+ const html = String(this.html ?? "");
224
+ if (html) {
225
+ return { output: turndown.turndown(html) };
226
+ }
227
+ throw new Error("Provide a document, bytes, or HTML input");
228
+ }
229
+ }
230
+ __decorate([
231
+ prop({
232
+ type: "document",
233
+ default: { type: "document", uri: "", asset_id: null, data: null, metadata: null },
234
+ title: "Document",
235
+ description: "A document ref (PDF, DOCX, or text file)"
236
+ })
237
+ ], ConvertToMarkdownLibNode.prototype, "document", void 0);
238
+ __decorate([
239
+ prop({
240
+ type: "bytes",
241
+ default: null,
242
+ title: "Bytes",
243
+ description: "Raw PDF or DOCX bytes (e.g. from HTTP GET Bytes)"
244
+ })
245
+ ], ConvertToMarkdownLibNode.prototype, "bytes", void 0);
246
+ __decorate([
247
+ prop({
248
+ type: "str",
249
+ default: "",
250
+ title: "HTML",
251
+ description: "HTML string to convert to markdown"
252
+ })
253
+ ], ConvertToMarkdownLibNode.prototype, "html", void 0);
254
+ export const LIB_MARKITDOWN_NODES = [
255
+ ConvertToMarkdownLibNode
256
+ ];
257
+ //# sourceMappingURL=lib-doc-convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-doc-convert.js","sourceRoot":"","sources":["../../src/nodes/lib-doc-convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { BaseNode } from "@nodetool-ai/node-sdk";
2
+ declare abstract class PandocBaseLibNode extends BaseNode {
3
+ static readonly requiredRuntimes: string[];
4
+ protected formats(): {
5
+ input: string;
6
+ output: string;
7
+ };
8
+ protected extraArgs(): string[];
9
+ protected timeoutMs(): number;
10
+ }
11
+ export declare class ConvertTextPandocLibNode extends PandocBaseLibNode {
12
+ static readonly nodeType = "lib.convert.pandoc.ConvertText";
13
+ static readonly title = "Convert Text";
14
+ static readonly description = "Converts text content between different document formats using pandoc.\n convert, text, format, pandoc\n\n Use cases:\n - Convert text content between various formats (Markdown, HTML, LaTeX, etc.)\n - Transform content without saving to disk\n - Process text snippets in different formats";
15
+ static readonly metadataOutputTypes: {
16
+ output: string;
17
+ };
18
+ content: any;
19
+ input_format: any;
20
+ output_format: any;
21
+ extra_args: any;
22
+ process(): Promise<Record<string, unknown>>;
23
+ }
24
+ export declare class ConvertFilePandocLibNode extends PandocBaseLibNode {
25
+ static readonly nodeType = "lib.convert.pandoc.ConvertFile";
26
+ static readonly title = "Convert File";
27
+ static readonly description = "Converts between different document formats using pandoc.\n convert, document, format, pandoc\n\n Use cases:\n - Convert between various document formats (Markdown, HTML, LaTeX, etc.)\n - Generate documentation in different formats\n - Create publication-ready documents";
28
+ static readonly metadataOutputTypes: {
29
+ output: string;
30
+ };
31
+ input_path: any;
32
+ input_format: any;
33
+ output_format: any;
34
+ extra_args: any;
35
+ process(): Promise<Record<string, unknown>>;
36
+ }
37
+ export declare const LIB_PANDOC_NODES: readonly [typeof ConvertFilePandocLibNode, typeof ConvertTextPandocLibNode];
38
+ export {};
39
+ //# sourceMappingURL=lib-doc-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-doc-transform.d.ts","sourceRoot":"","sources":["../../src/nodes/lib-doc-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AAsEvD,uBAAe,iBAAkB,SAAQ,QAAQ;IAC/C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAc;IAE9C,SAAS,CAAC,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAQtD,SAAS,CAAC,SAAS,IAAI,MAAM,EAAE;IAK/B,SAAS,CAAC,SAAS,IAAI,MAAM;CAI9B;AAED,qBAAa,wBAAyB,SAAQ,iBAAiB;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,oCAAoC;IAC5D,MAAM,CAAC,QAAQ,CAAC,KAAK,kBAAkB;IACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,qTACyR;IACpT,MAAM,CAAC,QAAQ,CAAC,mBAAmB;;MAEjC;IAOM,OAAO,EAAE,GAAG,CAAC;IAwDb,YAAY,EAAE,GAAG,CAAC;IA8BlB,aAAa,EAAE,GAAG,CAAC;IAQnB,UAAU,EAAE,GAAG,CAAC;IAElB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAYlD;AAED,qBAAa,wBAAyB,SAAQ,iBAAiB;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,oCAAoC;IAC5D,MAAM,CAAC,QAAQ,CAAC,KAAK,kBAAkB;IACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,mSACuQ;IAClS,MAAM,CAAC,QAAQ,CAAC,mBAAmB;;MAEjC;IAUM,UAAU,EAAE,GAAG,CAAC;IAwDhB,YAAY,EAAE,GAAG,CAAC;IA8BlB,aAAa,EAAE,GAAG,CAAC;IAQnB,UAAU,EAAE,GAAG,CAAC;IAElB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAqBlD;AAED,eAAO,MAAM,gBAAgB,6EAGnB,CAAC"}
@@ -0,0 +1,335 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BaseNode, prop } from "@nodetool-ai/node-sdk";
8
+ import { promises as fs } from "node:fs";
9
+ import { spawn } from "node:child_process";
10
+ function pathFromInput(value) {
11
+ if (!value)
12
+ return "";
13
+ if (typeof value === "string")
14
+ return value;
15
+ if (typeof value === "object") {
16
+ const p = value.path;
17
+ if (typeof p === "string")
18
+ return p;
19
+ const uri = value.uri;
20
+ if (typeof uri === "string")
21
+ return uri.startsWith("file://") ? uri.slice("file://".length) : uri;
22
+ }
23
+ return "";
24
+ }
25
+ async function runCommand(cmd, args, stdin, timeoutMs) {
26
+ return new Promise((resolve, reject) => {
27
+ const child = spawn(cmd, args, { stdio: "pipe" });
28
+ let stdout = "";
29
+ let stderr = "";
30
+ let timedOut = false;
31
+ const timer = setTimeout(() => {
32
+ timedOut = true;
33
+ child.kill("SIGTERM");
34
+ }, timeoutMs);
35
+ child.stdout.on("data", (d) => {
36
+ stdout += String(d);
37
+ });
38
+ child.stderr.on("data", (d) => {
39
+ stderr += String(d);
40
+ });
41
+ child.on("error", (err) => {
42
+ clearTimeout(timer);
43
+ reject(err);
44
+ });
45
+ child.on("close", (code) => {
46
+ clearTimeout(timer);
47
+ if (timedOut) {
48
+ resolve({
49
+ stdout,
50
+ stderr: `${stderr}\nProcess timed out`,
51
+ exitCode: 124
52
+ });
53
+ return;
54
+ }
55
+ resolve({ stdout, stderr, exitCode: code ?? 0 });
56
+ });
57
+ if (stdin.length > 0) {
58
+ child.stdin.write(stdin);
59
+ }
60
+ child.stdin.end();
61
+ });
62
+ }
63
+ class PandocBaseLibNode extends BaseNode {
64
+ static requiredRuntimes = ["pandoc"];
65
+ formats() {
66
+ const input = String(this.input_format ?? "markdown").toLowerCase();
67
+ const output = String(this.output_format ?? "plain").toLowerCase();
68
+ return { input, output };
69
+ }
70
+ extraArgs() {
71
+ const raw = this.extra_args ?? [];
72
+ return Array.isArray(raw) ? raw.map(String) : [];
73
+ }
74
+ timeoutMs() {
75
+ const sec = Number(this.timeout ?? 120);
76
+ return Math.max(1, Math.trunc(sec * 1000));
77
+ }
78
+ }
79
+ export class ConvertTextPandocLibNode extends PandocBaseLibNode {
80
+ static nodeType = "lib.convert.pandoc.ConvertText";
81
+ static title = "Convert Text";
82
+ static description = "Converts text content between different document formats using pandoc.\n convert, text, format, pandoc\n\n Use cases:\n - Convert text content between various formats (Markdown, HTML, LaTeX, etc.)\n - Transform content without saving to disk\n - Process text snippets in different formats";
83
+ static metadataOutputTypes = {
84
+ output: "str"
85
+ };
86
+ async process() {
87
+ const content = String(this.content ?? "");
88
+ const { input, output } = this.formats();
89
+ const args = ["-f", input, "-t", output, ...this.extraArgs()];
90
+ const result = await runCommand("pandoc", args, content, this.timeoutMs());
91
+ if (result.exitCode !== 0) {
92
+ throw new Error(`pandoc failed: ${result.stderr || `exit ${result.exitCode}`}`);
93
+ }
94
+ return { output: result.stdout };
95
+ }
96
+ }
97
+ __decorate([
98
+ prop({
99
+ type: "str",
100
+ default: "",
101
+ title: "Content",
102
+ description: "Text content to convert"
103
+ })
104
+ ], ConvertTextPandocLibNode.prototype, "content", void 0);
105
+ __decorate([
106
+ prop({
107
+ type: "enum",
108
+ default: "markdown",
109
+ title: "Input Format",
110
+ description: "Input format",
111
+ values: [
112
+ "biblatex",
113
+ "bibtex",
114
+ "bits",
115
+ "commonmark",
116
+ "commonmark_x",
117
+ "creole",
118
+ "csljson",
119
+ "csv",
120
+ "djot",
121
+ "docbook",
122
+ "docx",
123
+ "dokuwiki",
124
+ "endnotexml",
125
+ "epub",
126
+ "fb2",
127
+ "gfm",
128
+ "haddock",
129
+ "html",
130
+ "ipynb",
131
+ "jats",
132
+ "jira",
133
+ "json",
134
+ "latex",
135
+ "man",
136
+ "markdown",
137
+ "markdown_github",
138
+ "markdown_mmd",
139
+ "markdown_phpextra",
140
+ "markdown_strict",
141
+ "mdoc",
142
+ "mediawiki",
143
+ "muse",
144
+ "native",
145
+ "odt",
146
+ "opml",
147
+ "org",
148
+ "ris",
149
+ "rst",
150
+ "rtf",
151
+ "t2t",
152
+ "textile",
153
+ "tikiwiki",
154
+ "tsv",
155
+ "twiki",
156
+ "typst",
157
+ "vimwiki"
158
+ ]
159
+ })
160
+ ], ConvertTextPandocLibNode.prototype, "input_format", void 0);
161
+ __decorate([
162
+ prop({
163
+ type: "enum",
164
+ default: "docx",
165
+ title: "Output Format",
166
+ description: "Output format",
167
+ values: [
168
+ "asciidoc",
169
+ "asciidoctor",
170
+ "beamer",
171
+ "context",
172
+ "docbook4",
173
+ "docbook5",
174
+ "docx",
175
+ "epub2",
176
+ "epub3",
177
+ "pdf",
178
+ "plain",
179
+ "pptx",
180
+ "slideous",
181
+ "slidy",
182
+ "dzslides",
183
+ "revealjs",
184
+ "s5",
185
+ "tei",
186
+ "texinfo",
187
+ "zimwiki"
188
+ ]
189
+ })
190
+ ], ConvertTextPandocLibNode.prototype, "output_format", void 0);
191
+ __decorate([
192
+ prop({
193
+ type: "list[str]",
194
+ default: [],
195
+ title: "Extra Args",
196
+ description: "Additional pandoc arguments"
197
+ })
198
+ ], ConvertTextPandocLibNode.prototype, "extra_args", void 0);
199
+ export class ConvertFilePandocLibNode extends PandocBaseLibNode {
200
+ static nodeType = "lib.convert.pandoc.ConvertFile";
201
+ static title = "Convert File";
202
+ static description = "Converts between different document formats using pandoc.\n convert, document, format, pandoc\n\n Use cases:\n - Convert between various document formats (Markdown, HTML, LaTeX, etc.)\n - Generate documentation in different formats\n - Create publication-ready documents";
203
+ static metadataOutputTypes = {
204
+ output: "str"
205
+ };
206
+ async process() {
207
+ const inPath = pathFromInput(this.input_path);
208
+ if (!inPath) {
209
+ throw new Error("Input path is not set");
210
+ }
211
+ try {
212
+ await fs.access(inPath);
213
+ }
214
+ catch {
215
+ throw new Error(`Input file not found: ${inPath}`);
216
+ }
217
+ const { input, output } = this.formats();
218
+ const args = [inPath, "-f", input, "-t", output, ...this.extraArgs()];
219
+ const result = await runCommand("pandoc", args, "", this.timeoutMs());
220
+ if (result.exitCode !== 0) {
221
+ throw new Error(`pandoc failed: ${result.stderr || `exit ${result.exitCode}`}`);
222
+ }
223
+ return { output: result.stdout };
224
+ }
225
+ }
226
+ __decorate([
227
+ prop({
228
+ type: "file_path",
229
+ default: {
230
+ type: "file_path",
231
+ path: ""
232
+ },
233
+ title: "Input Path",
234
+ description: "Path to the input file"
235
+ })
236
+ ], ConvertFilePandocLibNode.prototype, "input_path", void 0);
237
+ __decorate([
238
+ prop({
239
+ type: "enum",
240
+ default: "markdown",
241
+ title: "Input Format",
242
+ description: "Input format",
243
+ values: [
244
+ "biblatex",
245
+ "bibtex",
246
+ "bits",
247
+ "commonmark",
248
+ "commonmark_x",
249
+ "creole",
250
+ "csljson",
251
+ "csv",
252
+ "djot",
253
+ "docbook",
254
+ "docx",
255
+ "dokuwiki",
256
+ "endnotexml",
257
+ "epub",
258
+ "fb2",
259
+ "gfm",
260
+ "haddock",
261
+ "html",
262
+ "ipynb",
263
+ "jats",
264
+ "jira",
265
+ "json",
266
+ "latex",
267
+ "man",
268
+ "markdown",
269
+ "markdown_github",
270
+ "markdown_mmd",
271
+ "markdown_phpextra",
272
+ "markdown_strict",
273
+ "mdoc",
274
+ "mediawiki",
275
+ "muse",
276
+ "native",
277
+ "odt",
278
+ "opml",
279
+ "org",
280
+ "ris",
281
+ "rst",
282
+ "rtf",
283
+ "t2t",
284
+ "textile",
285
+ "tikiwiki",
286
+ "tsv",
287
+ "twiki",
288
+ "typst",
289
+ "vimwiki"
290
+ ]
291
+ })
292
+ ], ConvertFilePandocLibNode.prototype, "input_format", void 0);
293
+ __decorate([
294
+ prop({
295
+ type: "enum",
296
+ default: "pdf",
297
+ title: "Output Format",
298
+ description: "Output format",
299
+ values: [
300
+ "asciidoc",
301
+ "asciidoctor",
302
+ "beamer",
303
+ "context",
304
+ "docbook4",
305
+ "docbook5",
306
+ "docx",
307
+ "epub2",
308
+ "epub3",
309
+ "pdf",
310
+ "plain",
311
+ "pptx",
312
+ "slideous",
313
+ "slidy",
314
+ "dzslides",
315
+ "revealjs",
316
+ "s5",
317
+ "tei",
318
+ "texinfo",
319
+ "zimwiki"
320
+ ]
321
+ })
322
+ ], ConvertFilePandocLibNode.prototype, "output_format", void 0);
323
+ __decorate([
324
+ prop({
325
+ type: "list[str]",
326
+ default: [],
327
+ title: "Extra Args",
328
+ description: "Additional pandoc arguments"
329
+ })
330
+ ], ConvertFilePandocLibNode.prototype, "extra_args", void 0);
331
+ export const LIB_PANDOC_NODES = [
332
+ ConvertFilePandocLibNode,
333
+ ConvertTextPandocLibNode
334
+ ];
335
+ //# sourceMappingURL=lib-doc-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-doc-transform.js","sourceRoot":"","sources":["../../src/nodes/lib-doc-transform.ts"],"names":[],"mappings":"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"}