@blokjs/runner 0.2.1 → 0.4.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 (159) hide show
  1. package/dist/Blok.js +11 -11
  2. package/dist/Blok.js.map +1 -1
  3. package/dist/Configuration.d.ts +39 -2
  4. package/dist/Configuration.js +337 -28
  5. package/dist/Configuration.js.map +1 -1
  6. package/dist/ConfigurationResolver.d.ts +9 -0
  7. package/dist/ConfigurationResolver.js +17 -1
  8. package/dist/ConfigurationResolver.js.map +1 -1
  9. package/dist/PayloadTooLargeError.d.ts +19 -0
  10. package/dist/PayloadTooLargeError.js +29 -0
  11. package/dist/PayloadTooLargeError.js.map +1 -0
  12. package/dist/RunCancelledError.d.ts +17 -0
  13. package/dist/RunCancelledError.js +25 -0
  14. package/dist/RunCancelledError.js.map +1 -0
  15. package/dist/RunnerSteps.js +363 -23
  16. package/dist/RunnerSteps.js.map +1 -1
  17. package/dist/RuntimeAdapterNode.d.ts +32 -2
  18. package/dist/RuntimeAdapterNode.js +122 -27
  19. package/dist/RuntimeAdapterNode.js.map +1 -1
  20. package/dist/SubworkflowNode.d.ts +75 -0
  21. package/dist/SubworkflowNode.js +221 -0
  22. package/dist/SubworkflowNode.js.map +1 -0
  23. package/dist/TriggerBase.d.ts +128 -0
  24. package/dist/TriggerBase.js +808 -6
  25. package/dist/TriggerBase.js.map +1 -1
  26. package/dist/WaitDispatchRequest.d.ts +38 -0
  27. package/dist/WaitDispatchRequest.js +13 -0
  28. package/dist/WaitDispatchRequest.js.map +1 -0
  29. package/dist/WaitNode.d.ts +23 -0
  30. package/dist/WaitNode.js +26 -0
  31. package/dist/WaitNode.js.map +1 -0
  32. package/dist/adapters/BunRuntimeAdapter.d.ts +1 -0
  33. package/dist/adapters/BunRuntimeAdapter.js +1 -0
  34. package/dist/adapters/BunRuntimeAdapter.js.map +1 -1
  35. package/dist/adapters/DockerRuntimeAdapter.d.ts +2 -1
  36. package/dist/adapters/DockerRuntimeAdapter.js +10 -1
  37. package/dist/adapters/DockerRuntimeAdapter.js.map +1 -1
  38. package/dist/adapters/HttpRuntimeAdapter.d.ts +26 -5
  39. package/dist/adapters/HttpRuntimeAdapter.js +97 -16
  40. package/dist/adapters/HttpRuntimeAdapter.js.map +1 -1
  41. package/dist/adapters/NodeJsRuntimeAdapter.d.ts +1 -0
  42. package/dist/adapters/NodeJsRuntimeAdapter.js +1 -0
  43. package/dist/adapters/NodeJsRuntimeAdapter.js.map +1 -1
  44. package/dist/adapters/RuntimeAdapter.d.ts +17 -0
  45. package/dist/adapters/WasmRuntimeAdapter.d.ts +1 -0
  46. package/dist/adapters/WasmRuntimeAdapter.js +1 -0
  47. package/dist/adapters/WasmRuntimeAdapter.js.map +1 -1
  48. package/dist/adapters/grpc/GrpcChannelOptions.d.ts +31 -0
  49. package/dist/adapters/grpc/GrpcChannelOptions.js +68 -0
  50. package/dist/adapters/grpc/GrpcChannelOptions.js.map +1 -0
  51. package/dist/adapters/grpc/GrpcClientPool.d.ts +43 -0
  52. package/dist/adapters/grpc/GrpcClientPool.js +89 -0
  53. package/dist/adapters/grpc/GrpcClientPool.js.map +1 -0
  54. package/dist/adapters/grpc/GrpcCodec.d.ts +226 -0
  55. package/dist/adapters/grpc/GrpcCodec.js +275 -0
  56. package/dist/adapters/grpc/GrpcCodec.js.map +1 -0
  57. package/dist/adapters/grpc/GrpcErrors.d.ts +59 -0
  58. package/dist/adapters/grpc/GrpcErrors.js +190 -0
  59. package/dist/adapters/grpc/GrpcErrors.js.map +1 -0
  60. package/dist/adapters/grpc/GrpcHealthChecker.d.ts +69 -0
  61. package/dist/adapters/grpc/GrpcHealthChecker.js +96 -0
  62. package/dist/adapters/grpc/GrpcHealthChecker.js.map +1 -0
  63. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +98 -0
  64. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +478 -0
  65. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -0
  66. package/dist/adapters/grpc/index.d.ts +13 -0
  67. package/dist/adapters/grpc/index.js +14 -0
  68. package/dist/adapters/grpc/index.js.map +1 -0
  69. package/dist/adapters/grpc/proto/blok/runtime/v1/runtime.proto +302 -0
  70. package/dist/adapters/grpc/types.d.ts +97 -0
  71. package/dist/adapters/grpc/types.js +41 -0
  72. package/dist/adapters/grpc/types.js.map +1 -0
  73. package/dist/adapters/transport.d.ts +108 -0
  74. package/dist/adapters/transport.js +196 -0
  75. package/dist/adapters/transport.js.map +1 -0
  76. package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
  77. package/dist/concurrency/ConcurrencyBackend.js +20 -0
  78. package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
  79. package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
  80. package/dist/concurrency/ConcurrencyLimitError.js +16 -0
  81. package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
  82. package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
  83. package/dist/concurrency/NatsKvConcurrencyBackend.js +297 -0
  84. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
  85. package/dist/concurrency/QueueExpiredError.d.ts +40 -0
  86. package/dist/concurrency/QueueExpiredError.js +15 -0
  87. package/dist/concurrency/QueueExpiredError.js.map +1 -0
  88. package/dist/concurrency/createConcurrencyBackend.d.ts +23 -0
  89. package/dist/concurrency/createConcurrencyBackend.js +34 -0
  90. package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
  91. package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
  92. package/dist/concurrency/readConcurrencyConfig.js +60 -0
  93. package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
  94. package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
  95. package/dist/idempotency/resolveIdempotencyKey.js +37 -0
  96. package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
  97. package/dist/index.d.ts +35 -3
  98. package/dist/index.js +61 -2
  99. package/dist/index.js.map +1 -1
  100. package/dist/monitoring/ConcurrencyMetrics.d.ts +56 -0
  101. package/dist/monitoring/ConcurrencyMetrics.js +107 -0
  102. package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
  103. package/dist/monitoring/JanitorMetrics.d.ts +27 -0
  104. package/dist/monitoring/JanitorMetrics.js +48 -0
  105. package/dist/monitoring/JanitorMetrics.js.map +1 -0
  106. package/dist/scheduling/DebounceCoordinator.d.ts +88 -0
  107. package/dist/scheduling/DebounceCoordinator.js +141 -0
  108. package/dist/scheduling/DebounceCoordinator.js.map +1 -0
  109. package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
  110. package/dist/scheduling/DeferredDispatchSignal.js +14 -0
  111. package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
  112. package/dist/scheduling/DeferredRunScheduler.d.ts +68 -0
  113. package/dist/scheduling/DeferredRunScheduler.js +154 -0
  114. package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
  115. package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
  116. package/dist/scheduling/readSchedulingConfig.js +52 -0
  117. package/dist/scheduling/readSchedulingConfig.js.map +1 -0
  118. package/dist/testing/WorkflowTestRunner.js +12 -0
  119. package/dist/testing/WorkflowTestRunner.js.map +1 -1
  120. package/dist/timeouts/StepTimeoutError.d.ts +22 -0
  121. package/dist/timeouts/StepTimeoutError.js +31 -0
  122. package/dist/timeouts/StepTimeoutError.js.map +1 -0
  123. package/dist/tracing/InMemoryRunStore.d.ts +28 -1
  124. package/dist/tracing/InMemoryRunStore.js +150 -0
  125. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  126. package/dist/tracing/Janitor.d.ts +70 -0
  127. package/dist/tracing/Janitor.js +150 -0
  128. package/dist/tracing/Janitor.js.map +1 -0
  129. package/dist/tracing/PostgresRunStore.d.ts +30 -0
  130. package/dist/tracing/PostgresRunStore.js +435 -3
  131. package/dist/tracing/PostgresRunStore.js.map +1 -1
  132. package/dist/tracing/RunStore.d.ts +100 -1
  133. package/dist/tracing/RunTracker.d.ts +261 -11
  134. package/dist/tracing/RunTracker.js +691 -11
  135. package/dist/tracing/RunTracker.js.map +1 -1
  136. package/dist/tracing/SqliteRunStore.d.ts +23 -1
  137. package/dist/tracing/SqliteRunStore.js +421 -6
  138. package/dist/tracing/SqliteRunStore.js.map +1 -1
  139. package/dist/tracing/TraceRouter.d.ts +20 -2
  140. package/dist/tracing/TraceRouter.js +494 -9
  141. package/dist/tracing/TraceRouter.js.map +1 -1
  142. package/dist/tracing/sanitize.d.ts +11 -0
  143. package/dist/tracing/sanitize.js +29 -0
  144. package/dist/tracing/sanitize.js.map +1 -1
  145. package/dist/tracing/types.d.ts +429 -11
  146. package/dist/types/GlobalOptions.d.ts +9 -2
  147. package/dist/utils/createChildContext.d.ts +32 -0
  148. package/dist/utils/createChildContext.js +113 -0
  149. package/dist/utils/createChildContext.js.map +1 -0
  150. package/dist/workflow/PersistenceHelper.d.ts +46 -0
  151. package/dist/workflow/PersistenceHelper.js +57 -0
  152. package/dist/workflow/PersistenceHelper.js.map +1 -0
  153. package/dist/workflow/WorkflowNormalizer.d.ts +79 -0
  154. package/dist/workflow/WorkflowNormalizer.js +486 -0
  155. package/dist/workflow/WorkflowNormalizer.js.map +1 -0
  156. package/dist/workflow/WorkflowRegistry.d.ts +64 -0
  157. package/dist/workflow/WorkflowRegistry.js +81 -0
  158. package/dist/workflow/WorkflowRegistry.js.map +1 -0
  159. package/package.json +10 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowNormalizer.js","sourceRoot":"","sources":["../../src/workflow/WorkflowNormalizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * WorkflowRegistry — process-wide name → workflow lookup that the
3
+ * sub-workflow primitive uses to find the child to invoke.
4
+ *
5
+ * Triggers (HTTP, future worker/cron, etc.) feed the registry at boot
6
+ * by calling `registerAll()` with the workflows they discovered. The
7
+ * `SubworkflowNode` then calls `get(name)` at run time to materialize
8
+ * the child.
9
+ *
10
+ * **Lookup contract**: keyed on the workflow's `name:` field — same
11
+ * value the author writes in their workflow definition. Two workflows
12
+ * with the same name from different sources are a load-time error
13
+ * (the registry throws on collision). Re-registration of the same
14
+ * `(name, source)` pair is idempotent (HMR-friendly).
15
+ *
16
+ * **Lifecycle**: singleton, lives for the process. Triggers should
17
+ * `clear()` before re-registering when workflow files change (HMR);
18
+ * the in-repo HTTP trigger does this on every scan.
19
+ *
20
+ * **Why a separate class** (vs reusing the HTTP trigger's RouteEntry[]):
21
+ * - Decoupled from HTTP — worker/cron triggers feed the same registry.
22
+ * - Lookup by `name:` is what authors write; route table is keyed on
23
+ * `(method, path)` which sub-workflow callers don't know.
24
+ * - Test isolation — `resetInstance()` is cheap.
25
+ */
26
+ export interface RegisteredWorkflow {
27
+ /** The workflow's `name:` field. Sub-workflow steps reference this. */
28
+ readonly name: string;
29
+ /** Filesystem path or `"<inline>"` for builder-constructed workflows. */
30
+ readonly source: string;
31
+ /**
32
+ * Raw workflow object (pre-normalization). The `SubworkflowNode`
33
+ * passes this to `Configuration.init(name, opts, preloaded)` which
34
+ * runs it through `normalizeWorkflow` → resolved nodes.
35
+ */
36
+ readonly workflow: unknown;
37
+ }
38
+ export declare class WorkflowRegistry {
39
+ private static instance;
40
+ private workflows;
41
+ static getInstance(): WorkflowRegistry;
42
+ /** Test-only — drop the singleton so suites start fresh. */
43
+ static resetInstance(): void;
44
+ /**
45
+ * Register a single workflow. Throws on collision when a workflow
46
+ * with the same `name` is already registered from a different
47
+ * `source`. Re-registration of the same `(name, source)` is a
48
+ * no-op (HMR-friendly).
49
+ */
50
+ register(entry: RegisteredWorkflow): void;
51
+ /** Convenience — register many at once. Stops on first collision. */
52
+ registerAll(entries: readonly RegisteredWorkflow[]): void;
53
+ /** Fetch the registered workflow by name, or undefined on miss. */
54
+ get(name: string): RegisteredWorkflow | undefined;
55
+ /** Cheap existence check (avoids the `?: undefined` dance). */
56
+ has(name: string): boolean;
57
+ /** Snapshot of all registered workflows — used for error messages. */
58
+ list(): RegisteredWorkflow[];
59
+ /**
60
+ * Drop every registered workflow. Triggers call this before
61
+ * re-scanning on HMR so stale entries don't survive a file rename.
62
+ */
63
+ clear(): void;
64
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * WorkflowRegistry — process-wide name → workflow lookup that the
3
+ * sub-workflow primitive uses to find the child to invoke.
4
+ *
5
+ * Triggers (HTTP, future worker/cron, etc.) feed the registry at boot
6
+ * by calling `registerAll()` with the workflows they discovered. The
7
+ * `SubworkflowNode` then calls `get(name)` at run time to materialize
8
+ * the child.
9
+ *
10
+ * **Lookup contract**: keyed on the workflow's `name:` field — same
11
+ * value the author writes in their workflow definition. Two workflows
12
+ * with the same name from different sources are a load-time error
13
+ * (the registry throws on collision). Re-registration of the same
14
+ * `(name, source)` pair is idempotent (HMR-friendly).
15
+ *
16
+ * **Lifecycle**: singleton, lives for the process. Triggers should
17
+ * `clear()` before re-registering when workflow files change (HMR);
18
+ * the in-repo HTTP trigger does this on every scan.
19
+ *
20
+ * **Why a separate class** (vs reusing the HTTP trigger's RouteEntry[]):
21
+ * - Decoupled from HTTP — worker/cron triggers feed the same registry.
22
+ * - Lookup by `name:` is what authors write; route table is keyed on
23
+ * `(method, path)` which sub-workflow callers don't know.
24
+ * - Test isolation — `resetInstance()` is cheap.
25
+ */
26
+ export class WorkflowRegistry {
27
+ static instance = null;
28
+ workflows = new Map();
29
+ static getInstance() {
30
+ if (!WorkflowRegistry.instance) {
31
+ WorkflowRegistry.instance = new WorkflowRegistry();
32
+ }
33
+ return WorkflowRegistry.instance;
34
+ }
35
+ /** Test-only — drop the singleton so suites start fresh. */
36
+ static resetInstance() {
37
+ WorkflowRegistry.instance = null;
38
+ }
39
+ /**
40
+ * Register a single workflow. Throws on collision when a workflow
41
+ * with the same `name` is already registered from a different
42
+ * `source`. Re-registration of the same `(name, source)` is a
43
+ * no-op (HMR-friendly).
44
+ */
45
+ register(entry) {
46
+ if (!entry.name || entry.name.length === 0) {
47
+ throw new Error("[blok] WorkflowRegistry.register: workflow `name` is required.");
48
+ }
49
+ const existing = this.workflows.get(entry.name);
50
+ if (existing && existing.source !== entry.source) {
51
+ throw new Error(`[blok] WorkflowRegistry: workflow name collision — "${entry.name}" is already registered from "${existing.source}"; cannot also register from "${entry.source}". Workflow names must be unique across the process.`);
52
+ }
53
+ this.workflows.set(entry.name, entry);
54
+ }
55
+ /** Convenience — register many at once. Stops on first collision. */
56
+ registerAll(entries) {
57
+ for (const entry of entries) {
58
+ this.register(entry);
59
+ }
60
+ }
61
+ /** Fetch the registered workflow by name, or undefined on miss. */
62
+ get(name) {
63
+ return this.workflows.get(name);
64
+ }
65
+ /** Cheap existence check (avoids the `?: undefined` dance). */
66
+ has(name) {
67
+ return this.workflows.has(name);
68
+ }
69
+ /** Snapshot of all registered workflows — used for error messages. */
70
+ list() {
71
+ return Array.from(this.workflows.values());
72
+ }
73
+ /**
74
+ * Drop every registered workflow. Triggers call this before
75
+ * re-scanning on HMR so stale entries don't survive a file rename.
76
+ */
77
+ clear() {
78
+ this.workflows.clear();
79
+ }
80
+ }
81
+ //# sourceMappingURL=WorkflowRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowRegistry.js","sourceRoot":"","sources":["../../src/workflow/WorkflowRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAeH,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,QAAQ,GAA4B,IAAI,CAAC;IAChD,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE1D,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAChC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,aAAa;QACnB,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAyB;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACd,uDAAuD,KAAK,CAAC,IAAI,iCAAiC,QAAQ,CAAC,MAAM,iCAAiC,KAAK,CAAC,MAAM,sDAAsD,CACpN,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,qEAAqE;IACrE,WAAW,CAAC,OAAsC;QACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAED,mEAAmE;IACnE,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,+DAA+D;IAC/D,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,sEAAsE;IACtE,IAAI;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blokjs/runner",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "",
5
5
  "engines": {
6
6
  "node": ">=18.0.0"
@@ -8,19 +8,20 @@
8
8
  "type": "module",
9
9
  "main": "dist/index.js",
10
10
  "types": "dist/index.d.ts",
11
- "files": [
12
- "dist"
13
- ],
11
+ "files": ["dist"],
14
12
  "author": "Marco A. Castillo Della Sera",
15
13
  "license": "MIT",
16
14
  "scripts": {
17
- "build": "rm -rf dist && bun run tsc",
15
+ "build": "rm -rf dist && bun run tsc && bun run sync:proto",
18
16
  "build:dev": "bun run build && tsc --watch",
17
+ "sync:proto": "mkdir -p dist/adapters/grpc/proto/blok/runtime/v1 && cp src/adapters/grpc/proto/blok/runtime/v1/runtime.proto dist/adapters/grpc/proto/blok/runtime/v1/runtime.proto",
18
+ "sync:proto:fromroot": "mkdir -p src/adapters/grpc/proto/blok/runtime/v1 && cp ../../proto/blok/runtime/v1/runtime.proto src/adapters/grpc/proto/blok/runtime/v1/runtime.proto",
19
19
  "test:dev": "vitest",
20
20
  "test": "vitest run",
21
21
  "test:integration": "vitest run --config vitest.integration.config.ts",
22
22
  "test:integration:dev": "vitest --config vitest.integration.config.ts",
23
23
  "test:integration:coverage": "vitest run --config vitest.integration.config.ts --coverage",
24
+ "test:parity": "vitest run --config vitest.integration.config.ts __tests__/integration/parity",
24
25
  "test:all": "vitest run && vitest run --config vitest.integration.config.ts",
25
26
  "typecheck": "tsc --noEmit --incremental"
26
27
  },
@@ -37,8 +38,10 @@
37
38
  "vitest": "^4.0.18"
38
39
  },
39
40
  "dependencies": {
40
- "@blokjs/helper": "^0.2.0",
41
- "@blokjs/shared": "^0.2.0",
41
+ "@blokjs/helper": "^0.4.0",
42
+ "@blokjs/shared": "^0.4.0",
43
+ "@grpc/grpc-js": "^1.12.0",
44
+ "@grpc/proto-loader": "^0.7.13",
42
45
  "@opentelemetry/api": "^1.9.0",
43
46
  "fast-xml-parser": "^5.3.4",
44
47
  "jsonschema": "^1.5.0",