@blokjs/runner 0.6.20 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/Blok.d.ts +2 -0
  2. package/dist/Blok.js +42 -110
  3. package/dist/Blok.js.map +1 -1
  4. package/dist/DefaultLogger.d.ts +13 -0
  5. package/dist/DefaultLogger.js +25 -0
  6. package/dist/DefaultLogger.js.map +1 -1
  7. package/dist/RunnerSteps.d.ts +23 -0
  8. package/dist/RunnerSteps.js +128 -87
  9. package/dist/RunnerSteps.js.map +1 -1
  10. package/dist/SubworkflowNode.js +19 -0
  11. package/dist/SubworkflowNode.js.map +1 -1
  12. package/dist/TriggerBase.d.ts +12 -0
  13. package/dist/TriggerBase.js +216 -181
  14. package/dist/TriggerBase.js.map +1 -1
  15. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +9 -0
  16. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +76 -6
  17. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
  18. package/dist/index.d.ts +4 -39
  19. package/dist/index.js +7 -32
  20. package/dist/index.js.map +1 -1
  21. package/dist/monitoring/JanitorMetrics.d.ts +3 -0
  22. package/dist/monitoring/JanitorMetrics.js +11 -0
  23. package/dist/monitoring/JanitorMetrics.js.map +1 -1
  24. package/dist/monitoring/ProcessErrorMetrics.d.ts +32 -0
  25. package/dist/monitoring/ProcessErrorMetrics.js +43 -0
  26. package/dist/monitoring/ProcessErrorMetrics.js.map +1 -0
  27. package/dist/monitoring/PrometheusMetricsBridge.d.ts +7 -0
  28. package/dist/monitoring/PrometheusMetricsBridge.js +8 -2
  29. package/dist/monitoring/PrometheusMetricsBridge.js.map +1 -1
  30. package/dist/monitoring/SubworkflowMetrics.d.ts +25 -0
  31. package/dist/monitoring/SubworkflowMetrics.js +38 -0
  32. package/dist/monitoring/SubworkflowMetrics.js.map +1 -0
  33. package/dist/observability/ErrorSink.d.ts +23 -0
  34. package/dist/observability/ErrorSink.js +32 -0
  35. package/dist/observability/ErrorSink.js.map +1 -0
  36. package/dist/observability/SentryIntegration.d.ts +9 -0
  37. package/dist/observability/SentryIntegration.js +31 -0
  38. package/dist/observability/SentryIntegration.js.map +1 -0
  39. package/dist/scheduling/DebounceCoordinator.d.ts +7 -53
  40. package/dist/scheduling/DebounceCoordinator.js +8 -207
  41. package/dist/scheduling/DebounceCoordinator.js.map +1 -1
  42. package/dist/tracing/InMemoryRunStore.d.ts +5 -1
  43. package/dist/tracing/InMemoryRunStore.js +14 -0
  44. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  45. package/dist/tracing/Janitor.js +3 -0
  46. package/dist/tracing/Janitor.js.map +1 -1
  47. package/dist/tracing/PostgresRunStore.d.ts +4 -1
  48. package/dist/tracing/PostgresRunStore.js +73 -3
  49. package/dist/tracing/PostgresRunStore.js.map +1 -1
  50. package/dist/tracing/RunStore.d.ts +17 -1
  51. package/dist/tracing/RunTracker.d.ts +13 -34
  52. package/dist/tracing/RunTracker.js +62 -32
  53. package/dist/tracing/RunTracker.js.map +1 -1
  54. package/dist/tracing/SqliteRunStore.d.ts +4 -1
  55. package/dist/tracing/SqliteRunStore.js +60 -0
  56. package/dist/tracing/SqliteRunStore.js.map +1 -1
  57. package/dist/tracing/TraceRouter.d.ts +13 -0
  58. package/dist/tracing/TraceRouter.js +43 -11
  59. package/dist/tracing/TraceRouter.js.map +1 -1
  60. package/dist/tracing/TracingLogger.js +22 -0
  61. package/dist/tracing/TracingLogger.js.map +1 -1
  62. package/dist/tracing/createStore.js +51 -22
  63. package/dist/tracing/createStore.js.map +1 -1
  64. package/dist/tracing/types.d.ts +22 -0
  65. package/dist/types/GlobalOptions.d.ts +5 -7
  66. package/dist/workflow/WorkflowNormalizer.js +63 -0
  67. package/dist/workflow/WorkflowNormalizer.js.map +1 -1
  68. package/package.json +7 -4
  69. package/dist/cache/NodeResultCache.d.ts +0 -286
  70. package/dist/cache/NodeResultCache.js +0 -506
  71. package/dist/cache/NodeResultCache.js.map +0 -1
  72. package/dist/cache/index.d.ts +0 -1
  73. package/dist/cache/index.js +0 -2
  74. package/dist/cache/index.js.map +0 -1
  75. package/dist/concurrency/ConcurrencyBackend.d.ts +0 -61
  76. package/dist/concurrency/ConcurrencyBackend.js +0 -20
  77. package/dist/concurrency/ConcurrencyBackend.js.map +0 -1
  78. package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +0 -64
  79. package/dist/concurrency/NatsKvConcurrencyBackend.js +0 -310
  80. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +0 -1
  81. package/dist/concurrency/RedisConcurrencyBackend.d.ts +0 -64
  82. package/dist/concurrency/RedisConcurrencyBackend.js +0 -374
  83. package/dist/concurrency/RedisConcurrencyBackend.js.map +0 -1
  84. package/dist/concurrency/createConcurrencyBackend.d.ts +0 -24
  85. package/dist/concurrency/createConcurrencyBackend.js +0 -38
  86. package/dist/concurrency/createConcurrencyBackend.js.map +0 -1
  87. package/dist/graphql/GraphQLSchemaGenerator.d.ts +0 -129
  88. package/dist/graphql/GraphQLSchemaGenerator.js +0 -425
  89. package/dist/graphql/GraphQLSchemaGenerator.js.map +0 -1
  90. package/dist/integrations/APMIntegration.d.ts +0 -141
  91. package/dist/integrations/APMIntegration.js +0 -212
  92. package/dist/integrations/APMIntegration.js.map +0 -1
  93. package/dist/integrations/AzureMonitorIntegration.d.ts +0 -118
  94. package/dist/integrations/AzureMonitorIntegration.js +0 -254
  95. package/dist/integrations/AzureMonitorIntegration.js.map +0 -1
  96. package/dist/integrations/CloudWatchIntegration.d.ts +0 -135
  97. package/dist/integrations/CloudWatchIntegration.js +0 -293
  98. package/dist/integrations/CloudWatchIntegration.js.map +0 -1
  99. package/dist/integrations/SentryIntegration.d.ts +0 -153
  100. package/dist/integrations/SentryIntegration.js +0 -200
  101. package/dist/integrations/SentryIntegration.js.map +0 -1
  102. package/dist/integrations/index.d.ts +0 -19
  103. package/dist/integrations/index.js +0 -16
  104. package/dist/integrations/index.js.map +0 -1
  105. package/dist/marketplace/RuntimeAutoScaler.d.ts +0 -148
  106. package/dist/marketplace/RuntimeAutoScaler.js +0 -366
  107. package/dist/marketplace/RuntimeAutoScaler.js.map +0 -1
  108. package/dist/marketplace/RuntimeCatalog.d.ts +0 -180
  109. package/dist/marketplace/RuntimeCatalog.js +0 -339
  110. package/dist/marketplace/RuntimeCatalog.js.map +0 -1
  111. package/dist/marketplace/RuntimeDiscovery.d.ts +0 -86
  112. package/dist/marketplace/RuntimeDiscovery.js +0 -231
  113. package/dist/marketplace/RuntimeDiscovery.js.map +0 -1
  114. package/dist/marketplace/RuntimeHealthMonitor.d.ts +0 -100
  115. package/dist/marketplace/RuntimeHealthMonitor.js +0 -241
  116. package/dist/marketplace/RuntimeHealthMonitor.js.map +0 -1
  117. package/dist/marketplace/RuntimeMetricsDashboard.d.ts +0 -113
  118. package/dist/marketplace/RuntimeMetricsDashboard.js +0 -293
  119. package/dist/marketplace/RuntimeMetricsDashboard.js.map +0 -1
  120. package/dist/openapi/OpenAPIGenerator.d.ts +0 -192
  121. package/dist/openapi/OpenAPIGenerator.js +0 -378
  122. package/dist/openapi/OpenAPIGenerator.js.map +0 -1
  123. package/dist/openapi/index.d.ts +0 -20
  124. package/dist/openapi/index.js +0 -20
  125. package/dist/openapi/index.js.map +0 -1
  126. package/dist/scheduling/DebounceBackend.d.ts +0 -108
  127. package/dist/scheduling/DebounceBackend.js +0 -23
  128. package/dist/scheduling/DebounceBackend.js.map +0 -1
  129. package/dist/scheduling/NatsKvDebounceBackend.d.ts +0 -53
  130. package/dist/scheduling/NatsKvDebounceBackend.js +0 -334
  131. package/dist/scheduling/NatsKvDebounceBackend.js.map +0 -1
  132. package/dist/scheduling/RedisDebounceBackend.d.ts +0 -49
  133. package/dist/scheduling/RedisDebounceBackend.js +0 -356
  134. package/dist/scheduling/RedisDebounceBackend.js.map +0 -1
  135. package/dist/scheduling/createDebounceBackend.d.ts +0 -25
  136. package/dist/scheduling/createDebounceBackend.js +0 -39
  137. package/dist/scheduling/createDebounceBackend.js.map +0 -1
  138. package/dist/security/ABAC.d.ts +0 -224
  139. package/dist/security/ABAC.js +0 -380
  140. package/dist/security/ABAC.js.map +0 -1
  141. package/dist/security/AuditLogger.d.ts +0 -242
  142. package/dist/security/AuditLogger.js +0 -317
  143. package/dist/security/AuditLogger.js.map +0 -1
  144. package/dist/security/AuthMiddleware.d.ts +0 -162
  145. package/dist/security/AuthMiddleware.js +0 -289
  146. package/dist/security/AuthMiddleware.js.map +0 -1
  147. package/dist/security/EncryptionAtRest.d.ts +0 -206
  148. package/dist/security/EncryptionAtRest.js +0 -236
  149. package/dist/security/EncryptionAtRest.js.map +0 -1
  150. package/dist/security/OAuthProvider.d.ts +0 -334
  151. package/dist/security/OAuthProvider.js +0 -719
  152. package/dist/security/OAuthProvider.js.map +0 -1
  153. package/dist/security/PIIDetector.d.ts +0 -233
  154. package/dist/security/PIIDetector.js +0 -354
  155. package/dist/security/PIIDetector.js.map +0 -1
  156. package/dist/security/RBAC.d.ts +0 -143
  157. package/dist/security/RBAC.js +0 -285
  158. package/dist/security/RBAC.js.map +0 -1
  159. package/dist/security/SecretManager.d.ts +0 -652
  160. package/dist/security/SecretManager.js +0 -1147
  161. package/dist/security/SecretManager.js.map +0 -1
  162. package/dist/security/TLSConfig.d.ts +0 -305
  163. package/dist/security/TLSConfig.js +0 -550
  164. package/dist/security/TLSConfig.js.map +0 -1
  165. package/dist/security/index.d.ts +0 -81
  166. package/dist/security/index.js +0 -82
  167. package/dist/security/index.js.map +0 -1
@@ -1,425 +0,0 @@
1
- /**
2
- * GraphQL Schema Generator for Blok Workflows
3
- *
4
- * Automatically generates GraphQL schema definitions (SDL) from workflow definitions.
5
- * Introspects HTTP trigger configurations and node structures to produce
6
- * Query/Mutation types with appropriate input/output types.
7
- *
8
- * @example
9
- * ```typescript
10
- * const generator = new GraphQLSchemaGenerator({
11
- * schemaName: "BlokAPI",
12
- * includeSubscriptions: true,
13
- * });
14
- *
15
- * generator.addWorkflow({
16
- * name: "get-user",
17
- * version: "1.0.0",
18
- * trigger: { http: { method: "GET", path: "/users/:id" } },
19
- * steps: [{ name: "fetch", node: "db-query", type: "local" }],
20
- * nodes: { "db-query": {} },
21
- * });
22
- *
23
- * console.log(generator.generate());
24
- * ```
25
- */
26
- export class GraphQLSchemaGenerator {
27
- config;
28
- workflows = [];
29
- customTypes = new Map();
30
- constructor(config) {
31
- this.config = {
32
- schemaName: config?.schemaName ?? "BlokAPI",
33
- description: config?.description ?? "Auto-generated GraphQL schema from Blok workflows",
34
- includeSubscriptions: config?.includeSubscriptions ?? true,
35
- includeMetadata: config?.includeMetadata ?? true,
36
- customScalars: config?.customScalars ?? [],
37
- };
38
- }
39
- addWorkflow(workflow) {
40
- this.workflows.push(workflow);
41
- }
42
- addWorkflows(workflows) {
43
- this.workflows.push(...workflows);
44
- }
45
- addCustomType(name, definition) {
46
- this.customTypes.set(name, definition);
47
- }
48
- /**
49
- * Generate GraphQL Schema Definition Language (SDL)
50
- */
51
- generate() {
52
- if (this.workflows.length === 0) {
53
- return this.emptySchema();
54
- }
55
- const lines = [];
56
- const queries = [];
57
- const mutations = [];
58
- const subscriptions = [];
59
- const typeDefinitions = [];
60
- // Schema header
61
- lines.push(`# ${this.config.description}`);
62
- lines.push(`# Generated from ${this.workflows.length} Blok workflow(s)`);
63
- lines.push("");
64
- // Custom scalars
65
- lines.push("scalar JSON");
66
- lines.push("scalar DateTime");
67
- for (const scalar of this.config.customScalars) {
68
- lines.push(`"""${scalar.description}"""`);
69
- lines.push(`scalar ${scalar.name}`);
70
- }
71
- lines.push("");
72
- // Process each workflow
73
- for (const workflow of this.workflows) {
74
- const resolved = this.resolveWorkflow(workflow);
75
- // Generate input type if needed
76
- if (resolved.inputTypeName) {
77
- typeDefinitions.push(this.generateInputType(workflow, resolved));
78
- }
79
- // Generate output type
80
- typeDefinitions.push(this.generateOutputType(workflow, resolved));
81
- // Add to appropriate root type
82
- const fieldDef = this.generateFieldDefinition(workflow, resolved);
83
- if (resolved.isQuery) {
84
- queries.push(fieldDef);
85
- }
86
- if (resolved.isMutation) {
87
- mutations.push(fieldDef);
88
- }
89
- if (resolved.isSubscription) {
90
- subscriptions.push(this.generateSubscriptionField(workflow, resolved));
91
- }
92
- }
93
- // Custom types
94
- for (const [, definition] of this.customTypes) {
95
- typeDefinitions.push(definition);
96
- }
97
- // Output type definitions
98
- for (const typeDef of typeDefinitions) {
99
- lines.push(typeDef);
100
- lines.push("");
101
- }
102
- // Common error type
103
- lines.push("type BlokError {");
104
- lines.push(' """Error message"""');
105
- lines.push(" message: String!");
106
- lines.push(' """Node that caused the error"""');
107
- lines.push(" origin: String");
108
- lines.push(' """Error code"""');
109
- lines.push(" code: String");
110
- lines.push("}");
111
- lines.push("");
112
- // Workflow metadata type
113
- if (this.config.includeMetadata) {
114
- lines.push("type WorkflowMetadata {");
115
- lines.push(" name: String!");
116
- lines.push(" version: String!");
117
- lines.push(" description: String");
118
- lines.push(" trigger: String!");
119
- lines.push(" stepCount: Int!");
120
- lines.push("}");
121
- lines.push("");
122
- }
123
- // Query type
124
- if (queries.length > 0) {
125
- lines.push("type Query {");
126
- for (const q of queries) {
127
- lines.push(` ${q}`);
128
- }
129
- if (this.config.includeMetadata) {
130
- lines.push(' """List all available workflows"""');
131
- lines.push(" _workflows: [WorkflowMetadata!]!");
132
- }
133
- lines.push("}");
134
- lines.push("");
135
- }
136
- // Mutation type
137
- if (mutations.length > 0) {
138
- lines.push("type Mutation {");
139
- for (const m of mutations) {
140
- lines.push(` ${m}`);
141
- }
142
- lines.push("}");
143
- lines.push("");
144
- }
145
- // Subscription type
146
- if (this.config.includeSubscriptions && subscriptions.length > 0) {
147
- lines.push("type Subscription {");
148
- for (const s of subscriptions) {
149
- lines.push(` ${s}`);
150
- }
151
- lines.push("}");
152
- lines.push("");
153
- }
154
- // Schema definition
155
- const schemaFields = [];
156
- if (queries.length > 0)
157
- schemaFields.push(" query: Query");
158
- if (mutations.length > 0)
159
- schemaFields.push(" mutation: Mutation");
160
- if (this.config.includeSubscriptions && subscriptions.length > 0) {
161
- schemaFields.push(" subscription: Subscription");
162
- }
163
- if (schemaFields.length > 0) {
164
- lines.push("schema {");
165
- lines.push(schemaFields.join("\n"));
166
- lines.push("}");
167
- }
168
- return lines.join("\n");
169
- }
170
- /**
171
- * Generate an introspection-friendly JSON representation
172
- */
173
- toJSON() {
174
- const types = [];
175
- const queries = [];
176
- const mutations = [];
177
- const subscriptions = [];
178
- for (const workflow of this.workflows) {
179
- const resolved = this.resolveWorkflow(workflow);
180
- types.push({
181
- name: resolved.outputTypeName,
182
- kind: "OBJECT",
183
- fields: this.inferOutputFields(workflow),
184
- });
185
- if (resolved.inputTypeName) {
186
- types.push({
187
- name: resolved.inputTypeName,
188
- kind: "INPUT_OBJECT",
189
- fields: this.inferInputFields(workflow, resolved),
190
- });
191
- }
192
- const fieldInfo = {
193
- name: this.toFieldName(workflow.name),
194
- type: resolved.outputTypeName,
195
- description: resolved.description,
196
- args: resolved.inputTypeName
197
- ? [{ name: "input", type: `${resolved.inputTypeName}!` }]
198
- : resolved.pathParams.map((p) => ({ name: p, type: "String!" })),
199
- };
200
- if (resolved.isQuery)
201
- queries.push(fieldInfo);
202
- if (resolved.isMutation)
203
- mutations.push(fieldInfo);
204
- if (resolved.isSubscription) {
205
- subscriptions.push({
206
- ...fieldInfo,
207
- name: `on${this.toPascalCase(workflow.name)}`,
208
- });
209
- }
210
- }
211
- return {
212
- schemaName: this.config.schemaName,
213
- types,
214
- queries,
215
- mutations,
216
- subscriptions,
217
- };
218
- }
219
- // -- Internal helpers --
220
- resolveWorkflow(workflow) {
221
- const triggerType = this.getTriggerType(workflow.trigger);
222
- const typeName = this.toPascalCase(workflow.name);
223
- const pathParams = this.extractPathParams(workflow.trigger.http?.path || "");
224
- const isGet = workflow.trigger.http?.method === "GET";
225
- const hasBody = workflow.trigger.http?.method === "POST" ||
226
- workflow.trigger.http?.method === "PUT" ||
227
- workflow.trigger.http?.method === "PATCH";
228
- const isDelete = workflow.trigger.http?.method === "DELETE";
229
- const isQuery = isGet ||
230
- triggerType === "grpc" ||
231
- triggerType === "manual" ||
232
- (!workflow.trigger.http && !workflow.trigger.websocket && !workflow.trigger.sse);
233
- const isMutation = hasBody || isDelete;
234
- const isSubscription = triggerType === "websocket" || triggerType === "sse";
235
- const needsInput = hasBody || (workflow.inputs && Object.keys(workflow.inputs).length > 0);
236
- let description = workflow.description || `${typeName} workflow`;
237
- if (this.config.includeMetadata) {
238
- description += ` (v${workflow.version}, trigger: ${triggerType})`;
239
- }
240
- return {
241
- typeName,
242
- isQuery: isQuery && !isMutation,
243
- isMutation,
244
- isSubscription,
245
- inputTypeName: needsInput ? `${typeName}Input` : null,
246
- outputTypeName: `${typeName}Response`,
247
- description,
248
- pathParams,
249
- };
250
- }
251
- generateInputType(workflow, resolved) {
252
- const lines = [];
253
- lines.push(`"""Input for ${workflow.name}"""`);
254
- lines.push(`input ${resolved.inputTypeName} {`);
255
- if (workflow.inputs && Object.keys(workflow.inputs).length > 0) {
256
- for (const [name, field] of Object.entries(workflow.inputs)) {
257
- const gqlType = this.fieldDefToGraphQLType(field);
258
- if (field.description) {
259
- lines.push(` """${field.description}"""`);
260
- }
261
- lines.push(` ${name}: ${gqlType}`);
262
- }
263
- }
264
- else {
265
- lines.push(' """Request payload as JSON"""');
266
- lines.push(" data: JSON");
267
- }
268
- lines.push("}");
269
- return lines.join("\n");
270
- }
271
- generateOutputType(workflow, resolved) {
272
- const lines = [];
273
- lines.push(`"""Response from ${workflow.name}"""`);
274
- lines.push(`type ${resolved.outputTypeName} {`);
275
- if (workflow.outputs && Object.keys(workflow.outputs).length > 0) {
276
- for (const [name, field] of Object.entries(workflow.outputs)) {
277
- const gqlType = this.fieldDefToGraphQLType(field);
278
- if (field.description) {
279
- lines.push(` """${field.description}"""`);
280
- }
281
- lines.push(` ${name}: ${gqlType}`);
282
- }
283
- }
284
- else {
285
- lines.push(' """Whether the operation succeeded"""');
286
- lines.push(" success: Boolean!");
287
- lines.push(' """Response data"""');
288
- lines.push(" data: JSON");
289
- lines.push(' """Error information"""');
290
- lines.push(" error: BlokError");
291
- }
292
- lines.push("}");
293
- return lines.join("\n");
294
- }
295
- generateFieldDefinition(workflow, resolved) {
296
- const fieldName = this.toFieldName(workflow.name);
297
- const args = [];
298
- // Path params become required args
299
- for (const param of resolved.pathParams) {
300
- args.push(`${param}: String!`);
301
- }
302
- // Input type
303
- if (resolved.inputTypeName) {
304
- args.push(`input: ${resolved.inputTypeName}!`);
305
- }
306
- const argStr = args.length > 0 ? `(${args.join(", ")})` : "";
307
- const desc = `"""${resolved.description}"""`;
308
- return `${desc}\n ${fieldName}${argStr}: ${resolved.outputTypeName}!`;
309
- }
310
- generateSubscriptionField(workflow, resolved) {
311
- const fieldName = `on${this.toPascalCase(workflow.name)}`;
312
- const desc = `"""Subscribe to ${workflow.name} events"""`;
313
- return `${desc}\n ${fieldName}: ${resolved.outputTypeName}!`;
314
- }
315
- inferOutputFields(workflow) {
316
- if (workflow.outputs && Object.keys(workflow.outputs).length > 0) {
317
- return Object.entries(workflow.outputs).map(([name, field]) => ({
318
- name,
319
- type: this.fieldDefToGraphQLType(field),
320
- description: field.description,
321
- }));
322
- }
323
- return [
324
- { name: "success", type: "Boolean!" },
325
- { name: "data", type: "JSON" },
326
- { name: "error", type: "BlokError" },
327
- ];
328
- }
329
- inferInputFields(workflow, resolved) {
330
- if (workflow.inputs && Object.keys(workflow.inputs).length > 0) {
331
- return Object.entries(workflow.inputs).map(([name, field]) => ({
332
- name,
333
- type: this.fieldDefToGraphQLType(field),
334
- description: field.description,
335
- }));
336
- }
337
- return [{ name: "data", type: "JSON" }];
338
- }
339
- fieldDefToGraphQLType(field) {
340
- let baseType;
341
- switch (field.type) {
342
- case "string":
343
- baseType = "String";
344
- break;
345
- case "number":
346
- case "float":
347
- baseType = "Float";
348
- break;
349
- case "integer":
350
- case "int":
351
- baseType = "Int";
352
- break;
353
- case "boolean":
354
- baseType = "Boolean";
355
- break;
356
- case "array":
357
- if (field.items) {
358
- baseType = `[${this.fieldDefToGraphQLType(field.items)}]`;
359
- }
360
- else {
361
- baseType = "[JSON]";
362
- }
363
- break;
364
- case "object":
365
- baseType = "JSON";
366
- break;
367
- case "datetime":
368
- case "date":
369
- baseType = "DateTime";
370
- break;
371
- default:
372
- baseType = field.type.charAt(0).toUpperCase() + field.type.slice(1);
373
- break;
374
- }
375
- return field.required ? `${baseType}!` : baseType;
376
- }
377
- getTriggerType(trigger) {
378
- if (trigger.http)
379
- return "http";
380
- if (trigger.grpc)
381
- return "grpc";
382
- if (trigger.websocket)
383
- return "websocket";
384
- if (trigger.sse)
385
- return "sse";
386
- return "other";
387
- }
388
- extractPathParams(path) {
389
- const params = [];
390
- const regex = /:([a-zA-Z_][a-zA-Z0-9_]*)/g;
391
- for (const match of path.matchAll(regex)) {
392
- params.push(match[1]);
393
- }
394
- return params;
395
- }
396
- toPascalCase(name) {
397
- return name
398
- .split(/[-_.\s]+/)
399
- .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
400
- .join("");
401
- }
402
- toFieldName(name) {
403
- const pascal = this.toPascalCase(name);
404
- return pascal.charAt(0).toLowerCase() + pascal.slice(1);
405
- }
406
- emptySchema() {
407
- return [
408
- `# ${this.config.description}`,
409
- "# No workflows registered",
410
- "",
411
- "scalar JSON",
412
- "scalar DateTime",
413
- "",
414
- "type Query {",
415
- ' """Health check"""',
416
- " _health: Boolean!",
417
- "}",
418
- "",
419
- "schema {",
420
- " query: Query",
421
- "}",
422
- ].join("\n");
423
- }
424
- }
425
- //# sourceMappingURL=GraphQLSchemaGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GraphQLSchemaGenerator.js","sourceRoot":"","sources":["../../src/graphql/GraphQLSchemaGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,141 +0,0 @@
1
- /**
2
- * APMIntegration - Unified APM bridge for DataDog, New Relic, and generic OTLP backends
3
- *
4
- * Configures OpenTelemetry trace and metric exporters targeting specific APM vendors.
5
- * Each vendor has pre-configured OTLP endpoints and required headers/env vars.
6
- *
7
- * Uses lazy dynamic imports so vendor-specific SDK packages are optional.
8
- * Falls back to generic OTLP if vendor-specific packages are not installed.
9
- *
10
- * Supported vendors:
11
- * - **DataDog**: Sends traces/metrics via dd-trace or OTLP to DataDog Agent
12
- * - **New Relic**: Sends traces/metrics via OTLP to New Relic ingest endpoint
13
- * - **Generic OTLP**: Any OTLP-compatible backend (Jaeger, Grafana Tempo, etc.)
14
- *
15
- * @example
16
- * ```typescript
17
- * import { APMIntegration } from "@blokjs/runner";
18
- *
19
- * // DataDog
20
- * const apm = new APMIntegration({
21
- * vendor: "datadog",
22
- * serviceName: "blok-http",
23
- * datadogAgentUrl: "http://localhost:4318",
24
- * });
25
- * await apm.init();
26
- *
27
- * // New Relic
28
- * const apm = new APMIntegration({
29
- * vendor: "newrelic",
30
- * serviceName: "blok-http",
31
- * newrelicLicenseKey: process.env.NEW_RELIC_LICENSE_KEY!,
32
- * });
33
- * await apm.init();
34
- *
35
- * // Generic OTLP
36
- * const apm = new APMIntegration({
37
- * vendor: "otlp",
38
- * serviceName: "blok-http",
39
- * otlpEndpoint: "http://tempo:4318/v1/traces",
40
- * });
41
- * await apm.init();
42
- * ```
43
- */
44
- export type APMVendor = "datadog" | "newrelic" | "otlp";
45
- export interface APMConfig {
46
- /** APM vendor */
47
- vendor: APMVendor;
48
- /** Service name */
49
- serviceName: string;
50
- /** Service version */
51
- serviceVersion?: string;
52
- /** Environment (defaults to NODE_ENV) */
53
- environment?: string;
54
- /** DataDog: Agent OTLP endpoint (default: http://localhost:4318) */
55
- datadogAgentUrl?: string;
56
- /** DataDog: dd-trace service name override */
57
- datadogServiceName?: string;
58
- /** New Relic: License key (or set NEW_RELIC_LICENSE_KEY env) */
59
- newrelicLicenseKey?: string;
60
- /** New Relic: OTLP endpoint (default: US region endpoint) */
61
- newrelicEndpoint?: string;
62
- /** New Relic: Region "us" | "eu" (default: "us") */
63
- newrelicRegion?: "us" | "eu";
64
- /** Generic OTLP: endpoint URL */
65
- otlpEndpoint?: string;
66
- /** Generic OTLP: additional headers */
67
- otlpHeaders?: Record<string, string>;
68
- /** Trace sampling ratio (0.0 to 1.0, default: 1.0) */
69
- samplingRatio?: number;
70
- /** Enable debug logging */
71
- debug?: boolean;
72
- }
73
- export interface APMBootstrapResult {
74
- /** Vendor name */
75
- vendor: APMVendor;
76
- /** Gracefully shut down the APM integration */
77
- shutdown: () => Promise<void>;
78
- /** Force flush pending data */
79
- forceFlush: () => Promise<void>;
80
- }
81
- export declare class APMIntegration {
82
- private config;
83
- private initialized;
84
- private shutdownFn;
85
- private flushFn;
86
- constructor(config: APMConfig);
87
- /**
88
- * Initialize the APM integration.
89
- * Dynamically loads vendor-specific or generic OTLP packages.
90
- * Returns false if required packages are not installed.
91
- */
92
- init(): Promise<boolean>;
93
- /**
94
- * Initialize DataDog APM.
95
- *
96
- * Strategy: Use OTLP export to the DataDog Agent, which accepts OTLP
97
- * on port 4318 (HTTP) or 4317 (gRPC) when configured with
98
- * DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT.
99
- */
100
- private initDataDog;
101
- /**
102
- * Initialize New Relic APM.
103
- *
104
- * Strategy: Send traces via OTLP to New Relic's ingest endpoint.
105
- * Requires NEW_RELIC_LICENSE_KEY in headers.
106
- */
107
- private initNewRelic;
108
- /**
109
- * Initialize generic OTLP backend.
110
- */
111
- private initOTLP;
112
- /**
113
- * Shared OTLP bootstrap using TracingBootstrap.
114
- */
115
- private bootstrapOTLPTracing;
116
- /**
117
- * Check if the APM integration is initialized.
118
- */
119
- isInitialized(): boolean;
120
- /**
121
- * Get the configured vendor.
122
- */
123
- getVendor(): APMVendor;
124
- /**
125
- * Shut down the APM integration, flushing pending data.
126
- */
127
- shutdown(): Promise<void>;
128
- /**
129
- * Force flush pending traces/metrics.
130
- */
131
- forceFlush(): Promise<void>;
132
- /**
133
- * Get the OTLP endpoint configuration for the current vendor.
134
- * Useful for debugging and diagnostics.
135
- */
136
- getEndpointInfo(): {
137
- vendor: APMVendor;
138
- endpoint: string;
139
- initialized: boolean;
140
- };
141
- }