@xano/xanoscript-language-server 11.12.2 → 12.0.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 (338) hide show
  1. package/onCheckError/onCheckError.js +35 -28
  2. package/package.json +25 -1
  3. package/.claude/memory/feedback_no_git.md +0 -11
  4. package/.claude/settings.local.json +0 -21
  5. package/.github/copilot-instructions.md +0 -190
  6. package/.github/workflows/ci.yml +0 -31
  7. package/.husky/pre-commit +0 -1
  8. package/CLAUDE.md +0 -256
  9. package/eslint.config.js +0 -24
  10. package/lexer/comment.spec.js +0 -77
  11. package/lexer/multiline.spec.js +0 -179
  12. package/lexer/regexp.spec.js +0 -84
  13. package/lexer/tests/query/query_lexer.spec.js +0 -36
  14. package/lexer/tests/query/valid_sources/basic_query.xs +0 -44
  15. package/lexer/tests/query/valid_sources/db_query.xs +0 -77
  16. package/lexer/tests/query/valid_sources/empty_query.xs +0 -5
  17. package/lexer/tests/query/valid_sources/header_query.xs +0 -15
  18. package/lexer/tests/table/basic_table.xs +0 -17
  19. package/lexer/tests/table/empty_table.xs +0 -3
  20. package/lexer/tests/table/table_lexer.spec.js +0 -324
  21. package/lexer/utils.spec.js +0 -61
  22. package/onCompletion/contentAssist.spec.js +0 -275
  23. package/onDefinition/onDefinition.spec.js +0 -313
  24. package/onHover/FilterMessageProvider.spec.js +0 -85
  25. package/onHover/FunctionMessageProvider.spec.js +0 -128
  26. package/onHover/InputFilterMessageProvider.spec.js +0 -329
  27. package/onHover/QueryFilterMessageProvider.spec.js +0 -164
  28. package/onHover/onHoverDocument.spec.js +0 -660
  29. package/parser/addon_parser.spec.js +0 -88
  30. package/parser/agent_parser.spec.js +0 -599
  31. package/parser/agent_trigger_parser.spec.js +0 -525
  32. package/parser/api_group_parser.spec.js +0 -137
  33. package/parser/attributes/columnDefaultValueAttribute.spec.js +0 -49
  34. package/parser/attributes/descriptionFieldAttribute.spec.js +0 -39
  35. package/parser/attributes/disabledFieldAttribute.spec.js +0 -34
  36. package/parser/attributes/docsFieldAttribute.spec.js +0 -44
  37. package/parser/attributes/guidFieldAttribute.spec.js +0 -93
  38. package/parser/attributes/inputFilterFn.spec.js +0 -39
  39. package/parser/attributes/sensitiveFieldAttribute.spec.js +0 -39
  40. package/parser/attributes/valueFieldAttribute.spec.js +0 -54
  41. package/parser/attributes/valuesFieldAttribute.spec.js +0 -44
  42. package/parser/attributes/visibilityFieldAttribute.spec.js +0 -44
  43. package/parser/branch_parser.spec.js +0 -34
  44. package/parser/clauses/agentClause.spec.js +0 -34
  45. package/parser/clauses/authClause.spec.js +0 -39
  46. package/parser/clauses/cacheClause.spec.js +0 -103
  47. package/parser/clauses/canonicalClause.spec.js +0 -34
  48. package/parser/clauses/channelClause.spec.js +0 -34
  49. package/parser/clauses/dbTableClause.spec.js +0 -34
  50. package/parser/clauses/historyClause.spec.js +0 -53
  51. package/parser/clauses/indexClause.spec.js +0 -47
  52. package/parser/clauses/inputClause.spec.js +0 -96
  53. package/parser/clauses/mcpServerClause.spec.js +0 -34
  54. package/parser/clauses/middlewareClause.spec.js +0 -161
  55. package/parser/clauses/nakedStackFn.spec.js +0 -73
  56. package/parser/clauses/responseClause.spec.js +0 -47
  57. package/parser/clauses/scheduleClause.spec.js +0 -71
  58. package/parser/clauses/schemaClause.spec.js +0 -102
  59. package/parser/clauses/testClause.spec.js +0 -69
  60. package/parser/clauses/viewClause.spec.js +0 -163
  61. package/parser/definitions/arraySlice.spec.js +0 -49
  62. package/parser/definitions/columnDefinition.spec.js +0 -199
  63. package/parser/definitions/dbLinkColumnDefinition.spec.js +0 -45
  64. package/parser/definitions/enumColumnDefinition.spec.js +0 -108
  65. package/parser/definitions/filterDefinition.spec.js +0 -43
  66. package/parser/definitions/objectColumnDefinition.spec.js +0 -118
  67. package/parser/function_parser.spec.js +0 -131
  68. package/parser/functions/actionCallFn.spec.js +0 -51
  69. package/parser/functions/addonCallFn.spec.js +0 -41
  70. package/parser/functions/ai/aiAgentRunFn.spec.js +0 -94
  71. package/parser/functions/ai/aiExternalMcpServerDetailsFn.spec.js +0 -85
  72. package/parser/functions/ai/aiExternalMcpToolListFn.spec.js +0 -85
  73. package/parser/functions/ai/aiExternalMcpToolRunFn.spec.js +0 -101
  74. package/parser/functions/aiFn.spec.js +0 -51
  75. package/parser/functions/api/apiCallFn.spec.js +0 -62
  76. package/parser/functions/api/apiLambdaFn.spec.js +0 -63
  77. package/parser/functions/api/apiRealtimeEventFn.spec.js +0 -82
  78. package/parser/functions/api/apiRequestFn.spec.js +0 -113
  79. package/parser/functions/api/apiStreamFn.spec.js +0 -44
  80. package/parser/functions/api/webflowRequestFn.spec.js +0 -114
  81. package/parser/functions/array/arrayDifferenceFn.spec.js +0 -34
  82. package/parser/functions/array/arrayFindFn.spec.js +0 -44
  83. package/parser/functions/array/arrayGroupByFn.spec.js +0 -41
  84. package/parser/functions/array/arrayIntersectionFn.spec.js +0 -22
  85. package/parser/functions/array/arrayMapFn.spec.js +0 -37
  86. package/parser/functions/array/arrayNoValueAs.spec.js +0 -56
  87. package/parser/functions/array/arrayPartitionFn.spec.js +0 -29
  88. package/parser/functions/array/arrayUnionFn.spec.js +0 -22
  89. package/parser/functions/array/arrayValueIfAs.spec.js +0 -54
  90. package/parser/functions/array/arrayValueOnly.spec.js +0 -61
  91. package/parser/functions/array/valueAttrOnly.spec.js +0 -61
  92. package/parser/functions/cloud/cloudAlgoliaRequestFn.spec.js +0 -30
  93. package/parser/functions/cloud/cloudAwsS3Fn.spec.js +0 -21
  94. package/parser/functions/cloud/cloudDeleteFileFn.spec.js +0 -25
  95. package/parser/functions/cloud/cloudGetFileInfoFn.spec.js +0 -25
  96. package/parser/functions/cloud/cloudListDirectoryFn.spec.js +0 -26
  97. package/parser/functions/cloud/cloudReadFileFn.spec.js +0 -25
  98. package/parser/functions/cloud/cloudSearchDocumentFn.spec.js +0 -28
  99. package/parser/functions/cloud/cloudSearchQueryFn.spec.js +0 -32
  100. package/parser/functions/cloud/cloudSearchRequestFn.spec.js +0 -32
  101. package/parser/functions/cloud/cloudSignUrlFn.spec.js +0 -26
  102. package/parser/functions/cloud/cloudStorageFn.spec.js +0 -21
  103. package/parser/functions/cloud/cloudUploadFileFn.spec.js +0 -29
  104. package/parser/functions/controls/awaitFn.spec.js +0 -48
  105. package/parser/functions/controls/conditionalFn.spec.js +0 -188
  106. package/parser/functions/controls/forEachFn.spec.js +0 -109
  107. package/parser/functions/controls/forFn.spec.js +0 -85
  108. package/parser/functions/controls/functionRunFn.spec.js +0 -87
  109. package/parser/functions/controls/groupFn.spec.js +0 -63
  110. package/parser/functions/controls/preconditionFn.spec.js +0 -107
  111. package/parser/functions/controls/returnFn.spec.js +0 -44
  112. package/parser/functions/controls/switchFn.spec.js +0 -118
  113. package/parser/functions/controls/throwFn.spec.js +0 -56
  114. package/parser/functions/controls/tryCatchFn.spec.js +0 -193
  115. package/parser/functions/controls/whileFn.spec.js +0 -94
  116. package/parser/functions/db/dbAddFn.spec.js +0 -72
  117. package/parser/functions/db/dbAddOrEditFn.spec.js +0 -97
  118. package/parser/functions/db/dbBulkAddFn.spec.js +0 -94
  119. package/parser/functions/db/dbBulkDeleteFn.spec.js +0 -28
  120. package/parser/functions/db/dbBulkPatchFn.spec.js +0 -42
  121. package/parser/functions/db/dbBulkUpdateFn.spec.js +0 -42
  122. package/parser/functions/db/dbDelFn.spec.js +0 -67
  123. package/parser/functions/db/dbDirectQueryFn.spec.js +0 -104
  124. package/parser/functions/db/dbEditFn.spec.js +0 -122
  125. package/parser/functions/db/dbExternalDirectQueryFn.spec.js +0 -103
  126. package/parser/functions/db/dbGetFn.spec.js +0 -117
  127. package/parser/functions/db/dbHasFn.spec.js +0 -62
  128. package/parser/functions/db/dbPatchFn.spec.js +0 -88
  129. package/parser/functions/db/dbQueryFn.spec.js +0 -380
  130. package/parser/functions/db/dbSchemaFn.spec.js +0 -42
  131. package/parser/functions/db/dbSetDatasourceFn.spec.js +0 -44
  132. package/parser/functions/db/dbTransactionFn.spec.js +0 -63
  133. package/parser/functions/db/dbTruncateFn.spec.js +0 -42
  134. package/parser/functions/debug/debugLogFn.spec.js +0 -44
  135. package/parser/functions/debug/debugStopFn.spec.js +0 -44
  136. package/parser/functions/expect/unitExpectToBeWithinFn.spec.js +0 -63
  137. package/parser/functions/expect/unitExpectToThrowFn.spec.js +0 -40
  138. package/parser/functions/expect/unitExpectWithArgumentsFn.spec.js +0 -355
  139. package/parser/functions/expect/unitExpectWithoutArgumentsFn.spec.js +0 -69
  140. package/parser/functions/expect/workflowExpectToBeWithinFn.spec.js +0 -70
  141. package/parser/functions/expect/workflowExpectToThrowFn.spec.js +0 -56
  142. package/parser/functions/expect/workflowExpectWithArgumentsFn.spec.js +0 -308
  143. package/parser/functions/expect/workflowExpectWithoutArgumentsFn.spec.js +0 -87
  144. package/parser/functions/math/allMathFn.spec.js +0 -100
  145. package/parser/functions/middlewareCallFn.spec.js +0 -44
  146. package/parser/functions/object/objectEntriesFn.spec.js +0 -44
  147. package/parser/functions/object/objectKeysFn.spec.js +0 -44
  148. package/parser/functions/object/objectValuesFn.spec.js +0 -44
  149. package/parser/functions/redis/redisCountFn.spec.js +0 -58
  150. package/parser/functions/redis/redisDecrFn.spec.js +0 -47
  151. package/parser/functions/redis/redisDelFn.spec.js +0 -58
  152. package/parser/functions/redis/redisGetFn.spec.js +0 -67
  153. package/parser/functions/redis/redisHasFn.spec.js +0 -58
  154. package/parser/functions/redis/redisIncrFn.spec.js +0 -74
  155. package/parser/functions/redis/redisKeysFn.spec.js +0 -67
  156. package/parser/functions/redis/redisPopFn.spec.js +0 -75
  157. package/parser/functions/redis/redisPushFn.spec.js +0 -71
  158. package/parser/functions/redis/redisRangeFn.spec.js +0 -80
  159. package/parser/functions/redis/redisRateLimitFn.spec.js +0 -87
  160. package/parser/functions/redis/redisRemoveFn.spec.js +0 -65
  161. package/parser/functions/redis/redisSetFn.spec.js +0 -89
  162. package/parser/functions/redis/redisShiftFn.spec.js +0 -75
  163. package/parser/functions/redis/redisUnshiftFn.spec.js +0 -73
  164. package/parser/functions/schema/schemaFn.spec.js +0 -92
  165. package/parser/functions/schema/schemaParseArrayFn.spec.js +0 -134
  166. package/parser/functions/schema/schemaParseAttributeFn.spec.js +0 -285
  167. package/parser/functions/schema/schemaParseConstantFn.spec.js +0 -122
  168. package/parser/functions/schema/schemaParseEnum.spec.js +0 -47
  169. package/parser/functions/schema/schemaParseImmutableFn.spec.js +0 -99
  170. package/parser/functions/schema/schemaParseObjectFn.spec.js +0 -223
  171. package/parser/functions/schema/utils.spec.js +0 -27
  172. package/parser/functions/security/securityCheckPasswordFn.spec.js +0 -22
  173. package/parser/functions/security/securityCreateAuthTokenFn.spec.js +0 -51
  174. package/parser/functions/security/securityCreateCurveKeyFn.spec.js +0 -22
  175. package/parser/functions/security/securityCreatePasswordFn.spec.js +0 -26
  176. package/parser/functions/security/securityCreateRsaKeyFn.spec.js +0 -22
  177. package/parser/functions/security/securityCreateSecretKeyFn.spec.js +0 -22
  178. package/parser/functions/security/securityCreateUuidFn.spec.js +0 -27
  179. package/parser/functions/security/securityDecryptFn.spec.js +0 -24
  180. package/parser/functions/security/securityEncryptFn.spec.js +0 -24
  181. package/parser/functions/security/securityJweDecodeFn.spec.js +0 -26
  182. package/parser/functions/security/securityJweDecodeLegacyFn.spec.js +0 -26
  183. package/parser/functions/security/securityJweEncodeFn.spec.js +0 -26
  184. package/parser/functions/security/securityJweEncodeLegacyFn.spec.js +0 -25
  185. package/parser/functions/security/securityJwsDecodeFn.spec.js +0 -25
  186. package/parser/functions/security/securityJwsEncodeFn.spec.js +0 -25
  187. package/parser/functions/security/securityRandomBytesFn.spec.js +0 -21
  188. package/parser/functions/security/securityRandomNumberFn.spec.js +0 -22
  189. package/parser/functions/storage/storageCreateAttachmentFn.spec.js +0 -87
  190. package/parser/functions/storage/storageCreateAudioFn.spec.js +0 -98
  191. package/parser/functions/storage/storageCreateFileResourceFn.spec.js +0 -72
  192. package/parser/functions/storage/storageCreateImageFn.spec.js +0 -98
  193. package/parser/functions/storage/storageCreateVideoFn.spec.js +0 -99
  194. package/parser/functions/storage/storageDeleteFileFn.spec.js +0 -67
  195. package/parser/functions/storage/storageReadFileResourceFn.spec.js +0 -60
  196. package/parser/functions/storage/storageSignPrivateUrlFn.spec.js +0 -72
  197. package/parser/functions/stream/streamFromCsvFn.spec.js +0 -69
  198. package/parser/functions/stream/streamFromJsonlFn.spec.js +0 -47
  199. package/parser/functions/stream/streamFromRequestFn.spec.js +0 -103
  200. package/parser/functions/text/allTextWithReturnValueFn.spec.js +0 -100
  201. package/parser/functions/text/allTextWithoutReturnValueFn.spec.js +0 -122
  202. package/parser/functions/toolCallFn.spec.js +0 -28
  203. package/parser/functions/triggerCallFn.spec.js +0 -51
  204. package/parser/functions/unitExpectFn.spec.js +0 -21
  205. package/parser/functions/util/utilGeoDistanceFn.spec.js +0 -79
  206. package/parser/functions/util/utilGetAllInputFn.spec.js +0 -33
  207. package/parser/functions/util/utilGetEnvFn.spec.js +0 -33
  208. package/parser/functions/util/utilGetRawInputFn.spec.js +0 -62
  209. package/parser/functions/util/utilGetVarsFn.spec.js +0 -33
  210. package/parser/functions/util/utilIpLookupFn.spec.js +0 -37
  211. package/parser/functions/util/utilPostProcessFn.spec.js +0 -63
  212. package/parser/functions/util/utilSendEmailFn.spec.js +0 -62
  213. package/parser/functions/util/utilSetHeaderFn.spec.js +0 -48
  214. package/parser/functions/util/utilSleepFn.spec.js +0 -44
  215. package/parser/functions/util/utilTemplateFn.spec.js +0 -78
  216. package/parser/functions/varFn.spec.js +0 -332
  217. package/parser/functions/workflowExpectFn.spec.js +0 -32
  218. package/parser/functions/zip/zipAddToArchiveFn.spec.js +0 -78
  219. package/parser/functions/zip/zipCreateArchiveFn.spec.js +0 -53
  220. package/parser/functions/zip/zipDeleteFromArchiveFn.spec.js +0 -69
  221. package/parser/functions/zip/zipExtractFn.spec.js +0 -52
  222. package/parser/functions/zip/zipViewContentsFn.spec.js +0 -52
  223. package/parser/generic/arrayWithValues.spec.js +0 -72
  224. package/parser/generic/asVariable.spec.js +0 -117
  225. package/parser/generic/assignableVariableAs.spec.js +0 -126
  226. package/parser/generic/assignableVariableProperty.spec.js +0 -138
  227. package/parser/generic/castedValue.spec.js +0 -29
  228. package/parser/generic/chainedIdentifier.spec.js +0 -89
  229. package/parser/generic/completeAuthVariable.spec.js +0 -23
  230. package/parser/generic/completeEnvVariable.spec.js +0 -99
  231. package/parser/generic/completeErrorVariable.spec.js +0 -17
  232. package/parser/generic/completeInputVariable.spec.js +0 -53
  233. package/parser/generic/expressionFn.spec.js +0 -605
  234. package/parser/generic/filterFn.spec.js +0 -47
  235. package/parser/generic/functionAttrReq.spec.js +0 -353
  236. package/parser/generic/longFormVariable.spec.js +0 -25
  237. package/parser/generic/minimalFnBody.spec.js +0 -47
  238. package/parser/generic/mockAttribute.spec.js +0 -57
  239. package/parser/generic/multilineFilterFn.spec.js +0 -51
  240. package/parser/generic/objectWithAttributes.spec.js +0 -147
  241. package/parser/generic/requiredValueFnBody.spec.js +0 -56
  242. package/parser/generic/shortFormVariable.spec.js +0 -27
  243. package/parser/generic/stringArray.spec.js +0 -55
  244. package/parser/generic/tagsAttribute.spec.js +0 -47
  245. package/parser/generic/variableOnly.spec.js +0 -47
  246. package/parser/mcp_server_parser.spec.js +0 -478
  247. package/parser/mcp_server_trigger_parser.spec.js +0 -396
  248. package/parser/metadata/columnMetadataDefinition.spec.js +0 -47
  249. package/parser/metadata/enumColumnMetadataDefinition.spec.js +0 -81
  250. package/parser/middleware_parser.spec.js +0 -230
  251. package/parser/multidoc.spec.js +0 -946
  252. package/parser/query_parser.spec.js +0 -202
  253. package/parser/realtime_channel_parser.spec.js +0 -20
  254. package/parser/realtime_trigger_parser.spec.js +0 -469
  255. package/parser/run_parser.spec.js +0 -100
  256. package/parser/table_parser.spec.js +0 -176
  257. package/parser/table_trigger_parser.spec.js +0 -478
  258. package/parser/task_parser.spec.js +0 -94
  259. package/parser/tests/agent/agent_parser.spec.js +0 -52
  260. package/parser/tests/agent/valid_sources/customer_servier_agent.xs +0 -45
  261. package/parser/tests/api_group/api_group_parser.spec.js +0 -52
  262. package/parser/tests/api_group/valid_sources/api_group_history.xs +0 -4
  263. package/parser/tests/api_group/valid_sources/basic_api_group.xs +0 -3
  264. package/parser/tests/api_group/valid_sources/complete_api_group.xs +0 -7
  265. package/parser/tests/api_group/valid_sources/protected_api_group.xs +0 -7
  266. package/parser/tests/function/function_parser.spec.js +0 -52
  267. package/parser/tests/function/valid_sources/all_controls.xs +0 -68
  268. package/parser/tests/function/valid_sources/all_query_return_types.xs +0 -227
  269. package/parser/tests/function/valid_sources/all_storage.xs +0 -45
  270. package/parser/tests/function/valid_sources/discord_poll_send_to_slack.xs +0 -133
  271. package/parser/tests/function/valid_sources/expression_in_response.xs +0 -22
  272. package/parser/tests/function/valid_sources/filter_by_value.xs +0 -55
  273. package/parser/tests/function/valid_sources/filter_query.xs +0 -82
  274. package/parser/tests/function/valid_sources/large_regex.xs +0 -13
  275. package/parser/tests/function/valid_sources/ledash_ends_with.xs +0 -90
  276. package/parser/tests/function/valid_sources/multiline_description.xs +0 -28
  277. package/parser/tests/function/valid_sources/multiline_expr.xs +0 -41
  278. package/parser/tests/function/valid_sources/set_theory_fn.xs +0 -129
  279. package/parser/tests/function/valid_sources/simple_unit_test.xs +0 -33
  280. package/parser/tests/function/valid_sources/valid_officer.xs +0 -57
  281. package/parser/tests/function/valid_sources/webflow.xs +0 -18
  282. package/parser/tests/query/query_parser.spec.js +0 -54
  283. package/parser/tests/query/valid_sources/all_basics.xs +0 -51
  284. package/parser/tests/query/valid_sources/all_cloud.xs +0 -141
  285. package/parser/tests/query/valid_sources/all_db.xs +0 -102
  286. package/parser/tests/query/valid_sources/all_external_db.xs +0 -43
  287. package/parser/tests/query/valid_sources/all_keywords.xs +0 -65
  288. package/parser/tests/query/valid_sources/all_math.xs +0 -53
  289. package/parser/tests/query/valid_sources/all_object.xs +0 -25
  290. package/parser/tests/query/valid_sources/all_redis.xs +0 -106
  291. package/parser/tests/query/valid_sources/all_security.xs +0 -105
  292. package/parser/tests/query/valid_sources/all_stream.xs +0 -69
  293. package/parser/tests/query/valid_sources/all_text.xs +0 -54
  294. package/parser/tests/query/valid_sources/all_util.xs +0 -66
  295. package/parser/tests/query/valid_sources/all_zip.xs +0 -39
  296. package/parser/tests/query/valid_sources/arrays.xs +0 -33
  297. package/parser/tests/query/valid_sources/disabled_response.xs +0 -27
  298. package/parser/tests/query/valid_sources/multiline_lambda_GET.xs +0 -50
  299. package/parser/tests/query/valid_sources/mutliline_query.xs +0 -140
  300. package/parser/tests/query/valid_sources/patch_expression_multiline.xs +0 -27
  301. package/parser/tests/query/valid_sources/query_cache.xs +0 -34
  302. package/parser/tests/query/valid_sources/query_example.xs +0 -43
  303. package/parser/tests/query/valid_sources/query_mini.xs +0 -11
  304. package/parser/tests/query/valid_sources/query_rich_inputs.xs +0 -32
  305. package/parser/tests/query/valid_sources/simple_unit_test.xs +0 -33
  306. package/parser/tests/query/valid_sources/test_with_slashes.xs +0 -22
  307. package/parser/tests/query/valid_sources/with_unit_test.xs +0 -97
  308. package/parser/tests/table/table_parser.spec.js +0 -52
  309. package/parser/tests/table/valid_sources/account.xs +0 -31
  310. package/parser/tests/table/valid_sources/all_basic_columns.xs +0 -44
  311. package/parser/tests/table/valid_sources/basic_table.xs +0 -15
  312. package/parser/tests/table/valid_sources/empty_object.xs +0 -17
  313. package/parser/tests/table/valid_sources/empty_table.xs +0 -3
  314. package/parser/tests/table/valid_sources/multiline_index.xs +0 -33
  315. package/parser/tests/table/valid_sources/relation.xs +0 -44
  316. package/parser/tests/table/valid_sources/rich_columns.xs +0 -31
  317. package/parser/tests/table/valid_sources/table_with_comments.xs +0 -17
  318. package/parser/tests/table/valid_sources/table_with_search_index.xs +0 -31
  319. package/parser/tests/table/valid_sources/view_table.xs +0 -62
  320. package/parser/tests/task/task_parser.spec.js +0 -53
  321. package/parser/tests/task/valid_sources/active_event.xs +0 -11
  322. package/parser/tests/task/valid_sources/all_events.xs +0 -17
  323. package/parser/tests/task/valid_sources/create_leak.xs +0 -165
  324. package/parser/tests/task/valid_sources/daily_sales_report.xs +0 -56
  325. package/parser/tests/task/valid_sources/inactive_event.xs +0 -11
  326. package/parser/tests/variable_test/coverage_check.xs +0 -293
  327. package/parser/tests/workflow_test/valid_sources/basic_workflow_test.xs +0 -13
  328. package/parser/tests/workflow_test/workflow_test_parser.spec.js +0 -52
  329. package/parser/tool_parser.spec.js +0 -115
  330. package/parser/variableValidator.spec.js +0 -179
  331. package/parser/workflow_test_parser.spec.js +0 -136
  332. package/parser/workspace_parser.spec.js +0 -142
  333. package/parser/workspace_trigger_parser.spec.js +0 -332
  334. package/toTmLanguage.js +0 -75
  335. package/utils.spec.js +0 -369
  336. package/workspace/crossFileValidator.spec.js +0 -654
  337. package/workspace/referenceTracking.spec.js +0 -420
  338. package/workspace/workspaceIndex.spec.js +0 -189
@@ -1,88 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { xanoscriptParser } from "./parser.js";
4
-
5
- describe("addon_parser", () => {
6
- it("should parse a basic addon", () => {
7
- const parser = xanoscriptParser(`addon foo {
8
- input {
9
- }
10
-
11
- stack {
12
- }
13
- }`);
14
- expect(parser.errors).to.be.empty;
15
- });
16
-
17
- it("should parse a basic a string addon url", () => {
18
- const parser = xanoscriptParser(`addon "foo/bar" {
19
- input {
20
- }
21
-
22
- stack {
23
- }
24
- }`);
25
-
26
- expect(parser.errors).to.be.empty;
27
- });
28
-
29
- it("should accept an input and a db.query statement", () => {
30
- const parser = xanoscriptParser(`addon tweet_liked_by_user {
31
- input {
32
- // ID of the tweet to check
33
- int tweet_id? {
34
- table = "tweet"
35
- }
36
-
37
- // ID of the user to check
38
- int user_id? {
39
- table = "user"
40
- }
41
- }
42
-
43
- stack {
44
- db.query like {
45
- where = $db.like.tweet_id == $input.tweet_id && $db.like.user_id == $input.user_id
46
- return = {type: "exists"}
47
- }
48
- }
49
- }`);
50
-
51
- expect(parser.warnings).to.be.empty;
52
- expect(parser.errors).to.be.empty;
53
- });
54
-
55
- it("should not accept an input that is not a db.query", () => {
56
- const parser = xanoscriptParser(`addon post_author {
57
- input {
58
- int user_id {
59
- table = "user"
60
- description = "The ID of the user/author"
61
- }
62
- }
63
-
64
- stack {
65
- db.get user {
66
- field_name = "id"
67
- field_value = $input.user_id
68
- output = ["id", "name", "avatar_url"]
69
- } as $author
70
- }
71
- }`);
72
-
73
- expect(parser.errors).to.not.be.empty;
74
- });
75
-
76
- it("addon don't accept dynamic params", () => {
77
- const parser = xanoscriptParser(`addon foo/{user_id} {
78
- input {
79
- text user_id filters=trim
80
- }
81
-
82
- stack {
83
- }
84
- }`);
85
-
86
- expect(parser.errors).to.not.be.empty;
87
- });
88
- });
@@ -1,599 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { xanoscriptParser } from "./parser.js";
4
-
5
- describe("agent", () => {
6
- it("should parse a basic agent", () => {
7
- const parser = xanoscriptParser(`agent sadf {
8
- canonical = "blFYWn_e"
9
-
10
- llm = {
11
- type : "xano-free"
12
- system_prompt: "You are a helpful AI Agent that completes tasks accurately. When you need additional information to complete a task, use the available tools. Always explain your reasoning and provide clear responses."
13
- max_steps : 5
14
- prompt : "some prompt"
15
- }
16
-
17
- tools = []
18
- }`);
19
-
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("should require a type", () => {
24
- const parser = xanoscriptParser(`agent sadf {
25
- canonical = "blFYWn_e"
26
-
27
- llm = {
28
- system_prompt: "You are a helpful AI Agent that completes tasks accurately. When you need additional information to complete a task, use the available tools. Always explain your reasoning and provide clear responses."
29
- max_steps : 5
30
- prompt : "some prompt"
31
- }
32
-
33
- tools = []
34
- }`);
35
-
36
- expect(parser.errors).to.not.be.empty;
37
- });
38
-
39
- it("should fail on invalid agent type", () => {
40
- const parser = xanoscriptParser(`agent sadf {
41
- canonical = "blFYWn_e"
42
-
43
- llm = {
44
- type : "yoyoyo"
45
- system_prompt: "You are a helpful AI Agent that completes tasks accurately. When you need additional information to complete a task, use the available tools. Always explain your reasoning and provide clear responses."
46
- max_steps : 5
47
- prompt : "some prompt"
48
- }
49
-
50
- tools = []
51
- }`);
52
-
53
- expect(parser.errors).to.not.be.empty;
54
- });
55
-
56
- it("should parse a basic agent with tags", () => {
57
- const parser = xanoscriptParser(`agent sadf {
58
- canonical = "blFYWn_e"
59
- tags = ["a", "b", "c"]
60
-
61
- llm = {
62
- type : "xano-free"
63
- system_prompt: "You are a helpful AI Agent that completes tasks accurately. When you need additional information to complete a task, use the available tools. Always explain your reasoning and provide clear responses."
64
- max_steps : 5
65
- prompt : "some prompt"
66
- }
67
-
68
- tools = []
69
- }`);
70
-
71
- expect(parser.errors).to.be.empty;
72
- });
73
-
74
- it("should parse an anthropic agent", () => {
75
- const parser = xanoscriptParser(`agent sadf {
76
- canonical = "blFYWn_e"
77
- llm = {
78
- type : "anthropic"
79
- system_prompt: "You are a helpful AI Agent that completes tasks accurately."
80
- max_steps : 5
81
- prompt : """
82
- some multi-line
83
- prompt
84
- """
85
- model : "claude-4-sonnet-20250514"
86
- temperature: 3
87
- reasoning : true
88
- headers : "[]"
89
- }
90
- tools = []
91
- }`);
92
-
93
- expect(parser.errors).to.be.empty;
94
- });
95
-
96
- it("should parse an anthropic agent with optional fields", () => {
97
- const parser = xanoscriptParser(`agent sadf {
98
- canonical = "blFYWn_e"
99
- llm = {
100
- type : "anthropic"
101
- system_prompt: "You are a helpful AI Agent."
102
- max_steps : 10
103
- prompt : "some prompt"
104
- model : "claude-4-sonnet-20250514"
105
- temperature: 0.7
106
- reasoning : false
107
- headers : "{}"
108
- api_key : "test-key"
109
- thinking_tokens: 1000
110
- baseURL : "https://api.anthropic.com"
111
- }
112
- tools = []
113
- }`);
114
-
115
- expect(parser.errors).to.be.empty;
116
- });
117
-
118
- it("should parse a google_genai agent", () => {
119
- const parser = xanoscriptParser(`agent test_google {
120
- canonical = "test_123"
121
- llm = {
122
- type : "google-genai"
123
- system_prompt: "You are a Google AI assistant."
124
- max_steps : 8
125
- prompt : "some prompt"
126
- model : "gemini-1.5-pro"
127
- temperature: 0.5
128
- reasoning : true
129
- headers : "[]"
130
- search_grounding: true
131
- include_thoughts: false
132
- }
133
- tools = []
134
- }`);
135
-
136
- expect(parser.errors).to.be.empty;
137
- });
138
-
139
- it("should parse a google_genai agent with optional fields", () => {
140
- const parser = xanoscriptParser(`agent test_google {
141
- canonical = "test_456"
142
- llm = {
143
- type : "google-genai"
144
- system_prompt: "Advanced Google AI assistant."
145
- max_steps : 15
146
- prompt : "some prompt"
147
- model : "gemini-1.5-flash"
148
- temperature: 0.8
149
- reasoning : false
150
- headers : "{}"
151
- search_grounding: false
152
- include_thoughts: true
153
- api_key : "test-google-key"
154
- thinking_tokens: 2000
155
- baseURL : "https://generativelanguage.googleapis.com"
156
- safety_settings: "strict"
157
- dynamic_retrival: "enabled"
158
- }
159
- tools = []
160
- }`);
161
-
162
- expect(parser.errors).to.be.empty;
163
- });
164
-
165
- it("should accept a structuredOutput definition", () => {
166
- const parser = xanoscriptParser(`agent test_google {
167
- canonical = "test_456"
168
- llm = {
169
- type : "google-genai"
170
- system_prompt: "Advanced Google AI assistant."
171
- max_steps : 15
172
- prompt : "some prompt"
173
- model : "gemini-1.5-flash"
174
- temperature: 0.8
175
- reasoning : false
176
- headers : "{}"
177
- search_grounding: false
178
- include_thoughts: true
179
- api_key : "test-google-key"
180
- thinking_tokens: 2000
181
- baseURL : "https://generativelanguage.googleapis.com"
182
- safety_settings: "strict"
183
- dynamic_retrival: ""
184
- }
185
- tools = []
186
-
187
- output {
188
- text text? filters=trim
189
- bool is_correct?
190
- int confidence_score? {
191
- description = "Max 100"
192
- }
193
- }
194
- }`);
195
-
196
- expect(parser.errors).to.be.empty;
197
- });
198
-
199
- it("should parse an openai agent", () => {
200
- const parser = xanoscriptParser(`agent test_openai {
201
- canonical = "openai_123"
202
- llm = {
203
- type : "openai"
204
- system_prompt: "You are an OpenAI assistant."
205
- max_steps : 6
206
- prompt : "some prompt"
207
- model : "gpt-4o"
208
- temperature : 0.6
209
- reasoning_effort: "medium"
210
- }
211
- tools = []
212
- }`);
213
-
214
- expect(parser.errors).to.be.empty;
215
- });
216
-
217
- it("should reject openai agent with non-existent fields", () => {
218
- const parser = xanoscriptParser(`agent test_openai {
219
- canonical = "openai_123"
220
- llm = {
221
- type : "openai"
222
- system_prompt: "You are an OpenAI assistant."
223
- max_steps : 6
224
- prompt : "some prompt"
225
- model : "gpt-4o"
226
- temperature : 0.6
227
- reasoning_effort: "medium"
228
- search_grounding: true
229
- }
230
- tools = []
231
- }`);
232
-
233
- expect(parser.errors).to.not.be.empty;
234
- });
235
-
236
- it("should reject openai agent with a missing required fields", () => {
237
- const parser = xanoscriptParser(`agent test_openai {
238
- canonical = "openai_123"
239
- llm = {
240
- type : "openai"
241
- system_prompt: "You are an OpenAI assistant."
242
- max_steps : 6
243
- prompt : "some prompt"
244
- model : "gpt-4o"
245
- temperature : 0.6
246
- }
247
- tools = []
248
- }`);
249
-
250
- expect(parser.errors).to.not.be.empty;
251
- });
252
-
253
- it("should parse an openai agent with optional fields", () => {
254
- const parser = xanoscriptParser(`agent test_openai {
255
- canonical = "openai_456"
256
- llm = {
257
- type : "openai"
258
- system_prompt: "Advanced OpenAI assistant with custom config."
259
- max_steps : 12
260
- prompt : "some prompt"
261
- model : "gpt-4o-mini"
262
- temperature: 0.9
263
- reasoning_effort: "high"
264
- api_key : "sk-test-key"
265
- baseURL : "https://api.openai.com"
266
- headers : "{}"
267
- organization: "org-123"
268
- project : "project-456"
269
- compatibility: "strict"
270
- }
271
- tools = []
272
- }`);
273
-
274
- expect(parser.errors).to.be.empty;
275
- });
276
-
277
- it("should parse a xano_free agent", () => {
278
- const parser = xanoscriptParser(`agent test_xano {
279
- canonical = "xano_123"
280
- llm = {
281
- type : "xano-free"
282
- system_prompt: "You are a Xano free tier assistant."
283
- max_steps : 3
284
- prompt : "some prompt"
285
- temperature: 0.4
286
- search_grounding: true
287
- }
288
- tools = []
289
- }`);
290
-
291
- expect(parser.errors).to.be.empty;
292
- });
293
-
294
- it("should allow a messages field instead of prompt", () => {
295
- const parser = xanoscriptParser(`agent test_xano {
296
- canonical = "xano_789"
297
- llm = {
298
- type : "xano-free"
299
- system_prompt: "Advanced Xano free tier assistant."
300
- max_steps : 7
301
- messages : "{{ $args.messages|json_encode() }}"
302
- temperature: 0.7
303
- search_grounding: false
304
- baseURL : "https://api.xano.com"
305
- headers : "{}"
306
- safety_settings: "moderate"
307
- dynamic_retrival: "disabled"
308
- }
309
- tools = []
310
- }`);
311
-
312
- expect(parser.errors).to.be.empty;
313
- });
314
-
315
- it("should require having at least a prompt or a messages field", () => {
316
- const parser = xanoscriptParser(`agent test_xano {
317
- canonical = "xano_789"
318
- llm = {
319
- type : "xano-free"
320
- system_prompt: "Advanced Xano free tier assistant."
321
- max_steps : 7
322
- temperature: 0.7
323
- search_grounding: false
324
- baseURL : "https://api.xano.com"
325
- headers : "{}"
326
- safety_settings: "moderate"
327
- dynamic_retrival: "disabled"
328
- }
329
- tools = []
330
- }`);
331
-
332
- expect(parser.errors).to.not.be.empty;
333
- });
334
-
335
- it("should reject having both a prompt and messages field", () => {
336
- const parser = xanoscriptParser(`agent test_xano {
337
- canonical = "xano_789"
338
- llm = {
339
- type : "xano-free"
340
- system_prompt: "Advanced Xano free tier assistant."
341
- max_steps : 7
342
- messages : "{{ $args.messages|json_encode() }}"
343
- prompt : "some prompt"
344
- temperature: 0.7
345
- search_grounding: false
346
- baseURL : "https://api.xano.com"
347
- headers : "{}"
348
- safety_settings: "moderate"
349
- dynamic_retrival: "disabled"
350
- }
351
- tools = []
352
- }`);
353
-
354
- expect(parser.errors).to.not.be.empty;
355
- });
356
-
357
- it("should parse a xano_free agent with optional fields", () => {
358
- const parser = xanoscriptParser(`agent test_xano {
359
- canonical = "xano_789"
360
- llm = {
361
- type : "xano-free"
362
- system_prompt: "Advanced Xano free tier assistant."
363
- max_steps : 7
364
- prompt : "some prompt"
365
- temperature: 0.7
366
- search_grounding: false
367
- baseURL : "https://api.xano.com"
368
- headers : "{}"
369
- safety_settings: "moderate"
370
- dynamic_retrival: "disabled"
371
- }
372
- tools = []
373
- }`);
374
-
375
- expect(parser.errors).to.be.empty;
376
- });
377
-
378
- it("should parse tools with single tool", () => {
379
- const parser = xanoscriptParser(`agent with_tools {
380
- canonical = "tools_123"
381
- llm = {
382
- type : "xano-free"
383
- system_prompt: "You are a helpful assistant."
384
- prompt : "some prompt"
385
- max_steps : 5
386
- temperature: 0.5
387
- search_grounding: true
388
- }
389
- tools = [
390
- {name: "calculator"}
391
- ]
392
- }`);
393
-
394
- expect(parser.errors).to.be.empty;
395
- });
396
-
397
- it("should parse tools with multiple tools", () => {
398
- const parser = xanoscriptParser(`agent multi_tools {
399
- canonical = "multi_tools_123"
400
- llm = {
401
- type : "xano-free"
402
- system_prompt: "You are a helpful assistant."
403
- max_steps : 5
404
- prompt : "some prompt"
405
- temperature: 0.5
406
- search_grounding: true
407
- }
408
- tools = [
409
- {name: "calculator"},
410
- {name: "weather_api"},
411
- {name: "search_tool"}
412
- ]
413
- }`);
414
-
415
- expect(parser.errors).to.be.empty;
416
- });
417
-
418
- it("should parse tools with active field", () => {
419
- const parser = xanoscriptParser(`agent tools_active {
420
- canonical = "active_123"
421
- llm = {
422
- type : "xano-free"
423
- system_prompt: "You are a helpful assistant."
424
- max_steps : 5
425
- prompt : "some prompt"
426
- temperature: 0.5
427
- search_grounding: true
428
- }
429
- tools = [
430
- {name: "calculator", active: true},
431
- {name: "weather_api", active: false}
432
- ]
433
- }`);
434
-
435
- expect(parser.errors).to.be.empty;
436
- });
437
-
438
- it("should parse tools with auth field", () => {
439
- const parser = xanoscriptParser(`agent tools_auth {
440
- canonical = "auth_123"
441
- llm = {
442
- type : "xano-free"
443
- system_prompt: "You are a helpful assistant."
444
- max_steps : 5
445
- prompt : "some prompt"
446
- temperature: 0.5
447
- search_grounding: true
448
- }
449
- tools = [
450
- {name: "api_tool", auth: "bearer_token"},
451
- {name: "database", auth: "basic_auth"}
452
- ]
453
- }`);
454
-
455
- expect(parser.errors).to.be.empty;
456
- });
457
-
458
- it("should parse tools with all optional fields", () => {
459
- const parser = xanoscriptParser(`agent tools_all_fields {
460
- canonical = "all_fields_123"
461
- llm = {
462
- type : "xano-free"
463
- system_prompt: "You are a helpful assistant."
464
- max_steps : 5
465
- prompt : "some prompt"
466
- temperature: 0.5
467
- search_grounding: true
468
- }
469
- tools = [
470
- {
471
- name: "advanced_tool"
472
- active: true
473
- auth: "oauth2"
474
- },
475
- {
476
- name: "simple_tool"
477
- active: false
478
- },
479
- {
480
- name: "auth_only_tool"
481
- auth: "api_key"
482
- }
483
- ]
484
- }`);
485
-
486
- expect(parser.errors).to.be.empty;
487
- });
488
-
489
- it("should parse tools with mixed formatting", () => {
490
- const parser = xanoscriptParser(`agent tools_formatting {
491
- canonical = "format_123"
492
- llm = {
493
- type : "xano-free"
494
- system_prompt: "You are a helpful assistant."
495
- max_steps : 5
496
- prompt : ""
497
- temperature: 0.5
498
- search_grounding: true
499
- }
500
- tools = [
501
- {name: "tool1", active: true, auth: "key1"},
502
- {
503
- name: "tool2"
504
- active: false
505
- auth: "key2"
506
- },
507
- {name: "tool3"}
508
- ]
509
- }`);
510
-
511
- expect(parser.errors).to.be.empty;
512
- });
513
-
514
- it("should fail when tools missing required name field", () => {
515
- const parser = xanoscriptParser(`agent tools_missing_name {
516
- canonical = "missing_123"
517
- llm = {
518
- type : "xano-free"
519
- system_prompt: "You are a helpful assistant."
520
- max_steps : 5
521
- prompt : "some prompt"
522
- temperature: 0.5
523
- search_grounding: true
524
- }
525
- tools = [
526
- {active: true, auth: "key1"}
527
- ]
528
- }`);
529
-
530
- expect(parser.errors).to.not.be.empty;
531
- });
532
-
533
- it("should parse agent with description and docs", () => {
534
- const parser = xanoscriptParser(`agent full_featured {
535
- canonical = "full_123"
536
- description = "A fully featured agent with all fields"
537
- docs = "This is documentation for the agent"
538
- tags = ["ai", "assistant", "tools"]
539
- llm = {
540
- type : "anthropic"
541
- system_prompt: "You are a helpful assistant."
542
- max_steps : 10
543
- prompt : "test"
544
- model : "claude-4-sonnet-20250514"
545
- temperature: 0.7
546
- reasoning : true
547
- headers : "[]"
548
- }
549
- tools = [
550
- {name: "calculator", active: true},
551
- {name: "weather", auth: "api_key"}
552
- ]
553
- }`);
554
-
555
- expect(parser.errors).to.be.empty;
556
- });
557
-
558
- it("should parse agent with history clause", () => {
559
- const parser = xanoscriptParser(`agent with_history {
560
- canonical = "history_123"
561
- history = 100
562
- llm = {
563
- type : "xano-free"
564
- system_prompt: "You are a helpful assistant."
565
- max_steps : 5
566
- prompt : "some prompt"
567
- temperature: 0.5
568
- search_grounding: true
569
- }
570
- tools = [
571
- {name: "tool1"}
572
- ]
573
- }`);
574
-
575
- expect(parser.errors).to.be.empty;
576
- });
577
-
578
- it("should allow comments prior to agent declaration", () => {
579
- const parser = xanoscriptParser(`// This is a comment
580
- // on multiple lines
581
- agent with_history {
582
- canonical = "history_123"
583
- history = 100
584
- llm = {
585
- type : "xano-free"
586
- system_prompt: "You are a helpful assistant."
587
- max_steps : 5
588
- prompt : "some prompt"
589
- temperature: 0.5
590
- search_grounding: true
591
- }
592
- tools = [
593
- {name: "tool1"}
594
- ]
595
- }`);
596
-
597
- expect(parser.errors).to.be.empty;
598
- });
599
- });