@bluelibs/runner-dev 5.1.0 → 6.0.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 (154) hide show
  1. package/AI.md +80 -6
  2. package/README.md +216 -22
  3. package/dist/cli/generators/scaffold/templates/package.json.d.ts +2 -2
  4. package/dist/cli/generators/scaffold/templates/package.json.js +2 -2
  5. package/dist/cli/generators/scaffold.js +1 -135
  6. package/dist/cli/generators/scaffold.js.map +1 -1
  7. package/dist/cli/generators/templates.js +2 -1
  8. package/dist/cli/generators/templates.js.map +1 -1
  9. package/dist/generated/resolvers-types.d.ts +545 -112
  10. package/dist/index.d.ts +39 -39
  11. package/dist/resources/cli.config.resource.d.ts +1 -1
  12. package/dist/resources/cli.config.resource.js +2 -2
  13. package/dist/resources/cli.config.resource.js.map +1 -1
  14. package/dist/resources/coverage.resource.d.ts +2 -2
  15. package/dist/resources/coverage.resource.js +3 -3
  16. package/dist/resources/coverage.resource.js.map +1 -1
  17. package/dist/resources/dev.resource.d.ts +1 -1
  18. package/dist/resources/dev.resource.js +2 -2
  19. package/dist/resources/dev.resource.js.map +1 -1
  20. package/dist/resources/docs.generator.resource.d.ts +4 -3
  21. package/dist/resources/docs.generator.resource.js +2 -2
  22. package/dist/resources/docs.generator.resource.js.map +1 -1
  23. package/dist/resources/graphql-accumulator.resource.d.ts +2 -2
  24. package/dist/resources/graphql-accumulator.resource.js +7 -3
  25. package/dist/resources/graphql-accumulator.resource.js.map +1 -1
  26. package/dist/resources/graphql.cli.resource.d.ts +1 -1
  27. package/dist/resources/graphql.cli.resource.js +2 -2
  28. package/dist/resources/graphql.cli.resource.js.map +1 -1
  29. package/dist/resources/graphql.query.cli.task.d.ts +14 -16
  30. package/dist/resources/graphql.query.cli.task.js +3 -3
  31. package/dist/resources/graphql.query.cli.task.js.map +1 -1
  32. package/dist/resources/graphql.query.task.d.ts +18 -18
  33. package/dist/resources/graphql.query.task.js +4 -4
  34. package/dist/resources/graphql.query.task.js.map +1 -1
  35. package/dist/resources/http.tag.d.ts +1 -1
  36. package/dist/resources/http.tag.js +2 -2
  37. package/dist/resources/http.tag.js.map +1 -1
  38. package/dist/resources/introspector.cli.resource.d.ts +2 -2
  39. package/dist/resources/introspector.cli.resource.js +37 -3
  40. package/dist/resources/introspector.cli.resource.js.map +1 -1
  41. package/dist/resources/introspector.resource.d.ts +3 -2
  42. package/dist/resources/introspector.resource.js +6 -6
  43. package/dist/resources/introspector.resource.js.map +1 -1
  44. package/dist/resources/live.resource.d.ts +7 -6
  45. package/dist/resources/live.resource.js +64 -25
  46. package/dist/resources/live.resource.js.map +1 -1
  47. package/dist/resources/models/Introspector.d.ts +59 -15
  48. package/dist/resources/models/Introspector.js +467 -137
  49. package/dist/resources/models/Introspector.js.map +1 -1
  50. package/dist/resources/models/durable.runtime.d.ts +1 -1
  51. package/dist/resources/models/durable.runtime.js +53 -2
  52. package/dist/resources/models/durable.runtime.js.map +1 -1
  53. package/dist/resources/models/durable.tools.d.ts +1 -1
  54. package/dist/resources/models/durable.tools.js +6 -3
  55. package/dist/resources/models/durable.tools.js.map +1 -1
  56. package/dist/resources/models/initializeFromStore.js +126 -19
  57. package/dist/resources/models/initializeFromStore.js.map +1 -1
  58. package/dist/resources/models/initializeFromStore.utils.d.ts +12 -7
  59. package/dist/resources/models/initializeFromStore.utils.js +319 -23
  60. package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
  61. package/dist/resources/models/introspector.tools.js +18 -6
  62. package/dist/resources/models/introspector.tools.js.map +1 -1
  63. package/dist/resources/routeHandlers/createLiveStreamHandler.d.ts +16 -0
  64. package/dist/resources/routeHandlers/createLiveStreamHandler.js +127 -0
  65. package/dist/resources/routeHandlers/createLiveStreamHandler.js.map +1 -0
  66. package/dist/resources/routeHandlers/getDocsData.d.ts +4 -0
  67. package/dist/resources/routeHandlers/getDocsData.js +28 -0
  68. package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
  69. package/dist/resources/routeHandlers/registerHttpRoutes.hook.d.ts +26 -23
  70. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +10 -9
  71. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
  72. package/dist/resources/routeHandlers/requestCorrelation.d.ts +11 -0
  73. package/dist/resources/routeHandlers/requestCorrelation.js +29 -0
  74. package/dist/resources/routeHandlers/requestCorrelation.js.map +1 -0
  75. package/dist/resources/server.resource.d.ts +20 -20
  76. package/dist/resources/server.resource.js +17 -5
  77. package/dist/resources/server.resource.js.map +1 -1
  78. package/dist/resources/swap.cli.resource.d.ts +4 -4
  79. package/dist/resources/swap.cli.resource.js +2 -2
  80. package/dist/resources/swap.cli.resource.js.map +1 -1
  81. package/dist/resources/swap.resource.d.ts +7 -6
  82. package/dist/resources/swap.resource.js +188 -38
  83. package/dist/resources/swap.resource.js.map +1 -1
  84. package/dist/resources/swap.tools.d.ts +3 -2
  85. package/dist/resources/swap.tools.js +27 -27
  86. package/dist/resources/swap.tools.js.map +1 -1
  87. package/dist/resources/telemetry.resource.d.ts +1 -1
  88. package/dist/resources/telemetry.resource.js +46 -43
  89. package/dist/resources/telemetry.resource.js.map +1 -1
  90. package/dist/runner-compat.d.ts +85 -0
  91. package/dist/runner-compat.js +178 -0
  92. package/dist/runner-compat.js.map +1 -0
  93. package/dist/runner-node-compat.d.ts +2 -0
  94. package/dist/runner-node-compat.js +28 -0
  95. package/dist/runner-node-compat.js.map +1 -0
  96. package/dist/schema/index.js +8 -8
  97. package/dist/schema/index.js.map +1 -1
  98. package/dist/schema/model.d.ts +100 -20
  99. package/dist/schema/model.js.map +1 -1
  100. package/dist/schema/query.js +25 -1
  101. package/dist/schema/query.js.map +1 -1
  102. package/dist/schema/types/AllType.js +13 -2
  103. package/dist/schema/types/AllType.js.map +1 -1
  104. package/dist/schema/types/BaseElementCommon.js +10 -0
  105. package/dist/schema/types/BaseElementCommon.js.map +1 -1
  106. package/dist/schema/types/ErrorType.js +1 -1
  107. package/dist/schema/types/ErrorType.js.map +1 -1
  108. package/dist/schema/types/EventType.js +19 -2
  109. package/dist/schema/types/EventType.js.map +1 -1
  110. package/dist/schema/types/InterceptorOwnersType.d.ts +2 -0
  111. package/dist/schema/types/InterceptorOwnersType.js +63 -0
  112. package/dist/schema/types/InterceptorOwnersType.js.map +1 -0
  113. package/dist/schema/types/LaneSummaryTypes.d.ts +3 -0
  114. package/dist/schema/types/LaneSummaryTypes.js +19 -0
  115. package/dist/schema/types/LaneSummaryTypes.js.map +1 -0
  116. package/dist/schema/types/LiveType.js +81 -76
  117. package/dist/schema/types/LiveType.js.map +1 -1
  118. package/dist/schema/types/ResourceType.js +101 -15
  119. package/dist/schema/types/ResourceType.js.map +1 -1
  120. package/dist/schema/types/RunOptionsType.d.ts +2 -0
  121. package/dist/schema/types/RunOptionsType.js +107 -0
  122. package/dist/schema/types/RunOptionsType.js.map +1 -0
  123. package/dist/schema/types/TagType.js +35 -4
  124. package/dist/schema/types/TagType.js.map +1 -1
  125. package/dist/schema/types/TaskType.js +20 -0
  126. package/dist/schema/types/TaskType.js.map +1 -1
  127. package/dist/schema/types/index.d.ts +4 -2
  128. package/dist/schema/types/index.js +10 -7
  129. package/dist/schema/types/index.js.map +1 -1
  130. package/dist/schema/types/middleware/common.d.ts +3 -2
  131. package/dist/schema/types/middleware/common.js +19 -13
  132. package/dist/schema/types/middleware/common.js.map +1 -1
  133. package/dist/ui/.vite/manifest.json +2 -2
  134. package/dist/ui/assets/docs-Btkv97Ls.js +302 -0
  135. package/dist/ui/assets/docs-Btkv97Ls.js.map +1 -0
  136. package/dist/ui/assets/docs-CipvKUxZ.css +1 -0
  137. package/dist/utils/healthCollectors.d.ts +37 -0
  138. package/dist/utils/healthCollectors.js +147 -0
  139. package/dist/utils/healthCollectors.js.map +1 -0
  140. package/dist/utils/lane-resources.d.ts +55 -0
  141. package/dist/utils/lane-resources.js +143 -0
  142. package/dist/utils/lane-resources.js.map +1 -0
  143. package/dist/utils/zod.js +36 -3
  144. package/dist/utils/zod.js.map +1 -1
  145. package/dist/version.d.ts +1 -1
  146. package/dist/version.js +1 -1
  147. package/package.json +4 -6
  148. package/readmes/runner-AI.md +740 -0
  149. package/readmes/runner-durable-workflows.md +2247 -0
  150. package/readmes/runner-full-guide.md +5869 -0
  151. package/readmes/runner-remote-lanes.md +909 -0
  152. package/dist/ui/assets/docs-B_-zFz4-.css +0 -1
  153. package/dist/ui/assets/docs-Be-GHfZi.js +0 -353
  154. package/dist/ui/assets/docs-Be-GHfZi.js.map +0 -1
@@ -1,6 +1,16 @@
1
- import type { Resource, Event, Task, Hook, Middleware, Tag, Error as ErrorModel, AsyncContext as AsyncContextModel } from "../../schema";
2
- import type { Store } from "@bluelibs/runner";
1
+ import type { Resource, Event, Task, Hook, Middleware, Tag, Error as ErrorModel, AsyncContext as AsyncContextModel, RunOptions } from "../../schema";
2
+ import type { Store, IRuntime } from "@bluelibs/runner";
3
3
  import type { DiagnosticItem } from "../../schema";
4
+ export type MiddlewareInterceptorOwnerSnapshot = {
5
+ globalTaskInterceptorOwnerIds: string[];
6
+ globalResourceInterceptorOwnerIds: string[];
7
+ perTaskMiddlewareInterceptorOwnerIds: Record<string, string[]>;
8
+ perResourceMiddlewareInterceptorOwnerIds: Record<string, string[]>;
9
+ };
10
+ export type InterceptorOwnersSnapshot = {
11
+ tasksById: Record<string, string[]>;
12
+ middleware: MiddlewareInterceptorOwnerSnapshot;
13
+ };
4
14
  export type SerializedIntrospector = {
5
15
  tasks: Task[];
6
16
  hooks: Hook[];
@@ -37,6 +47,8 @@ export type SerializedIntrospector = {
37
47
  by: string;
38
48
  }>;
39
49
  rootId?: string | null;
50
+ runOptions?: RunOptions | null;
51
+ interceptorOwners?: InterceptorOwnersSnapshot | null;
40
52
  };
41
53
  export declare class Introspector {
42
54
  tasks: Task[];
@@ -49,8 +61,11 @@ export declare class Introspector {
49
61
  tags: Tag[];
50
62
  errors: ErrorModel[];
51
63
  asyncContexts: AsyncContextModel[];
52
- store: Pick<Store, "tasks" | "resources" | "root"> | null;
64
+ store: Store | null;
65
+ runtime: IRuntime | null;
53
66
  rootId: string | null;
67
+ runOptions: RunOptions | null;
68
+ interceptorOwners: InterceptorOwnersSnapshot;
54
69
  taskMap: Map<string, Task>;
55
70
  hookMap: Map<string, Hook>;
56
71
  resourceMap: Map<string, Resource>;
@@ -60,13 +75,31 @@ export declare class Introspector {
60
75
  errorMap: Map<string, ErrorModel>;
61
76
  asyncContextMap: Map<string, AsyncContextModel>;
62
77
  constructor(input: {
63
- store: Pick<Store, "tasks" | "resources" | "root">;
78
+ store: Store;
79
+ runtime?: IRuntime;
80
+ runOptions?: RunOptions | null;
64
81
  } | {
65
82
  data: SerializedIntrospector;
66
83
  });
84
+ private idsMatch;
85
+ private resolveCanonicalId;
86
+ private canonicalizeReferenceArray;
87
+ private findByIdLike;
88
+ private idsContainLike;
89
+ private normalizeMetaTags;
90
+ private normalizeRelationIds;
91
+ finalizeDerivedState(): void;
67
92
  private initializeFromData;
93
+ private splitMiddlewaresByType;
68
94
  private buildRunsOptions;
69
95
  getRoot(): Resource;
96
+ /**
97
+ * Returns the effective run options that were used when the application was started.
98
+ * When a live store is available, options are derived from it; otherwise
99
+ * the previously serialized snapshot is used.
100
+ */
101
+ private normalizeRunOptions;
102
+ getRunOptions(): RunOptions;
70
103
  getAll(): (Task | Hook | Resource | Event | Middleware | ErrorModel | AsyncContextModel)[];
71
104
  private populateErrorThrownBy;
72
105
  getEvents(): Event[];
@@ -125,7 +158,15 @@ export declare class Introspector {
125
158
  getHooksWithTag(tagId: string): Hook[];
126
159
  getResourcesWithTag(tagId: string): Resource[];
127
160
  getMiddlewaresWithTag(tagId: string): Middleware[];
161
+ getTaskMiddlewaresWithTag(tagId: string): Middleware[];
162
+ getResourceMiddlewaresWithTag(tagId: string): Middleware[];
128
163
  getEventsWithTag(tagId: string): Event[];
164
+ getErrorsWithTag(tagId: string): ErrorModel[];
165
+ getTagHandlers(tagId: string): {
166
+ tasks: Task[];
167
+ hooks: Hook[];
168
+ resources: Resource[];
169
+ };
129
170
  getAllTags(): Tag[];
130
171
  getTag(id: string): Tag | null;
131
172
  getTagsByIds(ids: string[]): Tag[];
@@ -220,17 +261,14 @@ export declare class Introspector {
220
261
  * Checks whether a given element uses `.require()` for a specific async context.
221
262
  */
222
263
  isContextRequiredBy(contextId: string, elementId: string): boolean;
223
- getTunnelResources(): Resource[];
224
- getTunneledTasks(tunnelResourceId: string): Task[];
225
- getTunneledEvents(tunnelResourceId: string): Event[];
226
- getTunnelForTask(taskId: string): Resource | null;
227
- getTunnelForEvent(eventId: string): Resource | null;
228
- /**
229
- * Populates tunnelInfo for resources with the tunnel tag.
230
- * Call this method after all resources have been initialized to ensure
231
- * tunnel resource values are available.
232
- */
233
- populateTunnelInfo(): void;
264
+ getRpcLanesResources(): Resource[];
265
+ getTasksByRpcLane(rpcLaneId: string): Task[];
266
+ getEventsByRpcLane(rpcLaneId: string): Event[];
267
+ getRpcLaneForTask(taskId: string): string | null;
268
+ getRpcLaneForEvent(eventId: string): string | null;
269
+ getRpcLaneResourceForTask(taskId: string): Resource | null;
270
+ getRpcLaneResourceForEvent(eventId: string): Resource | null;
271
+ private findRpcLanesResourceByLaneId;
234
272
  /**
235
273
  * Checks if a task is a durable workflow task.
236
274
  * A task is durable if it has the durable workflow tag (current: `globals.tags.durableWorkflow`, legacy: `durable.workflow`).
@@ -244,6 +282,12 @@ export declare class Introspector {
244
282
  * Returns the durable resource a task depends on, if any.
245
283
  */
246
284
  getDurableResourceForTask(taskId: string): Resource | null;
285
+ getInterceptorOwnersSnapshot(): InterceptorOwnersSnapshot;
286
+ getTaskInterceptorOwnerIds(taskId: string): string[];
287
+ getTaskInterceptorCount(taskId: string): number;
288
+ hasTaskInterceptors(taskId: string): boolean;
289
+ getMiddlewareInterceptorOwnerIds(middlewareId: string): string[];
290
+ private getTaskInterceptorsFromLiveStore;
247
291
  serialize(): SerializedIntrospector;
248
292
  static deserialize(data: SerializedIntrospector): Introspector;
249
293
  }