@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.
Files changed (114) hide show
  1. package/README.md +384 -0
  2. package/dist/adt-client.js +364 -0
  3. package/dist/cli/activate.js +113 -0
  4. package/dist/cli/init.js +333 -0
  5. package/dist/cli/remove.js +80 -0
  6. package/dist/cli/status.js +229 -0
  7. package/dist/cli/systems.js +68 -0
  8. package/dist/cli.js +81 -0
  9. package/dist/index.js +1318 -0
  10. package/dist/knowledge/abap/abap-dictionary.md +199 -0
  11. package/dist/knowledge/abap/abap-sql.md +296 -0
  12. package/dist/knowledge/abap/amdp.md +273 -0
  13. package/dist/knowledge/abap/clean-code.md +293 -0
  14. package/dist/knowledge/abap/cloud-background-processing.md +250 -0
  15. package/dist/knowledge/abap/cloud-communication.md +265 -0
  16. package/dist/knowledge/abap/cloud-development.md +176 -0
  17. package/dist/knowledge/abap/cloud-extensibility.md +252 -0
  18. package/dist/knowledge/abap/cloud-released-apis.md +261 -0
  19. package/dist/knowledge/abap/constructor-expressions.md +289 -0
  20. package/dist/knowledge/abap/enhancements.md +232 -0
  21. package/dist/knowledge/abap/exceptions.md +271 -0
  22. package/dist/knowledge/abap/internal-tables.md +205 -0
  23. package/dist/knowledge/abap/object-orientation.md +298 -0
  24. package/dist/knowledge/abap/performance.md +216 -0
  25. package/dist/knowledge/abap/rap-abstract-entities.md +206 -0
  26. package/dist/knowledge/abap/rap-business-events.md +216 -0
  27. package/dist/knowledge/abap/rap-draft.md +191 -0
  28. package/dist/knowledge/abap/rap-eml.md +453 -0
  29. package/dist/knowledge/abap/rap-end-to-end.md +486 -0
  30. package/dist/knowledge/abap/rap-feature-control.md +185 -0
  31. package/dist/knowledge/abap/rap-numbering.md +280 -0
  32. package/dist/knowledge/abap/rap-service-exposure.md +163 -0
  33. package/dist/knowledge/abap/rap-unmanaged.md +468 -0
  34. package/dist/knowledge/abap/string-processing.md +180 -0
  35. package/dist/knowledge/abap/unit-testing.md +303 -0
  36. package/dist/knowledge/abap-cds/access-control.md +241 -0
  37. package/dist/knowledge/abap-cds/annotations.md +331 -0
  38. package/dist/knowledge/abap-cds/associations.md +254 -0
  39. package/dist/knowledge/abap-cds/expressions.md +230 -0
  40. package/dist/knowledge/abap-cds/functions.md +245 -0
  41. package/dist/knowledge/abap-cds/metadata-extensions.md +294 -0
  42. package/dist/knowledge/cap/authentication.md +278 -0
  43. package/dist/knowledge/cap/cdl-syntax.md +247 -0
  44. package/dist/knowledge/cap/cql-queries.md +266 -0
  45. package/dist/knowledge/cap/deployment.md +343 -0
  46. package/dist/knowledge/cap/event-handlers.md +287 -0
  47. package/dist/knowledge/cap/fiori-integration.md +303 -0
  48. package/dist/knowledge/cap/service-definitions.md +287 -0
  49. package/dist/knowledge/fiori/annotations.md +347 -0
  50. package/dist/knowledge/fiori/deployment.md +340 -0
  51. package/dist/knowledge/fiori/fiori-elements.md +332 -0
  52. package/dist/knowledge/fiori/fiori-side-effects.md +107 -0
  53. package/dist/knowledge/fiori/fiori-valuelist.md +144 -0
  54. package/dist/knowledge/fiori/ui5-controllers.md +358 -0
  55. package/dist/knowledge/fiori/ui5-data-binding.md +311 -0
  56. package/dist/knowledge/fiori/ui5-fragments-dialogs.md +330 -0
  57. package/dist/knowledge/fiori/ui5-manifest.md +411 -0
  58. package/dist/knowledge/fiori/ui5-routing.md +303 -0
  59. package/dist/knowledge/fiori/ui5-xml-views.md +294 -0
  60. package/dist/logger.js +114 -0
  61. package/dist/system-profile.js +207 -0
  62. package/dist/tools/abap-doc.js +72 -0
  63. package/dist/tools/abapgit.js +161 -0
  64. package/dist/tools/activate.js +68 -0
  65. package/dist/tools/atc-check.js +117 -0
  66. package/dist/tools/auth-object.js +56 -0
  67. package/dist/tools/breakpoints.js +76 -0
  68. package/dist/tools/call-hierarchy.js +84 -0
  69. package/dist/tools/cds-annotations.js +98 -0
  70. package/dist/tools/cds-dependencies.js +65 -0
  71. package/dist/tools/check.js +47 -0
  72. package/dist/tools/code-completion.js +70 -0
  73. package/dist/tools/code-coverage.js +111 -0
  74. package/dist/tools/create-amdp.js +111 -0
  75. package/dist/tools/create-dcl.js +81 -0
  76. package/dist/tools/create-transport.js +38 -0
  77. package/dist/tools/create.js +285 -0
  78. package/dist/tools/data-preview.js +37 -0
  79. package/dist/tools/delete.js +45 -0
  80. package/dist/tools/deploy-bsp.js +298 -0
  81. package/dist/tools/discovery.js +59 -0
  82. package/dist/tools/element-info.js +93 -0
  83. package/dist/tools/enhancements.js +186 -0
  84. package/dist/tools/extract-method.js +44 -0
  85. package/dist/tools/function-group.js +59 -0
  86. package/dist/tools/knowledge.js +275 -0
  87. package/dist/tools/lock-object.js +75 -0
  88. package/dist/tools/message-class.js +67 -0
  89. package/dist/tools/navigate.js +80 -0
  90. package/dist/tools/number-range.js +57 -0
  91. package/dist/tools/object-documentation.js +43 -0
  92. package/dist/tools/object-structure.js +78 -0
  93. package/dist/tools/object-versions.js +57 -0
  94. package/dist/tools/package-contents.js +60 -0
  95. package/dist/tools/pretty-printer.js +35 -0
  96. package/dist/tools/publish-binding.js +49 -0
  97. package/dist/tools/quick-fix.js +69 -0
  98. package/dist/tools/read.js +167 -0
  99. package/dist/tools/refactor-rename.js +60 -0
  100. package/dist/tools/release-transport.js +24 -0
  101. package/dist/tools/released-apis.js +51 -0
  102. package/dist/tools/repository-tree.js +90 -0
  103. package/dist/tools/scaffold-rap.js +642 -0
  104. package/dist/tools/search.js +73 -0
  105. package/dist/tools/shared/data-format.js +101 -0
  106. package/dist/tools/sql-console.js +17 -0
  107. package/dist/tools/system-info.js +270 -0
  108. package/dist/tools/traces.js +66 -0
  109. package/dist/tools/transport-contents.js +83 -0
  110. package/dist/tools/transports.js +67 -0
  111. package/dist/tools/unit-test.js +135 -0
  112. package/dist/tools/where-used.js +59 -0
  113. package/dist/tools/write.js +101 -0
  114. 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
+ }