arc-1 0.3.0 → 0.4.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 +77 -199
- package/dist/adt/btp.d.ts +2 -2
- package/dist/adt/btp.d.ts.map +1 -1
- package/dist/adt/btp.js +1 -1
- package/dist/adt/btp.js.map +1 -1
- package/dist/adt/client.d.ts +13 -1
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +39 -1
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts +41 -0
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +99 -27
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/cookies.d.ts.map +1 -1
- package/dist/adt/cookies.js.map +1 -1
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/devtools.d.ts +14 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +28 -3
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts +101 -0
- package/dist/adt/diagnostics.d.ts.map +1 -0
- package/dist/adt/diagnostics.js +349 -0
- package/dist/adt/diagnostics.js.map +1 -0
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/http.d.ts +26 -7
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +140 -86
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/oauth.d.ts.map +1 -1
- package/dist/adt/oauth.js.map +1 -1
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/safety.js.map +1 -1
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +139 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/types.js.map +1 -1
- package/dist/adt/xml-parser.d.ts +37 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +147 -0
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/cache/cache.d.ts +47 -4
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js +16 -5
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +82 -0
- package/dist/cache/caching-layer.d.ts.map +1 -0
- package/dist/cache/caching-layer.js +134 -0
- package/dist/cache/caching-layer.js.map +1 -0
- package/dist/cache/memory.d.ts +14 -2
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +72 -5
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +10 -1
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +90 -2
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cache/warmup.d.ts +41 -0
- package/dist/cache/warmup.d.ts.map +1 -0
- package/dist/cache/warmup.js +286 -0
- package/dist/cache/warmup.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/context/cds-deps.d.ts +35 -0
- package/dist/context/cds-deps.d.ts.map +1 -0
- package/dist/context/cds-deps.js +201 -0
- package/dist/context/cds-deps.js.map +1 -0
- package/dist/context/compressor.d.ts +20 -1
- package/dist/context/compressor.d.ts.map +1 -1
- package/dist/context/compressor.js +178 -17
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/contract.d.ts.map +1 -1
- package/dist/context/contract.js.map +1 -1
- package/dist/context/deps.d.ts.map +1 -1
- package/dist/context/deps.js.map +1 -1
- package/dist/context/method-surgery.d.ts +91 -0
- package/dist/context/method-surgery.d.ts.map +1 -0
- package/dist/context/method-surgery.js +441 -0
- package/dist/context/method-surgery.js.map +1 -0
- package/dist/context/types.d.ts +7 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js.map +1 -1
- package/dist/handlers/hyperfocused.d.ts +35 -0
- package/dist/handlers/hyperfocused.d.ts.map +1 -0
- package/dist/handlers/hyperfocused.js +104 -0
- package/dist/handlers/hyperfocused.js.map +1 -0
- package/dist/handlers/intent.d.ts +2 -1
- package/dist/handlers/intent.d.ts.map +1 -1
- package/dist/handlers/intent.js +440 -43
- package/dist/handlers/intent.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +130 -39
- package/dist/handlers/tools.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lint/config-builder.d.ts +60 -0
- package/dist/lint/config-builder.d.ts.map +1 -0
- package/dist/lint/config-builder.js +187 -0
- package/dist/lint/config-builder.js.map +1 -0
- package/dist/lint/lint.d.ts +43 -0
- package/dist/lint/lint.d.ts.map +1 -1
- package/dist/lint/lint.js +77 -2
- package/dist/lint/lint.js.map +1 -1
- package/dist/lint/presets/cloud.d.ts +16 -0
- package/dist/lint/presets/cloud.d.ts.map +1 -0
- package/dist/lint/presets/cloud.js +111 -0
- package/dist/lint/presets/cloud.js.map +1 -0
- package/dist/lint/presets/onprem.d.ts +17 -0
- package/dist/lint/presets/onprem.d.ts.map +1 -0
- package/dist/lint/presets/onprem.js +82 -0
- package/dist/lint/presets/onprem.js.map +1 -0
- package/dist/server/audit.d.ts +1 -0
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +12 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js.map +1 -1
- package/dist/server/elicit.d.ts.map +1 -1
- package/dist/server/elicit.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +4 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js.map +1 -1
- package/dist/server/server.d.ts +3 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +90 -5
- package/dist/server/server.js.map +1 -1
- package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
- package/dist/server/sinks/btp-auditlog.js.map +1 -1
- package/dist/server/sinks/file.d.ts.map +1 -1
- package/dist/server/sinks/file.js.map +1 -1
- package/dist/server/sinks/stderr.d.ts.map +1 -1
- package/dist/server/sinks/stderr.js.map +1 -1
- package/dist/server/sinks/types.d.ts.map +1 -1
- package/dist/server/sinks/types.js.map +1 -1
- package/dist/server/types.d.ts +14 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +6 -0
- package/dist/server/types.js.map +1 -1
- package/dist/server/xsuaa.d.ts.map +1 -1
- package/dist/server/xsuaa.js.map +1 -1
- package/package.json +13 -6
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime diagnostics for SAP ADT.
|
|
3
|
+
*
|
|
4
|
+
* - Short dumps (ST22): list and read ABAP runtime errors
|
|
5
|
+
* - ABAP traces: list and analyze profiler trace files
|
|
6
|
+
*
|
|
7
|
+
* All operations are read-only (GET requests).
|
|
8
|
+
* Follows the same pure-function pattern as devtools.ts.
|
|
9
|
+
*/
|
|
10
|
+
import { checkOperation, OperationType } from './safety.js';
|
|
11
|
+
/**
|
|
12
|
+
* List ABAP short dumps (ST22 equivalent).
|
|
13
|
+
*
|
|
14
|
+
* Endpoint: GET /sap/bc/adt/runtime/dumps
|
|
15
|
+
* Returns an Atom feed with dump entries.
|
|
16
|
+
*/
|
|
17
|
+
export async function listDumps(http, safety, options) {
|
|
18
|
+
checkOperation(safety, OperationType.Read, 'ListDumps');
|
|
19
|
+
const params = [];
|
|
20
|
+
if (options?.maxResults) {
|
|
21
|
+
params.push(`$top=${options.maxResults}`);
|
|
22
|
+
}
|
|
23
|
+
if (options?.user) {
|
|
24
|
+
params.push(`$query=${encodeURIComponent(`and(equals(user,${options.user}))`)}`);
|
|
25
|
+
}
|
|
26
|
+
const queryString = params.length > 0 ? `?${params.join('&')}` : '';
|
|
27
|
+
const resp = await http.get(`/sap/bc/adt/runtime/dumps${queryString}`, {
|
|
28
|
+
Accept: 'application/atom+xml;type=feed',
|
|
29
|
+
});
|
|
30
|
+
return parseDumpList(resp.body);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get full dump detail including formatted text.
|
|
34
|
+
*
|
|
35
|
+
* Makes two requests:
|
|
36
|
+
* 1. XML metadata (chapters, links, attributes)
|
|
37
|
+
* 2. Formatted plain text (full dump content)
|
|
38
|
+
*
|
|
39
|
+
* The dump ID is the URL-encoded path segment from the listing.
|
|
40
|
+
*/
|
|
41
|
+
export async function getDump(http, safety, dumpId) {
|
|
42
|
+
checkOperation(safety, OperationType.Read, 'GetDump');
|
|
43
|
+
// Fetch XML metadata and formatted text in parallel
|
|
44
|
+
const [xmlResp, textResp] = await Promise.all([
|
|
45
|
+
http.get(`/sap/bc/adt/runtime/dump/${dumpId}`, {
|
|
46
|
+
Accept: 'application/vnd.sap.adt.runtime.dump.v1+xml',
|
|
47
|
+
}),
|
|
48
|
+
http.get(`/sap/bc/adt/runtime/dump/${dumpId}/formatted`, {
|
|
49
|
+
Accept: 'text/plain',
|
|
50
|
+
}),
|
|
51
|
+
]);
|
|
52
|
+
return parseDumpDetail(xmlResp.body, textResp.body, dumpId);
|
|
53
|
+
}
|
|
54
|
+
// ─── ABAP Traces ────────────────────────────────────────────────────
|
|
55
|
+
/**
|
|
56
|
+
* List ABAP profiler trace files.
|
|
57
|
+
*
|
|
58
|
+
* Endpoint: GET /sap/bc/adt/runtime/traces/abaptraces
|
|
59
|
+
* Returns an Atom feed with trace entries.
|
|
60
|
+
*/
|
|
61
|
+
export async function listTraces(http, safety) {
|
|
62
|
+
checkOperation(safety, OperationType.Read, 'ListTraces');
|
|
63
|
+
const resp = await http.get('/sap/bc/adt/runtime/traces/abaptraces', {
|
|
64
|
+
Accept: 'application/atom+xml;type=feed',
|
|
65
|
+
});
|
|
66
|
+
return parseTraceList(resp.body);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get trace hitlist (execution hot spots).
|
|
70
|
+
*
|
|
71
|
+
* Returns the most expensive procedures sorted by gross time.
|
|
72
|
+
*/
|
|
73
|
+
export async function getTraceHitlist(http, safety, traceId) {
|
|
74
|
+
checkOperation(safety, OperationType.Read, 'GetTraceHitlist');
|
|
75
|
+
const resp = await http.get(`/sap/bc/adt/runtime/traces/abaptraces/${traceId}/hitlist`, {
|
|
76
|
+
Accept: 'application/xml',
|
|
77
|
+
});
|
|
78
|
+
return parseTraceHitlist(resp.body);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get trace call tree (statements).
|
|
82
|
+
*
|
|
83
|
+
* Returns the hierarchical call tree with timing data.
|
|
84
|
+
*/
|
|
85
|
+
export async function getTraceStatements(http, safety, traceId) {
|
|
86
|
+
checkOperation(safety, OperationType.Read, 'GetTraceStatements');
|
|
87
|
+
const resp = await http.get(`/sap/bc/adt/runtime/traces/abaptraces/${traceId}/statements`, {
|
|
88
|
+
Accept: 'application/xml',
|
|
89
|
+
});
|
|
90
|
+
return parseTraceStatements(resp.body);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get trace database accesses.
|
|
94
|
+
*
|
|
95
|
+
* Returns table access statistics (which tables, how many times, buffered vs not).
|
|
96
|
+
*/
|
|
97
|
+
export async function getTraceDbAccesses(http, safety, traceId) {
|
|
98
|
+
checkOperation(safety, OperationType.Read, 'GetTraceDbAccesses');
|
|
99
|
+
const resp = await http.get(`/sap/bc/adt/runtime/traces/abaptraces/${traceId}/dbAccesses`, {
|
|
100
|
+
Accept: 'application/xml',
|
|
101
|
+
});
|
|
102
|
+
return parseTraceDbAccesses(resp.body);
|
|
103
|
+
}
|
|
104
|
+
// ─── Parsers ────────────────────────────────────────────────────────
|
|
105
|
+
/**
|
|
106
|
+
* Parse dump listing Atom feed.
|
|
107
|
+
*
|
|
108
|
+
* Each atom:entry contains:
|
|
109
|
+
* - atom:author/atom:name → user
|
|
110
|
+
* - atom:category term="..." label="ABAP runtime error" → error type
|
|
111
|
+
* - atom:category term="..." label="Terminated ABAP program" → program
|
|
112
|
+
* - atom:published → timestamp
|
|
113
|
+
* - atom:link rel="self" href → contains dump ID path
|
|
114
|
+
*/
|
|
115
|
+
export function parseDumpList(xml) {
|
|
116
|
+
const entries = [];
|
|
117
|
+
const entryRegex = /<atom:entry[\s\S]*?<\/atom:entry>/g;
|
|
118
|
+
let match;
|
|
119
|
+
while ((match = entryRegex.exec(xml)) !== null) {
|
|
120
|
+
const entry = match[0];
|
|
121
|
+
const user = extractTag(entry, 'atom:name') || '';
|
|
122
|
+
const error = extractAttrValue(entry, 'term', 'ABAP runtime error');
|
|
123
|
+
const program = extractAttrValue(entry, 'term', 'Terminated ABAP program');
|
|
124
|
+
const timestamp = extractTag(entry, 'atom:published') || '';
|
|
125
|
+
// Extract dump ID from the self link (rel="self" type="text/plain")
|
|
126
|
+
const selfMatch = entry.match(/href="(?:adt:\/\/[^/]+)?\/sap\/bc\/adt\/runtime\/dump\/([^"]*)"[^>]*rel="self"/);
|
|
127
|
+
const id = selfMatch?.[1] || '';
|
|
128
|
+
if (id) {
|
|
129
|
+
entries.push({ id, timestamp, user, error, program });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return entries;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Parse dump detail XML metadata + formatted text.
|
|
136
|
+
*
|
|
137
|
+
* The XML response has attributes on the root dump:dump element:
|
|
138
|
+
* - error, author, exception, terminatedProgram, datetime
|
|
139
|
+
*
|
|
140
|
+
* And dump:chapter elements with name, title, category attributes.
|
|
141
|
+
*/
|
|
142
|
+
export function parseDumpDetail(xml, formattedText, dumpId) {
|
|
143
|
+
// Extract root attributes
|
|
144
|
+
const error = extractAttrSimple(xml, 'error') || '';
|
|
145
|
+
const exception = extractAttrSimple(xml, 'exception') || '';
|
|
146
|
+
const program = extractAttrSimple(xml, 'terminatedProgram') || '';
|
|
147
|
+
const user = extractAttrSimple(xml, 'author') || '';
|
|
148
|
+
const timestamp = extractAttrSimple(xml, 'datetime') || '';
|
|
149
|
+
// Extract termination source URI
|
|
150
|
+
const termMatch = xml.match(/relation="http:\/\/www\.sap\.com\/adt\/relations\/runtime\/dump\/termination"[^>]*uri="([^"]*)"/);
|
|
151
|
+
const terminationUri = termMatch?.[1];
|
|
152
|
+
// Extract chapters
|
|
153
|
+
const chapters = [];
|
|
154
|
+
const chapterRegex = /<dump:chapter[^>]*name="([^"]*)"[^>]*title="([^"]*)"[^>]*category="([^"]*)"/g;
|
|
155
|
+
let chMatch;
|
|
156
|
+
while ((chMatch = chapterRegex.exec(xml)) !== null) {
|
|
157
|
+
chapters.push({
|
|
158
|
+
name: chMatch[1],
|
|
159
|
+
title: chMatch[2],
|
|
160
|
+
category: chMatch[3],
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
id: dumpId,
|
|
165
|
+
error,
|
|
166
|
+
exception,
|
|
167
|
+
program,
|
|
168
|
+
user,
|
|
169
|
+
timestamp,
|
|
170
|
+
chapters,
|
|
171
|
+
formattedText,
|
|
172
|
+
terminationUri,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Parse trace listing Atom feed.
|
|
177
|
+
*
|
|
178
|
+
* Trace entries may contain extended attributes in a trc: namespace.
|
|
179
|
+
*/
|
|
180
|
+
export function parseTraceList(xml) {
|
|
181
|
+
const entries = [];
|
|
182
|
+
const entryRegex = /<atom:entry[\s\S]*?<\/atom:entry>/g;
|
|
183
|
+
let match;
|
|
184
|
+
while ((match = entryRegex.exec(xml)) !== null) {
|
|
185
|
+
const entry = match[0];
|
|
186
|
+
const title = extractTag(entry, 'atom:title') || '';
|
|
187
|
+
const timestamp = extractTag(entry, 'atom:updated') || extractTag(entry, 'atom:published') || '';
|
|
188
|
+
// Extract trace ID from self link
|
|
189
|
+
const selfMatch = entry.match(/href="(?:adt:\/\/[^/]+)?\/sap\/bc\/adt\/runtime\/traces\/abaptraces\/([^"]*)"[^>]*rel="self"/);
|
|
190
|
+
const id = selfMatch?.[1] || '';
|
|
191
|
+
// Extended trace data (namespace-prefixed attributes)
|
|
192
|
+
const state = extractAttrSimple(entry, 'state');
|
|
193
|
+
const objectName = extractAttrSimple(entry, 'objectName');
|
|
194
|
+
const runtimeStr = extractAttrSimple(entry, 'runtime');
|
|
195
|
+
if (id || title) {
|
|
196
|
+
entries.push({
|
|
197
|
+
id,
|
|
198
|
+
title,
|
|
199
|
+
timestamp,
|
|
200
|
+
state: state || undefined,
|
|
201
|
+
objectName: objectName || undefined,
|
|
202
|
+
runtime: runtimeStr ? Number(runtimeStr) : undefined,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return entries;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Parse trace hitlist XML.
|
|
210
|
+
*
|
|
211
|
+
* Hitlist entries contain procedure names and timing data.
|
|
212
|
+
*/
|
|
213
|
+
export function parseTraceHitlist(xml) {
|
|
214
|
+
const entries = [];
|
|
215
|
+
const entryRegex = /<hitListEntry[^>]*callingProgram="([^"]*)"[^>]*calledProgram="([^"]*)"[^>]*hitCount="(\d+)"[^>]*grossTime="(\d+)"[^>]*(?:traceEventNetTime|netTime)="(\d+)"/g;
|
|
216
|
+
let match;
|
|
217
|
+
while ((match = entryRegex.exec(xml)) !== null) {
|
|
218
|
+
entries.push({
|
|
219
|
+
callingProgram: match[1],
|
|
220
|
+
calledProgram: match[2],
|
|
221
|
+
hitCount: Number(match[3]),
|
|
222
|
+
grossTime: Number(match[4]),
|
|
223
|
+
netTime: Number(match[5]),
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
// Fallback: try generic attribute extraction if regex didn't match
|
|
227
|
+
if (entries.length === 0) {
|
|
228
|
+
const genericRegex = /<(?:hitListEntry|entry)[^>]+>/g;
|
|
229
|
+
let gMatch;
|
|
230
|
+
while ((gMatch = genericRegex.exec(xml)) !== null) {
|
|
231
|
+
const tag = gMatch[0];
|
|
232
|
+
const callingProgram = extractAttrSimple(tag, 'callingProgram') || '';
|
|
233
|
+
const calledProgram = extractAttrSimple(tag, 'calledProgram') || '';
|
|
234
|
+
const hitCount = extractAttrSimple(tag, 'hitCount');
|
|
235
|
+
if (callingProgram || calledProgram) {
|
|
236
|
+
entries.push({
|
|
237
|
+
callingProgram,
|
|
238
|
+
calledProgram,
|
|
239
|
+
hitCount: hitCount ? Number(hitCount) : 0,
|
|
240
|
+
grossTime: Number(extractAttrSimple(tag, 'grossTime') || '0'),
|
|
241
|
+
netTime: Number(extractAttrSimple(tag, 'traceEventNetTime') || extractAttrSimple(tag, 'netTime') || '0'),
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return entries;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Parse trace statements (call tree) XML.
|
|
250
|
+
*/
|
|
251
|
+
export function parseTraceStatements(xml) {
|
|
252
|
+
const entries = [];
|
|
253
|
+
// Extract self-closing tags, handling > inside attribute values
|
|
254
|
+
for (const tag of extractSelfClosingTags(xml, 'traceStatement', 'statement')) {
|
|
255
|
+
const callLevel = extractAttrSimple(tag, 'callLevel');
|
|
256
|
+
if (callLevel === null)
|
|
257
|
+
continue;
|
|
258
|
+
entries.push({
|
|
259
|
+
callLevel: Number(callLevel),
|
|
260
|
+
hitCount: Number(extractAttrSimple(tag, 'hitCount') || '0'),
|
|
261
|
+
isProceduralUnit: extractAttrSimple(tag, 'isProceduralUnit') === 'true',
|
|
262
|
+
grossTime: Number(extractAttrSimple(tag, 'grossTime') || '0'),
|
|
263
|
+
description: extractAttrSimple(tag, 'description') || extractAttrSimple(tag, 'name') || '',
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
return entries;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Parse trace database accesses XML.
|
|
270
|
+
*/
|
|
271
|
+
export function parseTraceDbAccesses(xml) {
|
|
272
|
+
const entries = [];
|
|
273
|
+
const entryRegex = /<(?:dbAccess|access)[^>]*tableName="([^"]*)"[^>]*/g;
|
|
274
|
+
let match;
|
|
275
|
+
while ((match = entryRegex.exec(xml)) !== null) {
|
|
276
|
+
const tag = xml.slice(match.index, xml.indexOf('>', match.index + match[0].length) + 1);
|
|
277
|
+
entries.push({
|
|
278
|
+
tableName: match[1],
|
|
279
|
+
statement: extractAttrSimple(tag, 'statement') || '',
|
|
280
|
+
type: extractAttrSimple(tag, 'type') || '',
|
|
281
|
+
totalCount: Number(extractAttrSimple(tag, 'totalCount') || '0'),
|
|
282
|
+
bufferedCount: Number(extractAttrSimple(tag, 'bufferedCount') || '0'),
|
|
283
|
+
accessTime: Number(extractAttrSimple(tag, 'accessTime') || '0'),
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
return entries;
|
|
287
|
+
}
|
|
288
|
+
// ─── Helpers ────────────────────────────────────────────────────────
|
|
289
|
+
/**
|
|
290
|
+
* Extract self-closing XML tags by name, handling > inside attribute values.
|
|
291
|
+
* Standard regex [^>]* breaks on attributes like description="CL_TEST=>MAIN".
|
|
292
|
+
*/
|
|
293
|
+
function extractSelfClosingTags(xml, ...tagNames) {
|
|
294
|
+
const tags = [];
|
|
295
|
+
for (const tagName of tagNames) {
|
|
296
|
+
let searchFrom = 0;
|
|
297
|
+
while (true) {
|
|
298
|
+
const startIdx = xml.indexOf(`<${tagName} `, searchFrom);
|
|
299
|
+
if (startIdx === -1)
|
|
300
|
+
break;
|
|
301
|
+
// Find the closing /> by scanning past attribute values
|
|
302
|
+
let i = startIdx + tagName.length + 2;
|
|
303
|
+
while (i < xml.length) {
|
|
304
|
+
if (xml[i] === '"') {
|
|
305
|
+
// Skip quoted attribute value (may contain >)
|
|
306
|
+
i++;
|
|
307
|
+
while (i < xml.length && xml[i] !== '"')
|
|
308
|
+
i++;
|
|
309
|
+
i++; // skip closing quote
|
|
310
|
+
}
|
|
311
|
+
else if (xml[i] === '/' && xml[i + 1] === '>') {
|
|
312
|
+
tags.push(xml.slice(startIdx, i + 2));
|
|
313
|
+
i += 2;
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
else if (xml[i] === '>' && xml[i - 1] !== '/') {
|
|
317
|
+
// Opening tag without self-close; skip
|
|
318
|
+
i++;
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
i++;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
searchFrom = i;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return tags;
|
|
329
|
+
}
|
|
330
|
+
/** Extract text content between opening and closing XML tags */
|
|
331
|
+
function extractTag(xml, tagName) {
|
|
332
|
+
const regex = new RegExp(`<${tagName}[^>]*>([^<]*)</${tagName}>`);
|
|
333
|
+
const match = xml.match(regex);
|
|
334
|
+
return match?.[1] ?? null;
|
|
335
|
+
}
|
|
336
|
+
/** Extract attribute value from an element where another attribute has a specific value */
|
|
337
|
+
function extractAttrValue(xml, attrName, labelValue) {
|
|
338
|
+
// Match: attrName="VALUE" ... label="labelValue" or label="labelValue" ... attrName="VALUE"
|
|
339
|
+
const regex = new RegExp(`${attrName}="([^"]*)"[^>]*label="${labelValue}"`);
|
|
340
|
+
const match = xml.match(regex);
|
|
341
|
+
return match?.[1] || '';
|
|
342
|
+
}
|
|
343
|
+
/** Extract a simple attribute value by name */
|
|
344
|
+
function extractAttrSimple(xml, attr) {
|
|
345
|
+
const regex = new RegExp(`(?:^|\\s|:)${attr}="([^"]*)"`);
|
|
346
|
+
const match = xml.match(regex);
|
|
347
|
+
return match?.[1] ?? null;
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/adt/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/adt/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/adt/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,wCAAwC;AACxC,qBAAa,WAAY,SAAQ,QAAQ;aAGrB,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,YAAY,CAAC,EAAE,MAAM;gBAHrC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,YAAA;IAQvC;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA6B/C,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAM9B;CACF;AAED,6DAA6D;AAC7D,qBAAa,eAAgB,SAAQ,QAAQ;aAGzB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,0CAA0C;AAC1C,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3D"}
|
package/dist/adt/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/adt/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/adt/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAiB,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAqC9E;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAqD3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAqBvE;AAkCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GACxE,UAAU,CAGZ;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,CAqB7E"}
|
package/dist/adt/features.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/adt/features.ts"],"names":[],"mappings":"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"}
|
package/dist/adt/http.d.ts
CHANGED
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
* 3. Stateful sessions use "X-sap-adt-sessiontype: stateful" header.
|
|
20
20
|
* Lock/modify/unlock must use the same session cookies.
|
|
21
21
|
* withStatefulSession() ensures session isolation.
|
|
22
|
-
* (fr0ster uses AsyncLocalStorage for this — we use a simpler approach
|
|
23
|
-
* with an isolated axios instance per session.)
|
|
24
22
|
*
|
|
25
23
|
* 4. sap-client and sap-language are added to every request as query params.
|
|
26
24
|
* This is an SAP convention, not ADT-specific.
|
|
25
|
+
*
|
|
26
|
+
* 5. Uses native fetch() with undici dispatchers for proxy and TLS configuration.
|
|
27
|
+
* No external HTTP dependencies — undici ships with Node.js 22+.
|
|
27
28
|
*/
|
|
28
29
|
import type { BTPProxyConfig } from './btp.js';
|
|
29
30
|
/** Session type for ADT requests */
|
|
@@ -71,7 +72,7 @@ export interface AdtResponse {
|
|
|
71
72
|
*/
|
|
72
73
|
export declare class AdtHttpClient {
|
|
73
74
|
private csrfToken;
|
|
74
|
-
private
|
|
75
|
+
private dispatcher;
|
|
75
76
|
private config;
|
|
76
77
|
/**
|
|
77
78
|
* Cookie jar — stores Set-Cookie headers from responses and sends them back.
|
|
@@ -85,6 +86,8 @@ export declare class AdtHttpClient {
|
|
|
85
86
|
* (domain, path, expiry) because all requests go to the same SAP host.
|
|
86
87
|
*/
|
|
87
88
|
private cookieJar;
|
|
89
|
+
/** Guard to prevent infinite retry loops for DB connection errors */
|
|
90
|
+
private dbRetryInProgress;
|
|
88
91
|
constructor(config: AdtHttpConfig);
|
|
89
92
|
/** GET request */
|
|
90
93
|
get(path: string, headers?: Record<string, string>): Promise<AdtResponse>;
|
|
@@ -98,7 +101,7 @@ export declare class AdtHttpClient {
|
|
|
98
101
|
* Execute a function within an isolated stateful session.
|
|
99
102
|
* Ensures lock/modify/unlock share the same SAP session cookies.
|
|
100
103
|
*
|
|
101
|
-
* Creates a new
|
|
104
|
+
* Creates a new client instance with stateful session header,
|
|
102
105
|
* shares CSRF token with the main client.
|
|
103
106
|
*/
|
|
104
107
|
withStatefulSession<T>(fn: (client: AdtHttpClient) => Promise<T>): Promise<T>;
|
|
@@ -112,12 +115,28 @@ export declare class AdtHttpClient {
|
|
|
112
115
|
*/
|
|
113
116
|
fetchCsrfToken(): Promise<void>;
|
|
114
117
|
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
+
* Detect "database connection is not open" error from SAP.
|
|
119
|
+
* This happens when a work process loses its HANA DB connection.
|
|
120
|
+
* SAP returns a 500 with this message in the body (plain text or XML).
|
|
121
|
+
*/
|
|
122
|
+
private isDbConnectionError;
|
|
123
|
+
/**
|
|
124
|
+
* Reset HTTP session state to force SAP's ICM to assign a new work process.
|
|
125
|
+
* Clears session cookies and CSRF token so the next request gets a fresh session.
|
|
118
126
|
*/
|
|
127
|
+
private resetSession;
|
|
119
128
|
private storeCookies;
|
|
120
129
|
/** Build full URL with sap-client and sap-language query params */
|
|
121
130
|
private buildUrl;
|
|
131
|
+
/** Apply Basic Auth header if username/password are configured (and no bearer provider) */
|
|
132
|
+
private applyAuthHeader;
|
|
133
|
+
/**
|
|
134
|
+
* Execute a fetch request with the configured dispatcher and timeout.
|
|
135
|
+
*
|
|
136
|
+
* Always uses undici's own fetch rather than the global fetch because
|
|
137
|
+
* Node 22's built-in fetch embeds an older undici version whose dispatcher
|
|
138
|
+
* interface is incompatible with npm undici@8 Agent/ProxyAgent instances.
|
|
139
|
+
*/
|
|
140
|
+
private doFetch;
|
|
122
141
|
}
|
|
123
142
|
//# sourceMappingURL=http.d.ts.map
|
package/dist/adt/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/adt/http.ts"],"names":[],"mappings":"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"}
|