@dartfx/n8n-nodes-qsv 0.0.0-stage โ†’ 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +374 -2
  3. package/dist/nodes/Qsv/Qsv.node.d.ts +5 -0
  4. package/dist/nodes/Qsv/Qsv.node.js +938 -0
  5. package/dist/nodes/Qsv/Qsv.node.json +13 -0
  6. package/dist/nodes/Qsv/actions/executeApply.d.ts +2 -0
  7. package/dist/nodes/Qsv/actions/executeApply.js +188 -0
  8. package/dist/nodes/Qsv/actions/executeBehead.d.ts +2 -0
  9. package/dist/nodes/Qsv/actions/executeBehead.js +113 -0
  10. package/dist/nodes/Qsv/actions/executeBlake3.d.ts +2 -0
  11. package/dist/nodes/Qsv/actions/executeBlake3.js +134 -0
  12. package/dist/nodes/Qsv/actions/executeCat.d.ts +2 -0
  13. package/dist/nodes/Qsv/actions/executeCat.js +135 -0
  14. package/dist/nodes/Qsv/actions/executeClean.d.ts +2 -0
  15. package/dist/nodes/Qsv/actions/executeClean.js +147 -0
  16. package/dist/nodes/Qsv/actions/executeClipboard.d.ts +2 -0
  17. package/dist/nodes/Qsv/actions/executeClipboard.js +114 -0
  18. package/dist/nodes/Qsv/actions/executeColor.d.ts +2 -0
  19. package/dist/nodes/Qsv/actions/executeColor.js +126 -0
  20. package/dist/nodes/Qsv/actions/executeCount.d.ts +2 -0
  21. package/dist/nodes/Qsv/actions/executeCount.js +134 -0
  22. package/dist/nodes/Qsv/actions/executeDatefmt.d.ts +2 -0
  23. package/dist/nodes/Qsv/actions/executeDatefmt.js +157 -0
  24. package/dist/nodes/Qsv/actions/executeDedup.d.ts +2 -0
  25. package/dist/nodes/Qsv/actions/executeDedup.js +137 -0
  26. package/dist/nodes/Qsv/actions/executeDenull.d.ts +2 -0
  27. package/dist/nodes/Qsv/actions/executeDenull.js +137 -0
  28. package/dist/nodes/Qsv/actions/executeDescribegpt.d.ts +2 -0
  29. package/dist/nodes/Qsv/actions/executeDescribegpt.js +215 -0
  30. package/dist/nodes/Qsv/actions/executeDiff.d.ts +2 -0
  31. package/dist/nodes/Qsv/actions/executeDiff.js +147 -0
  32. package/dist/nodes/Qsv/actions/executeEdit.d.ts +2 -0
  33. package/dist/nodes/Qsv/actions/executeEdit.js +128 -0
  34. package/dist/nodes/Qsv/actions/executeEnum.d.ts +2 -0
  35. package/dist/nodes/Qsv/actions/executeEnum.js +140 -0
  36. package/dist/nodes/Qsv/actions/executeExcel.d.ts +2 -0
  37. package/dist/nodes/Qsv/actions/executeExcel.js +146 -0
  38. package/dist/nodes/Qsv/actions/executeExclude.d.ts +2 -0
  39. package/dist/nodes/Qsv/actions/executeExclude.js +140 -0
  40. package/dist/nodes/Qsv/actions/executeExplode.d.ts +2 -0
  41. package/dist/nodes/Qsv/actions/executeExplode.js +129 -0
  42. package/dist/nodes/Qsv/actions/executeExtdedup.d.ts +2 -0
  43. package/dist/nodes/Qsv/actions/executeExtdedup.js +134 -0
  44. package/dist/nodes/Qsv/actions/executeExtsort.d.ts +2 -0
  45. package/dist/nodes/Qsv/actions/executeExtsort.js +128 -0
  46. package/dist/nodes/Qsv/actions/executeFetch.d.ts +2 -0
  47. package/dist/nodes/Qsv/actions/executeFetch.js +181 -0
  48. package/dist/nodes/Qsv/actions/executeFetchpost.d.ts +2 -0
  49. package/dist/nodes/Qsv/actions/executeFetchpost.js +195 -0
  50. package/dist/nodes/Qsv/actions/executeFill.d.ts +2 -0
  51. package/dist/nodes/Qsv/actions/executeFill.js +133 -0
  52. package/dist/nodes/Qsv/actions/executeFixedwidth.d.ts +2 -0
  53. package/dist/nodes/Qsv/actions/executeFixedwidth.js +116 -0
  54. package/dist/nodes/Qsv/actions/executeFixlengths.d.ts +2 -0
  55. package/dist/nodes/Qsv/actions/executeFixlengths.js +128 -0
  56. package/dist/nodes/Qsv/actions/executeFlatten.d.ts +2 -0
  57. package/dist/nodes/Qsv/actions/executeFlatten.js +122 -0
  58. package/dist/nodes/Qsv/actions/executeFmt.d.ts +2 -0
  59. package/dist/nodes/Qsv/actions/executeFmt.js +137 -0
  60. package/dist/nodes/Qsv/actions/executeForeach.d.ts +2 -0
  61. package/dist/nodes/Qsv/actions/executeForeach.js +132 -0
  62. package/dist/nodes/Qsv/actions/executeFrequency.d.ts +2 -0
  63. package/dist/nodes/Qsv/actions/executeFrequency.js +215 -0
  64. package/dist/nodes/Qsv/actions/executeGeocode.d.ts +2 -0
  65. package/dist/nodes/Qsv/actions/executeGeocode.js +195 -0
  66. package/dist/nodes/Qsv/actions/executeGeoconvert.d.ts +2 -0
  67. package/dist/nodes/Qsv/actions/executeGeoconvert.js +132 -0
  68. package/dist/nodes/Qsv/actions/executeGet.d.ts +2 -0
  69. package/dist/nodes/Qsv/actions/executeGet.js +166 -0
  70. package/dist/nodes/Qsv/actions/executeHeaders.d.ts +2 -0
  71. package/dist/nodes/Qsv/actions/executeHeaders.js +122 -0
  72. package/dist/nodes/Qsv/actions/executeImplode.d.ts +2 -0
  73. package/dist/nodes/Qsv/actions/executeImplode.js +136 -0
  74. package/dist/nodes/Qsv/actions/executeIndex.d.ts +2 -0
  75. package/dist/nodes/Qsv/actions/executeIndex.js +107 -0
  76. package/dist/nodes/Qsv/actions/executeInput.d.ts +2 -0
  77. package/dist/nodes/Qsv/actions/executeInput.js +146 -0
  78. package/dist/nodes/Qsv/actions/executeJoin.d.ts +2 -0
  79. package/dist/nodes/Qsv/actions/executeJoin.js +167 -0
  80. package/dist/nodes/Qsv/actions/executeJoinp.d.ts +2 -0
  81. package/dist/nodes/Qsv/actions/executeJoinp.js +243 -0
  82. package/dist/nodes/Qsv/actions/executeJson.d.ts +2 -0
  83. package/dist/nodes/Qsv/actions/executeJson.js +116 -0
  84. package/dist/nodes/Qsv/actions/executeJsonl.d.ts +2 -0
  85. package/dist/nodes/Qsv/actions/executeJsonl.js +119 -0
  86. package/dist/nodes/Qsv/actions/executeLens.d.ts +2 -0
  87. package/dist/nodes/Qsv/actions/executeLens.js +156 -0
  88. package/dist/nodes/Qsv/actions/executeLog.d.ts +2 -0
  89. package/dist/nodes/Qsv/actions/executeLog.js +111 -0
  90. package/dist/nodes/Qsv/actions/executeLuau.d.ts +2 -0
  91. package/dist/nodes/Qsv/actions/executeLuau.js +159 -0
  92. package/dist/nodes/Qsv/actions/executeMoarstats.d.ts +2 -0
  93. package/dist/nodes/Qsv/actions/executeMoarstats.js +155 -0
  94. package/dist/nodes/Qsv/actions/executePartition.d.ts +2 -0
  95. package/dist/nodes/Qsv/actions/executePartition.js +135 -0
  96. package/dist/nodes/Qsv/actions/executePivotp.d.ts +2 -0
  97. package/dist/nodes/Qsv/actions/executePivotp.js +162 -0
  98. package/dist/nodes/Qsv/actions/executePragmastat.d.ts +2 -0
  99. package/dist/nodes/Qsv/actions/executePragmastat.js +155 -0
  100. package/dist/nodes/Qsv/actions/executePro.d.ts +2 -0
  101. package/dist/nodes/Qsv/actions/executePro.js +114 -0
  102. package/dist/nodes/Qsv/actions/executeProfile.d.ts +2 -0
  103. package/dist/nodes/Qsv/actions/executeProfile.js +161 -0
  104. package/dist/nodes/Qsv/actions/executePrompt.d.ts +2 -0
  105. package/dist/nodes/Qsv/actions/executePrompt.js +132 -0
  106. package/dist/nodes/Qsv/actions/executePseudo.d.ts +2 -0
  107. package/dist/nodes/Qsv/actions/executePseudo.js +130 -0
  108. package/dist/nodes/Qsv/actions/executeReadstat.d.ts +2 -0
  109. package/dist/nodes/Qsv/actions/executeReadstat.js +155 -0
  110. package/dist/nodes/Qsv/actions/executeRename.d.ts +2 -0
  111. package/dist/nodes/Qsv/actions/executeRename.js +124 -0
  112. package/dist/nodes/Qsv/actions/executeReplace.d.ts +2 -0
  113. package/dist/nodes/Qsv/actions/executeReplace.js +150 -0
  114. package/dist/nodes/Qsv/actions/executeReverse.d.ts +2 -0
  115. package/dist/nodes/Qsv/actions/executeReverse.js +119 -0
  116. package/dist/nodes/Qsv/actions/executeSafenames.d.ts +2 -0
  117. package/dist/nodes/Qsv/actions/executeSafenames.js +128 -0
  118. package/dist/nodes/Qsv/actions/executeSample.d.ts +2 -0
  119. package/dist/nodes/Qsv/actions/executeSample.js +181 -0
  120. package/dist/nodes/Qsv/actions/executeSchema.d.ts +2 -0
  121. package/dist/nodes/Qsv/actions/executeSchema.js +149 -0
  122. package/dist/nodes/Qsv/actions/executeScoresql.d.ts +2 -0
  123. package/dist/nodes/Qsv/actions/executeScoresql.js +136 -0
  124. package/dist/nodes/Qsv/actions/executeSearch.d.ts +2 -0
  125. package/dist/nodes/Qsv/actions/executeSearch.js +163 -0
  126. package/dist/nodes/Qsv/actions/executeSearchset.d.ts +2 -0
  127. package/dist/nodes/Qsv/actions/executeSearchset.js +166 -0
  128. package/dist/nodes/Qsv/actions/executeSelect.d.ts +2 -0
  129. package/dist/nodes/Qsv/actions/executeSelect.js +130 -0
  130. package/dist/nodes/Qsv/actions/executeSlice.d.ts +2 -0
  131. package/dist/nodes/Qsv/actions/executeSlice.js +134 -0
  132. package/dist/nodes/Qsv/actions/executeSnappy.d.ts +2 -0
  133. package/dist/nodes/Qsv/actions/executeSnappy.js +120 -0
  134. package/dist/nodes/Qsv/actions/executeSniff.d.ts +2 -0
  135. package/dist/nodes/Qsv/actions/executeSniff.js +146 -0
  136. package/dist/nodes/Qsv/actions/executeSort.d.ts +2 -0
  137. package/dist/nodes/Qsv/actions/executeSort.js +149 -0
  138. package/dist/nodes/Qsv/actions/executeSortcheck.d.ts +2 -0
  139. package/dist/nodes/Qsv/actions/executeSortcheck.js +134 -0
  140. package/dist/nodes/Qsv/actions/executeSplit.d.ts +2 -0
  141. package/dist/nodes/Qsv/actions/executeSplit.js +142 -0
  142. package/dist/nodes/Qsv/actions/executeSqlp.d.ts +2 -0
  143. package/dist/nodes/Qsv/actions/executeSqlp.js +175 -0
  144. package/dist/nodes/Qsv/actions/executeStats.d.ts +2 -0
  145. package/dist/nodes/Qsv/actions/executeStats.js +206 -0
  146. package/dist/nodes/Qsv/actions/executeSynthesize.d.ts +2 -0
  147. package/dist/nodes/Qsv/actions/executeSynthesize.js +149 -0
  148. package/dist/nodes/Qsv/actions/executeTable.d.ts +2 -0
  149. package/dist/nodes/Qsv/actions/executeTable.js +128 -0
  150. package/dist/nodes/Qsv/actions/executeTemplate.d.ts +2 -0
  151. package/dist/nodes/Qsv/actions/executeTemplate.js +151 -0
  152. package/dist/nodes/Qsv/actions/executeTo.d.ts +2 -0
  153. package/dist/nodes/Qsv/actions/executeTo.js +167 -0
  154. package/dist/nodes/Qsv/actions/executeTojsonl.d.ts +2 -0
  155. package/dist/nodes/Qsv/actions/executeTojsonl.js +125 -0
  156. package/dist/nodes/Qsv/actions/executeTranspose.d.ts +2 -0
  157. package/dist/nodes/Qsv/actions/executeTranspose.js +125 -0
  158. package/dist/nodes/Qsv/actions/executeValidate.d.ts +2 -0
  159. package/dist/nodes/Qsv/actions/executeValidate.js +184 -0
  160. package/dist/nodes/Qsv/actions/executeViz.d.ts +2 -0
  161. package/dist/nodes/Qsv/actions/executeViz.js +354 -0
  162. package/dist/nodes/Qsv/actions/executeWritestat.d.ts +2 -0
  163. package/dist/nodes/Qsv/actions/executeWritestat.js +128 -0
  164. package/dist/nodes/Qsv/descriptions/ApplyDescription.d.ts +2 -0
  165. package/dist/nodes/Qsv/descriptions/ApplyDescription.js +249 -0
  166. package/dist/nodes/Qsv/descriptions/BeheadDescription.d.ts +2 -0
  167. package/dist/nodes/Qsv/descriptions/BeheadDescription.js +63 -0
  168. package/dist/nodes/Qsv/descriptions/Blake3Description.d.ts +2 -0
  169. package/dist/nodes/Qsv/descriptions/Blake3Description.js +112 -0
  170. package/dist/nodes/Qsv/descriptions/CatDescription.d.ts +2 -0
  171. package/dist/nodes/Qsv/descriptions/CatDescription.js +116 -0
  172. package/dist/nodes/Qsv/descriptions/CleanDescription.d.ts +2 -0
  173. package/dist/nodes/Qsv/descriptions/CleanDescription.js +140 -0
  174. package/dist/nodes/Qsv/descriptions/ClipboardDescription.d.ts +2 -0
  175. package/dist/nodes/Qsv/descriptions/ClipboardDescription.js +63 -0
  176. package/dist/nodes/Qsv/descriptions/ColorDescription.d.ts +2 -0
  177. package/dist/nodes/Qsv/descriptions/ColorDescription.js +91 -0
  178. package/dist/nodes/Qsv/descriptions/CountDescription.d.ts +2 -0
  179. package/dist/nodes/Qsv/descriptions/CountDescription.js +107 -0
  180. package/dist/nodes/Qsv/descriptions/DatefmtDescription.d.ts +2 -0
  181. package/dist/nodes/Qsv/descriptions/DatefmtDescription.js +167 -0
  182. package/dist/nodes/Qsv/descriptions/DedupDescription.d.ts +2 -0
  183. package/dist/nodes/Qsv/descriptions/DedupDescription.js +119 -0
  184. package/dist/nodes/Qsv/descriptions/DenullDescription.d.ts +2 -0
  185. package/dist/nodes/Qsv/descriptions/DenullDescription.js +119 -0
  186. package/dist/nodes/Qsv/descriptions/DescribegptDescription.d.ts +2 -0
  187. package/dist/nodes/Qsv/descriptions/DescribegptDescription.js +301 -0
  188. package/dist/nodes/Qsv/descriptions/DiffDescription.d.ts +2 -0
  189. package/dist/nodes/Qsv/descriptions/DiffDescription.js +146 -0
  190. package/dist/nodes/Qsv/descriptions/EditDescription.d.ts +2 -0
  191. package/dist/nodes/Qsv/descriptions/EditDescription.js +109 -0
  192. package/dist/nodes/Qsv/descriptions/EnumDescription.d.ts +2 -0
  193. package/dist/nodes/Qsv/descriptions/EnumDescription.js +126 -0
  194. package/dist/nodes/Qsv/descriptions/ExcelDescription.d.ts +2 -0
  195. package/dist/nodes/Qsv/descriptions/ExcelDescription.js +140 -0
  196. package/dist/nodes/Qsv/descriptions/ExcludeDescription.d.ts +2 -0
  197. package/dist/nodes/Qsv/descriptions/ExcludeDescription.js +130 -0
  198. package/dist/nodes/Qsv/descriptions/ExplodeDescription.d.ts +2 -0
  199. package/dist/nodes/Qsv/descriptions/ExplodeDescription.js +103 -0
  200. package/dist/nodes/Qsv/descriptions/ExtdedupDescription.d.ts +2 -0
  201. package/dist/nodes/Qsv/descriptions/ExtdedupDescription.js +112 -0
  202. package/dist/nodes/Qsv/descriptions/ExtsortDescription.d.ts +2 -0
  203. package/dist/nodes/Qsv/descriptions/ExtsortDescription.js +98 -0
  204. package/dist/nodes/Qsv/descriptions/FetchDescription.d.ts +2 -0
  205. package/dist/nodes/Qsv/descriptions/FetchDescription.js +223 -0
  206. package/dist/nodes/Qsv/descriptions/FetchpostDescription.d.ts +2 -0
  207. package/dist/nodes/Qsv/descriptions/FetchpostDescription.js +257 -0
  208. package/dist/nodes/Qsv/descriptions/FillDescription.d.ts +2 -0
  209. package/dist/nodes/Qsv/descriptions/FillDescription.js +111 -0
  210. package/dist/nodes/Qsv/descriptions/FixedwidthDescription.d.ts +2 -0
  211. package/dist/nodes/Qsv/descriptions/FixedwidthDescription.js +70 -0
  212. package/dist/nodes/Qsv/descriptions/FixlengthsDescription.d.ts +2 -0
  213. package/dist/nodes/Qsv/descriptions/FixlengthsDescription.js +98 -0
  214. package/dist/nodes/Qsv/descriptions/FlattenDescription.d.ts +2 -0
  215. package/dist/nodes/Qsv/descriptions/FlattenDescription.js +79 -0
  216. package/dist/nodes/Qsv/descriptions/FmtDescription.d.ts +2 -0
  217. package/dist/nodes/Qsv/descriptions/FmtDescription.js +119 -0
  218. package/dist/nodes/Qsv/descriptions/ForeachDescription.d.ts +2 -0
  219. package/dist/nodes/Qsv/descriptions/ForeachDescription.js +105 -0
  220. package/dist/nodes/Qsv/descriptions/FrequencyDescription.d.ts +2 -0
  221. package/dist/nodes/Qsv/descriptions/FrequencyDescription.js +301 -0
  222. package/dist/nodes/Qsv/descriptions/GeocodeDescription.d.ts +2 -0
  223. package/dist/nodes/Qsv/descriptions/GeocodeDescription.js +277 -0
  224. package/dist/nodes/Qsv/descriptions/GeoconvertDescription.d.ts +2 -0
  225. package/dist/nodes/Qsv/descriptions/GeoconvertDescription.js +110 -0
  226. package/dist/nodes/Qsv/descriptions/GetDescription.d.ts +2 -0
  227. package/dist/nodes/Qsv/descriptions/GetDescription.js +209 -0
  228. package/dist/nodes/Qsv/descriptions/HeadersDescription.d.ts +2 -0
  229. package/dist/nodes/Qsv/descriptions/HeadersDescription.js +79 -0
  230. package/dist/nodes/Qsv/descriptions/ImplodeDescription.d.ts +2 -0
  231. package/dist/nodes/Qsv/descriptions/ImplodeDescription.js +118 -0
  232. package/dist/nodes/Qsv/descriptions/IndexDescription.d.ts +2 -0
  233. package/dist/nodes/Qsv/descriptions/IndexDescription.js +43 -0
  234. package/dist/nodes/Qsv/descriptions/InputDescription.d.ts +2 -0
  235. package/dist/nodes/Qsv/descriptions/InputDescription.js +140 -0
  236. package/dist/nodes/Qsv/descriptions/JoinDescription.d.ts +2 -0
  237. package/dist/nodes/Qsv/descriptions/JoinDescription.js +193 -0
  238. package/dist/nodes/Qsv/descriptions/JoinpDescription.d.ts +2 -0
  239. package/dist/nodes/Qsv/descriptions/JoinpDescription.js +375 -0
  240. package/dist/nodes/Qsv/descriptions/JsonDescription.d.ts +2 -0
  241. package/dist/nodes/Qsv/descriptions/JsonDescription.js +70 -0
  242. package/dist/nodes/Qsv/descriptions/JsonlDescription.d.ts +2 -0
  243. package/dist/nodes/Qsv/descriptions/JsonlDescription.js +77 -0
  244. package/dist/nodes/Qsv/descriptions/LensDescription.d.ts +2 -0
  245. package/dist/nodes/Qsv/descriptions/LensDescription.js +161 -0
  246. package/dist/nodes/Qsv/descriptions/LogDescription.d.ts +2 -0
  247. package/dist/nodes/Qsv/descriptions/LogDescription.js +55 -0
  248. package/dist/nodes/Qsv/descriptions/LuauDescription.d.ts +2 -0
  249. package/dist/nodes/Qsv/descriptions/LuauDescription.js +176 -0
  250. package/dist/nodes/Qsv/descriptions/MoarstatsDescription.d.ts +2 -0
  251. package/dist/nodes/Qsv/descriptions/MoarstatsDescription.js +161 -0
  252. package/dist/nodes/Qsv/descriptions/PartitionDescription.d.ts +2 -0
  253. package/dist/nodes/Qsv/descriptions/PartitionDescription.js +112 -0
  254. package/dist/nodes/Qsv/descriptions/PivotpDescription.d.ts +2 -0
  255. package/dist/nodes/Qsv/descriptions/PivotpDescription.js +181 -0
  256. package/dist/nodes/Qsv/descriptions/PragmastatDescription.d.ts +2 -0
  257. package/dist/nodes/Qsv/descriptions/PragmastatDescription.js +161 -0
  258. package/dist/nodes/Qsv/descriptions/ProDescription.d.ts +2 -0
  259. package/dist/nodes/Qsv/descriptions/ProDescription.js +60 -0
  260. package/dist/nodes/Qsv/descriptions/ProfileDescription.d.ts +2 -0
  261. package/dist/nodes/Qsv/descriptions/ProfileDescription.js +175 -0
  262. package/dist/nodes/Qsv/descriptions/PromptDescription.d.ts +2 -0
  263. package/dist/nodes/Qsv/descriptions/PromptDescription.js +105 -0
  264. package/dist/nodes/Qsv/descriptions/PseudoDescription.d.ts +2 -0
  265. package/dist/nodes/Qsv/descriptions/PseudoDescription.js +104 -0
  266. package/dist/nodes/Qsv/descriptions/ReadstatDescription.d.ts +2 -0
  267. package/dist/nodes/Qsv/descriptions/ReadstatDescription.js +161 -0
  268. package/dist/nodes/Qsv/descriptions/RenameDescription.d.ts +2 -0
  269. package/dist/nodes/Qsv/descriptions/RenameDescription.js +90 -0
  270. package/dist/nodes/Qsv/descriptions/ReplaceDescription.d.ts +2 -0
  271. package/dist/nodes/Qsv/descriptions/ReplaceDescription.js +152 -0
  272. package/dist/nodes/Qsv/descriptions/ReverseDescription.d.ts +2 -0
  273. package/dist/nodes/Qsv/descriptions/ReverseDescription.js +77 -0
  274. package/dist/nodes/Qsv/descriptions/SafenamesDescription.d.ts +2 -0
  275. package/dist/nodes/Qsv/descriptions/SafenamesDescription.js +98 -0
  276. package/dist/nodes/Qsv/descriptions/SampleDescription.d.ts +2 -0
  277. package/dist/nodes/Qsv/descriptions/SampleDescription.js +230 -0
  278. package/dist/nodes/Qsv/descriptions/SchemaDescription.d.ts +2 -0
  279. package/dist/nodes/Qsv/descriptions/SchemaDescription.js +147 -0
  280. package/dist/nodes/Qsv/descriptions/ScoresqlDescription.d.ts +2 -0
  281. package/dist/nodes/Qsv/descriptions/ScoresqlDescription.js +118 -0
  282. package/dist/nodes/Qsv/descriptions/SearchDescription.d.ts +2 -0
  283. package/dist/nodes/Qsv/descriptions/SearchDescription.js +181 -0
  284. package/dist/nodes/Qsv/descriptions/SearchsetDescription.d.ts +2 -0
  285. package/dist/nodes/Qsv/descriptions/SearchsetDescription.js +188 -0
  286. package/dist/nodes/Qsv/descriptions/SelectDescription.d.ts +2 -0
  287. package/dist/nodes/Qsv/descriptions/SelectDescription.js +104 -0
  288. package/dist/nodes/Qsv/descriptions/SliceDescription.d.ts +2 -0
  289. package/dist/nodes/Qsv/descriptions/SliceDescription.js +112 -0
  290. package/dist/nodes/Qsv/descriptions/SnappyDescription.d.ts +2 -0
  291. package/dist/nodes/Qsv/descriptions/SnappyDescription.js +82 -0
  292. package/dist/nodes/Qsv/descriptions/SniffDescription.d.ts +2 -0
  293. package/dist/nodes/Qsv/descriptions/SniffDescription.js +135 -0
  294. package/dist/nodes/Qsv/descriptions/SortDescription.d.ts +2 -0
  295. package/dist/nodes/Qsv/descriptions/SortDescription.js +147 -0
  296. package/dist/nodes/Qsv/descriptions/SortcheckDescription.d.ts +2 -0
  297. package/dist/nodes/Qsv/descriptions/SortcheckDescription.js +107 -0
  298. package/dist/nodes/Qsv/descriptions/SplitDescription.d.ts +2 -0
  299. package/dist/nodes/Qsv/descriptions/SplitDescription.js +127 -0
  300. package/dist/nodes/Qsv/descriptions/SqlpDescription.d.ts +2 -0
  301. package/dist/nodes/Qsv/descriptions/SqlpDescription.js +209 -0
  302. package/dist/nodes/Qsv/descriptions/StatsDescription.d.ts +2 -0
  303. package/dist/nodes/Qsv/descriptions/StatsDescription.js +280 -0
  304. package/dist/nodes/Qsv/descriptions/SynthesizeDescription.d.ts +2 -0
  305. package/dist/nodes/Qsv/descriptions/SynthesizeDescription.js +147 -0
  306. package/dist/nodes/Qsv/descriptions/TableDescription.d.ts +2 -0
  307. package/dist/nodes/Qsv/descriptions/TableDescription.js +98 -0
  308. package/dist/nodes/Qsv/descriptions/TemplateDescription.d.ts +2 -0
  309. package/dist/nodes/Qsv/descriptions/TemplateDescription.js +153 -0
  310. package/dist/nodes/Qsv/descriptions/ToDescription.d.ts +2 -0
  311. package/dist/nodes/Qsv/descriptions/ToDescription.js +190 -0
  312. package/dist/nodes/Qsv/descriptions/TojsonlDescription.d.ts +2 -0
  313. package/dist/nodes/Qsv/descriptions/TojsonlDescription.js +91 -0
  314. package/dist/nodes/Qsv/descriptions/TransposeDescription.d.ts +2 -0
  315. package/dist/nodes/Qsv/descriptions/TransposeDescription.js +91 -0
  316. package/dist/nodes/Qsv/descriptions/ValidateDescription.d.ts +2 -0
  317. package/dist/nodes/Qsv/descriptions/ValidateDescription.js +234 -0
  318. package/dist/nodes/Qsv/descriptions/VizDescription.d.ts +2 -0
  319. package/dist/nodes/Qsv/descriptions/VizDescription.js +648 -0
  320. package/dist/nodes/Qsv/descriptions/WritestatDescription.d.ts +2 -0
  321. package/dist/nodes/Qsv/descriptions/WritestatDescription.js +98 -0
  322. package/dist/nodes/Qsv/qsv.svg +7 -0
  323. package/index.js +2 -0
  324. package/package.json +64 -3
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Data Artifex
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,375 @@
1
- # Temporary Holding Version
1
+ # n8n Community Node for datHere QSV (`@dartfx/n8n-nodes-qsv`)
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![npm version](https://img.shields.io/npm/v/@dartfx/n8n-nodes-qsv.svg)](https://www.npmjs.com/package/@dartfx/n8n-nodes-qsv)
4
+ [![CI](https://github.com/DataArtifex/dartfx-n8n/actions/workflows/ci.yml/badge.svg)](https://github.com/DataArtifex/dartfx-n8n/actions/workflows/ci.yml)
5
+ [![Docs](https://github.com/DataArtifex/dartfx-n8n/actions/workflows/sphinx.yaml/badge.svg)](https://dataartifex.github.io/dartfx-n8n/)
6
+ [![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-6366f1.svg)](https://deepwiki.com/DataArtifex/dartfx-n8n)
7
+ [![n8n Community Node](https://img.shields.io/badge/n8n-community--node-ea4b71.svg)](https://docs.n8n.io/integrations/community-nodes/)
8
+ [![Powered by QSV](https://img.shields.io/badge/powered%20by-QSV-orange.svg)](https://github.com/dathere/qsv)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
+
11
+ > [!NOTE]
12
+ > Node APIs, parameters, and operation interfaces in `@dartfx/n8n-nodes-qsv` are actively expanding. Please report any issues or feature requests on [GitHub Issues](https://github.com/DataArtifex/dartfx-n8n/issues).
13
+
14
+ A custom [n8n](https://n8n.io/) community node for ultra-fast, zero-copy tabular data wrangling, transformation, validation, and analytics powered by [datHere QSV](https://github.com/dathere/qsv).
15
+
16
+ ---
17
+
18
+ ## โšก Key Features
19
+
20
+ - **File Path-First (Zero-Copy Architecture)**: Pass filesystem paths (`inputPath`, `outputPath`) between nodes to stream multi-gigabyte datasets directly through native Rust engines without overwhelming n8n memory. Downstream nodes can chain output directly with `{{ $json.outputPath }}`.
21
+ - **First-Class Positional & Typed Parameters**: Intuitive UI form fields for command-specific arguments (e.g. `selection` for `select`, `regex` for `search`, `sampleSize` for `sample`, `sql` for `sqlp`, `column`/`row`/`value` for `edit`) with precise docopt CLI argument ordering.
22
+ - **73+ Automated QSV Operations**: Full suite of high-performance tabular operations:
23
+ - **Profiling & Analysis**: `stats`, `frequency`, `schema`, `sniff`, `count`, `moarstats`, `pragmastat`, `profile`
24
+ - **Transformation & Cleaning**: `apply`, `behead`, `dedup`, `denull`, `fill`, `flatten`, `fmt`, `replace`, `safenames`, `rename`, `pseudo`, `edit`
25
+ - **Slicing, Search & Sampling**: `index`, `slice`, `search`, `searchset`, `select`, `sample`, `split`, `partition`
26
+ - **High-Speed SQL & Joins**: `sqlp` (Polars SQL engine), `join`, `joinp`, `pivotp`, `diff`, `explode`, `implode`
27
+ - **Format Conversions**: `to` (Parquet, XLSX, SQLite, Postgres, ODS, DataPackage), `excel`, `json`, `jsonl`, `tojsonl`, `fixedwidth`, `geoconvert`
28
+ - **AI & Web Services**: `describegpt` (LLM metadata/chat), `fetch`, `fetchpost`, `geocode`
29
+ - **Advanced Scripting & Validation**: `luau` embedded scripting, `validate` (JSON Schema / RFC4180), `blake3` cryptographic hashing, `synthesize` (statistical test data generation)
30
+ - **Feature-Gated Command Diagnostics**: Tagged feature requirements in UI dropdowns (`[Feature: polars]`, `[Feature: synthesize]`, `[Feature: luau]`) with actionable `NodeOperationError` guidance if a host binary lacks a compiled feature.
31
+ - **Dynamic CLI Synchronizer**: `pnpm run generate:qsv` automatically queries `qsv --list` and keeps all node definitions and parameter forms synchronized with your installed QSV binary.
32
+
33
+ ---
34
+
35
+ ## ๐Ÿ“ฆ Installation
36
+
37
+ ### In self-hosted n8n instances:
38
+
39
+ Follow the [n8n Community Nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/):
40
+
41
+ 1. Go to **Settings > Community Nodes**.
42
+ 2. Select **Install**.
43
+ 3. Enter `@dartfx/n8n-nodes-qsv`.
44
+ 4. Agree to the risks and select **Install**.
45
+
46
+ ---
47
+
48
+ ## ๐Ÿ›  System Prerequisites
49
+
50
+ This community node executes the high-performance **[QSV CLI](https://github.com/dathere/qsv)** under the hood. The `qsv` binary **must be installed and accessible in the system `$PATH`** where n8n is running.
51
+
52
+ > [!IMPORTANT]
53
+ > **n8n 3.0+ Docker Deployment Requirement:**
54
+ > Starting with **n8n 3.0**, self-hosted n8n requires a **Docker-based deployment** (bare `npm` / `npx n8n` installations are deprecated/removed). Because the official n8n Docker image does not include the native `qsv` binary, you must either:
55
+ >
56
+ > 1. Use a **custom multi-stage Dockerfile** (recommended below) to bake `qsv` into your runtime container.
57
+ > 2. Mount a host-compiled `qsv` binary into `/usr/local/bin/qsv` in your container.
58
+
59
+ ### 1. Host Installation (n8n v1 / v2 or Local Development)
60
+
61
+ - **macOS (Homebrew)**:
62
+ ```bash
63
+ brew install qsv
64
+ ```
65
+ - **Debian / Ubuntu / Linux**:
66
+ Download pre-compiled binaries from [QSV GitHub Releases](https://github.com/dathere/qsv/releases) or build via Cargo:
67
+ ```bash
68
+ cargo install qsv --locked --bin qsv --features all_features
69
+ ```
70
+ - **Windows**:
71
+ ```powershell
72
+ scoop install qsv
73
+ # or
74
+ choco install qsv
75
+ ```
76
+
77
+ ### 2. Docker / Self-Hosted n8n Container (Required for n8n 3.0+)
78
+
79
+ If you run n8n using Docker (standard for n8n 3.0+), create a custom multi-stage Dockerfile that fetches the versioned `qsv` binary:
80
+
81
+ ```dockerfile
82
+ # Stage 1: Fetch and unpack the QSV binary
83
+ FROM alpine:latest AS qsv-fetcher
84
+
85
+ # See https://github.com/dathere/qsv/releases for latest
86
+ ARG QSV_VERSION=23.0.1
87
+ RUN apk add --no-cache curl unzip \
88
+ && ARCH=$(uname -m) \
89
+ && if [ "$ARCH" = "x86_64" ]; then \
90
+ QSV_ARCH="x86_64-unknown-linux-musl"; \
91
+ elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then \
92
+ QSV_ARCH="aarch64-unknown-linux-gnu"; \
93
+ else \
94
+ QSV_ARCH="x86_64-unknown-linux-musl"; \
95
+ fi \
96
+ && curl -fsSL "https://github.com/dathere/qsv/releases/download/${QSV_VERSION}/qsv-${QSV_VERSION}-${QSV_ARCH}.zip" -o /tmp/qsv.zip \
97
+ && unzip -q -o /tmp/qsv.zip qsv -d /usr/local/bin/ \
98
+ && chmod +x /usr/local/bin/qsv
99
+
100
+ # Stage 2: n8n runtime image
101
+ FROM docker.n8n.io/n8nio/n8n:latest
102
+
103
+ USER root
104
+ COPY --from=qsv-fetcher /usr/local/bin/qsv /usr/local/bin/qsv
105
+ USER node
106
+ ```
107
+
108
+ #### Docker Compose Example (`docker-compose.yml`)
109
+
110
+ ```yaml
111
+ services:
112
+ n8n:
113
+ build:
114
+ context: .
115
+ dockerfile: Dockerfile
116
+ restart: unless-stopped
117
+ ports:
118
+ - "5678:5678"
119
+ environment:
120
+ - N8N_COMMUNITY_PACKAGES_ENABLED=true
121
+ - DARTFX_QSV_BIN_PATH=/usr/local/bin/qsv
122
+ volumes:
123
+ - n8n_data:/home/node/.n8n
124
+ - ./data:/data
125
+
126
+ volumes:
127
+ n8n_data:
128
+ ```
129
+
130
+ > [!TIP]
131
+ > **Pre-Baking `@dartfx/n8n-nodes-qsv` (Immutable Containers):**
132
+ > If you want the community node package pre-installed inside the image (no in-app installation step required), add this to the end of your `Dockerfile`:
133
+ > ```dockerfile
134
+ > USER node
135
+ > RUN cd ~/.n8n && npm install @dartfx/n8n-nodes-qsv
136
+ > ```
137
+
138
+ ### 3. Environment Variables (Custom Binary Path)
139
+
140
+ If `qsv` is installed in a non-standard location or outside your default `$PATH`, configure one of the following environment variables on your n8n instance:
141
+
142
+ | Variable | Description | Default |
143
+ | :-------------------------- | :------------------------------------------------------------ | :------ |
144
+ | `DARTFX_QSV_BIN_PATH` | Primary override for the QSV binary path used by DartFX nodes | โ€” |
145
+ | `QSV_BIN_PATH` / `QSV_PATH` | Generic fallback QSV binary path | โ€” |
146
+ | _(Fallback)_ | System `$PATH` resolution | `qsv` |
147
+
148
+ **Example in `.env` / Docker Compose:**
149
+
150
+ ```env
151
+ DARTFX_QSV_BIN_PATH=/opt/custom/bin/qsv
152
+ ```
153
+
154
+ - **Node.js**: v22+ (for local development & building)
155
+
156
+ ---
157
+
158
+ ## ๐Ÿ“ Versioning & Compatibility Strategy
159
+
160
+ This package follows a decoupled versioning model to support multiple independent node collections (e.g. QSV, Data Artifex FAIRification, Harvester):
161
+
162
+ ### 1. Package Semantic Versioning (`@dartfx/n8n-nodes-qsv`)
163
+
164
+ - The package follows standard [Semantic Versioning](https://semver.org/) (starting at `0.1.0`).
165
+ - Package releases are **independent** of external CLI versioning numbers.
166
+ - **Patch (`0.1.x`)**: Bug fixes, parameter corrections, and docs across any node collection.
167
+ - **Minor (`0.x.0`)**: Adding new node collections, new operations, or non-breaking features.
168
+ - **Major (`1.0.0`)**: Breaking changes in workflow node interfaces or execution contracts.
169
+
170
+ ### 2. External Dependency Compatibility Matrix
171
+
172
+ Node collections that wrap host binaries declare and verify their target CLI versions:
173
+
174
+ | Node Collection | Host Requirement | Tested / Target CLI Version | Notes |
175
+ | :---------------------------- | :---------------------- | :-------------------------- | :------------------------------------------------ |
176
+ | **QSV Data Wrangler** (`qsv`) | `qsv` binary in `$PATH` | `v23.0.1` (`>= 23.0.0`) | Generated dynamically via `pnpm run generate:qsv` |
177
+ | **DartFx FAIR Nodes** | None (pure JS/TS) | N/A | Fully self-contained |
178
+
179
+ ### 3. Workflow Upgrade Behavior in n8n
180
+
181
+ - **Non-breaking releases (Same `typeVersion: 1`)**: When an n8n instance installs a package update, existing workflows immediately execute the latest code without manual node re-configuration.
182
+ - **Breaking schema changes (`typeVersion: 2+`)**: If a node introduces breaking parameter schema changes, existing workflows remain safely pinned to `typeVersion: 1` until manually upgraded by the user in the n8n canvas.
183
+
184
+ ---
185
+
186
+ ## ๐Ÿ’ป Development & Local Testing
187
+
188
+ ### 1. Setup & Build
189
+
190
+ ```bash
191
+ # Clone repository
192
+ git clone https://github.com/DataArtifex/dartfx-n8n.git
193
+ cd dartfx-n8n
194
+
195
+ # Use supported Node LTS (20/22)
196
+ nvm use
197
+
198
+ # Install dependencies
199
+ pnpm install
200
+
201
+ # Regenerate QSV node definitions from latest CLI help (if updating QSV commands)
202
+ pnpm run generate:qsv
203
+
204
+ # Build package
205
+ pnpm run build
206
+
207
+ # Watch mode for active development
208
+ pnpm run dev
209
+ ```
210
+
211
+ ---
212
+
213
+ ### 2. Testing with a Local n8n Instance
214
+
215
+ #### Method A: Docker Volume Mount (Standard & Required for n8n 3.0+)
216
+
217
+ For n8n 3.0+ or any Docker-based instance, mount your local built repository into the container's custom nodes folder:
218
+
219
+ ```bash
220
+ docker run -it --rm \
221
+ --name n8n \
222
+ -p 5678:5678 \
223
+ -v ~/.n8n:/home/node/.n8n \
224
+ -v $(pwd):/home/node/.n8n/custom/node_modules/@dartfx/n8n-nodes-qsv:ro \
225
+ -v /path/to/local/qsv:/usr/local/bin/qsv:ro \
226
+ docker.n8n.io/n8nio/n8n:latest
227
+ ```
228
+
229
+ _(Note: `qsv` CLI must be mounted or baked into the Docker container's `$PATH` for QSV nodes to execute)._
230
+
231
+ #### Method B: Direct Local Link with `pnpm link <dir>` (n8n v1 / v2 Bare CLI)
232
+
233
+ If running an older n8n v1 or v2 instance directly via Node / npm on your host machine:
234
+
235
+ ```bash
236
+ mkdir -p ~/.n8n/custom
237
+ cd ~/.n8n/custom
238
+ pnpm link /path/to/dartfx-n8n
239
+
240
+ # Start n8n
241
+ n8n start
242
+ ```
243
+
244
+ > **๐Ÿ”„ Do changes auto-refresh?**
245
+ >
246
+ > - **Recompilation**: Running `pnpm run dev` automatically recompiles TypeScript into `dist/` on save.
247
+ > - **n8n Process**: **No**, n8n caches loaded node modules in memory on startup. You must **stop and restart n8n** (and reload your browser tab) whenever you update node code for changes to take effect.
248
+
249
+ #### Method C: Traditional 2-Step `npm link` (n8n v1 / v2 Bare CLI)
250
+
251
+ ```bash
252
+ # Step 1: Register package globally
253
+ cd /path/to/dartfx-n8n
254
+ npm link
255
+
256
+ # Step 2: Link into n8n custom directory
257
+ mkdir -p ~/.n8n/custom
258
+ cd ~/.n8n/custom
259
+ npm link @dartfx/n8n-nodes-qsv
260
+
261
+ # Start n8n
262
+ n8n start
263
+ ```
264
+
265
+ ---
266
+
267
+ ### 3. Troubleshooting & Permissions
268
+
269
+ #### macOS External Drive Permissions (`/Volumes/...` / `os error 2` / `os error 1`)
270
+
271
+ If you see errors like:
272
+
273
+ ```text
274
+ Failed executing 'qsv count': io error: No such file or directory (os error 2)
275
+ # or
276
+ io error: Operation not permitted (os error 1)
277
+ ```
278
+
279
+ when accessing files on external drives (under `/Volumes/<DriveName>/...`):
280
+
281
+ 1. macOS restricts child processes spawned by Node from accessing external drives without user consent.
282
+ 2. Go to **System Settings** > **Privacy & Security** > **Files and Folders** (or **Full Disk Access**).
283
+ 3. Locate the application where you run `n8n` (e.g. **Terminal**, **iTerm2**, **VS Code**, or **Ghostty**).
284
+ 4. Ensure **Removable Volumes** (and/or **Full Disk Access**) is toggled **ON**.
285
+ 5. Restart your terminal / n8n session.
286
+
287
+ #### Docker Filesystem Paths
288
+
289
+ If n8n is running inside Docker, host filesystem paths like `/Volumes/...` or `/Users/...` are **not visible** inside the container by default. You must volume-mount the data directory into the container:
290
+
291
+ ```bash
292
+ -v /Volumes/MyExternalDrive/data:/data:ro
293
+ ```
294
+
295
+ and then reference the path inside n8n as `/data/myfile.csv`.
296
+
297
+ ---
298
+
299
+ ## ๐Ÿš€ Deployment & Publishing (Staging & Production)
300
+
301
+ ### ๐Ÿ” 1. Authentication Setup
302
+
303
+ Publishing scoped packages under the `@dartfx` organization requires an npm access token:
304
+
305
+ - **In your local environment (user-level `~/.npmrc`):**
306
+ ```bash
307
+ pnpm config set "//registry.npmjs.org/:_authToken" "YOUR_NPM_TOKEN" --location=global
308
+ ```
309
+ - **In GitHub Actions Secrets (CI/CD):**
310
+ Set `DARTFX_NODE_AUTH_TOKEN` (or `NODE_AUTH_TOKEN` / `NPM_TOKEN`) in **Settings > Secrets and variables > Actions**.
311
+
312
+ ---
313
+
314
+ ### ๐Ÿงช 2. Staging Deployment (Isolated Pre-Release)
315
+
316
+ To test the package in a live n8n instance without replacing or affecting the production `latest` release:
317
+
318
+ 1. **Simulate package build & inspect tarball (Zero Risk):**
319
+ ```bash
320
+ pnpm publish --dry-run --no-git-checks
321
+ ```
322
+
323
+ 2. **Set a pre-release version without creating a Git tag:**
324
+ ```bash
325
+ pnpm version 0.2.0-staging.0 --no-git-tag-version
326
+ ```
327
+
328
+ 3. **Publish to npm with the `staging` dist-tag:**
329
+ ```bash
330
+ pnpm publish --tag staging --access public --no-git-checks
331
+ ```
332
+
333
+ 4. **Install and verify in n8n:**
334
+ In n8n (**Settings > Community Nodes > Install**), specify:
335
+ ```text
336
+ @dartfx/n8n-nodes-qsv@staging
337
+ ```
338
+ *(or exact version `@dartfx/n8n-nodes-qsv@0.2.0-staging.0`)*
339
+
340
+ ---
341
+
342
+ ### ๐Ÿšข 3. Production Deployment
343
+
344
+ #### Option A: Automated via Git Tag & GitHub Actions (Recommended)
345
+
346
+ Pushing an annotated version tag triggers the [.github/workflows/publish.yml](.github/workflows/publish.yml) workflow:
347
+
348
+ ```bash
349
+ # 1. Clean working tree and run checks
350
+ pnpm run lint && pnpm run test && pnpm run build
351
+
352
+ # 2. Bump production version and create git tag
353
+ pnpm version patch -m "chore(release): %s" # or minor / major
354
+
355
+ # 3. Push commit and tag to GitHub
356
+ git push origin main --follow-tags
357
+ ```
358
+
359
+ #### Option B: Promote Existing Staged Version to Production
360
+
361
+ Promote a tested staging release to `latest` without rebuilding:
362
+
363
+ ```bash
364
+ npm dist-tag add @dartfx/n8n-nodes-qsv@0.2.0-staging.0 latest
365
+ ```
366
+
367
+ #### Option C: Manual CLI Production Publish
368
+
369
+ ```bash
370
+ pnpm publish --tag latest --access public
371
+ ```
372
+
373
+ ---
374
+
375
+ See [AGENT.md](AGENT.md) for full architecture and development workflows, and [RELEASING.md](RELEASING.md) for detailed release policies and semver guide.
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Qsv implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }