@flutchai/flutch-sdk 0.1.4 → 0.1.5

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.
Files changed (193) hide show
  1. package/dist/index.cjs +6419 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +1499 -0
  4. package/dist/index.d.ts +1499 -27
  5. package/dist/index.js +6347 -47
  6. package/dist/index.js.map +1 -1
  7. package/package.json +65 -10
  8. package/dist/api/callback-token.guard.d.ts +0 -17
  9. package/dist/api/callback-token.guard.js +0 -80
  10. package/dist/api/callback-token.guard.js.map +0 -1
  11. package/dist/api/callback.controller.d.ts +0 -7
  12. package/dist/api/callback.controller.js +0 -44
  13. package/dist/api/callback.controller.js.map +0 -1
  14. package/dist/api/graph.controller.d.ts +0 -32
  15. package/dist/api/graph.controller.js +0 -187
  16. package/dist/api/graph.controller.js.map +0 -1
  17. package/dist/api/ui-dispatch.controller.d.ts +0 -34
  18. package/dist/api/ui-dispatch.controller.js +0 -178
  19. package/dist/api/ui-dispatch.controller.js.map +0 -1
  20. package/dist/bootstrap.d.ts +0 -4
  21. package/dist/bootstrap.js +0 -99
  22. package/dist/bootstrap.js.map +0 -1
  23. package/dist/callbacks/callback-acl.service.d.ts +0 -24
  24. package/dist/callbacks/callback-acl.service.js +0 -144
  25. package/dist/callbacks/callback-acl.service.js.map +0 -1
  26. package/dist/callbacks/callback-auditor.service.d.ts +0 -47
  27. package/dist/callbacks/callback-auditor.service.js +0 -286
  28. package/dist/callbacks/callback-auditor.service.js.map +0 -1
  29. package/dist/callbacks/callback-metrics.service.d.ts +0 -34
  30. package/dist/callbacks/callback-metrics.service.js +0 -216
  31. package/dist/callbacks/callback-metrics.service.js.map +0 -1
  32. package/dist/callbacks/callback-patch.service.d.ts +0 -13
  33. package/dist/callbacks/callback-patch.service.js +0 -51
  34. package/dist/callbacks/callback-patch.service.js.map +0 -1
  35. package/dist/callbacks/callback-rate-limiter.d.ts +0 -27
  36. package/dist/callbacks/callback-rate-limiter.js +0 -129
  37. package/dist/callbacks/callback-rate-limiter.js.map +0 -1
  38. package/dist/callbacks/callback-registry.d.ts +0 -7
  39. package/dist/callbacks/callback-registry.js +0 -29
  40. package/dist/callbacks/callback-registry.js.map +0 -1
  41. package/dist/callbacks/callback-store.d.ts +0 -19
  42. package/dist/callbacks/callback-store.js +0 -145
  43. package/dist/callbacks/callback-store.js.map +0 -1
  44. package/dist/callbacks/example.callback.d.ts +0 -2
  45. package/dist/callbacks/example.callback.js +0 -10
  46. package/dist/callbacks/example.callback.js.map +0 -1
  47. package/dist/callbacks/idempotency-manager.d.ts +0 -54
  48. package/dist/callbacks/idempotency-manager.js +0 -230
  49. package/dist/callbacks/idempotency-manager.js.map +0 -1
  50. package/dist/callbacks/index.d.ts +0 -13
  51. package/dist/callbacks/index.js +0 -30
  52. package/dist/callbacks/index.js.map +0 -1
  53. package/dist/callbacks/smart-callback.router.d.ts +0 -52
  54. package/dist/callbacks/smart-callback.router.js +0 -213
  55. package/dist/callbacks/smart-callback.router.js.map +0 -1
  56. package/dist/callbacks/telegram-patch.handler.d.ts +0 -6
  57. package/dist/callbacks/telegram-patch.handler.js +0 -24
  58. package/dist/callbacks/telegram-patch.handler.js.map +0 -1
  59. package/dist/callbacks/universal-callback.service.d.ts +0 -14
  60. package/dist/callbacks/universal-callback.service.js +0 -20
  61. package/dist/callbacks/universal-callback.service.js.map +0 -1
  62. package/dist/callbacks/web-patch.handler.d.ts +0 -6
  63. package/dist/callbacks/web-patch.handler.js +0 -24
  64. package/dist/callbacks/web-patch.handler.js.map +0 -1
  65. package/dist/core/abstract-graph.builder.d.ts +0 -128
  66. package/dist/core/abstract-graph.builder.js +0 -488
  67. package/dist/core/abstract-graph.builder.js.map +0 -1
  68. package/dist/core/builder-registry.service.d.ts +0 -6
  69. package/dist/core/builder-registry.service.js +0 -29
  70. package/dist/core/builder-registry.service.js.map +0 -1
  71. package/dist/core/universal-graph.module.d.ts +0 -10
  72. package/dist/core/universal-graph.module.js +0 -294
  73. package/dist/core/universal-graph.module.js.map +0 -1
  74. package/dist/decorators/callback.decorators.d.ts +0 -21
  75. package/dist/decorators/callback.decorators.js +0 -73
  76. package/dist/decorators/callback.decorators.js.map +0 -1
  77. package/dist/endpoint-registry/endpoint.decorators.d.ts +0 -35
  78. package/dist/endpoint-registry/endpoint.decorators.js +0 -115
  79. package/dist/endpoint-registry/endpoint.decorators.js.map +0 -1
  80. package/dist/endpoint-registry/endpoint.registry.d.ts +0 -44
  81. package/dist/endpoint-registry/endpoint.registry.js +0 -90
  82. package/dist/endpoint-registry/endpoint.registry.js.map +0 -1
  83. package/dist/endpoint-registry/index.d.ts +0 -3
  84. package/dist/endpoint-registry/index.js +0 -20
  85. package/dist/endpoint-registry/index.js.map +0 -1
  86. package/dist/endpoint-registry/ui-endpoints.discovery.d.ts +0 -11
  87. package/dist/endpoint-registry/ui-endpoints.discovery.js +0 -72
  88. package/dist/endpoint-registry/ui-endpoints.discovery.js.map +0 -1
  89. package/dist/engine/api-call-tracer.utils.d.ts +0 -8
  90. package/dist/engine/api-call-tracer.utils.js +0 -184
  91. package/dist/engine/api-call-tracer.utils.js.map +0 -1
  92. package/dist/engine/event-processor.utils.d.ts +0 -49
  93. package/dist/engine/event-processor.utils.js +0 -314
  94. package/dist/engine/event-processor.utils.js.map +0 -1
  95. package/dist/engine/graph-engine.factory.d.ts +0 -12
  96. package/dist/engine/graph-engine.factory.js +0 -43
  97. package/dist/engine/graph-engine.factory.js.map +0 -1
  98. package/dist/engine/langgraph-engine.d.ts +0 -14
  99. package/dist/engine/langgraph-engine.js +0 -261
  100. package/dist/engine/langgraph-engine.js.map +0 -1
  101. package/dist/interfaces/callback.interface.d.ts +0 -46
  102. package/dist/interfaces/callback.interface.js +0 -3
  103. package/dist/interfaces/callback.interface.js.map +0 -1
  104. package/dist/interfaces/graph-registry.interface.d.ts +0 -8
  105. package/dist/interfaces/graph-registry.interface.js +0 -3
  106. package/dist/interfaces/graph-registry.interface.js.map +0 -1
  107. package/dist/interfaces/graph-service.interface.d.ts +0 -43
  108. package/dist/interfaces/graph-service.interface.js +0 -9
  109. package/dist/interfaces/graph-service.interface.js.map +0 -1
  110. package/dist/interfaces/index.d.ts +0 -3
  111. package/dist/interfaces/index.js +0 -20
  112. package/dist/interfaces/index.js.map +0 -1
  113. package/dist/llm/index.d.ts +0 -6
  114. package/dist/llm/index.js +0 -23
  115. package/dist/llm/index.js.map +0 -1
  116. package/dist/llm/llm.initializer.d.ts +0 -14
  117. package/dist/llm/llm.initializer.js +0 -167
  118. package/dist/llm/llm.initializer.js.map +0 -1
  119. package/dist/llm/llm.interface.d.ts +0 -6
  120. package/dist/llm/llm.interface.js +0 -3
  121. package/dist/llm/llm.interface.js.map +0 -1
  122. package/dist/llm/llm.types.d.ts +0 -32
  123. package/dist/llm/llm.types.js +0 -3
  124. package/dist/llm/llm.types.js.map +0 -1
  125. package/dist/llm/model.initializer.d.ts +0 -45
  126. package/dist/llm/model.initializer.js +0 -630
  127. package/dist/llm/model.initializer.js.map +0 -1
  128. package/dist/llm/model.interface.d.ts +0 -38
  129. package/dist/llm/model.interface.js +0 -4
  130. package/dist/llm/model.interface.js.map +0 -1
  131. package/dist/llm/rerankers/voyageai-rerank.d.ts +0 -17
  132. package/dist/llm/rerankers/voyageai-rerank.js +0 -56
  133. package/dist/llm/rerankers/voyageai-rerank.js.map +0 -1
  134. package/dist/retriever/database-factory.d.ts +0 -15
  135. package/dist/retriever/database-factory.js +0 -83
  136. package/dist/retriever/database-factory.js.map +0 -1
  137. package/dist/retriever/index.d.ts +0 -2
  138. package/dist/retriever/index.js +0 -19
  139. package/dist/retriever/index.js.map +0 -1
  140. package/dist/retriever/retriever.client.d.ts +0 -28
  141. package/dist/retriever/retriever.client.js +0 -97
  142. package/dist/retriever/retriever.client.js.map +0 -1
  143. package/dist/retriever/retriever.service.d.ts +0 -25
  144. package/dist/retriever/retriever.service.js +0 -265
  145. package/dist/retriever/retriever.service.js.map +0 -1
  146. package/dist/retriever/types.d.ts +0 -22
  147. package/dist/retriever/types.js +0 -3
  148. package/dist/retriever/types.js.map +0 -1
  149. package/dist/schemas/graph-manifest.schema.d.ts +0 -134
  150. package/dist/schemas/graph-manifest.schema.js +0 -180
  151. package/dist/schemas/graph-manifest.schema.js.map +0 -1
  152. package/dist/schemas/index.d.ts +0 -1
  153. package/dist/schemas/index.js +0 -18
  154. package/dist/schemas/index.js.map +0 -1
  155. package/dist/shared-types/index.d.ts +0 -199
  156. package/dist/shared-types/index.js +0 -58
  157. package/dist/shared-types/index.js.map +0 -1
  158. package/dist/tools/index.d.ts +0 -3
  159. package/dist/tools/index.js +0 -20
  160. package/dist/tools/index.js.map +0 -1
  161. package/dist/tools/mcp-converter.d.ts +0 -15
  162. package/dist/tools/mcp-converter.js +0 -133
  163. package/dist/tools/mcp-converter.js.map +0 -1
  164. package/dist/tools/mcp-tool-filter.d.ts +0 -11
  165. package/dist/tools/mcp-tool-filter.js +0 -123
  166. package/dist/tools/mcp-tool-filter.js.map +0 -1
  167. package/dist/tools/mcp.interfaces.d.ts +0 -19
  168. package/dist/tools/mcp.interfaces.js +0 -3
  169. package/dist/tools/mcp.interfaces.js.map +0 -1
  170. package/dist/types/graph-types.d.ts +0 -82
  171. package/dist/types/graph-types.js +0 -6
  172. package/dist/types/graph-types.js.map +0 -1
  173. package/dist/utils/error.utils.d.ts +0 -18
  174. package/dist/utils/error.utils.js +0 -78
  175. package/dist/utils/error.utils.js.map +0 -1
  176. package/dist/utils/graph-type.utils.d.ts +0 -14
  177. package/dist/utils/graph-type.utils.js +0 -71
  178. package/dist/utils/graph-type.utils.js.map +0 -1
  179. package/dist/utils/index.d.ts +0 -1
  180. package/dist/utils/index.js +0 -18
  181. package/dist/utils/index.js.map +0 -1
  182. package/dist/utils/usage-recorder.d.ts +0 -23
  183. package/dist/utils/usage-recorder.js +0 -29
  184. package/dist/utils/usage-recorder.js.map +0 -1
  185. package/dist/versioning/index.d.ts +0 -2
  186. package/dist/versioning/index.js +0 -19
  187. package/dist/versioning/index.js.map +0 -1
  188. package/dist/versioning/versioned-graph.service.d.ts +0 -16
  189. package/dist/versioning/versioned-graph.service.js +0 -132
  190. package/dist/versioning/versioned-graph.service.js.map +0 -1
  191. package/dist/versioning/versioning.types.d.ts +0 -21
  192. package/dist/versioning/versioning.types.js +0 -3
  193. package/dist/versioning/versioning.types.js.map +0 -1
@@ -1,178 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var UIDispatchController_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.UIDispatchController = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const swagger_1 = require("@nestjs/swagger");
19
- const endpoint_registry_1 = require("../endpoint-registry");
20
- const builder_registry_service_1 = require("../core/builder-registry.service");
21
- let UIDispatchController = UIDispatchController_1 = class UIDispatchController {
22
- constructor(endpointRegistry, builderRegistry) {
23
- this.endpointRegistry = endpointRegistry;
24
- this.builderRegistry = builderRegistry;
25
- this.logger = new common_1.Logger(UIDispatchController_1.name);
26
- }
27
- async dispatchUIEndpoint(dto) {
28
- this.logger.debug(`Dispatching UI request to ${dto.graphType}:${dto.endpoint}`);
29
- this.logger.debug("UIDispatchController received request", {
30
- graphType: dto.graphType,
31
- endpoint: dto.endpoint,
32
- method: dto.method,
33
- data: dto.data,
34
- context: dto.context,
35
- });
36
- try {
37
- const context = {
38
- userId: dto.context.userId,
39
- companyId: dto.context.companyId,
40
- method: dto.method,
41
- payload: dto.data,
42
- channel: dto.context.channel || "web",
43
- platform: dto.context.platform,
44
- };
45
- this.logger.debug("Built RequestContext", context);
46
- const result = await this.endpointRegistry.call(dto.graphType, dto.endpoint, context);
47
- this.logger.debug(`Successfully dispatched to ${dto.graphType}:${dto.endpoint}`);
48
- return result;
49
- }
50
- catch (error) {
51
- this.logger.error(`Failed to dispatch to ${dto.graphType}:${dto.endpoint}:`, error.message);
52
- if (error.message.includes("not found")) {
53
- throw new common_1.NotFoundException(error.message);
54
- }
55
- throw new common_1.InternalServerErrorException(`Failed to dispatch: ${error.message}`);
56
- }
57
- }
58
- async getGraphManifest(graphType, userId) {
59
- var _a;
60
- this.logger.debug(`Fetching manifest for graph ${graphType}`);
61
- try {
62
- const builder = this.builderRegistry
63
- .getBuilders()
64
- .find(b => b.graphType === graphType);
65
- if (!builder) {
66
- throw new common_1.NotFoundException(`Graph ${graphType} not found in registry`);
67
- }
68
- const manifest = builder.manifest;
69
- if (!manifest) {
70
- this.logger.warn(`Builder for ${graphType} exists but has no manifest loaded`);
71
- return {
72
- graphType,
73
- name: graphType,
74
- version: builder.version,
75
- ui: {
76
- enabled: false,
77
- },
78
- };
79
- }
80
- this.logger.debug(`Found manifest for ${graphType} with UI enabled: ${!!((_a = manifest.ui) === null || _a === void 0 ? void 0 : _a.enabled)}`);
81
- return manifest;
82
- }
83
- catch (error) {
84
- this.logger.error(`Failed to get manifest for ${graphType}:`, error.message);
85
- throw new common_1.NotFoundException(`Graph ${graphType} not found`);
86
- }
87
- }
88
- async listEndpoints(graphType, userId) {
89
- this.logger.debug(`Listing endpoints for graph ${graphType}`);
90
- try {
91
- const endpoints = this.endpointRegistry.listEndpoints(graphType);
92
- this.logger.debug(`Found ${endpoints.length} endpoints for ${graphType}`);
93
- return endpoints;
94
- }
95
- catch (error) {
96
- this.logger.error(`Failed to list endpoints for ${graphType}:`, error.message);
97
- return [];
98
- }
99
- }
100
- async getGraphCatalog(userId, companyId) {
101
- this.logger.debug("Fetching graph catalog");
102
- try {
103
- const graphTypes = this.endpointRegistry.listGraphTypes();
104
- const catalog = graphTypes.map(graphType => ({
105
- graphType,
106
- name: graphType,
107
- ui: {
108
- enabled: this.endpointRegistry.listEndpoints(graphType).length > 0,
109
- },
110
- }));
111
- this.logger.debug(`Returning catalog with ${catalog.length} graphs`);
112
- return catalog;
113
- }
114
- catch (error) {
115
- this.logger.error("Failed to get graph catalog:", error.message);
116
- return [];
117
- }
118
- }
119
- };
120
- exports.UIDispatchController = UIDispatchController;
121
- __decorate([
122
- (0, common_1.Post)("ui/dispatch"),
123
- (0, swagger_1.ApiOperation)({ summary: "Dispatch request to UI endpoint" }),
124
- (0, swagger_1.ApiResponse)({
125
- status: 200,
126
- description: "Successfully dispatched to endpoint",
127
- }),
128
- (0, swagger_1.ApiResponse)({ status: 404, description: "Endpoint not found" }),
129
- __param(0, (0, common_1.Body)()),
130
- __metadata("design:type", Function),
131
- __metadata("design:paramtypes", [Object]),
132
- __metadata("design:returntype", Promise)
133
- ], UIDispatchController.prototype, "dispatchUIEndpoint", null);
134
- __decorate([
135
- (0, common_1.Get)(":graphType/manifest"),
136
- (0, swagger_1.ApiOperation)({ summary: "Get graph manifest with UI configuration" }),
137
- (0, swagger_1.ApiResponse)({ status: 200, description: "Graph manifest" }),
138
- (0, swagger_1.ApiResponse)({ status: 404, description: "Graph not found" }),
139
- __param(0, (0, common_1.Param)("graphType")),
140
- __param(1, (0, common_1.Headers)("x-user-id")),
141
- __metadata("design:type", Function),
142
- __metadata("design:paramtypes", [String, String]),
143
- __metadata("design:returntype", Promise)
144
- ], UIDispatchController.prototype, "getGraphManifest", null);
145
- __decorate([
146
- (0, common_1.Get)(":graphType/endpoints"),
147
- (0, swagger_1.ApiOperation)({ summary: "List UI endpoints for a graph" }),
148
- (0, swagger_1.ApiResponse)({
149
- status: 200,
150
- description: "List of endpoint names",
151
- type: [String],
152
- }),
153
- __param(0, (0, common_1.Param)("graphType")),
154
- __param(1, (0, common_1.Headers)("x-user-id")),
155
- __metadata("design:type", Function),
156
- __metadata("design:paramtypes", [String, String]),
157
- __metadata("design:returntype", Promise)
158
- ], UIDispatchController.prototype, "listEndpoints", null);
159
- __decorate([
160
- (0, common_1.Get)("catalog"),
161
- (0, swagger_1.ApiOperation)({ summary: "Get catalog of all graphs" }),
162
- (0, swagger_1.ApiResponse)({
163
- status: 200,
164
- description: "List of graphs with basic info",
165
- }),
166
- __param(0, (0, common_1.Headers)("x-user-id")),
167
- __param(1, (0, common_1.Headers)("x-company-id")),
168
- __metadata("design:type", Function),
169
- __metadata("design:paramtypes", [String, String]),
170
- __metadata("design:returntype", Promise)
171
- ], UIDispatchController.prototype, "getGraphCatalog", null);
172
- exports.UIDispatchController = UIDispatchController = UIDispatchController_1 = __decorate([
173
- (0, swagger_1.ApiTags)("UI Dispatch"),
174
- (0, common_1.Controller)("api/graph"),
175
- __metadata("design:paramtypes", [endpoint_registry_1.EndpointRegistry,
176
- builder_registry_service_1.BuilderRegistryService])
177
- ], UIDispatchController);
178
- //# sourceMappingURL=ui-dispatch.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-dispatch.controller.js","sourceRoot":"","sources":["../../src/api/ui-dispatch.controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function bootstrap(AppModule: any, options?: {
2
- port?: number;
3
- globalPrefix?: string;
4
- }): Promise<import("@nestjs/common").INestApplication<any>>;
package/dist/bootstrap.js DELETED
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.bootstrap = bootstrap;
37
- const core_1 = require("@nestjs/core");
38
- const common_1 = require("@nestjs/common");
39
- const swagger_1 = require("@nestjs/swagger");
40
- const net = __importStar(require("net"));
41
- async function isPortAvailable(port) {
42
- return new Promise(resolve => {
43
- const server = net.createServer();
44
- server.listen(port, () => {
45
- server.close(() => resolve(true));
46
- });
47
- server.on("error", () => resolve(false));
48
- });
49
- }
50
- async function findAvailablePort(startPort) {
51
- let port = startPort;
52
- while (port < startPort + 100) {
53
- if (await isPortAvailable(port)) {
54
- return port;
55
- }
56
- port++;
57
- }
58
- throw new Error(`No available ports found in range ${startPort}-${startPort + 99}`);
59
- }
60
- async function bootstrap(AppModule, options = {}) {
61
- const app = await core_1.NestFactory.create(AppModule);
62
- const logger = new common_1.Logger("Bootstrap");
63
- const requestedPort = options.port || parseInt(process.env.PORT || "3000", 10);
64
- const port = await findAvailablePort(requestedPort);
65
- const globalPrefix = options.globalPrefix;
66
- if (port !== requestedPort) {
67
- logger.warn(`Port ${requestedPort} is busy, using port ${port} instead`);
68
- }
69
- if (globalPrefix) {
70
- app.setGlobalPrefix(globalPrefix);
71
- }
72
- app.useGlobalPipes(new common_1.ValidationPipe({
73
- whitelist: true,
74
- forbidNonWhitelisted: true,
75
- transform: true,
76
- }));
77
- app.enableCors({
78
- origin: true,
79
- credentials: true,
80
- });
81
- const config = new swagger_1.DocumentBuilder()
82
- .setTitle("Graph Service API")
83
- .setDescription("API for graph service microservice")
84
- .setVersion("1.0")
85
- .addBearerAuth()
86
- .build();
87
- const document = swagger_1.SwaggerModule.createDocument(app, config);
88
- swagger_1.SwaggerModule.setup("api/docs", app, document);
89
- await app.listen(port);
90
- const baseUrl = globalPrefix
91
- ? `http://localhost:${port}/${globalPrefix}`
92
- : `http://localhost:${port}`;
93
- logger.log(`🚀 Graph service is running on: ${baseUrl}`);
94
- logger.log(`📚 API Documentation: http://localhost:${port}/api/docs`);
95
- if (process.env.NODE_ENV !== "production") {
96
- }
97
- return app;
98
- }
99
- //# sourceMappingURL=bootstrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { CallbackRecord } from "../interfaces/callback.interface";
2
- export interface CallbackUser {
3
- userId: string;
4
- roles?: string[];
5
- permissions?: string[];
6
- companyId?: string;
7
- }
8
- export interface ACLValidationResult {
9
- allowed: boolean;
10
- reason?: string;
11
- requiredScopes?: string[];
12
- userScopes?: string[];
13
- }
14
- export declare class CallbackACL {
15
- private readonly logger;
16
- validate(user: CallbackUser | undefined, record: CallbackRecord): Promise<ACLValidationResult>;
17
- private validateScopes;
18
- private validateGraphTypeAccess;
19
- private getAllowedGraphNamespaces;
20
- private validateCompanyAccess;
21
- private performAdditionalSecurityChecks;
22
- canRetry(user: CallbackUser, record: CallbackRecord): Promise<boolean>;
23
- getPermissionDetails(user: CallbackUser, record: CallbackRecord): Record<string, any>;
24
- }
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var CallbackACL_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.CallbackACL = void 0;
11
- const common_1 = require("@nestjs/common");
12
- let CallbackACL = CallbackACL_1 = class CallbackACL {
13
- constructor() {
14
- this.logger = new common_1.Logger(CallbackACL_1.name);
15
- }
16
- async validate(user, record) {
17
- const validationStart = Date.now();
18
- try {
19
- if (!user) {
20
- this.logger.warn(`Unauthenticated access attempt for callback ${record.token}`);
21
- throw new common_1.ForbiddenException("Authentication required for callback execution");
22
- }
23
- if (record.userId && record.userId !== user.userId) {
24
- this.logger.warn(`User ${user.userId} attempted to execute callback for user ${record.userId}`);
25
- throw new common_1.ForbiddenException("Cannot execute callback for another user");
26
- }
27
- this.logger.log(`ACL validation simplified: userId match only for callback ${record.token}`);
28
- await this.performAdditionalSecurityChecks(user, record);
29
- const validationTime = Date.now() - validationStart;
30
- this.logger.debug(`ACL validation passed for user ${user.userId} on callback ${record.token} ` +
31
- `(${validationTime}ms)`);
32
- return {
33
- allowed: true,
34
- };
35
- }
36
- catch (error) {
37
- const validationTime = Date.now() - validationStart;
38
- this.logger.error(`ACL validation failed for callback ${record.token} (${validationTime}ms): ${error.message}`);
39
- throw error;
40
- }
41
- }
42
- validateScopes(user, requiredScopes) {
43
- if (!user.permissions || user.permissions.length === 0) {
44
- return false;
45
- }
46
- return requiredScopes.every(scope => {
47
- const hasExactScope = user.permissions.includes(scope);
48
- const hasWildcardScope = user.permissions.some(p => {
49
- if (p.includes("*")) {
50
- const pattern = p.replace("*", ".*");
51
- return new RegExp(`^${pattern}$`).test(scope);
52
- }
53
- return false;
54
- });
55
- return hasExactScope || hasWildcardScope;
56
- });
57
- }
58
- async validateGraphTypeAccess(user, graphType) {
59
- const [namespace] = graphType.split("::");
60
- const allowedNamespaces = this.getAllowedGraphNamespaces(user);
61
- this.logger.log(`Graph access check for user ${user.userId}`, {
62
- graphType,
63
- namespace,
64
- allowedNamespaces,
65
- userRoles: user.roles,
66
- userPermissions: user.permissions,
67
- userCompanyId: user.companyId,
68
- });
69
- if (namespace === "public") {
70
- return true;
71
- }
72
- if (!allowedNamespaces.includes(namespace) &&
73
- !allowedNamespaces.includes("*")) {
74
- this.logger.warn(`Access denied: namespace "${namespace}" not in allowed namespaces: ${allowedNamespaces.join(", ")}`);
75
- return false;
76
- }
77
- return true;
78
- }
79
- getAllowedGraphNamespaces(user) {
80
- var _a, _b;
81
- const namespaces = [];
82
- if ((_a = user.roles) === null || _a === void 0 ? void 0 : _a.includes("admin")) {
83
- namespaces.push("*");
84
- }
85
- (_b = user.permissions) === null || _b === void 0 ? void 0 : _b.forEach(permission => {
86
- const match = permission.match(/^graph:([^:]+):/);
87
- if (match) {
88
- namespaces.push(match[1]);
89
- }
90
- });
91
- if (user.companyId) {
92
- namespaces.push(user.companyId);
93
- }
94
- return [...new Set(namespaces)];
95
- }
96
- validateCompanyAccess(user, requiredCompanyId) {
97
- return user.companyId === requiredCompanyId;
98
- }
99
- async performAdditionalSecurityChecks(user, record) {
100
- var _a;
101
- const now = Date.now();
102
- const age = now - record.createdAt;
103
- const maxAge = (((_a = record.metadata) === null || _a === void 0 ? void 0 : _a.ttlSec) || 600) * 1000;
104
- if (age > maxAge) {
105
- throw new common_1.ForbiddenException("Callback token has expired");
106
- }
107
- if (record.retries > 3) {
108
- throw new common_1.ForbiddenException("Callback has exceeded maximum retry attempts");
109
- }
110
- }
111
- async canRetry(user, record) {
112
- if (record.userId !== user.userId) {
113
- return false;
114
- }
115
- if (record.retries >= 3) {
116
- return false;
117
- }
118
- if (!["failed", "processing"].includes(record.status)) {
119
- return false;
120
- }
121
- return true;
122
- }
123
- getPermissionDetails(user, record) {
124
- var _a, _b, _c;
125
- return {
126
- userId: user.userId,
127
- callbackUserId: record.userId,
128
- userIdMatch: user.userId === record.userId,
129
- requiredScopes: ((_a = record.metadata) === null || _a === void 0 ? void 0 : _a.scopes) || [],
130
- userScopes: user.permissions || [],
131
- userRoles: user.roles || [],
132
- graphType: record.graphType,
133
- companyId: user.companyId,
134
- callbackCompanyId: (_b = record.metadata) === null || _b === void 0 ? void 0 : _b.companyId,
135
- companyMatch: !((_c = record.metadata) === null || _c === void 0 ? void 0 : _c.companyId) ||
136
- user.companyId === record.metadata.companyId,
137
- };
138
- }
139
- };
140
- exports.CallbackACL = CallbackACL;
141
- exports.CallbackACL = CallbackACL = CallbackACL_1 = __decorate([
142
- (0, common_1.Injectable)()
143
- ], CallbackACL);
144
- //# sourceMappingURL=callback-acl.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callback-acl.service.js","sourceRoot":"","sources":["../../src/callbacks/callback-acl.service.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { CallbackRecord, CallbackResult } from "../interfaces/callback.interface";
2
- import { CallbackUser } from "./callback-acl.service";
3
- export interface AuditEntry {
4
- id: string;
5
- correlationId: string;
6
- timestamp: number;
7
- action: CallbackAuditAction;
8
- userId?: string;
9
- callbackToken: string;
10
- graphType: string;
11
- handler: string;
12
- success: boolean;
13
- duration?: number;
14
- error?: string;
15
- metadata: Record<string, any>;
16
- ip?: string;
17
- userAgent?: string;
18
- }
19
- export declare enum CallbackAuditAction {
20
- TOKEN_ISSUED = "TOKEN_ISSUED",
21
- TOKEN_VALIDATED = "TOKEN_VALIDATED",
22
- TOKEN_LOCKED = "TOKEN_LOCKED",
23
- EXECUTION_STARTED = "EXECUTION_STARTED",
24
- EXECUTION_COMPLETED = "EXECUTION_COMPLETED",
25
- EXECUTION_FAILED = "EXECUTION_FAILED",
26
- TOKEN_EXPIRED = "TOKEN_EXPIRED",
27
- ACCESS_DENIED = "ACCESS_DENIED",
28
- RATE_LIMITED = "RATE_LIMITED",
29
- RETRY_ATTEMPTED = "RETRY_ATTEMPTED"
30
- }
31
- export declare class CallbackAuditor {
32
- private readonly logger;
33
- private readonly auditStore;
34
- logTokenIssued(token: string, graphType: string, handler: string, userId: string, metadata?: Record<string, any>): Promise<string>;
35
- logExecutionStart(record: CallbackRecord, user: CallbackUser | undefined, correlationId?: string): Promise<string>;
36
- logExecutionSuccess(record: CallbackRecord, user: CallbackUser | undefined, result: CallbackResult, duration: number, correlationId: string): Promise<void>;
37
- logExecutionFailure(record: CallbackRecord, user: CallbackUser | undefined, error: Error, duration: number, correlationId: string): Promise<void>;
38
- logAccessDenied(token: string, userId?: string, reason?: string, metadata?: Record<string, any>): Promise<void>;
39
- logRateLimited(identifier: string, retryAfter: number, metadata?: Record<string, any>): Promise<void>;
40
- logRetryAttempt(record: CallbackRecord, user: CallbackUser | undefined, attemptNumber: number): Promise<string>;
41
- getTokenAuditTrail(token: string): Promise<AuditEntry[]>;
42
- getUserAuditTrail(userId: string, startTime?: number, endTime?: number): Promise<AuditEntry[]>;
43
- getStatistics(startTime: number, endTime: number): Promise<Record<string, any>>;
44
- private persist;
45
- private generateCorrelationId;
46
- exportAuditLogs(startTime: number, endTime: number, format?: "json" | "csv"): Promise<string>;
47
- }