@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.
- package/lexer/tokens.js +22 -3
- package/package.json +25 -1
- package/.claude/memory/feedback_no_git.md +0 -11
- package/.claude/settings.local.json +0 -21
- package/.github/copilot-instructions.md +0 -190
- package/.github/workflows/ci.yml +0 -31
- package/.husky/pre-commit +0 -1
- package/CLAUDE.md +0 -256
- package/eslint.config.js +0 -24
- package/lexer/comment.spec.js +0 -77
- package/lexer/multiline.spec.js +0 -179
- package/lexer/tests/query/query_lexer.spec.js +0 -36
- package/lexer/tests/query/valid_sources/basic_query.xs +0 -44
- package/lexer/tests/query/valid_sources/db_query.xs +0 -77
- package/lexer/tests/query/valid_sources/empty_query.xs +0 -5
- package/lexer/tests/query/valid_sources/header_query.xs +0 -15
- package/lexer/tests/table/basic_table.xs +0 -17
- package/lexer/tests/table/empty_table.xs +0 -3
- package/lexer/tests/table/table_lexer.spec.js +0 -324
- package/lexer/utils.spec.js +0 -61
- package/onCompletion/contentAssist.spec.js +0 -275
- package/onDefinition/onDefinition.spec.js +0 -313
- package/onHover/FilterMessageProvider.spec.js +0 -85
- package/onHover/FunctionMessageProvider.spec.js +0 -128
- package/onHover/InputFilterMessageProvider.spec.js +0 -329
- package/onHover/QueryFilterMessageProvider.spec.js +0 -164
- package/onHover/onHoverDocument.spec.js +0 -660
- package/parser/addon_parser.spec.js +0 -88
- package/parser/agent_parser.spec.js +0 -599
- package/parser/agent_trigger_parser.spec.js +0 -525
- package/parser/api_group_parser.spec.js +0 -137
- package/parser/attributes/columnDefaultValueAttribute.spec.js +0 -49
- package/parser/attributes/descriptionFieldAttribute.spec.js +0 -39
- package/parser/attributes/disabledFieldAttribute.spec.js +0 -34
- package/parser/attributes/docsFieldAttribute.spec.js +0 -44
- package/parser/attributes/guidFieldAttribute.spec.js +0 -93
- package/parser/attributes/inputFilterFn.spec.js +0 -39
- package/parser/attributes/sensitiveFieldAttribute.spec.js +0 -39
- package/parser/attributes/valueFieldAttribute.spec.js +0 -54
- package/parser/attributes/valuesFieldAttribute.spec.js +0 -44
- package/parser/attributes/visibilityFieldAttribute.spec.js +0 -44
- package/parser/branch_parser.spec.js +0 -34
- package/parser/clauses/agentClause.spec.js +0 -34
- package/parser/clauses/authClause.spec.js +0 -39
- package/parser/clauses/cacheClause.spec.js +0 -103
- package/parser/clauses/canonicalClause.spec.js +0 -34
- package/parser/clauses/channelClause.spec.js +0 -34
- package/parser/clauses/dbTableClause.spec.js +0 -34
- package/parser/clauses/historyClause.spec.js +0 -53
- package/parser/clauses/indexClause.spec.js +0 -47
- package/parser/clauses/inputClause.spec.js +0 -96
- package/parser/clauses/mcpServerClause.spec.js +0 -34
- package/parser/clauses/middlewareClause.spec.js +0 -161
- package/parser/clauses/nakedStackFn.spec.js +0 -73
- package/parser/clauses/responseClause.spec.js +0 -47
- package/parser/clauses/scheduleClause.spec.js +0 -71
- package/parser/clauses/schemaClause.spec.js +0 -102
- package/parser/clauses/testClause.spec.js +0 -69
- package/parser/clauses/viewClause.spec.js +0 -163
- package/parser/definitions/arraySlice.spec.js +0 -49
- package/parser/definitions/columnDefinition.spec.js +0 -199
- package/parser/definitions/dbLinkColumnDefinition.spec.js +0 -45
- package/parser/definitions/enumColumnDefinition.spec.js +0 -108
- package/parser/definitions/filterDefinition.spec.js +0 -43
- package/parser/definitions/objectColumnDefinition.spec.js +0 -118
- package/parser/function_parser.spec.js +0 -131
- package/parser/functions/actionCallFn.spec.js +0 -51
- package/parser/functions/addonCallFn.spec.js +0 -41
- package/parser/functions/ai/aiAgentRunFn.spec.js +0 -94
- package/parser/functions/ai/aiExternalMcpServerDetailsFn.spec.js +0 -85
- package/parser/functions/ai/aiExternalMcpToolListFn.spec.js +0 -85
- package/parser/functions/ai/aiExternalMcpToolRunFn.spec.js +0 -101
- package/parser/functions/aiFn.spec.js +0 -51
- package/parser/functions/api/apiCallFn.spec.js +0 -62
- package/parser/functions/api/apiLambdaFn.spec.js +0 -63
- package/parser/functions/api/apiRealtimeEventFn.spec.js +0 -82
- package/parser/functions/api/apiRequestFn.spec.js +0 -113
- package/parser/functions/api/apiStreamFn.spec.js +0 -44
- package/parser/functions/api/webflowRequestFn.spec.js +0 -114
- package/parser/functions/array/arrayDifferenceFn.spec.js +0 -34
- package/parser/functions/array/arrayFindFn.spec.js +0 -44
- package/parser/functions/array/arrayGroupByFn.spec.js +0 -41
- package/parser/functions/array/arrayIntersectionFn.spec.js +0 -22
- package/parser/functions/array/arrayMapFn.spec.js +0 -37
- package/parser/functions/array/arrayNoValueAs.spec.js +0 -56
- package/parser/functions/array/arrayPartitionFn.spec.js +0 -29
- package/parser/functions/array/arrayUnionFn.spec.js +0 -22
- package/parser/functions/array/arrayValueIfAs.spec.js +0 -54
- package/parser/functions/array/arrayValueOnly.spec.js +0 -61
- package/parser/functions/array/valueAttrOnly.spec.js +0 -61
- package/parser/functions/cloud/cloudAlgoliaRequestFn.spec.js +0 -30
- package/parser/functions/cloud/cloudAwsS3Fn.spec.js +0 -21
- package/parser/functions/cloud/cloudDeleteFileFn.spec.js +0 -25
- package/parser/functions/cloud/cloudGetFileInfoFn.spec.js +0 -25
- package/parser/functions/cloud/cloudListDirectoryFn.spec.js +0 -26
- package/parser/functions/cloud/cloudReadFileFn.spec.js +0 -25
- package/parser/functions/cloud/cloudSearchDocumentFn.spec.js +0 -28
- package/parser/functions/cloud/cloudSearchQueryFn.spec.js +0 -32
- package/parser/functions/cloud/cloudSearchRequestFn.spec.js +0 -32
- package/parser/functions/cloud/cloudSignUrlFn.spec.js +0 -26
- package/parser/functions/cloud/cloudStorageFn.spec.js +0 -21
- package/parser/functions/cloud/cloudUploadFileFn.spec.js +0 -29
- package/parser/functions/controls/awaitFn.spec.js +0 -48
- package/parser/functions/controls/conditionalFn.spec.js +0 -188
- package/parser/functions/controls/forEachFn.spec.js +0 -109
- package/parser/functions/controls/forFn.spec.js +0 -85
- package/parser/functions/controls/functionRunFn.spec.js +0 -77
- package/parser/functions/controls/groupFn.spec.js +0 -63
- package/parser/functions/controls/preconditionFn.spec.js +0 -107
- package/parser/functions/controls/returnFn.spec.js +0 -44
- package/parser/functions/controls/switchFn.spec.js +0 -118
- package/parser/functions/controls/throwFn.spec.js +0 -56
- package/parser/functions/controls/tryCatchFn.spec.js +0 -193
- package/parser/functions/controls/whileFn.spec.js +0 -94
- package/parser/functions/db/dbAddFn.spec.js +0 -72
- package/parser/functions/db/dbAddOrEditFn.spec.js +0 -97
- package/parser/functions/db/dbBulkAddFn.spec.js +0 -94
- package/parser/functions/db/dbBulkDeleteFn.spec.js +0 -28
- package/parser/functions/db/dbBulkPatchFn.spec.js +0 -42
- package/parser/functions/db/dbBulkUpdateFn.spec.js +0 -42
- package/parser/functions/db/dbDelFn.spec.js +0 -67
- package/parser/functions/db/dbDirectQueryFn.spec.js +0 -104
- package/parser/functions/db/dbEditFn.spec.js +0 -122
- package/parser/functions/db/dbExternalDirectQueryFn.spec.js +0 -103
- package/parser/functions/db/dbGetFn.spec.js +0 -117
- package/parser/functions/db/dbHasFn.spec.js +0 -62
- package/parser/functions/db/dbPatchFn.spec.js +0 -88
- package/parser/functions/db/dbQueryFn.spec.js +0 -380
- package/parser/functions/db/dbSchemaFn.spec.js +0 -42
- package/parser/functions/db/dbSetDatasourceFn.spec.js +0 -44
- package/parser/functions/db/dbTransactionFn.spec.js +0 -63
- package/parser/functions/db/dbTruncateFn.spec.js +0 -42
- package/parser/functions/debug/debugLogFn.spec.js +0 -44
- package/parser/functions/debug/debugStopFn.spec.js +0 -44
- package/parser/functions/expect/unitExpectToBeWithinFn.spec.js +0 -63
- package/parser/functions/expect/unitExpectToThrowFn.spec.js +0 -40
- package/parser/functions/expect/unitExpectWithArgumentsFn.spec.js +0 -355
- package/parser/functions/expect/unitExpectWithoutArgumentsFn.spec.js +0 -69
- package/parser/functions/expect/workflowExpectToBeWithinFn.spec.js +0 -70
- package/parser/functions/expect/workflowExpectToThrowFn.spec.js +0 -56
- package/parser/functions/expect/workflowExpectWithArgumentsFn.spec.js +0 -308
- package/parser/functions/expect/workflowExpectWithoutArgumentsFn.spec.js +0 -87
- package/parser/functions/math/allMathFn.spec.js +0 -100
- package/parser/functions/middlewareCallFn.spec.js +0 -44
- package/parser/functions/object/objectEntriesFn.spec.js +0 -44
- package/parser/functions/object/objectKeysFn.spec.js +0 -44
- package/parser/functions/object/objectValuesFn.spec.js +0 -44
- package/parser/functions/redis/redisCountFn.spec.js +0 -58
- package/parser/functions/redis/redisDecrFn.spec.js +0 -47
- package/parser/functions/redis/redisDelFn.spec.js +0 -58
- package/parser/functions/redis/redisGetFn.spec.js +0 -67
- package/parser/functions/redis/redisHasFn.spec.js +0 -58
- package/parser/functions/redis/redisIncrFn.spec.js +0 -74
- package/parser/functions/redis/redisKeysFn.spec.js +0 -67
- package/parser/functions/redis/redisPopFn.spec.js +0 -75
- package/parser/functions/redis/redisPushFn.spec.js +0 -71
- package/parser/functions/redis/redisRangeFn.spec.js +0 -80
- package/parser/functions/redis/redisRateLimitFn.spec.js +0 -87
- package/parser/functions/redis/redisRemoveFn.spec.js +0 -65
- package/parser/functions/redis/redisSetFn.spec.js +0 -89
- package/parser/functions/redis/redisShiftFn.spec.js +0 -75
- package/parser/functions/redis/redisUnshiftFn.spec.js +0 -73
- package/parser/functions/schema/schemaFn.spec.js +0 -92
- package/parser/functions/schema/schemaParseArrayFn.spec.js +0 -134
- package/parser/functions/schema/schemaParseAttributeFn.spec.js +0 -285
- package/parser/functions/schema/schemaParseConstantFn.spec.js +0 -122
- package/parser/functions/schema/schemaParseEnum.spec.js +0 -47
- package/parser/functions/schema/schemaParseImmutableFn.spec.js +0 -99
- package/parser/functions/schema/schemaParseObjectFn.spec.js +0 -223
- package/parser/functions/schema/utils.spec.js +0 -27
- package/parser/functions/security/securityCheckPasswordFn.spec.js +0 -22
- package/parser/functions/security/securityCreateAuthTokenFn.spec.js +0 -51
- package/parser/functions/security/securityCreateCurveKeyFn.spec.js +0 -22
- package/parser/functions/security/securityCreatePasswordFn.spec.js +0 -26
- package/parser/functions/security/securityCreateRsaKeyFn.spec.js +0 -22
- package/parser/functions/security/securityCreateSecretKeyFn.spec.js +0 -22
- package/parser/functions/security/securityCreateUuidFn.spec.js +0 -27
- package/parser/functions/security/securityDecryptFn.spec.js +0 -24
- package/parser/functions/security/securityEncryptFn.spec.js +0 -24
- package/parser/functions/security/securityJweDecodeFn.spec.js +0 -26
- package/parser/functions/security/securityJweDecodeLegacyFn.spec.js +0 -26
- package/parser/functions/security/securityJweEncodeFn.spec.js +0 -26
- package/parser/functions/security/securityJweEncodeLegacyFn.spec.js +0 -25
- package/parser/functions/security/securityJwsDecodeFn.spec.js +0 -25
- package/parser/functions/security/securityJwsEncodeFn.spec.js +0 -25
- package/parser/functions/security/securityRandomBytesFn.spec.js +0 -21
- package/parser/functions/security/securityRandomNumberFn.spec.js +0 -22
- package/parser/functions/storage/storageCreateAttachmentFn.spec.js +0 -87
- package/parser/functions/storage/storageCreateAudioFn.spec.js +0 -98
- package/parser/functions/storage/storageCreateFileResourceFn.spec.js +0 -72
- package/parser/functions/storage/storageCreateImageFn.spec.js +0 -98
- package/parser/functions/storage/storageCreateVideoFn.spec.js +0 -99
- package/parser/functions/storage/storageDeleteFileFn.spec.js +0 -67
- package/parser/functions/storage/storageReadFileResourceFn.spec.js +0 -60
- package/parser/functions/storage/storageSignPrivateUrlFn.spec.js +0 -72
- package/parser/functions/stream/streamFromCsvFn.spec.js +0 -69
- package/parser/functions/stream/streamFromJsonlFn.spec.js +0 -47
- package/parser/functions/stream/streamFromRequestFn.spec.js +0 -103
- package/parser/functions/text/allTextWithReturnValueFn.spec.js +0 -100
- package/parser/functions/text/allTextWithoutReturnValueFn.spec.js +0 -122
- package/parser/functions/toolCallFn.spec.js +0 -28
- package/parser/functions/triggerCallFn.spec.js +0 -51
- package/parser/functions/unitExpectFn.spec.js +0 -21
- package/parser/functions/util/utilGeoDistanceFn.spec.js +0 -79
- package/parser/functions/util/utilGetAllInputFn.spec.js +0 -33
- package/parser/functions/util/utilGetEnvFn.spec.js +0 -33
- package/parser/functions/util/utilGetRawInputFn.spec.js +0 -62
- package/parser/functions/util/utilGetVarsFn.spec.js +0 -33
- package/parser/functions/util/utilIpLookupFn.spec.js +0 -37
- package/parser/functions/util/utilPostProcessFn.spec.js +0 -63
- package/parser/functions/util/utilSendEmailFn.spec.js +0 -62
- package/parser/functions/util/utilSetHeaderFn.spec.js +0 -48
- package/parser/functions/util/utilSleepFn.spec.js +0 -44
- package/parser/functions/util/utilTemplateFn.spec.js +0 -78
- package/parser/functions/varFn.spec.js +0 -332
- package/parser/functions/workflowExpectFn.spec.js +0 -32
- package/parser/functions/zip/zipAddToArchiveFn.spec.js +0 -78
- package/parser/functions/zip/zipCreateArchiveFn.spec.js +0 -53
- package/parser/functions/zip/zipDeleteFromArchiveFn.spec.js +0 -69
- package/parser/functions/zip/zipExtractFn.spec.js +0 -52
- package/parser/functions/zip/zipViewContentsFn.spec.js +0 -52
- package/parser/generic/arrayWithValues.spec.js +0 -72
- package/parser/generic/asVariable.spec.js +0 -117
- package/parser/generic/assignableVariableAs.spec.js +0 -126
- package/parser/generic/assignableVariableProperty.spec.js +0 -138
- package/parser/generic/castedValue.spec.js +0 -29
- package/parser/generic/chainedIdentifier.spec.js +0 -89
- package/parser/generic/completeAuthVariable.spec.js +0 -23
- package/parser/generic/completeEnvVariable.spec.js +0 -99
- package/parser/generic/completeErrorVariable.spec.js +0 -17
- package/parser/generic/completeInputVariable.spec.js +0 -53
- package/parser/generic/expressionFn.spec.js +0 -605
- package/parser/generic/filterFn.spec.js +0 -47
- package/parser/generic/functionAttrReq.spec.js +0 -353
- package/parser/generic/longFormVariable.spec.js +0 -25
- package/parser/generic/minimalFnBody.spec.js +0 -47
- package/parser/generic/mockAttribute.spec.js +0 -57
- package/parser/generic/multilineFilterFn.spec.js +0 -51
- package/parser/generic/objectWithAttributes.spec.js +0 -147
- package/parser/generic/requiredValueFnBody.spec.js +0 -56
- package/parser/generic/shortFormVariable.spec.js +0 -27
- package/parser/generic/stringArray.spec.js +0 -55
- package/parser/generic/tagsAttribute.spec.js +0 -47
- package/parser/generic/variableOnly.spec.js +0 -47
- package/parser/mcp_server_parser.spec.js +0 -478
- package/parser/mcp_server_trigger_parser.spec.js +0 -396
- package/parser/metadata/columnMetadataDefinition.spec.js +0 -47
- package/parser/metadata/enumColumnMetadataDefinition.spec.js +0 -81
- package/parser/middleware_parser.spec.js +0 -230
- package/parser/multidoc.spec.js +0 -946
- package/parser/query_parser.spec.js +0 -202
- package/parser/realtime_channel_parser.spec.js +0 -20
- package/parser/realtime_trigger_parser.spec.js +0 -469
- package/parser/run_parser.spec.js +0 -100
- package/parser/table_parser.spec.js +0 -176
- package/parser/table_trigger_parser.spec.js +0 -478
- package/parser/task_parser.spec.js +0 -94
- package/parser/tests/agent/agent_parser.spec.js +0 -52
- package/parser/tests/agent/valid_sources/customer_servier_agent.xs +0 -45
- package/parser/tests/api_group/api_group_parser.spec.js +0 -52
- package/parser/tests/api_group/valid_sources/api_group_history.xs +0 -4
- package/parser/tests/api_group/valid_sources/basic_api_group.xs +0 -3
- package/parser/tests/api_group/valid_sources/complete_api_group.xs +0 -7
- package/parser/tests/api_group/valid_sources/protected_api_group.xs +0 -7
- package/parser/tests/function/function_parser.spec.js +0 -52
- package/parser/tests/function/valid_sources/all_controls.xs +0 -68
- package/parser/tests/function/valid_sources/all_query_return_types.xs +0 -227
- package/parser/tests/function/valid_sources/all_storage.xs +0 -45
- package/parser/tests/function/valid_sources/discord_poll_send_to_slack.xs +0 -133
- package/parser/tests/function/valid_sources/expression_in_response.xs +0 -22
- package/parser/tests/function/valid_sources/filter_by_value.xs +0 -55
- package/parser/tests/function/valid_sources/filter_query.xs +0 -82
- package/parser/tests/function/valid_sources/large_regex.xs +0 -13
- package/parser/tests/function/valid_sources/ledash_ends_with.xs +0 -90
- package/parser/tests/function/valid_sources/multiline_description.xs +0 -28
- package/parser/tests/function/valid_sources/multiline_expr.xs +0 -41
- package/parser/tests/function/valid_sources/set_theory_fn.xs +0 -129
- package/parser/tests/function/valid_sources/simple_unit_test.xs +0 -33
- package/parser/tests/function/valid_sources/valid_officer.xs +0 -57
- package/parser/tests/function/valid_sources/webflow.xs +0 -18
- package/parser/tests/multidoc/multidoc_parser.spec.js +0 -55
- package/parser/tests/multidoc/valid_sources/function_stack.xs +0 -130603
- package/parser/tests/query/query_parser.spec.js +0 -54
- package/parser/tests/query/valid_sources/all_basics.xs +0 -51
- package/parser/tests/query/valid_sources/all_cloud.xs +0 -141
- package/parser/tests/query/valid_sources/all_db.xs +0 -102
- package/parser/tests/query/valid_sources/all_external_db.xs +0 -43
- package/parser/tests/query/valid_sources/all_keywords.xs +0 -65
- package/parser/tests/query/valid_sources/all_math.xs +0 -53
- package/parser/tests/query/valid_sources/all_object.xs +0 -25
- package/parser/tests/query/valid_sources/all_redis.xs +0 -106
- package/parser/tests/query/valid_sources/all_security.xs +0 -105
- package/parser/tests/query/valid_sources/all_stream.xs +0 -69
- package/parser/tests/query/valid_sources/all_text.xs +0 -54
- package/parser/tests/query/valid_sources/all_util.xs +0 -66
- package/parser/tests/query/valid_sources/all_zip.xs +0 -39
- package/parser/tests/query/valid_sources/arrays.xs +0 -33
- package/parser/tests/query/valid_sources/disabled_response.xs +0 -27
- package/parser/tests/query/valid_sources/multiline_lambda_GET.xs +0 -50
- package/parser/tests/query/valid_sources/mutliline_query.xs +0 -140
- package/parser/tests/query/valid_sources/patch_expression_multiline.xs +0 -27
- package/parser/tests/query/valid_sources/query_cache.xs +0 -34
- package/parser/tests/query/valid_sources/query_example.xs +0 -43
- package/parser/tests/query/valid_sources/query_mini.xs +0 -11
- package/parser/tests/query/valid_sources/query_rich_inputs.xs +0 -32
- package/parser/tests/query/valid_sources/simple_unit_test.xs +0 -33
- package/parser/tests/query/valid_sources/test_with_slashes.xs +0 -22
- package/parser/tests/query/valid_sources/with_unit_test.xs +0 -97
- package/parser/tests/table/table_parser.spec.js +0 -52
- package/parser/tests/table/valid_sources/account.xs +0 -31
- package/parser/tests/table/valid_sources/all_basic_columns.xs +0 -44
- package/parser/tests/table/valid_sources/basic_table.xs +0 -15
- package/parser/tests/table/valid_sources/empty_object.xs +0 -17
- package/parser/tests/table/valid_sources/empty_table.xs +0 -3
- package/parser/tests/table/valid_sources/multiline_index.xs +0 -33
- package/parser/tests/table/valid_sources/relation.xs +0 -44
- package/parser/tests/table/valid_sources/rich_columns.xs +0 -31
- package/parser/tests/table/valid_sources/table_with_comments.xs +0 -17
- package/parser/tests/table/valid_sources/table_with_search_index.xs +0 -31
- package/parser/tests/table/valid_sources/view_table.xs +0 -62
- package/parser/tests/task/task_parser.spec.js +0 -53
- package/parser/tests/task/valid_sources/active_event.xs +0 -11
- package/parser/tests/task/valid_sources/all_events.xs +0 -17
- package/parser/tests/task/valid_sources/create_leak.xs +0 -165
- package/parser/tests/task/valid_sources/daily_sales_report.xs +0 -56
- package/parser/tests/task/valid_sources/inactive_event.xs +0 -11
- package/parser/tests/variable_test/coverage_check.xs +0 -293
- package/parser/tests/workflow_test/valid_sources/basic_workflow_test.xs +0 -13
- package/parser/tests/workflow_test/workflow_test_parser.spec.js +0 -52
- package/parser/tool_parser.spec.js +0 -115
- package/parser/variableValidator.spec.js +0 -179
- package/parser/workflow_test_parser.spec.js +0 -136
- package/parser/workspace_parser.spec.js +0 -142
- package/parser/workspace_trigger_parser.spec.js +0 -332
- package/toTmLanguage.js +0 -75
- package/utils.spec.js +0 -369
- package/workspace/crossFileValidator.spec.js +0 -654
- package/workspace/referenceTracking.spec.js +0 -420
- package/workspace/workspaceIndex.spec.js +0 -189
package/utils.spec.js
DELETED
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
import { expect } from "chai";
|
|
2
|
-
import { describe, it } from "mocha";
|
|
3
|
-
import {
|
|
4
|
-
getObjectInfoFromContent,
|
|
5
|
-
getSchemeFromContent,
|
|
6
|
-
Iterator,
|
|
7
|
-
} from "./utils.js";
|
|
8
|
-
|
|
9
|
-
describe("getSchemeFromContent", () => {
|
|
10
|
-
describe("basic keyword detection", () => {
|
|
11
|
-
it("should return 'addon' for addon content", () => {
|
|
12
|
-
const content = "addon my_addon {}";
|
|
13
|
-
expect(getSchemeFromContent(content)).to.equal("addon");
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it("should return 'agent' for agent content", () => {
|
|
17
|
-
const content = "agent my_agent {}";
|
|
18
|
-
expect(getSchemeFromContent(content)).to.equal("agent");
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it("should return 'agent_trigger' for agent_trigger content", () => {
|
|
22
|
-
const content = "agent_trigger my_trigger {}";
|
|
23
|
-
expect(getSchemeFromContent(content)).to.equal("agent_trigger");
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it("should return 'api_group' for api_group content", () => {
|
|
27
|
-
const content = "api_group auth {}";
|
|
28
|
-
expect(getSchemeFromContent(content)).to.equal("api_group");
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it("should return 'branch' for branch content", () => {
|
|
32
|
-
const content = "branch my_branch {}";
|
|
33
|
-
expect(getSchemeFromContent(content)).to.equal("branch");
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it("should return 'cfn' for function content", () => {
|
|
37
|
-
const content = "function calculate {}";
|
|
38
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it("should return 'mcp_server' for mcp_server content", () => {
|
|
42
|
-
const content = "mcp_server my_server {}";
|
|
43
|
-
expect(getSchemeFromContent(content)).to.equal("mcp_server");
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it("should return 'mcp_server_trigger' for mcp_server_trigger content", () => {
|
|
47
|
-
const content = "mcp_server_trigger my_trigger {}";
|
|
48
|
-
expect(getSchemeFromContent(content)).to.equal("mcp_server_trigger");
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it("should return 'middleware' for middleware content", () => {
|
|
52
|
-
const content = "middleware auth_check {}";
|
|
53
|
-
expect(getSchemeFromContent(content)).to.equal("middleware");
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it("should return 'api' for query content", () => {
|
|
57
|
-
const content = "query get_users verb=GET {}";
|
|
58
|
-
expect(getSchemeFromContent(content)).to.equal("api");
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it("should return 'realtime_trigger' for realtime_trigger content", () => {
|
|
62
|
-
const content = "realtime_trigger my_trigger {}";
|
|
63
|
-
expect(getSchemeFromContent(content)).to.equal("realtime_trigger");
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it("should return 'db' for table content", () => {
|
|
67
|
-
const content = "table users {}";
|
|
68
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it("should return 'table_trigger' for table_trigger content", () => {
|
|
72
|
-
const content = "table_trigger my_trigger {}";
|
|
73
|
-
expect(getSchemeFromContent(content)).to.equal("table_trigger");
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it("should return 'task' for task content", () => {
|
|
77
|
-
const content = "task cleanup {}";
|
|
78
|
-
expect(getSchemeFromContent(content)).to.equal("task");
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it("should return 'tool' for tool content", () => {
|
|
82
|
-
const content = "tool my_tool {}";
|
|
83
|
-
expect(getSchemeFromContent(content)).to.equal("tool");
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
it("should return 'workflow_test' for workflow_test content", () => {
|
|
87
|
-
const content = "workflow_test my_test {}";
|
|
88
|
-
expect(getSchemeFromContent(content)).to.equal("workflow_test");
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it("should return 'workspace' for workspace content", () => {
|
|
92
|
-
const content = "workspace my_workspace {}";
|
|
93
|
-
expect(getSchemeFromContent(content)).to.equal("workspace");
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("should return 'workspace_trigger' for workspace_trigger content", () => {
|
|
97
|
-
const content = "workspace_trigger my_trigger {}";
|
|
98
|
-
expect(getSchemeFromContent(content)).to.equal("workspace_trigger");
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
describe("whitespace handling", () => {
|
|
103
|
-
it("should handle leading spaces", () => {
|
|
104
|
-
const content = " table users {}";
|
|
105
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
it("should handle leading tabs", () => {
|
|
109
|
-
const content = "\t\ttable users {}";
|
|
110
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it("should handle leading newlines", () => {
|
|
114
|
-
const content = "\n\n\ntable users {}";
|
|
115
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it("should handle mixed leading whitespace", () => {
|
|
119
|
-
const content = "\n \t\n\t function calculate {}";
|
|
120
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
describe("comment handling", () => {
|
|
125
|
-
it("should skip single line comment before keyword", () => {
|
|
126
|
-
const content = "// This is a table\ntable users {}";
|
|
127
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
it("should skip multiple line comments before keyword", () => {
|
|
131
|
-
const content =
|
|
132
|
-
"// Comment 1\n// Comment 2\n// Comment 3\ntable users {}";
|
|
133
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it("should handle comments with whitespace", () => {
|
|
137
|
-
const content = " // Comment\n table users {}";
|
|
138
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
it("should handle mixed comments and whitespace", () => {
|
|
142
|
-
const content =
|
|
143
|
-
"\n// Comment 1\n\n// Comment 2\n \nfunction calculate {}";
|
|
144
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
describe("default behavior", () => {
|
|
149
|
-
it("should return 'cfn' for unknown keyword", () => {
|
|
150
|
-
const content = "unknown_keyword something {}";
|
|
151
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
it("should return 'cfn' for empty content", () => {
|
|
155
|
-
const content = "";
|
|
156
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
it("should return 'cfn' for whitespace-only content", () => {
|
|
160
|
-
const content = " \n\t\n ";
|
|
161
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
it("should return 'cfn' for comments-only content", () => {
|
|
165
|
-
const content = "// Just a comment\n// Another comment";
|
|
166
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
describe("real-world examples", () => {
|
|
171
|
-
it("should handle complete table definition", () => {
|
|
172
|
-
const content = `table users {
|
|
173
|
-
schema {
|
|
174
|
-
int id
|
|
175
|
-
text name?
|
|
176
|
-
email email_address?
|
|
177
|
-
}
|
|
178
|
-
}`;
|
|
179
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
it("should handle complete function definition", () => {
|
|
183
|
-
const content = `function calculate {
|
|
184
|
-
input {
|
|
185
|
-
int value1?
|
|
186
|
-
int value2?
|
|
187
|
-
}
|
|
188
|
-
stack {
|
|
189
|
-
}
|
|
190
|
-
response {
|
|
191
|
-
}
|
|
192
|
-
}`;
|
|
193
|
-
expect(getSchemeFromContent(content)).to.equal("cfn");
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
it("should handle query with verb and parameters", () => {
|
|
197
|
-
const content = `query get_user verb=GET path=/user/{id} {
|
|
198
|
-
input {
|
|
199
|
-
int id
|
|
200
|
-
}
|
|
201
|
-
stack {
|
|
202
|
-
}
|
|
203
|
-
}`;
|
|
204
|
-
expect(getSchemeFromContent(content)).to.equal("api");
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
it("should handle content with header comment", () => {
|
|
208
|
-
const content = `// Auto-generated by Xano
|
|
209
|
-
// Do not modify manually
|
|
210
|
-
|
|
211
|
-
table products {
|
|
212
|
-
schema {
|
|
213
|
-
int id
|
|
214
|
-
text name
|
|
215
|
-
}
|
|
216
|
-
}`;
|
|
217
|
-
expect(getSchemeFromContent(content)).to.equal("db");
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
it("should handle task definition", () => {
|
|
221
|
-
const content = `task cleanup interval=daily {
|
|
222
|
-
stack {
|
|
223
|
-
}
|
|
224
|
-
}`;
|
|
225
|
-
expect(getSchemeFromContent(content)).to.equal("task");
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
it("should handle tool definition", () => {
|
|
229
|
-
const content = `tool my_custom_tool {
|
|
230
|
-
input {
|
|
231
|
-
text query?
|
|
232
|
-
}
|
|
233
|
-
stack {
|
|
234
|
-
}
|
|
235
|
-
}`;
|
|
236
|
-
expect(getSchemeFromContent(content)).to.equal("tool");
|
|
237
|
-
});
|
|
238
|
-
|
|
239
|
-
it("should handle api_group definition", () => {
|
|
240
|
-
const content = `api_group authentication {
|
|
241
|
-
auth = false
|
|
242
|
-
middleware = []
|
|
243
|
-
}`;
|
|
244
|
-
expect(getSchemeFromContent(content)).to.equal("api_group");
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
describe("getObjectInfoFromContent", () => {
|
|
250
|
-
it("should extract function with identifier name", () => {
|
|
251
|
-
const result = getObjectInfoFromContent(
|
|
252
|
-
"function my_func {\n stack {\n }\n}"
|
|
253
|
-
);
|
|
254
|
-
expect(result).to.deep.equal({ type: "function", name: "my_func" });
|
|
255
|
-
});
|
|
256
|
-
|
|
257
|
-
it("should extract function with string literal name", () => {
|
|
258
|
-
const result = getObjectInfoFromContent('function "my func" {\n}');
|
|
259
|
-
expect(result).to.deep.equal({ type: "function", name: "my func" });
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
it("should extract table", () => {
|
|
263
|
-
const result = getObjectInfoFromContent(
|
|
264
|
-
"table users {\n schema {\n }\n}"
|
|
265
|
-
);
|
|
266
|
-
expect(result).to.deep.equal({ type: "table", name: "users" });
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
it("should extract query with verb", () => {
|
|
270
|
-
const result = getObjectInfoFromContent('query "/users" GET {\n}');
|
|
271
|
-
expect(result).to.deep.equal({ type: "query", name: "/users" });
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
it("should extract task", () => {
|
|
275
|
-
const result = getObjectInfoFromContent('task "daily_cleanup" {\n}');
|
|
276
|
-
expect(result).to.deep.equal({ type: "task", name: "daily_cleanup" });
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
it("should extract api_group", () => {
|
|
280
|
-
const result = getObjectInfoFromContent('api_group "users" {\n}');
|
|
281
|
-
expect(result).to.deep.equal({ type: "api_group", name: "users" });
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
it("should handle leading comments", () => {
|
|
285
|
-
const result = getObjectInfoFromContent(
|
|
286
|
-
"// my function\nfunction my_func {\n}"
|
|
287
|
-
);
|
|
288
|
-
expect(result).to.deep.equal({ type: "function", name: "my_func" });
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
it("should handle leading whitespace and multiple comments", () => {
|
|
292
|
-
const result = getObjectInfoFromContent(
|
|
293
|
-
"\n// comment 1\n// comment 2\ntable users {\n}"
|
|
294
|
-
);
|
|
295
|
-
expect(result).to.deep.equal({ type: "table", name: "users" });
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
it("should return null for empty content", () => {
|
|
299
|
-
expect(getObjectInfoFromContent("")).to.be.null;
|
|
300
|
-
});
|
|
301
|
-
|
|
302
|
-
it("should return null for content with no name token", () => {
|
|
303
|
-
expect(getObjectInfoFromContent("function")).to.be.null;
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
it("should extract workflow_test", () => {
|
|
307
|
-
const result = getObjectInfoFromContent(
|
|
308
|
-
'workflow_test "login flow" {\n}'
|
|
309
|
-
);
|
|
310
|
-
expect(result).to.deep.equal({
|
|
311
|
-
type: "workflow_test",
|
|
312
|
-
name: "login flow",
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
it("should extract table_trigger", () => {
|
|
317
|
-
const result = getObjectInfoFromContent(
|
|
318
|
-
'table_trigger "on_user_create" {\n}'
|
|
319
|
-
);
|
|
320
|
-
expect(result).to.deep.equal({
|
|
321
|
-
type: "table_trigger",
|
|
322
|
-
name: "on_user_create",
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
it("should extract middleware", () => {
|
|
327
|
-
const result = getObjectInfoFromContent('middleware "auth_check" {\n}');
|
|
328
|
-
expect(result).to.deep.equal({ type: "middleware", name: "auth_check" });
|
|
329
|
-
});
|
|
330
|
-
|
|
331
|
-
it("should extract addon", () => {
|
|
332
|
-
const result = getObjectInfoFromContent('addon "my_addon" {\n}');
|
|
333
|
-
expect(result).to.deep.equal({ type: "addon", name: "my_addon" });
|
|
334
|
-
});
|
|
335
|
-
});
|
|
336
|
-
|
|
337
|
-
describe("Iterator", () => {
|
|
338
|
-
describe("basic functionality", () => {
|
|
339
|
-
it("should iterate through items", () => {
|
|
340
|
-
const iter = new Iterator([1, 2, 3]);
|
|
341
|
-
expect(iter.next()).to.equal(1);
|
|
342
|
-
expect(iter.next()).to.equal(2);
|
|
343
|
-
expect(iter.next()).to.equal(3);
|
|
344
|
-
});
|
|
345
|
-
|
|
346
|
-
it("should check if has next", () => {
|
|
347
|
-
const iter = new Iterator([1, 2]);
|
|
348
|
-
expect(iter.hasNext()).to.be.true;
|
|
349
|
-
iter.next();
|
|
350
|
-
expect(iter.hasNext()).to.be.true;
|
|
351
|
-
iter.next();
|
|
352
|
-
expect(iter.hasNext()).to.be.false;
|
|
353
|
-
});
|
|
354
|
-
|
|
355
|
-
it("should reset iterator", () => {
|
|
356
|
-
const iter = new Iterator([1, 2, 3]);
|
|
357
|
-
iter.next();
|
|
358
|
-
iter.next();
|
|
359
|
-
iter.reset();
|
|
360
|
-
expect(iter.next()).to.equal(1);
|
|
361
|
-
});
|
|
362
|
-
|
|
363
|
-
it("should handle empty array", () => {
|
|
364
|
-
const iter = new Iterator([]);
|
|
365
|
-
expect(iter.hasNext()).to.be.false;
|
|
366
|
-
expect(iter.next()).to.be.undefined;
|
|
367
|
-
});
|
|
368
|
-
});
|
|
369
|
-
});
|