arc-1 1.5.1 → 1.6.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 +4 -1
- package/bin/arc1-source.js +83 -0
- package/dist/adt/accept-fallback.d.ts +4 -0
- package/dist/adt/accept-fallback.d.ts.map +1 -0
- package/dist/adt/accept-fallback.js +27 -0
- package/dist/adt/accept-fallback.js.map +1 -0
- package/dist/adt/api-release.d.ts +40 -0
- package/dist/adt/api-release.d.ts.map +1 -0
- package/dist/adt/api-release.js +224 -0
- package/dist/adt/api-release.js.map +1 -0
- package/dist/adt/authorization-trace.d.ts.map +1 -1
- package/dist/adt/authorization-trace.js +2 -1
- package/dist/adt/authorization-trace.js.map +1 -1
- package/dist/adt/class-structure.d.ts.map +1 -1
- package/dist/adt/class-structure.js +24 -3
- package/dist/adt/class-structure.js.map +1 -1
- package/dist/adt/client.d.ts +8 -4
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +30 -48
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts +33 -5
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +41 -10
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/data-source-policy.d.ts +5 -2
- package/dist/adt/data-source-policy.d.ts.map +1 -1
- package/dist/adt/data-source-policy.js +106 -7
- package/dist/adt/data-source-policy.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +5 -3
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +14 -0
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +27 -3
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/discovery.d.ts +1 -1
- package/dist/adt/discovery.js +4 -3
- package/dist/adt/discovery.js.map +1 -1
- package/dist/adt/enhancement-impl.d.ts +125 -0
- package/dist/adt/enhancement-impl.d.ts.map +1 -0
- package/dist/adt/enhancement-impl.js +408 -0
- package/dist/adt/enhancement-impl.js.map +1 -0
- package/dist/adt/enhancements.d.ts.map +1 -1
- package/dist/adt/enhancements.js +4 -2
- package/dist/adt/enhancements.js.map +1 -1
- package/dist/adt/enho-filter.d.ts +49 -0
- package/dist/adt/enho-filter.d.ts.map +1 -0
- package/dist/adt/enho-filter.js +229 -0
- package/dist/adt/enho-filter.js.map +1 -0
- package/dist/adt/errors.js +6 -8
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts +5 -17
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +40 -27
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/http.d.ts +1 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +35 -57
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/legacy-content-handler.d.ts +2 -0
- package/dist/adt/legacy-content-handler.d.ts.map +1 -1
- package/dist/adt/legacy-content-handler.js +13 -1
- package/dist/adt/legacy-content-handler.js.map +1 -1
- package/dist/adt/package-contents.d.ts +5 -0
- package/dist/adt/package-contents.d.ts.map +1 -1
- package/dist/adt/package-contents.js +31 -0
- package/dist/adt/package-contents.js.map +1 -1
- package/dist/adt/rap-generate.d.ts +2 -4
- package/dist/adt/rap-generate.d.ts.map +1 -1
- package/dist/adt/rap-generate.js +2 -4
- package/dist/adt/rap-generate.js.map +1 -1
- package/dist/adt/rap-preflight.js +7 -9
- package/dist/adt/rap-preflight.js.map +1 -1
- package/dist/adt/server-driven.d.ts +12 -1
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +22 -4
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/table-index.d.ts +23 -0
- package/dist/adt/table-index.d.ts.map +1 -0
- package/dist/adt/table-index.js +69 -0
- package/dist/adt/table-index.js.map +1 -0
- package/dist/adt/table-query.d.ts +1 -1
- package/dist/adt/table-query.d.ts.map +1 -1
- package/dist/adt/table-query.js +5 -6
- package/dist/adt/table-query.js.map +1 -1
- package/dist/adt/table-settings.d.ts +67 -0
- package/dist/adt/table-settings.d.ts.map +1 -0
- package/dist/adt/table-settings.js +207 -0
- package/dist/adt/table-settings.js.map +1 -0
- package/dist/adt/text-elements.d.ts +19 -4
- package/dist/adt/text-elements.d.ts.map +1 -1
- package/dist/adt/text-elements.js +119 -14
- package/dist/adt/text-elements.js.map +1 -1
- package/dist/adt/text-part-changes.d.ts +4 -0
- package/dist/adt/text-part-changes.d.ts.map +1 -0
- package/dist/adt/text-part-changes.js +43 -0
- package/dist/adt/text-part-changes.js.map +1 -0
- package/dist/adt/transport.js +2 -1
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +10 -5
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/user-agent.d.ts +1 -1
- package/dist/adt/xml-parser.d.ts +5 -34
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +32 -149
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/context/line-range.d.ts +6 -0
- package/dist/context/line-range.d.ts.map +1 -0
- package/dist/context/line-range.js +23 -0
- package/dist/context/line-range.js.map +1 -0
- package/dist/context/method-surgery.d.ts.map +1 -1
- package/dist/context/method-surgery.js +46 -3
- package/dist/context/method-surgery.js.map +1 -1
- package/dist/handlers/activate.d.ts +1 -1
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +87 -9
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/activation-results.d.ts.map +1 -1
- package/dist/handlers/activation-results.js +9 -1
- package/dist/handlers/activation-results.js.map +1 -1
- package/dist/handlers/api-release-fields.d.ts +23 -0
- package/dist/handlers/api-release-fields.d.ts.map +1 -0
- package/dist/handlers/api-release-fields.js +21 -0
- package/dist/handlers/api-release-fields.js.map +1 -0
- package/dist/handlers/cds-hints.d.ts +1 -1
- package/dist/handlers/cds-hints.d.ts.map +1 -1
- package/dist/handlers/cds-hints.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +11 -3
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +57 -3
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/hyperfocused.d.ts +1 -1
- package/dist/handlers/hyperfocused.d.ts.map +1 -1
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +19 -25
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +50 -12
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +0 -5
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +30 -12
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query-errors.d.ts.map +1 -1
- package/dist/handlers/query-errors.js +9 -0
- package/dist/handlers/query-errors.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +77 -9
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +40 -0
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +98 -11
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/search.d.ts.map +1 -1
- package/dist/handlers/search.js +10 -6
- package/dist/handlers/search.js.map +1 -1
- package/dist/handlers/syntax.d.ts.map +1 -1
- package/dist/handlers/syntax.js +44 -15
- package/dist/handlers/syntax.js.map +1 -1
- package/dist/handlers/table-type-fields.d.ts +33 -0
- package/dist/handlers/table-type-fields.d.ts.map +1 -0
- package/dist/handlers/table-type-fields.js +22 -0
- package/dist/handlers/table-type-fields.js.map +1 -0
- package/dist/handlers/tool-descriptions.d.ts.map +1 -1
- package/dist/handlers/tool-descriptions.js +9 -4
- package/dist/handlers/tool-descriptions.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +5 -5
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +10 -7
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +44 -44
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/where-used.d.ts +2 -0
- package/dist/handlers/where-used.d.ts.map +1 -1
- package/dist/handlers/where-used.js +13 -4
- package/dist/handlers/where-used.js.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +69 -24
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/rap.d.ts.map +1 -1
- package/dist/handlers/write/rap.js +2 -4
- package/dist/handlers/write/rap.js.map +1 -1
- package/dist/handlers/write/table-settings.d.ts +5 -0
- package/dist/handlers/write/table-settings.d.ts.map +1 -0
- package/dist/handlers/write/table-settings.js +27 -0
- package/dist/handlers/write/table-settings.js.map +1 -0
- package/dist/handlers/write/update-delete.d.ts +2 -2
- package/dist/handlers/write/update-delete.d.ts.map +1 -1
- package/dist/handlers/write/update-delete.js +50 -9
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +4 -1
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +68 -8
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +6 -10
- package/dist/handlers/write.js.map +1 -1
- package/dist/lint/config-builder.d.ts.map +1 -1
- package/dist/lint/config-builder.js +3 -2
- package/dist/lint/config-builder.js.map +1 -1
- package/dist/server/audit.d.ts +4 -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 +38 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/destination-discovery.d.ts +12 -2
- package/dist/server/destination-discovery.d.ts.map +1 -1
- package/dist/server/destination-discovery.js +33 -7
- package/dist/server/destination-discovery.js.map +1 -1
- package/dist/server/destination-registry.d.ts +10 -6
- package/dist/server/destination-registry.d.ts.map +1 -1
- package/dist/server/destination-registry.js +38 -15
- package/dist/server/destination-registry.js.map +1 -1
- package/dist/server/http-request-body.d.ts +4 -0
- package/dist/server/http-request-body.d.ts.map +1 -0
- package/dist/server/http-request-body.js +65 -0
- package/dist/server/http-request-body.js.map +1 -0
- package/dist/server/http.d.ts +5 -2
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +71 -9
- package/dist/server/http.js.map +1 -1
- package/dist/server/multi-target-authorization-audit.d.ts +5 -0
- package/dist/server/multi-target-authorization-audit.d.ts.map +1 -0
- package/dist/server/multi-target-authorization-audit.js +18 -0
- package/dist/server/multi-target-authorization-audit.js.map +1 -0
- package/dist/server/multi-target-authorization-startup.d.ts +8 -0
- package/dist/server/multi-target-authorization-startup.d.ts.map +1 -0
- package/dist/server/multi-target-authorization-startup.js +38 -0
- package/dist/server/multi-target-authorization-startup.js.map +1 -0
- package/dist/server/multi-target-authorization.d.ts +29 -0
- package/dist/server/multi-target-authorization.d.ts.map +1 -0
- package/dist/server/multi-target-authorization.js +97 -0
- package/dist/server/multi-target-authorization.js.map +1 -0
- package/dist/server/multi-target-bearer-auth.d.ts +5 -0
- package/dist/server/multi-target-bearer-auth.d.ts.map +1 -0
- package/dist/server/multi-target-bearer-auth.js +39 -0
- package/dist/server/multi-target-bearer-auth.js.map +1 -0
- package/dist/server/multi-target-catalog-enforced.d.ts +29 -0
- package/dist/server/multi-target-catalog-enforced.d.ts.map +1 -0
- package/dist/server/multi-target-catalog-enforced.js +142 -0
- package/dist/server/multi-target-catalog-enforced.js.map +1 -0
- package/dist/server/multi-target-catalog-projection.d.ts +7 -0
- package/dist/server/multi-target-catalog-projection.d.ts.map +1 -0
- package/dist/server/multi-target-catalog-projection.js +52 -0
- package/dist/server/multi-target-catalog-projection.js.map +1 -0
- package/dist/server/multi-target-feature-state.d.ts +0 -2
- package/dist/server/multi-target-feature-state.d.ts.map +1 -1
- package/dist/server/multi-target-feature-state.js +0 -19
- package/dist/server/multi-target-feature-state.js.map +1 -1
- package/dist/server/multi-target-identity.d.ts +3 -0
- package/dist/server/multi-target-identity.d.ts.map +1 -1
- package/dist/server/multi-target-identity.js +9 -0
- package/dist/server/multi-target-identity.js.map +1 -1
- package/dist/server/multi-target-request-projection.d.ts +14 -0
- package/dist/server/multi-target-request-projection.d.ts.map +1 -0
- package/dist/server/multi-target-request-projection.js +16 -0
- package/dist/server/multi-target-request-projection.js.map +1 -0
- package/dist/server/multi-target-runtime.d.ts.map +1 -1
- package/dist/server/multi-target-runtime.js +1 -0
- package/dist/server/multi-target-runtime.js.map +1 -1
- package/dist/server/multi-target-server.d.ts +4 -1
- package/dist/server/multi-target-server.d.ts.map +1 -1
- package/dist/server/multi-target-server.js +111 -11
- package/dist/server/multi-target-server.js.map +1 -1
- package/dist/server/multi-target-tools.d.ts +1 -1
- package/dist/server/multi-target-tools.d.ts.map +1 -1
- package/dist/server/multi-target-tools.js +14 -8
- package/dist/server/multi-target-tools.js.map +1 -1
- package/dist/server/private-mcp-response.d.ts +4 -0
- package/dist/server/private-mcp-response.d.ts.map +1 -0
- package/dist/server/private-mcp-response.js +14 -0
- package/dist/server/private-mcp-response.js.map +1 -0
- package/dist/server/server-cache.d.ts +5 -0
- package/dist/server/server-cache.d.ts.map +1 -0
- package/dist/server/server-cache.js +30 -0
- package/dist/server/server-cache.js.map +1 -0
- package/dist/server/server.d.ts +7 -21
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +58 -88
- 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 +4 -1
- package/dist/server/sinks/btp-auditlog.js.map +1 -1
- package/dist/server/types.d.ts +7 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +4 -0
- package/dist/server/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +20 -14
package/README.md
CHANGED
|
@@ -51,6 +51,9 @@ Deploy ARC-1 as a Cloud Foundry app on SAP BTP with full platform integration:
|
|
|
51
51
|
destinations marked `arc1.enabled=true` and exposes pinned SID/client plus aggregate endpoints
|
|
52
52
|
([setup](docs_page/multi-target-setup.md),
|
|
53
53
|
[administration](docs_page/multi-target-administration.md))
|
|
54
|
+
- **Optional target filtering** — for shared multi-system gateways where teams need different target
|
|
55
|
+
lists. [Assign systems/clients through XSUAA roles](docs_page/multi-target-authorization.md);
|
|
56
|
+
IAS changes are optional. This filters IAM-assigned targets, not automatically discovered SAP accounts.
|
|
54
57
|
- **Cloud Connector** — reach on-premise systems through the connectivity proxy
|
|
55
58
|
- **Per-user destinations** — user identity forwarded end-to-end via X.509 certificates for on-premise SAP, or exchanged for an ABAP bearer token for BTP ABAP Environment
|
|
56
59
|
- **XSUAA OAuth proxy** — MCP clients authenticate via standard OAuth, ARC-1 handles the BTP token exchange
|
|
@@ -89,7 +92,7 @@ The 12 tools are designed from real LLM interaction feedback:
|
|
|
89
92
|
|
|
90
93
|
| Tool | What it does |
|
|
91
94
|
|------|-------------|
|
|
92
|
-
| **SAPRead** | Read exact ABAP source, method bodies, grep matches, table data, CDS views, access controls (`DCLS`), metadata extensions (`DDLX`), service bindings (`SRVB`), knowledge-transfer docs (`SKTD` or friendly alias `KTD`), message classes (`MSAG`), revision history (`VERSIONS`/`VERSION_SOURCE`), inactive object state, BOR objects, deployed UI5/Fiori apps (BSP, BSP_DEPLOY), and ABAP Platform 2025 server-driven objects (`DESD`, `EVTB`, `EVTO`, `DTSC`, `CSNM`, `COTA`). For "what does this object do?" use `SAPContext` first, then `SAPRead` for precise source.
|
|
95
|
+
| **SAPRead** | Read exact ABAP source, method bodies, grep matches, table data, CDS views, access controls (`DCLS`), metadata extensions (`DDLX`), service bindings (`SRVB`), knowledge-transfer docs (`SKTD` or friendly alias `KTD`), message classes (`MSAG`), revision history (`VERSIONS`/`VERSION_SOURCE`), inactive object state, BOR objects, deployed UI5/Fiori apps (BSP, BSP_DEPLOY), and ABAP Platform 2025 server-driven objects (`DESD`, `EVTB`, `EVTO`, `DTSC`, `CSNM`, `COTA`). For "what does this object do?" use `SAPContext` first, then `SAPRead` for precise source. Enhancement implementations (`ENHO`) are readable on-prem and on BTP; authorization fields (`AUTH`) and feature toggles (`FEATURE_TOGGLE`) are on-prem only. Structured format for classes returns metadata + decomposed includes as JSON. Optional `grep` regex returns only matching source lines (+context, method-annotated for classes) for token-efficient search. (Deprecated aliases `MESSAGES`/`FTG2` accepted for one minor.) |
|
|
93
96
|
| **SAPSearch** | Object search + full-text source code search across the system |
|
|
94
97
|
| **SAPWrite** | Create/update/delete ABAP source and DDIC metadata with automatic lock/unlock (PROG, CLAS, INTF, FUNC, FUGR, INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD/KTD, TABL, DOMA, DTEL, MSAG; availability adapts for BTP). Class updates can target local includes (`definitions`, `implementations`, `macros`, `testclasses`); class-section surgery (`edit_class_definition`, `add_method`, `edit_method_signature`, `delete_method`, `change_method_visibility`) lets an LLM edit a global class signature without re-sending `/source/main`; RAP behavior-pool scaffolding can auto-create `lhc_*` skeletons before injecting signatures/stubs. Batch creation supports terminal activation for interdependent multi-object workflows (e.g., RAP stack or domain+data element in one call) |
|
|
95
98
|
| **SAPActivate** | Activate ABAP objects — single or batch (essential for RAP stacks), with guarded retry for the S/4HANA ED064 batch quirk. Publish/unpublish OData service bindings (SRVB) |
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** Local source transfer helper. No SAP connection or ARC-1 configuration is loaded. */
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { closeSync, constants, fstatSync, openSync, readSync } from 'node:fs';
|
|
5
|
+
|
|
6
|
+
const SOURCE_LIMIT = 200_000;
|
|
7
|
+
const ENVELOPE_LIMIT = 300_000;
|
|
8
|
+
|
|
9
|
+
function readBounded(fd, limit) {
|
|
10
|
+
const bytes = Buffer.alloc(limit + 1);
|
|
11
|
+
let size = 0;
|
|
12
|
+
while (size < bytes.length) {
|
|
13
|
+
const count = readSync(fd, bytes, size, bytes.length - size, null);
|
|
14
|
+
if (count === 0) break;
|
|
15
|
+
size += count;
|
|
16
|
+
}
|
|
17
|
+
if (size > limit) throw new Error(`Input exceeds ${limit} bytes; use a smaller source part.`);
|
|
18
|
+
return bytes.subarray(0, size);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function decode(bytes) {
|
|
22
|
+
return new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function inspect(source) {
|
|
26
|
+
if (typeof source !== 'string' || !source || source.includes('\0'))
|
|
27
|
+
throw new Error('Source must be non-empty UTF-8 text without NUL characters.');
|
|
28
|
+
if (source.startsWith('\ufeff'))
|
|
29
|
+
throw new Error('Source starts with a UTF-8 BOM; save the file as UTF-8 without BOM.');
|
|
30
|
+
const bytes = Buffer.from(source, 'utf8');
|
|
31
|
+
// JSON can contain lone surrogates; never silently replace them during verification.
|
|
32
|
+
if (decode(bytes) !== source) throw new Error('Source contains invalid Unicode.');
|
|
33
|
+
if (bytes.length > SOURCE_LIMIT) throw new Error(`Source exceeds ${SOURCE_LIMIT} bytes.`);
|
|
34
|
+
return { sourceBytes: bytes.length, sourceSha256: createHash('sha256').update(bytes).digest('hex') };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function readFile(path) {
|
|
38
|
+
// Non-blocking open lets us refuse FIFOs instead of waiting for a writer on POSIX.
|
|
39
|
+
const fd = openSync(path, constants.O_RDONLY | (constants.O_NONBLOCK ?? 0));
|
|
40
|
+
try {
|
|
41
|
+
const stat = fstatSync(fd);
|
|
42
|
+
if (!stat.isFile()) throw new Error('Source path must be a regular file.');
|
|
43
|
+
if (stat.size > SOURCE_LIMIT) throw new Error(`Source exceeds ${SOURCE_LIMIT} bytes.`);
|
|
44
|
+
const source = decode(readBounded(fd, SOURCE_LIMIT));
|
|
45
|
+
return { source, ...inspect(source) };
|
|
46
|
+
} finally {
|
|
47
|
+
closeSync(fd);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function verify(envelope) {
|
|
52
|
+
if (!envelope || typeof envelope !== 'object' || Array.isArray(envelope))
|
|
53
|
+
throw new Error('Expected a source envelope.');
|
|
54
|
+
const actual = inspect(envelope.source);
|
|
55
|
+
if (envelope.sourceBytes !== actual.sourceBytes || envelope.sourceSha256 !== actual.sourceSha256)
|
|
56
|
+
throw new Error('Source integrity mismatch; refuse SAPWrite.');
|
|
57
|
+
return { verified: true, ...actual };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function readEnvelope() {
|
|
61
|
+
const input = decode(readBounded(0, ENVELOPE_LIMIT));
|
|
62
|
+
try {
|
|
63
|
+
return JSON.parse(input);
|
|
64
|
+
} catch {
|
|
65
|
+
// JSON parser errors can include source excerpts; do not echo them.
|
|
66
|
+
throw new Error('Invalid source envelope JSON.');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
const [command, path, ...extra] = process.argv.slice(2);
|
|
72
|
+
let result;
|
|
73
|
+
if (command === 'read' && path && extra.length === 0) result = readFile(path);
|
|
74
|
+
else if (command === 'verify' && path === undefined) result = verify(readEnvelope());
|
|
75
|
+
else throw new Error('Usage: arc1-source read FILE | arc1-source verify < envelope.json');
|
|
76
|
+
const json = JSON.stringify(result);
|
|
77
|
+
if (Buffer.byteLength(json) + 1 > ENVELOPE_LIMIT)
|
|
78
|
+
throw new Error(`Encoded envelope exceeds ${ENVELOPE_LIMIT} bytes.`);
|
|
79
|
+
process.stdout.write(`${json}\n`);
|
|
80
|
+
} catch (error) {
|
|
81
|
+
process.stderr.write(`arc1-source: ${error instanceof Error ? error.message : 'Source transfer failed'}\n`);
|
|
82
|
+
process.exitCode = 1;
|
|
83
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Text-part PUTs use 406 for application errors too. SADT_RESOURCE identifies
|
|
2
|
+
* framework negotiation; changing Accept cannot fix a structured application error. */
|
|
3
|
+
export declare function acceptFallback(body: string, accept: string | undefined, method: string, path: string): string | undefined;
|
|
4
|
+
//# sourceMappingURL=accept-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accept-fallback.d.ts","sourceRoot":"","sources":["../../src/adt/accept-fallback.ts"],"names":[],"mappings":"AAEA;uFACuF;AACvF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAyBpB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AdtApiError } from './errors.js';
|
|
2
|
+
/** Text-part PUTs use 406 for application errors too. SADT_RESOURCE identifies
|
|
3
|
+
* framework negotiation; changing Accept cannot fix a structured application error. */
|
|
4
|
+
export function acceptFallback(body, accept, method, path) {
|
|
5
|
+
if (method === 'PUT' &&
|
|
6
|
+
/^\/sap\/bc\/adt\/textelements\/(classes|programs|functiongroups)\/[^/]+\/source\/(symbols|selections|headings)$/.test(path)) {
|
|
7
|
+
const props = AdtApiError.extractProperties(body);
|
|
8
|
+
const id = props['T100KEY-ID'] ?? props['T100KEY-MSGID'];
|
|
9
|
+
if (id && id !== 'SADT_RESOURCE')
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const inferred = body.match(/application\/[\w.+-]+(?:\/[\w.+-]+)?/)?.[0];
|
|
13
|
+
if (inferred && inferred !== accept)
|
|
14
|
+
return inferred;
|
|
15
|
+
// SAP_BASIS 755 accepts v1 binding XML but rejects v2 without listing an accepted type (#991).
|
|
16
|
+
if (method === 'GET' &&
|
|
17
|
+
/^\/sap\/bc\/adt\/businessservices\/bindings\/[^/]+$/.test(path) &&
|
|
18
|
+
accept === 'application/vnd.sap.adt.businessservices.servicebinding.v2+xml') {
|
|
19
|
+
return 'application/vnd.sap.adt.businessservices.servicebinding.v1+xml';
|
|
20
|
+
}
|
|
21
|
+
if (accept && accept !== '*/*' && accept !== 'application/xml')
|
|
22
|
+
return 'application/xml';
|
|
23
|
+
if (accept === 'application/xml')
|
|
24
|
+
return '*/*';
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=accept-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accept-fallback.js","sourceRoot":"","sources":["../../src/adt/accept-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;uFACuF;AACvF,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,MAA0B,EAC1B,MAAc,EACd,IAAY;IAEZ,IACE,MAAM,KAAK,KAAK;QAChB,iHAAiH,CAAC,IAAI,CACpH,IAAI,CACL,EACD,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,EAAE,IAAI,EAAE,KAAK,eAAe;YAAE,OAAO,SAAS,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IACrD,+FAA+F;IAC/F,IACE,MAAM,KAAK,KAAK;QAChB,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC;QAChE,MAAM,KAAK,gEAAgE,EAC3E,CAAC;QACD,OAAO,gEAAgE,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IACzF,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AdtHttpClient } from './http.js';
|
|
2
|
+
import type { ApiReleaseStateInfo } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parse API release state XML from /sap/bc/adt/apireleases/{encoded-uri}.
|
|
5
|
+
*
|
|
6
|
+
* Returns structured release info with per-contract states (C0–C4),
|
|
7
|
+
* successor information, and catalog metadata.
|
|
8
|
+
*
|
|
9
|
+
* Expected root: element with releasableObject, c0Release–c4Release, apiCatalogData.
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseApiReleaseState(xml: string): ApiReleaseStateInfo;
|
|
12
|
+
export declare function assertApiReleaseStateConfirmed(info: ApiReleaseStateInfo, contract: string, expectedState: string, expectedVisibility?: {
|
|
13
|
+
useInSAPCloudPlatform: boolean;
|
|
14
|
+
useInKeyUserApps: boolean;
|
|
15
|
+
}): void;
|
|
16
|
+
/**
|
|
17
|
+
* Build the PUT body that sets an object's API release contract `state` (RELEASED / NOT_RELEASED).
|
|
18
|
+
*
|
|
19
|
+
* The apireleases GET (v10) returns a rich document, but the PUT to `…/apireleases/{uri}/{contract}`
|
|
20
|
+
* accepts only a NARROW, strictly-ordered subset — live reverse-engineered on a4h 758 + 816: the
|
|
21
|
+
* standalone contract block (`ars:contract="C1"`) carrying `status` + the successor scaffold, plus
|
|
22
|
+
* a sibling `apiCatalogData`/`ApiCatalogs` envelope. Response-only nodes (`atom:link`,
|
|
23
|
+
* `stateTransitions`, `transportObject`, `authValueObject`) are rejected with HTTP 400.
|
|
24
|
+
*
|
|
25
|
+
* Omitted visibility uses the contract's native defaults. Explicit selections respect its
|
|
26
|
+
* ReadOnly flags; other requirements remain native SAP validation (C0–C4 differ).
|
|
27
|
+
* NOT_RELEASED retains visibility. No fallback invents exposure.
|
|
28
|
+
*/
|
|
29
|
+
export declare const API_RELEASE_VISIBILITIES: readonly ['cloudDevelopment', 'keyUserApps'];
|
|
30
|
+
export type ApiReleaseVisibility = (typeof API_RELEASE_VISIBILITIES)[number][];
|
|
31
|
+
export declare function buildApiReleasePutBody(getXml: string, contract: string, state: string, visibility?: ApiReleaseVisibility): string;
|
|
32
|
+
export declare function setApiReleaseState(http: AdtHttpClient, objectUri: string, opts: {
|
|
33
|
+
state?: string;
|
|
34
|
+
contract?: string;
|
|
35
|
+
transport?: string;
|
|
36
|
+
visibility?: ApiReleaseVisibility;
|
|
37
|
+
}): Promise<ApiReleaseStateInfo & {
|
|
38
|
+
changed: boolean;
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=api-release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-release.d.ts","sourceRoot":"","sources":["../../src/adt/api-release.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG1E;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAoDrE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE;IAAE,qBAAqB,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,GACjF,IAAI,CAmBN;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,YAAI,kBAAkB,EAAE,aAAa,CAAU,CAAC;AACrF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAE/E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,oBAAoB,GAChC,MAAM,CAuER;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAAE,GACjG,OAAO,CAAC,mBAAmB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAwErD"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { AdtApiError, AdtError } from './errors.js';
|
|
2
|
+
import { parseXml } from './xml-parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parse API release state XML from /sap/bc/adt/apireleases/{encoded-uri}.
|
|
5
|
+
*
|
|
6
|
+
* Returns structured release info with per-contract states (C0–C4),
|
|
7
|
+
* successor information, and catalog metadata.
|
|
8
|
+
*
|
|
9
|
+
* Expected root: element with releasableObject, c0Release–c4Release, apiCatalogData.
|
|
10
|
+
*/
|
|
11
|
+
export function parseApiReleaseState(xml) {
|
|
12
|
+
const parsed = parseXml(xml);
|
|
13
|
+
// The root element name varies — find the first non-declaration key
|
|
14
|
+
const rootKey = Object.keys(parsed).find((k) => !k.startsWith('?'));
|
|
15
|
+
const root = (rootKey ? parsed[rootKey] : parsed);
|
|
16
|
+
// releasableObject attrs
|
|
17
|
+
const relObj = (root.releasableObject ?? {});
|
|
18
|
+
// Parse C0–C4 contract releases
|
|
19
|
+
const contracts = [];
|
|
20
|
+
for (const key of ['c0Release', 'c1Release', 'c2Release', 'c3Release', 'c4Release']) {
|
|
21
|
+
const release = root[key];
|
|
22
|
+
if (!release)
|
|
23
|
+
continue;
|
|
24
|
+
const status = (release.status ?? {});
|
|
25
|
+
const successorsContainer = release.successors;
|
|
26
|
+
const successorArr = [];
|
|
27
|
+
if (successorsContainer) {
|
|
28
|
+
const succs = Array.isArray(successorsContainer.successor)
|
|
29
|
+
? successorsContainer.successor
|
|
30
|
+
: successorsContainer.successor
|
|
31
|
+
? [successorsContainer.successor]
|
|
32
|
+
: [];
|
|
33
|
+
for (const s of succs) {
|
|
34
|
+
successorArr.push({
|
|
35
|
+
uri: String(s['@_uri'] ?? ''),
|
|
36
|
+
type: String(s['@_type'] ?? ''),
|
|
37
|
+
name: String(s['@_name'] ?? ''),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
contracts.push({
|
|
42
|
+
contract: String(release['@_contract'] ?? key.replace('Release', '').toUpperCase()),
|
|
43
|
+
state: String(status['@_state'] ?? ''),
|
|
44
|
+
stateDescription: String(status['@_stateDescription'] ?? ''),
|
|
45
|
+
useInKeyUserApps: String(release['@_useInKeyUserApps'] ?? 'false') === 'true',
|
|
46
|
+
useInSAPCloudPlatform: String(release['@_useInSAPCloudPlatform'] ?? 'false') === 'true',
|
|
47
|
+
successors: successorArr,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// apiCatalogData attrs
|
|
51
|
+
const catalog = (root.apiCatalogData ?? {});
|
|
52
|
+
return {
|
|
53
|
+
objectUri: String(relObj['@_uri'] ?? ''),
|
|
54
|
+
objectType: String(relObj['@_type'] ?? ''),
|
|
55
|
+
objectName: String(relObj['@_name'] ?? ''),
|
|
56
|
+
contracts,
|
|
57
|
+
isAnyContractReleased: String(catalog['@_isAnyContractReleased'] ?? 'false') === 'true',
|
|
58
|
+
isAnyAssignmentPossible: String(catalog['@_isAnyAssignmentPossible'] ?? 'false') === 'true',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export function assertApiReleaseStateConfirmed(info, contract, expectedState, expectedVisibility) {
|
|
62
|
+
const c = contract.toUpperCase();
|
|
63
|
+
const confirmedContract = info.contracts.find((release) => release.contract.toUpperCase() === c);
|
|
64
|
+
if (!confirmedContract) {
|
|
65
|
+
throw new Error(`API release contract ${c} read-back did not include the contract after PUT.`);
|
|
66
|
+
}
|
|
67
|
+
if (confirmedContract.state !== expectedState) {
|
|
68
|
+
throw new Error(`API release contract ${c} read-back state is ${confirmedContract.state || '(missing)'}, expected ${expectedState}.`);
|
|
69
|
+
}
|
|
70
|
+
if (expectedState === 'RELEASED' &&
|
|
71
|
+
expectedVisibility &&
|
|
72
|
+
(confirmedContract.useInSAPCloudPlatform !== expectedVisibility.useInSAPCloudPlatform ||
|
|
73
|
+
confirmedContract.useInKeyUserApps !== expectedVisibility.useInKeyUserApps)) {
|
|
74
|
+
throw new Error(`API release contract ${c} read-back visibility does not match the requested visibility.`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build the PUT body that sets an object's API release contract `state` (RELEASED / NOT_RELEASED).
|
|
79
|
+
*
|
|
80
|
+
* The apireleases GET (v10) returns a rich document, but the PUT to `…/apireleases/{uri}/{contract}`
|
|
81
|
+
* accepts only a NARROW, strictly-ordered subset — live reverse-engineered on a4h 758 + 816: the
|
|
82
|
+
* standalone contract block (`ars:contract="C1"`) carrying `status` + the successor scaffold, plus
|
|
83
|
+
* a sibling `apiCatalogData`/`ApiCatalogs` envelope. Response-only nodes (`atom:link`,
|
|
84
|
+
* `stateTransitions`, `transportObject`, `authValueObject`) are rejected with HTTP 400.
|
|
85
|
+
*
|
|
86
|
+
* Omitted visibility uses the contract's native defaults. Explicit selections respect its
|
|
87
|
+
* ReadOnly flags; other requirements remain native SAP validation (C0–C4 differ).
|
|
88
|
+
* NOT_RELEASED retains visibility. No fallback invents exposure.
|
|
89
|
+
*/
|
|
90
|
+
export const API_RELEASE_VISIBILITIES = ['cloudDevelopment', 'keyUserApps'];
|
|
91
|
+
export function buildApiReleasePutBody(getXml, contract, state, visibility) {
|
|
92
|
+
const c = contract.toUpperCase();
|
|
93
|
+
const targetState = state.toUpperCase();
|
|
94
|
+
if (targetState !== 'RELEASED' && targetState !== 'NOT_RELEASED') {
|
|
95
|
+
throw new Error(`API release state must be RELEASED or NOT_RELEASED, got ${state}.`);
|
|
96
|
+
}
|
|
97
|
+
if (visibility !== undefined &&
|
|
98
|
+
(targetState !== 'RELEASED' ||
|
|
99
|
+
!Array.isArray(visibility) ||
|
|
100
|
+
visibility.some((value) => !API_RELEASE_VISIBILITIES.includes(value)) ||
|
|
101
|
+
new Set(visibility).size !== visibility.length)) {
|
|
102
|
+
throw new Error('apiVisibility must contain unique cloudDevelopment/keyUserApps selections and requires RELEASED.');
|
|
103
|
+
}
|
|
104
|
+
const tag = `c${c.slice(1)}Release`; // 'C1' -> 'c1Release'
|
|
105
|
+
// The behaviour block lists the *Default visibility flags (self-closing element with "Default" attrs).
|
|
106
|
+
const behaviour = new RegExp(`<ars:${tag}\\b([^>]*Default[^>]*)/>`).exec(getXml)?.[1] ?? '';
|
|
107
|
+
const cloudDefault = /useInSAPCloudPlatformDefault="true"/.test(behaviour);
|
|
108
|
+
const keyUserDefault = /useInKeyUserAppsDefault="true"/.test(behaviour);
|
|
109
|
+
// The standalone contract block's opening tag (has ars:contract="<C>").
|
|
110
|
+
const openTagMatch = new RegExp(`<ars:${tag}\\b[^>]*\\bars:contract="${c}"[^>]*>`).exec(getXml);
|
|
111
|
+
if (!openTagMatch) {
|
|
112
|
+
// Only the contracts the object type supports appear as settable `ars:contract="Cn"` blocks
|
|
113
|
+
// (e.g. SRVD supports only C0, classic VIEW only C3) — list them so the caller can retry.
|
|
114
|
+
const supported = [...new Set([...getXml.matchAll(/ars:contract="(C\d)"/g)].map((m) => m[1]))];
|
|
115
|
+
const hint = supported.length ? ` This object supports: ${supported.join(', ')}.` : '';
|
|
116
|
+
throw new Error(`API release contract ${c} is not available for this object.${hint}`);
|
|
117
|
+
}
|
|
118
|
+
let openTag = openTagMatch[0];
|
|
119
|
+
if (targetState === 'RELEASED') {
|
|
120
|
+
// Set both visibility flags from the contract's own defaults — both-false stays both-false (no
|
|
121
|
+
// invented exposure); SAP decides whether that's acceptable for this contract.
|
|
122
|
+
const setAttr = (tagText, attr, value) => {
|
|
123
|
+
const rendered = `${attr}="${value}"`;
|
|
124
|
+
return new RegExp(`\\b${attr}="[^"]*"`).test(tagText)
|
|
125
|
+
? tagText.replace(new RegExp(`\\b${attr}="[^"]*"`), rendered)
|
|
126
|
+
: tagText.replace(/>$/, ` ${rendered}>`);
|
|
127
|
+
};
|
|
128
|
+
const selected = (selection, attribute, fallback) => {
|
|
129
|
+
if (visibility === undefined)
|
|
130
|
+
return fallback;
|
|
131
|
+
const requested = visibility.includes(selection);
|
|
132
|
+
const readOnly = new RegExp(`\\b${attribute}ReadOnly="(true|false)"`).exec(behaviour)?.[1];
|
|
133
|
+
const current = new RegExp(`\\b${attribute}="(true|false)"`).exec(openTagMatch[0])?.[1];
|
|
134
|
+
const defaultKnown = new RegExp(`\\b${attribute}Default="(?:true|false)"`).test(behaviour);
|
|
135
|
+
if (readOnly === undefined || current === undefined || !defaultKnown) {
|
|
136
|
+
throw new Error(`API release contract ${c} has no complete ${selection} visibility metadata.`);
|
|
137
|
+
}
|
|
138
|
+
if (readOnly === 'true' && requested !== (current === 'true') && requested !== fallback) {
|
|
139
|
+
throw new Error(`API release contract ${c} marks ${selection} visibility read-only.`);
|
|
140
|
+
}
|
|
141
|
+
return requested;
|
|
142
|
+
};
|
|
143
|
+
openTag = setAttr(openTag, 'ars:useInSAPCloudPlatform', selected('cloudDevelopment', 'useInSAPCloudPlatform', cloudDefault));
|
|
144
|
+
openTag = setAttr(openTag, 'ars:useInKeyUserApps', selected('keyUserApps', 'useInKeyUserApps', keyUserDefault));
|
|
145
|
+
}
|
|
146
|
+
const contractBlock = `${openTag}<ars:status ars:state="${targetState}"/>` +
|
|
147
|
+
'<ars:useConceptAsSuccessor>false</ars:useConceptAsSuccessor><ars:successors/><ars:successorConceptName/>' +
|
|
148
|
+
`</ars:${tag}>`;
|
|
149
|
+
return ('<?xml version="1.0" encoding="utf-8"?>' +
|
|
150
|
+
'<ars:apiRelease xmlns:ars="http://www.sap.com/adt/ars" xmlns:adtcore="http://www.sap.com/adt/core">' +
|
|
151
|
+
contractBlock +
|
|
152
|
+
'<ars:apiCatalogData ars:isAnyAssignmentPossible="true" ars:isAnyContractReleased="true"><ars:ApiCatalogs/></ars:apiCatalogData>' +
|
|
153
|
+
'</ars:apiRelease>');
|
|
154
|
+
}
|
|
155
|
+
export async function setApiReleaseState(http, objectUri, opts) {
|
|
156
|
+
const state = (opts.state ?? 'RELEASED').toUpperCase();
|
|
157
|
+
const contract = (opts.contract ?? 'C1').toUpperCase();
|
|
158
|
+
if (state !== 'RELEASED' && state !== 'NOT_RELEASED') {
|
|
159
|
+
throw new Error(`apiState must be RELEASED or NOT_RELEASED, got ${opts.state}.`);
|
|
160
|
+
}
|
|
161
|
+
const accept = 'application/vnd.sap.adt.apirelease.v10+xml';
|
|
162
|
+
const encoded = encodeURIComponent(objectUri);
|
|
163
|
+
const current = await http.get(`/sap/bc/adt/apireleases/${encoded}`, { Accept: accept });
|
|
164
|
+
const body = buildApiReleasePutBody(current.body, contract, state, opts.visibility);
|
|
165
|
+
const path = `/sap/bc/adt/apireleases/${encoded}/${contract.toLowerCase()}`;
|
|
166
|
+
const expectedVisibility = {
|
|
167
|
+
useInSAPCloudPlatform: /ars:useInSAPCloudPlatform="true"/.test(body),
|
|
168
|
+
useInKeyUserApps: /ars:useInKeyUserApps="true"/.test(body),
|
|
169
|
+
};
|
|
170
|
+
let changed = true;
|
|
171
|
+
try {
|
|
172
|
+
await http.put(opts.transport ? `${path}?request=${encodeURIComponent(opts.transport)}` : path, body, accept, {
|
|
173
|
+
Accept: accept,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
// SAP returns 400 "No changes were made" when the contract is already in the requested state.
|
|
178
|
+
// Treat that as an idempotent no-op (the desired state already holds — confirmed via read-back
|
|
179
|
+
// below) rather than surfacing a confusing error for "release something already released".
|
|
180
|
+
if (err instanceof AdtApiError &&
|
|
181
|
+
err.statusCode === 400 &&
|
|
182
|
+
/no changes were made/i.test(`${err.message} ${err.responseBody ?? ''}`)) {
|
|
183
|
+
changed = false;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
throw err;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// The PUT outcome stands: a read-back that cannot confirm it must not look like a refused request.
|
|
190
|
+
const unconfirmed = `SAP ${changed ? 'accepted' : 'reported no change for'} the ${contract} ${state} request for ${objectUri}, ` +
|
|
191
|
+
'but the read-back did not confirm it, so the resulting state is unconfirmed. ' +
|
|
192
|
+
'Read SAPRead(type="API_STATE") for this object before retrying or deleting it.';
|
|
193
|
+
let confirmed;
|
|
194
|
+
try {
|
|
195
|
+
confirmed = parseApiReleaseState((await http.get(`/sap/bc/adt/apireleases/${encoded}`, { Accept: accept })).body);
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
if (error instanceof AdtError)
|
|
199
|
+
error.extraHint = error.extraHint ? `${unconfirmed}\n${error.extraHint}` : unconfirmed;
|
|
200
|
+
else if (error instanceof Error)
|
|
201
|
+
error.message = `${unconfirmed} ${error.message}`;
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
const result = confirmed.contracts.find((release) => release.contract.toUpperCase() === contract);
|
|
205
|
+
if (!result)
|
|
206
|
+
throw new Error(`API release contract ${contract} is missing from the read-back. ${unconfirmed}`);
|
|
207
|
+
// On a real write, assert the full target (state + requested visibility). On an idempotent no-op,
|
|
208
|
+
// explicit selections still require exact visibility; omission keeps the existing state-only no-op check.
|
|
209
|
+
try {
|
|
210
|
+
assertApiReleaseStateConfirmed(confirmed, contract, state, changed || opts.visibility !== undefined ? expectedVisibility : undefined);
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
// A failed postcondition does not undo SAP's PUT. Expose the actual state so callers
|
|
214
|
+
// can reconcile an applied release instead of treating this as a rejected mutation.
|
|
215
|
+
throw new Error(`${error instanceof Error ? error.message : String(error)} ` +
|
|
216
|
+
`Confirmed SAP result: ${JSON.stringify({ ...confirmed, changed })}.` +
|
|
217
|
+
(result.state === 'RELEASED'
|
|
218
|
+
? ` If the release is unintended, call SAPManage set_api_state with objectUri="${objectUri}", ` +
|
|
219
|
+
`contract="${contract}" and apiState="NOT_RELEASED"; verify API_STATE before deleting the object.`
|
|
220
|
+
: ''));
|
|
221
|
+
}
|
|
222
|
+
return { ...confirmed, changed };
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=api-release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-release.js","sourceRoot":"","sources":["../../src/adt/api-release.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-trace.d.ts","sourceRoot":"","sources":["../../src/adt/authorization-trace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAA2B,cAAc,EAAE,MAAM,YAAY,CAAC;AA2DpG,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"authorization-trace.d.ts","sourceRoot":"","sources":["../../src/adt/authorization-trace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAA2B,cAAc,EAAE,MAAM,YAAY,CAAC;AA2DpG,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwBpD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACpC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAC3B,cAAc,EAAE,CAmClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwCD,mEAAmE;AACnE,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,4BAAiC,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAoDnC"}
|
|
@@ -59,6 +59,7 @@ function rcLabel(rc) {
|
|
|
59
59
|
}
|
|
60
60
|
/** Convert SAP's UTC YYYYMMDDHHMMSS FIRSTCALL value to ISO-8601. */
|
|
61
61
|
export function parseFirstCallTs(raw) {
|
|
62
|
+
raw = raw.trim(); // SAP's numeric preview values can include a trailing sign blank.
|
|
62
63
|
if (!/^\d{14}$/.test(raw))
|
|
63
64
|
return '';
|
|
64
65
|
const year = Number(raw.slice(0, 4));
|
|
@@ -92,7 +93,7 @@ export function decodeAuthTraceRows(rows, fieldNames, opts) {
|
|
|
92
93
|
});
|
|
93
94
|
const rc = Number(row.RC);
|
|
94
95
|
const program = row.ABAPPROG ?? '';
|
|
95
|
-
const line = row.ABAPLINE ?? '';
|
|
96
|
+
const line = (row.ABAPLINE ?? '').trim();
|
|
96
97
|
return {
|
|
97
98
|
user: row.USERNAME ?? '',
|
|
98
99
|
application: row.NAME || row.TYPE || '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-trace.js","sourceRoot":"","sources":["../../src/adt/authorization-trace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/D,MAAM,kBAAkB,GAAG;IACzB,UAAU;IACV,MAAM;IACN,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,WAAW;CACH,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACA,CAAC;AAEX,MAAM,kBAAkB,GAAG;IACzB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAC;AAEX,MAAM,cAAc,GAA2B;IAC7C,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,kBAAkB;IACrB,EAAE,EAAE,kBAAkB;CACvB,CAAC;AAEF,SAAS,OAAO,CAAC,EAAU;IACzB,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,GAAG,CAAC;AACnD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEjF,IACE,SAAS,CAAC,cAAc,EAAE,KAAK,IAAI;QACnC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QACrC,SAAS,CAAC,UAAU,EAAE,KAAK,GAAG;QAC9B,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI;QAChC,SAAS,CAAC,aAAa,EAAE,KAAK,MAAM;QACpC,SAAS,CAAC,aAAa,EAAE,KAAK,MAAM,EACpC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,IAA8B,EAC9B,UAAoC,EACpC,IAA4B;IAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAkB,EAAE;QAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"authorization-trace.js","sourceRoot":"","sources":["../../src/adt/authorization-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-structure.d.ts","sourceRoot":"","sources":["../../src/adt/class-structure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASlE,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI5D;AAuBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyB7D;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAY/F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrF;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAG5G;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrG;AAID,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/C,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"class-structure.d.ts","sourceRoot":"","sources":["../../src/adt/class-structure.ts"],"names":[],"mappings":"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"}
|
|
@@ -177,7 +177,8 @@ export function insertMethodPair(source, structure, opts) {
|
|
|
177
177
|
const newImplEndLine = structure.classImplementationBlock.er + insertedCount;
|
|
178
178
|
const indent = opts.implIndent ?? ' ';
|
|
179
179
|
const stub = `${indent}METHOD ${opts.methodName.toLowerCase()}.\n${indent}ENDMETHOD.`;
|
|
180
|
-
|
|
180
|
+
const needsSeparator = splitLines(next)[newImplEndLine - 2]?.trim() !== '';
|
|
181
|
+
next = insertBeforeLine(next, newImplEndLine, `${needsSeparator ? '\n' : ''}${stub}`);
|
|
181
182
|
}
|
|
182
183
|
return next;
|
|
183
184
|
}
|
|
@@ -191,11 +192,31 @@ export function insertMethodPair(source, structure, opts) {
|
|
|
191
192
|
export function removeMethodPair(source, method) {
|
|
192
193
|
let next = source;
|
|
193
194
|
if (method.implementation) {
|
|
194
|
-
next =
|
|
195
|
+
next = removeLinesAndJoinSpacing(next, method.implementation.sr, method.implementation.er);
|
|
195
196
|
}
|
|
196
|
-
|
|
197
|
+
const lines = splitLines(next);
|
|
198
|
+
let start = method.definition.sr;
|
|
199
|
+
// SAP's METHODS range excludes its attached ABAP Doc. Do not consume ordinary comments
|
|
200
|
+
// or cross a blank line, which could attach documentation to a different declaration.
|
|
201
|
+
while (start > 1 && /^[ \t]*"!/.test(lines[start - 2]))
|
|
202
|
+
start--;
|
|
203
|
+
next = removeLinesAndJoinSpacing(next, start, method.definition.er);
|
|
197
204
|
return next;
|
|
198
205
|
}
|
|
206
|
+
/** Only collapse the blank run touching this deletion; leave unrelated spacing intact. */
|
|
207
|
+
function removeLinesAndJoinSpacing(source, sr, er) {
|
|
208
|
+
const next = spliceLines(source, sr, er, '');
|
|
209
|
+
const lines = splitLines(next);
|
|
210
|
+
let start = sr - 1;
|
|
211
|
+
let end = start;
|
|
212
|
+
while (start > 0 && lines[start - 1].trim() === '')
|
|
213
|
+
start--;
|
|
214
|
+
while (end < lines.length && lines[end].trim() === '')
|
|
215
|
+
end++;
|
|
216
|
+
if (end - start > 1)
|
|
217
|
+
lines.splice(start + 1, end - start - 1);
|
|
218
|
+
return joinLines(lines, detectEol(source));
|
|
219
|
+
}
|
|
199
220
|
// ─── moveMethodDefinition: DEFINITION-only section move ────────────────
|
|
200
221
|
/**
|
|
201
222
|
* Move a method's METHODS clause from its current visibility section to a new
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-structure.js","sourceRoot":"","sources":["../../src/adt/class-structure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"class-structure.js","sourceRoot":"","sources":["../../src/adt/class-structure.ts"],"names":[],"mappings":"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"}
|