@xano/xanoscript-language-server 11.12.1 → 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 (339) hide show
  1. package/lexer/tokens.js +22 -3
  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/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 -77
  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/multidoc/multidoc_parser.spec.js +0 -55
  282. package/parser/tests/multidoc/valid_sources/function_stack.xs +0 -130603
  283. package/parser/tests/query/query_parser.spec.js +0 -54
  284. package/parser/tests/query/valid_sources/all_basics.xs +0 -51
  285. package/parser/tests/query/valid_sources/all_cloud.xs +0 -141
  286. package/parser/tests/query/valid_sources/all_db.xs +0 -102
  287. package/parser/tests/query/valid_sources/all_external_db.xs +0 -43
  288. package/parser/tests/query/valid_sources/all_keywords.xs +0 -65
  289. package/parser/tests/query/valid_sources/all_math.xs +0 -53
  290. package/parser/tests/query/valid_sources/all_object.xs +0 -25
  291. package/parser/tests/query/valid_sources/all_redis.xs +0 -106
  292. package/parser/tests/query/valid_sources/all_security.xs +0 -105
  293. package/parser/tests/query/valid_sources/all_stream.xs +0 -69
  294. package/parser/tests/query/valid_sources/all_text.xs +0 -54
  295. package/parser/tests/query/valid_sources/all_util.xs +0 -66
  296. package/parser/tests/query/valid_sources/all_zip.xs +0 -39
  297. package/parser/tests/query/valid_sources/arrays.xs +0 -33
  298. package/parser/tests/query/valid_sources/disabled_response.xs +0 -27
  299. package/parser/tests/query/valid_sources/multiline_lambda_GET.xs +0 -50
  300. package/parser/tests/query/valid_sources/mutliline_query.xs +0 -140
  301. package/parser/tests/query/valid_sources/patch_expression_multiline.xs +0 -27
  302. package/parser/tests/query/valid_sources/query_cache.xs +0 -34
  303. package/parser/tests/query/valid_sources/query_example.xs +0 -43
  304. package/parser/tests/query/valid_sources/query_mini.xs +0 -11
  305. package/parser/tests/query/valid_sources/query_rich_inputs.xs +0 -32
  306. package/parser/tests/query/valid_sources/simple_unit_test.xs +0 -33
  307. package/parser/tests/query/valid_sources/test_with_slashes.xs +0 -22
  308. package/parser/tests/query/valid_sources/with_unit_test.xs +0 -97
  309. package/parser/tests/table/table_parser.spec.js +0 -52
  310. package/parser/tests/table/valid_sources/account.xs +0 -31
  311. package/parser/tests/table/valid_sources/all_basic_columns.xs +0 -44
  312. package/parser/tests/table/valid_sources/basic_table.xs +0 -15
  313. package/parser/tests/table/valid_sources/empty_object.xs +0 -17
  314. package/parser/tests/table/valid_sources/empty_table.xs +0 -3
  315. package/parser/tests/table/valid_sources/multiline_index.xs +0 -33
  316. package/parser/tests/table/valid_sources/relation.xs +0 -44
  317. package/parser/tests/table/valid_sources/rich_columns.xs +0 -31
  318. package/parser/tests/table/valid_sources/table_with_comments.xs +0 -17
  319. package/parser/tests/table/valid_sources/table_with_search_index.xs +0 -31
  320. package/parser/tests/table/valid_sources/view_table.xs +0 -62
  321. package/parser/tests/task/task_parser.spec.js +0 -53
  322. package/parser/tests/task/valid_sources/active_event.xs +0 -11
  323. package/parser/tests/task/valid_sources/all_events.xs +0 -17
  324. package/parser/tests/task/valid_sources/create_leak.xs +0 -165
  325. package/parser/tests/task/valid_sources/daily_sales_report.xs +0 -56
  326. package/parser/tests/task/valid_sources/inactive_event.xs +0 -11
  327. package/parser/tests/variable_test/coverage_check.xs +0 -293
  328. package/parser/tests/workflow_test/valid_sources/basic_workflow_test.xs +0 -13
  329. package/parser/tests/workflow_test/workflow_test_parser.spec.js +0 -52
  330. package/parser/tool_parser.spec.js +0 -115
  331. package/parser/variableValidator.spec.js +0 -179
  332. package/parser/workflow_test_parser.spec.js +0 -136
  333. package/parser/workspace_parser.spec.js +0 -142
  334. package/parser/workspace_trigger_parser.spec.js +0 -332
  335. package/toTmLanguage.js +0 -75
  336. package/utils.spec.js +0 -369
  337. package/workspace/crossFileValidator.spec.js +0 -654
  338. package/workspace/referenceTracking.spec.js +0 -420
  339. 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
- });