@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,102 +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, context = null) {
7
- parser.reset();
8
- const lexResult = lexDocument(inputText);
9
- parser.input = lexResult.tokens;
10
-
11
- if (context) {
12
- parser.sectionStack.push(context);
13
- parser.schemaClause();
14
- parser.sectionStack.pop();
15
- } else {
16
- parser.schemaClause();
17
- }
18
-
19
- return parser;
20
- }
21
-
22
- describe("schemaClause", () => {
23
- it("schemaClause accepts a field", () => {
24
- const parser = parse(`schema {
25
- int rank
26
- }`);
27
- expect(parser.errors).to.be.empty;
28
- });
29
-
30
- it("schemaClause accepts a comment above a field", () => {
31
- const parser = parse(`schema {
32
- // some comment
33
- int rank
34
- }`);
35
- expect(parser.errors).to.be.empty;
36
- });
37
-
38
- it("schemaClause accepts multiple fields", () => {
39
- const parser = parse(`schema {
40
- int rank
41
- text label
42
- }`);
43
- expect(parser.errors).to.be.empty;
44
- });
45
-
46
- it("schemaClause does not require curlies", () => {
47
- const parser = parse(`schema`);
48
- expect(parser.errors).to.be.empty;
49
- });
50
-
51
- it("schemaClause accepts a visibility when in a table definition", () => {
52
- const parser = parse(
53
- `schema {
54
- int rank {
55
- visibility = "private"
56
- }
57
- text label {
58
- visibility = "internal"
59
- }
60
- }`,
61
- "tableDeclaration",
62
- );
63
- expect(parser.errors).to.be.empty;
64
- });
65
-
66
- it("schemaClause rejects a visibility when not in a table definition", () => {
67
- const parser = parse(`schema {
68
- int rank {
69
- visibility = "private"
70
- }
71
- text label {
72
- visibility = "internal"
73
- }
74
- }`);
75
- expect(parser.errors).to.not.be.empty;
76
- });
77
-
78
- it("schemaClause accepts a description", () => {
79
- const parser = parse(`schema {
80
- text label {
81
- description = "This is a description"
82
- }
83
- }`);
84
- expect(parser.errors).to.be.empty;
85
- });
86
-
87
- it("schemaClause field accepts a file type", () => {
88
- const parser = parse(`schema {
89
- file my_file?
90
- }`);
91
- expect(parser.errors).to.be.empty;
92
- });
93
-
94
- it("schemaClause field accepts a sensitivity marker", () => {
95
- const parser = parse(`schema {
96
- decimal value {
97
- sensitive = true
98
- }
99
- }`);
100
- expect(parser.errors).to.be.empty;
101
- });
102
- });
@@ -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
- const lexResult = lexDocument(inputText);
8
- parser.input = lexResult.tokens;
9
- parser.testClause();
10
- return parser;
11
- }
12
-
13
- describe("testClause", () => {
14
- it("testClause defines a named test", () => {
15
- const parser = parse(`test "should add numbers" {
16
- expect.to_equal ($response) {
17
- value = 5
18
- }
19
- }`);
20
- expect(parser.errors).to.be.empty;
21
- });
22
-
23
- it("testClause requires accepts an optional datasource", () => {
24
- const parser = parse(`test "should add numbers" {
25
- datasource = "live"
26
-
27
- expect.to_equal ($response) {
28
- value = 5
29
- }
30
- }`);
31
- expect(parser.errors).to.be.empty;
32
- });
33
-
34
- it("testClause can have many expects", () => {
35
- const parser = parse(`test "should add numbers" {
36
- expect.to_equal ($response) {
37
- value = 5
38
- }
39
-
40
- expect.to_be_defined ($response)
41
- }`);
42
- expect(parser.errors).to.be.empty;
43
- });
44
-
45
- it("testClause accepts inputs", () => {
46
- const parser = parse(`test "should add numbers" {
47
- input = {
48
- a: 2
49
- b: 3
50
- }
51
-
52
- expect.to_equal ($response) {
53
- value = 5
54
- }
55
- }`);
56
- expect(parser.errors).to.be.empty;
57
- });
58
-
59
- it("testClause accepts a one liner input", () => {
60
- const parser = parse(`test "should add numbers" {
61
- input = { a: 2, b: 3 }
62
-
63
- expect.to_be_greater_than ($response) {
64
- value = 4
65
- }
66
- }`);
67
- expect(parser.errors).to.be.empty;
68
- });
69
- });
@@ -1,163 +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.viewClause();
11
- return parser;
12
- }
13
-
14
- describe("viewClause", () => {
15
- it("viewClause accepts a basic view with search, sort and id", () => {
16
- const parser = parse(`view = {
17
- "pending applications": {
18
- search: $db.status == "pending"
19
- sort : {id: "rand"}
20
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
21
- }
22
- }`);
23
- expect(parser.errors).to.be.empty;
24
- });
25
-
26
- it("viewClause accepts a hide attribute", () => {
27
- const parser = parse(`view = {
28
- "pending applications": {
29
- hide: ["created_at"];
30
- sort : {id: "rand"}
31
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
32
- }
33
- }`);
34
- expect(parser.errors).to.be.empty;
35
- });
36
-
37
- it("viewClause accepts multiple views in an object", () => {
38
- const parser = parse(`view = {
39
- "pending applications": {
40
- search: $db.status == "pending"
41
- sort : {id: "rand"}
42
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
43
- }
44
- "what is that?": {
45
- alias : "that_alias"
46
- search: $db.status == "pending"
47
- sort : {id: "asc"}
48
- id : "07a2ebcd-3361-425c-8f7f-ed8981dca0d1"
49
- }
50
- }`);
51
- expect(parser.errors).to.be.empty;
52
- });
53
-
54
- it("viewClause accepts different sort directions", () => {
55
- const parser = parse(`view = {
56
- "ascending": {
57
- search: $db.status == "pending"
58
- sort : {id: "asc"}
59
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
60
- }
61
- "descending": {
62
- search: $db.status == "pending"
63
- sort : {id: "desc"}
64
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
65
- }
66
- "random": {
67
- search: $db.status == "pending"
68
- sort : {id: "rand"}
69
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
70
- }
71
- }`);
72
- expect(parser.errors).to.be.empty;
73
- });
74
-
75
- it("viewClause accepts an alias property", () => {
76
- const parser = parse(`view = {
77
- "aliased view": {
78
- alias : "that_alias"
79
- search: $db.status == "pending"
80
- sort : {id: "asc"}
81
- id : "07a2ebcd-3361-425c-8f7f-ed8981dca0d1"
82
- }
83
- }`);
84
- expect(parser.errors).to.be.empty;
85
- });
86
-
87
- it("viewClause accepts complex search expressions", () => {
88
- const parser = parse(`view = {
89
- "complex search": {
90
- search: $db.status == "pending" && $db.created_at > "2023-01-01"
91
- sort : {id: "asc"}
92
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
93
- }
94
- }`);
95
- expect(parser.errors).to.be.empty;
96
- });
97
-
98
- it("viewClause accepts multiple sort fields", () => {
99
- const parser = parse(`view = {
100
- "multiple sorts": {
101
- search: $db.status == "pending"
102
- sort : {
103
- created_at: "desc"
104
- name: "asc"
105
- }
106
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
107
- }
108
- }`);
109
- expect(parser.errors).to.be.empty;
110
- });
111
-
112
- it("viewClause accept either a sort criteria", () => {
113
- const parser = parse(`view = {
114
- "no search criteria": {
115
- sort : {id: "asc"}
116
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
117
- }
118
- }`);
119
- expect(parser.errors).to.be.empty;
120
- });
121
-
122
- it("viewClause requires either a search, sort or hide criteria", () => {
123
- const parser = parse(`view = {
124
- "no criteria": {
125
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
126
- }
127
- }`);
128
- expect(parser.errors).to.not.be.empty;
129
- });
130
-
131
- it("viewClause accepts a view with numeric keys in search criteria", () => {
132
- const parser = parse(`view = {
133
- "numeric search": {
134
- search: $db.count > 5
135
- sort : {id: "asc"}
136
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
137
- }
138
- }`);
139
- expect(parser.errors).to.be.empty;
140
- });
141
-
142
- it("viewClause accepts a view with complex boolean logic", () => {
143
- const parser = parse(`view = {
144
- "complex logic": {
145
- search: ($db.status == "pending" || $db.status == "active") && $db.created_at > "2023-01-01"
146
- sort : {id: "asc"}
147
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
148
- }
149
- }`);
150
- expect(parser.errors).to.be.empty;
151
- });
152
-
153
- it("viewClause accepts a view with special characters in name", () => {
154
- const parser = parse(`view = {
155
- "view-with_special.chars!": {
156
- search: $db.status == "pending"
157
- sort : {id: "asc"}
158
- id : "9ed7daad-682f-455e-bf02-ca53444cd429"
159
- }
160
- }`);
161
- expect(parser.errors).to.be.empty;
162
- });
163
- });
@@ -1,49 +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
- const lexResult = lexDocument(inputText);
8
- parser.input = lexResult.tokens;
9
- parser.arraySlice();
10
- return parser;
11
- }
12
-
13
- describe("arraySlice", () => {
14
- // []
15
- it("arraySlice can define an array slice", () => {
16
- const parser = parse(`[]`);
17
- expect(parser.errors).to.be.empty;
18
- });
19
-
20
- // [1:]
21
- it("arraySlice can define an array slice with start index", () => {
22
- const parser = parse(`[1:]`);
23
- expect(parser.errors).to.be.empty;
24
- });
25
-
26
- // [:3]
27
- it("arraySlice can define an array slice with end index", () => {
28
- const parser = parse(`[:3]`);
29
- expect(parser.errors).to.be.empty;
30
- });
31
-
32
- // [1:3]
33
- it("arraySlice can define an array slice with start and end index", () => {
34
- const parser = parse(`[1:3]`);
35
- expect(parser.errors).to.be.empty;
36
- });
37
-
38
- // cannot be negative
39
- it("arraySlice cannot define an array slice with negative index", () => {
40
- const parser = parse(`[-1:]`);
41
- expect(parser.errors).to.not.be.empty;
42
- });
43
-
44
- // cannot have end < start
45
- it("arraySlice cannot define an array slice with end index < start index", () => {
46
- const parser = parse(`[3:1]`);
47
- expect(parser.errors).to.not.be.empty;
48
- });
49
- });
@@ -1,199 +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
- const lexResult = lexDocument(inputText);
8
- parser.input = lexResult.tokens;
9
- parser.columnDefinition();
10
- return parser;
11
- }
12
-
13
- describe("columnDefinition", () => {
14
- it("columnDefinition can define an int", () => {
15
- const parser = parse(`int anIntegerVar`);
16
- expect(parser.errors).to.be.empty;
17
- });
18
-
19
- it("columnDefinition capture the input in the registry", () => {
20
- const parser = parse(`int anIntegerVar`);
21
- expect(parser.__symbolTable.input).to.deep.equal({
22
- anIntegerVar: {
23
- type: "int",
24
- iterable: false,
25
- nullable: false,
26
- optional: false,
27
- },
28
- });
29
- });
30
-
31
- it("columnDefinition can define a text", () => {
32
- const parser = parse(`text aTextVar`);
33
- expect(parser.errors).to.be.empty;
34
- });
35
-
36
- it("columnDefinition can define a uuid", () => {
37
- const parser = parse(`uuid aTextVar`);
38
- expect(parser.errors).to.be.empty;
39
- });
40
-
41
- it("columnDefinition can define a decimal", () => {
42
- const parser = parse(`decimal aDecimalVar`);
43
- expect(parser.errors).to.be.empty;
44
- });
45
-
46
- it("columnDefinition can define a boolean", () => {
47
- const parser = parse(`bool aBooleanVar`);
48
- expect(parser.errors).to.be.empty;
49
- });
50
-
51
- it("columnDefinition can define a date", () => {
52
- const parser = parse(`date aDateVar`);
53
- expect(parser.errors).to.be.empty;
54
- });
55
-
56
- it("columnDefinition can define a timestamp", () => {
57
- const parser = parse(`timestamp aDateTimeVar`);
58
- expect(parser.errors).to.be.empty;
59
- });
60
-
61
- it("columnDefinition can define a vector", () => {
62
- const parser = parse(`vector aVectorVar`);
63
- expect(parser.errors).to.be.empty;
64
- });
65
-
66
- it("columnDefinition can define a json", () => {
67
- const parser = parse(`json aJsonVar`);
68
- expect(parser.errors).to.be.empty;
69
- });
70
-
71
- it("columnDefinition can define a email", () => {
72
- const parser = parse(`email anEmailVar`);
73
- expect(parser.errors).to.be.empty;
74
- });
75
-
76
- it("columnDefinition can define a password", () => {
77
- const parser = parse(`password aPasswordVar`);
78
- expect(parser.errors).to.be.empty;
79
- });
80
-
81
- it("columnDefinition accepts a sensitive marker", () => {
82
- const parser = parse(`password aPasswordVar {
83
- sensitive = true
84
- }`);
85
- expect(parser.errors).to.be.empty;
86
- });
87
-
88
- it("columnDefinition accepts a vector size", () => {
89
- const parser = parse(`vector vec {
90
- size = 1536
91
- }`);
92
- expect(parser.errors).to.be.empty;
93
- expect(parser.warnings).to.be.empty;
94
- });
95
-
96
- it("columnDefinition warns of a missing vector size", () => {
97
- const parser = parse(`vector vec`);
98
- expect(parser.errors).to.be.empty;
99
- expect(parser.warnings).to.not.be.empty;
100
- });
101
-
102
- it("columnDefinition accepts a description", () => {
103
- const parser = parse(`text label {
104
- description = "the display name of the product"
105
- }`);
106
- expect(parser.errors).to.be.empty;
107
- });
108
-
109
- it("columnDefinition does not accepts non-registered filter", () => {
110
- const parser = parse("int age filters=whatTheHeck");
111
- expect(parser.errors).not.to.be.empty;
112
- });
113
-
114
- it("columnDefinition can be defined as an array", () => {
115
- const parser = parse(`int[] variableArray`);
116
- expect(parser.errors).to.be.empty;
117
- });
118
-
119
- it("columnDefinition captures the array input", () => {
120
- const parser = parse(`int[] variableArray`);
121
- expect(parser.__symbolTable.input).to.deep.equal({
122
- variableArray: {
123
- type: "int",
124
- iterable: true,
125
- nullable: false,
126
- optional: false,
127
- },
128
- });
129
- });
130
-
131
- it("columnDefinition captures optional values", () => {
132
- const parser = parse(`email[] variableArray?`);
133
- expect(parser.__symbolTable.input).to.deep.equal({
134
- variableArray: {
135
- type: "email",
136
- iterable: true,
137
- nullable: false,
138
- optional: true,
139
- },
140
- });
141
- });
142
-
143
- it("columnDefinition captures nullable values", () => {
144
- const parser = parse(`timestamp[]? variableArray`);
145
- expect(parser.__symbolTable.input).to.deep.equal({
146
- variableArray: {
147
- type: "timestamp",
148
- iterable: true,
149
- nullable: true,
150
- optional: false,
151
- },
152
- });
153
- });
154
-
155
- it("columnDefinition can reuse type as variable name", () => {
156
- const parser = parse(`email email`);
157
- expect(parser.errors).to.be.empty;
158
- });
159
-
160
- it("columnDefinition can be optional", () => {
161
- const parser = parse(`decimal variable?`);
162
- expect(parser.errors).to.be.empty;
163
- });
164
-
165
- it("columnDefinition cannot start with a number", () => {
166
- const parser = parse(`uuid 12variable`);
167
- expect(parser.errors).to.not.be.empty;
168
- });
169
-
170
- it("columnDefinition can be marked nullable", () => {
171
- const parser = parse(`text? variable`);
172
- expect(parser.errors).to.be.empty;
173
- });
174
-
175
- it("columnDefinition accepts a default value", () => {
176
- const parser = parse(`timestamp when=now`);
177
- expect(parser.errors).to.be.empty;
178
- });
179
-
180
- it("columnDefinition accepts a filter", () => {
181
- const parser = parse("text isbn? filters=trim");
182
- expect(parser.errors).to.be.empty;
183
- });
184
-
185
- it("columnDefinition accepts multiple filters", () => {
186
- const parser = parse("email email_input? filters=trim|lower");
187
- expect(parser.errors).to.be.empty;
188
- });
189
-
190
- it("columnDefinition rejects mismatched filters", () => {
191
- const parser = parse("decimal height filters=startsWith:12|max:200");
192
- expect(parser.errors).to.not.be.empty;
193
- });
194
-
195
- it("columnDefinition rejects non-existing filters", () => {
196
- const parser = parse("decimal height filters=nonExistingFilter");
197
- expect(parser.errors).to.not.be.empty;
198
- });
199
- });
@@ -1,45 +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.dbLinkColumnDefinition();
11
- return parser;
12
- }
13
-
14
- describe("dbLinkColumnDefinition", () => {
15
- it("dbLinkColumnDefinition accepts a string for table value", () => {
16
- const parser = parse(`dblink {
17
- table = "book_club_meeting_registration"
18
- }`);
19
- expect(parser.errors).to.be.empty;
20
- });
21
-
22
- it("dbLinkColumnDefinition requires a string for table value", () => {
23
- const parser = parse(`dblink {
24
- table = 123
25
- }`);
26
- expect(parser.errors).to.not.be.empty;
27
- });
28
-
29
- it("dbLinkColumnDefinition allows an override", () => {
30
- const parser = parse(`dblink {
31
- table = "user"
32
- override = {
33
- created_at: {hidden: true}
34
- email : {hidden: true}
35
- password : {hidden: true}
36
- }
37
- }`);
38
- expect(parser.errors).to.be.empty;
39
- });
40
-
41
- it("dbLinkColumnDefinition cannot be empty", () => {
42
- const parser = parse(`dblink {}`);
43
- expect(parser.errors).to.not.be.empty;
44
- });
45
- });