@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,82 +0,0 @@
1
- function queries {
2
- input {
3
- }
4
-
5
- stack {
6
- db.query invoices {
7
- where = $db.clients.name == $db.invoices.total_amount || $db.invoices contains $db.clients.name && ($db.invoices.items != $db.clients.name || $db.invoices.client_id > $db.invoices.id || $db.clients.is_active not in $db.invoices.id || $db.invoices.id in $db.invoices.id || $env.$request_method contains "something" || $db.clients.name includes $db.clients.id || ($db.invoices.total_amount|add:55) not contains $db.clients.name && $db.invoices.items overlaps $db.invoices.id || $db.invoices.items not overlaps $db.invoices.items)
8
- join = {
9
- clients: {
10
- type : "right"
11
- table : "clients"
12
- where: $db.invoices.client_id == $db.clients.id
13
- }
14
- }
15
-
16
- return = {
17
- type : "list"
18
- paging: {
19
- page : 1
20
- per_page: 25
21
- totals : false
22
- offset : 0
23
- metadata: true
24
- }
25
- }
26
- } as $invoices1
27
-
28
- db.query books {
29
- join = {
30
- user: {
31
- table: "user"
32
- where: $db.books.id == $db.user.id
33
- }
34
- }
35
-
36
- return = {
37
- type : "stream"
38
- distinct: "yes"
39
- paging : {page: 1, per_page: 25}
40
- }
41
-
42
- sort = { "books.title": "asc"}
43
-
44
- } as $books1
45
-
46
- db.query book_club_meeting {
47
- return = {
48
- type: "exists"
49
- }
50
- } as $book_club_meeting1
51
-
52
- db.query book_club_meeting {
53
- description = "Some description"
54
- return = {
55
- type: "count"
56
- }
57
- } as $book_club_meeting2
58
-
59
- db.query book_club_meeting {
60
- disabled = true
61
- sort = {"book_club_meeting.id": "asc"}
62
- return = {
63
- type :"single"
64
- }
65
- } as $book_club_meeting2
66
-
67
- db.query book_club_meeting {
68
- sort = {
69
- "book_club_meeting_book_id": "asc"
70
- }
71
- return = {
72
- type : "aggregate"
73
- group : {"book_club_meeting.book_id": "book_club_meeting.book_id"}
74
- eval : {
75
- "book_club_meeting.book_id": $db.book_club_meeting_book_id|min
76
- }
77
- }
78
- } as $book_club_meeting2
79
- }
80
-
81
- response = $books1
82
- }
@@ -1,13 +0,0 @@
1
- function "bug regex xs" {
2
- input {
3
- text youtube_url? filters=trim
4
- }
5
-
6
- stack {
7
- var $youtube_id {
8
- value = ("/^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?$/"|regex_get_all_matches:$input.youtube_url)[5]|first
9
- }
10
- }
11
-
12
- response = $youtube_id
13
- }
@@ -1,90 +0,0 @@
1
- function "ledash/ends_with" {
2
- description = """
3
- Checks if `string` (or `array`) ends with the given `target` string (or `array`).
4
-
5
- ## Example
6
-
7
- ```
8
- {
9
- "text": "some string",
10
- "target": "ing"
11
- }
12
- ```
13
-
14
- returns
15
- ```
16
- true
17
- ```
18
- """
19
-
20
- input {
21
- json text?
22
- json target?
23
- int position?=-1
24
- }
25
-
26
- stack {
27
- var $text {
28
- description = "Working copy of the input text for processing"
29
- value = $input.text
30
- }
31
-
32
- var $target {
33
- description = "Working copy of the target value for processing"
34
- value = $input.target
35
- }
36
-
37
- conditional {
38
- description = "Convert any string into an array of characters"
39
-
40
- if (($input.text|is_text) === true) {
41
- var.update $text {
42
- value = $text|split:""
43
- }
44
- }
45
- }
46
-
47
- conditional {
48
- description = "Convert any string into an array of characters"
49
-
50
- if (($target|is_text) === true) {
51
- var.update $target {
52
- value = $target|split:""
53
- }
54
- }
55
- }
56
-
57
- conditional {
58
- description = "If we still have a single value, make it an array with a single element"
59
-
60
- if (($target|is_array) !== true) {
61
- var.update $target {
62
- value = []|push:$target
63
- }
64
- }
65
- }
66
-
67
- var $position {
68
- description = "Calculate the final position to check based on input or text length"
69
- value = $input.position > -1 ? $input.position : ($text|count)
70
- }
71
-
72
- for ($target|count) {
73
- description = "Now we should only have arrays in target and text variables"
74
-
75
- each as $index {
76
- conditional {
77
- description = "compare every element using position as an offset on the string"
78
-
79
- if (($text|get:$position - $index - 1:null) !== ($target|get:($target|count) - $index - 1:null)) {
80
- return {
81
- value = false
82
- }
83
- }
84
- }
85
- }
86
- }
87
- }
88
-
89
- response = true
90
- }
@@ -1,28 +0,0 @@
1
- function multiline_description {
2
- description = """
3
- This function has a description that spans multiple lines.
4
- It is used to demonstrate how multiline comments are handled in the parser.
5
- The description should be clear and concise, even when spread across several lines.
6
- """
7
- input {
8
- text value {
9
- description = "sing line description"
10
- }
11
-
12
- int number {
13
- description = """
14
- This is a multiline description for the number input.
15
- It can include details about the expected range, format, or any other relevant information.
16
- For example, this number should be a positive integer.
17
- It can also include examples or usage notes.
18
- Make sure to keep it informative and easy to understand.
19
- """
20
- }
21
- }
22
-
23
- stack {
24
-
25
- }
26
-
27
- response = "This function is valid and has a multiline description."
28
- }
@@ -1,41 +0,0 @@
1
- function multiline {
2
- input {
3
- int score?
4
- }
5
-
6
- stack {
7
- conditional {
8
- if (
9
- (```
10
- $input.score
11
- |is_empty
12
- |is_empty
13
- |is_empty
14
- |is_empty
15
- |is_empty
16
- |is_empty
17
- |is_empty
18
- |is_empty
19
- |is_empty
20
- ```) == (```
21
- $input.score
22
- |is_empty
23
- |is_empty
24
- |is_empty
25
- |is_empty
26
- |is_empty
27
- |is_empty
28
- |is_empty
29
- |is_empty
30
- |is_empty
31
- ```)
32
- ) {
33
- var $x1 {
34
- value = 123
35
- }
36
- }
37
- }
38
- }
39
-
40
- response = $x1
41
- }
@@ -1,129 +0,0 @@
1
- function array_functions {
2
- input {
3
- }
4
-
5
- stack {
6
- var $json {
7
- value = [
8
- {
9
- "_id": "6900e859251a9c0bf81feef8",
10
- "index": 0,
11
- "isActive": false,
12
- "age": 24,
13
- "name": "Aguilar Whitehead",
14
- "gender": "male"
15
- },
16
- {
17
- "_id": "6900e859fce05fec39869537",
18
- "index": 1,
19
- "isActive": true,
20
- "age": 24,
21
- "name": "Kay Higgins",
22
- "gender": "female"
23
- },
24
- {
25
- "_id": "6900e8596bac5247d793238f",
26
- "index": 2,
27
- "isActive": true,
28
- "age": 25,
29
- "name": "Leigh Frederick",
30
- "gender": "female"
31
- },
32
- {
33
- "_id": "6900e859f3a896081f4520a8",
34
- "index": 3,
35
- "isActive": false,
36
- "age": 21,
37
- "name": "Krystal Colon",
38
- "gender": "female"
39
- },
40
- {
41
- "_id": "6900e859023839f86f579d73",
42
- "index": 4,
43
- "isActive": false,
44
- "age": 22,
45
- "name": "Daniels Workman",
46
- "gender": "male"
47
- },
48
- {
49
- "_id": "6900e859756c6b3e882c9244",
50
- "index": 5,
51
- "isActive": true,
52
- "age": 33,
53
- "name": "Mccormick Perkins",
54
- "gender": "male"
55
- },
56
- {
57
- "_id": "6900e8596bc2768908f0bf30",
58
- "index": 6,
59
- "isActive": true,
60
- "age": 23,
61
- "name": "Dixie Cabrera",
62
- "gender": "female"
63
- },
64
- {
65
- "_id": "6900e859aa0822a778b99f69",
66
- "index": 7,
67
- "isActive": true,
68
- "age": 23,
69
- "name": "Battle James",
70
- "gender": "male"
71
- },
72
- {
73
- "_id": "6900e859e5098eb59309df64",
74
- "index": 8,
75
- "isActive": true,
76
- "age": 26,
77
- "name": "Petty Armstrong",
78
- "gender": "male"
79
- },
80
- {
81
- "_id": "6900e859f2b37bedb90cb73f",
82
- "index": 9,
83
- "isActive": false,
84
- "age": 35,
85
- "name": "Parsons Lloyd",
86
- "gender": "male"
87
- }
88
- ]
89
- }
90
-
91
- array.map ($json) {
92
- by = $this.email
93
- } as $emails
94
-
95
- array.map ($json) {
96
- by = {name: $this.name, gender: $this.gender}
97
- } as $people
98
-
99
- array.partition ($json) if ($this.gender == "male") as $is_male
100
- array.group_by ($json) {
101
- by = $this.isActive
102
- } as $is_active
103
-
104
- array.difference ([1,2,3,4,5,6,7,8,9]) {
105
- value = [2,4,6,8]
106
- by = $this
107
- } as $difference
108
-
109
- array.intersection ([1,2,3,4,5,6,7,8,9]) {
110
- value = [2,4,6,8]
111
- by = $this
112
- } as $intersection
113
-
114
- array.union ([1,3,5,7,9]) {
115
- value = [2,4,6,8]
116
- by = $this
117
- } as $union
118
- }
119
-
120
- response = {
121
- emails : $emails
122
- people : $people
123
- is_male : $is_male
124
- is_active : $is_active
125
- difference : $difference
126
- intersection: $intersection
127
- union : $union
128
- }
129
- }
@@ -1,33 +0,0 @@
1
- function test_expect {
2
- input {
3
- int a
4
- int b
5
- }
6
-
7
- stack {
8
- var $sum {
9
- value = $input.a
10
- }
11
- math.add $sum {
12
- value = $input.b
13
- }
14
- }
15
-
16
- response = $sum
17
-
18
- test "should add two numbers" {
19
- input = {a: 20, b: 22}
20
-
21
- expect.to_equal ($response) {
22
- value = 42
23
- }
24
- }
25
-
26
- test "another test with input" {
27
- input = {a: 20, b: 22}
28
-
29
- expect.to_be_greater_than ($response) {
30
- value = 40
31
- }
32
- }
33
- }
@@ -1,57 +0,0 @@
1
- function "Starfleet/RankCheck" {
2
- description = "Determines if a user's Starfleet rank is sufficient for a specific mission."
3
- input {
4
- text userRank {
5
- description = "The Starfleet rank of the user (e.g., 'Ensign', 'Lieutenant Commander', 'Captain')."
6
- }
7
-
8
- text requiredRank {
9
- description = "The minimum rank needed for the mission (e.g., 'Lieutenant', 'Commander')."
10
- }
11
- }
12
-
13
- stack {
14
- var $rank_order {
15
- value = {
16
- "ensign": 1,
17
- "lieutenant junior grade": 2,
18
- "lieutenant": 3,
19
- "lieutenant commander": 4,
20
- "commander": 5,
21
- "captain": 6,
22
- "commodore": 7,
23
- "rear admiral": 8,
24
- "vice admiral": 9,
25
- "admiral": 10
26
- }
27
- description = "Defines a numerical order for Starfleet ranks."
28
- }
29
-
30
- var $user_rank_lower {
31
- value = $input.userRank|to_lower
32
- description = "Convert user's rank to lowercase for comparison."
33
- }
34
-
35
- var $required_rank_lower {
36
- value = $input.requiredRank|to_lower
37
- description = "Convert required rank to lowercase for comparison."
38
- }
39
-
40
- var $user_rank_value {
41
- value = $rank_order[$user_rank_lower] ?? 0
42
- description = "Get the numerical rank value for the user, defaulting to 0 if rank is not found."
43
- }
44
-
45
- var $required_rank_value {
46
- value = $rank_order[$required_rank_lower] ?? 0
47
- description = "Get the numerical rank value for the required rank, defaulting to 0 if rank is not found."
48
- }
49
-
50
- var $is_sufficient {
51
- value = $user_rank_value >= $required_rank_value
52
- description = "Compare numerical ranks to determine sufficiency."
53
- }
54
- }
55
-
56
- response = $is_sufficient
57
- }
@@ -1,18 +0,0 @@
1
- function array_functions {
2
- input {
3
- // what is this argument about?
4
- text some_argument? filters=trim
5
- }
6
-
7
- stack {
8
- webflow.request {
9
- path = $input.some_argument
10
- method = "PUT"
11
- params = {}|set:"test":"testtest"
12
- timeout = 14
13
- follow_location = false
14
- } as $api1
15
- }
16
-
17
- response = $api1
18
- }
@@ -1,54 +0,0 @@
1
- import { expect } from "chai";
2
- import { readdirSync, readFileSync } from "fs";
3
- import { truncate } from "lodash-es";
4
- import { describe, it } from "mocha";
5
- import { dirname, join } from "path";
6
- import { xanoscriptParser } from "../../parser.js";
7
-
8
- describe("Xanoscript Query Parser", () => {
9
- it("parses all the valid sources", () => {
10
- const errors = [];
11
- const files = readdirSync(
12
- join(dirname("./"), "parser/tests/query/valid_sources"),
13
- );
14
-
15
- files.forEach((file) => {
16
- const source = readFileSync(
17
- join(dirname("./"), "parser/tests/query/valid_sources", file),
18
- "utf8",
19
- );
20
- const parser = xanoscriptParser(source);
21
-
22
- if (parser.errors.length > 0) {
23
- parser.errors.forEach((error) => {
24
- errors.push({
25
- previous: error.previousToken
26
- ? `${error.previousToken.tokenType.name} (${truncate(
27
- error.previousToken.image,
28
- {
29
- length: 20,
30
- },
31
- )})`
32
- : "N/A",
33
- file: error.token
34
- ? `parser/tests/query/valid_sources/${file}:${error.token.startLine}:${error.token.startColumn}`
35
- : `parser/tests/query/valid_sources/${file}`,
36
- stack: parser.sectionStack[parser.sectionStack.length - 1],
37
- message: truncate(error.message, { length: 50 }),
38
- token: error.token
39
- ? `${error.token.tokenType.name} (${truncate(error.token.image, {
40
- length: 20,
41
- })})`
42
- : "N/A",
43
- });
44
- });
45
- }
46
- });
47
-
48
- if (errors.length > 0) {
49
- console.table(errors);
50
- }
51
-
52
- expect(errors).to.be.empty;
53
- });
54
- });
@@ -1,51 +0,0 @@
1
- query xanoscript_all_basics verb=GET {
2
- auth = "user"
3
- api_group = "foo"
4
-
5
- input {
6
- text some_text_value filters=trim {
7
- description = "and a description"
8
- sensitive = true
9
- }
10
- }
11
-
12
- stack {
13
- var $some_var {
14
- value = $env.$remote_ip
15
- }
16
-
17
- conditional {
18
- if (($some_var|strlen) > 4) {
19
- db.add empty {
20
- data = {created_at: "now"}
21
- } as $empty1
22
- }
23
-
24
- elseif (($some_var|strlen) == 6)
25
- else {
26
- api.request {
27
- url = "https://api.example.com/webhook"
28
- method = "GET"
29
- params = {"value": "yup it's long"}
30
- headers = []|push:"Authentication: Bearer lkjsdlfjlsefoiw0123uf092u309u"
31
- } as $api1
32
- }
33
- }
34
-
35
- foreach (["1","2","3","4","5","6"]) {
36
- each as $item {
37
- var.update $some_var {
38
- value = $some_var|concat:$item:" + "
39
- }
40
-
41
- debug.log {
42
- value = $some_var
43
- }
44
- }
45
- }
46
-
47
- db.query availability as $availability1
48
- }
49
-
50
- response = $x1
51
- }