arc-1 0.5.0 → 0.6.1
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/README.md +13 -12
- package/dist/adt/client.d.ts +13 -1
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +77 -1
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/config.d.ts +1 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js +1 -0
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +3 -8
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/devtools.d.ts +15 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +162 -67
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +105 -184
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +3 -0
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +83 -2
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/safety.d.ts +0 -7
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/safety.js +3 -49
- package/dist/adt/safety.js.map +1 -1
- package/dist/adt/transport.d.ts +6 -0
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +35 -22
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +68 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/ui5-repository.d.ts +19 -0
- package/dist/adt/ui5-repository.d.ts.map +1 -0
- package/dist/adt/ui5-repository.js +43 -0
- package/dist/adt/ui5-repository.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +39 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +185 -2
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/aff/schemas/bdef-v1.json +62 -0
- package/dist/aff/schemas/clas-v1.json +276 -0
- package/dist/aff/schemas/ddls-v1.json +144 -0
- package/dist/aff/schemas/intf-v1.json +243 -0
- package/dist/aff/schemas/prog-v1.json +133 -0
- package/dist/aff/schemas/srvb-v1.json +115 -0
- package/dist/aff/schemas/srvd-v1.json +108 -0
- package/dist/aff/validator.d.ts +14 -0
- package/dist/aff/validator.d.ts.map +1 -0
- package/dist/aff/validator.js +83 -0
- package/dist/aff/validator.js.map +1 -0
- package/dist/handlers/hyperfocused.js +1 -1
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/intent.d.ts +16 -0
- package/dist/handlers/intent.d.ts.map +1 -1
- package/dist/handlers/intent.js +495 -62
- package/dist/handlers/intent.js.map +1 -1
- package/dist/handlers/schemas.d.ts +80 -24
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +34 -6
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +81 -19
- package/dist/handlers/tools.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +7 -14
- package/dist/server/config.js.map +1 -1
- package/dist/server/server.d.ts +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +2 -2
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +1 -1
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +2 -2
- package/dist/server/types.js.map +1 -1
- package/package.json +14 -4
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "This file is autogenerated, do not edit manually, see https://github.com/SAP/abap-file-formats for more information.",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/prog/prog-v1.json",
|
|
5
|
+
"title": "Program",
|
|
6
|
+
"description": "Program",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"formatVersion": {
|
|
10
|
+
"title": "Format Version",
|
|
11
|
+
"description": "Format version",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"const": "1"
|
|
14
|
+
},
|
|
15
|
+
"header": {
|
|
16
|
+
"title": "Header",
|
|
17
|
+
"description": "Header",
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"description": {
|
|
21
|
+
"title": "Description",
|
|
22
|
+
"description": "Description of the ABAP object",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"maxLength": 70
|
|
25
|
+
},
|
|
26
|
+
"originalLanguage": {
|
|
27
|
+
"title": "Original Language",
|
|
28
|
+
"description": "Original language of the ABAP object",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 2
|
|
31
|
+
},
|
|
32
|
+
"abapLanguageVersion": {
|
|
33
|
+
"title": "ABAP Language Version",
|
|
34
|
+
"description": "ABAP language version",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": ["standard", "keyUser", "cloudDevelopment"],
|
|
37
|
+
"enumTitles": ["Standard", "ABAP for Key Users", "ABAP Cloud Development"],
|
|
38
|
+
"enumDescriptions": ["Standard", "ABAP for key user extensibility", "ABAP cloud development"],
|
|
39
|
+
"default": "standard"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["description", "originalLanguage"]
|
|
44
|
+
},
|
|
45
|
+
"generalInformation": {
|
|
46
|
+
"title": "General Information",
|
|
47
|
+
"description": "General information",
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"programType": {
|
|
51
|
+
"title": "Program Type",
|
|
52
|
+
"description": "Program type",
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["executableProgram", "modulePool", "subroutinePool", "include"],
|
|
55
|
+
"enumTitles": ["Executable Program", "Module Pool", "Subroutine Pool", "Include"],
|
|
56
|
+
"enumDescriptions": ["Executable program", "Module pool", "Subroutine pool", "Include"],
|
|
57
|
+
"default": "executableProgram"
|
|
58
|
+
},
|
|
59
|
+
"programStatus": {
|
|
60
|
+
"title": "Program Status",
|
|
61
|
+
"description": "Program status",
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": ["sapProductionProgram", "customerProductionProgram", "systemProgram", "testProgram", "unknown"],
|
|
64
|
+
"enumTitles": [
|
|
65
|
+
"SAP Production Program",
|
|
66
|
+
"Customer Production Program",
|
|
67
|
+
"System Program",
|
|
68
|
+
"Test Program",
|
|
69
|
+
"Unknown"
|
|
70
|
+
],
|
|
71
|
+
"enumDescriptions": [
|
|
72
|
+
"SAP production program",
|
|
73
|
+
"Customer production program",
|
|
74
|
+
"System program",
|
|
75
|
+
"Test program",
|
|
76
|
+
"Unknown"
|
|
77
|
+
],
|
|
78
|
+
"default": "unknown"
|
|
79
|
+
},
|
|
80
|
+
"fixPointArithmetic": {
|
|
81
|
+
"title": "Fix Point Arithmetic",
|
|
82
|
+
"description": "Fix point arithmetic",
|
|
83
|
+
"type": "boolean"
|
|
84
|
+
},
|
|
85
|
+
"editLocked": {
|
|
86
|
+
"title": "Edit Locked",
|
|
87
|
+
"description": "The editor lock flag prevents other users from making changes to the program. Only the last person to change the program can remove the flag.",
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
},
|
|
90
|
+
"startsUsingVariant": {
|
|
91
|
+
"title": "Starts Using Variant",
|
|
92
|
+
"description": "A user can only start this report using a variant.",
|
|
93
|
+
"type": "boolean"
|
|
94
|
+
},
|
|
95
|
+
"authorizationGroup": {
|
|
96
|
+
"title": "Authorization Group",
|
|
97
|
+
"description": "Programs that are assigned to an authorization group are protected against display and execution. Security-related programs should, therefore, always be assigned to an authorization group.",
|
|
98
|
+
"type": "string",
|
|
99
|
+
"maxLength": 8
|
|
100
|
+
},
|
|
101
|
+
"application": {
|
|
102
|
+
"title": "Application",
|
|
103
|
+
"description": "Application (taplp)",
|
|
104
|
+
"type": "string",
|
|
105
|
+
"maxLength": 1
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false
|
|
109
|
+
},
|
|
110
|
+
"logicalDatabase": {
|
|
111
|
+
"title": "Logical Database",
|
|
112
|
+
"description": "Logical database",
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {
|
|
115
|
+
"name": {
|
|
116
|
+
"title": "Logical Database Name",
|
|
117
|
+
"description": "Name of a logical database.",
|
|
118
|
+
"type": "string",
|
|
119
|
+
"maxLength": 20
|
|
120
|
+
},
|
|
121
|
+
"selectionScreen": {
|
|
122
|
+
"title": "Selection Screen",
|
|
123
|
+
"description": "The Dynpro selection screen.",
|
|
124
|
+
"type": "string",
|
|
125
|
+
"maxLength": 3
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"additionalProperties": false
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"additionalProperties": false,
|
|
132
|
+
"required": ["formatVersion", "header"]
|
|
133
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "This file is autogenerated, do not edit manually, see https://github.com/SAP/abap-file-formats for more information.",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/srvb/srvb-v1.json",
|
|
5
|
+
"title": "Service Binding Properties",
|
|
6
|
+
"description": "Service Binding properties",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"formatVersion": {
|
|
10
|
+
"title": "ABAP File Format Version",
|
|
11
|
+
"description": "The ABAP file format version",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"const": "1"
|
|
14
|
+
},
|
|
15
|
+
"header": {
|
|
16
|
+
"title": "Header",
|
|
17
|
+
"description": "Header",
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"description": {
|
|
21
|
+
"title": "Description",
|
|
22
|
+
"description": "Description of the ABAP object",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"maxLength": 60
|
|
25
|
+
},
|
|
26
|
+
"originalLanguage": {
|
|
27
|
+
"title": "Original Language",
|
|
28
|
+
"description": "Original language of the ABAP object",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 2
|
|
31
|
+
},
|
|
32
|
+
"abapLanguageVersion": {
|
|
33
|
+
"title": "ABAP Language Version",
|
|
34
|
+
"description": "ABAP language version",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": ["standard", "keyUser", "cloudDevelopment"],
|
|
37
|
+
"enumTitles": ["Standard", "ABAP for Key Users", "ABAP Cloud Development"],
|
|
38
|
+
"enumDescriptions": ["Standard", "ABAP for key user extensibility", "ABAP cloud development"],
|
|
39
|
+
"default": "standard"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["description", "originalLanguage"]
|
|
44
|
+
},
|
|
45
|
+
"bindingType": {
|
|
46
|
+
"title": "Binding Type",
|
|
47
|
+
"description": "Service Binding type",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"maxLength": 30
|
|
50
|
+
},
|
|
51
|
+
"bindingTypeCategory": {
|
|
52
|
+
"title": "Binding Category",
|
|
53
|
+
"description": "Service Binding category",
|
|
54
|
+
"type": "string",
|
|
55
|
+
"enum": ["ui", "webApi"],
|
|
56
|
+
"enumTitles": ["UI", "Web API"],
|
|
57
|
+
"enumDescriptions": ["UI", "Web API"]
|
|
58
|
+
},
|
|
59
|
+
"services": {
|
|
60
|
+
"title": "Services",
|
|
61
|
+
"description": "Services",
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": {
|
|
64
|
+
"title": "Service Properties",
|
|
65
|
+
"description": "Service properties",
|
|
66
|
+
"type": "object",
|
|
67
|
+
"properties": {
|
|
68
|
+
"name": {
|
|
69
|
+
"title": "Service Name",
|
|
70
|
+
"description": "Service name",
|
|
71
|
+
"type": "string",
|
|
72
|
+
"maxLength": 40
|
|
73
|
+
},
|
|
74
|
+
"versions": {
|
|
75
|
+
"title": "Service Versions",
|
|
76
|
+
"description": "Service versions",
|
|
77
|
+
"type": "array",
|
|
78
|
+
"items": {
|
|
79
|
+
"title": "Service Version",
|
|
80
|
+
"description": "Service version",
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"serviceVersion": {
|
|
84
|
+
"title": "Service Version",
|
|
85
|
+
"description": "Service version",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"maxLength": 24
|
|
88
|
+
},
|
|
89
|
+
"serviceBuildVersion": {
|
|
90
|
+
"title": "Service Build Version",
|
|
91
|
+
"description": "Service build version",
|
|
92
|
+
"type": "string",
|
|
93
|
+
"maxLength": 10,
|
|
94
|
+
"pattern": "^[0-9]+$"
|
|
95
|
+
},
|
|
96
|
+
"serviceDefinition": {
|
|
97
|
+
"title": "Service Definition",
|
|
98
|
+
"description": "Service definition",
|
|
99
|
+
"type": "string",
|
|
100
|
+
"maxLength": 30
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"additionalProperties": false,
|
|
104
|
+
"required": ["serviceVersion", "serviceDefinition"]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false,
|
|
109
|
+
"required": ["name", "versions"]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"additionalProperties": false,
|
|
114
|
+
"required": ["formatVersion", "header", "bindingType", "bindingTypeCategory", "services"]
|
|
115
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "This file is autogenerated, do not edit manually, see https://github.com/SAP/abap-file-formats for more information.",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/srvd/srvd-v1.json",
|
|
5
|
+
"title": "Service Definition Properties",
|
|
6
|
+
"description": "Properties of a Service Definition",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"formatVersion": {
|
|
10
|
+
"title": "ABAP File Format Version",
|
|
11
|
+
"description": "The ABAP file format version",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"const": "1"
|
|
14
|
+
},
|
|
15
|
+
"header": {
|
|
16
|
+
"title": "Header",
|
|
17
|
+
"description": "Header",
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"description": {
|
|
21
|
+
"title": "Description",
|
|
22
|
+
"description": "Description of the ABAP object",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"maxLength": 60
|
|
25
|
+
},
|
|
26
|
+
"originalLanguage": {
|
|
27
|
+
"title": "Original Language",
|
|
28
|
+
"description": "Original language of the ABAP object",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 2
|
|
31
|
+
},
|
|
32
|
+
"abapLanguageVersion": {
|
|
33
|
+
"title": "ABAP Language Version",
|
|
34
|
+
"description": "ABAP language version",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": ["standard", "keyUser", "cloudDevelopment"],
|
|
37
|
+
"enumTitles": ["Standard", "ABAP for Key Users", "ABAP Cloud Development"],
|
|
38
|
+
"enumDescriptions": ["Standard", "ABAP for key user extensibility", "ABAP cloud development"],
|
|
39
|
+
"default": "standard"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["description", "originalLanguage"]
|
|
44
|
+
},
|
|
45
|
+
"generalInformation": {
|
|
46
|
+
"title": "General Information",
|
|
47
|
+
"description": "General information",
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"sourceOrigin": {
|
|
51
|
+
"title": "Source Origin",
|
|
52
|
+
"description": "Source Origin states which tool was used to create the service definition",
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": [
|
|
55
|
+
"abapDevelopmentTools",
|
|
56
|
+
"customCdsViews",
|
|
57
|
+
"customAnalyticalQueries",
|
|
58
|
+
"customBusinessObject",
|
|
59
|
+
"customCodeList",
|
|
60
|
+
"customCdsViewsVariantConfg",
|
|
61
|
+
"customFields",
|
|
62
|
+
"extensionsForDataSources",
|
|
63
|
+
"customSearchModeler",
|
|
64
|
+
"serviceConsumptionModel"
|
|
65
|
+
],
|
|
66
|
+
"enumTitles": [
|
|
67
|
+
"ABAP Development Tools",
|
|
68
|
+
"Custom CDS Views",
|
|
69
|
+
"Custom Analytical Queries",
|
|
70
|
+
"Custom Business Object",
|
|
71
|
+
"Custom Code List",
|
|
72
|
+
"Custom CDS Views for Variant Configurations",
|
|
73
|
+
"Custom Fields",
|
|
74
|
+
"Extensions for Data Sources",
|
|
75
|
+
"Custom Search Modeler",
|
|
76
|
+
"Service Consumption Model"
|
|
77
|
+
],
|
|
78
|
+
"enumDescriptions": [
|
|
79
|
+
"ABAP Development Tools",
|
|
80
|
+
"Custom CDS views",
|
|
81
|
+
"Custom analytical queries",
|
|
82
|
+
"Custom business object",
|
|
83
|
+
"Custom code list",
|
|
84
|
+
"Custom CDS views for variant configurations",
|
|
85
|
+
"Custom fields",
|
|
86
|
+
"Extensions for data sources",
|
|
87
|
+
"Custom search modeler",
|
|
88
|
+
"Service Consumption Model"
|
|
89
|
+
],
|
|
90
|
+
"default": "abapDevelopmentTools"
|
|
91
|
+
},
|
|
92
|
+
"sourceType": {
|
|
93
|
+
"title": "Source Type",
|
|
94
|
+
"description": "Source type states which statement is in the service definition.",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"enum": ["definition", "extension"],
|
|
97
|
+
"enumTitles": ["Definition", "Extension"],
|
|
98
|
+
"enumDescriptions": ["Definition", "Extension"],
|
|
99
|
+
"default": "definition"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false,
|
|
103
|
+
"required": ["sourceOrigin", "sourceType"]
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"additionalProperties": false,
|
|
107
|
+
"required": ["formatVersion", "header", "generalInformation"]
|
|
108
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates only the header portion of AFF metadata for a given type.
|
|
3
|
+
* This is useful at create time when we only have description/language, not the full object metadata.
|
|
4
|
+
* Returns `{ valid: true }` if validation passes, no schema exists, or no header sub-schema is defined.
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateAffHeader(type: string, header: Record<string, unknown>): {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
errors?: string[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Resets the internal validator cache. Useful for testing.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resetValidatorCache(): void;
|
|
14
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/aff/validator.ts"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBvC;AAcD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
5
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
/** Map ARC-1 type codes to AFF type codes */
|
|
7
|
+
const TYPE_MAP = {
|
|
8
|
+
CLAS: 'clas',
|
|
9
|
+
DDLS: 'ddls',
|
|
10
|
+
BDEF: 'bdef',
|
|
11
|
+
SRVD: 'srvd',
|
|
12
|
+
SRVB: 'srvb',
|
|
13
|
+
INTF: 'intf',
|
|
14
|
+
PROG: 'prog',
|
|
15
|
+
};
|
|
16
|
+
let ajv = new Ajv2020({ strict: false, allErrors: true });
|
|
17
|
+
const validatorCache = new Map();
|
|
18
|
+
/**
|
|
19
|
+
* Returns the raw AFF JSON schema for a given ARC-1 type code, or null if not bundled.
|
|
20
|
+
*/
|
|
21
|
+
function getAffSchema(type) {
|
|
22
|
+
const affType = TYPE_MAP[type.toUpperCase()];
|
|
23
|
+
if (!affType)
|
|
24
|
+
return null;
|
|
25
|
+
try {
|
|
26
|
+
const schemaPath = join(__dirname, 'schemas', `${affType}-v1.json`);
|
|
27
|
+
const content = readFileSync(schemaPath, 'utf-8');
|
|
28
|
+
return JSON.parse(content);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validates only the header portion of AFF metadata for a given type.
|
|
36
|
+
* This is useful at create time when we only have description/language, not the full object metadata.
|
|
37
|
+
* Returns `{ valid: true }` if validation passes, no schema exists, or no header sub-schema is defined.
|
|
38
|
+
*/
|
|
39
|
+
export function validateAffHeader(type, header) {
|
|
40
|
+
const affType = TYPE_MAP[type.toUpperCase()];
|
|
41
|
+
if (!affType)
|
|
42
|
+
return { valid: true };
|
|
43
|
+
const cacheKey = `${affType}:header`;
|
|
44
|
+
let validate = validatorCache.get(cacheKey);
|
|
45
|
+
if (!validate) {
|
|
46
|
+
const schema = getAffSchema(type);
|
|
47
|
+
if (!schema)
|
|
48
|
+
return { valid: true };
|
|
49
|
+
const headerSchema = schema.properties?.header;
|
|
50
|
+
if (!headerSchema)
|
|
51
|
+
return { valid: true };
|
|
52
|
+
validate = ajv.compile(headerSchema);
|
|
53
|
+
validatorCache.set(cacheKey, validate);
|
|
54
|
+
}
|
|
55
|
+
const valid = validate(header);
|
|
56
|
+
if (valid)
|
|
57
|
+
return { valid: true };
|
|
58
|
+
const errors = (validate.errors ?? []).map((err) => {
|
|
59
|
+
// Prefix with /header to match full-schema paths
|
|
60
|
+
const path = `/header${err.instancePath || ''}`;
|
|
61
|
+
return formatError({ ...err, instancePath: path });
|
|
62
|
+
});
|
|
63
|
+
return { valid: false, errors };
|
|
64
|
+
}
|
|
65
|
+
function formatError(err) {
|
|
66
|
+
const path = err.instancePath || '/';
|
|
67
|
+
const msg = err.message ?? 'validation error';
|
|
68
|
+
if (err.keyword === 'enum' && err.params && 'allowedValues' in err.params) {
|
|
69
|
+
return `${path}: ${msg}. Allowed values: ${err.params.allowedValues.join(', ')}`;
|
|
70
|
+
}
|
|
71
|
+
if (err.keyword === 'additionalProperties' && err.params && 'additionalProperty' in err.params) {
|
|
72
|
+
return `${path}: unknown property "${err.params.additionalProperty}"`;
|
|
73
|
+
}
|
|
74
|
+
return `${path}: ${msg}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resets the internal validator cache. Useful for testing.
|
|
78
|
+
*/
|
|
79
|
+
export function resetValidatorCache() {
|
|
80
|
+
validatorCache.clear();
|
|
81
|
+
ajv = new Ajv2020({ strict: false, allErrors: true });
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/aff/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ export function expandHyperfocusedArgs(args) {
|
|
|
75
75
|
export function getHyperfocusedToolDefinition(config) {
|
|
76
76
|
const readActions = ['read', 'search', 'query', 'navigate', 'context', 'lint', 'diagnose'];
|
|
77
77
|
const writeActions = config.readOnly ? [] : ['write', 'activate', 'manage'];
|
|
78
|
-
const adminActions = config.enableTransports
|
|
78
|
+
const adminActions = config.enableTransports ? ['transport'] : [];
|
|
79
79
|
const allActions = [...readActions, ...writeActions, ...adminActions];
|
|
80
80
|
return {
|
|
81
81
|
name: 'SAP',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperfocused.js","sourceRoot":"","sources":["../../src/handlers/hyperfocused.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,oDAAoD;AACpD,MAAM,cAAc,GAA2B;IAC7C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,uCAAuC;AACvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAC5E,qCAAqC;AACrC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAMlE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,oBAAoB,MAAM,qBAAqB,YAAY,EAAE,EAAE,CAAC;IAClF,CAAC;IAED,gEAAgE;IAChE,MAAM,MAAM,GAAI,IAAI,CAAC,MAAkC,IAAI,EAAE,CAAC;IAC9D,MAAM,YAAY,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAE5D,iCAAiC;IACjC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAE3D,iEAAiE;IACjE,iFAAiF;IACjF,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1C,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAoB;IAChE,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"hyperfocused.js","sourceRoot":"","sources":["../../src/handlers/hyperfocused.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,22 @@ export declare const TOOL_SCOPES: Record<string, string>;
|
|
|
40
40
|
* - `sql` implies `data`
|
|
41
41
|
*/
|
|
42
42
|
export declare function hasRequiredScope(authInfo: AuthInfo, requiredScope: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Transliterate non-ASCII characters in search queries.
|
|
45
|
+
* SAP object names are ASCII-only, so umlauts and accented characters
|
|
46
|
+
* never appear in object names. This prevents wasted searches with
|
|
47
|
+
* German terms like "*Schätzung*" that silently return empty results.
|
|
48
|
+
*/
|
|
49
|
+
export declare function transliterateQuery(query: string): {
|
|
50
|
+
normalized: string;
|
|
51
|
+
changed: boolean;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Detect if a search query looks like a field/column name rather than
|
|
55
|
+
* an object name. Field names are short, uppercase, and typically don't
|
|
56
|
+
* start with Z/Y (which are custom object prefixes).
|
|
57
|
+
*/
|
|
58
|
+
export declare function looksLikeFieldName(query: string): boolean;
|
|
43
59
|
/**
|
|
44
60
|
* Handle an MCP tool call.
|
|
45
61
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/handlers/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/handlers/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA+BlD,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAc9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CASnF;AAYD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAe1F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASzD;AAkFD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,UAAU,CAAC,CAqLrB;AA0fD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyGnG;AAu9BD,0CAA0C;AAC1C,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAE9E;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,SAAS,CAEhE"}
|