accessflow-mcp-server 2.0.4-beta.4 → 2.1.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/http-server.js +8 -3
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +8 -45
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +40 -14
- package/dist/server.js.map +1 -1
- package/dist/services/apiSchemas.d.ts +768 -1176
- package/dist/services/apiSchemas.d.ts.map +1 -1
- package/dist/services/apiSchemas.js +20 -1
- package/dist/services/apiSchemas.js.map +1 -1
- package/dist/services/apiService.d.ts +3 -3
- package/dist/services/apiService.d.ts.map +1 -1
- package/dist/services/apiService.js +15 -5
- package/dist/services/apiService.js.map +1 -1
- package/dist/services/loggerService.d.ts.map +1 -1
- package/dist/services/loggerService.js +31 -8
- package/dist/services/loggerService.js.map +1 -1
- package/dist/services/rulesService.d.ts +10 -0
- package/dist/services/rulesService.d.ts.map +1 -0
- package/dist/services/rulesService.js +70 -0
- package/dist/services/rulesService.js.map +1 -0
- package/dist/tools/getIssueRemediation.d.ts +6 -5
- package/dist/tools/getIssueRemediation.d.ts.map +1 -1
- package/dist/tools/getIssueRemediation.js +36 -18
- package/dist/tools/getIssueRemediation.js.map +1 -1
- package/dist/tools/getMostUrgentIssues.d.ts +11 -1
- package/dist/tools/getMostUrgentIssues.d.ts.map +1 -1
- package/dist/tools/getMostUrgentIssues.js +39 -19
- package/dist/tools/getMostUrgentIssues.js.map +1 -1
- package/dist/tools/index.d.ts +10 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +85 -12
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/resolveIssue.d.ts +1 -5
- package/dist/tools/resolveIssue.d.ts.map +1 -1
- package/dist/tools/resolveIssue.js +12 -0
- package/dist/tools/resolveIssue.js.map +1 -1
- package/dist/tools/submitFeedback.d.ts +17 -0
- package/dist/tools/submitFeedback.d.ts.map +1 -0
- package/dist/tools/submitFeedback.js +73 -0
- package/dist/tools/submitFeedback.js.map +1 -0
- package/dist/tools/toolRegistry.d.ts +16 -11
- package/dist/tools/toolRegistry.d.ts.map +1 -1
- package/dist/types/issues.d.ts +7 -1
- package/dist/types/issues.d.ts.map +1 -1
- package/dist/types/remediation.d.ts +1 -1
- package/dist/types/remediation.d.ts.map +1 -1
- package/dist/utils/remediation.d.ts +5 -3
- package/dist/utils/remediation.d.ts.map +1 -1
- package/dist/utils/remediation.js +22 -8
- package/dist/utils/remediation.js.map +1 -1
- package/package.json +8 -4
package/dist/http-server.js
CHANGED
|
@@ -11,24 +11,29 @@ async function startServer() {
|
|
|
11
11
|
const transportConfig = {
|
|
12
12
|
type: 'httpStream',
|
|
13
13
|
port,
|
|
14
|
+
host: '0.0.0.0', // Listen on all network interfaces
|
|
14
15
|
stateless,
|
|
15
16
|
};
|
|
16
17
|
console.log('Creating server instance...');
|
|
17
18
|
const server = new FlowMcpServer(transportConfig);
|
|
18
19
|
// Handle graceful shutdown
|
|
19
20
|
process.on('SIGINT', async () => {
|
|
21
|
+
logger.info('Received SIGINT, shutting down gracefully...');
|
|
20
22
|
await server.stop();
|
|
23
|
+
logger.info('Server stopped successfully');
|
|
21
24
|
process.exit(0);
|
|
22
25
|
});
|
|
23
26
|
process.on('SIGTERM', async () => {
|
|
27
|
+
logger.info('Received SIGTERM, shutting down gracefully...');
|
|
24
28
|
await server.stop();
|
|
29
|
+
logger.info('Server stopped successfully');
|
|
25
30
|
process.exit(0);
|
|
26
31
|
});
|
|
27
32
|
console.log('Initializing server...');
|
|
28
33
|
// Start server with HTTP transport
|
|
29
|
-
await server.init(
|
|
30
|
-
logger.info(`HTTP server is running at http
|
|
31
|
-
console.log(`HTTP server is running at http
|
|
34
|
+
await server.init();
|
|
35
|
+
logger.info(`HTTP server is running at http://${transportConfig.host}:${port}/mcp`);
|
|
36
|
+
console.log(`HTTP server is running at http://${transportConfig.host}:${port}/mcp`);
|
|
32
37
|
}
|
|
33
38
|
catch (error) {
|
|
34
39
|
console.error('Error starting HTTP server:', error);
|
package/dist/http-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAEvC,oDAAoD;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC;QAEnD,MAAM,eAAe,GAAG;YACtB,IAAI,EAAE,YAAqB;YAC3B,IAAI;YACJ,SAAS;SACV,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;QAElD,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,mCAAmC;QACnC,MAAM,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,62 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import 'dotenv/config';
|
|
3
|
-
import {
|
|
4
|
-
import packageJson from '../package.json' with { type: 'json' };
|
|
5
|
-
import { registerTools } from './tools/index.js';
|
|
6
|
-
import { sanitizeDomain } from './utils/domains.js';
|
|
7
|
-
import { ApiService } from './services/apiService.js';
|
|
3
|
+
import { FlowMcpServer } from './server.js';
|
|
8
4
|
import { logger } from './services/loggerService.js';
|
|
9
|
-
class FlowMcpServer {
|
|
10
|
-
options;
|
|
11
|
-
server;
|
|
12
|
-
domain;
|
|
13
|
-
environment;
|
|
14
|
-
apiKey;
|
|
15
|
-
apiService;
|
|
16
|
-
constructor() {
|
|
17
|
-
this.options = {
|
|
18
|
-
name: 'accessFlow MCP Server',
|
|
19
|
-
version: packageJson.version,
|
|
20
|
-
};
|
|
21
|
-
this.server = new FastMCP(this.options);
|
|
22
|
-
this.domain = sanitizeDomain(process.env.DOMAIN || '');
|
|
23
|
-
this.environment =
|
|
24
|
-
process.env.ENVIRONMENT || 'https://accessflow.accessibe.com'; // Default to production environment
|
|
25
|
-
this.apiKey = process.env.API_KEY || '';
|
|
26
|
-
const nonProdUserName = process.env.NON_PROD_USER_NAME;
|
|
27
|
-
const nonProdPassword = process.env.NON_PROD_PASSWORD;
|
|
28
|
-
this.apiService = new ApiService(this.environment, this.domain, this.apiKey, nonProdUserName, nonProdPassword);
|
|
29
|
-
}
|
|
30
|
-
async init() {
|
|
31
|
-
logger.info('Initializing Flow MCP Server...');
|
|
32
|
-
registerTools(this.server, this.apiService);
|
|
33
|
-
// Start the FastMCP server
|
|
34
|
-
await this.server.start({
|
|
35
|
-
transportType: 'stdio',
|
|
36
|
-
});
|
|
37
|
-
logger.info({
|
|
38
|
-
domain: this.domain,
|
|
39
|
-
environment: this.environment,
|
|
40
|
-
}, 'Flow MCP Server started successfully');
|
|
41
|
-
return this;
|
|
42
|
-
}
|
|
43
|
-
async stop() {
|
|
44
|
-
if (this.server)
|
|
45
|
-
await this.server.stop();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
5
|
async function startServer() {
|
|
49
|
-
const
|
|
6
|
+
const transportConfig = { type: 'stdio' };
|
|
7
|
+
const server = new FlowMcpServer(transportConfig);
|
|
50
8
|
// Handle graceful shutdown
|
|
51
9
|
process.on('SIGINT', async () => {
|
|
10
|
+
logger.info('Received SIGINT, shutting down gracefully...');
|
|
52
11
|
await server.stop();
|
|
12
|
+
logger.info('Server stopped successfully');
|
|
53
13
|
process.exit(0);
|
|
54
14
|
});
|
|
55
15
|
process.on('SIGTERM', async () => {
|
|
16
|
+
logger.info('Received SIGTERM, shutting down gracefully...');
|
|
56
17
|
await server.stop();
|
|
18
|
+
logger.info('Server stopped successfully');
|
|
57
19
|
process.exit(0);
|
|
58
20
|
});
|
|
59
21
|
try {
|
|
22
|
+
// Start server with stdio transport (default for MCP clients)
|
|
60
23
|
await server.init();
|
|
61
24
|
}
|
|
62
25
|
catch (error) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,KAAK,UAAU,WAAW;IACxB,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;IAElD,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC5D,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV;YACE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;YAC/D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACxD,EACD,iCAAiC,CAClC,CAAC;QAEF,0DAA0D;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,WAAW,EAAE,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -4,21 +4,25 @@ export type TransportConfig = {
|
|
|
4
4
|
} | {
|
|
5
5
|
type: 'httpStream';
|
|
6
6
|
port: number;
|
|
7
|
+
host?: string;
|
|
7
8
|
stateless?: boolean;
|
|
8
9
|
};
|
|
9
10
|
export interface SessionData {
|
|
10
11
|
apiKey: string;
|
|
11
12
|
domain: string;
|
|
12
13
|
environment?: string;
|
|
14
|
+
nonProdUsername?: string;
|
|
15
|
+
nonProdPassword?: string;
|
|
13
16
|
[key: string]: unknown;
|
|
14
17
|
}
|
|
15
18
|
export declare class FlowMcpServer {
|
|
16
19
|
private readonly options;
|
|
17
20
|
private readonly server;
|
|
18
21
|
private readonly environment;
|
|
22
|
+
private readonly transportConfig;
|
|
19
23
|
private stdioApiService?;
|
|
20
24
|
constructor(transportConfig: TransportConfig);
|
|
21
|
-
init(
|
|
25
|
+
init(): Promise<this>;
|
|
22
26
|
stop(): Promise<void>;
|
|
23
27
|
}
|
|
24
28
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAQvB,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAQvB,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAGlD,OAAO,CAAC,eAAe,CAAC,CAAa;gBAEzB,eAAe,EAAE,eAAe;IAoItC,IAAI;IAqFJ,IAAI;CAGX"}
|
package/dist/server.js
CHANGED
|
@@ -9,9 +9,11 @@ export class FlowMcpServer {
|
|
|
9
9
|
options;
|
|
10
10
|
server;
|
|
11
11
|
environment;
|
|
12
|
+
transportConfig;
|
|
12
13
|
// For stdio mode only
|
|
13
14
|
stdioApiService;
|
|
14
15
|
constructor(transportConfig) {
|
|
16
|
+
this.transportConfig = transportConfig;
|
|
15
17
|
this.environment =
|
|
16
18
|
process.env.ENVIRONMENT || 'https://accessflow.accessibe.com';
|
|
17
19
|
const nonProdUserName = process.env.NON_PROD_USER_NAME;
|
|
@@ -53,6 +55,15 @@ export class FlowMcpServer {
|
|
|
53
55
|
// Extract optional X-Environment header (defaults to production)
|
|
54
56
|
const environmentHeader = getHeader('x-environment');
|
|
55
57
|
const environment = environmentHeader || 'https://accessflow.accessibe.com';
|
|
58
|
+
// Extract optional non-prod basic auth credentials (for staging environments)
|
|
59
|
+
const nonProdUsername = getHeader('x-nonprod-username');
|
|
60
|
+
const nonProdPassword = getHeader('x-nonprod-password');
|
|
61
|
+
if (nonProdUsername && nonProdPassword) {
|
|
62
|
+
logger.debug({
|
|
63
|
+
domain,
|
|
64
|
+
hasNonProdCreds: true,
|
|
65
|
+
}, 'Using non-prod credentials for API calls');
|
|
66
|
+
}
|
|
56
67
|
if (!apiKey || !domain) {
|
|
57
68
|
logger.warn({
|
|
58
69
|
hasAuthHeader: !!authHeader,
|
|
@@ -69,11 +80,19 @@ export class FlowMcpServer {
|
|
|
69
80
|
environment,
|
|
70
81
|
apiKeyPrefix: apiKey.substring(0, 10) + '...',
|
|
71
82
|
}, 'HTTP request authenticated');
|
|
72
|
-
|
|
83
|
+
const sessionData = {
|
|
73
84
|
apiKey,
|
|
74
85
|
domain,
|
|
75
86
|
environment,
|
|
76
87
|
};
|
|
88
|
+
// Only include nonProd credentials if they are defined
|
|
89
|
+
if (nonProdUsername !== undefined) {
|
|
90
|
+
sessionData.nonProdUsername = nonProdUsername;
|
|
91
|
+
}
|
|
92
|
+
if (nonProdPassword !== undefined) {
|
|
93
|
+
sessionData.nonProdPassword = nonProdPassword;
|
|
94
|
+
}
|
|
95
|
+
return sessionData;
|
|
77
96
|
},
|
|
78
97
|
};
|
|
79
98
|
}
|
|
@@ -89,13 +108,14 @@ export class FlowMcpServer {
|
|
|
89
108
|
}
|
|
90
109
|
this.server = new FastMCP(this.options);
|
|
91
110
|
}
|
|
92
|
-
async init(
|
|
93
|
-
const transportType = transportConfig.type
|
|
94
|
-
|
|
111
|
+
async init() {
|
|
112
|
+
const transportType = this.transportConfig.type;
|
|
113
|
+
const transportMode = transportType === 'stdio' ? 'stdio' : 'HTTP';
|
|
114
|
+
logger.info(`Initializing Flow MCP Server (${transportMode} mode)...`);
|
|
95
115
|
const nonProdUserName = process.env.NON_PROD_USER_NAME;
|
|
96
116
|
const nonProdPassword = process.env.NON_PROD_PASSWORD;
|
|
97
117
|
// Register tools with appropriate configuration
|
|
98
|
-
if (
|
|
118
|
+
if (transportType === 'stdio') {
|
|
99
119
|
// stdio mode: Use pre-created ApiService
|
|
100
120
|
if (!this.stdioApiService) {
|
|
101
121
|
throw new Error('ApiService not initialized for stdio mode');
|
|
@@ -112,22 +132,28 @@ export class FlowMcpServer {
|
|
|
112
132
|
createApiService: (session) => {
|
|
113
133
|
// Use environment from session (X-Environment header) or fall back to default
|
|
114
134
|
const environment = session.environment || 'https://accessflow.accessibe.com';
|
|
115
|
-
|
|
135
|
+
// Use credentials from session headers, or fall back to environment variables
|
|
136
|
+
const username = session.nonProdUsername || nonProdUserName;
|
|
137
|
+
const password = session.nonProdPassword || nonProdPassword;
|
|
138
|
+
return new ApiService(environment, session.domain, session.apiKey, username, password);
|
|
116
139
|
},
|
|
117
140
|
});
|
|
118
141
|
}
|
|
119
142
|
// Start the FastMCP server with the specified transport
|
|
120
|
-
if (
|
|
143
|
+
if (transportType === 'stdio') {
|
|
121
144
|
await this.server.start({
|
|
122
145
|
transportType: 'stdio',
|
|
123
146
|
});
|
|
124
147
|
}
|
|
125
148
|
else {
|
|
126
149
|
const httpStreamConfig = {
|
|
127
|
-
port: transportConfig.port,
|
|
150
|
+
port: this.transportConfig.port,
|
|
151
|
+
...(this.transportConfig.host !== undefined && {
|
|
152
|
+
host: this.transportConfig.host,
|
|
153
|
+
}),
|
|
128
154
|
};
|
|
129
|
-
if (transportConfig.stateless !== undefined) {
|
|
130
|
-
httpStreamConfig.stateless = transportConfig.stateless;
|
|
155
|
+
if (this.transportConfig.stateless !== undefined) {
|
|
156
|
+
httpStreamConfig.stateless = this.transportConfig.stateless;
|
|
131
157
|
}
|
|
132
158
|
await this.server.start({
|
|
133
159
|
transportType: 'httpStream',
|
|
@@ -136,11 +162,11 @@ export class FlowMcpServer {
|
|
|
136
162
|
}
|
|
137
163
|
logger.info({
|
|
138
164
|
environment: this.environment,
|
|
139
|
-
transport:
|
|
140
|
-
...(
|
|
141
|
-
port: transportConfig.port,
|
|
165
|
+
transport: transportMode,
|
|
166
|
+
...(transportType === 'httpStream' && {
|
|
167
|
+
port: this.transportConfig.port,
|
|
142
168
|
}),
|
|
143
|
-
...(
|
|
169
|
+
...(transportType === 'stdio' &&
|
|
144
170
|
this.stdioApiService && {
|
|
145
171
|
domain: this.stdioApiService.domain,
|
|
146
172
|
}),
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AACtD,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|