@linkup-ai/abap-ai 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +384 -0
- package/dist/adt-client.js +364 -0
- package/dist/cli/activate.js +113 -0
- package/dist/cli/init.js +333 -0
- package/dist/cli/remove.js +80 -0
- package/dist/cli/status.js +229 -0
- package/dist/cli/systems.js +68 -0
- package/dist/cli.js +81 -0
- package/dist/index.js +1318 -0
- package/dist/knowledge/abap/abap-dictionary.md +199 -0
- package/dist/knowledge/abap/abap-sql.md +296 -0
- package/dist/knowledge/abap/amdp.md +273 -0
- package/dist/knowledge/abap/clean-code.md +293 -0
- package/dist/knowledge/abap/cloud-background-processing.md +250 -0
- package/dist/knowledge/abap/cloud-communication.md +265 -0
- package/dist/knowledge/abap/cloud-development.md +176 -0
- package/dist/knowledge/abap/cloud-extensibility.md +252 -0
- package/dist/knowledge/abap/cloud-released-apis.md +261 -0
- package/dist/knowledge/abap/constructor-expressions.md +289 -0
- package/dist/knowledge/abap/enhancements.md +232 -0
- package/dist/knowledge/abap/exceptions.md +271 -0
- package/dist/knowledge/abap/internal-tables.md +205 -0
- package/dist/knowledge/abap/object-orientation.md +298 -0
- package/dist/knowledge/abap/performance.md +216 -0
- package/dist/knowledge/abap/rap-abstract-entities.md +206 -0
- package/dist/knowledge/abap/rap-business-events.md +216 -0
- package/dist/knowledge/abap/rap-draft.md +191 -0
- package/dist/knowledge/abap/rap-eml.md +453 -0
- package/dist/knowledge/abap/rap-end-to-end.md +486 -0
- package/dist/knowledge/abap/rap-feature-control.md +185 -0
- package/dist/knowledge/abap/rap-numbering.md +280 -0
- package/dist/knowledge/abap/rap-service-exposure.md +163 -0
- package/dist/knowledge/abap/rap-unmanaged.md +468 -0
- package/dist/knowledge/abap/string-processing.md +180 -0
- package/dist/knowledge/abap/unit-testing.md +303 -0
- package/dist/knowledge/abap-cds/access-control.md +241 -0
- package/dist/knowledge/abap-cds/annotations.md +331 -0
- package/dist/knowledge/abap-cds/associations.md +254 -0
- package/dist/knowledge/abap-cds/expressions.md +230 -0
- package/dist/knowledge/abap-cds/functions.md +245 -0
- package/dist/knowledge/abap-cds/metadata-extensions.md +294 -0
- package/dist/knowledge/cap/authentication.md +278 -0
- package/dist/knowledge/cap/cdl-syntax.md +247 -0
- package/dist/knowledge/cap/cql-queries.md +266 -0
- package/dist/knowledge/cap/deployment.md +343 -0
- package/dist/knowledge/cap/event-handlers.md +287 -0
- package/dist/knowledge/cap/fiori-integration.md +303 -0
- package/dist/knowledge/cap/service-definitions.md +287 -0
- package/dist/knowledge/fiori/annotations.md +347 -0
- package/dist/knowledge/fiori/deployment.md +340 -0
- package/dist/knowledge/fiori/fiori-elements.md +332 -0
- package/dist/knowledge/fiori/fiori-side-effects.md +107 -0
- package/dist/knowledge/fiori/fiori-valuelist.md +144 -0
- package/dist/knowledge/fiori/ui5-controllers.md +358 -0
- package/dist/knowledge/fiori/ui5-data-binding.md +311 -0
- package/dist/knowledge/fiori/ui5-fragments-dialogs.md +330 -0
- package/dist/knowledge/fiori/ui5-manifest.md +411 -0
- package/dist/knowledge/fiori/ui5-routing.md +303 -0
- package/dist/knowledge/fiori/ui5-xml-views.md +294 -0
- package/dist/logger.js +114 -0
- package/dist/system-profile.js +207 -0
- package/dist/tools/abap-doc.js +72 -0
- package/dist/tools/abapgit.js +161 -0
- package/dist/tools/activate.js +68 -0
- package/dist/tools/atc-check.js +117 -0
- package/dist/tools/auth-object.js +56 -0
- package/dist/tools/breakpoints.js +76 -0
- package/dist/tools/call-hierarchy.js +84 -0
- package/dist/tools/cds-annotations.js +98 -0
- package/dist/tools/cds-dependencies.js +65 -0
- package/dist/tools/check.js +47 -0
- package/dist/tools/code-completion.js +70 -0
- package/dist/tools/code-coverage.js +111 -0
- package/dist/tools/create-amdp.js +111 -0
- package/dist/tools/create-dcl.js +81 -0
- package/dist/tools/create-transport.js +38 -0
- package/dist/tools/create.js +285 -0
- package/dist/tools/data-preview.js +37 -0
- package/dist/tools/delete.js +45 -0
- package/dist/tools/deploy-bsp.js +298 -0
- package/dist/tools/discovery.js +59 -0
- package/dist/tools/element-info.js +93 -0
- package/dist/tools/enhancements.js +186 -0
- package/dist/tools/extract-method.js +44 -0
- package/dist/tools/function-group.js +59 -0
- package/dist/tools/knowledge.js +275 -0
- package/dist/tools/lock-object.js +75 -0
- package/dist/tools/message-class.js +67 -0
- package/dist/tools/navigate.js +80 -0
- package/dist/tools/number-range.js +57 -0
- package/dist/tools/object-documentation.js +43 -0
- package/dist/tools/object-structure.js +78 -0
- package/dist/tools/object-versions.js +57 -0
- package/dist/tools/package-contents.js +60 -0
- package/dist/tools/pretty-printer.js +35 -0
- package/dist/tools/publish-binding.js +49 -0
- package/dist/tools/quick-fix.js +69 -0
- package/dist/tools/read.js +167 -0
- package/dist/tools/refactor-rename.js +60 -0
- package/dist/tools/release-transport.js +24 -0
- package/dist/tools/released-apis.js +51 -0
- package/dist/tools/repository-tree.js +90 -0
- package/dist/tools/scaffold-rap.js +642 -0
- package/dist/tools/search.js +73 -0
- package/dist/tools/shared/data-format.js +101 -0
- package/dist/tools/sql-console.js +17 -0
- package/dist/tools/system-info.js +270 -0
- package/dist/tools/traces.js +66 -0
- package/dist/tools/transport-contents.js +83 -0
- package/dist/tools/transports.js +67 -0
- package/dist/tools/unit-test.js +135 -0
- package/dist/tools/where-used.js +59 -0
- package/dist/tools/write.js +101 -0
- package/package.json +49 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.abapRepositoryTree = abapRepositoryTree;
|
|
4
|
+
const adt_client_js_1 = require("../adt-client.js");
|
|
5
|
+
async function abapRepositoryTree(input) {
|
|
6
|
+
const { parent_node, max_nodes = 50 } = input;
|
|
7
|
+
let xml;
|
|
8
|
+
if (!parent_node) {
|
|
9
|
+
// Lista nós raiz (software components)
|
|
10
|
+
const { data, status } = await (0, adt_client_js_1.adtPostXml)("/repository/nodestructure", `<?xml version="1.0" encoding="UTF-8"?>
|
|
11
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml">
|
|
12
|
+
<asx:values>
|
|
13
|
+
<DATA>
|
|
14
|
+
<TV_NODEKEY/>
|
|
15
|
+
</DATA>
|
|
16
|
+
</asx:values>
|
|
17
|
+
</asx:abap>`, { parent_type: "DEVC/K", withShortDescriptions: "true" });
|
|
18
|
+
if (status >= 400) {
|
|
19
|
+
// Fallback: GET diretamente
|
|
20
|
+
xml = await (0, adt_client_js_1.adtGetXml)("/repository/nodestructure");
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
xml = data;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const { data, status } = await (0, adt_client_js_1.adtPostXml)("/repository/nodestructure", `<?xml version="1.0" encoding="UTF-8"?>
|
|
28
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml">
|
|
29
|
+
<asx:values>
|
|
30
|
+
<DATA>
|
|
31
|
+
<TV_NODEKEY>${parent_node}</TV_NODEKEY>
|
|
32
|
+
</DATA>
|
|
33
|
+
</asx:values>
|
|
34
|
+
</asx:abap>`, { parent_type: "DEVC/K", withShortDescriptions: "true" });
|
|
35
|
+
if (status >= 400) {
|
|
36
|
+
throw new Error(`Repository tree falhou (HTTP ${status}): ${data.slice(0, 500)}`);
|
|
37
|
+
}
|
|
38
|
+
xml = data;
|
|
39
|
+
}
|
|
40
|
+
// Parse nodes
|
|
41
|
+
const nodes = [];
|
|
42
|
+
const nodeRegex = /<(?:tree:)?(?:node|treeNode)[^>]*>/gi;
|
|
43
|
+
let match;
|
|
44
|
+
while ((match = nodeRegex.exec(xml)) !== null) {
|
|
45
|
+
const el = match[0];
|
|
46
|
+
const keyMatch = el.match(/(?:tree:)?(?:nodeKey|key)\s*=\s*"([^"]*)"/i);
|
|
47
|
+
const nameMatch = el.match(/(?:adtcore:)?(?:name|nodeName)\s*=\s*"([^"]*)"/i);
|
|
48
|
+
const typeMatch = el.match(/(?:adtcore:)?(?:type|objectType)\s*=\s*"([^"]*)"/i);
|
|
49
|
+
const descMatch = el.match(/(?:adtcore:)?description\s*=\s*"([^"]*)"/i);
|
|
50
|
+
if (nameMatch || keyMatch) {
|
|
51
|
+
nodes.push({
|
|
52
|
+
key: keyMatch?.[1] ?? "",
|
|
53
|
+
name: nameMatch?.[1] ?? keyMatch?.[1] ?? "",
|
|
54
|
+
type: typeMatch?.[1] ?? "",
|
|
55
|
+
description: descMatch?.[1] ?? "",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Fallback: objectReference elements
|
|
60
|
+
if (nodes.length === 0) {
|
|
61
|
+
const refRegex = /<(?:adtcore:)?objectReference[^>]*>/gi;
|
|
62
|
+
while ((match = refRegex.exec(xml)) !== null) {
|
|
63
|
+
const el = match[0];
|
|
64
|
+
const nameMatch = el.match(/adtcore:name\s*=\s*"([^"]*)"/i);
|
|
65
|
+
const typeMatch = el.match(/adtcore:type\s*=\s*"([^"]*)"/i);
|
|
66
|
+
const descMatch = el.match(/adtcore:description\s*=\s*"([^"]*)"/i);
|
|
67
|
+
if (nameMatch) {
|
|
68
|
+
nodes.push({
|
|
69
|
+
key: nameMatch[1],
|
|
70
|
+
name: nameMatch[1],
|
|
71
|
+
type: typeMatch?.[1] ?? "",
|
|
72
|
+
description: descMatch?.[1] ?? "",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const displayed = nodes.slice(0, max_nodes);
|
|
78
|
+
const lines = [];
|
|
79
|
+
lines.push(`Repository Tree${parent_node ? ` (${parent_node})` : " (raiz)"} — ${displayed.length} nós`);
|
|
80
|
+
lines.push("═".repeat(60));
|
|
81
|
+
for (const n of displayed) {
|
|
82
|
+
const type = n.type ? ` [${n.type}]` : "";
|
|
83
|
+
const desc = n.description ? ` — ${n.description}` : "";
|
|
84
|
+
lines.push(` ${n.name}${type}${desc}`);
|
|
85
|
+
}
|
|
86
|
+
if (nodes.length > max_nodes) {
|
|
87
|
+
lines.push(`\n... +${nodes.length - max_nodes} nós omitidos. Use max_nodes para ver mais.`);
|
|
88
|
+
}
|
|
89
|
+
return lines.join("\n");
|
|
90
|
+
}
|