arc-1 0.7.2 → 0.9.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 (86) hide show
  1. package/README.md +32 -6
  2. package/dist/adt/btp.d.ts +14 -3
  3. package/dist/adt/btp.d.ts.map +1 -1
  4. package/dist/adt/btp.js +18 -3
  5. package/dist/adt/btp.js.map +1 -1
  6. package/dist/adt/client.d.ts +30 -1
  7. package/dist/adt/client.d.ts.map +1 -1
  8. package/dist/adt/client.js +72 -2
  9. package/dist/adt/client.js.map +1 -1
  10. package/dist/adt/codeintel.d.ts +23 -0
  11. package/dist/adt/codeintel.d.ts.map +1 -1
  12. package/dist/adt/codeintel.js +39 -0
  13. package/dist/adt/codeintel.js.map +1 -1
  14. package/dist/adt/config.d.ts +4 -0
  15. package/dist/adt/config.d.ts.map +1 -1
  16. package/dist/adt/config.js.map +1 -1
  17. package/dist/adt/crud.d.ts +28 -4
  18. package/dist/adt/crud.d.ts.map +1 -1
  19. package/dist/adt/crud.js +74 -28
  20. package/dist/adt/crud.js.map +1 -1
  21. package/dist/adt/diagnostics.d.ts +7 -1
  22. package/dist/adt/diagnostics.d.ts.map +1 -1
  23. package/dist/adt/diagnostics.js +38 -9
  24. package/dist/adt/diagnostics.js.map +1 -1
  25. package/dist/adt/errors.d.ts +1 -1
  26. package/dist/adt/errors.d.ts.map +1 -1
  27. package/dist/adt/errors.js +47 -2
  28. package/dist/adt/errors.js.map +1 -1
  29. package/dist/adt/http.d.ts +43 -0
  30. package/dist/adt/http.d.ts.map +1 -1
  31. package/dist/adt/http.js +93 -0
  32. package/dist/adt/http.js.map +1 -1
  33. package/dist/adt/transport.d.ts +22 -2
  34. package/dist/adt/transport.d.ts.map +1 -1
  35. package/dist/adt/transport.js +41 -13
  36. package/dist/adt/transport.js.map +1 -1
  37. package/dist/adt/xml-parser.d.ts +4 -0
  38. package/dist/adt/xml-parser.d.ts.map +1 -1
  39. package/dist/adt/xml-parser.js +6 -2
  40. package/dist/adt/xml-parser.js.map +1 -1
  41. package/dist/cli.js +13 -0
  42. package/dist/cli.js.map +1 -1
  43. package/dist/context/compressor.d.ts +1 -1
  44. package/dist/context/compressor.js +7 -11
  45. package/dist/context/compressor.js.map +1 -1
  46. package/dist/handlers/intent.d.ts +21 -0
  47. package/dist/handlers/intent.d.ts.map +1 -1
  48. package/dist/handlers/intent.js +378 -78
  49. package/dist/handlers/intent.js.map +1 -1
  50. package/dist/handlers/schemas.d.ts +5 -2
  51. package/dist/handlers/schemas.d.ts.map +1 -1
  52. package/dist/handlers/schemas.js +14 -4
  53. package/dist/handlers/schemas.js.map +1 -1
  54. package/dist/handlers/tools.d.ts.map +1 -1
  55. package/dist/handlers/tools.js +42 -10
  56. package/dist/handlers/tools.js.map +1 -1
  57. package/dist/probe/catalog.d.ts.map +1 -1
  58. package/dist/probe/catalog.js +19 -11
  59. package/dist/probe/catalog.js.map +1 -1
  60. package/dist/server/audit.d.ts +41 -1
  61. package/dist/server/audit.d.ts.map +1 -1
  62. package/dist/server/audit.js.map +1 -1
  63. package/dist/server/config.d.ts.map +1 -1
  64. package/dist/server/config.js +32 -0
  65. package/dist/server/config.js.map +1 -1
  66. package/dist/server/http.d.ts +25 -0
  67. package/dist/server/http.d.ts.map +1 -1
  68. package/dist/server/http.js +149 -7
  69. package/dist/server/http.js.map +1 -1
  70. package/dist/server/server.d.ts +1 -1
  71. package/dist/server/server.d.ts.map +1 -1
  72. package/dist/server/server.js +40 -3
  73. package/dist/server/server.js.map +1 -1
  74. package/dist/server/stateless-client-store.d.ts +97 -0
  75. package/dist/server/stateless-client-store.d.ts.map +1 -0
  76. package/dist/server/stateless-client-store.js +334 -0
  77. package/dist/server/stateless-client-store.js.map +1 -0
  78. package/dist/server/types.d.ts +12 -0
  79. package/dist/server/types.d.ts.map +1 -1
  80. package/dist/server/types.js +2 -0
  81. package/dist/server/types.js.map +1 -1
  82. package/dist/server/xsuaa.d.ts +11 -43
  83. package/dist/server/xsuaa.d.ts.map +1 -1
  84. package/dist/server/xsuaa.js +12 -177
  85. package/dist/server/xsuaa.js.map +1 -1
  86. package/package.json +10 -4
@@ -1 +1 @@
1
- {"version":3,"file":"codeintel.js","sourceRoot":"","sources":["../../src/adt/codeintel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeintel.js","sourceRoot":"","sources":["../../src/adt/codeintel.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,10 @@ export interface AdtClientConfig {
39
39
  insecure: boolean;
40
40
  /** Cookie-based auth (alternative to basic auth) */
41
41
  cookies: Record<string, string>;
42
+ /** Path to cookie file — enables hot-reload on stale auth */
43
+ cookieFile?: string;
44
+ /** Inline cookie string — stored for config awareness (no hot-reload) */
45
+ cookieString?: string;
42
46
  /** Safety configuration */
43
47
  safety: SafetyConfig;
44
48
  /** Feature detection config */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAEhD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,8CAA8C;AAC9C,wBAAgB,oBAAoB,IAAI,aAAa,CAYpD;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,wBAAgB,sBAAsB,IAAI,eAAe,CAaxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAEhD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,8CAA8C;AAC9C,wBAAgB,oBAAoB,IAAI,aAAa,CAYpD;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,wBAAgB,sBAAsB,IAAI,eAAe,CAaxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAkBvD,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AAqDD,uCAAuC;AACvC,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,wBAAwB,EAAE;QAClC,QAAQ,EAAE,oBAAoB,EAAE;QAChC,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAkBvD,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AAyDD,uCAAuC;AACvC,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,wBAAwB,EAAE;QAClC,QAAQ,EAAE,oBAAoB,EAAE;QAChC,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
@@ -9,6 +9,7 @@
9
9
  * This was a hard-won lesson in the fr0ster codebase — earlier versions
10
10
  * leaked locks on error, blocking the object for other developers.
11
11
  */
12
+ import { AdtApiError } from './errors.js';
12
13
  import type { AdtHttpClient } from './http.js';
13
14
  import { type SafetyConfig } from './safety.js';
14
15
  /** Lock result from SAP */
@@ -18,11 +19,11 @@ export interface LockResult {
18
19
  isLocal: boolean;
19
20
  }
20
21
  /** Lock an ABAP object for editing */
21
- export declare function lockObject(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, accessMode?: string): Promise<LockResult>;
22
+ export declare function lockObject(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, accessMode?: string, abapRelease?: string): Promise<LockResult>;
22
23
  /** Unlock an ABAP object */
23
24
  export declare function unlockObject(http: AdtHttpClient, objectUrl: string, lockHandle: string): Promise<void>;
24
25
  /** Create a new ABAP object */
25
- export declare function createObject(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, body: string, contentType?: string, transport?: string, packageName?: string): Promise<string>;
26
+ export declare function createObject(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, body: string, contentType?: string, transport?: string, packageName?: string, abapRelease?: string): Promise<string>;
26
27
  /** Update source code of an ABAP object (requires lock) */
27
28
  export declare function updateSource(http: AdtHttpClient, safety: SafetyConfig, sourceUrl: string, source: string, lockHandle: string, transport?: string): Promise<void>;
28
29
  /** Update object metadata XML (requires lock) */
@@ -33,10 +34,33 @@ export declare function deleteObject(http: AdtHttpClient, safety: SafetyConfig,
33
34
  * High-level: update source with guaranteed unlock.
34
35
  * lock → updateSource → unlock (in try-finally)
35
36
  */
36
- export declare function safeUpdateSource(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, sourceUrl: string, source: string, transport?: string): Promise<void>;
37
+ export declare function safeUpdateSource(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, sourceUrl: string, source: string, transport?: string, abapRelease?: string): Promise<void>;
37
38
  /**
38
39
  * High-level: update object metadata with guaranteed unlock.
39
40
  * lock → updateObject → unlock (in try-finally)
40
41
  */
41
- export declare function safeUpdateObject(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, body: string, contentType: string, transport?: string): Promise<void>;
42
+ export declare function safeUpdateObject(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, body: string, contentType: string, transport?: string, abapRelease?: string): Promise<void>;
43
+ /**
44
+ * Convert an ICM-intercepted lock/exists conflict into a clean AdtApiError(409).
45
+ *
46
+ * Two-layer detection (per ADR-0002):
47
+ *
48
+ * Layer 1 — structured exception type (release-agnostic, robust):
49
+ * <exc:exception><type id="ExceptionResourceNoAccess"/> → reclassify regardless of status.
50
+ * Same for ExceptionResourceLockedByAnotherUser.
51
+ *
52
+ * Layer 2 — HTML body marker, scoped by SAP_BASIS release:
53
+ * Some SAP releases (NW 7.50) emit an ICM HTML "Logon Error Message" page when the ADT
54
+ * handler tries to throw CX_ADT_RES_NO_ACCESS through cookie auth. The "Logon Error
55
+ * Message" string appears in the <title> only on systems whose ICM uses the English
56
+ * error-page template — re-localizing the system would shift the marker. So the heuristic
57
+ * is gated on `cachedFeatures.abapRelease < 751` (or undefined for CLI/test paths,
58
+ * where the startup probe didn't populate features).
59
+ * The fallback message is intentionally neutral ("may be locked or already exist") because
60
+ * the ICM intercept loses the original SAP exception type — we cannot disambiguate.
61
+ *
62
+ * Returns the reclassified AdtApiError(409) (caller throws), or undefined when the original
63
+ * error should be rethrown unchanged.
64
+ */
65
+ export declare function convertHtmlConflictToProperError(err: unknown, objectUrl: string, abapRelease?: string): AdtApiError | undefined;
42
66
  //# sourceMappingURL=crud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/adt/crud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CA4DrB;AAED,4BAA4B;AAC5B,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5G;AAkBD,+BAA+B;AAC/B,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,SAAkB,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAOD,2DAA2D;AAC3D,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,iDAAiD;AACjD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,4CAA4C;AAC5C,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/adt/crud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAW,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAED,4BAA4B;AAC5B,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5G;AAkBD,+BAA+B;AAC/B,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,SAAkB,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAOD,2DAA2D;AAC3D,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,iDAAiD;AACjD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,4CAA4C;AAC5C,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,GAAG,SAAS,CA2CzB"}
package/dist/adt/crud.js CHANGED
@@ -9,10 +9,10 @@
9
9
  * This was a hard-won lesson in the fr0ster codebase — earlier versions
10
10
  * leaked locks on error, blocking the object for other developers.
11
11
  */
12
- import { AdtApiError } from './errors.js';
12
+ import { AdtApiError, extractExceptionType } from './errors.js';
13
13
  import { checkOperation, OperationType } from './safety.js';
14
14
  /** Lock an ABAP object for editing */
15
- export async function lockObject(http, safety, objectUrl, accessMode = 'MODIFY') {
15
+ export async function lockObject(http, safety, objectUrl, accessMode = 'MODIFY', abapRelease) {
16
16
  if (accessMode === 'MODIFY') {
17
17
  checkOperation(safety, OperationType.Lock, 'LockObject');
18
18
  }
@@ -25,27 +25,9 @@ export async function lockObject(http, safety, objectUrl, accessMode = 'MODIFY')
25
25
  });
26
26
  }
27
27
  catch (err) {
28
- // NW 7.50 quirk: the LOCK endpoint returns 400 or 401 with an HTML login page when
29
- // the object is already locked by another session (Eclipse, SE80). This is not an auth
30
- // failure — a GET on the same object succeeds moments earlier with the same credentials.
31
- // Reclassify as a clear lock-conflict error so the LLM doesn't chase auth red herrings.
32
- // CX_ADT_RES_NO_ACCESS maps to 403 server-side, but with cookie auth (no Basic Auth
33
- // header) ICM transforms it to 401 "no logon data". ARC-1's 401 retry handler then
34
- // clears the cookie jar and retries without cookies, which returns 400. So we see
35
- // 400, 401, or 403 depending on timing — all with the same HTML login page body.
36
- //
37
- // The "Logon Error Message" HTML body is the de-facto NW 7.50 gate — S/4 returns
38
- // structured XML with <exc:exception> here (no "Logon Error Message" string), and
39
- // S/4's auth-failure HTML is "Anmeldung fehlgeschlagen" (also no match). So this
40
- // branch self-scopes without an explicit detectSystemCapabilities() check.
41
- if (err instanceof AdtApiError &&
42
- (err.statusCode === 400 || err.statusCode === 401 || err.statusCode === 403) &&
43
- err.responseBody?.includes('Logon Error Message')) {
44
- const name = objectUrl.split('/').pop() ?? objectUrl;
45
- // Throw as 409 with "locked by" in the message so classifySapDomainError routes
46
- // to the 'lock-conflict' category (not the 423 'enqueue-error' / invalid-handle path).
47
- throw new AdtApiError(`Object ${name} is locked by another session. Close the editor (Eclipse, SE80) or release the lock in SM12, then retry.`, 409, objectUrl);
48
- }
28
+ const conv = convertHtmlConflictToProperError(err, objectUrl, abapRelease);
29
+ if (conv)
30
+ throw conv;
49
31
  throw err;
50
32
  }
51
33
  // Parse lock response (asx:abap format) — simple regex extraction
@@ -79,7 +61,7 @@ const CONTENT_TYPE_FALLBACKS = {
79
61
  'application/vnd.sap.adt.dataelements.v2+xml': 'application/vnd.sap.adt.dataelements.v1+xml',
80
62
  };
81
63
  /** Create a new ABAP object */
82
- export async function createObject(http, safety, objectUrl, body, contentType = 'application/*', transport, packageName) {
64
+ export async function createObject(http, safety, objectUrl, body, contentType = 'application/*', transport, packageName, abapRelease) {
83
65
  checkOperation(safety, OperationType.Create, 'CreateObject');
84
66
  const params = [];
85
67
  if (transport) {
@@ -94,6 +76,11 @@ export async function createObject(http, safety, objectUrl, body, contentType =
94
76
  return resp.body;
95
77
  }
96
78
  catch (err) {
79
+ // Reclassify lock/exists conflicts that arrive as HTML or via structured
80
+ // exception type — same precedence as the lockObject path.
81
+ const conv = convertHtmlConflictToProperError(err, objectUrl, abapRelease);
82
+ if (conv)
83
+ throw conv;
97
84
  const fallback = CONTENT_TYPE_FALLBACKS[contentType];
98
85
  if (fallback && isUnsupportedMediaTypeError(err)) {
99
86
  const resp = await http.post(url, body, fallback);
@@ -156,9 +143,9 @@ export async function deleteObject(http, safety, objectUrl, lockHandle, transpor
156
143
  * High-level: update source with guaranteed unlock.
157
144
  * lock → updateSource → unlock (in try-finally)
158
145
  */
159
- export async function safeUpdateSource(http, safety, objectUrl, sourceUrl, source, transport) {
146
+ export async function safeUpdateSource(http, safety, objectUrl, sourceUrl, source, transport, abapRelease) {
160
147
  await http.withStatefulSession(async (session) => {
161
- const lock = await lockObject(session, safety, objectUrl);
148
+ const lock = await lockObject(session, safety, objectUrl, 'MODIFY', abapRelease);
162
149
  const effectiveTransport = transport ?? (lock.corrNr || undefined);
163
150
  try {
164
151
  await updateSource(session, safety, sourceUrl, source, lock.lockHandle, effectiveTransport);
@@ -172,9 +159,9 @@ export async function safeUpdateSource(http, safety, objectUrl, sourceUrl, sourc
172
159
  * High-level: update object metadata with guaranteed unlock.
173
160
  * lock → updateObject → unlock (in try-finally)
174
161
  */
175
- export async function safeUpdateObject(http, safety, objectUrl, body, contentType, transport) {
162
+ export async function safeUpdateObject(http, safety, objectUrl, body, contentType, transport, abapRelease) {
176
163
  await http.withStatefulSession(async (session) => {
177
- const lock = await lockObject(session, safety, objectUrl);
164
+ const lock = await lockObject(session, safety, objectUrl, 'MODIFY', abapRelease);
178
165
  const effectiveTransport = transport ?? (lock.corrNr || undefined);
179
166
  try {
180
167
  await updateObject(session, safety, objectUrl, body, lock.lockHandle, contentType, effectiveTransport);
@@ -190,4 +177,63 @@ function extractXmlValue(xml, tag) {
190
177
  const match = xml.match(regex);
191
178
  return match?.[1] ?? '';
192
179
  }
180
+ /**
181
+ * Convert an ICM-intercepted lock/exists conflict into a clean AdtApiError(409).
182
+ *
183
+ * Two-layer detection (per ADR-0002):
184
+ *
185
+ * Layer 1 — structured exception type (release-agnostic, robust):
186
+ * <exc:exception><type id="ExceptionResourceNoAccess"/> → reclassify regardless of status.
187
+ * Same for ExceptionResourceLockedByAnotherUser.
188
+ *
189
+ * Layer 2 — HTML body marker, scoped by SAP_BASIS release:
190
+ * Some SAP releases (NW 7.50) emit an ICM HTML "Logon Error Message" page when the ADT
191
+ * handler tries to throw CX_ADT_RES_NO_ACCESS through cookie auth. The "Logon Error
192
+ * Message" string appears in the <title> only on systems whose ICM uses the English
193
+ * error-page template — re-localizing the system would shift the marker. So the heuristic
194
+ * is gated on `cachedFeatures.abapRelease < 751` (or undefined for CLI/test paths,
195
+ * where the startup probe didn't populate features).
196
+ * The fallback message is intentionally neutral ("may be locked or already exist") because
197
+ * the ICM intercept loses the original SAP exception type — we cannot disambiguate.
198
+ *
199
+ * Returns the reclassified AdtApiError(409) (caller throws), or undefined when the original
200
+ * error should be rethrown unchanged.
201
+ */
202
+ export function convertHtmlConflictToProperError(err, objectUrl, abapRelease) {
203
+ if (!(err instanceof AdtApiError))
204
+ return undefined;
205
+ const body = err.responseBody ?? '';
206
+ const name = objectUrl.split('/').pop() ?? objectUrl;
207
+ // Layer 1: structured exception type
208
+ const typeId = extractExceptionType(body);
209
+ if (typeId === 'ExceptionResourceNoAccess' || typeId === 'ExceptionResourceLockedByAnotherUser') {
210
+ return new AdtApiError(`Object ${name} is locked by another session. Close the editor (Eclipse, SE80) or release the lock in SM12, then retry.`, 409, objectUrl, body);
211
+ }
212
+ // Layer 2: HTML body marker, scoped by release
213
+ //
214
+ // Case-insensitive HTML detection: real SAP ICM error pages use a mix of casings
215
+ // — lowercase `<html>` (NPL 7.50, verified live), uppercase `<HTML>` (some
216
+ // releases / language packs), and `<!DOCTYPE HTML PUBLIC ...>` (W3C-style
217
+ // doctype). Picking ONE casing (codex review of PR #202 pre-fix used
218
+ // lowercase-only) regresses #196's behavior on releases that emit any of the
219
+ // other two. The "Logon Error Message" marker is itself emitted as written
220
+ // (no localization on that string), so it can stay case-sensitive.
221
+ const release = parseReleaseNum(abapRelease);
222
+ const fallbackEligible = release === 0 || release < 751;
223
+ const looksLikeHtml = /<!doctype\s+html|<html[\s>]/i.test(body);
224
+ const isHtml4xx = (err.statusCode === 400 || err.statusCode === 401 || err.statusCode === 403) &&
225
+ looksLikeHtml &&
226
+ body.includes('Logon Error Message');
227
+ if (fallbackEligible && isHtml4xx) {
228
+ return new AdtApiError(`Operation conflicted on ${name} — object may be locked by another session or already exist. ` +
229
+ `Run SAPSearch to verify the object exists, then either update the existing object or wait for the lock to release (SM12).`, 409, objectUrl, body);
230
+ }
231
+ return undefined;
232
+ }
233
+ function parseReleaseNum(abapRelease) {
234
+ if (!abapRelease)
235
+ return 0;
236
+ const num = Number.parseInt(abapRelease.replace(/\D/g, ''), 10);
237
+ return Number.isFinite(num) ? num : 0;
238
+ }
193
239
  //# sourceMappingURL=crud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/adt/crud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/adt/crud.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,11 @@ export declare function listDumps(http: AdtHttpClient, safety: SafetyConfig, opt
40
40
  * 1. XML metadata (chapters, links, attributes)
41
41
  * 2. Formatted plain text (full dump content)
42
42
  *
43
- * The dump ID is the URL-encoded path segment from the listing.
43
+ * The dump ID from `listDumps` already arrives URL-encoded (the SAP feed
44
+ * encodes spaces in the server/user/client/dump-number suffix as `%20`).
45
+ * When a caller passes a raw ID (e.g. copied from ST22 with literal
46
+ * whitespace), we encode it ourselves so the path stays valid. The
47
+ * detail payload keeps the caller's original ID for round-tripping.
44
48
  */
45
49
  export declare function getDump(http: AdtHttpClient, safety: SafetyConfig, dumpId: string): Promise<DumpDetail>;
46
50
  /**
@@ -159,5 +163,7 @@ export declare function parseTraceStatements(xml: string): TraceStatement[];
159
163
  * Parse trace database accesses XML.
160
164
  */
161
165
  export declare function parseTraceDbAccesses(xml: string): TraceDbAccess[];
166
+ export declare function stripHtmlTags(html: string): string;
167
+ export declare function decodeHtmlEntities(text: string): string;
162
168
  export {};
163
169
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/adt/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/adt/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -35,21 +35,38 @@ export async function listDumps(http, safety, options) {
35
35
  * 1. XML metadata (chapters, links, attributes)
36
36
  * 2. Formatted plain text (full dump content)
37
37
  *
38
- * The dump ID is the URL-encoded path segment from the listing.
38
+ * The dump ID from `listDumps` already arrives URL-encoded (the SAP feed
39
+ * encodes spaces in the server/user/client/dump-number suffix as `%20`).
40
+ * When a caller passes a raw ID (e.g. copied from ST22 with literal
41
+ * whitespace), we encode it ourselves so the path stays valid. The
42
+ * detail payload keeps the caller's original ID for round-tripping.
39
43
  */
40
44
  export async function getDump(http, safety, dumpId) {
41
45
  checkOperation(safety, OperationType.Read, 'GetDump');
46
+ const safeId = normalizeDumpId(dumpId);
42
47
  // Fetch XML metadata and formatted text in parallel
43
48
  const [xmlResp, textResp] = await Promise.all([
44
- http.get(`/sap/bc/adt/runtime/dump/${dumpId}`, {
49
+ http.get(`/sap/bc/adt/runtime/dump/${safeId}`, {
45
50
  Accept: 'application/vnd.sap.adt.runtime.dump.v1+xml',
46
51
  }),
47
- http.get(`/sap/bc/adt/runtime/dump/${dumpId}/formatted`, {
52
+ http.get(`/sap/bc/adt/runtime/dump/${safeId}/formatted`, {
48
53
  Accept: 'text/plain',
49
54
  }),
50
55
  ]);
51
56
  return parseDumpDetail(xmlResp.body, textResp.body, dumpId);
52
57
  }
58
+ /**
59
+ * Idempotently URL-encode a dump ID. If the value already contains a `%`
60
+ * sequence we treat it as already-encoded (the listing endpoint emits
61
+ * `%20` for spaces); otherwise we encode it once. Trims surrounding
62
+ * whitespace which would otherwise be encoded as `%20` and break lookup.
63
+ */
64
+ function normalizeDumpId(dumpId) {
65
+ const trimmed = String(dumpId ?? '').trim();
66
+ if (!trimmed)
67
+ return '';
68
+ return trimmed.includes('%') ? trimmed : encodeURIComponent(trimmed);
69
+ }
53
70
  // ─── System Messages + Gateway Errors ──────────────────────────────
54
71
  /**
55
72
  * List SM02 system messages.
@@ -896,13 +913,24 @@ function sanitizeHtmlCellValue(raw) {
896
913
  value = decodeHtmlEntities(value);
897
914
  return value.replace(/\s+/g, ' ').trim();
898
915
  }
899
- function stripHtmlTags(html) {
900
- return String(html ?? '').replace(/<[^>]*>/g, '');
901
- }
902
- function decodeHtmlEntities(text) {
916
+ // Loop until stable so adversarial nested input (e.g. `<<script>script>`) is fully
917
+ // stripped single-pass regex would leave `<script>` behind. Closes CodeQL alert
918
+ // `js/incomplete-multi-character-sanitization` (alert #6).
919
+ export function stripHtmlTags(html) {
920
+ let result = String(html ?? '');
921
+ let prev;
922
+ do {
923
+ prev = result;
924
+ result = result.replace(/<[^>]*>/g, '');
925
+ } while (result !== prev);
926
+ return result;
927
+ }
928
+ // `&amp;` is decoded LAST so chained entities like `&amp;lt;` resolve to `&lt;`
929
+ // (the literal four-char text) rather than `<`. Closes CodeQL alert
930
+ // `js/double-escaping` (alert #7).
931
+ export function decodeHtmlEntities(text) {
903
932
  return String(text ?? '')
904
933
  .replace(/&nbsp;/gi, ' ')
905
- .replace(/&amp;/gi, '&')
906
934
  .replace(/&lt;/gi, '<')
907
935
  .replace(/&gt;/gi, '>')
908
936
  .replace(/&quot;/gi, '"')
@@ -910,7 +938,8 @@ function decodeHtmlEntities(text) {
910
938
  .replace(/&ndash;/gi, '–')
911
939
  .replace(/&mdash;/gi, '—')
912
940
  .replace(/&#(\d+);/g, (_, code) => String.fromCodePoint(Number(code)))
913
- .replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCodePoint(parseInt(code, 16)));
941
+ .replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCodePoint(parseInt(code, 16)))
942
+ .replace(/&amp;/gi, '&');
914
943
  }
915
944
  function decodeUriComponentSafe(value) {
916
945
  if (!value?.includes('%'))