@mondaydotcomorg/atp-server 0.17.14
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 +489 -0
- package/dist/aggregator/index.d.ts +59 -0
- package/dist/aggregator/index.d.ts.map +1 -0
- package/dist/aggregator/index.js +171 -0
- package/dist/aggregator/index.js.map +1 -0
- package/dist/callback/index.d.ts +98 -0
- package/dist/callback/index.d.ts.map +1 -0
- package/dist/callback/index.js +136 -0
- package/dist/callback/index.js.map +1 -0
- package/dist/client-sessions.d.ts +82 -0
- package/dist/client-sessions.d.ts.map +1 -0
- package/dist/client-sessions.js +174 -0
- package/dist/client-sessions.js.map +1 -0
- package/dist/controllers/definitions.controller.d.ts +4 -0
- package/dist/controllers/definitions.controller.d.ts.map +1 -0
- package/dist/controllers/definitions.controller.js +11 -0
- package/dist/controllers/definitions.controller.js.map +1 -0
- package/dist/controllers/execute.controller.d.ts +18 -0
- package/dist/controllers/execute.controller.d.ts.map +1 -0
- package/dist/controllers/execute.controller.js +122 -0
- package/dist/controllers/execute.controller.js.map +1 -0
- package/dist/controllers/info.controller.d.ts +3 -0
- package/dist/controllers/info.controller.d.ts.map +1 -0
- package/dist/controllers/info.controller.js +13 -0
- package/dist/controllers/info.controller.js.map +1 -0
- package/dist/controllers/resume.controller.d.ts +11 -0
- package/dist/controllers/resume.controller.d.ts.map +1 -0
- package/dist/controllers/resume.controller.js +61 -0
- package/dist/controllers/resume.controller.js.map +1 -0
- package/dist/controllers/search.controller.d.ts +4 -0
- package/dist/controllers/search.controller.d.ts.map +1 -0
- package/dist/controllers/search.controller.js +7 -0
- package/dist/controllers/search.controller.js.map +1 -0
- package/dist/controllers/stream.controller.d.ts +19 -0
- package/dist/controllers/stream.controller.d.ts.map +1 -0
- package/dist/controllers/stream.controller.js +141 -0
- package/dist/controllers/stream.controller.js.map +1 -0
- package/dist/core/config.d.ts +161 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +7 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/http.d.ts +4 -0
- package/dist/core/http.d.ts.map +1 -0
- package/dist/core/http.js +17 -0
- package/dist/core/http.js.map +1 -0
- package/dist/create-server.d.ts +120 -0
- package/dist/create-server.d.ts.map +1 -0
- package/dist/create-server.js +423 -0
- package/dist/create-server.js.map +1 -0
- package/dist/execution-state/index.d.ts +95 -0
- package/dist/execution-state/index.d.ts.map +1 -0
- package/dist/execution-state/index.js +128 -0
- package/dist/execution-state/index.js.map +1 -0
- package/dist/executor/ast-provenance-bridge.d.ts +12 -0
- package/dist/executor/ast-provenance-bridge.d.ts.map +1 -0
- package/dist/executor/ast-provenance-bridge.js +66 -0
- package/dist/executor/ast-provenance-bridge.js.map +1 -0
- package/dist/executor/ast-tracking-runtime.d.ts +7 -0
- package/dist/executor/ast-tracking-runtime.d.ts.map +1 -0
- package/dist/executor/ast-tracking-runtime.js +559 -0
- package/dist/executor/ast-tracking-runtime.js.map +1 -0
- package/dist/executor/bootstrap-generated.d.ts +32 -0
- package/dist/executor/bootstrap-generated.d.ts.map +1 -0
- package/dist/executor/bootstrap-generated.js +90 -0
- package/dist/executor/bootstrap-generated.js.map +1 -0
- package/dist/executor/compiler-config.d.ts +32 -0
- package/dist/executor/compiler-config.d.ts.map +1 -0
- package/dist/executor/compiler-config.js +99 -0
- package/dist/executor/compiler-config.js.map +1 -0
- package/dist/executor/constants.d.ts +4 -0
- package/dist/executor/constants.d.ts.map +1 -0
- package/dist/executor/constants.js +4 -0
- package/dist/executor/constants.js.map +1 -0
- package/dist/executor/error-handler.d.ts +9 -0
- package/dist/executor/error-handler.d.ts.map +1 -0
- package/dist/executor/error-handler.js +95 -0
- package/dist/executor/error-handler.js.map +1 -0
- package/dist/executor/execution-error-handler.d.ts +7 -0
- package/dist/executor/execution-error-handler.d.ts.map +1 -0
- package/dist/executor/execution-error-handler.js +136 -0
- package/dist/executor/execution-error-handler.js.map +1 -0
- package/dist/executor/executor.d.ts +20 -0
- package/dist/executor/executor.d.ts.map +1 -0
- package/dist/executor/executor.js +452 -0
- package/dist/executor/executor.js.map +1 -0
- package/dist/executor/index.d.ts +4 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +3 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/executor/resume-handler.d.ts +9 -0
- package/dist/executor/resume-handler.d.ts.map +1 -0
- package/dist/executor/resume-handler.js +22 -0
- package/dist/executor/resume-handler.js.map +1 -0
- package/dist/executor/sandbox-builder.d.ts +29 -0
- package/dist/executor/sandbox-builder.d.ts.map +1 -0
- package/dist/executor/sandbox-builder.js +538 -0
- package/dist/executor/sandbox-builder.js.map +1 -0
- package/dist/executor/sandbox-injector.d.ts +7 -0
- package/dist/executor/sandbox-injector.d.ts.map +1 -0
- package/dist/executor/sandbox-injector.js +293 -0
- package/dist/executor/sandbox-injector.js.map +1 -0
- package/dist/executor/types.d.ts +21 -0
- package/dist/executor/types.d.ts.map +1 -0
- package/dist/executor/types.js +2 -0
- package/dist/executor/types.js.map +1 -0
- package/dist/explorer/index.d.ts +69 -0
- package/dist/explorer/index.d.ts.map +1 -0
- package/dist/explorer/index.js +228 -0
- package/dist/explorer/index.js.map +1 -0
- package/dist/handlers/definitions.handler.d.ts +3 -0
- package/dist/handlers/definitions.handler.d.ts.map +1 -0
- package/dist/handlers/definitions.handler.js +11 -0
- package/dist/handlers/definitions.handler.js.map +1 -0
- package/dist/handlers/execute.handler.d.ts +7 -0
- package/dist/handlers/execute.handler.d.ts.map +1 -0
- package/dist/handlers/execute.handler.js +225 -0
- package/dist/handlers/execute.handler.js.map +1 -0
- package/dist/handlers/explorer.handler.d.ts +4 -0
- package/dist/handlers/explorer.handler.d.ts.map +1 -0
- package/dist/handlers/explorer.handler.js +10 -0
- package/dist/handlers/explorer.handler.js.map +1 -0
- package/dist/handlers/init.handler.d.ts +5 -0
- package/dist/handlers/init.handler.d.ts.map +1 -0
- package/dist/handlers/init.handler.js +41 -0
- package/dist/handlers/init.handler.js.map +1 -0
- package/dist/handlers/resume.handler.d.ts +6 -0
- package/dist/handlers/resume.handler.d.ts.map +1 -0
- package/dist/handlers/resume.handler.js +256 -0
- package/dist/handlers/resume.handler.js.map +1 -0
- package/dist/handlers/search.handler.d.ts +5 -0
- package/dist/handlers/search.handler.d.ts.map +1 -0
- package/dist/handlers/search.handler.js +11 -0
- package/dist/handlers/search.handler.js.map +1 -0
- package/dist/http/request-handler.d.ts +15 -0
- package/dist/http/request-handler.d.ts.map +1 -0
- package/dist/http/request-handler.js +94 -0
- package/dist/http/request-handler.js.map +1 -0
- package/dist/http/router.d.ts +4 -0
- package/dist/http/router.d.ts.map +1 -0
- package/dist/http/router.js +32 -0
- package/dist/http/router.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/index.d.ts +5 -0
- package/dist/instrumentation/index.d.ts.map +1 -0
- package/dist/instrumentation/index.js +5 -0
- package/dist/instrumentation/index.js.map +1 -0
- package/dist/instrumentation/serializer.d.ts +61 -0
- package/dist/instrumentation/serializer.d.ts.map +1 -0
- package/dist/instrumentation/serializer.js +334 -0
- package/dist/instrumentation/serializer.js.map +1 -0
- package/dist/instrumentation/state-manager.d.ts +61 -0
- package/dist/instrumentation/state-manager.d.ts.map +1 -0
- package/dist/instrumentation/state-manager.js +205 -0
- package/dist/instrumentation/state-manager.js.map +1 -0
- package/dist/instrumentation/transformer.d.ts +9 -0
- package/dist/instrumentation/transformer.d.ts.map +1 -0
- package/dist/instrumentation/transformer.js +70 -0
- package/dist/instrumentation/transformer.js.map +1 -0
- package/dist/instrumentation/types.d.ts +59 -0
- package/dist/instrumentation/types.d.ts.map +1 -0
- package/dist/instrumentation/types.js +5 -0
- package/dist/instrumentation/types.js.map +1 -0
- package/dist/middleware/audit.d.ts +18 -0
- package/dist/middleware/audit.d.ts.map +1 -0
- package/dist/middleware/audit.js +76 -0
- package/dist/middleware/audit.js.map +1 -0
- package/dist/openapi/index.d.ts +133 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +235 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi-loader.d.ts +87 -0
- package/dist/openapi-loader.d.ts.map +1 -0
- package/dist/openapi-loader.js +491 -0
- package/dist/openapi-loader.js.map +1 -0
- package/dist/routes/index.d.ts +21 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +47 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/search/index.d.ts +48 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +156 -0
- package/dist/search/index.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +2 -0
- package/dist/security/index.js.map +1 -0
- package/dist/shutdown.d.ts +19 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +87 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/utils/banner.d.ts +12 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +18 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/context.d.ts +16 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +44 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/error.d.ts +8 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +17 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/hint-based-instrumentation.d.ts +14 -0
- package/dist/utils/hint-based-instrumentation.d.ts.map +1 -0
- package/dist/utils/hint-based-instrumentation.js +84 -0
- package/dist/utils/hint-based-instrumentation.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/info.d.ts +20 -0
- package/dist/utils/info.d.ts.map +1 -0
- package/dist/utils/info.js +15 -0
- package/dist/utils/info.js.map +1 -0
- package/dist/utils/provenance-reattachment.d.ts +32 -0
- package/dist/utils/provenance-reattachment.d.ts.map +1 -0
- package/dist/utils/provenance-reattachment.js +115 -0
- package/dist/utils/provenance-reattachment.js.map +1 -0
- package/dist/utils/request.d.ts +21 -0
- package/dist/utils/request.d.ts.map +1 -0
- package/dist/utils/request.js +44 -0
- package/dist/utils/request.js.map +1 -0
- package/dist/utils/response.d.ts +30 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +53 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/utils/runtime-types.d.ts +6 -0
- package/dist/utils/runtime-types.d.ts.map +1 -0
- package/dist/utils/runtime-types.js +14 -0
- package/dist/utils/runtime-types.js.map +1 -0
- package/dist/utils/schema.d.ts +9 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +13 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/token-emitter.d.ts +21 -0
- package/dist/utils/token-emitter.d.ts.map +1 -0
- package/dist/utils/token-emitter.js +129 -0
- package/dist/utils/token-emitter.js.map +1 -0
- package/dist/validator/index.d.ts +36 -0
- package/dist/validator/index.d.ts.map +1 -0
- package/dist/validator/index.js +224 -0
- package/dist/validator/index.js.map +1 -0
- package/package.json +68 -0
- package/src/aggregator/index.ts +207 -0
- package/src/callback/index.ts +191 -0
- package/src/client-sessions.ts +234 -0
- package/src/controllers/definitions.controller.ts +19 -0
- package/src/controllers/execute.controller.ts +166 -0
- package/src/controllers/info.controller.ts +14 -0
- package/src/controllers/resume.controller.ts +92 -0
- package/src/controllers/search.controller.ts +16 -0
- package/src/controllers/stream.controller.ts +190 -0
- package/src/core/config.ts +180 -0
- package/src/core/http.ts +21 -0
- package/src/create-server.ts +536 -0
- package/src/execution-state/index.ts +204 -0
- package/src/executor/ast-provenance-bridge.ts +80 -0
- package/src/executor/ast-tracking-runtime.ts +558 -0
- package/src/executor/bootstrap-generated.ts +90 -0
- package/src/executor/compiler-config.ts +146 -0
- package/src/executor/constants.ts +5 -0
- package/src/executor/error-handler.ts +118 -0
- package/src/executor/execution-error-handler.ts +178 -0
- package/src/executor/executor.ts +631 -0
- package/src/executor/index.ts +3 -0
- package/src/executor/resume-handler.ts +39 -0
- package/src/executor/sandbox-builder.ts +684 -0
- package/src/executor/sandbox-injector.ts +345 -0
- package/src/executor/types.ts +22 -0
- package/src/explorer/index.ts +297 -0
- package/src/handlers/definitions.handler.ts +13 -0
- package/src/handlers/execute.handler.ts +286 -0
- package/src/handlers/explorer.handler.ts +18 -0
- package/src/handlers/init.handler.ts +53 -0
- package/src/handlers/resume.handler.ts +316 -0
- package/src/handlers/search.handler.ts +32 -0
- package/src/http/request-handler.ts +117 -0
- package/src/http/router.ts +29 -0
- package/src/index.ts +60 -0
- package/src/instrumentation/index.ts +4 -0
- package/src/instrumentation/serializer.ts +421 -0
- package/src/instrumentation/state-manager.ts +237 -0
- package/src/instrumentation/transformer.ts +84 -0
- package/src/instrumentation/types.ts +76 -0
- package/src/middleware/audit.ts +101 -0
- package/src/openapi/index.ts +378 -0
- package/src/openapi-loader.ts +744 -0
- package/src/routes/index.ts +93 -0
- package/src/search/index.ts +216 -0
- package/src/security/index.ts +1 -0
- package/src/shutdown.ts +108 -0
- package/src/utils/banner.ts +25 -0
- package/src/utils/context.ts +58 -0
- package/src/utils/error.ts +25 -0
- package/src/utils/hint-based-instrumentation.ts +99 -0
- package/src/utils/index.ts +15 -0
- package/src/utils/info.ts +31 -0
- package/src/utils/provenance-reattachment.ts +144 -0
- package/src/utils/request.ts +53 -0
- package/src/utils/response.ts +69 -0
- package/src/utils/runtime-types.ts +14 -0
- package/src/utils/schema.ts +18 -0
- package/src/utils/token-emitter.ts +182 -0
- package/src/validator/index.ts +253 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SearchEngine provides semantic and keyword-based search over available API functions.
|
|
3
|
+
*/
|
|
4
|
+
export class SearchEngine {
|
|
5
|
+
index = [];
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new SearchEngine instance.
|
|
8
|
+
* @param apiGroups - Array of API group configurations to index
|
|
9
|
+
*/
|
|
10
|
+
constructor(apiGroups) {
|
|
11
|
+
if (apiGroups) {
|
|
12
|
+
this.buildIndex(apiGroups);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Builds the search index from API group configurations.
|
|
17
|
+
* @param apiGroups - API groups to index
|
|
18
|
+
*/
|
|
19
|
+
buildIndex(apiGroups) {
|
|
20
|
+
this.index = [];
|
|
21
|
+
for (const group of apiGroups) {
|
|
22
|
+
if (group.functions) {
|
|
23
|
+
for (const func of group.functions) {
|
|
24
|
+
const keywords = this.extractKeywords(func.description);
|
|
25
|
+
const signature = this.generateSignature(func);
|
|
26
|
+
this.index.push({
|
|
27
|
+
apiGroup: group.name,
|
|
28
|
+
functionName: func.name,
|
|
29
|
+
description: func.description,
|
|
30
|
+
signature,
|
|
31
|
+
keywords,
|
|
32
|
+
metadata: {
|
|
33
|
+
requiredScopes: func.requiredScopes,
|
|
34
|
+
provider: func.auth?.oauthProvider,
|
|
35
|
+
source: func.auth?.source,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Searches for API functions matching the query.
|
|
44
|
+
* @param options - Search options including query and filters
|
|
45
|
+
* @param userId - Optional user ID for scope filtering
|
|
46
|
+
* @param authProvider - Optional auth provider for checking user scopes
|
|
47
|
+
* @param scopeFilteringConfig - Optional scope filtering configuration
|
|
48
|
+
* @returns Array of search results sorted by relevance
|
|
49
|
+
*/
|
|
50
|
+
async search(options, userId, authProvider, scopeFilteringConfig) {
|
|
51
|
+
const queryWords = this.extractKeywords(options.query);
|
|
52
|
+
const results = [];
|
|
53
|
+
for (const item of this.index) {
|
|
54
|
+
if (options.apiGroups && !options.apiGroups.includes(item.apiGroup)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (scopeFilteringConfig?.enabled && item.metadata?.source === 'user') {
|
|
58
|
+
const shouldInclude = await this.checkScopes(item, userId, authProvider, scopeFilteringConfig);
|
|
59
|
+
if (!shouldInclude) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
let score = 0;
|
|
64
|
+
if (item.description.toLowerCase().includes(options.query.toLowerCase())) {
|
|
65
|
+
score += 100;
|
|
66
|
+
}
|
|
67
|
+
if (item.functionName.toLowerCase().includes(options.query.toLowerCase())) {
|
|
68
|
+
score += 50;
|
|
69
|
+
}
|
|
70
|
+
for (const word of queryWords) {
|
|
71
|
+
if (item.keywords.includes(word)) {
|
|
72
|
+
score += 10;
|
|
73
|
+
}
|
|
74
|
+
if (item.functionName.toLowerCase().includes(word)) {
|
|
75
|
+
score += 5;
|
|
76
|
+
}
|
|
77
|
+
if (item.description.toLowerCase().includes(word)) {
|
|
78
|
+
score += 3;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (score > 0) {
|
|
82
|
+
results.push({
|
|
83
|
+
result: {
|
|
84
|
+
apiGroup: item.apiGroup,
|
|
85
|
+
functionName: item.functionName,
|
|
86
|
+
description: item.description,
|
|
87
|
+
signature: item.signature,
|
|
88
|
+
relevanceScore: score,
|
|
89
|
+
},
|
|
90
|
+
score,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
results.sort((a, b) => b.score - a.score);
|
|
95
|
+
const limit = options.maxResults ?? 10;
|
|
96
|
+
return results.slice(0, limit).map((r) => r.result);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Checks if a user has the required scopes for a function.
|
|
100
|
+
* @param item - Indexed function to check
|
|
101
|
+
* @param userId - User ID
|
|
102
|
+
* @param authProvider - Auth provider for looking up credentials
|
|
103
|
+
* @param config - Scope filtering configuration
|
|
104
|
+
* @returns True if function should be included in results
|
|
105
|
+
*/
|
|
106
|
+
async checkScopes(item, userId, authProvider, config) {
|
|
107
|
+
const requiredScopes = item.metadata?.requiredScopes;
|
|
108
|
+
const provider = item.metadata?.provider;
|
|
109
|
+
if (!requiredScopes || requiredScopes.length === 0) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
if (!userId || !authProvider || !provider) {
|
|
113
|
+
return config.fallback === 'allow';
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const userCreds = await authProvider.getUserCredential?.(userId, provider);
|
|
117
|
+
if (!userCreds) {
|
|
118
|
+
return config.fallback === 'allow';
|
|
119
|
+
}
|
|
120
|
+
const userScopes = userCreds.scopes ?? [];
|
|
121
|
+
const hasAllScopes = requiredScopes.every((required) => userScopes.includes(required));
|
|
122
|
+
return hasAllScopes;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
return config.fallback === 'allow';
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Extracts keywords from a text string.
|
|
130
|
+
* @param text - Text to extract keywords from
|
|
131
|
+
* @returns Array of lowercase keywords
|
|
132
|
+
*/
|
|
133
|
+
extractKeywords(text) {
|
|
134
|
+
return text
|
|
135
|
+
.toLowerCase()
|
|
136
|
+
.replace(/[^\w\s]/g, ' ')
|
|
137
|
+
.split(/\s+/)
|
|
138
|
+
.filter((word) => word.length > 2);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Generates a function signature string.
|
|
142
|
+
* @param func - Function definition
|
|
143
|
+
* @returns Signature string
|
|
144
|
+
*/
|
|
145
|
+
generateSignature(func) {
|
|
146
|
+
const params = [];
|
|
147
|
+
if (func.inputSchema?.properties) {
|
|
148
|
+
for (const [key, value] of Object.entries(func.inputSchema.properties)) {
|
|
149
|
+
const prop = value;
|
|
150
|
+
params.push(`${key}: ${prop.type ?? 'any'}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return `${func.name}({ ${params.join(', ')} })`;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Server } from 'node:http';
|
|
2
|
+
import type { ExecutionStateManager } from './execution-state/index.js';
|
|
3
|
+
import type { ClientCallbackManager } from './callback/index.js';
|
|
4
|
+
interface ShutdownHandlers {
|
|
5
|
+
server?: Server;
|
|
6
|
+
stateManager?: ExecutionStateManager;
|
|
7
|
+
callbackManager?: ClientCallbackManager;
|
|
8
|
+
customHandlers?: Array<() => Promise<void>>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Registers handlers for graceful shutdown
|
|
12
|
+
*/
|
|
13
|
+
export declare function registerShutdownHandlers(handlers: ShutdownHandlers): void;
|
|
14
|
+
/**
|
|
15
|
+
* Triggers graceful shutdown programmatically
|
|
16
|
+
*/
|
|
17
|
+
export declare function shutdown(): void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=shutdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,UAAU,gBAAgB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CAC5C;AAKD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAezE;AAoED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAE/B"}
|
package/dist/shutdown.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { log } from '@mondaydotcomorg/atp-runtime';
|
|
2
|
+
import { flushAuditQueue, shutdownAudit } from './middleware/audit.js';
|
|
3
|
+
let isShuttingDown = false;
|
|
4
|
+
let shutdownHandlers = {};
|
|
5
|
+
/**
|
|
6
|
+
* Registers handlers for graceful shutdown
|
|
7
|
+
*/
|
|
8
|
+
export function registerShutdownHandlers(handlers) {
|
|
9
|
+
shutdownHandlers = handlers;
|
|
10
|
+
process.on('SIGTERM', handleShutdown);
|
|
11
|
+
process.on('SIGINT', handleShutdown);
|
|
12
|
+
process.on('uncaughtException', (error) => {
|
|
13
|
+
log.error('Uncaught exception', { error: error.message, stack: error.stack });
|
|
14
|
+
handleShutdown();
|
|
15
|
+
});
|
|
16
|
+
process.on('unhandledRejection', (reason) => {
|
|
17
|
+
log.error('Unhandled promise rejection', { reason });
|
|
18
|
+
handleShutdown();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Performs graceful shutdown
|
|
23
|
+
*/
|
|
24
|
+
async function handleShutdown() {
|
|
25
|
+
if (isShuttingDown) {
|
|
26
|
+
log.warn('Shutdown already in progress');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
isShuttingDown = true;
|
|
30
|
+
log.info('Starting graceful shutdown...');
|
|
31
|
+
const shutdownTimeout = setTimeout(() => {
|
|
32
|
+
log.error('Shutdown timeout exceeded, forcing exit');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}, 30000);
|
|
35
|
+
try {
|
|
36
|
+
if (shutdownHandlers.server) {
|
|
37
|
+
log.info('Closing HTTP server...');
|
|
38
|
+
await new Promise((resolve, reject) => {
|
|
39
|
+
shutdownHandlers.server.close((err) => {
|
|
40
|
+
if (err)
|
|
41
|
+
reject(err);
|
|
42
|
+
else
|
|
43
|
+
resolve();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
log.info('HTTP server closed');
|
|
47
|
+
}
|
|
48
|
+
log.info('Flushing audit queue...');
|
|
49
|
+
await flushAuditQueue();
|
|
50
|
+
shutdownAudit();
|
|
51
|
+
log.info('Audit system stopped');
|
|
52
|
+
if (shutdownHandlers.stateManager) {
|
|
53
|
+
log.info('Closing state manager...');
|
|
54
|
+
await shutdownHandlers.stateManager.close();
|
|
55
|
+
log.info('State manager closed');
|
|
56
|
+
}
|
|
57
|
+
if (shutdownHandlers.callbackManager) {
|
|
58
|
+
log.info('Cleaning up callback manager...');
|
|
59
|
+
shutdownHandlers.callbackManager.destroy();
|
|
60
|
+
log.info('Callback manager cleaned up');
|
|
61
|
+
}
|
|
62
|
+
if (shutdownHandlers.customHandlers) {
|
|
63
|
+
log.info('Running custom shutdown handlers...');
|
|
64
|
+
for (const handler of shutdownHandlers.customHandlers) {
|
|
65
|
+
await handler();
|
|
66
|
+
}
|
|
67
|
+
log.info('Custom handlers completed');
|
|
68
|
+
}
|
|
69
|
+
clearTimeout(shutdownTimeout);
|
|
70
|
+
log.info('Graceful shutdown completed');
|
|
71
|
+
process.exit(0);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
clearTimeout(shutdownTimeout);
|
|
75
|
+
log.error('Error during shutdown', {
|
|
76
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
77
|
+
});
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Triggers graceful shutdown programmatically
|
|
83
|
+
*/
|
|
84
|
+
export function shutdown() {
|
|
85
|
+
handleShutdown();
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CacheProvider, AuthProvider, AuditSink } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
export interface BannerOptions {
|
|
3
|
+
port: number;
|
|
4
|
+
cacheProvider?: CacheProvider;
|
|
5
|
+
authProvider?: AuthProvider;
|
|
6
|
+
auditSink?: AuditSink;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Prints a startup banner with server information
|
|
10
|
+
*/
|
|
11
|
+
export declare function printBanner(options: BannerOptions): void;
|
|
12
|
+
//# sourceMappingURL=banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/utils/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAYxD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prints a startup banner with server information
|
|
3
|
+
*/
|
|
4
|
+
export function printBanner(options) {
|
|
5
|
+
const { port, cacheProvider, authProvider, auditSink } = options;
|
|
6
|
+
console.log('\n✨ ATP Server ready!');
|
|
7
|
+
console.log(`📍 http://localhost:${port}/`);
|
|
8
|
+
console.log(`📚 Type definitions: http://localhost:${port}/openapi.json`);
|
|
9
|
+
console.log(`🔍 API search: http://localhost:${port}/explorer`);
|
|
10
|
+
if (cacheProvider)
|
|
11
|
+
console.log(`💾 Cache: ${cacheProvider.name}`);
|
|
12
|
+
if (authProvider)
|
|
13
|
+
console.log(`🔒 Auth: ${authProvider.name}`);
|
|
14
|
+
if (auditSink)
|
|
15
|
+
console.log(`📝 Audit: ${auditSink.name}`);
|
|
16
|
+
console.log();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/utils/banner.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IACjD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEjE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,eAAe,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,WAAW,CAAC,CAAC;IAEhE,IAAI,aAAa;QAAE,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,YAAY;QAAE,OAAO,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IncomingMessage } from 'node:http';
|
|
2
|
+
import type { CacheProvider, AuthProvider, AuditSink } from '@mondaydotcomorg/atp-protocol';
|
|
3
|
+
import type { RequestContext } from '../core/config.js';
|
|
4
|
+
export interface CreateContextOptions {
|
|
5
|
+
req: IncomingMessage;
|
|
6
|
+
cacheProvider?: CacheProvider;
|
|
7
|
+
authProvider?: AuthProvider;
|
|
8
|
+
auditSink?: AuditSink;
|
|
9
|
+
customLogger?: any;
|
|
10
|
+
responseHeaders: Map<IncomingMessage, Map<string, string>>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a request context object with all necessary helpers and providers
|
|
14
|
+
*/
|
|
15
|
+
export declare function createContext(options: CreateContextOptions): RequestContext;
|
|
16
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IACpC,GAAG,EAAE,eAAe,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAuC3E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { log } from '@mondaydotcomorg/atp-runtime';
|
|
2
|
+
import { parseQuery } from '../core/http.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a request context object with all necessary helpers and providers
|
|
5
|
+
*/
|
|
6
|
+
export function createContext(options) {
|
|
7
|
+
const { req, cacheProvider, authProvider, auditSink, customLogger, responseHeaders } = options;
|
|
8
|
+
const clientId = req.headers['x-client-id'] || undefined;
|
|
9
|
+
const userId = req.headers['x-user-id'] || undefined;
|
|
10
|
+
return {
|
|
11
|
+
method: req.method || 'GET',
|
|
12
|
+
path: req.url || '/',
|
|
13
|
+
query: parseQuery(req.url || '/'),
|
|
14
|
+
headers: req.headers,
|
|
15
|
+
body: null,
|
|
16
|
+
status: 200,
|
|
17
|
+
responseBody: null,
|
|
18
|
+
clientId,
|
|
19
|
+
userId,
|
|
20
|
+
cache: cacheProvider,
|
|
21
|
+
auth: authProvider,
|
|
22
|
+
audit: auditSink,
|
|
23
|
+
logger: customLogger || log,
|
|
24
|
+
throw: (status, message) => {
|
|
25
|
+
const error = new Error(message);
|
|
26
|
+
error.status = status;
|
|
27
|
+
throw error;
|
|
28
|
+
},
|
|
29
|
+
assert: (condition, message) => {
|
|
30
|
+
if (!condition) {
|
|
31
|
+
const error = new Error(message);
|
|
32
|
+
error.status = 400;
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
set: (header, value) => {
|
|
37
|
+
if (!responseHeaders.has(req)) {
|
|
38
|
+
responseHeaders.set(req, new Map());
|
|
39
|
+
}
|
|
40
|
+
responseHeaders.get(req).set(header, value);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAW7C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAA6B;IAC1D,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAE/F,MAAM,QAAQ,GAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAY,IAAI,SAAS,CAAC;IACrE,MAAM,MAAM,GAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAY,IAAI,SAAS,CAAC;IAEjE,OAAO;QACN,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;QAC3B,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG;QACpB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QACjC,OAAO,EAAE,GAAG,CAAC,OAAiC;QAC9C,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,IAAI;QAClB,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,YAAY,IAAI,GAAG;QAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAQ,CAAC;YACxC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACtB,MAAM,KAAK,CAAC;QACb,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAQ,CAAC;gBACxC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;gBACnB,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QACD,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ServerResponse } from 'node:http';
|
|
2
|
+
/**
|
|
3
|
+
* Handles HTTP request errors and sends appropriate responses
|
|
4
|
+
*/
|
|
5
|
+
export declare function handleError(res: ServerResponse, error: Error & {
|
|
6
|
+
status?: number;
|
|
7
|
+
}, requestId: string, additionalHeaders?: Map<string, string>): void;
|
|
8
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C;;GAEG;AACH,wBAAgB,WAAW,CAC1B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAClC,SAAS,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,IAAI,CAaN"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { log } from '@mondaydotcomorg/atp-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* Handles HTTP request errors and sends appropriate responses
|
|
4
|
+
*/
|
|
5
|
+
export function handleError(res, error, requestId, additionalHeaders) {
|
|
6
|
+
const status = error.status || 500;
|
|
7
|
+
log.error('Request failed', { requestId, error: error.message, stack: error.stack });
|
|
8
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
9
|
+
if (additionalHeaders) {
|
|
10
|
+
for (const [key, value] of additionalHeaders.entries()) {
|
|
11
|
+
headers[key] = value;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
res.writeHead(status, headers);
|
|
15
|
+
res.end(JSON.stringify({ error: error.message, requestId }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,WAAW,CAC1B,GAAmB,EACnB,KAAkC,EAClC,SAAiB,EACjB,iBAAuC;IAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IACnC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAErF,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC/E,IAAI,iBAAiB,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACF,CAAC;IAED,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-process code to mark string literals that match provenance hints as tainted
|
|
3
|
+
* This enables cross-execution provenance tracking
|
|
4
|
+
*/
|
|
5
|
+
import type { ProvenanceMetadata } from '@mondaydotcomorg/atp-provenance';
|
|
6
|
+
/**
|
|
7
|
+
* Instrument string literals in code that match hint digests
|
|
8
|
+
* Wraps them in __mark_tainted(value, hintId) calls
|
|
9
|
+
*/
|
|
10
|
+
export declare function instrumentLiteralsFromHints(code: string, hintMetadata: Map<string, ProvenanceMetadata>): {
|
|
11
|
+
code: string;
|
|
12
|
+
taintedCount: number;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=hint-based-instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hint-based-instrumentation.d.ts","sourceRoot":"","sources":["../../src/utils/hint-based-instrumentation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG1E;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAgFxC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-process code to mark string literals that match provenance hints as tainted
|
|
3
|
+
* This enables cross-execution provenance tracking
|
|
4
|
+
*/
|
|
5
|
+
import * as acorn from 'acorn';
|
|
6
|
+
import * as walk from 'acorn-walk';
|
|
7
|
+
import * as escodegen from 'escodegen';
|
|
8
|
+
import { computeDigest } from '@mondaydotcomorg/atp-provenance';
|
|
9
|
+
/**
|
|
10
|
+
* Instrument string literals in code that match hint digests
|
|
11
|
+
* Wraps them in __mark_tainted(value, hintId) calls
|
|
12
|
+
*/
|
|
13
|
+
export function instrumentLiteralsFromHints(code, hintMetadata) {
|
|
14
|
+
if (!hintMetadata || hintMetadata.size === 0) {
|
|
15
|
+
return { code, taintedCount: 0 };
|
|
16
|
+
}
|
|
17
|
+
let taintedCount = 0;
|
|
18
|
+
const valueMap = hintMetadata.__valueMap;
|
|
19
|
+
try {
|
|
20
|
+
const isAlreadyWrapped = code.trim().startsWith('(async function');
|
|
21
|
+
const wrappedCode = isAlreadyWrapped ? code : `(async function() {\n${code}\n})`;
|
|
22
|
+
const ast = acorn.parse(wrappedCode, {
|
|
23
|
+
ecmaVersion: 2022,
|
|
24
|
+
sourceType: 'script',
|
|
25
|
+
});
|
|
26
|
+
walk.simple(ast, {
|
|
27
|
+
Literal(node) {
|
|
28
|
+
if (typeof node.value === 'string') {
|
|
29
|
+
let shouldTaint = false;
|
|
30
|
+
const digest = computeDigest(node.value);
|
|
31
|
+
if (digest && hintMetadata.has(digest)) {
|
|
32
|
+
shouldTaint = true;
|
|
33
|
+
}
|
|
34
|
+
if (!shouldTaint && valueMap && valueMap.size > 0) {
|
|
35
|
+
for (const hintValue of valueMap.keys()) {
|
|
36
|
+
if (node.value.includes(hintValue)) {
|
|
37
|
+
shouldTaint = true;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (shouldTaint) {
|
|
43
|
+
const originalValue = node.value;
|
|
44
|
+
const originalRaw = node.raw || JSON.stringify(originalValue);
|
|
45
|
+
node.type = 'CallExpression';
|
|
46
|
+
node.callee = {
|
|
47
|
+
type: 'Identifier',
|
|
48
|
+
name: '__mark_tainted',
|
|
49
|
+
};
|
|
50
|
+
node.arguments = [
|
|
51
|
+
{
|
|
52
|
+
type: 'Literal',
|
|
53
|
+
value: originalValue,
|
|
54
|
+
raw: originalRaw,
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
delete node.value;
|
|
58
|
+
delete node.raw;
|
|
59
|
+
taintedCount++;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
let instrumentedCode = escodegen.generate(ast);
|
|
65
|
+
if (!isAlreadyWrapped) {
|
|
66
|
+
const unwrapPrefix = '(async function () {\n';
|
|
67
|
+
const unwrapSuffix = '\n})';
|
|
68
|
+
if (instrumentedCode.startsWith(unwrapPrefix) && instrumentedCode.endsWith(unwrapSuffix)) {
|
|
69
|
+
instrumentedCode = instrumentedCode.slice(unwrapPrefix.length, -unwrapSuffix.length);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
if (instrumentedCode.endsWith(');')) {
|
|
74
|
+
instrumentedCode = instrumentedCode.slice(0, -1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return { code: instrumentedCode, taintedCount };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error('Failed to instrument literals from hints:', error);
|
|
81
|
+
return { code, taintedCount: 0 };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=hint-based-instrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hint-based-instrumentation.js","sourceRoot":"","sources":["../../src/utils/hint-based-instrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { toJSONSchema } from './schema.js';
|
|
2
|
+
export { printBanner, type BannerOptions } from './banner.js';
|
|
3
|
+
export { handleError } from './error.js';
|
|
4
|
+
export { createContext, type CreateContextOptions } from './context.js';
|
|
5
|
+
export { getServerInfo, type ServerInfo, type ServerLimits } from './info.js';
|
|
6
|
+
export { readBody, readJsonBody, DEFAULT_MAX_BODY_SIZE } from './request.js';
|
|
7
|
+
export { sendJson, sendError, send404, sendBadRequest, sendServiceUnavailable, setCorsHeaders, handleOptions, } from './response.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { toJSONSchema } from './schema.js';
|
|
2
|
+
export { printBanner } from './banner.js';
|
|
3
|
+
export { handleError } from './error.js';
|
|
4
|
+
export { createContext } from './context.js';
|
|
5
|
+
export { getServerInfo } from './info.js';
|
|
6
|
+
export { readBody, readJsonBody, DEFAULT_MAX_BODY_SIZE } from './request.js';
|
|
7
|
+
export { sendJson, sendError, send404, sendBadRequest, sendServiceUnavailable, setCorsHeaders, handleOptions, } from './response.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAA6B,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAsC,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ServerLimits {
|
|
2
|
+
maxTimeout: number;
|
|
3
|
+
maxMemory: number;
|
|
4
|
+
maxLLMCalls: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ServerInfo {
|
|
7
|
+
version: string;
|
|
8
|
+
capabilities: {
|
|
9
|
+
execution: boolean;
|
|
10
|
+
search: boolean;
|
|
11
|
+
streaming: boolean;
|
|
12
|
+
llmCalls: boolean;
|
|
13
|
+
};
|
|
14
|
+
limits: ServerLimits;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Generates server information object
|
|
18
|
+
*/
|
|
19
|
+
export declare function getServerInfo(limits: ServerLimits): ServerInfo;
|
|
20
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/utils/info.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAU9D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates server information object
|
|
3
|
+
*/
|
|
4
|
+
export function getServerInfo(limits) {
|
|
5
|
+
return {
|
|
6
|
+
version: '1.0.0',
|
|
7
|
+
capabilities: { execution: true, search: true, streaming: false, llmCalls: true },
|
|
8
|
+
limits: {
|
|
9
|
+
maxTimeout: limits.maxTimeout,
|
|
10
|
+
maxMemory: limits.maxMemory,
|
|
11
|
+
maxLLMCalls: limits.maxLLMCalls,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/utils/info.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IACjD,OAAO;QACN,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjF,MAAM,EAAE;YACP,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;SAC/B;KACD,CAAC;AACH,CAAC"}
|