arc-1 1.1.2 → 1.3.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 +16 -6
- package/bin/start-cf.sh +32 -0
- package/dist/adt/atc-batch.d.ts +71 -0
- package/dist/adt/atc-batch.d.ts.map +1 -0
- package/dist/adt/atc-batch.js +182 -0
- package/dist/adt/atc-batch.js.map +1 -0
- package/dist/adt/atc.d.ts +34 -0
- package/dist/adt/atc.d.ts.map +1 -1
- package/dist/adt/atc.js +58 -12
- package/dist/adt/atc.js.map +1 -1
- package/dist/adt/aunit.d.ts.map +1 -1
- package/dist/adt/aunit.js +50 -7
- package/dist/adt/aunit.js.map +1 -1
- package/dist/adt/bounded-response.d.ts +12 -0
- package/dist/adt/bounded-response.d.ts.map +1 -0
- package/dist/adt/bounded-response.js +242 -0
- package/dist/adt/bounded-response.js.map +1 -0
- package/dist/adt/ci-quality-xml.d.ts +44 -0
- package/dist/adt/ci-quality-xml.d.ts.map +1 -0
- package/dist/adt/ci-quality-xml.js +98 -0
- package/dist/adt/ci-quality-xml.js.map +1 -0
- package/dist/adt/ci-quality.d.ts +64 -0
- package/dist/adt/ci-quality.d.ts.map +1 -0
- package/dist/adt/ci-quality.js +132 -0
- package/dist/adt/ci-quality.js.map +1 -0
- package/dist/adt/client.d.ts +55 -34
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +130 -169
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/config.d.ts +6 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js +3 -0
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/data-result-context.d.ts +46 -0
- package/dist/adt/data-result-context.d.ts.map +1 -0
- package/dist/adt/data-result-context.js +118 -0
- package/dist/adt/data-result-context.js.map +1 -0
- package/dist/adt/data-source-name.d.ts +60 -0
- package/dist/adt/data-source-name.d.ts.map +1 -0
- package/dist/adt/data-source-name.js +156 -0
- package/dist/adt/data-source-name.js.map +1 -0
- package/dist/adt/data-source-policy.d.ts +139 -0
- package/dist/adt/data-source-policy.d.ts.map +1 -0
- package/dist/adt/data-source-policy.js +759 -0
- package/dist/adt/data-source-policy.js.map +1 -0
- package/dist/adt/ddic-xml.d.ts +78 -4
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +647 -54
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts +1 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +24 -4
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/errors.d.ts +10 -0
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +17 -0
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/http-deadline.d.ts +10 -0
- package/dist/adt/http-deadline.d.ts.map +1 -1
- package/dist/adt/http-deadline.js +7 -0
- package/dist/adt/http-deadline.js.map +1 -1
- package/dist/adt/http.d.ts +6 -3
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +94 -55
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/internal-data-operations.d.ts +56 -0
- package/dist/adt/internal-data-operations.d.ts.map +1 -0
- package/dist/adt/internal-data-operations.js +99 -0
- package/dist/adt/internal-data-operations.js.map +1 -0
- package/dist/adt/package-contents.d.ts +12 -0
- package/dist/adt/package-contents.d.ts.map +1 -0
- package/dist/adt/package-contents.js +19 -0
- package/dist/adt/package-contents.js.map +1 -0
- package/dist/adt/relation-objects.d.ts +385 -0
- package/dist/adt/relation-objects.d.ts.map +1 -0
- package/dist/adt/relation-objects.js +262 -0
- package/dist/adt/relation-objects.js.map +1 -0
- package/dist/adt/repository-relations.d.ts +41 -0
- package/dist/adt/repository-relations.d.ts.map +1 -0
- package/dist/adt/repository-relations.js +246 -0
- package/dist/adt/repository-relations.js.map +1 -0
- package/dist/adt/request-attempt-budget.d.ts +26 -0
- package/dist/adt/request-attempt-budget.d.ts.map +1 -0
- package/dist/adt/request-attempt-budget.js +63 -0
- package/dist/adt/request-attempt-budget.js.map +1 -0
- package/dist/adt/result-limits.d.ts +3 -0
- package/dist/adt/result-limits.d.ts.map +1 -0
- package/dist/adt/result-limits.js +7 -0
- package/dist/adt/result-limits.js.map +1 -0
- package/dist/adt/safety.d.ts +2 -0
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/safety.js +6 -0
- package/dist/adt/safety.js.map +1 -1
- package/dist/adt/server-driven.d.ts +6 -1
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +24 -20
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/sql-source-analyzer.d.ts +12 -0
- package/dist/adt/sql-source-analyzer.d.ts.map +1 -0
- package/dist/adt/sql-source-analyzer.js +158 -0
- package/dist/adt/sql-source-analyzer.js.map +1 -0
- package/dist/adt/table-query.d.ts +43 -0
- package/dist/adt/table-query.d.ts.map +1 -0
- package/dist/adt/table-query.js +160 -0
- package/dist/adt/table-query.js.map +1 -0
- package/dist/adt/text-elements.d.ts +48 -0
- package/dist/adt/text-elements.d.ts.map +1 -0
- package/dist/adt/text-elements.js +116 -0
- package/dist/adt/text-elements.js.map +1 -0
- package/dist/adt/types.d.ts +16 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/uiad.d.ts +19 -0
- package/dist/adt/uiad.d.ts.map +1 -0
- package/dist/adt/uiad.js +173 -0
- package/dist/adt/uiad.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +12 -15
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +44 -12
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +4 -1
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/cache.d.ts +3 -23
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js +2 -3
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +6 -25
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +3 -45
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cache/memory.d.ts +1 -4
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +1 -10
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +1 -3
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +2 -17
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cli-checks.d.ts +3 -0
- package/dist/cli-checks.d.ts.map +1 -1
- package/dist/cli-checks.js +16 -0
- package/dist/cli-checks.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -2
- package/dist/cli.js.map +1 -1
- package/dist/context/compressor.d.ts +2 -3
- package/dist/context/compressor.d.ts.map +1 -1
- package/dist/context/compressor.js +30 -49
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/contract.d.ts +5 -0
- package/dist/context/contract.d.ts.map +1 -1
- package/dist/context/contract.js +2 -2
- package/dist/context/contract.js.map +1 -1
- package/dist/context/deps.d.ts +11 -0
- package/dist/context/deps.d.ts.map +1 -1
- package/dist/context/deps.js +2 -2
- package/dist/context/deps.js.map +1 -1
- package/dist/context/parse-cache.d.ts +23 -0
- package/dist/context/parse-cache.d.ts.map +1 -0
- package/dist/context/parse-cache.js +71 -0
- package/dist/context/parse-cache.js.map +1 -0
- package/dist/context/relation-walk.d.ts +48 -0
- package/dist/context/relation-walk.d.ts.map +1 -0
- package/dist/context/relation-walk.js +137 -0
- package/dist/context/relation-walk.js.map +1 -0
- package/dist/context/types.d.ts +4 -4
- package/dist/context/types.d.ts.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 +33 -56
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/activation-results.d.ts +3 -0
- package/dist/handlers/activation-results.d.ts.map +1 -0
- package/dist/handlers/activation-results.js +8 -0
- package/dist/handlers/activation-results.js.map +1 -0
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +8 -32
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/data-element-fields.d.ts +26 -0
- package/dist/handlers/data-element-fields.d.ts.map +1 -0
- package/dist/handlers/data-element-fields.js +27 -0
- package/dist/handlers/data-element-fields.js.map +1 -0
- package/dist/handlers/diagnose-ci.d.ts +9 -0
- package/dist/handlers/diagnose-ci.d.ts.map +1 -0
- package/dist/handlers/diagnose-ci.js +120 -0
- package/dist/handlers/diagnose-ci.js.map +1 -0
- package/dist/handlers/diagnose-fields.d.ts +51 -0
- package/dist/handlers/diagnose-fields.d.ts.map +1 -0
- package/dist/handlers/diagnose-fields.js +48 -0
- package/dist/handlers/diagnose-fields.js.map +1 -0
- package/dist/handlers/diagnose.d.ts +4 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +41 -6
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts +3 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +96 -11
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +4 -3
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +4 -3
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/hyperfocused.js +1 -1
- package/dist/handlers/live-relations.d.ts +5 -0
- package/dist/handlers/live-relations.d.ts.map +1 -0
- package/dist/handlers/live-relations.js +89 -0
- package/dist/handlers/live-relations.js.map +1 -0
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +7 -4
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/navigate.d.ts +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +33 -7
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +6 -4
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +45 -10
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query-errors.d.ts +9 -1
- package/dist/handlers/query-errors.d.ts.map +1 -1
- package/dist/handlers/query-errors.js +40 -28
- package/dist/handlers/query-errors.js.map +1 -1
- package/dist/handlers/query.d.ts +2 -2
- package/dist/handlers/query.d.ts.map +1 -1
- package/dist/handlers/query.js +15 -22
- package/dist/handlers/query.js.map +1 -1
- package/dist/handlers/read.d.ts +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +112 -23
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/relation-input.d.ts +42 -0
- package/dist/handlers/relation-input.d.ts.map +1 -0
- package/dist/handlers/relation-input.js +22 -0
- package/dist/handlers/relation-input.js.map +1 -0
- package/dist/handlers/relation-tool.d.ts +5 -0
- package/dist/handlers/relation-tool.d.ts.map +1 -0
- package/dist/handlers/relation-tool.js +36 -0
- package/dist/handlers/relation-tool.js.map +1 -0
- package/dist/handlers/schemas.d.ts +119 -62
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +150 -13
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/search.d.ts +1 -1
- package/dist/handlers/search.d.ts.map +1 -1
- package/dist/handlers/search.js +43 -8
- package/dist/handlers/search.js.map +1 -1
- package/dist/handlers/tool-descriptions.d.ts.map +1 -1
- package/dist/handlers/tool-descriptions.js +12 -13
- package/dist/handlers/tool-descriptions.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +1 -0
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +4 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts +2 -3
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +139 -84
- 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 +23 -5
- package/dist/handlers/where-used.js.map +1 -1
- package/dist/handlers/write/batch-results.d.ts +28 -0
- package/dist/handlers/write/batch-results.d.ts.map +1 -0
- package/dist/handlers/write/batch-results.js +106 -0
- package/dist/handlers/write/batch-results.js.map +1 -0
- package/dist/handlers/write/create-transport.d.ts +7 -0
- package/dist/handlers/write/create-transport.d.ts.map +1 -0
- package/dist/handlers/write/create-transport.js +38 -0
- package/dist/handlers/write/create-transport.js.map +1 -0
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +276 -413
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/uiad.d.ts +8 -0
- package/dist/handlers/write/uiad.d.ts.map +1 -0
- package/dist/handlers/write/uiad.js +115 -0
- package/dist/handlers/write/uiad.js.map +1 -0
- package/dist/handlers/write/update-delete.d.ts +6 -6
- package/dist/handlers/write/update-delete.d.ts.map +1 -1
- package/dist/handlers/write/update-delete.js +46 -15
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +0 -6
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +88 -80
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +5 -1
- package/dist/handlers/write.js.map +1 -1
- package/dist/public/index.d.ts +1 -1
- package/dist/public/index.d.ts.map +1 -1
- package/dist/public/index.js +1 -1
- package/dist/public/index.js.map +1 -1
- package/dist/public/ui/app.js +0 -2
- package/dist/server/audit.d.ts +42 -1
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts +4 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +67 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/context.d.ts +5 -0
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js.map +1 -1
- package/dist/server/destination-registry.d.ts +10 -2
- package/dist/server/destination-registry.d.ts.map +1 -1
- package/dist/server/destination-registry.js +12 -3
- package/dist/server/destination-registry.js.map +1 -1
- package/dist/server/effective-policy-log.d.ts +2 -1
- package/dist/server/effective-policy-log.d.ts.map +1 -1
- package/dist/server/effective-policy-log.js +18 -2
- package/dist/server/effective-policy-log.js.map +1 -1
- package/dist/server/http.d.ts +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +1 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +4 -1
- package/dist/server/logger.js.map +1 -1
- package/dist/server/multi-target-runtime.d.ts.map +1 -1
- package/dist/server/multi-target-runtime.js +7 -2
- package/dist/server/multi-target-runtime.js.map +1 -1
- package/dist/server/multi-target-tools.d.ts.map +1 -1
- package/dist/server/multi-target-tools.js +3 -1
- package/dist/server/multi-target-tools.js.map +1 -1
- package/dist/server/runtime-memory.d.ts +13 -0
- package/dist/server/runtime-memory.d.ts.map +1 -0
- package/dist/server/runtime-memory.js +42 -0
- package/dist/server/runtime-memory.js.map +1 -0
- package/dist/server/server-instructions.d.ts +2 -0
- package/dist/server/server-instructions.d.ts.map +1 -0
- package/dist/server/server-instructions.js +33 -0
- package/dist/server/server-instructions.js.map +1 -0
- package/dist/server/server.d.ts +3 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +42 -78
- package/dist/server/server.js.map +1 -1
- package/dist/server/shutdown.d.ts +6 -0
- package/dist/server/shutdown.d.ts.map +1 -0
- package/dist/server/shutdown.js +52 -0
- package/dist/server/shutdown.js.map +1 -0
- package/dist/server/sinks/btp-auditlog.d.ts +10 -8
- package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
- package/dist/server/sinks/btp-auditlog.js +86 -68
- package/dist/server/sinks/btp-auditlog.js.map +1 -1
- package/dist/server/sinks/file.d.ts +1 -1
- package/dist/server/sinks/file.d.ts.map +1 -1
- package/dist/server/sinks/file.js +12 -21
- package/dist/server/sinks/file.js.map +1 -1
- package/dist/server/types.d.ts +8 -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/server/ui-state.d.ts.map +1 -1
- package/dist/server/ui-state.js +1 -0
- package/dist/server/ui-state.js.map +1 -1
- package/dist/server/ui.js +0 -2
- package/dist/server/ui.js.map +1 -1
- package/package.json +15 -13
package/dist/adt/client.d.ts
CHANGED
|
@@ -16,15 +16,18 @@
|
|
|
16
16
|
* This keeps the client class manageable (not a 2,400-line God class).
|
|
17
17
|
*/
|
|
18
18
|
import type { AdtClientConfig } from './config.js';
|
|
19
|
+
import { DataResultScope } from './data-result-context.js';
|
|
19
20
|
import { type TableTypeInfo } from './ddic-xml.js';
|
|
20
21
|
import { AdtHttpClient, type AdtResponse } from './http.js';
|
|
21
22
|
import type { AdtRequestOptions } from './http-deadline.js';
|
|
22
23
|
import { type PackageHierarchyResolver } from './package-hierarchy.js';
|
|
23
24
|
import { type SafetyConfig } from './safety.js';
|
|
25
|
+
import { buildTableQuerySql, clampPreviewRows } from './table-query.js';
|
|
26
|
+
import { type TextElementObjectType, type TextElementPart } from './text-elements.js';
|
|
24
27
|
import { clampSearchResults, toTextSearchObjectType } from './text-search.js';
|
|
25
28
|
import type { AdtObjectLookupResult, AdtSearchResult, ApiReleaseStateInfo, AuthorizationFieldInfo, BspAppInfo, BspFileNode, ClassMetadata, ClassStructure, DataElementInfo, DomainInfo, EnhancementImplementationInfo, FeatureToggleInfo, FunctionGroupStructure, FunctionModuleProperties, InactiveObject, MessageClassInfo, RevisionListResult, SourceSearchResult, StructuredClassResponse, TransactionInfo } from './types.js';
|
|
26
29
|
import { type DataPreviewMeta } from './xml-parser.js';
|
|
27
|
-
export { clampSearchResults, toTextSearchObjectType };
|
|
30
|
+
export { buildTableQuerySql, clampPreviewRows, clampSearchResults, toTextSearchObjectType };
|
|
28
31
|
export interface SourceReadResult {
|
|
29
32
|
source: string;
|
|
30
33
|
etag?: string;
|
|
@@ -43,27 +46,11 @@ export interface SourceReadOptions extends AdtRequestOptions {
|
|
|
43
46
|
version?: 'active' | 'inactive';
|
|
44
47
|
accept?: string;
|
|
45
48
|
}
|
|
46
|
-
/** Coerce a caller-supplied row limit into a safe positive integer in [1, MAX_TABLE_QUERY_ROWS].
|
|
47
|
-
* NaN / non-finite / non-positive / undefined fall back to the default (prevents `rowNumber=NaN`
|
|
48
|
-
* and unbounded result buffering). */
|
|
49
|
-
export declare function clampPreviewRows(requested: number | undefined, fallback?: number): number;
|
|
50
|
-
/**
|
|
51
|
-
* Build a safe SELECT statement from structured parameters.
|
|
52
|
-
* All identifiers are uppercased, stripped to word-chars + namespace slash, and rejected if empty.
|
|
53
|
-
* String values are single-quote escaped (doubled single quotes).
|
|
54
|
-
* IN/NOT IN values are strictly parsed as quoted literal lists (no subqueries).
|
|
55
|
-
* Raises if the table, any column, or any where-field is empty after sanitization.
|
|
56
|
-
* ORDER BY is intentionally omitted: the ADT freestyle endpoint rejects it on NW 7.50/7.51.
|
|
57
|
-
*/
|
|
58
|
-
export declare function buildTableQuerySql(tableName: string, columns?: string[], where?: Array<{
|
|
59
|
-
field: string;
|
|
60
|
-
op: string;
|
|
61
|
-
value?: string;
|
|
62
|
-
}>): string;
|
|
63
49
|
/** The five source includes a class keeps its revisions under. */
|
|
64
50
|
export declare const CLASS_REVISION_INCLUDES: readonly ['main', 'definitions', 'implementations', 'macros', 'testclasses'];
|
|
65
51
|
/** Types with an addressable revisions feed — derived, never hand-maintained. */
|
|
66
52
|
export declare const REVISION_TYPES: ReadonlySet<string>;
|
|
53
|
+
export { isTextElementObjectType, TEXT_ELEMENT_OBJECT_TYPES, TEXT_ELEMENT_PARTS, type TextElementObjectType, type TextElementPart, } from './text-elements.js';
|
|
67
54
|
export declare class AdtClient {
|
|
68
55
|
readonly http: AdtHttpClient;
|
|
69
56
|
readonly safety: SafetyConfig;
|
|
@@ -80,6 +67,10 @@ export declare class AdtClient {
|
|
|
80
67
|
private internalUser?;
|
|
81
68
|
/** The configured SAP client number (from --client / SAP_CLIENT) */
|
|
82
69
|
readonly sapClient: string;
|
|
70
|
+
/** Per-call response ceiling shared by every data method in the current MCP request. */
|
|
71
|
+
private readonly maxDataPreviewResponseBytes;
|
|
72
|
+
/** Shared process-wide data admission guard (private fallback outside server-managed clients). */
|
|
73
|
+
private readonly dataResultSemaphore;
|
|
83
74
|
/** Per-client cache of resolved TABL URLs for **reads** (transparent table at
|
|
84
75
|
* /tables/, structure at /structures/). Populated by getTabl() via the
|
|
85
76
|
* /tables/→/structures/ 404 fallback. */
|
|
@@ -282,8 +273,8 @@ export declare class AdtClient {
|
|
|
282
273
|
getDomain(name: string): Promise<DomainInfo>;
|
|
283
274
|
/** Get table type (TTYP) metadata: row type, access type, key kind. */
|
|
284
275
|
getTableType(name: string): Promise<TableTypeInfo>;
|
|
285
|
-
/** Get data element metadata (domain, labels, search help) */
|
|
286
|
-
getDataElement(name: string): Promise<DataElementInfo>;
|
|
276
|
+
/** Get data element metadata (domain, labels/reserved lengths, search help, input-history flag) */
|
|
277
|
+
getDataElement(name: string, version?: 'active' | 'inactive'): Promise<DataElementInfo>;
|
|
287
278
|
/** Get authorization field metadata (role, check table, domain, org-level flags) */
|
|
288
279
|
getAuthorizationField(name: string): Promise<AuthorizationFieldInfo>;
|
|
289
280
|
private revisionsUrlFor;
|
|
@@ -321,7 +312,7 @@ export declare class AdtClient {
|
|
|
321
312
|
* `application/xml;q=0.5` fallback covers any release that ignores the vendor type. */
|
|
322
313
|
getInactiveObjects(): Promise<InactiveObject[]>;
|
|
323
314
|
/** Search for ABAP objects by name pattern */
|
|
324
|
-
searchObject(query: string, maxResults?: number): Promise<AdtSearchResult[]>;
|
|
315
|
+
searchObject(query: string, maxResults?: number, objectType?: string): Promise<AdtSearchResult[]>;
|
|
325
316
|
/**
|
|
326
317
|
* Exact object-directory lookup for one or more names.
|
|
327
318
|
*
|
|
@@ -378,8 +369,8 @@ export declare class AdtClient {
|
|
|
378
369
|
*
|
|
379
370
|
* @param packageName — DEVC name to inspect
|
|
380
371
|
* @param maxResults — soft cap on number of returned entries (default 200,
|
|
381
|
-
* clamped to [1, 1000]).
|
|
382
|
-
*
|
|
372
|
+
* clamped to [1, 1000]). This array API has no completeness
|
|
373
|
+
* metadata; SAPRead supplies it alongside these entries.
|
|
383
374
|
* @returns array of `{ type, name, description, uri }` (URIs may be empty
|
|
384
375
|
* for objects that the workbench does not expose via ADT, e.g.
|
|
385
376
|
* some `IWMO`/`IWPR`/`SICF/TYP` entries).
|
|
@@ -420,6 +411,12 @@ export declare class AdtClient {
|
|
|
420
411
|
* returns the full child set in one round-trip.
|
|
421
412
|
*/
|
|
422
413
|
getSubpackages(packageName: string, maxResults?: number): Promise<string[]>;
|
|
414
|
+
/** A fresh guard per logical request; instrumentation never leaks between decisions. */
|
|
415
|
+
private dataSourceBlocklistGuard;
|
|
416
|
+
/** Create the lazy request-level result scope inherited by nested handler dispatch. */
|
|
417
|
+
createDataResultScope(): DataResultScope;
|
|
418
|
+
private withDataResultScope;
|
|
419
|
+
private postDataPreview;
|
|
423
420
|
/** Get table contents via data preview */
|
|
424
421
|
getTableContents(tableName: string, maxRows?: number, sqlFilter?: string): Promise<{
|
|
425
422
|
columns: string[];
|
|
@@ -440,6 +437,28 @@ export declare class AdtClient {
|
|
|
440
437
|
columns: string[];
|
|
441
438
|
rows: Record<string, string>[];
|
|
442
439
|
} & DataPreviewMeta>;
|
|
440
|
+
/**
|
|
441
|
+
* Authorize a set of server-generated statements ONCE, then execute them.
|
|
442
|
+
*
|
|
443
|
+
* This is the single freestyle-SQL entry point. IN-list chunking splits one logical caller request
|
|
444
|
+
* into N statements; authorizing each separately would repeat the whole lineage resolution N times
|
|
445
|
+
* (a search plus a graph read plus a table-source read per distinct source, per chunk). Instead the
|
|
446
|
+
* union of every chunk's canonical direct sources is authorized in one decision, and only then are
|
|
447
|
+
* the already-authorized statements posted.
|
|
448
|
+
*
|
|
449
|
+
* Authorization and the POST deliberately live inside the same private operation: there is no
|
|
450
|
+
* caller-supplied `authorized`/`internal` receipt that could be forged to skip the guard, and the
|
|
451
|
+
* decision is a local const that cannot outlive this call.
|
|
452
|
+
*
|
|
453
|
+
* The whole batch runs inside ONE data-result scope, so the response-memory budget (#739) is
|
|
454
|
+
* cumulative across chunks rather than reset per chunk — N chunks cannot together exceed the limit
|
|
455
|
+
* a single response may consume. Metrics are reported only for a single statement, because an
|
|
456
|
+
* early break on the row cap would make a summed totalRows misleading.
|
|
457
|
+
*/
|
|
458
|
+
runQueryBatch(statements: string[], maxRows?: number): Promise<{
|
|
459
|
+
columns: string[];
|
|
460
|
+
rows: Record<string, string>[];
|
|
461
|
+
} & Partial<DataPreviewMeta>>;
|
|
443
462
|
private postFreestyleQuery;
|
|
444
463
|
/**
|
|
445
464
|
* Query a table or CDS view with structured parameters.
|
|
@@ -486,18 +505,20 @@ export declare class AdtClient {
|
|
|
486
505
|
getMessages(messageClass: string): Promise<string>;
|
|
487
506
|
/** Get structured message class info from /sap/bc/adt/messageclass/{name} */
|
|
488
507
|
getMessageClassInfo(name: string): Promise<MessageClassInfo>;
|
|
489
|
-
/**
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
/** Read
|
|
496
|
-
|
|
508
|
+
/** Read an object's text elements (CLAS/PROG/FUGR). Without `part`, every subobject that carries
|
|
509
|
+
* text is returned under a `=== part ===` marker. See adt/text-elements.ts. */
|
|
510
|
+
getTextElements(name: string, options?: {
|
|
511
|
+
objectType?: string;
|
|
512
|
+
part?: TextElementPart;
|
|
513
|
+
}): Promise<string>;
|
|
514
|
+
/** Read one subobject of a textpool (symbols | selections | headings). */
|
|
515
|
+
getTextElementPart(objectType: TextElementObjectType, name: string, part: TextElementPart): Promise<string>;
|
|
516
|
+
/** Read a global class's text symbols. */
|
|
497
517
|
getClassTextSymbols(name: string): Promise<string>;
|
|
498
|
-
/** Write
|
|
499
|
-
*
|
|
500
|
-
|
|
518
|
+
/** Write one subobject of a textpool. Locks the textelements object, PUTs, unlocks. Immediately
|
|
519
|
+
* active — no SAPActivate needed. */
|
|
520
|
+
writeTextElementPart(objectType: TextElementObjectType, name: string, part: TextElementPart, source: string, transport?: string): Promise<void>;
|
|
521
|
+
/** Write a global class's text symbols. */
|
|
501
522
|
writeClassTextSymbols(name: string, source: string, transport?: string): Promise<void>;
|
|
502
523
|
/** Get program variants */
|
|
503
524
|
getVariants(program: string): Promise<string>;
|
package/dist/adt/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}
|
package/dist/adt/client.js
CHANGED
|
@@ -15,19 +15,25 @@
|
|
|
15
15
|
* are imported from their respective modules when needed by handlers.
|
|
16
16
|
* This keeps the client class manageable (not a 2,400-line God class).
|
|
17
17
|
*/
|
|
18
|
+
import { getCurrentContext } from '../server/context.js';
|
|
18
19
|
import { BSP_OBJECTS_PATH, bspContentPath, resolveBspNameAndPath } from './bsp-path.js';
|
|
19
20
|
import { defaultAdtClientConfig } from './config.js';
|
|
20
|
-
import {
|
|
21
|
+
import { DataResultScope } from './data-result-context.js';
|
|
22
|
+
import { canonicalDataSourceName } from './data-source-name.js';
|
|
23
|
+
import { CDS_DEPENDENCY_GRAPH_PATH, DataSourceBlocklistGuard } from './data-source-policy.js';
|
|
21
24
|
import { parseTableType } from './ddic-xml.js';
|
|
22
25
|
import { AdtApiError, AdtSafetyError, isNotFoundError } from './errors.js';
|
|
23
26
|
import { AdtHttpClient } from './http.js';
|
|
24
27
|
import { AdtPackageHierarchyResolver } from './package-hierarchy.js';
|
|
25
28
|
import { canonicalRevisionSourcePath } from './path-safety.js';
|
|
29
|
+
import { clampUrlLimit } from './result-limits.js';
|
|
26
30
|
import { checkOperation, OperationType } from './safety.js';
|
|
27
31
|
import { Semaphore } from './semaphore.js';
|
|
32
|
+
import { buildTableQuerySql, clampPreviewRows, executeDataPreviewStatements, fitFreestyleSqlLines, } from './table-query.js';
|
|
33
|
+
import { readTextElementPart, readTextElements, writeTextElementPart, } from './text-elements.js';
|
|
28
34
|
import { clampSearchResults, searchSource as executeSourceSearch, toTextSearchObjectType } from './text-search.js';
|
|
29
|
-
import { assertApiReleaseStateConfirmed, buildApiReleasePutBody, parseApiReleaseState, parseAuthorizationField, parseBspAppList, parseBspFolderListing, parseClassMetadata, parseClassStructure, parseDataElementMetadata,
|
|
30
|
-
export { clampSearchResults, toTextSearchObjectType };
|
|
35
|
+
import { assertApiReleaseStateConfirmed, buildApiReleasePutBody, parseApiReleaseState, parseAuthorizationField, parseBspAppList, parseBspFolderListing, parseClassMetadata, parseClassStructure, parseDataElementMetadata, parseDataPreviewResult, parseDomainMetadata, parseEnhancementImplementation, parseFeatureToggleStates, parseFunctionGroup, parseFunctionGroupNodes, parseFunctionModuleProperties, parseInactiveObjects, parseInstalledComponents, parseMessageClass, parseRevisionFeed, parseSearchResults, parseServiceBinding, parseSubpackageNodestructure, parseSystemInfo, parseTableContents, parseTransactionMetadata, } from './xml-parser.js';
|
|
36
|
+
export { buildTableQuerySql, clampPreviewRows, clampSearchResults, toTextSearchObjectType };
|
|
31
37
|
function appendQueryParam(path, key, value) {
|
|
32
38
|
const [baseAndQuery, fragment] = path.split('#', 2);
|
|
33
39
|
const [base, query = ''] = (baseAndQuery ?? path).split('?', 2);
|
|
@@ -101,114 +107,6 @@ function tadirObjectUrl(tadirType, name) {
|
|
|
101
107
|
return '';
|
|
102
108
|
}
|
|
103
109
|
}
|
|
104
|
-
// ─── TABLE_QUERY SQL builder ───────────────────────────────────────────────
|
|
105
|
-
/** Allowed SQL comparison operators for TABLE_QUERY where conditions. */
|
|
106
|
-
const ALLOWED_OPS = new Set([
|
|
107
|
-
'=',
|
|
108
|
-
'!=',
|
|
109
|
-
'<>',
|
|
110
|
-
'<',
|
|
111
|
-
'<=',
|
|
112
|
-
'>',
|
|
113
|
-
'>=',
|
|
114
|
-
'LIKE',
|
|
115
|
-
'NOT LIKE',
|
|
116
|
-
'IN',
|
|
117
|
-
'NOT IN',
|
|
118
|
-
'IS NULL',
|
|
119
|
-
'IS NOT NULL',
|
|
120
|
-
]);
|
|
121
|
-
// BETWEEN is intentionally excluded: the value would require parsing "low AND high"
|
|
122
|
-
// where AND is a reserved word, making safe escaping complex and error-prone.
|
|
123
|
-
// Use two separate conditions (>= low, <= high) instead.
|
|
124
|
-
/**
|
|
125
|
-
* Build a safe IN/NOT IN list from a comma-separated string of raw values.
|
|
126
|
-
* Each value is trimmed, single-quote-escaped, and wrapped in quotes.
|
|
127
|
-
* Surrounding parentheses are accepted for caller convenience but stripped.
|
|
128
|
-
* Subquery injection is impossible because every element becomes a string literal.
|
|
129
|
-
*/
|
|
130
|
-
function buildInList(raw) {
|
|
131
|
-
const trimmed = raw.trim();
|
|
132
|
-
const inner = trimmed.startsWith('(') && trimmed.endsWith(')') ? trimmed.slice(1, -1) : trimmed;
|
|
133
|
-
const parts = inner.split(',').map((p) => {
|
|
134
|
-
const escaped = p.trim().replace(/'/g, "''");
|
|
135
|
-
return `'${escaped}'`;
|
|
136
|
-
});
|
|
137
|
-
return `(${parts.join(', ')})`;
|
|
138
|
-
}
|
|
139
|
-
/** Upper bound on rows returned by a single TABLE_QUERY — a memory-safety rail (the whole
|
|
140
|
-
* result set is buffered in `parseTableContents`), not a SAP-side limit. Page client-side
|
|
141
|
-
* for more. Generous on purpose; adjust if a real use case needs it. */
|
|
142
|
-
const MAX_TABLE_QUERY_ROWS = 10_000;
|
|
143
|
-
/** Coerce a caller-supplied row limit into a safe positive integer in [1, MAX_TABLE_QUERY_ROWS].
|
|
144
|
-
* NaN / non-finite / non-positive / undefined fall back to the default (prevents `rowNumber=NaN`
|
|
145
|
-
* and unbounded result buffering). */
|
|
146
|
-
export function clampPreviewRows(requested, fallback = 100) {
|
|
147
|
-
if (requested === undefined || !Number.isFinite(requested) || requested < 1)
|
|
148
|
-
return fallback;
|
|
149
|
-
return Math.min(Math.floor(requested), MAX_TABLE_QUERY_ROWS);
|
|
150
|
-
}
|
|
151
|
-
/** Media type for a class's text symbols on the top-level ADT textelements service. Used as BOTH
|
|
152
|
-
* Content-Type and Accept on the write PUT (SAP returns 400 "Accept header missing" otherwise).
|
|
153
|
-
* Symbols only — a class has no selection screen, so its `source/selections` segment is always
|
|
154
|
-
* empty and un-writable (SAP 406); selection texts are a program concept (future follow-up). */
|
|
155
|
-
const TEXT_SYMBOLS_CT = 'application/vnd.sap.adt.textelements.symbols.v1';
|
|
156
|
-
/** Floor + clamp a caller-supplied result limit to [1, 1000] before it is interpolated into an
|
|
157
|
-
* ADT search/listing URL query param (`maxResults=`, `rowNumber=`). Non-finite input — NaN from a
|
|
158
|
-
* coerced non-numeric, or undefined — falls back to the caller's default, so no float or
|
|
159
|
-
* out-of-range value ever reaches a SAP URL regardless of which tool supplied it. Mirrors
|
|
160
|
-
* `clampSearchResults` and diagnostics' `clampMaxResults`. The tool schemas advertise `maxResults`
|
|
161
|
-
* as `type: number` and SAPRead promises "clamped to [1, 1000]"; this is where that promise is
|
|
162
|
-
* kept (see docs/research/2026-06-12-maxresults-contract-asymmetry.md). */
|
|
163
|
-
function clampUrlLimit(requested, fallback) {
|
|
164
|
-
if (requested === undefined || !Number.isFinite(requested))
|
|
165
|
-
return fallback;
|
|
166
|
-
return Math.max(1, Math.min(1000, Math.floor(requested)));
|
|
167
|
-
}
|
|
168
|
-
/** Sanitize a SQL identifier (table / column / field): uppercase, then strip everything but
|
|
169
|
-
* word characters and the namespace slash. Throws when nothing survives — a structurally
|
|
170
|
-
* invalid identifier must fail closed rather than emit malformed SQL (e.g. `SELECT , X FROM`).
|
|
171
|
-
* Stripping spaces is also what blocks keyword injection (UNION/JOIN/OR collapse to one token). */
|
|
172
|
-
function sanitizeIdentifier(raw, kind) {
|
|
173
|
-
const safe = raw.toUpperCase().replace(/[^\w/]/g, '');
|
|
174
|
-
if (!safe)
|
|
175
|
-
throw new Error(`TABLE_QUERY: ${kind} name "${raw}" is invalid (empty after sanitization)`);
|
|
176
|
-
return safe;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Build a safe SELECT statement from structured parameters.
|
|
180
|
-
* All identifiers are uppercased, stripped to word-chars + namespace slash, and rejected if empty.
|
|
181
|
-
* String values are single-quote escaped (doubled single quotes).
|
|
182
|
-
* IN/NOT IN values are strictly parsed as quoted literal lists (no subqueries).
|
|
183
|
-
* Raises if the table, any column, or any where-field is empty after sanitization.
|
|
184
|
-
* ORDER BY is intentionally omitted: the ADT freestyle endpoint rejects it on NW 7.50/7.51.
|
|
185
|
-
*/
|
|
186
|
-
export function buildTableQuerySql(tableName, columns, where) {
|
|
187
|
-
const safeTable = sanitizeIdentifier(tableName, 'table');
|
|
188
|
-
const colList = columns && columns.length > 0 ? columns.map((c) => sanitizeIdentifier(c, 'column')).join(', ') : '*';
|
|
189
|
-
let sql = `SELECT ${colList} FROM ${safeTable}`;
|
|
190
|
-
if (where && where.length > 0) {
|
|
191
|
-
const clauses = where.map(({ field, op, value }) => {
|
|
192
|
-
const safeField = sanitizeIdentifier(field, 'field');
|
|
193
|
-
const safeOp = op.trim().toUpperCase();
|
|
194
|
-
if (!ALLOWED_OPS.has(safeOp))
|
|
195
|
-
throw new Error(`TABLE_QUERY: operator "${op}" is not allowed`);
|
|
196
|
-
if (safeOp === 'IS NULL' || safeOp === 'IS NOT NULL')
|
|
197
|
-
return `${safeField} ${safeOp}`;
|
|
198
|
-
if (safeOp === 'IN' || safeOp === 'NOT IN') {
|
|
199
|
-
// Each element is individually escaped — subquery injection impossible.
|
|
200
|
-
const safeList = buildInList(String(value ?? ''));
|
|
201
|
-
return `${safeField} ${safeOp} ${safeList}`;
|
|
202
|
-
}
|
|
203
|
-
const escaped = String(value ?? '').replace(/'/g, "''");
|
|
204
|
-
return `${safeField} ${safeOp} '${escaped}'`;
|
|
205
|
-
});
|
|
206
|
-
sql += ` WHERE ${clauses.join(' AND ')}`;
|
|
207
|
-
}
|
|
208
|
-
// ORDER BY intentionally omitted: the ADT freestyle SQL endpoint rejects it on
|
|
209
|
-
// NW 7.50/7.51 (parser error: '"DESC" is not allowed here'). Sort client-side if needed.
|
|
210
|
-
return sql;
|
|
211
|
-
}
|
|
212
110
|
/** The five source includes a class keeps its revisions under. */
|
|
213
111
|
export const CLASS_REVISION_INCLUDES = ['main', 'definitions', 'implementations', 'macros', 'testclasses'];
|
|
214
112
|
/**
|
|
@@ -246,6 +144,7 @@ const REVISION_URL_BUILDERS = {
|
|
|
246
144
|
};
|
|
247
145
|
/** Types with an addressable revisions feed — derived, never hand-maintained. */
|
|
248
146
|
export const REVISION_TYPES = new Set(Object.keys(REVISION_URL_BUILDERS));
|
|
147
|
+
export { isTextElementObjectType, TEXT_ELEMENT_OBJECT_TYPES, TEXT_ELEMENT_PARTS, } from './text-elements.js';
|
|
249
148
|
export class AdtClient {
|
|
250
149
|
http;
|
|
251
150
|
safety;
|
|
@@ -262,6 +161,10 @@ export class AdtClient {
|
|
|
262
161
|
internalUser;
|
|
263
162
|
/** The configured SAP client number (from --client / SAP_CLIENT) */
|
|
264
163
|
sapClient;
|
|
164
|
+
/** Per-call response ceiling shared by every data method in the current MCP request. */
|
|
165
|
+
maxDataPreviewResponseBytes;
|
|
166
|
+
/** Shared process-wide data admission guard (private fallback outside server-managed clients). */
|
|
167
|
+
dataResultSemaphore;
|
|
265
168
|
/** Per-client cache of resolved TABL URLs for **reads** (transparent table at
|
|
266
169
|
* /tables/, structure at /structures/). Populated by getTabl() via the
|
|
267
170
|
* /tables/→/structures/ 404 fallback. */
|
|
@@ -282,6 +185,8 @@ export class AdtClient {
|
|
|
282
185
|
this.bearerTokenProvider = config.bearerTokenProvider;
|
|
283
186
|
this.usesBearerAuth = !!config.bearerTokenProvider;
|
|
284
187
|
this.sapClient = config.client;
|
|
188
|
+
this.maxDataPreviewResponseBytes = config.maxDataPreviewResponseBytes;
|
|
189
|
+
this.dataResultSemaphore = config.dataResultSemaphore ?? new Semaphore(config.maxConcurrentDataResults);
|
|
285
190
|
const httpConfig = {
|
|
286
191
|
baseUrl: config.baseUrl,
|
|
287
192
|
username: config.username,
|
|
@@ -843,10 +748,11 @@ export class AdtClient {
|
|
|
843
748
|
});
|
|
844
749
|
return parseTableType(resp.body);
|
|
845
750
|
}
|
|
846
|
-
/** Get data element metadata (domain, labels, search help) */
|
|
847
|
-
async getDataElement(name) {
|
|
751
|
+
/** Get data element metadata (domain, labels/reserved lengths, search help, input-history flag) */
|
|
752
|
+
async getDataElement(name, version) {
|
|
848
753
|
checkOperation(this.safety, OperationType.Read, 'GetDataElement');
|
|
849
|
-
const
|
|
754
|
+
const versionQuery = version ? `?version=${version}` : '';
|
|
755
|
+
const resp = await this.http.get(`/sap/bc/adt/ddic/dataelements/${encodeURIComponent(name)}${versionQuery}`);
|
|
850
756
|
return parseDataElementMetadata(resp.body);
|
|
851
757
|
}
|
|
852
758
|
// ─── Authorization & Switch Framework ───────────────────────────
|
|
@@ -971,10 +877,11 @@ export class AdtClient {
|
|
|
971
877
|
}
|
|
972
878
|
// ─── Search Operations ─────────────────────────────────────────────
|
|
973
879
|
/** Search for ABAP objects by name pattern */
|
|
974
|
-
async searchObject(query, maxResults = 100) {
|
|
880
|
+
async searchObject(query, maxResults = 100, objectType) {
|
|
975
881
|
checkOperation(this.safety, OperationType.Search, 'SearchObject');
|
|
976
882
|
const limit = clampSearchResults(maxResults, 100);
|
|
977
|
-
const
|
|
883
|
+
const typeFilter = objectType ? `&objectType=${encodeURIComponent(objectType)}` : '';
|
|
884
|
+
const resp = await this.http.get(`/sap/bc/adt/repository/informationsystem/search?operation=quickSearch&query=${encodeURIComponent(query)}&maxResults=${limit}${typeFilter}`);
|
|
978
885
|
return parseSearchResults(resp.body);
|
|
979
886
|
}
|
|
980
887
|
/**
|
|
@@ -1129,8 +1036,8 @@ export class AdtClient {
|
|
|
1129
1036
|
*
|
|
1130
1037
|
* @param packageName — DEVC name to inspect
|
|
1131
1038
|
* @param maxResults — soft cap on number of returned entries (default 200,
|
|
1132
|
-
* clamped to [1, 1000]).
|
|
1133
|
-
*
|
|
1039
|
+
* clamped to [1, 1000]). This array API has no completeness
|
|
1040
|
+
* metadata; SAPRead supplies it alongside these entries.
|
|
1134
1041
|
* @returns array of `{ type, name, description, uri }` (URIs may be empty
|
|
1135
1042
|
* for objects that the workbench does not expose via ADT, e.g.
|
|
1136
1043
|
* some `IWMO`/`IWPR`/`SICF/TYP` entries).
|
|
@@ -1208,16 +1115,61 @@ export class AdtClient {
|
|
|
1208
1115
|
return out;
|
|
1209
1116
|
}
|
|
1210
1117
|
// ─── Table Data Operations ─────────────────────────────────────────
|
|
1118
|
+
/** A fresh guard per logical request; instrumentation never leaks between decisions. */
|
|
1119
|
+
dataSourceBlocklistGuard() {
|
|
1120
|
+
return new DataSourceBlocklistGuard(this.safety.blockedDataSources, {
|
|
1121
|
+
searchObject: (name, maxResults) => this.searchObject(name, maxResults),
|
|
1122
|
+
canonicalTableSourceAvailable: this.http.hasDiscoveryData()
|
|
1123
|
+
? this.http.discoveryAcceptFor('/sap/bc/adt/ddic/tables') !== undefined
|
|
1124
|
+
: undefined,
|
|
1125
|
+
// Canonical /tables source only: the NW 7.50 /structures fallback omits
|
|
1126
|
+
// replacementObject metadata and therefore cannot prove authorization.
|
|
1127
|
+
readTableSource: async (name) => (await this.getTable(name)).source,
|
|
1128
|
+
dependencyGraphAccept: () => this.http.discoveryAcceptFor(CDS_DEPENDENCY_GRAPH_PATH),
|
|
1129
|
+
readDependencyGraph: async (path, accept) => {
|
|
1130
|
+
checkOperation(this.safety, OperationType.Read, 'GetCdsDependencyGraph');
|
|
1131
|
+
return (await this.http.get(path, { Accept: accept })).body;
|
|
1132
|
+
},
|
|
1133
|
+
});
|
|
1134
|
+
}
|
|
1135
|
+
/** Create the lazy request-level result scope inherited by nested handler dispatch. */
|
|
1136
|
+
createDataResultScope() {
|
|
1137
|
+
return new DataResultScope(this.maxDataPreviewResponseBytes, this.dataResultSemaphore);
|
|
1138
|
+
}
|
|
1139
|
+
async withDataResultScope(operation) {
|
|
1140
|
+
const context = getCurrentContext();
|
|
1141
|
+
const inheritedScope = context?.dataResultScope;
|
|
1142
|
+
const scope = inheritedScope ?? this.createDataResultScope();
|
|
1143
|
+
await scope.acquire(context?.signal);
|
|
1144
|
+
try {
|
|
1145
|
+
return await operation(scope.responseBudget, context?.signal);
|
|
1146
|
+
}
|
|
1147
|
+
finally {
|
|
1148
|
+
if (!inheritedScope)
|
|
1149
|
+
scope.release();
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
async postDataPreview(path, body, budget, signal) {
|
|
1153
|
+
const resp = await this.http.post(path, body, 'text/plain', undefined, { responseBudget: budget, signal });
|
|
1154
|
+
return resp.body;
|
|
1155
|
+
}
|
|
1211
1156
|
/** Get table contents via data preview */
|
|
1212
1157
|
async getTableContents(tableName, maxRows = 100, sqlFilter) {
|
|
1213
1158
|
checkOperation(this.safety, OperationType.Query, 'GetTableContents');
|
|
1159
|
+
// Canonicalize BEFORE authorizing and before building the URL so the name the policy checks is
|
|
1160
|
+
// byte-for-byte the name SAP receives. This runs with the blocklist off too: identifier handling
|
|
1161
|
+
// must not depend on policy state.
|
|
1162
|
+
const source = canonicalDataSourceName(tableName, 'TABLE_CONTENTS table name');
|
|
1163
|
+
await this.dataSourceBlocklistGuard().enforceTableContents(source, sqlFilter);
|
|
1214
1164
|
const rowLimit = clampPreviewRows(maxRows);
|
|
1215
|
-
|
|
1216
|
-
|
|
1165
|
+
// Response memory is bounded per logical request (#739); the URL uses the canonical `source`
|
|
1166
|
+
// so the name the policy authorized is byte-for-byte the name SAP receives.
|
|
1167
|
+
return this.withDataResultScope(async (budget, signal) => parseTableContents(await this.postDataPreview(`/sap/bc/adt/datapreview/ddic?rowNumber=${rowLimit}&ddicEntityName=${encodeURIComponent(source)}`, sqlFilter, budget, signal)));
|
|
1217
1168
|
}
|
|
1218
1169
|
/** Execute freestyle SQL query and return just the rows/columns. */
|
|
1219
1170
|
async runQuery(sql, maxRows = 100) {
|
|
1220
|
-
|
|
1171
|
+
const { columns, rows } = await this.runQueryBatch([sql], maxRows);
|
|
1172
|
+
return { columns, rows };
|
|
1221
1173
|
}
|
|
1222
1174
|
/**
|
|
1223
1175
|
* Like runQuery, but also returns the datapreview metrics ADT already includes in the response
|
|
@@ -1226,13 +1178,44 @@ export class AdtClient {
|
|
|
1226
1178
|
* runQuery consumer that JSON-stringifies the result.
|
|
1227
1179
|
*/
|
|
1228
1180
|
async runQueryWithMetrics(sql, maxRows = 100) {
|
|
1229
|
-
|
|
1230
|
-
return { ...parseTableContents(body), ...parseDataPreviewMeta(body) };
|
|
1181
|
+
return this.runQueryBatch([sql], maxRows);
|
|
1231
1182
|
}
|
|
1232
|
-
|
|
1183
|
+
/**
|
|
1184
|
+
* Authorize a set of server-generated statements ONCE, then execute them.
|
|
1185
|
+
*
|
|
1186
|
+
* This is the single freestyle-SQL entry point. IN-list chunking splits one logical caller request
|
|
1187
|
+
* into N statements; authorizing each separately would repeat the whole lineage resolution N times
|
|
1188
|
+
* (a search plus a graph read plus a table-source read per distinct source, per chunk). Instead the
|
|
1189
|
+
* union of every chunk's canonical direct sources is authorized in one decision, and only then are
|
|
1190
|
+
* the already-authorized statements posted.
|
|
1191
|
+
*
|
|
1192
|
+
* Authorization and the POST deliberately live inside the same private operation: there is no
|
|
1193
|
+
* caller-supplied `authorized`/`internal` receipt that could be forged to skip the guard, and the
|
|
1194
|
+
* decision is a local const that cannot outlive this call.
|
|
1195
|
+
*
|
|
1196
|
+
* The whole batch runs inside ONE data-result scope, so the response-memory budget (#739) is
|
|
1197
|
+
* cumulative across chunks rather than reset per chunk — N chunks cannot together exceed the limit
|
|
1198
|
+
* a single response may consume. Metrics are reported only for a single statement, because an
|
|
1199
|
+
* early break on the row cap would make a summed totalRows misleading.
|
|
1200
|
+
*/
|
|
1201
|
+
async runQueryBatch(statements, maxRows = 100) {
|
|
1233
1202
|
checkOperation(this.safety, OperationType.FreeSQL, 'RunQuery');
|
|
1234
|
-
|
|
1235
|
-
|
|
1203
|
+
if (statements.length === 0)
|
|
1204
|
+
throw new Error('runQueryBatch requires at least one statement');
|
|
1205
|
+
// ONE policy decision covering every statement in this logical request.
|
|
1206
|
+
await this.dataSourceBlocklistGuard().enforceSqlBatch(statements);
|
|
1207
|
+
const rowLimit = clampPreviewRows(maxRows);
|
|
1208
|
+
return this.withDataResultScope(async (budget, signal) => {
|
|
1209
|
+
const post = (sql, limit) => this.postFreestyleQuery(sql, limit, budget, signal);
|
|
1210
|
+
if (statements.length === 1) {
|
|
1211
|
+
return parseDataPreviewResult(await post(statements[0], rowLimit));
|
|
1212
|
+
}
|
|
1213
|
+
return executeDataPreviewStatements(post, parseTableContents, statements, rowLimit);
|
|
1214
|
+
});
|
|
1215
|
+
}
|
|
1216
|
+
async postFreestyleQuery(sql, maxRows, budget, signal) {
|
|
1217
|
+
const rowLimit = clampPreviewRows(maxRows);
|
|
1218
|
+
return this.postDataPreview(`/sap/bc/adt/datapreview/freestyle?rowNumber=${rowLimit}`, fitFreestyleSqlLines(sql), budget, signal);
|
|
1236
1219
|
}
|
|
1237
1220
|
/**
|
|
1238
1221
|
* Query a table or CDS view with structured parameters.
|
|
@@ -1243,10 +1226,12 @@ export class AdtClient {
|
|
|
1243
1226
|
*/
|
|
1244
1227
|
async runTableQuery(tableName, opts = {}) {
|
|
1245
1228
|
checkOperation(this.safety, OperationType.Query, 'RunTableQuery');
|
|
1246
|
-
|
|
1229
|
+
// One canonical identity: authorize it, then build the statement from the SAME string.
|
|
1230
|
+
const source = canonicalDataSourceName(tableName, 'TABLE_QUERY table name');
|
|
1231
|
+
await this.dataSourceBlocklistGuard().enforceSources([source]);
|
|
1232
|
+
const sql = buildTableQuerySql(source, opts.columns, opts.where);
|
|
1247
1233
|
const maxRows = clampPreviewRows(opts.maxRows);
|
|
1248
|
-
|
|
1249
|
-
return parseTableContents(resp.body);
|
|
1234
|
+
return this.withDataResultScope(async (budget, signal) => parseTableContents(await this.postFreestyleQuery(sql, maxRows, budget, signal)));
|
|
1250
1235
|
}
|
|
1251
1236
|
// ─── System Information ────────────────────────────────────────────
|
|
1252
1237
|
/**
|
|
@@ -1317,51 +1302,27 @@ export class AdtClient {
|
|
|
1317
1302
|
const resp = await this.http.get(`/sap/bc/adt/messageclass/${encodeURIComponent(name)}`);
|
|
1318
1303
|
return parseMessageClass(resp.body);
|
|
1319
1304
|
}
|
|
1320
|
-
/**
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
return resp.body;
|
|
1305
|
+
/** Read an object's text elements (CLAS/PROG/FUGR). Without `part`, every subobject that carries
|
|
1306
|
+
* text is returned under a `=== part ===` marker. See adt/text-elements.ts. */
|
|
1307
|
+
async getTextElements(name, options) {
|
|
1308
|
+
return readTextElements(this.http, this.safety, name, options);
|
|
1325
1309
|
}
|
|
1326
|
-
/**
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
assertClassTextElementsService() {
|
|
1330
|
-
if (this.http.hasDiscoveryData() &&
|
|
1331
|
-
this.http.discoveryAcceptFor('/sap/bc/adt/textelements/classes') === undefined) {
|
|
1332
|
-
throw new AdtApiError('Class text elements require the ADT textelements service (SAP_BASIS ≥ 7.51; not available on this system).', 404, '/sap/bc/adt/textelements/classes');
|
|
1333
|
-
}
|
|
1310
|
+
/** Read one subobject of a textpool (symbols | selections | headings). */
|
|
1311
|
+
async getTextElementPart(objectType, name, part) {
|
|
1312
|
+
return readTextElementPart(this.http, this.safety, objectType, name, part);
|
|
1334
1313
|
}
|
|
1335
|
-
/** Read a global class's text symbols.
|
|
1336
|
-
* (`@MaxLength:NN` then `NNN=text`, blank-line separated). */
|
|
1314
|
+
/** Read a global class's text symbols. */
|
|
1337
1315
|
async getClassTextSymbols(name) {
|
|
1338
|
-
|
|
1339
|
-
this.assertClassTextElementsService();
|
|
1340
|
-
const resp = await this.http.get(`/sap/bc/adt/textelements/classes/${encodeURIComponent(name)}/source/symbols`, {
|
|
1341
|
-
Accept: TEXT_SYMBOLS_CT,
|
|
1342
|
-
});
|
|
1343
|
-
return resp.body;
|
|
1316
|
+
return readTextElementPart(this.http, this.safety, 'CLAS', name, 'symbols');
|
|
1344
1317
|
}
|
|
1345
|
-
/** Write
|
|
1346
|
-
*
|
|
1347
|
-
|
|
1318
|
+
/** Write one subobject of a textpool. Locks the textelements object, PUTs, unlocks. Immediately
|
|
1319
|
+
* active — no SAPActivate needed. */
|
|
1320
|
+
async writeTextElementPart(objectType, name, part, source, transport) {
|
|
1321
|
+
return writeTextElementPart(this.http, this.safety, objectType, name, part, source, transport);
|
|
1322
|
+
}
|
|
1323
|
+
/** Write a global class's text symbols. */
|
|
1348
1324
|
async writeClassTextSymbols(name, source, transport) {
|
|
1349
|
-
|
|
1350
|
-
this.assertClassTextElementsService();
|
|
1351
|
-
const obj = `/sap/bc/adt/textelements/classes/${encodeURIComponent(name)}`;
|
|
1352
|
-
await this.http.withStatefulSession(async (session) => {
|
|
1353
|
-
const lock = await lockObject(session, this.safety, obj, 'MODIFY');
|
|
1354
|
-
const corr = transport ?? (lock.corrNr || undefined);
|
|
1355
|
-
try {
|
|
1356
|
-
let url = `${obj}/source/symbols?lockHandle=${encodeURIComponent(lock.lockHandle)}`;
|
|
1357
|
-
if (corr)
|
|
1358
|
-
url += `&corrNr=${encodeURIComponent(corr)}`;
|
|
1359
|
-
await session.put(url, source, TEXT_SYMBOLS_CT, { Accept: TEXT_SYMBOLS_CT });
|
|
1360
|
-
}
|
|
1361
|
-
finally {
|
|
1362
|
-
await unlockObject(session, obj, lock.lockHandle);
|
|
1363
|
-
}
|
|
1364
|
-
});
|
|
1325
|
+
return writeTextElementPart(this.http, this.safety, 'CLAS', name, 'symbols', source, transport);
|
|
1365
1326
|
}
|
|
1366
1327
|
/** Get program variants */
|
|
1367
1328
|
async getVariants(program) {
|