arc-1 0.9.19 → 0.9.21
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 +7 -4
- package/dist/adt/client.d.ts +29 -1
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +72 -3
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +29 -0
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +112 -1
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts +9 -2
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +126 -5
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts +99 -4
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +443 -10
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/errors.d.ts +13 -1
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +244 -25
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +2 -1
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/gcts.d.ts +3 -3
- package/dist/adt/gcts.d.ts.map +1 -1
- package/dist/adt/gcts.js +24 -3
- package/dist/adt/gcts.js.map +1 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +4 -3
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/transport.d.ts +43 -4
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +84 -10
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +104 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/xml-parser.d.ts +37 -0
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +102 -0
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +11 -1
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/cache.d.ts +25 -0
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +31 -2
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +102 -2
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cache/memory.d.ts +2 -1
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +46 -0
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +2 -1
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +64 -0
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +27 -4
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +88 -4
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +9 -0
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +5 -0
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +10 -0
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/git.d.ts.map +1 -1
- package/dist/handlers/git.js +3 -3
- package/dist/handlers/git.js.map +1 -1
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +44 -0
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/object-types.d.ts +1 -1
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +17 -2
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query.d.ts.map +1 -1
- package/dist/handlers/query.js +35 -3
- package/dist/handlers/query.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +33 -8
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +79 -5
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +33 -0
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +4 -4
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +6 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +132 -34
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts.map +1 -1
- package/dist/handlers/transport.js +82 -5
- package/dist/handlers/transport.js.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +224 -7
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +1 -0
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +49 -5
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +18 -2
- package/dist/handlers/write.js.map +1 -1
- package/dist/plugins/manifest-interpreter.d.ts.map +1 -1
- package/dist/plugins/manifest-interpreter.js +3 -1
- package/dist/plugins/manifest-interpreter.js.map +1 -1
- package/dist/public/testing.d.ts +2 -1
- package/dist/public/testing.d.ts.map +1 -1
- package/dist/public/testing.js +13 -0
- package/dist/public/testing.js.map +1 -1
- package/dist/public/types.d.ts +2 -2
- package/dist/public/types.d.ts.map +1 -1
- package/dist/public/ui/app.js +1044 -0
- package/dist/public/ui/arc-mark.svg +5 -0
- package/dist/public/ui/index.html +43 -0
- package/dist/public/ui/styles.css +563 -0
- package/dist/server/audit.d.ts +4 -2
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js +42 -13
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +103 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/http.d.ts +2 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +22 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +9 -4
- package/dist/server/logger.js.map +1 -1
- package/dist/server/plugin-loader.d.ts.map +1 -1
- package/dist/server/plugin-loader.js +1 -1
- package/dist/server/plugin-loader.js.map +1 -1
- package/dist/server/safe-http-client.d.ts +12 -6
- package/dist/server/safe-http-client.d.ts.map +1 -1
- package/dist/server/safe-http-client.js +84 -15
- package/dist/server/safe-http-client.js.map +1 -1
- package/dist/server/server.d.ts +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +29 -4
- package/dist/server/server.js.map +1 -1
- package/dist/server/sinks/file.d.ts +3 -0
- package/dist/server/sinks/file.d.ts.map +1 -1
- package/dist/server/sinks/file.js +15 -3
- package/dist/server/sinks/file.js.map +1 -1
- package/dist/server/sinks/stderr.d.ts.map +1 -1
- package/dist/server/sinks/stderr.js +2 -30
- package/dist/server/sinks/stderr.js.map +1 -1
- package/dist/server/types.d.ts +22 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +7 -0
- package/dist/server/types.js.map +1 -1
- package/dist/server/ui-log-buffer.d.ts +29 -0
- package/dist/server/ui-log-buffer.d.ts.map +1 -0
- package/dist/server/ui-log-buffer.js +72 -0
- package/dist/server/ui-log-buffer.js.map +1 -0
- package/dist/server/ui-state.d.ts +32 -0
- package/dist/server/ui-state.d.ts.map +1 -0
- package/dist/server/ui-state.js +230 -0
- package/dist/server/ui-state.js.map +1 -0
- package/dist/server/ui.d.ts +20 -0
- package/dist/server/ui.d.ts.map +1 -0
- package/dist/server/ui.js +275 -0
- package/dist/server/ui.js.map +1 -0
- package/package.json +13 -9
package/dist/server/types.d.ts
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/** MCP transport type */
|
|
11
11
|
export type TransportType = 'stdio' | 'http-streamable';
|
|
12
|
+
/** Read-only admin UI mode */
|
|
13
|
+
export type UiMode = 'off' | 'local' | 'web';
|
|
12
14
|
/** Feature toggle: auto detects from SAP system, on/off forces */
|
|
13
15
|
export type FeatureToggle = 'auto' | 'on' | 'off';
|
|
14
16
|
/** Per-field config source (used by resolveConfig + startup log + `config show`). */
|
|
@@ -31,6 +33,12 @@ export interface ServerConfig {
|
|
|
31
33
|
cookieString?: string;
|
|
32
34
|
transport: TransportType;
|
|
33
35
|
httpAddr: string;
|
|
36
|
+
/** Read-only inspection UI: off (default), local sidecar server, or mounted web routes on the HTTP server. */
|
|
37
|
+
uiMode: UiMode;
|
|
38
|
+
/** Bind address for local sidecar UI mode. Ignored when uiMode='web'. */
|
|
39
|
+
uiAddr: string;
|
|
40
|
+
/** Open the local UI in the system browser after startup (local/dev convenience only). */
|
|
41
|
+
uiOpen: boolean;
|
|
34
42
|
allowWrites: boolean;
|
|
35
43
|
allowDataPreview: boolean;
|
|
36
44
|
allowFreeSQL: boolean;
|
|
@@ -63,6 +71,8 @@ export interface ServerConfig {
|
|
|
63
71
|
/** Clock tolerance in seconds for JWT exp/nbf validation (default: 0 — no tolerance) */
|
|
64
72
|
oidcClockTolerance?: number;
|
|
65
73
|
xsuaaAuth: boolean;
|
|
74
|
+
/** Explicit unsafe opt-in for HTTP `/mcp` without API-key, OIDC, or XSUAA auth. */
|
|
75
|
+
allowHttpNoAuth: boolean;
|
|
66
76
|
/**
|
|
67
77
|
* Lifetime of an OAuth DCR registration (`client_id`) in seconds.
|
|
68
78
|
* Default: 30 days. Positive values are clamped to `[60s, 90d]`. Set to
|
|
@@ -87,6 +97,8 @@ export interface ServerConfig {
|
|
|
87
97
|
btpOAuthCallbackPort: number;
|
|
88
98
|
ppEnabled: boolean;
|
|
89
99
|
ppStrict: boolean;
|
|
100
|
+
/** True only when SAP_PP_STRICT / --pp-strict was explicitly provided. */
|
|
101
|
+
ppStrictExplicit: boolean;
|
|
90
102
|
/** Opt-in: allow shared cookie auth to coexist with PP (shared client only) */
|
|
91
103
|
ppAllowSharedCookies: boolean;
|
|
92
104
|
/** Opt-in: disable SAML redirect for ADT requests (X-SAP-SAML2 + saml2=disabled) */
|
|
@@ -94,6 +106,8 @@ export interface ServerConfig {
|
|
|
94
106
|
logFile?: string;
|
|
95
107
|
logLevel: 'debug' | 'info' | 'warn' | 'error';
|
|
96
108
|
logFormat: 'text' | 'json';
|
|
109
|
+
/** Hide SAP response details from client-facing tool errors while retaining server-side correlation data. */
|
|
110
|
+
minimalErrors: boolean;
|
|
97
111
|
/** Tool mode: 'standard' (12 intent tools, SAPGit feature-gated) or 'hyperfocused' (1 universal SAP tool, ~200 tokens) */
|
|
98
112
|
toolMode: 'standard' | 'hyperfocused';
|
|
99
113
|
/** Absolute paths to extension plugins to load at startup (from ARC1_PLUGINS, CSV). Each contributes
|
|
@@ -104,6 +118,14 @@ export interface ServerConfig {
|
|
|
104
118
|
* and the tool must declare `write` scope. A dedicated switch (not implied by `allowWrites`) so
|
|
105
119
|
* enabling built-in writes never silently grants plugins code execution. */
|
|
106
120
|
allowPluginExecute: boolean;
|
|
121
|
+
/** Opt-in: allow plugin tools to make low-level WRITE calls (`ctx.http.post`/`put`/`delete`) to
|
|
122
|
+
* **non-ADT** SAP paths (OData `/sap/opu/odata/…`, custom ICF `/sap/bc/http/…`). Default false.
|
|
123
|
+
* Writes to `/sap/bc/adt/…` object endpoints are ALWAYS refused (they need package-allowlist
|
|
124
|
+
* enforcement that this raw surface can't do — those wait for the v2 `ctx.write` vocabulary). Also
|
|
125
|
+
* requires `allowWrites=true` and a `write`-scoped tool. `SAP_ALLOWED_PACKAGES` does NOT constrain
|
|
126
|
+
* these calls (no ABAP package in an OData/ICF path) — the gates are this opt-in + `allowWrites` +
|
|
127
|
+
* scope + `denyActions` + SAP-side service auth (+ Cloud Connector allowlist on BTP). */
|
|
128
|
+
allowPluginRawWrites: boolean;
|
|
107
129
|
/** Path to custom abaplint.jsonc config file for lint rules */
|
|
108
130
|
abaplintConfig?: string;
|
|
109
131
|
/** Enable pre-write lint validation (default: true) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yBAAyB;AACzB,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAExD,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAElD,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAE3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2FAA2F;IAC3F,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,cAAc,EAAE,aAAa,CAAC;IAC9B,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,EAAE,aAAa,CAAC;IAC1B,gBAAgB,EAAE,aAAa,CAAC;IAChC,WAAW,EAAE,aAAa,CAAC;IAC3B,cAAc,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAG1B,uEAAuE;IACvE,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IACtC,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,sHAAsH;IACtH,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
package/dist/server/types.js
CHANGED
|
@@ -17,6 +17,9 @@ export const DEFAULT_CONFIG = {
|
|
|
17
17
|
insecure: false,
|
|
18
18
|
transport: 'stdio',
|
|
19
19
|
httpAddr: '0.0.0.0:8080',
|
|
20
|
+
uiMode: 'off',
|
|
21
|
+
uiAddr: '127.0.0.1:8711',
|
|
22
|
+
uiOpen: false,
|
|
20
23
|
allowWrites: false,
|
|
21
24
|
allowDataPreview: false,
|
|
22
25
|
allowFreeSQL: false,
|
|
@@ -36,15 +39,18 @@ export const DEFAULT_CONFIG = {
|
|
|
36
39
|
featureFlp: 'auto',
|
|
37
40
|
systemType: 'auto',
|
|
38
41
|
xsuaaAuth: false,
|
|
42
|
+
allowHttpNoAuth: false,
|
|
39
43
|
oauthDcrTtlSeconds: 30 * 24 * 60 * 60, // 30 days; set to 0 to disable expiration
|
|
40
44
|
btpOAuthCallbackPort: 0,
|
|
41
45
|
ppEnabled: false,
|
|
42
46
|
ppStrict: false,
|
|
47
|
+
ppStrictExplicit: false,
|
|
43
48
|
ppAllowSharedCookies: false,
|
|
44
49
|
disableSaml2: false,
|
|
45
50
|
toolMode: 'standard',
|
|
46
51
|
plugins: [],
|
|
47
52
|
allowPluginExecute: false,
|
|
53
|
+
allowPluginRawWrites: false,
|
|
48
54
|
lintBeforeWrite: true,
|
|
49
55
|
checkBeforeWrite: false,
|
|
50
56
|
cacheMode: 'auto',
|
|
@@ -57,6 +63,7 @@ export const DEFAULT_CONFIG = {
|
|
|
57
63
|
allowedOrigins: [],
|
|
58
64
|
logLevel: 'info',
|
|
59
65
|
logFormat: 'text',
|
|
66
|
+
minimalErrors: false,
|
|
60
67
|
verbose: false,
|
|
61
68
|
};
|
|
62
69
|
//# sourceMappingURL=types.js.map
|
package/dist/server/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgNH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,YAAY,EAAE,KAAK;IACnB,oBAAoB,EAAE,KAAK;IAC3B,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,CAAC,MAAM,CAAC;IACzB,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,MAAM;IACtB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,gBAAgB,EAAE,MAAM;IACxB,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,0CAA0C;IACjF,oBAAoB,EAAE,CAAC;IACvB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,EAAE;IACX,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,gBAAgB;IAC3B,WAAW,EAAE,KAAK;IAClB,mBAAmB,EAAE,EAAE;IACvB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,CAAC,EAAE,gEAAgE;IAC9E,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK;CACf,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AuditEvent } from './audit.js';
|
|
2
|
+
import type { LogSink } from './sinks/types.js';
|
|
3
|
+
export interface UiLogEntry {
|
|
4
|
+
timestamp: string;
|
|
5
|
+
level: string;
|
|
6
|
+
event: string;
|
|
7
|
+
requestId?: string;
|
|
8
|
+
user?: string;
|
|
9
|
+
clientId?: string;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface UiLogQuery {
|
|
13
|
+
event?: string;
|
|
14
|
+
level?: string;
|
|
15
|
+
requestId?: string;
|
|
16
|
+
limit?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class UiLogBufferSink implements LogSink {
|
|
19
|
+
private readonly maxEntries;
|
|
20
|
+
private readonly entries;
|
|
21
|
+
constructor(maxEntries?: number);
|
|
22
|
+
write(event: AuditEvent): void;
|
|
23
|
+
list(query?: UiLogQuery): {
|
|
24
|
+
total: number;
|
|
25
|
+
limit: number;
|
|
26
|
+
items: UiLogEntry[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=ui-log-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-log-buffer.d.ts","sourceRoot":"","sources":["../../src/server/ui-log-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAgB,YAAW,OAAO;IAGjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEf,UAAU,SAAM;IAE7C,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAO9B,IAAI,CAAC,KAAK,GAAE,UAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE;CAapF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export class UiLogBufferSink {
|
|
2
|
+
maxEntries;
|
|
3
|
+
entries = [];
|
|
4
|
+
constructor(maxEntries = 500) {
|
|
5
|
+
this.maxEntries = maxEntries;
|
|
6
|
+
}
|
|
7
|
+
write(event) {
|
|
8
|
+
this.entries.push(sanitizeAuditEvent(event));
|
|
9
|
+
while (this.entries.length > this.maxEntries) {
|
|
10
|
+
this.entries.shift();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
list(query = {}) {
|
|
14
|
+
const limit = clampLimit(query.limit);
|
|
15
|
+
const filtered = this.entries
|
|
16
|
+
.filter((entry) => !query.event || entry.event === query.event)
|
|
17
|
+
.filter((entry) => !query.level || entry.level === query.level)
|
|
18
|
+
.filter((entry) => !query.requestId || entry.requestId === query.requestId);
|
|
19
|
+
return {
|
|
20
|
+
total: filtered.length,
|
|
21
|
+
limit,
|
|
22
|
+
items: filtered.slice(-limit).reverse(),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function sanitizeAuditEvent(event) {
|
|
27
|
+
const sanitized = {};
|
|
28
|
+
for (const [key, value] of Object.entries(event)) {
|
|
29
|
+
if (isSensitiveLogField(key))
|
|
30
|
+
continue;
|
|
31
|
+
sanitized[key] = sanitizeValue(value);
|
|
32
|
+
}
|
|
33
|
+
return sanitized;
|
|
34
|
+
}
|
|
35
|
+
function isSensitiveLogField(key) {
|
|
36
|
+
return ([
|
|
37
|
+
'requestBody',
|
|
38
|
+
'responseBody',
|
|
39
|
+
'requestHeaders',
|
|
40
|
+
'responseHeaders',
|
|
41
|
+
'errorBody',
|
|
42
|
+
'resultPreview',
|
|
43
|
+
'registeredClientId',
|
|
44
|
+
].includes(key) || /password|token|secret|cookie|authorization|csrf/i.test(key));
|
|
45
|
+
}
|
|
46
|
+
function sanitizeValue(value) {
|
|
47
|
+
if (typeof value === 'string') {
|
|
48
|
+
return value.length > 500 ? `${value.slice(0, 500)}... [truncated ${value.length} chars]` : value;
|
|
49
|
+
}
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
return value.map(sanitizeValue);
|
|
52
|
+
}
|
|
53
|
+
if (value && typeof value === 'object') {
|
|
54
|
+
const result = {};
|
|
55
|
+
for (const [key, nested] of Object.entries(value)) {
|
|
56
|
+
if (isSensitiveLogField(key)) {
|
|
57
|
+
result[key] = '[REDACTED]';
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
result[key] = sanitizeValue(nested);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
function clampLimit(limit) {
|
|
68
|
+
if (limit === undefined || !Number.isFinite(limit))
|
|
69
|
+
return 100;
|
|
70
|
+
return Math.max(1, Math.min(500, Math.trunc(limit)));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=ui-log-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-log-buffer.js","sourceRoot":"","sources":["../../src/server/ui-log-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ConfigSource, ServerConfig } from './types.js';
|
|
2
|
+
export interface UiOverview {
|
|
3
|
+
app: {
|
|
4
|
+
name: 'ARC-1';
|
|
5
|
+
version: string;
|
|
6
|
+
startedAt: string;
|
|
7
|
+
uptimeSeconds: number;
|
|
8
|
+
pid: number;
|
|
9
|
+
node: string;
|
|
10
|
+
};
|
|
11
|
+
transport: {
|
|
12
|
+
type: ServerConfig['transport'];
|
|
13
|
+
httpAddr: string;
|
|
14
|
+
uiMode: ServerConfig['uiMode'];
|
|
15
|
+
uiAddr: string;
|
|
16
|
+
};
|
|
17
|
+
safety: ReturnType<typeof sanitizeSafetyConfig>;
|
|
18
|
+
auth: ReturnType<typeof summarizeAuthConfig>;
|
|
19
|
+
cache: {
|
|
20
|
+
mode: ServerConfig['cacheMode'];
|
|
21
|
+
file?: string;
|
|
22
|
+
warmup: boolean;
|
|
23
|
+
warmupPackages: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export declare function buildUiOverview(config: ServerConfig, version: string, startedAt: string): UiOverview;
|
|
27
|
+
export declare function sanitizeConfigForUi(config: ServerConfig): Record<string, unknown>;
|
|
28
|
+
export declare function sanitizeConfigSourcesForUi(sources: Record<string, ConfigSource>): Record<string, ConfigSource>;
|
|
29
|
+
export declare function sanitizeFeaturesForUi(features: unknown): Record<string, unknown>;
|
|
30
|
+
export declare function sanitizeSafetyConfig(config: ServerConfig): Record<string, unknown>;
|
|
31
|
+
export declare function summarizeAuthConfig(config: ServerConfig): Record<string, unknown>;
|
|
32
|
+
//# sourceMappingURL=ui-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-state.d.ts","sourceRoot":"","sources":["../../src/server/ui-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI7D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE;QACH,IAAI,EAAE,OAAO,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EAAE;QACT,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChD,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC7C,KAAK,EAAE;QACL,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAyBpG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8EjF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAE9G;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBhF;AAoCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYlF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BjF"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
const FEATURE_KEYS = ['hana', 'abapGit', 'gcts', 'rap', 'amdp', 'ui5', 'transport', 'ui5repo', 'flp'];
|
|
2
|
+
export function buildUiOverview(config, version, startedAt) {
|
|
3
|
+
return {
|
|
4
|
+
app: {
|
|
5
|
+
name: 'ARC-1',
|
|
6
|
+
version,
|
|
7
|
+
startedAt,
|
|
8
|
+
uptimeSeconds: Math.floor(process.uptime()),
|
|
9
|
+
pid: process.pid,
|
|
10
|
+
node: process.version,
|
|
11
|
+
},
|
|
12
|
+
transport: {
|
|
13
|
+
type: config.transport,
|
|
14
|
+
httpAddr: config.httpAddr,
|
|
15
|
+
uiMode: config.uiMode,
|
|
16
|
+
uiAddr: config.uiAddr,
|
|
17
|
+
},
|
|
18
|
+
safety: sanitizeSafetyConfig(config),
|
|
19
|
+
auth: summarizeAuthConfig(config),
|
|
20
|
+
cache: {
|
|
21
|
+
mode: config.cacheMode,
|
|
22
|
+
file: config.cacheMode === 'sqlite' || config.cacheMode === 'auto' ? config.cacheFile : undefined,
|
|
23
|
+
warmup: config.cacheWarmup,
|
|
24
|
+
warmupPackages: config.cacheWarmupPackages,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function sanitizeConfigForUi(config) {
|
|
29
|
+
return {
|
|
30
|
+
url: sanitizeUrl(config.url),
|
|
31
|
+
username: config.username,
|
|
32
|
+
password: { configured: config.password.length > 0 },
|
|
33
|
+
client: config.client,
|
|
34
|
+
language: config.language,
|
|
35
|
+
insecure: config.insecure,
|
|
36
|
+
cookieFile: config.cookieFile,
|
|
37
|
+
cookieString: { configured: !!config.cookieString },
|
|
38
|
+
transport: config.transport,
|
|
39
|
+
httpAddr: config.httpAddr,
|
|
40
|
+
uiMode: config.uiMode,
|
|
41
|
+
uiAddr: config.uiAddr,
|
|
42
|
+
uiOpen: config.uiOpen,
|
|
43
|
+
safety: sanitizeSafetyConfig(config),
|
|
44
|
+
features: {
|
|
45
|
+
abapGit: config.featureAbapGit,
|
|
46
|
+
gcts: config.featureGcts,
|
|
47
|
+
rap: config.featureRap,
|
|
48
|
+
amdp: config.featureAmdp,
|
|
49
|
+
ui5: config.featureUi5,
|
|
50
|
+
transport: config.featureTransport,
|
|
51
|
+
hana: config.featureHana,
|
|
52
|
+
ui5repo: config.featureUi5Repo,
|
|
53
|
+
flp: config.featureFlp,
|
|
54
|
+
},
|
|
55
|
+
system: {
|
|
56
|
+
type: config.systemType,
|
|
57
|
+
abapRelease: config.abapRelease,
|
|
58
|
+
disableSaml2: config.disableSaml2,
|
|
59
|
+
},
|
|
60
|
+
auth: summarizeAuthConfig(config),
|
|
61
|
+
btp: {
|
|
62
|
+
serviceKey: { configured: !!config.btpServiceKey },
|
|
63
|
+
serviceKeyFile: config.btpServiceKeyFile,
|
|
64
|
+
oauthCallbackPort: config.btpOAuthCallbackPort,
|
|
65
|
+
},
|
|
66
|
+
principalPropagation: {
|
|
67
|
+
enabled: config.ppEnabled,
|
|
68
|
+
strict: config.ppStrict,
|
|
69
|
+
allowSharedCookies: config.ppAllowSharedCookies,
|
|
70
|
+
},
|
|
71
|
+
logging: {
|
|
72
|
+
file: config.logFile,
|
|
73
|
+
level: config.logLevel,
|
|
74
|
+
format: config.logFormat,
|
|
75
|
+
verbose: config.verbose,
|
|
76
|
+
},
|
|
77
|
+
toolMode: config.toolMode,
|
|
78
|
+
plugins: {
|
|
79
|
+
configured: config.plugins.length,
|
|
80
|
+
paths: config.plugins,
|
|
81
|
+
allowExecute: config.allowPluginExecute,
|
|
82
|
+
allowRawWrites: config.allowPluginRawWrites,
|
|
83
|
+
},
|
|
84
|
+
lint: {
|
|
85
|
+
config: config.abaplintConfig,
|
|
86
|
+
beforeWrite: config.lintBeforeWrite,
|
|
87
|
+
checkBeforeWrite: config.checkBeforeWrite,
|
|
88
|
+
},
|
|
89
|
+
cache: {
|
|
90
|
+
mode: config.cacheMode,
|
|
91
|
+
file: config.cacheFile,
|
|
92
|
+
warmup: config.cacheWarmup,
|
|
93
|
+
warmupPackages: config.cacheWarmupPackages,
|
|
94
|
+
},
|
|
95
|
+
concurrency: {
|
|
96
|
+
maxConcurrent: config.maxConcurrent,
|
|
97
|
+
},
|
|
98
|
+
rateLimiting: {
|
|
99
|
+
authRateLimit: config.authRateLimit,
|
|
100
|
+
mcpRateLimit: config.rateLimit,
|
|
101
|
+
},
|
|
102
|
+
browser: {
|
|
103
|
+
allowedOrigins: config.allowedOrigins,
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export function sanitizeConfigSourcesForUi(sources) {
|
|
108
|
+
return { ...sources };
|
|
109
|
+
}
|
|
110
|
+
export function sanitizeFeaturesForUi(features) {
|
|
111
|
+
if (!features || typeof features !== 'object') {
|
|
112
|
+
return {
|
|
113
|
+
probed: false,
|
|
114
|
+
message: 'Feature probe has not completed yet.',
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const source = features;
|
|
118
|
+
const result = {};
|
|
119
|
+
for (const key of FEATURE_KEYS) {
|
|
120
|
+
const status = sanitizeFeatureStatus(key, source[key]);
|
|
121
|
+
if (status)
|
|
122
|
+
result[key] = status;
|
|
123
|
+
}
|
|
124
|
+
if (typeof source.abapRelease === 'string')
|
|
125
|
+
result.abapRelease = source.abapRelease;
|
|
126
|
+
if (source.systemType === 'btp' || source.systemType === 'onprem')
|
|
127
|
+
result.systemType = source.systemType;
|
|
128
|
+
if (source.discoveryMap instanceof Map)
|
|
129
|
+
result.discovery = { endpointCount: source.discoveryMap.size };
|
|
130
|
+
const textSearch = sanitizeTextSearch(source.textSearch);
|
|
131
|
+
if (textSearch)
|
|
132
|
+
result.textSearch = textSearch;
|
|
133
|
+
const authProbe = sanitizeAuthProbe(source.authProbe);
|
|
134
|
+
if (authProbe)
|
|
135
|
+
result.authProbe = authProbe;
|
|
136
|
+
result.probed = true;
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
function sanitizeFeatureStatus(name, value) {
|
|
140
|
+
if (!value || typeof value !== 'object')
|
|
141
|
+
return undefined;
|
|
142
|
+
const source = value;
|
|
143
|
+
if (typeof source.available !== 'boolean')
|
|
144
|
+
return undefined;
|
|
145
|
+
return {
|
|
146
|
+
id: typeof source.id === 'string' ? source.id : name,
|
|
147
|
+
available: source.available,
|
|
148
|
+
mode: typeof source.mode === 'string' ? source.mode : 'unknown',
|
|
149
|
+
...(typeof source.message === 'string' ? { message: source.message } : {}),
|
|
150
|
+
...(typeof source.probedAt === 'string' ? { probedAt: source.probedAt } : {}),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function sanitizeTextSearch(value) {
|
|
154
|
+
if (!value || typeof value !== 'object')
|
|
155
|
+
return undefined;
|
|
156
|
+
const source = value;
|
|
157
|
+
if (typeof source.available !== 'boolean')
|
|
158
|
+
return undefined;
|
|
159
|
+
return {
|
|
160
|
+
available: source.available,
|
|
161
|
+
...(typeof source.reason === 'string' ? { reason: source.reason } : {}),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function sanitizeAuthProbe(value) {
|
|
165
|
+
if (!value || typeof value !== 'object')
|
|
166
|
+
return undefined;
|
|
167
|
+
const source = value;
|
|
168
|
+
return {
|
|
169
|
+
searchAccess: source.searchAccess === true,
|
|
170
|
+
...(typeof source.searchReason === 'string' ? { searchReason: source.searchReason } : {}),
|
|
171
|
+
transportAccess: source.transportAccess === true,
|
|
172
|
+
...(typeof source.transportReason === 'string' ? { transportReason: source.transportReason } : {}),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
export function sanitizeSafetyConfig(config) {
|
|
176
|
+
return {
|
|
177
|
+
allowWrites: config.allowWrites,
|
|
178
|
+
allowDataPreview: config.allowDataPreview,
|
|
179
|
+
allowFreeSQL: config.allowFreeSQL,
|
|
180
|
+
allowTransportWrites: config.allowTransportWrites,
|
|
181
|
+
allowGitWrites: config.allowGitWrites,
|
|
182
|
+
allowedPackages: config.allowedPackages,
|
|
183
|
+
allowedTransports: config.allowedTransports,
|
|
184
|
+
denyActions: config.denyActions,
|
|
185
|
+
readOnlyDefault: !config.allowWrites,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
export function summarizeAuthConfig(config) {
|
|
189
|
+
return {
|
|
190
|
+
apiKeys: {
|
|
191
|
+
count: config.apiKeys?.length ?? 0,
|
|
192
|
+
profiles: config.apiKeys?.map((entry) => entry.profile) ?? [],
|
|
193
|
+
},
|
|
194
|
+
oidc: {
|
|
195
|
+
configured: !!config.oidcIssuer,
|
|
196
|
+
issuer: config.oidcIssuer,
|
|
197
|
+
audience: config.oidcAudience,
|
|
198
|
+
clockTolerance: config.oidcClockTolerance,
|
|
199
|
+
},
|
|
200
|
+
xsuaa: {
|
|
201
|
+
enabled: config.xsuaaAuth,
|
|
202
|
+
dcrTtlSeconds: config.oauthDcrTtlSeconds,
|
|
203
|
+
dcrSigningSecret: { configured: !!config.dcrSigningSecret },
|
|
204
|
+
},
|
|
205
|
+
sap: {
|
|
206
|
+
basic: !!(config.username && config.password),
|
|
207
|
+
cookieFile: !!config.cookieFile,
|
|
208
|
+
cookieString: !!config.cookieString,
|
|
209
|
+
btpServiceKey: !!(config.btpServiceKey || config.btpServiceKeyFile),
|
|
210
|
+
destination: !!process.env.SAP_BTP_DESTINATION,
|
|
211
|
+
principalPropagation: config.ppEnabled,
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function sanitizeUrl(raw) {
|
|
216
|
+
if (!raw)
|
|
217
|
+
return '';
|
|
218
|
+
try {
|
|
219
|
+
const url = new URL(raw);
|
|
220
|
+
url.username = url.username ? '[REDACTED]' : '';
|
|
221
|
+
url.password = url.password ? '[REDACTED]' : '';
|
|
222
|
+
url.search = '';
|
|
223
|
+
url.hash = '';
|
|
224
|
+
return url.toString();
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
return raw.replace(/\/\/[^/@]+:[^/@]+@/, '//[REDACTED]@');
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=ui-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-state.js","sourceRoot":"","sources":["../../src/server/ui-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Server as HttpServer } from 'node:http';
|
|
2
|
+
import type { Express, RequestHandler } from 'express';
|
|
3
|
+
import express from 'express';
|
|
4
|
+
import type { CachingLayer } from '../cache/caching-layer.js';
|
|
5
|
+
import type { ConfigSource, ServerConfig } from './types.js';
|
|
6
|
+
import type { UiLogBufferSink } from './ui-log-buffer.js';
|
|
7
|
+
export interface UiServerDeps {
|
|
8
|
+
config: ServerConfig;
|
|
9
|
+
sources: Record<string, ConfigSource>;
|
|
10
|
+
version: string;
|
|
11
|
+
startedAt: string;
|
|
12
|
+
cachingLayer?: CachingLayer;
|
|
13
|
+
logBuffer?: UiLogBufferSink;
|
|
14
|
+
getFeatures: () => unknown;
|
|
15
|
+
}
|
|
16
|
+
export declare function createUiApiRouter(deps: UiServerDeps): express.Router;
|
|
17
|
+
export declare function mountUiStaticRoutes(app: Express): void;
|
|
18
|
+
export declare function mountUiRoutes(app: Express, deps: UiServerDeps, auth?: RequestHandler): void;
|
|
19
|
+
export declare function startLocalUiServer(deps: UiServerDeps): Promise<HttpServer>;
|
|
20
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/server/ui.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAW,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAS1D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CA0HpE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAatD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAM3F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAsChF"}
|