@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,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.filterFn();
11
- return parser;
12
- }
13
-
14
- function parseQuery(inputText) {
15
- parser.reset();
16
- const lexResult = lexDocument(inputText);
17
- parser.input = lexResult.tokens;
18
- parser.filterFn({ allowQueryExpression: true });
19
- return parser;
20
- }
21
-
22
- describe("filterFn", () => {
23
- it("filterFn accept valid filter", () => {
24
- const parser = parse(`|add:2`);
25
- expect(parser.errors).to.be.empty;
26
- });
27
-
28
- it("filterFn accept valid chained filter", () => {
29
- const parser = parse(`|add:2|divide:1`);
30
- expect(parser.errors).to.be.empty;
31
- });
32
-
33
- it("filterFn rejected non-existing filter", () => {
34
- const parser = parse(`|add:2|divider:1`);
35
- expect(parser.errors).to.not.be.empty;
36
- });
37
-
38
- it("filterFn accept valid query filter with allowQueryExpression", () => {
39
- const parser = parseQuery(`|between:18:65`);
40
- expect(parser.errors).to.be.empty;
41
- });
42
-
43
- it("filterFn reject invalid query filter with allowQueryExpression", () => {
44
- const parser = parseQuery(`|in:[1,2,3]`);
45
- expect(parser.errors).to.not.be.empty;
46
- });
47
- });
@@ -1,353 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../lexer/lexer.js";
4
- import { Identifier } from "../../lexer/tokens.js";
5
- import { parser } from "../test_parser.js";
6
-
7
- export function parserExtension() {
8
- // this rule requires a foo field to be defined
9
- this.functionAttrReq_test_required = this.RULE(
10
- "functionAttrReq_test_required",
11
- () => {
12
- const name = this.CONSUME(Identifier);
13
- this.SUBRULE(this.functionAttrReq, { ARGS: [name, ["foo"]] });
14
- }
15
- );
16
-
17
- // this rule has no required fields and two optional fields
18
- this.functionAttrReq_test_optionals = this.RULE(
19
- "functionAttrReq_test_optionals",
20
- () => {
21
- const name = this.CONSUME(Identifier);
22
- this.SUBRULE(this.functionAttrReq, { ARGS: [name, [], ["foo", "bar"]] });
23
- }
24
- );
25
-
26
- // this rule has one required and one optional field
27
- this.functionAttrReq_test_optional_and_required = this.RULE(
28
- "functionAttrReq_test_optional_and_required",
29
- () => {
30
- const name = this.CONSUME(Identifier);
31
- this.SUBRULE(this.functionAttrReq, {
32
- ARGS: [name, ["required"], ["option"]],
33
- });
34
- }
35
- );
36
-
37
- this.functionAttrReq_test_allow_disabled_keys = this.RULE(
38
- "functionAttrReq_test_allow_disabled_keys",
39
- () => {
40
- const name = this.CONSUME(Identifier);
41
- this.SUBRULE(this.functionAttrReq, {
42
- ARGS: [name, ["value", "other"], [], { allowDisabledKeys: true }],
43
- });
44
- }
45
- );
46
-
47
- // this rule allows duplicates for the "arg" field
48
- this.functionAttrReq_test_allow_duplicates = this.RULE(
49
- "functionAttrReq_test_allow_duplicates",
50
- () => {
51
- const name = this.CONSUME(Identifier);
52
- this.SUBRULE(this.functionAttrReq, {
53
- ARGS: [name, [], ["arg"], { allowDuplicates: ["arg"] }],
54
- });
55
- }
56
- );
57
-
58
- // this rule allows an objectf for the "data" field
59
- this.functionAttrReq_test_allow_object = this.RULE(
60
- "functionAttrReq_test_allow_object",
61
- () => {
62
- const name = this.CONSUME(Identifier);
63
- this.SUBRULE(this.functionAttrReq, {
64
- ARGS: [name, [], ["data"], { allowObject: ["data"] }],
65
- });
66
- }
67
- );
68
-
69
- // this rule allows an objectf for the "data" field
70
- this.functionAttrReq_test_enforce_object = this.RULE(
71
- "functionAttrReq_test_enforce_object",
72
- () => {
73
- const name = this.CONSUME(Identifier);
74
- this.SUBRULE(this.functionAttrReq, {
75
- ARGS: [name, [], ["data"], { enforceObject: ["data"] }],
76
- });
77
- }
78
- );
79
-
80
- // this rule allows an objectf for the "data" field
81
- this.functionAttrReq_test_allow_array = this.RULE(
82
- "functionAttrReq_test_allow_array",
83
- () => {
84
- const name = this.CONSUME(Identifier);
85
- this.SUBRULE(this.functionAttrReq, {
86
- ARGS: [name, [], ["data"], { allowArray: ["data"] }],
87
- });
88
- }
89
- );
90
-
91
- // this rule allows an objectf for the "data" field
92
- this.functionAttrReq_test_allow_array_object = this.RULE(
93
- "functionAttrReq_test_allow_array_object",
94
- () => {
95
- const name = this.CONSUME(Identifier);
96
- this.SUBRULE(this.functionAttrReq, {
97
- ARGS: [
98
- name,
99
- [],
100
- ["obj", "arr"],
101
- { allowArray: ["arr"], allowObject: ["obj"] },
102
- ],
103
- });
104
- }
105
- );
106
-
107
- this.functionAttrReq_test_mocks = this.RULE(
108
- "functionAttrReq_test_mocks",
109
- () => {
110
- const name = this.CONSUME(Identifier);
111
- this.SUBRULE(this.functionAttrReq, {
112
- ARGS: [name, [], ["mock", "value"]],
113
- });
114
- }
115
- );
116
-
117
- this.functionAttrReq_test_mocks_with_required_arg = this.RULE(
118
- "functionAttrReq_test_mocks_with_required_arg",
119
- () => {
120
- const name = this.CONSUME(Identifier);
121
- this.SUBRULE(this.functionAttrReq, {
122
- ARGS: [name, ["value", "mock"], []],
123
- });
124
- }
125
- );
126
-
127
- this.functionAttrReq_test_mock_not_allowed = this.RULE(
128
- "functionAttrReq_test_mock_not_allowed",
129
- () => {
130
- const name = this.CONSUME(Identifier);
131
- this.SUBRULE(this.functionAttrReq, {
132
- ARGS: [name, ["value"], []],
133
- });
134
- }
135
- );
136
- }
137
-
138
- function parse(inputText) {
139
- parser.reset();
140
- const lexResult = lexDocument(inputText);
141
- parser.input = lexResult.tokens;
142
- return parser;
143
- }
144
-
145
- describe("functionAttrReq", () => {
146
- it("functionAttrReq matched requirements", () => {
147
- parse(`something {
148
- foo = "bar"
149
- }`).functionAttrReq_test_required();
150
-
151
- expect(parser.errors).to.be.empty;
152
- });
153
-
154
- it("functionAttrReq accept another variable reference", () => {
155
- parse(`something {
156
- foo = $response.foo.baz
157
- }`).functionAttrReq_test_required();
158
- expect(parser.errors).to.be.empty;
159
- });
160
-
161
- it("functionAttrReq can be on a single line when there is only one attribute", () => {
162
- parse(`something { foo = "bar" }`).functionAttrReq_test_required();
163
- expect(parser.errors).to.be.empty;
164
- });
165
-
166
- it("functionAttrReq discover missing requirements", () => {
167
- parse(`something {
168
- foot = "bar"
169
- }`).functionAttrReq_test_required();
170
-
171
- expect(parser.errors).to.not.be.empty;
172
- });
173
-
174
- it("functionAttrReq discover optional requirements", () => {
175
- // should allow one optional requirement
176
- parse(`something {
177
- foo = "bar"
178
- }`).functionAttrReq_test_optionals();
179
-
180
- expect(parser.errors).to.be.empty;
181
-
182
- // should allow one optional requirement
183
- parse(`something {
184
- bar = "foo"
185
- }`).functionAttrReq_test_optionals();
186
-
187
- expect(parser.errors).to.be.empty;
188
-
189
- // should allow all optional requirements
190
- parse(`something {
191
- bar = "foo"
192
- foo = "bar"
193
- }`).functionAttrReq_test_optionals();
194
-
195
- expect(parser.errors).to.be.empty;
196
-
197
- // should allow no optional requirements defined
198
- parse(`something {
199
- }`).functionAttrReq_test_optionals();
200
-
201
- expect(parser.errors).to.be.empty;
202
- });
203
-
204
- it("functionAttrReq allows object fields", () => {
205
- parse(`something {
206
- data = { foo: "bar" }
207
- }`).functionAttrReq_test_allow_object();
208
-
209
- expect(parser.errors).to.be.empty;
210
- });
211
-
212
- it("functionAttrReq allows array fields", () => {
213
- parse(`something {
214
- data = [1,2, 3]
215
- }`).functionAttrReq_test_allow_array();
216
- expect(parser.errors).to.be.empty;
217
- });
218
-
219
- it("functionAttrReq allows array fields", () => {
220
- parse(`something {
221
- arr = [1,2, 3]
222
- obj = { foo: "bar", bar: "foo" }
223
- }`).functionAttrReq_test_allow_array_object();
224
- expect(parser.errors).to.be.empty;
225
- });
226
-
227
- it("functionAttrReq allows disabled keys", () => {
228
- parse(`something {
229
- value = {
230
- !i_am_disabled: "bar"
231
- i_am_enabled: "foo"
232
- }
233
- other = {
234
- i_am_enabled: "foo"
235
- }
236
- }`).functionAttrReq_test_allow_disabled_keys();
237
- expect(parser.errors).to.be.empty;
238
- });
239
-
240
- it("functionAttrReq allows specific duplicates", () => {
241
- // foo is defined twice
242
- parse(`something {
243
- arg = "fizz"
244
- arg = "buzz"
245
- }`).functionAttrReq_test_allow_duplicates();
246
-
247
- expect(parser.errors).to.be.empty;
248
-
249
- // foo is defined twice
250
- parse(`something {
251
- arg = "fizz"
252
- arg = "buzz"
253
- foo = "bar"
254
- foo = "baz"
255
- }`).functionAttrReq_test_allow_duplicates();
256
-
257
- expect(parser.errors).to.not.be.empty;
258
- });
259
-
260
- it("functionAttrReq detects duplicates", () => {
261
- // foo is defined twice
262
- parse(`something {
263
- foo = "fizz"
264
- foo = "buzz"
265
- }`).functionAttrReq_test_required();
266
-
267
- expect(parser.errors).to.not.be.empty;
268
- });
269
-
270
- it("functionAttrReq enforces optional requirements", () => {
271
- // foot is not an optional requirement
272
- parse(`something {
273
- foot = "bar"
274
- }`).functionAttrReq_test_optionals();
275
-
276
- expect(parser.errors).to.not.be.empty;
277
- });
278
-
279
- it("functionAttrReq enforces optional and required fields", () => {
280
- // all optional and required fields are present
281
- parse(`something {
282
- option = "bar"
283
- required = "bar"
284
- }`).functionAttrReq_test_optional_and_required();
285
- expect(parser.errors).to.be.empty;
286
-
287
- // optional field is missing (all good)
288
- parse(`something {
289
- required = "bar"
290
- }`).functionAttrReq_test_optional_and_required();
291
-
292
- expect(parser.errors).to.be.empty;
293
-
294
- // required field is missing (not good)
295
- parse(`something {
296
- option = "bar"
297
- }`).functionAttrReq_test_optional_and_required();
298
-
299
- expect(parser.errors).to.not.be.empty;
300
- });
301
-
302
- it("functionAttrReq enforces mock attributes as optional", () => {
303
- parse(`something {
304
- mock = {
305
- "should add numbers": 5
306
- }
307
- }`).functionAttrReq_test_mocks();
308
-
309
- expect(parser.errors).to.be.empty;
310
- });
311
-
312
- it("functionAttrReq enforces mock attributes as required", () => {
313
- parse(`something {
314
- value = 5
315
- }`).functionAttrReq_test_mocks_with_required_arg();
316
-
317
- expect(parser.errors).to.not.be.empty;
318
- });
319
-
320
- it("functionAttrReq enforces mock attributes as not allowed", () => {
321
- parse(`something {
322
- mock "should add numbers" {
323
- value = 5
324
- }
325
- }`).functionAttrReq_test_mock_not_allowed();
326
-
327
- expect(parser.errors).to.not.be.empty;
328
- });
329
-
330
- it("functionAttrReq prevents multiple mock attributes with duplicate names", () => {
331
- parse(`something {
332
- mock "should add numbers" {
333
- value = 5
334
- }
335
- mock "should add numbers" {
336
- value = 3
337
- }
338
- }`).functionAttrReq_test_mocks();
339
-
340
- expect(parser.errors).to.not.be.empty;
341
- });
342
-
343
- it("functionAttrReq allows multiple mock attributes with different names", () => {
344
- parse(`something {
345
- mock = {
346
- "should add numbers": 5
347
- "should subtract numbers": 3
348
- }
349
- }`).functionAttrReq_test_mocks();
350
-
351
- expect(parser.errors).to.be.empty;
352
- });
353
- });
@@ -1,25 +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
- function parse(inputText) {
6
- const lexResult = lexDocument(inputText);
7
- parser.input = lexResult.tokens;
8
- parser.longFormVariable();
9
- return parser;
10
- }
11
-
12
- describe("longFormVariable", () => {
13
- it("longFormVariable accepts a property", () => {
14
- const parser = parse(`$var.property`);
15
- expect(parser.errors).to.be.empty;
16
- });
17
-
18
- it("longFormVariable accepts a hash as a property", () => {
19
- let parser = parse(`$var.["property"]`);
20
- expect(parser.errors).to.be.empty;
21
-
22
- parser = parse(`$var["property"]`);
23
- expect(parser.errors).to.be.empty;
24
- });
25
- });
@@ -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
- function parse(inputText) {
6
- const lexResult = lexDocument(inputText);
7
- parser.input = lexResult.tokens;
8
- parser.minimalFnBody();
9
- return parser;
10
- }
11
-
12
- describe("minimalFnBody", () => {
13
- it("minimalFnBody does not accept a value", () => {
14
- const parser = parse(`{
15
- value = "text"
16
- }`);
17
- expect(parser.errors).to.not.be.empty;
18
- });
19
-
20
- it("minimalFnBody accepts a description", () => {
21
- const parser = parse(`{
22
- description = "foo"
23
- }`);
24
- expect(parser.errors).to.be.empty;
25
- });
26
-
27
- it("minimalFnBody can be disabled", () => {
28
- const parser = parse(`{
29
- disabled = true
30
- }`);
31
- expect(parser.errors).to.be.empty;
32
- });
33
-
34
- it("minimalFnBody can be disabled and have a description", () => {
35
- const parser = parse(`{
36
- disabled = true
37
- description = "foo"
38
- }`);
39
- expect(parser.errors).to.be.empty;
40
- });
41
-
42
- it("minimalFnBody does not requires a description or disable statement", () => {
43
- const parser = parse(`{
44
- }`);
45
- expect(parser.errors).to.be.empty;
46
- });
47
- });
@@ -1,57 +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
- function parse(inputText) {
6
- const lexResult = lexDocument(inputText);
7
- parser.input = lexResult.tokens;
8
- parser.mockAttribute();
9
- return parser;
10
- }
11
-
12
- describe("mock", () => {
13
- it("mock accepts name and payload", () => {
14
- const parser = parse(`mock = {
15
- "should add numbers": 5
16
- }`);
17
- expect(parser.errors).to.be.empty;
18
- });
19
-
20
- it("mock requires an object", () => {
21
- const parser = parse(`mock = 5`);
22
- expect(parser.errors).to.not.be.empty;
23
- });
24
-
25
- it("mock name doesn't need quotes", () => {
26
- const parser = parse(`mock = {
27
- foo: 5
28
- }`);
29
- expect(parser.errors).to.be.empty;
30
- });
31
-
32
- it("mock allows single line", () => {
33
- const parser = parse(`mock = { "should add numbers": 5 }`);
34
- expect(parser.errors).to.be.empty;
35
- });
36
-
37
- it("mock allows an expression as a value", () => {
38
- const parser = parse(`mock = {
39
- "should add numbers": 5 + 10
40
- }`);
41
- expect(parser.errors).to.be.empty;
42
- });
43
-
44
- it("mock allows a filtered value", () => {
45
- const parser = parse(`mock = {
46
- "should add numbers": 5|add:10
47
- }`);
48
- expect(parser.errors).to.be.empty;
49
- });
50
-
51
- it("mock allows an object as a value", () => {
52
- const parser = parse(`mock = {
53
- "should add numbers": { "foo": 5, "bar": 10 }
54
- }`);
55
- expect(parser.errors).to.be.empty;
56
- });
57
- });
@@ -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) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.multilineFilterFn();
11
- return parser;
12
- }
13
-
14
- function parseQuery(inputText) {
15
- parser.reset();
16
- const lexResult = lexDocument(inputText);
17
- parser.input = lexResult.tokens;
18
- parser.multilineFilterFn({ allowQueryExpression: true });
19
- return parser;
20
- }
21
-
22
- describe("multilineFilterFn", () => {
23
- it("multilineFilterFn accept valid single line filter", () => {
24
- const parser = parse(`|add:2`);
25
- expect(parser.errors).to.be.empty;
26
- });
27
-
28
- it("multilineFilterFn accept valid multiline filter", () => {
29
- const parser = parse(`|add:2
30
- |divide:1`);
31
- expect(parser.errors).to.be.empty;
32
- });
33
-
34
- it("multilineFilterFn rejected non-existing filter", () => {
35
- const parser = parse(`|add:2
36
- |divider:1`);
37
- expect(parser.errors).to.not.be.empty;
38
- });
39
-
40
- it("multilineFilterFn accept valid query filter with allowQueryExpression", () => {
41
- const parser = parseQuery(`|between:18:65
42
- |round`);
43
- expect(parser.errors).to.be.empty;
44
- });
45
-
46
- it("multilineFilterFn reject invalid query filter with allowQueryExpression", () => {
47
- const parser = parseQuery(`|sub:10
48
- |in:[1,2,3]`);
49
- expect(parser.errors).to.not.be.empty;
50
- });
51
- });