@xano/xanoscript-language-server 11.12.2 → 12.0.0

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