@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,179 +0,0 @@
1
- import { expect } from "chai";
2
- import { readFileSync } from "fs";
3
- import { before, describe, it } from "mocha";
4
- import { lexDocument } from "../lexer/lexer.js";
5
- import { xanoscriptParser } from "./parser.js";
6
- import { scanVariableUsages } from "./variableScanner.js";
7
- import { validateVariables } from "./variableValidator.js";
8
-
9
- describe("variable tracking - coverage_check.xs", () => {
10
- let varDeclarations;
11
- let usages;
12
- let result;
13
- let text;
14
-
15
- before(() => {
16
- text = readFileSync(
17
- new URL("./tests/variable_test/coverage_check.xs", import.meta.url),
18
- "utf8",
19
- );
20
- const lexResult = lexDocument(text);
21
- const parser = xanoscriptParser(text);
22
- expect(parser.errors).to.be.empty;
23
- varDeclarations = [...parser.__symbolTable.varDeclarations];
24
- usages = scanVariableUsages(lexResult.tokens, varDeclarations);
25
- result = validateVariables(parser.__symbolTable, lexResult.tokens);
26
- });
27
-
28
- function lineOf(offset) {
29
- return text.substring(0, offset).split("\n").length;
30
- }
31
-
32
- function declLines(name) {
33
- return varDeclarations
34
- .filter((d) => d.name === name)
35
- .map((d) => lineOf(d.startOffset));
36
- }
37
-
38
- function usageLines(name) {
39
- return usages.filter((u) => u.name === name).map((u) => lineOf(u.startOffset));
40
- }
41
-
42
- // --- Declarations: each variable should be declared exactly once ---
43
-
44
- it("$vehicle declared once at line 26 via 'as $vehicle'", () => {
45
- expect(declLines("$vehicle")).to.deep.equal([26]);
46
- });
47
-
48
- it("$unused_variable declared once at line 35 via 'var'", () => {
49
- expect(declLines("$unused_variable")).to.deep.equal([35]);
50
- });
51
-
52
- it("$vehicle_response declared once at line 40 via 'var'", () => {
53
- expect(declLines("$vehicle_response")).to.deep.equal([40]);
54
- });
55
-
56
- it("$policy declared once at line 63 via 'as $policy'", () => {
57
- expect(declLines("$policy")).to.deep.equal([63]);
58
- });
59
-
60
- it("$policy_response declared once at line 66 via 'var' (NOT again at line 87 via var.update)", () => {
61
- expect(declLines("$policy_response")).to.deep.equal([66]);
62
- });
63
-
64
- it("$coverages_response declared once at line 70 via 'var'", () => {
65
- expect(declLines("$coverages_response")).to.deep.equal([70]);
66
- });
67
-
68
- it("$claims_summary declared once at line 74 via 'var' (NOT again at line 188 via var.update)", () => {
69
- expect(declLines("$claims_summary")).to.deep.equal([74]);
70
- });
71
-
72
- it("$policy_coverages declared once at line 105 via 'as'", () => {
73
- expect(declLines("$policy_coverages")).to.deep.equal([105]);
74
- });
75
-
76
- it("$pc declared once at line 109 via 'each as $pc'", () => {
77
- expect(declLines("$pc")).to.deep.equal([109]);
78
- });
79
-
80
- it("$ctype declared once at line 113 via 'as $ctype'", () => {
81
- expect(declLines("$ctype")).to.deep.equal([113]);
82
- });
83
-
84
- it("$coverage_item declared once at line 116 via 'var'", () => {
85
- expect(declLines("$coverage_item")).to.deep.equal([116]);
86
- });
87
-
88
- it("$all_claims declared once at line 142 via 'as'", () => {
89
- expect(declLines("$all_claims")).to.deep.equal([142]);
90
- });
91
-
92
- it("$total_claims_count declared once at line 145 via 'var'", () => {
93
- expect(declLines("$total_claims_count")).to.deep.equal([145]);
94
- });
95
-
96
- it("$two_years_ago declared once at line 150 via 'var'", () => {
97
- expect(declLines("$two_years_ago")).to.deep.equal([150]);
98
- });
99
-
100
- it("$recent_claims_list declared once at line 155 via 'var'", () => {
101
- expect(declLines("$recent_claims_list")).to.deep.equal([155]);
102
- });
103
-
104
- it("$claim declared once at line 160 via 'each as $claim'", () => {
105
- expect(declLines("$claim")).to.deep.equal([160]);
106
- });
107
-
108
- it("$claim_date_ts declared once at line 162 via 'var'", () => {
109
- expect(declLines("$claim_date_ts")).to.deep.equal([162]);
110
- });
111
-
112
- it("$recent_claim_item declared once at line 169 via 'var'", () => {
113
- expect(declLines("$recent_claim_item")).to.deep.equal([169]);
114
- });
115
-
116
- it("$queried_by declared once at line 202 via 'var' (NOT again at line 217 via var.update)", () => {
117
- expect(declLines("$queried_by")).to.deep.equal([202]);
118
- });
119
-
120
- it("$shop declared once at line 212 via 'as'", () => {
121
- expect(declLines("$shop")).to.deep.equal([212]);
122
- });
123
-
124
- it("$result declared once at line 230 via 'var' (NOT again at line 242 via var.update)", () => {
125
- expect(declLines("$result")).to.deep.equal([230]);
126
- });
127
-
128
- // --- Usages: var.update targets count as usages ---
129
-
130
- it("$vehicle used at lines 29, 42-46, 57", () => {
131
- expect(usageLines("$vehicle")).to.deep.equal([29, 42, 43, 44, 45, 46, 57]);
132
- });
133
-
134
- it("$policy_response used at line 87 (var.update) and 233", () => {
135
- expect(usageLines("$policy_response")).to.include(87);
136
- expect(usageLines("$policy_response")).to.include(233);
137
- });
138
-
139
- it("$claims_summary used at line 188 (var.update) and 235", () => {
140
- expect(usageLines("$claims_summary")).to.include(188);
141
- expect(usageLines("$claims_summary")).to.include(235);
142
- });
143
-
144
- it("$queried_by used at line 217 (var.update), 241, 243", () => {
145
- expect(usageLines("$queried_by")).to.include(217);
146
- expect(usageLines("$queried_by")).to.include(241);
147
- expect(usageLines("$queried_by")).to.include(243);
148
- });
149
-
150
- it("$result used at line 242 (var.update), 243, 251", () => {
151
- expect(usageLines("$result")).to.include(242);
152
- expect(usageLines("$result")).to.include(243);
153
- expect(usageLines("$result")).to.include(251);
154
- });
155
-
156
- it("$coverages_response used at lines 127 and 234", () => {
157
- expect(usageLines("$coverages_response")).to.include(127);
158
- expect(usageLines("$coverages_response")).to.include(234);
159
- });
160
-
161
- it("$pc used at lines 112, 120-122", () => {
162
- expect(usageLines("$pc")).to.deep.equal([112, 120, 121, 122]);
163
- });
164
-
165
- it("$claim used at lines 163, 171-175", () => {
166
- expect(usageLines("$claim")).to.deep.equal([163, 171, 172, 173, 174, 175]);
167
- });
168
-
169
- // --- Validation results ---
170
-
171
- it("should produce zero undefined-variable warnings", () => {
172
- expect(result.warnings).to.be.empty;
173
- });
174
-
175
- it("should flag only $unused_variable as unused", () => {
176
- expect(result.hints).to.have.lengthOf(1);
177
- expect(result.hints[0].message).to.include("$unused_variable");
178
- });
179
- });
@@ -1,136 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { xanoscriptParser } from "./parser.js";
4
-
5
- describe("workflow_test_parser", () => {
6
- it("should parse a basic workflow test with expect", () => {
7
- const parser = xanoscriptParser(`workflow_test foo {
8
- stack {
9
- var $a {
10
- value = 22
11
- }
12
- var $b {
13
- value = $a + 20
14
- }
15
-
16
- expect.to_equal ($b) {
17
- value = 42
18
- }
19
- }
20
- }`);
21
- expect(parser.errors).to.be.empty;
22
- });
23
-
24
- it("should be able to call an addon function in a workflow test", () => {
25
- const parser = xanoscriptParser(`workflow_test test {
26
- stack {
27
- addon.call "" {
28
- input = {ids: []|push:1|push:2}
29
- } as $addon1
30
- }
31
- }`);
32
- expect(parser.errors).to.be.empty;
33
- });
34
-
35
- it("should parse a workflow test with a function test call", () => {
36
- const parser = xanoscriptParser(`workflow_test foo {
37
- stack {
38
- function.call add {
39
- input = {a: 5, b: 10}
40
- } as $sums
41
-
42
- expect.to_equal ($sum
43
- |subtract:5
44
- ) {
45
- value = 10
46
- }
47
- }
48
- }`);
49
- expect(parser.errors).to.be.empty;
50
- });
51
-
52
- it("should parse a workflow test with a task test call", () => {
53
- const parser = xanoscriptParser(`workflow_test foo {
54
- stack {
55
- task.call "count to 10" as $test1
56
- }
57
- }`);
58
- expect(parser.errors).to.be.empty;
59
- });
60
-
61
- it("should parse a workflow test with an api call", () => {
62
- const parser = xanoscriptParser(`workflow_test foo {
63
- stack {
64
- api.call sum verb=GET {
65
- api_group = "new api"
66
- headers = ""
67
- input = {a: 22, b: 33}
68
- } as $sum
69
- }
70
- }`);
71
- expect(parser.errors).to.be.empty;
72
- });
73
-
74
- it("should parse a workflow test with api.call within a group", () => {
75
- const parser = xanoscriptParser(`workflow_test foo {
76
- stack {
77
- group {
78
- stack {
79
- api.call "endpoint/{id}" verb=PATCH {
80
- api_group = "external"
81
- input = {
82
- data: {action: "update"}
83
- id: 123
84
- }
85
- } as $result
86
- }
87
- }
88
- }
89
- }`);
90
- expect(parser.errors).to.be.empty;
91
- });
92
-
93
- it("should parse a workflow test with expect.to_equal within a group", () => {
94
- const parser = xanoscriptParser(`workflow_test foo {
95
- stack {
96
- var $a {
97
- value = 42
98
- }
99
-
100
- function.run woot {
101
- input = {scope: 12}
102
- } as $my_val
103
-
104
- group {
105
- stack {
106
- function.call "add" {
107
- input = {a: 20, b: 22}
108
- } as $sum
109
-
110
- expect.to_equal ($a) {
111
- value = 42
112
- }
113
- }
114
- }
115
-
116
- group {
117
- stack {
118
- function.call "add" {
119
- input = {a: 20, b: 22}
120
- } as $sum
121
-
122
- api.call "users/{user_id}" verb=GET {
123
- api_group = "account"
124
- input = { user_id: 123 }
125
- } as $user
126
-
127
- expect.to_equal ($a) {
128
- value = 42
129
- }
130
- }
131
- }
132
- }
133
- }`);
134
- expect(parser.errors).to.be.empty;
135
- });
136
- });
@@ -1,142 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { xanoscriptParser } from "./parser.js";
4
-
5
- describe("workspace_parser", () => {
6
- it("should parse a basic workspace with identifier", () => {
7
- const parser = xanoscriptParser(`workspace my_workspace`);
8
- expect(parser.errors).to.be.empty;
9
- });
10
-
11
- it("should parse a basic workspace with string literal", () => {
12
- const parser = xanoscriptParser(`workspace "my workspace"`);
13
- expect(parser.errors).to.be.empty;
14
- });
15
-
16
- it("should parse workspace with description", () => {
17
- const parser = xanoscriptParser(`workspace my_workspace {
18
- description = "This is my workspace"
19
- }`);
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("should parse workspace with acceptance clause", () => {
24
- const parser = xanoscriptParser(`workspace my_workspace {
25
- acceptance = {
26
- ai_terms: true
27
- }
28
- }`);
29
- expect(parser.errors).to.be.empty;
30
- });
31
-
32
- it("should parse workspace with preferences clause", () => {
33
- const parser = xanoscriptParser(`workspace my_workspace {
34
- preferences = {
35
- internal_docs: true
36
- sql_columns: false
37
- sql_names: true
38
- track_performance: false
39
- }
40
- }`);
41
- expect(parser.errors).to.be.empty;
42
- });
43
-
44
- it("should parse workspace with realtime clause", () => {
45
- const parser = xanoscriptParser(`workspace my_workspace {
46
- realtime = {
47
- canonical: "wss://example.com"
48
- }
49
- }`);
50
- expect(parser.errors).to.be.empty;
51
- });
52
-
53
- it("should parse workspace with all clauses", () => {
54
- const parser = xanoscriptParser(`workspace my_workspace {
55
- description = "Full workspace example"
56
-
57
- acceptance = {
58
- ai_terms: true
59
- }
60
-
61
- preferences = {
62
- internal_docs: true
63
- sql_columns: true
64
- sql_names: false
65
- track_performance: true
66
- }
67
-
68
- realtime = {
69
- canonical: "wss://example.com/realtime"
70
- }
71
- }`);
72
- expect(parser.errors).to.be.empty;
73
- });
74
-
75
- it("should parse workspace with partial preferences", () => {
76
- const parser = xanoscriptParser(`workspace my_workspace {
77
- preferences = {
78
- internal_docs: true
79
- }
80
- }`);
81
- expect(parser.errors).to.be.empty;
82
- });
83
-
84
- it("should not allow duplicate acceptance clauses", () => {
85
- const parser = xanoscriptParser(`workspace my_workspace {
86
- acceptance = {
87
- ai_terms: true
88
- }
89
- acceptance = {
90
- ai_terms: false
91
- }
92
- }`);
93
- expect(parser.errors).to.not.be.empty;
94
- });
95
-
96
- it("should not allow duplicate description clauses", () => {
97
- const parser = xanoscriptParser(`workspace my_workspace {
98
- description = "First description"
99
- description = "Second description"
100
- }`);
101
- expect(parser.errors).to.not.be.empty;
102
- });
103
-
104
- it("should not allow duplicate preferences clauses", () => {
105
- const parser = xanoscriptParser(`workspace my_workspace {
106
- preferences = {
107
- internal_docs: true
108
- }
109
- preferences = {
110
- sql_columns: false
111
- }
112
- }`);
113
- expect(parser.errors).to.not.be.empty;
114
- });
115
-
116
- it("should not allow duplicate realtime clauses", () => {
117
- const parser = xanoscriptParser(`workspace my_workspace {
118
- realtime = {
119
- canonical: "wss://example.com"
120
- }
121
- realtime = {
122
- canonical: "wss://other.com"
123
- }
124
- }`);
125
- expect(parser.errors).to.not.be.empty;
126
- });
127
-
128
- it("should require workspace name", () => {
129
- const parser = xanoscriptParser(`workspace {
130
- }`);
131
- expect(parser.errors).to.not.be.empty;
132
- });
133
-
134
- it("should parse workspace with empty clauses", () => {
135
- const parser = xanoscriptParser(`workspace my_workspace {
136
- acceptance = {}
137
- preferences = {}
138
- realtime = {}
139
- }`);
140
- expect(parser.errors).to.be.empty;
141
- });
142
- });