@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,332 +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.varFn();
11
- return parser;
12
- }
13
-
14
- describe("varFn", () => {
15
- it("varFn accepts a string literal as value", () => {
16
- const parser = parse(`var $user {
17
- value = "email"
18
- }`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
-
22
- it("varFn accepts the attribute of a filtered value", () => {
23
- const parser = parse(`var $user_enabled {
24
- value = ($user_preferences|first).enabled
25
- }`);
26
- expect(parser.errors).to.be.empty;
27
- });
28
-
29
- it("varFn accepts a filter in the value", () => {
30
- const parser = parse(`var $transaction_count {
31
- value = $daily_sales|count
32
- description = "Count number of transactions"
33
- }`);
34
- expect(parser.errors).to.be.empty;
35
- });
36
-
37
- it("varFn accepts a multiline object with commas separated values", () => {
38
- const parser = parse(`var $rank_order {
39
- value = {
40
- "ensign": 1,
41
- "lieutenant junior grade": 2,
42
- "lieutenant": 3,
43
- "lieutenant commander": 4,
44
- "commander": 5,
45
- "captain": 6,
46
- "commodore": 7,
47
- "rear admiral": 8,
48
- "vice admiral": 9,
49
- "admiral": 10
50
- }
51
- description = "Defines a numerical order for Starfleet ranks."
52
- }`);
53
- expect(parser.errors).to.be.empty;
54
- });
55
-
56
- it("varFn accepts a description marker", () => {
57
- const parser = parse(`var $user {
58
- value = 12.345
59
- description = "The user's email address"
60
- }`);
61
- expect(parser.errors).to.be.empty;
62
- });
63
-
64
- it("varFn requires a value field ", () => {
65
- const parser = parse(`var $user {
66
- description = "The user's email address"
67
- }`);
68
- expect(parser.errors).to.not.be.empty;
69
- });
70
-
71
- it("varFn fields can be defined in random order", () => {
72
- const parser = parse(`var $user {
73
- description = "The user's email address"
74
- value = $email
75
- }`);
76
- expect(parser.errors).to.be.empty;
77
- });
78
-
79
- it("varFn allows range expressions", () => {
80
- const parser = parse(`var $numbers {
81
- value = (1..100)
82
- }`);
83
- expect(parser.errors).to.be.empty;
84
- });
85
-
86
- it("varFn allows range expressions with variables", () => {
87
- const parser = parse(`var $numbers {
88
- value = ($var.start..$end_var)
89
- }`);
90
- expect(parser.errors).to.be.empty;
91
- });
92
-
93
- it("varFn accepts a system env variable", () => {
94
- const parser = parse(`var $user {
95
- value = $env.$remote_ip
96
- description = "The user's email address"
97
- }`);
98
- expect(parser.errors).to.be.empty;
99
- });
100
-
101
- it("varFn accept scientific notation", () => {
102
- const parser = parse(` var $x1 {
103
- value = 4.21E-6
104
- }`);
105
- expect(parser.errors).to.be.empty;
106
- });
107
-
108
- it("varFn expect a variable name", () => {
109
- const parser = parse(`var {
110
- value = "email"
111
- description = "The user's email address"
112
- }`);
113
- expect(parser.errors).to.not.be.empty;
114
- });
115
-
116
- it("varFn accepts an $env.$http_headers object as the value", () => {
117
- const parser = parse(`var $http_headers {
118
- value = $env.$http_headers
119
- }`);
120
- expect(parser.errors).to.be.empty;
121
- });
122
-
123
- it("varFn expect an as variable to be an identifier", () => {
124
- const parser = parse(`var "user" {
125
- value = "email"
126
- description = "The user's email address"
127
- }`);
128
- expect(parser.errors).to.not.be.empty;
129
- });
130
-
131
- it("varFn can update a value", () => {
132
- const parser = parse(`var.update $user.foo {
133
- value = "email"
134
- }`);
135
- expect(parser.errors).to.be.empty;
136
- });
137
-
138
- it("varFn can update a value", () => {
139
- const parser = parse(`var.update $http_headers.Referer {
140
- value = "example.com"
141
- }`);
142
- expect(parser.errors).to.be.empty;
143
- });
144
-
145
- it("var.update should allow $input reference in its filters", () => {
146
- const parser = parse(`var.update $object_for_update {
147
- value = $object_for_update
148
- |merge_recursive:{$input.key:$input.value}
149
- }`);
150
- expect(parser.errors).to.be.empty;
151
- });
152
-
153
- it("should allow accessing a property from an object defined in place", () => {
154
- let parser = parse(`var $config {
155
- value = {
156
- api_key: "12345",
157
- timeout: 30
158
- }.api_key
159
- description = "API key from config"
160
- }`);
161
- expect(parser.errors).to.be.empty;
162
-
163
- parser = parse(`var $config {
164
- value = {
165
- api_key: "12345",
166
- timeout: 30
167
- }["api_key"]
168
- description = "API key from config"
169
- }`);
170
- expect(parser.errors).to.be.empty;
171
-
172
- parser = parse(`var $config {
173
- value = {
174
- api_key: "12345",
175
- timeout: 30
176
- }.["api_key"]
177
- description = "API key from config"
178
- }`);
179
- expect(parser.errors).to.be.empty;
180
-
181
- parser = parse(`var $config {
182
- value = {
183
- api_key: "12345",
184
- timeout: 30
185
- }.api-key
186
- description = "API key from config"
187
- }`);
188
- expect(parser.errors).to.not.be.empty;
189
- });
190
-
191
- it("should allow accessing an index from an array defined in place", () => {
192
- let parser = parse(`var $config {
193
- value = [1,2,3].0
194
- description = "API key from config"
195
- }`);
196
- expect(parser.errors).to.be.empty;
197
-
198
- parser = parse(`var $config {
199
- value = [1,2,3][1]
200
- description = "API key from config"
201
- }`);
202
- expect(parser.errors).to.be.empty;
203
-
204
- parser = parse(`var $config {
205
- value = [1,2,3].[1]
206
- description = "API key from config"
207
- }`);
208
- expect(parser.errors).to.be.empty;
209
-
210
- parser = parse(`var $config {
211
- value = [1,2,3][$index]
212
- description = "API key from config"
213
- }`);
214
- expect(parser.errors).to.be.empty;
215
- });
216
-
217
- // Blacklisted variable names - these conflict with built-in variables
218
- // Some are blocked at lexer level (separate tokens), others at parser level
219
- describe("blacklisted variable names", () => {
220
- // These are lexed as ShortFormVariable and need explicit blacklisting
221
- const shortFormBlacklisted = ["output", "db", "toolset"];
222
-
223
- for (const name of shortFormBlacklisted) {
224
- it(`rejects var $${name} as variable name (short form)`, () => {
225
- const parser = parse(`var $${name} {
226
- value = "test"
227
- }`);
228
- expect(parser.errors).to.be.empty;
229
- expect(parser.warnings).to.not.be.empty;
230
- expect(parser.warnings[0].message).to.include("reserved");
231
- });
232
-
233
- it(`rejects var.update $${name} as variable name (short form)`, () => {
234
- const parser = parse(`var.update $${name} {
235
- value = "test"
236
- }`);
237
- expect(parser.errors).to.be.empty;
238
- expect(parser.warnings).to.not.be.empty;
239
- expect(parser.warnings[0].message).to.include("reserved");
240
- });
241
- }
242
-
243
- // These are separate tokens and already rejected by the parser
244
- const separateTokenBlacklisted = [
245
- "auth",
246
- "input",
247
- "env",
248
- "response",
249
- "error",
250
- "this",
251
- ];
252
-
253
- for (const name of separateTokenBlacklisted) {
254
- it(`warns var $${name} as variable name (separate token)`, () => {
255
- const parser = parse(`var $${name} {
256
- value = "test"
257
- }`);
258
- if (parser.errors.length === 0) {
259
- console.log(parser.errors, name);
260
- }
261
- expect(parser.errors).to.be.empty;
262
- expect(parser.warnings).to.not.be.empty;
263
- expect(parser.warnings[0].message).to.include("reserved");
264
- });
265
-
266
- it(`warns var.update $${name} as variable name (separate token)`, () => {
267
- const parser = parse(`var.update $${name} {
268
- value = "test"
269
- }`);
270
- expect(parser.errors).to.be.empty;
271
- expect(parser.warnings).to.not.be.empty;
272
- expect(parser.warnings[0].message).to.include("reserved");
273
- });
274
- }
275
-
276
- // $var is the LongFormVariable prefix, parser expects a dot after it
277
- it("warns var $var as variable name (long form prefix)", () => {
278
- const parser = parse(`var $var {
279
- value = "test"
280
- }`);
281
- expect(parser.warnings).to.not.be.empty;
282
- expect(parser.errors).to.be.empty;
283
- });
284
-
285
- it("accepts a backtick expression as value", () => {
286
- const parser = parse(`var $current_time {
287
- value = \`12316546543321321.3213521654654\`
288
- }`);
289
- expect(parser.errors).to.be.empty;
290
- });
291
-
292
- // All blacklisted names should be rejected in long form via var.update
293
- const allBlacklisted = [
294
- "auth",
295
- "input",
296
- "env",
297
- "response",
298
- "output",
299
- "var",
300
- "db",
301
- "error",
302
- "toolset",
303
- "this",
304
- ];
305
-
306
- for (const name of allBlacklisted) {
307
- it(`rejects var.update $var.${name} as variable name (long form)`, () => {
308
- const parser = parse(`var.update $var.${name} {
309
- value = "test"
310
- }`);
311
- expect(parser.errors).to.be.empty;
312
- expect(parser.warnings).to.not.be.empty;
313
- expect(parser.warnings[0].message).to.include("reserved");
314
- });
315
- }
316
-
317
- // Ensure valid names still work
318
- it("accepts var $user as variable name", () => {
319
- const parser = parse(`var $user {
320
- value = "test"
321
- }`);
322
- expect(parser.errors).to.be.empty;
323
- });
324
-
325
- it("accepts var $my_input as variable name", () => {
326
- const parser = parse(`var $my_input {
327
- value = "test"
328
- }`);
329
- expect(parser.errors).to.be.empty;
330
- });
331
- });
332
- });
@@ -1,32 +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.sectionStack.push("workflowTestDeclaration");
11
- parser.workflowExpectFn();
12
- return parser;
13
- }
14
-
15
- describe("workflowExpectFn", () => {
16
- it("workflowExpectFn accepts a string literal as value", () => {
17
- const parser = parse(`expect.to_equal ($response.email) {
18
- value = "email@example.com"
19
- }`);
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("workflowExpectFn accepts filtered values", () => {
24
- const parser = parse(`expect.to_equal ($total
25
- |subtract:$tax
26
- |subtract:$cost
27
- ) {
28
- value = $som_value
29
- }`);
30
- expect(parser.errors).to.be.empty;
31
- });
32
- });
@@ -1,78 +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.zipAddToArchiveFn();
11
- return parser;
12
- }
13
-
14
- describe("zipAddToArchiveFn", () => {
15
- it("zipAddToArchiveFn accepts a file and a zip", () => {
16
- const parser = parse(`add_to_archive {
17
- file = $input.file
18
- zip = $zip_file
19
- }`);
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("zipAddToArchiveFn accepts a password", () => {
24
- const parser = parse(`add_to_archive {
25
- file = $input.file
26
- zip = $zip_file
27
- password = "foo bar"
28
- password_encryption = "standard"
29
- }`);
30
- expect(parser.errors).to.be.empty;
31
- });
32
-
33
- it("zipAddToArchiveFn can be disabled", () => {
34
- const parser = parse(`add_to_archive {
35
- file = $input.file
36
- zip = $zip_file
37
- disabled = true
38
- }`);
39
- expect(parser.errors).to.be.empty;
40
- });
41
-
42
- it("zipAddToArchiveFn accept an optional filename", () => {
43
- const parser = parse(`add_to_archive {
44
- file = $input.file
45
- zip = $zip_file
46
- filename = "new_file.txt"
47
- }`);
48
- expect(parser.errors).to.be.empty;
49
- });
50
-
51
- it("zipAddToArchiveFn accept a description", () => {
52
- const parser = parse(`add_to_archive {
53
- file = $input.file
54
- zip = $zip_file
55
- description = "compressed data"
56
- }`);
57
- expect(parser.errors).to.be.empty;
58
- });
59
-
60
- it("zipAddToArchiveFn does not accept an output as value", () => {
61
- const parser = parse(`add_to_archive {
62
- filename = "some_file.zip"
63
- } as $x4`);
64
- expect(parser.errors).to.not.be.empty;
65
- });
66
-
67
- it("zipAddToArchiveFn requires a file and a zip", () => {
68
- let parser = parse(`add_to_archive {
69
- zip = $zip_file
70
- }`);
71
- expect(parser.errors).to.not.be.empty;
72
-
73
- parser = parse(`add_to_archive {
74
- file = $input.file
75
- }`);
76
- expect(parser.errors).to.not.be.empty;
77
- });
78
- });
@@ -1,53 +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.zipCreateArchiveFn();
11
- return parser;
12
- }
13
-
14
- describe("zipCreateArchiveFn", () => {
15
- it("zipCreateArchiveFn accepts a filename", () => {
16
- const parser = parse(`create_archive {
17
- filename = "some_file.zip"
18
- } as $x4`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
-
22
- it("zipCreateArchiveFn accepts a password", () => {
23
- const parser = parse(`create_archive {
24
- filename = "some_file.zip"
25
- password = "foo bar"
26
- password_encryption = "standard"
27
- } as $x4`);
28
- expect(parser.errors).to.be.empty;
29
- });
30
-
31
- it("zipCreateArchiveFn can be disabled", () => {
32
- const parser = parse(`create_archive {
33
- filename = "some_file.zip"
34
- disabled = true
35
- } as $x4`);
36
- expect(parser.errors).to.be.empty;
37
- });
38
-
39
- it("zipCreateArchiveFn accept a description", () => {
40
- const parser = parse(`create_archive {
41
- filename = "some_file.zip"
42
- description = "compressed data"
43
- } as $x4`);
44
- expect(parser.errors).to.be.empty;
45
- });
46
-
47
- it("zipCreateArchiveFn requires a filename", () => {
48
- const parser = parse(`create_archive {
49
- description = "compressed data"
50
- } as $x4`);
51
- expect(parser.errors).to.not.be.empty;
52
- });
53
- });
@@ -1,69 +0,0 @@
1
- import { expect } from "chai";
2
- import { describe, it } from "mocha";
3
- import { lexDocument } from "../../../lexer/lexer.js";
4
- import { parser } from "../../test_parser.js";
5
-
6
- function parse(inputText) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
- parser.zipDeleteFromArchiveFn();
11
- return parser;
12
- }
13
-
14
- describe("zipDeleteFromArchiveFn", () => {
15
- it("zipDeleteFromArchiveFn accepts a filename and a zip", () => {
16
- const parser = parse(`delete_from_archive {
17
- zip = $zip_file
18
- filename = "some_file.zip"
19
- }`);
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("zipDeleteFromArchiveFn accepts a password", () => {
24
- const parser = parse(`delete_from_archive {
25
- zip = $zip_file
26
- filename = "some_file.zip"
27
- password = "foo bar"
28
- }`);
29
- expect(parser.errors).to.be.empty;
30
- });
31
-
32
- it("zipDeleteFromArchiveFn can be disabled", () => {
33
- const parser = parse(`delete_from_archive {
34
- zip = $zip_file
35
- filename = "some_file.zip"
36
- disabled = true
37
- }`);
38
- expect(parser.errors).to.be.empty;
39
- });
40
-
41
- it("zipDeleteFromArchiveFn accept a description", () => {
42
- const parser = parse(`delete_from_archive {
43
- zip = $zip_file
44
- filename = "some_file.zip"
45
- description = "compressed data"
46
- }`);
47
- expect(parser.errors).to.be.empty;
48
- });
49
-
50
- it("zipDeleteFromArchiveFn does not accept an output as value", () => {
51
- const parser = parse(`delete_from_archive {
52
- zip = $zip_file
53
- filename = "some_file.zip"
54
- } as $x4`);
55
- expect(parser.errors).to.not.be.empty;
56
- });
57
-
58
- it("zipDeleteFromArchiveFn requires a filename and a zip", () => {
59
- let parser = parse(`delete_from_archive {
60
- filename = "some_file.zip"
61
- }`);
62
- expect(parser.errors).to.not.be.empty;
63
-
64
- parser = parse(`delete_from_archive {
65
- zip = $zip_file
66
- }`);
67
- expect(parser.errors).to.not.be.empty;
68
- });
69
- });
@@ -1,52 +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.zipExtractFn();
11
- return parser;
12
- }
13
-
14
- describe("zipExtractFn", () => {
15
- it("zipExtractFn accepts a zip", () => {
16
- const parser = parse(`extract {
17
- zip = $zip_file
18
- } as $x4`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
-
22
- it("zipExtractFn accepts a password", () => {
23
- const parser = parse(`extract {
24
- zip = $zip_file
25
- password = "foo bar"
26
- } as $x4`);
27
- expect(parser.errors).to.be.empty;
28
- });
29
-
30
- it("zipExtractFn can be disabled", () => {
31
- const parser = parse(`extract {
32
- zip = $zip_file
33
- disabled = true
34
- } as $x4`);
35
- expect(parser.errors).to.be.empty;
36
- });
37
-
38
- it("zipExtractFn accept a description", () => {
39
- const parser = parse(`extract {
40
- zip = $zip_file
41
- description = "compressed data"
42
- } as $x4`);
43
- expect(parser.errors).to.be.empty;
44
- });
45
-
46
- it("zipExtractFn requires a zip", () => {
47
- const parser = parse(`extract {
48
- description = "compressed data"
49
- } as $x4`);
50
- expect(parser.errors).to.not.be.empty;
51
- });
52
- });
@@ -1,52 +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.zipViewContentsFn();
11
- return parser;
12
- }
13
-
14
- describe("zipViewContentsFn", () => {
15
- it("zipViewContentsFn accepts a filename", () => {
16
- const parser = parse(`view_contents {
17
- zip = $input.file
18
- } as $x4`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
-
22
- it("zipViewContentsFn accepts a password", () => {
23
- const parser = parse(`view_contents {
24
- zip = $input.file
25
- password = "foo bar"
26
- } as $x4`);
27
- expect(parser.errors).to.be.empty;
28
- });
29
-
30
- it("zipViewContentsFn can be disabled", () => {
31
- const parser = parse(`view_contents {
32
- zip = $input.file
33
- disabled = true
34
- } as $x4`);
35
- expect(parser.errors).to.be.empty;
36
- });
37
-
38
- it("zipViewContentsFn accept a description", () => {
39
- const parser = parse(`view_contents {
40
- zip = $input.file
41
- description = "compressed data"
42
- } as $x4`);
43
- expect(parser.errors).to.be.empty;
44
- });
45
-
46
- it("zipViewContentsFn requires a filename", () => {
47
- const parser = parse(`view_contents {
48
- description = "compressed data"
49
- } as $x4`);
50
- expect(parser.errors).to.not.be.empty;
51
- });
52
- });