@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,450 @@
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
+ function getApiKey(secrets) {
9
+ const key = secrets.MISTRAL_API_KEY || process.env.MISTRAL_API_KEY || "";
10
+ if (!key)
11
+ throw new Error("Mistral API key not configured");
12
+ return key;
13
+ }
14
+ function imageToDataUri(image) {
15
+ if (typeof image.data === "string") {
16
+ return `data:image/png;base64,${image.data}`;
17
+ }
18
+ if (image.data instanceof Uint8Array) {
19
+ return `data:image/png;base64,${Buffer.from(image.data).toString("base64")}`;
20
+ }
21
+ if (image.uri)
22
+ return image.uri;
23
+ throw new Error("Image must include data or uri");
24
+ }
25
+ async function mistralPost(apiKey, endpoint, body) {
26
+ const res = await fetch(`https://api.mistral.ai/v1/${endpoint}`, {
27
+ method: "POST",
28
+ headers: {
29
+ Authorization: `Bearer ${apiKey}`,
30
+ "Content-Type": "application/json"
31
+ },
32
+ body: JSON.stringify(body)
33
+ });
34
+ if (!res.ok) {
35
+ const text = await res.text().catch(() => "");
36
+ throw new Error(`Mistral API error ${res.status}: ${text}`);
37
+ }
38
+ return (await res.json());
39
+ }
40
+ // ── Chat Completion ─────────────────────────────────────────────────────────
41
+ export class ChatComplete extends BaseNode {
42
+ static nodeType = "mistral.text.ChatComplete";
43
+ static title = "Chat Complete";
44
+ static description = "Generate text using Mistral AI's chat completion models.\n mistral, chat, ai, text generation, llm, completion\n\n Uses Mistral AI's chat models to generate responses from prompts.\n Requires a Mistral API key.\n\n Use cases:\n - Generate text responses to prompts\n - Build conversational AI applications\n - Code generation with Codestral\n - Multi-modal understanding with Pixtral";
45
+ static metadataOutputTypes = {
46
+ output: "str"
47
+ };
48
+ static basicFields = ["prompt", "model"];
49
+ static requiredSettings = ["MISTRAL_API_KEY"];
50
+ static exposeAsTool = true;
51
+ async process() {
52
+ const apiKey = getApiKey(this._secrets);
53
+ const prompt = String(this.prompt ?? "");
54
+ if (!prompt)
55
+ throw new Error("Prompt cannot be empty");
56
+ const model = String(this.model ?? "mistral-small-latest");
57
+ const systemPrompt = String(this.system_prompt ?? "");
58
+ const temperature = Number(this.temperature ?? 0.7);
59
+ const maxTokens = Number(this.max_tokens ?? 1024);
60
+ const messages = [];
61
+ if (systemPrompt)
62
+ messages.push({ role: "system", content: systemPrompt });
63
+ messages.push({ role: "user", content: prompt });
64
+ const data = await mistralPost(apiKey, "chat/completions", {
65
+ model,
66
+ messages,
67
+ temperature,
68
+ max_tokens: maxTokens
69
+ });
70
+ const choices = data.choices;
71
+ if (!choices || choices.length === 0)
72
+ throw new Error("No response from Mistral API");
73
+ return { output: choices[0].message.content ?? "" };
74
+ }
75
+ }
76
+ __decorate([
77
+ prop({
78
+ type: "enum",
79
+ default: "mistral-small-latest",
80
+ title: "Model",
81
+ description: "The Mistral model to use for generation",
82
+ values: [
83
+ "mistral-large-latest",
84
+ "mistral-medium-latest",
85
+ "mistral-small-latest",
86
+ "pixtral-large-latest",
87
+ "codestral-latest",
88
+ "ministral-8b-latest",
89
+ "ministral-3b-latest"
90
+ ]
91
+ })
92
+ ], ChatComplete.prototype, "model", void 0);
93
+ __decorate([
94
+ prop({
95
+ type: "str",
96
+ default: "",
97
+ title: "Prompt",
98
+ description: "The prompt for text generation"
99
+ })
100
+ ], ChatComplete.prototype, "prompt", void 0);
101
+ __decorate([
102
+ prop({
103
+ type: "str",
104
+ default: "",
105
+ title: "System Prompt",
106
+ description: "Optional system prompt to guide the model's behavior"
107
+ })
108
+ ], ChatComplete.prototype, "system_prompt", void 0);
109
+ __decorate([
110
+ prop({
111
+ type: "float",
112
+ default: 0.7,
113
+ title: "Temperature",
114
+ description: "Sampling temperature. Higher values make output more random.",
115
+ min: 0,
116
+ max: 1
117
+ })
118
+ ], ChatComplete.prototype, "temperature", void 0);
119
+ __decorate([
120
+ prop({
121
+ type: "int",
122
+ default: 1024,
123
+ title: "Max Tokens",
124
+ description: "Maximum number of tokens to generate",
125
+ min: 1,
126
+ max: 32768
127
+ })
128
+ ], ChatComplete.prototype, "max_tokens", void 0);
129
+ // ── Code Completion ─────────────────────────────────────────────────────────
130
+ export class CodeComplete extends BaseNode {
131
+ static nodeType = "mistral.text.CodeComplete";
132
+ static title = "Code Complete";
133
+ static description = "Generate code using Mistral AI's Codestral model.\n mistral, code, codestral, ai, programming, completion\n\n Uses Mistral AI's Codestral model specifically designed for code generation.\n Supports fill-in-the-middle (FIM) for code completion tasks.\n Requires a Mistral API key.\n\n Use cases:\n - Generate code from natural language descriptions\n - Complete partial code snippets\n - Fill in code between prefix and suffix\n - Automated code generation for various programming languages";
134
+ static metadataOutputTypes = {
135
+ output: "str"
136
+ };
137
+ static basicFields = ["prompt", "suffix"];
138
+ static requiredSettings = ["MISTRAL_API_KEY"];
139
+ static exposeAsTool = true;
140
+ async process() {
141
+ const apiKey = getApiKey(this._secrets);
142
+ const prompt = String(this.prompt ?? "");
143
+ if (!prompt)
144
+ throw new Error("Prompt cannot be empty");
145
+ const suffix = String(this.suffix ?? "");
146
+ const temperature = Number(this.temperature ?? 0.0);
147
+ const maxTokens = Number(this.max_tokens ?? 2048);
148
+ const model = "codestral-latest";
149
+ let data;
150
+ if (suffix) {
151
+ data = await mistralPost(apiKey, "fim/completions", {
152
+ model,
153
+ prompt,
154
+ suffix,
155
+ temperature,
156
+ max_tokens: maxTokens
157
+ });
158
+ }
159
+ else {
160
+ data = await mistralPost(apiKey, "chat/completions", {
161
+ model,
162
+ messages: [{ role: "user", content: prompt }],
163
+ temperature,
164
+ max_tokens: maxTokens
165
+ });
166
+ }
167
+ const choices = data.choices;
168
+ if (!choices || choices.length === 0)
169
+ throw new Error("No response from Mistral API");
170
+ return { output: choices[0].message.content ?? "" };
171
+ }
172
+ }
173
+ __decorate([
174
+ prop({
175
+ type: "str",
176
+ default: "",
177
+ title: "Prompt",
178
+ description: "The prompt or code prefix for generation"
179
+ })
180
+ ], CodeComplete.prototype, "prompt", void 0);
181
+ __decorate([
182
+ prop({
183
+ type: "str",
184
+ default: "",
185
+ title: "Suffix",
186
+ description: "Optional suffix for fill-in-the-middle completion"
187
+ })
188
+ ], CodeComplete.prototype, "suffix", void 0);
189
+ __decorate([
190
+ prop({
191
+ type: "float",
192
+ default: 0,
193
+ title: "Temperature",
194
+ description: "Sampling temperature. Lower values for code generation.",
195
+ min: 0,
196
+ max: 1
197
+ })
198
+ ], CodeComplete.prototype, "temperature", void 0);
199
+ __decorate([
200
+ prop({
201
+ type: "int",
202
+ default: 2048,
203
+ title: "Max Tokens",
204
+ description: "Maximum number of tokens to generate",
205
+ min: 1,
206
+ max: 32768
207
+ })
208
+ ], CodeComplete.prototype, "max_tokens", void 0);
209
+ // ── Embeddings ──────────────────────────────────────────────────────────────
210
+ export class Embedding extends BaseNode {
211
+ static nodeType = "mistral.embeddings.Embedding";
212
+ static title = "Embedding";
213
+ static description = "Generate vector embeddings using Mistral AI.\n mistral, embeddings, vectors, semantic, similarity, search\n\n Uses Mistral AI's embedding model to create dense vector representations of text.\n These vectors capture semantic meaning, enabling:\n - Semantic search\n - Text clustering\n - Document classification\n - Recommendation systems\n - Measuring text similarity\n\n Requires a Mistral API key.";
214
+ static metadataOutputTypes = {
215
+ output: "list"
216
+ };
217
+ static basicFields = ["input"];
218
+ static requiredSettings = ["MISTRAL_API_KEY"];
219
+ static exposeAsTool = true;
220
+ async process() {
221
+ const apiKey = getApiKey(this._secrets);
222
+ const input = String(this.input ?? "");
223
+ if (!input)
224
+ throw new Error("Input text cannot be empty");
225
+ const model = String(this.model ?? "mistral-embed");
226
+ const chunkSize = Number(this.chunk_size ?? 4096);
227
+ // Chunk the input
228
+ const chunks = [];
229
+ for (let i = 0; i < input.length; i += chunkSize) {
230
+ chunks.push(input.slice(i, i + chunkSize));
231
+ }
232
+ const data = await mistralPost(apiKey, "embeddings", {
233
+ model,
234
+ input: chunks
235
+ });
236
+ const embData = data.data;
237
+ if (!embData || embData.length === 0)
238
+ throw new Error("No embeddings from Mistral API");
239
+ // Average embeddings if multiple chunks
240
+ const dim = embData[0].embedding.length;
241
+ const avg = new Array(dim).fill(0);
242
+ for (const item of embData) {
243
+ for (let i = 0; i < dim; i++) {
244
+ avg[i] += item.embedding[i];
245
+ }
246
+ }
247
+ if (embData.length > 1) {
248
+ for (let i = 0; i < dim; i++) {
249
+ avg[i] /= embData.length;
250
+ }
251
+ }
252
+ return { output: { data: avg, shape: [dim], dtype: "float32" } };
253
+ }
254
+ }
255
+ __decorate([
256
+ prop({
257
+ type: "str",
258
+ default: "",
259
+ title: "Input",
260
+ description: "The text to embed"
261
+ })
262
+ ], Embedding.prototype, "input", void 0);
263
+ __decorate([
264
+ prop({
265
+ type: "enum",
266
+ default: "mistral-embed",
267
+ title: "Model",
268
+ description: "The embedding model to use",
269
+ values: ["mistral-embed"]
270
+ })
271
+ ], Embedding.prototype, "model", void 0);
272
+ __decorate([
273
+ prop({
274
+ type: "int",
275
+ default: 4096,
276
+ title: "Chunk Size",
277
+ description: "Size of text chunks for embedding",
278
+ min: 1,
279
+ max: 8192
280
+ })
281
+ ], Embedding.prototype, "chunk_size", void 0);
282
+ // ── Image to Text ───────────────────────────────────────────────────────────
283
+ export class ImageToText extends BaseNode {
284
+ static nodeType = "mistral.vision.ImageToText";
285
+ static title = "Image To Text";
286
+ static description = "Analyze images and generate text descriptions using Mistral AI's Pixtral models.\n mistral, pixtral, vision, image, ocr, analysis, multimodal\n\n Uses Mistral AI's Pixtral vision models to understand and describe images.\n Can perform OCR, image analysis, and answer questions about images.\n Requires a Mistral API key.\n\n Use cases:\n - Extract text from images (OCR)\n - Describe image contents\n - Answer questions about images\n - Analyze charts and diagrams\n - Document understanding";
287
+ static metadataOutputTypes = {
288
+ output: "str"
289
+ };
290
+ static basicFields = ["image", "prompt"];
291
+ static requiredSettings = ["MISTRAL_API_KEY"];
292
+ static exposeAsTool = true;
293
+ async process() {
294
+ const apiKey = getApiKey(this._secrets);
295
+ const image = (this.image ?? {});
296
+ if (!image.data && !image.uri)
297
+ throw new Error("Image is required");
298
+ const prompt = String(this.prompt ?? "Describe this image in detail.");
299
+ if (!prompt)
300
+ throw new Error("Prompt cannot be empty");
301
+ const model = String(this.model ?? "pixtral-large-latest");
302
+ const temperature = Number(this.temperature ?? 0.3);
303
+ const maxTokens = Number(this.max_tokens ?? 1024);
304
+ const dataUri = imageToDataUri(image);
305
+ const data = await mistralPost(apiKey, "chat/completions", {
306
+ model,
307
+ messages: [
308
+ {
309
+ role: "user",
310
+ content: [
311
+ { type: "image_url", image_url: { url: dataUri } },
312
+ { type: "text", text: prompt }
313
+ ]
314
+ }
315
+ ],
316
+ temperature,
317
+ max_tokens: maxTokens
318
+ });
319
+ const choices = data.choices;
320
+ if (!choices || choices.length === 0)
321
+ throw new Error("No response from Mistral API");
322
+ return { output: choices[0].message.content ?? "" };
323
+ }
324
+ }
325
+ __decorate([
326
+ prop({
327
+ type: "image",
328
+ default: {
329
+ type: "image",
330
+ uri: "",
331
+ asset_id: null,
332
+ data: null,
333
+ metadata: null
334
+ },
335
+ title: "Image",
336
+ description: "The image to analyze"
337
+ })
338
+ ], ImageToText.prototype, "image", void 0);
339
+ __decorate([
340
+ prop({
341
+ type: "str",
342
+ default: "Describe this image in detail.",
343
+ title: "Prompt",
344
+ description: "The prompt/question about the image"
345
+ })
346
+ ], ImageToText.prototype, "prompt", void 0);
347
+ __decorate([
348
+ prop({
349
+ type: "enum",
350
+ default: "pixtral-large-latest",
351
+ title: "Model",
352
+ description: "The Pixtral model to use for vision tasks",
353
+ values: ["pixtral-large-latest", "pixtral-12b-2409"]
354
+ })
355
+ ], ImageToText.prototype, "model", void 0);
356
+ __decorate([
357
+ prop({
358
+ type: "float",
359
+ default: 0.3,
360
+ title: "Temperature",
361
+ description: "Sampling temperature for response generation",
362
+ min: 0,
363
+ max: 1
364
+ })
365
+ ], ImageToText.prototype, "temperature", void 0);
366
+ __decorate([
367
+ prop({
368
+ type: "int",
369
+ default: 1024,
370
+ title: "Max Tokens",
371
+ description: "Maximum number of tokens to generate",
372
+ min: 1,
373
+ max: 16384
374
+ })
375
+ ], ImageToText.prototype, "max_tokens", void 0);
376
+ // ── OCR ─────────────────────────────────────────────────────────────────────
377
+ export class OCR extends BaseNode {
378
+ static nodeType = "mistral.vision.OCR";
379
+ static title = "OCR";
380
+ static description = "Extract text from images using Mistral AI's Pixtral models.\n mistral, pixtral, ocr, text extraction, document, image\n\n Specialized node for optical character recognition (OCR) using Pixtral.\n Optimized for extracting text content from documents, screenshots, and images.\n Requires a Mistral API key.\n\n Use cases:\n - Extract text from scanned documents\n - Read text from screenshots\n - Digitize printed materials\n - Extract data from forms and receipts";
381
+ static metadataOutputTypes = {
382
+ output: "str"
383
+ };
384
+ static basicFields = ["image"];
385
+ static requiredSettings = ["MISTRAL_API_KEY"];
386
+ static exposeAsTool = true;
387
+ async process() {
388
+ const apiKey = getApiKey(this._secrets);
389
+ const image = (this.image ?? {});
390
+ if (!image.data && !image.uri)
391
+ throw new Error("Image is required");
392
+ const model = String(this.model ?? "pixtral-large-latest");
393
+ const dataUri = imageToDataUri(image);
394
+ const data = await mistralPost(apiKey, "chat/completions", {
395
+ model,
396
+ messages: [
397
+ {
398
+ role: "user",
399
+ content: [
400
+ { type: "image_url", image_url: { url: dataUri } },
401
+ {
402
+ type: "text",
403
+ text: "Extract and return all text visible in this image. " +
404
+ "Preserve the original formatting and structure as much as possible. " +
405
+ "Return only the extracted text without any additional commentary."
406
+ }
407
+ ]
408
+ }
409
+ ],
410
+ temperature: 0.0,
411
+ max_tokens: 8192
412
+ });
413
+ const choices = data.choices;
414
+ if (!choices || choices.length === 0)
415
+ throw new Error("No response from Mistral API");
416
+ return { output: choices[0].message.content ?? "" };
417
+ }
418
+ }
419
+ __decorate([
420
+ prop({
421
+ type: "image",
422
+ default: {
423
+ type: "image",
424
+ uri: "",
425
+ asset_id: null,
426
+ data: null,
427
+ metadata: null
428
+ },
429
+ title: "Image",
430
+ description: "The image to extract text from"
431
+ })
432
+ ], OCR.prototype, "image", void 0);
433
+ __decorate([
434
+ prop({
435
+ type: "enum",
436
+ default: "pixtral-large-latest",
437
+ title: "Model",
438
+ description: "The Pixtral model to use for OCR",
439
+ values: ["pixtral-large-latest", "pixtral-12b-2409"]
440
+ })
441
+ ], OCR.prototype, "model", void 0);
442
+ // ── Export ───────────────────────────────────────────────────────────────────
443
+ export const MISTRAL_NODES = [
444
+ ChatComplete,
445
+ CodeComplete,
446
+ Embedding,
447
+ ImageToText,
448
+ OCR
449
+ ];
450
+ //# sourceMappingURL=mistral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../src/nodes/mistral.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { BaseNode } from "@nodetool-ai/node-sdk";
2
+ import type { ProcessingContext } from "@nodetool-ai/runtime";
3
+ export declare class GetModel3DMetadataNode extends BaseNode {
4
+ static readonly nodeType = "nodetool.model3d.GetModel3DMetadata";
5
+ static readonly title = "Get Model 3D Metadata";
6
+ static readonly description = "Get metadata about a 3D model.\n 3d, mesh, model, metadata, info, properties\n\n Use cases:\n - Get vertex and face counts for processing decisions\n - Analyze model properties\n - Gather information for model cataloging";
7
+ static readonly metadataOutputTypes: {
8
+ output: string;
9
+ };
10
+ model: any;
11
+ process(context?: ProcessingContext): Promise<Record<string, unknown>>;
12
+ }
13
+ //# sourceMappingURL=analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../../src/nodes/model3d/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,MAAM,CAAC,QAAQ,CAAC,QAAQ,yCAAyC;IACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,2BAA2B;IAChD,MAAM,CAAC,QAAQ,CAAC,WAAW,iPACqN;IAEhP,MAAM,CAAC,QAAQ,CAAC,mBAAmB;;MAEjC;IAQM,KAAK,EAAE,GAAG,CAAC;IAEb,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAS7E"}
@@ -0,0 +1,36 @@
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 { DEFAULT_MODEL_3D } from "./defaults.js";
9
+ import { analyzeGlbMetadata, fallbackMetadata, parseGlb } from "./glb.js";
10
+ import { modelFormat, modelRefToBytes } from "./utils.js";
11
+ export class GetModel3DMetadataNode extends BaseNode {
12
+ static nodeType = "nodetool.model3d.GetModel3DMetadata";
13
+ static title = "Get Model 3D Metadata";
14
+ static description = "Get metadata about a 3D model.\n 3d, mesh, model, metadata, info, properties\n\n Use cases:\n - Get vertex and face counts for processing decisions\n - Analyze model properties\n - Gather information for model cataloging";
15
+ // Returns { output: <metadata dict> } — use output: "dict" to match the actual return shape.
16
+ static metadataOutputTypes = {
17
+ output: "dict"
18
+ };
19
+ async process(context) {
20
+ const model = (this.model ?? {});
21
+ const bytes = await modelRefToBytes(model, context);
22
+ const metadata = modelFormat(model) === "glb" && parseGlb(bytes)
23
+ ? analyzeGlbMetadata(model, bytes)
24
+ : fallbackMetadata(model, bytes);
25
+ return { output: metadata };
26
+ }
27
+ }
28
+ __decorate([
29
+ prop({
30
+ type: "model_3d",
31
+ default: DEFAULT_MODEL_3D,
32
+ title: "Model",
33
+ description: "The 3D model to analyze"
34
+ })
35
+ ], GetModel3DMetadataNode.prototype, "model", void 0);
36
+ //# sourceMappingURL=analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/nodes/model3d/analysis.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,OAAO,sBAAuB,SAAQ,QAAQ;IAClD,MAAM,CAAU,QAAQ,GAAG,qCAAqC,CAAC;IACjE,MAAM,CAAU,KAAK,GAAG,uBAAuB,CAAC;IAChD,MAAM,CAAU,WAAW,GACzB,6OAA6O,CAAC;IAChP,6FAA6F;IAC7F,MAAM,CAAU,mBAAmB,GAAG;QACpC,MAAM,EAAE,MAAM;KACf,CAAC;IAUF,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAmB,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,QAAQ,GACZ,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;YAC7C,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;YAClC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;;AAVO;IANP,IAAI,CAAC;QACJ,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,yBAAyB;KACvC,CAAC;qDACiB"}
@@ -0,0 +1,11 @@
1
+ import { BaseNode } from "@nodetool-ai/node-sdk";
2
+ import type { ProcessingContext } from "@nodetool-ai/runtime";
3
+ import type { Model3DRefLike } from "./types.js";
4
+ export declare abstract class GlbTransformNode extends BaseNode {
5
+ model: any;
6
+ protected getModel(): Model3DRefLike;
7
+ protected abstract transform(bytes: Uint8Array): Uint8Array | null | Promise<Uint8Array | null>;
8
+ process(context?: ProcessingContext): Promise<Record<string, unknown>>;
9
+ }
10
+ export declare const glbOutput: (bytes: Uint8Array, uri?: string) => Record<string, unknown>;
11
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/nodes/model3d/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,8BAAsB,gBAAiB,SAAQ,QAAQ;IAC7C,KAAK,EAAE,GAAG,CAAC;IAEnB,SAAS,CAAC,QAAQ,IAAI,cAAc;IAKpC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,KAAK,EAAE,UAAU,GAChB,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAE3C,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAO7E;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,UAAU,EAAE,YAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAE5E,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { BaseNode } from "@nodetool-ai/node-sdk";
2
+ import { modelRef, modelRefToBytes } from "./utils.js";
3
+ export class GlbTransformNode extends BaseNode {
4
+ getModel() {
5
+ const v = this.model;
6
+ return v && typeof v === "object" ? v : {};
7
+ }
8
+ async process(context) {
9
+ const model = this.getModel();
10
+ const bytes = await modelRefToBytes(model, context);
11
+ const out = await this.transform(bytes);
12
+ if (!out)
13
+ return { output: modelRef(bytes, { uri: model.uri ?? "", format: model.format ?? "glb" }) };
14
+ return { output: modelRef(out, { uri: model.uri ?? "", format: "glb" }) };
15
+ }
16
+ }
17
+ export const glbOutput = (bytes, uri = "") => ({
18
+ output: modelRef(bytes, { uri, format: "glb" })
19
+ });
20
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/nodes/model3d/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,OAAgB,gBAAiB,SAAQ,QAAQ;IAG3C,QAAQ;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAMD,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;QACtG,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAE,GAAG,GAAG,EAAE,EAA2B,EAAE,CAAC,CAAC;IAClF,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;CAChD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function booleanGlb(bytesA: Uint8Array, bytesB: Uint8Array, operation: string): Promise<Uint8Array>;
2
+ //# sourceMappingURL=boolean-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-ops.d.ts","sourceRoot":"","sources":["../../../src/nodes/model3d/boolean-ops.ts"],"names":[],"mappings":"AA4LA,wBAAsB,UAAU,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAsBrB"}