@xano/xanoscript-language-server 11.12.2 → 11.12.3

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 (337) hide show
  1. package/package.json +25 -1
  2. package/.claude/memory/feedback_no_git.md +0 -11
  3. package/.claude/settings.local.json +0 -21
  4. package/.github/copilot-instructions.md +0 -190
  5. package/.github/workflows/ci.yml +0 -31
  6. package/.husky/pre-commit +0 -1
  7. package/CLAUDE.md +0 -256
  8. package/eslint.config.js +0 -24
  9. package/lexer/comment.spec.js +0 -77
  10. package/lexer/multiline.spec.js +0 -179
  11. package/lexer/regexp.spec.js +0 -84
  12. package/lexer/tests/query/query_lexer.spec.js +0 -36
  13. package/lexer/tests/query/valid_sources/basic_query.xs +0 -44
  14. package/lexer/tests/query/valid_sources/db_query.xs +0 -77
  15. package/lexer/tests/query/valid_sources/empty_query.xs +0 -5
  16. package/lexer/tests/query/valid_sources/header_query.xs +0 -15
  17. package/lexer/tests/table/basic_table.xs +0 -17
  18. package/lexer/tests/table/empty_table.xs +0 -3
  19. package/lexer/tests/table/table_lexer.spec.js +0 -324
  20. package/lexer/utils.spec.js +0 -61
  21. package/onCompletion/contentAssist.spec.js +0 -275
  22. package/onDefinition/onDefinition.spec.js +0 -313
  23. package/onHover/FilterMessageProvider.spec.js +0 -85
  24. package/onHover/FunctionMessageProvider.spec.js +0 -128
  25. package/onHover/InputFilterMessageProvider.spec.js +0 -329
  26. package/onHover/QueryFilterMessageProvider.spec.js +0 -164
  27. package/onHover/onHoverDocument.spec.js +0 -660
  28. package/parser/addon_parser.spec.js +0 -88
  29. package/parser/agent_parser.spec.js +0 -599
  30. package/parser/agent_trigger_parser.spec.js +0 -525
  31. package/parser/api_group_parser.spec.js +0 -137
  32. package/parser/attributes/columnDefaultValueAttribute.spec.js +0 -49
  33. package/parser/attributes/descriptionFieldAttribute.spec.js +0 -39
  34. package/parser/attributes/disabledFieldAttribute.spec.js +0 -34
  35. package/parser/attributes/docsFieldAttribute.spec.js +0 -44
  36. package/parser/attributes/guidFieldAttribute.spec.js +0 -93
  37. package/parser/attributes/inputFilterFn.spec.js +0 -39
  38. package/parser/attributes/sensitiveFieldAttribute.spec.js +0 -39
  39. package/parser/attributes/valueFieldAttribute.spec.js +0 -54
  40. package/parser/attributes/valuesFieldAttribute.spec.js +0 -44
  41. package/parser/attributes/visibilityFieldAttribute.spec.js +0 -44
  42. package/parser/branch_parser.spec.js +0 -34
  43. package/parser/clauses/agentClause.spec.js +0 -34
  44. package/parser/clauses/authClause.spec.js +0 -39
  45. package/parser/clauses/cacheClause.spec.js +0 -103
  46. package/parser/clauses/canonicalClause.spec.js +0 -34
  47. package/parser/clauses/channelClause.spec.js +0 -34
  48. package/parser/clauses/dbTableClause.spec.js +0 -34
  49. package/parser/clauses/historyClause.spec.js +0 -53
  50. package/parser/clauses/indexClause.spec.js +0 -47
  51. package/parser/clauses/inputClause.spec.js +0 -96
  52. package/parser/clauses/mcpServerClause.spec.js +0 -34
  53. package/parser/clauses/middlewareClause.spec.js +0 -161
  54. package/parser/clauses/nakedStackFn.spec.js +0 -73
  55. package/parser/clauses/responseClause.spec.js +0 -47
  56. package/parser/clauses/scheduleClause.spec.js +0 -71
  57. package/parser/clauses/schemaClause.spec.js +0 -102
  58. package/parser/clauses/testClause.spec.js +0 -69
  59. package/parser/clauses/viewClause.spec.js +0 -163
  60. package/parser/definitions/arraySlice.spec.js +0 -49
  61. package/parser/definitions/columnDefinition.spec.js +0 -199
  62. package/parser/definitions/dbLinkColumnDefinition.spec.js +0 -45
  63. package/parser/definitions/enumColumnDefinition.spec.js +0 -108
  64. package/parser/definitions/filterDefinition.spec.js +0 -43
  65. package/parser/definitions/objectColumnDefinition.spec.js +0 -118
  66. package/parser/function_parser.spec.js +0 -131
  67. package/parser/functions/actionCallFn.spec.js +0 -51
  68. package/parser/functions/addonCallFn.spec.js +0 -41
  69. package/parser/functions/ai/aiAgentRunFn.spec.js +0 -94
  70. package/parser/functions/ai/aiExternalMcpServerDetailsFn.spec.js +0 -85
  71. package/parser/functions/ai/aiExternalMcpToolListFn.spec.js +0 -85
  72. package/parser/functions/ai/aiExternalMcpToolRunFn.spec.js +0 -101
  73. package/parser/functions/aiFn.spec.js +0 -51
  74. package/parser/functions/api/apiCallFn.spec.js +0 -62
  75. package/parser/functions/api/apiLambdaFn.spec.js +0 -63
  76. package/parser/functions/api/apiRealtimeEventFn.spec.js +0 -82
  77. package/parser/functions/api/apiRequestFn.spec.js +0 -113
  78. package/parser/functions/api/apiStreamFn.spec.js +0 -44
  79. package/parser/functions/api/webflowRequestFn.spec.js +0 -114
  80. package/parser/functions/array/arrayDifferenceFn.spec.js +0 -34
  81. package/parser/functions/array/arrayFindFn.spec.js +0 -44
  82. package/parser/functions/array/arrayGroupByFn.spec.js +0 -41
  83. package/parser/functions/array/arrayIntersectionFn.spec.js +0 -22
  84. package/parser/functions/array/arrayMapFn.spec.js +0 -37
  85. package/parser/functions/array/arrayNoValueAs.spec.js +0 -56
  86. package/parser/functions/array/arrayPartitionFn.spec.js +0 -29
  87. package/parser/functions/array/arrayUnionFn.spec.js +0 -22
  88. package/parser/functions/array/arrayValueIfAs.spec.js +0 -54
  89. package/parser/functions/array/arrayValueOnly.spec.js +0 -61
  90. package/parser/functions/array/valueAttrOnly.spec.js +0 -61
  91. package/parser/functions/cloud/cloudAlgoliaRequestFn.spec.js +0 -30
  92. package/parser/functions/cloud/cloudAwsS3Fn.spec.js +0 -21
  93. package/parser/functions/cloud/cloudDeleteFileFn.spec.js +0 -25
  94. package/parser/functions/cloud/cloudGetFileInfoFn.spec.js +0 -25
  95. package/parser/functions/cloud/cloudListDirectoryFn.spec.js +0 -26
  96. package/parser/functions/cloud/cloudReadFileFn.spec.js +0 -25
  97. package/parser/functions/cloud/cloudSearchDocumentFn.spec.js +0 -28
  98. package/parser/functions/cloud/cloudSearchQueryFn.spec.js +0 -32
  99. package/parser/functions/cloud/cloudSearchRequestFn.spec.js +0 -32
  100. package/parser/functions/cloud/cloudSignUrlFn.spec.js +0 -26
  101. package/parser/functions/cloud/cloudStorageFn.spec.js +0 -21
  102. package/parser/functions/cloud/cloudUploadFileFn.spec.js +0 -29
  103. package/parser/functions/controls/awaitFn.spec.js +0 -48
  104. package/parser/functions/controls/conditionalFn.spec.js +0 -188
  105. package/parser/functions/controls/forEachFn.spec.js +0 -109
  106. package/parser/functions/controls/forFn.spec.js +0 -85
  107. package/parser/functions/controls/functionRunFn.spec.js +0 -87
  108. package/parser/functions/controls/groupFn.spec.js +0 -63
  109. package/parser/functions/controls/preconditionFn.spec.js +0 -107
  110. package/parser/functions/controls/returnFn.spec.js +0 -44
  111. package/parser/functions/controls/switchFn.spec.js +0 -118
  112. package/parser/functions/controls/throwFn.spec.js +0 -56
  113. package/parser/functions/controls/tryCatchFn.spec.js +0 -193
  114. package/parser/functions/controls/whileFn.spec.js +0 -94
  115. package/parser/functions/db/dbAddFn.spec.js +0 -72
  116. package/parser/functions/db/dbAddOrEditFn.spec.js +0 -97
  117. package/parser/functions/db/dbBulkAddFn.spec.js +0 -94
  118. package/parser/functions/db/dbBulkDeleteFn.spec.js +0 -28
  119. package/parser/functions/db/dbBulkPatchFn.spec.js +0 -42
  120. package/parser/functions/db/dbBulkUpdateFn.spec.js +0 -42
  121. package/parser/functions/db/dbDelFn.spec.js +0 -67
  122. package/parser/functions/db/dbDirectQueryFn.spec.js +0 -104
  123. package/parser/functions/db/dbEditFn.spec.js +0 -122
  124. package/parser/functions/db/dbExternalDirectQueryFn.spec.js +0 -103
  125. package/parser/functions/db/dbGetFn.spec.js +0 -117
  126. package/parser/functions/db/dbHasFn.spec.js +0 -62
  127. package/parser/functions/db/dbPatchFn.spec.js +0 -88
  128. package/parser/functions/db/dbQueryFn.spec.js +0 -380
  129. package/parser/functions/db/dbSchemaFn.spec.js +0 -42
  130. package/parser/functions/db/dbSetDatasourceFn.spec.js +0 -44
  131. package/parser/functions/db/dbTransactionFn.spec.js +0 -63
  132. package/parser/functions/db/dbTruncateFn.spec.js +0 -42
  133. package/parser/functions/debug/debugLogFn.spec.js +0 -44
  134. package/parser/functions/debug/debugStopFn.spec.js +0 -44
  135. package/parser/functions/expect/unitExpectToBeWithinFn.spec.js +0 -63
  136. package/parser/functions/expect/unitExpectToThrowFn.spec.js +0 -40
  137. package/parser/functions/expect/unitExpectWithArgumentsFn.spec.js +0 -355
  138. package/parser/functions/expect/unitExpectWithoutArgumentsFn.spec.js +0 -69
  139. package/parser/functions/expect/workflowExpectToBeWithinFn.spec.js +0 -70
  140. package/parser/functions/expect/workflowExpectToThrowFn.spec.js +0 -56
  141. package/parser/functions/expect/workflowExpectWithArgumentsFn.spec.js +0 -308
  142. package/parser/functions/expect/workflowExpectWithoutArgumentsFn.spec.js +0 -87
  143. package/parser/functions/math/allMathFn.spec.js +0 -100
  144. package/parser/functions/middlewareCallFn.spec.js +0 -44
  145. package/parser/functions/object/objectEntriesFn.spec.js +0 -44
  146. package/parser/functions/object/objectKeysFn.spec.js +0 -44
  147. package/parser/functions/object/objectValuesFn.spec.js +0 -44
  148. package/parser/functions/redis/redisCountFn.spec.js +0 -58
  149. package/parser/functions/redis/redisDecrFn.spec.js +0 -47
  150. package/parser/functions/redis/redisDelFn.spec.js +0 -58
  151. package/parser/functions/redis/redisGetFn.spec.js +0 -67
  152. package/parser/functions/redis/redisHasFn.spec.js +0 -58
  153. package/parser/functions/redis/redisIncrFn.spec.js +0 -74
  154. package/parser/functions/redis/redisKeysFn.spec.js +0 -67
  155. package/parser/functions/redis/redisPopFn.spec.js +0 -75
  156. package/parser/functions/redis/redisPushFn.spec.js +0 -71
  157. package/parser/functions/redis/redisRangeFn.spec.js +0 -80
  158. package/parser/functions/redis/redisRateLimitFn.spec.js +0 -87
  159. package/parser/functions/redis/redisRemoveFn.spec.js +0 -65
  160. package/parser/functions/redis/redisSetFn.spec.js +0 -89
  161. package/parser/functions/redis/redisShiftFn.spec.js +0 -75
  162. package/parser/functions/redis/redisUnshiftFn.spec.js +0 -73
  163. package/parser/functions/schema/schemaFn.spec.js +0 -92
  164. package/parser/functions/schema/schemaParseArrayFn.spec.js +0 -134
  165. package/parser/functions/schema/schemaParseAttributeFn.spec.js +0 -285
  166. package/parser/functions/schema/schemaParseConstantFn.spec.js +0 -122
  167. package/parser/functions/schema/schemaParseEnum.spec.js +0 -47
  168. package/parser/functions/schema/schemaParseImmutableFn.spec.js +0 -99
  169. package/parser/functions/schema/schemaParseObjectFn.spec.js +0 -223
  170. package/parser/functions/schema/utils.spec.js +0 -27
  171. package/parser/functions/security/securityCheckPasswordFn.spec.js +0 -22
  172. package/parser/functions/security/securityCreateAuthTokenFn.spec.js +0 -51
  173. package/parser/functions/security/securityCreateCurveKeyFn.spec.js +0 -22
  174. package/parser/functions/security/securityCreatePasswordFn.spec.js +0 -26
  175. package/parser/functions/security/securityCreateRsaKeyFn.spec.js +0 -22
  176. package/parser/functions/security/securityCreateSecretKeyFn.spec.js +0 -22
  177. package/parser/functions/security/securityCreateUuidFn.spec.js +0 -27
  178. package/parser/functions/security/securityDecryptFn.spec.js +0 -24
  179. package/parser/functions/security/securityEncryptFn.spec.js +0 -24
  180. package/parser/functions/security/securityJweDecodeFn.spec.js +0 -26
  181. package/parser/functions/security/securityJweDecodeLegacyFn.spec.js +0 -26
  182. package/parser/functions/security/securityJweEncodeFn.spec.js +0 -26
  183. package/parser/functions/security/securityJweEncodeLegacyFn.spec.js +0 -25
  184. package/parser/functions/security/securityJwsDecodeFn.spec.js +0 -25
  185. package/parser/functions/security/securityJwsEncodeFn.spec.js +0 -25
  186. package/parser/functions/security/securityRandomBytesFn.spec.js +0 -21
  187. package/parser/functions/security/securityRandomNumberFn.spec.js +0 -22
  188. package/parser/functions/storage/storageCreateAttachmentFn.spec.js +0 -87
  189. package/parser/functions/storage/storageCreateAudioFn.spec.js +0 -98
  190. package/parser/functions/storage/storageCreateFileResourceFn.spec.js +0 -72
  191. package/parser/functions/storage/storageCreateImageFn.spec.js +0 -98
  192. package/parser/functions/storage/storageCreateVideoFn.spec.js +0 -99
  193. package/parser/functions/storage/storageDeleteFileFn.spec.js +0 -67
  194. package/parser/functions/storage/storageReadFileResourceFn.spec.js +0 -60
  195. package/parser/functions/storage/storageSignPrivateUrlFn.spec.js +0 -72
  196. package/parser/functions/stream/streamFromCsvFn.spec.js +0 -69
  197. package/parser/functions/stream/streamFromJsonlFn.spec.js +0 -47
  198. package/parser/functions/stream/streamFromRequestFn.spec.js +0 -103
  199. package/parser/functions/text/allTextWithReturnValueFn.spec.js +0 -100
  200. package/parser/functions/text/allTextWithoutReturnValueFn.spec.js +0 -122
  201. package/parser/functions/toolCallFn.spec.js +0 -28
  202. package/parser/functions/triggerCallFn.spec.js +0 -51
  203. package/parser/functions/unitExpectFn.spec.js +0 -21
  204. package/parser/functions/util/utilGeoDistanceFn.spec.js +0 -79
  205. package/parser/functions/util/utilGetAllInputFn.spec.js +0 -33
  206. package/parser/functions/util/utilGetEnvFn.spec.js +0 -33
  207. package/parser/functions/util/utilGetRawInputFn.spec.js +0 -62
  208. package/parser/functions/util/utilGetVarsFn.spec.js +0 -33
  209. package/parser/functions/util/utilIpLookupFn.spec.js +0 -37
  210. package/parser/functions/util/utilPostProcessFn.spec.js +0 -63
  211. package/parser/functions/util/utilSendEmailFn.spec.js +0 -62
  212. package/parser/functions/util/utilSetHeaderFn.spec.js +0 -48
  213. package/parser/functions/util/utilSleepFn.spec.js +0 -44
  214. package/parser/functions/util/utilTemplateFn.spec.js +0 -78
  215. package/parser/functions/varFn.spec.js +0 -332
  216. package/parser/functions/workflowExpectFn.spec.js +0 -32
  217. package/parser/functions/zip/zipAddToArchiveFn.spec.js +0 -78
  218. package/parser/functions/zip/zipCreateArchiveFn.spec.js +0 -53
  219. package/parser/functions/zip/zipDeleteFromArchiveFn.spec.js +0 -69
  220. package/parser/functions/zip/zipExtractFn.spec.js +0 -52
  221. package/parser/functions/zip/zipViewContentsFn.spec.js +0 -52
  222. package/parser/generic/arrayWithValues.spec.js +0 -72
  223. package/parser/generic/asVariable.spec.js +0 -117
  224. package/parser/generic/assignableVariableAs.spec.js +0 -126
  225. package/parser/generic/assignableVariableProperty.spec.js +0 -138
  226. package/parser/generic/castedValue.spec.js +0 -29
  227. package/parser/generic/chainedIdentifier.spec.js +0 -89
  228. package/parser/generic/completeAuthVariable.spec.js +0 -23
  229. package/parser/generic/completeEnvVariable.spec.js +0 -99
  230. package/parser/generic/completeErrorVariable.spec.js +0 -17
  231. package/parser/generic/completeInputVariable.spec.js +0 -53
  232. package/parser/generic/expressionFn.spec.js +0 -605
  233. package/parser/generic/filterFn.spec.js +0 -47
  234. package/parser/generic/functionAttrReq.spec.js +0 -353
  235. package/parser/generic/longFormVariable.spec.js +0 -25
  236. package/parser/generic/minimalFnBody.spec.js +0 -47
  237. package/parser/generic/mockAttribute.spec.js +0 -57
  238. package/parser/generic/multilineFilterFn.spec.js +0 -51
  239. package/parser/generic/objectWithAttributes.spec.js +0 -147
  240. package/parser/generic/requiredValueFnBody.spec.js +0 -56
  241. package/parser/generic/shortFormVariable.spec.js +0 -27
  242. package/parser/generic/stringArray.spec.js +0 -55
  243. package/parser/generic/tagsAttribute.spec.js +0 -47
  244. package/parser/generic/variableOnly.spec.js +0 -47
  245. package/parser/mcp_server_parser.spec.js +0 -478
  246. package/parser/mcp_server_trigger_parser.spec.js +0 -396
  247. package/parser/metadata/columnMetadataDefinition.spec.js +0 -47
  248. package/parser/metadata/enumColumnMetadataDefinition.spec.js +0 -81
  249. package/parser/middleware_parser.spec.js +0 -230
  250. package/parser/multidoc.spec.js +0 -946
  251. package/parser/query_parser.spec.js +0 -202
  252. package/parser/realtime_channel_parser.spec.js +0 -20
  253. package/parser/realtime_trigger_parser.spec.js +0 -469
  254. package/parser/run_parser.spec.js +0 -100
  255. package/parser/table_parser.spec.js +0 -176
  256. package/parser/table_trigger_parser.spec.js +0 -478
  257. package/parser/task_parser.spec.js +0 -94
  258. package/parser/tests/agent/agent_parser.spec.js +0 -52
  259. package/parser/tests/agent/valid_sources/customer_servier_agent.xs +0 -45
  260. package/parser/tests/api_group/api_group_parser.spec.js +0 -52
  261. package/parser/tests/api_group/valid_sources/api_group_history.xs +0 -4
  262. package/parser/tests/api_group/valid_sources/basic_api_group.xs +0 -3
  263. package/parser/tests/api_group/valid_sources/complete_api_group.xs +0 -7
  264. package/parser/tests/api_group/valid_sources/protected_api_group.xs +0 -7
  265. package/parser/tests/function/function_parser.spec.js +0 -52
  266. package/parser/tests/function/valid_sources/all_controls.xs +0 -68
  267. package/parser/tests/function/valid_sources/all_query_return_types.xs +0 -227
  268. package/parser/tests/function/valid_sources/all_storage.xs +0 -45
  269. package/parser/tests/function/valid_sources/discord_poll_send_to_slack.xs +0 -133
  270. package/parser/tests/function/valid_sources/expression_in_response.xs +0 -22
  271. package/parser/tests/function/valid_sources/filter_by_value.xs +0 -55
  272. package/parser/tests/function/valid_sources/filter_query.xs +0 -82
  273. package/parser/tests/function/valid_sources/large_regex.xs +0 -13
  274. package/parser/tests/function/valid_sources/ledash_ends_with.xs +0 -90
  275. package/parser/tests/function/valid_sources/multiline_description.xs +0 -28
  276. package/parser/tests/function/valid_sources/multiline_expr.xs +0 -41
  277. package/parser/tests/function/valid_sources/set_theory_fn.xs +0 -129
  278. package/parser/tests/function/valid_sources/simple_unit_test.xs +0 -33
  279. package/parser/tests/function/valid_sources/valid_officer.xs +0 -57
  280. package/parser/tests/function/valid_sources/webflow.xs +0 -18
  281. package/parser/tests/query/query_parser.spec.js +0 -54
  282. package/parser/tests/query/valid_sources/all_basics.xs +0 -51
  283. package/parser/tests/query/valid_sources/all_cloud.xs +0 -141
  284. package/parser/tests/query/valid_sources/all_db.xs +0 -102
  285. package/parser/tests/query/valid_sources/all_external_db.xs +0 -43
  286. package/parser/tests/query/valid_sources/all_keywords.xs +0 -65
  287. package/parser/tests/query/valid_sources/all_math.xs +0 -53
  288. package/parser/tests/query/valid_sources/all_object.xs +0 -25
  289. package/parser/tests/query/valid_sources/all_redis.xs +0 -106
  290. package/parser/tests/query/valid_sources/all_security.xs +0 -105
  291. package/parser/tests/query/valid_sources/all_stream.xs +0 -69
  292. package/parser/tests/query/valid_sources/all_text.xs +0 -54
  293. package/parser/tests/query/valid_sources/all_util.xs +0 -66
  294. package/parser/tests/query/valid_sources/all_zip.xs +0 -39
  295. package/parser/tests/query/valid_sources/arrays.xs +0 -33
  296. package/parser/tests/query/valid_sources/disabled_response.xs +0 -27
  297. package/parser/tests/query/valid_sources/multiline_lambda_GET.xs +0 -50
  298. package/parser/tests/query/valid_sources/mutliline_query.xs +0 -140
  299. package/parser/tests/query/valid_sources/patch_expression_multiline.xs +0 -27
  300. package/parser/tests/query/valid_sources/query_cache.xs +0 -34
  301. package/parser/tests/query/valid_sources/query_example.xs +0 -43
  302. package/parser/tests/query/valid_sources/query_mini.xs +0 -11
  303. package/parser/tests/query/valid_sources/query_rich_inputs.xs +0 -32
  304. package/parser/tests/query/valid_sources/simple_unit_test.xs +0 -33
  305. package/parser/tests/query/valid_sources/test_with_slashes.xs +0 -22
  306. package/parser/tests/query/valid_sources/with_unit_test.xs +0 -97
  307. package/parser/tests/table/table_parser.spec.js +0 -52
  308. package/parser/tests/table/valid_sources/account.xs +0 -31
  309. package/parser/tests/table/valid_sources/all_basic_columns.xs +0 -44
  310. package/parser/tests/table/valid_sources/basic_table.xs +0 -15
  311. package/parser/tests/table/valid_sources/empty_object.xs +0 -17
  312. package/parser/tests/table/valid_sources/empty_table.xs +0 -3
  313. package/parser/tests/table/valid_sources/multiline_index.xs +0 -33
  314. package/parser/tests/table/valid_sources/relation.xs +0 -44
  315. package/parser/tests/table/valid_sources/rich_columns.xs +0 -31
  316. package/parser/tests/table/valid_sources/table_with_comments.xs +0 -17
  317. package/parser/tests/table/valid_sources/table_with_search_index.xs +0 -31
  318. package/parser/tests/table/valid_sources/view_table.xs +0 -62
  319. package/parser/tests/task/task_parser.spec.js +0 -53
  320. package/parser/tests/task/valid_sources/active_event.xs +0 -11
  321. package/parser/tests/task/valid_sources/all_events.xs +0 -17
  322. package/parser/tests/task/valid_sources/create_leak.xs +0 -165
  323. package/parser/tests/task/valid_sources/daily_sales_report.xs +0 -56
  324. package/parser/tests/task/valid_sources/inactive_event.xs +0 -11
  325. package/parser/tests/variable_test/coverage_check.xs +0 -293
  326. package/parser/tests/workflow_test/valid_sources/basic_workflow_test.xs +0 -13
  327. package/parser/tests/workflow_test/workflow_test_parser.spec.js +0 -52
  328. package/parser/tool_parser.spec.js +0 -115
  329. package/parser/variableValidator.spec.js +0 -179
  330. package/parser/workflow_test_parser.spec.js +0 -136
  331. package/parser/workspace_parser.spec.js +0 -142
  332. package/parser/workspace_trigger_parser.spec.js +0 -332
  333. package/toTmLanguage.js +0 -75
  334. package/utils.spec.js +0 -369
  335. package/workspace/crossFileValidator.spec.js +0 -654
  336. package/workspace/referenceTracking.spec.js +0 -420
  337. package/workspace/workspaceIndex.spec.js +0 -189
@@ -1,69 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.streamFromCsvFn();
11
- return parser;
12
- }
13
-
14
- describe("stream.from_csv", () => {
15
- it("Check from_csv is taking required params", () => {
16
- const input = `from_csv {
17
- value = $file
18
- separator = ","
19
- enclosure = "'"
20
- escape_char = "'"
21
- } as $stream_1`;
22
- const parser = parse(input);
23
- expect(parser.errors).to.be.empty;
24
- });
25
-
26
- it("Check from_csv is missing required params", () => {
27
- const input = `from_csv {
28
- value = ""
29
- separator = ","
30
- } as $stream_1`;
31
- const parser = parse(input);
32
- expect(parser.errors).to.not.be.empty;
33
- });
34
-
35
- it("Check from_csv has duplicate attributes", () => {
36
- const input = `from_csv {
37
- value = $file
38
- value = $another_file
39
- separator = ","
40
- enclosure = "'"
41
- escape_char = "'"
42
- } as $stream_1`;
43
- const parser = parse(input);
44
- expect(parser.errors).to.not.be.empty;
45
- });
46
-
47
- it("Check from_csv has illegal attributes", () => {
48
- const input = `from_csv {
49
- value = $file
50
- separator = ","
51
- enclosure = "'"
52
- escape_char = "'"
53
- illegalAttr = "value"
54
- } as $stream_1`;
55
- const parser = parse(input);
56
- expect(parser.errors).to.not.be.empty;
57
- });
58
-
59
- it("Check from_csv with different separator", () => {
60
- const input = `from_csv {
61
- value = $file
62
- separator = ";"
63
- enclosure = "'"
64
- escape_char = "'"
65
- } as $stream_1`;
66
- const parser = parse(input);
67
- expect(parser.errors).to.be.empty;
68
- });
69
- });
@@ -1,47 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.streamFromJsonlFn();
11
- return parser;
12
- }
13
-
14
- describe("stream.from_jsonl", () => {
15
- it("Check from_jsonl is taking required params", () => {
16
- const input = `from_jsonl {
17
- value = $jsonl_file_resource
18
- } as $stream1`;
19
- const parser = parse(input);
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("Check from_jsonl is missing required params", () => {
24
- const input = `from_jsonl {
25
- } as $stream1`;
26
- const parser = parse(input);
27
- expect(parser.errors).to.not.be.empty;
28
- });
29
-
30
- it("Check from_jsonl has duplicate attributes", () => {
31
- const input = `from_jsonl {
32
- value = $jsonl_file_resource
33
- value = $another_jsonl_file
34
- } as $stream1`;
35
- const parser = parse(input);
36
- expect(parser.errors).to.not.be.empty;
37
- });
38
-
39
- it("Check from_jsonl has illegal attributes", () => {
40
- const input = `from_jsonl {
41
- value = $jsonl_file_resource
42
- illegalAttr = "value"
43
- } as $stream1`;
44
- const parser = parse(input);
45
- expect(parser.errors).to.not.be.empty;
46
- });
47
- });
@@ -1,103 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.streamFromRequestFn();
11
- return parser;
12
- }
13
-
14
- describe("stream.from_request", () => {
15
- it("works with minimal parameters", () => {
16
- const input = `from_request {
17
- url = "https://api.example.com/webhook"
18
- method = "GET"
19
- params = {}|set:"my_var":"my_value"
20
- headers = []
21
- timeout = 10
22
- follow_location = true
23
- } as $stream_1`;
24
- const parser = parse(input);
25
- expect(parser.errors).to.be.empty;
26
- });
27
-
28
- it("works with all params", () => {
29
- const input = `from_request {
30
- url = "https://api.example.com/webhook"
31
- method = "GET"
32
- params = {}|set:"my_var":"my_value"
33
- headers = []
34
- timeout = 10
35
- follow_location = true
36
- verify_host = false
37
- verify_peer = false
38
- ca_certificate = ""
39
- certificate = ""
40
- certificate_pass = ""
41
- private_key = ""
42
- private_key_pass = ""
43
- } as $stream_1`;
44
- const parser = parse(input);
45
- expect(parser.errors).to.be.empty;
46
- });
47
-
48
- it("has duplicate attributes", () => {
49
- const input = `from_request {
50
- url = "https://api.example.com/webhook"
51
- url = "https://google.com.site/"
52
- method = "GET"
53
- params = {}|set:"my_var":"my_value"
54
- headers = []
55
- timeout = 10
56
- follow_location = true
57
- } as $stream_1`;
58
- const parser = parse(input);
59
- expect(parser.errors).to.not.be.empty;
60
- });
61
-
62
- it("rejects illegal attributes", () => {
63
- const input = `from_request {
64
- url = "https://api.example.com/webhook"
65
- method = "GET"
66
- params = {}|set:"my_var":"my_value"
67
- headers = []
68
- timeout = 10
69
- follow_location = true
70
- illegalAttr = "value"
71
- } as $stream_1`;
72
- const parser = parse(input);
73
- expect(parser.errors).to.not.be.empty;
74
- });
75
-
76
- it("can be disabled", () => {
77
- const input = `from_request {
78
- url = "https://api.example.com/webhook"
79
- method = "GET"
80
- params = {}|set:"my_var":"my_value"
81
- headers = []
82
- timeout = 10
83
- follow_location = true
84
- disabled = true
85
- } as $stream_1`;
86
- const parser = parse(input);
87
- expect(parser.errors).to.be.empty;
88
- });
89
-
90
- it("accepts a description", () => {
91
- const input = `from_request {
92
- url = "https://api.example.com/webhook"
93
- method = "GET"
94
- params = {}|set:"my_var":"my_value"
95
- headers = []
96
- timeout = 10
97
- follow_location = true
98
- description = "foo"
99
- } as $stream_1`;
100
- const parser = parse(input);
101
- expect(parser.errors).to.be.empty;
102
- });
103
- });
@@ -1,100 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.allTextWithReturnValueFn();
11
- return parser;
12
- }
13
-
14
- describe("allTextWithReturnValueFn", () => {
15
- it("allTextWithReturnValueFn accepts a value", () => {
16
- const parser = parse(`starts_with $x1 {
17
- value = "text"
18
- } as $starts_with`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
-
22
- it("allTextWithReturnValueFn requires a value", () => {
23
- const parser = parse(`starts_with $x1 {
24
- description = "foo"
25
- } as $starts_with`);
26
- expect(parser.errors).to.not.be.empty;
27
- });
28
-
29
- it("allTextWithReturnValueFn accepts a description", () => {
30
- const parser = parse(`starts_with $x1 {
31
- value = "text"
32
- description = "foo"
33
- } as $starts_with`);
34
- expect(parser.errors).to.be.empty;
35
- });
36
-
37
- it("allTextWithReturnValueFn can be disabled", () => {
38
- const parser = parse(`starts_with $x1 {
39
- value = "text"
40
- disabled = true
41
- } as $starts_with`);
42
- expect(parser.errors).to.be.empty;
43
- });
44
-
45
- it("allTextWithReturnValueFn accepts a long form variable", () => {
46
- const parser = parse(`starts_with $var.x1 {
47
- value = "text"
48
- } as $starts_with`);
49
- expect(parser.errors).to.be.empty;
50
- });
51
-
52
- it("allTextWithReturnValueFn accepts an attribute for assignment", () => {
53
- const parser = parse(`starts_with $x1.bar {
54
- value = "text"
55
- } as $starts_with`);
56
- expect(parser.errors).to.be.empty;
57
- });
58
-
59
- it("allTextWithReturnValueFn can parse starts_with", () => {
60
- const parser = parse(`starts_with $x1 {
61
- value = "text"
62
- } as $starts_with`);
63
- expect(parser.errors).to.be.empty;
64
- });
65
-
66
- it("allTextWithReturnValueFn can parse ends_with", () => {
67
- const parser = parse(`ends_with $x1 {
68
- value = "text"
69
- } as $ends_with`);
70
- expect(parser.errors).to.be.empty;
71
- });
72
-
73
- it("allTextWithReturnValueFn can parse contains", () => {
74
- const parser = parse(`contains $x1 {
75
- value = "text"
76
- } as $contains`);
77
- expect(parser.errors).to.be.empty;
78
- });
79
-
80
- it("allTextWithReturnValueFn can parse istarts_with", () => {
81
- const parser = parse(`istarts_with $x1 {
82
- value = "text"
83
- } as $istarts_with`);
84
- expect(parser.errors).to.be.empty;
85
- });
86
-
87
- it("allTextWithReturnValueFn can parse iends_with", () => {
88
- const parser = parse(`iends_with $x1 {
89
- value = "text"
90
- } as $iends_with`);
91
- expect(parser.errors).to.be.empty;
92
- });
93
-
94
- it("allTextWithReturnValueFn can parse icontains", () => {
95
- const parser = parse(`icontains $x1 {
96
- value = "text"
97
- } as $icontains`);
98
- expect(parser.errors).to.be.empty;
99
- });
100
- });
@@ -1,122 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.allTextWithoutReturnValueFn();
11
- return parser;
12
- }
13
-
14
- function parseFull(inputText) {
15
- parser.reset();
16
- const lexResult = lexDocument(inputText);
17
- parser.input = lexResult.tokens;
18
- parser.textFn();
19
- return parser;
20
- }
21
-
22
- describe("allTextWithoutReturnValueFn", () => {
23
- it("allTextWithoutReturnValueFn accepts a value", () => {
24
- const parser = parse(`trim $x1 {
25
- value = "text"
26
- }`);
27
- expect(parser.errors).to.be.empty;
28
- });
29
-
30
- it("allTextWithoutReturnValueFn requires a value", () => {
31
- const parser = parse(`trim $x1 {
32
- description = "foo"
33
- }`);
34
- expect(parser.errors).to.not.be.empty;
35
- });
36
-
37
- it("allTextWithoutReturnValueFn accepts a description", () => {
38
- const parser = parse(`trim $x1 {
39
- value = "text"
40
- description = "foo"
41
- }`);
42
- expect(parser.errors).to.be.empty;
43
- });
44
-
45
- it("allTextWithoutReturnValueFn can be disabled", () => {
46
- const parser = parse(`trim $x1 {
47
- value = "text"
48
- disabled = true
49
- }`);
50
- expect(parser.errors).to.be.empty;
51
- });
52
-
53
- it("allTextWithoutReturnValueFn accepts a long form variable", () => {
54
- const parser = parse(`trim $var.x1 {
55
- value = "text"
56
- }`);
57
- expect(parser.errors).to.be.empty;
58
- });
59
-
60
- it("allTextWithoutReturnValueFn accepts an attribute for assignment", () => {
61
- const parser = parse(`trim $x1.bar {
62
- value = "text"
63
- }`);
64
- expect(parser.errors).to.be.empty;
65
- });
66
-
67
- it("allTextWithoutReturnValueFn can parse ltrim", () => {
68
- const parser = parse(`ltrim $x1 {
69
- value = "text"
70
- }`);
71
- expect(parser.errors).to.be.empty;
72
- });
73
-
74
- it("allTextWithoutReturnValueFn can parse rtrim", () => {
75
- const parser = parse(`rtrim $x1 {
76
- value = "text"
77
- }`);
78
- expect(parser.errors).to.be.empty;
79
- });
80
-
81
- it("allTextWithoutReturnValueFn can parse trim", () => {
82
- const parser = parse(`trim $x1 {
83
- value = "text"
84
- }`);
85
- expect(parser.errors).to.be.empty;
86
- });
87
-
88
- it("allTextWithoutReturnValueFn can parse prepend", () => {
89
- const parser = parse(`prepend $x1 {
90
- value = "text"
91
- }`);
92
- expect(parser.errors).to.be.empty;
93
- });
94
-
95
- it("allTextWithoutReturnValueFn can parse append", () => {
96
- const parser = parse(`append $x1 {
97
- value = "text"
98
- }`);
99
- expect(parser.errors).to.be.empty;
100
- });
101
-
102
- it("allTextWithoutReturnValueFn doesn't require as $var", () => {
103
- const parser = parse(`append $x1 {
104
- value = "text"
105
- } as $append`);
106
- expect(parser.errors).to.not.be.empty;
107
- });
108
-
109
- it("allTextWithoutReturnValueFn works with text. namespace", () => {
110
- const parser = parseFull(`text.trim $x1 {
111
- value = "text"
112
- }`);
113
- expect(parser.errors).to.be.empty;
114
- });
115
-
116
- it("allTextWithoutReturnValueFn errors without text. namespace", () => {
117
- const parser = parseFull(`trim $x1 {
118
- value = "text"
119
- }`);
120
- expect(parser.errors).to.not.be.empty;
121
- });
122
- });
@@ -1,28 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../lexer/lexer.js";
4
- import { parser } from "../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.toolCallFn();
11
- return parser;
12
- }
13
-
14
- describe("toolCallFn", () => {
15
- it("should parse tool.call statement", () => {
16
- const parser = parse(`tool.call my_agent {
17
- input = {
18
- "key": "value"
19
- }
20
- } as $result`);
21
- expect(parser.errors).to.be.empty;
22
- });
23
-
24
- it("tool.call can be one liner without a body", () => {
25
- const parser = parse(`tool.call my_agent as $result`);
26
- expect(parser.errors).to.be.empty;
27
- });
28
- });
@@ -1,51 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../lexer/lexer.js";
4
- import { parser } from "../test_parser.js";
5
-
6
- function parse(inputText, context = null) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
-
11
- if (context) {
12
- parser.sectionStack.push(context);
13
- parser.triggerCallFn();
14
- parser.sectionStack.pop();
15
- } else {
16
- parser.triggerCallFn();
17
- }
18
-
19
- return parser;
20
- }
21
-
22
- describe("triggerCallFn", () => {
23
- it("should parse trigger.call statement", () => {
24
- const parser = parse(
25
- `trigger.call my_agent {
26
- input = {
27
- "key": "value"
28
- }
29
- } as $result`,
30
- "workflowTestDeclaration",
31
- );
32
- expect(parser.errors).to.be.empty;
33
- });
34
-
35
- it("trigger.call can be one liner without a body", () => {
36
- const parser = parse(
37
- `trigger.call my_agent as $result`,
38
- "workflowTestDeclaration",
39
- );
40
- expect(parser.errors).to.be.empty;
41
- });
42
-
43
- it("should not allow trigger.call statement outside of workflowTestDeclaration", () => {
44
- const parser = parse(`trigger.call my_agent {
45
- input = {
46
- "key": "value"
47
- }
48
- } as $result`);
49
- expect(parser.errors).to.not.be.empty;
50
- });
51
- });
@@ -1,21 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../lexer/lexer.js";
4
- import { parser } from "../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.unitExpectFn();
11
- return parser;
12
- }
13
-
14
- describe("unitExpectFn", () => {
15
- it("unitExpectFn accepts a string literal as value", () => {
16
- const parser = parse(`expect.to_equal ($response.email) {
17
- value = "email@example.com"
18
- }`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
- });
@@ -1,79 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.utilGeoDistanceFn();
11
- return parser;
12
- }
13
-
14
- describe("utilGeoDistanceFn", () => {
15
- it("utilGeoDistanceFn accepts a latitude and longitude", () => {
16
- const parser = parse(`geo_distance {
17
- latitude_1 = 1
18
- longitude_1 = 2
19
- latitude_2 = 3
20
- longitude_2 = 4
21
- } as $x1`);
22
- expect(parser.errors).to.be.empty;
23
- });
24
-
25
- it("utilGeoDistanceFn accepts a description", () => {
26
- const parser = parse(`geo_distance {
27
- latitude_1 = 1
28
- longitude_1 = 2
29
- latitude_2 = 3
30
- longitude_2 = 4
31
- description = "foo"
32
- } as $x4`);
33
- expect(parser.errors).to.be.empty;
34
- });
35
-
36
- it("utilGeoDistanceFn can be disabled", () => {
37
- const parser = parse(`geo_distance {
38
- latitude_1 = 1
39
- longitude_1 = 2
40
- latitude_2 = 3
41
- longitude_2 = 4
42
- disabled = true
43
- } as $x4`);
44
- expect(parser.errors).to.be.empty;
45
- });
46
-
47
- it("utilGeoDistanceFn requires a latitude attr", () => {
48
- let parser = parse(`geo_distance {
49
- longitude_1 = 2
50
- latitude_2 = 3
51
- longitude_2 = 4
52
- } as $x4`);
53
- expect(parser.errors).to.not.be.empty;
54
-
55
- parser = parse(`geo_distance {
56
- latitude_1 = 1
57
- longitude_1 = 2
58
- longitude_2 = 4
59
- } as $x4`);
60
- expect(parser.errors).to.not.be.empty;
61
- });
62
-
63
- it("utilGeoDistanceFn requires a longitude attrs", () => {
64
- let parser = parse(`geo_distance {
65
- latitude_1 = 1
66
- latitude_2 = 3
67
- longitude_2 = 4
68
- } as $x4`);
69
-
70
- expect(parser.errors).to.not.be.empty;
71
-
72
- parser = parse(`geo_distance {
73
- latitude_1 = 1
74
- longitude_1 = 2
75
- latitude_2 = 3
76
- } as $x4`);
77
- expect(parser.errors).to.not.be.empty;
78
- });
79
- });
@@ -1,33 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.utilGetAllInputFn();
11
- return parser;
12
- }
13
-
14
- describe("utilGetAllInputFn", () => {
15
- it("utilGetAllInputFn can have an empty body", () => {
16
- const parser = parse(`get_all_input as $x4`);
17
- expect(parser.errors).to.be.empty;
18
- });
19
-
20
- it("utilGetAllInputFn accepts a description", () => {
21
- const parser = parse(`get_all_input {
22
- description = "foo"
23
- } as $x4`);
24
- expect(parser.errors).to.be.empty;
25
- });
26
-
27
- it("utilGetAllInputFn can be disabled", () => {
28
- const parser = parse(`get_all_input {
29
- disabled = true
30
- } as $x4`);
31
- expect(parser.errors).to.be.empty;
32
- });
33
- });
@@ -1,33 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.utilGetEnvFn();
11
- return parser;
12
- }
13
-
14
- describe("utilGetEnvFn", () => {
15
- it("utilGetEnvFn can have an empty body", () => {
16
- const parser = parse(`get_env as $x4`);
17
- expect(parser.errors).to.be.empty;
18
- });
19
-
20
- it("utilGetEnvFn accepts a description", () => {
21
- const parser = parse(`get_env {
22
- description = "foo"
23
- } as $x4`);
24
- expect(parser.errors).to.be.empty;
25
- });
26
-
27
- it("utilGetEnvFn can be disabled", () => {
28
- const parser = parse(`get_env {
29
- disabled = true
30
- } as $x4`);
31
- expect(parser.errors).to.be.empty;
32
- });
33
- });