duron 0.3.0-beta.8 → 0.3.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 (91) hide show
  1. package/dist/action-job.d.ts +33 -2
  2. package/dist/action-job.d.ts.map +1 -1
  3. package/dist/action-job.js +93 -26
  4. package/dist/action-manager.d.ts +44 -2
  5. package/dist/action-manager.d.ts.map +1 -1
  6. package/dist/action-manager.js +64 -3
  7. package/dist/action.d.ts +388 -7
  8. package/dist/action.d.ts.map +1 -1
  9. package/dist/action.js +44 -23
  10. package/dist/adapters/adapter.d.ts +365 -8
  11. package/dist/adapters/adapter.d.ts.map +1 -1
  12. package/dist/adapters/adapter.js +221 -15
  13. package/dist/adapters/postgres/base.d.ts +184 -6
  14. package/dist/adapters/postgres/base.d.ts.map +1 -1
  15. package/dist/adapters/postgres/base.js +436 -75
  16. package/dist/adapters/postgres/pglite.d.ts +37 -0
  17. package/dist/adapters/postgres/pglite.d.ts.map +1 -1
  18. package/dist/adapters/postgres/pglite.js +38 -0
  19. package/dist/adapters/postgres/postgres.d.ts +35 -0
  20. package/dist/adapters/postgres/postgres.d.ts.map +1 -1
  21. package/dist/adapters/postgres/postgres.js +42 -0
  22. package/dist/adapters/postgres/schema.d.ts +150 -37
  23. package/dist/adapters/postgres/schema.d.ts.map +1 -1
  24. package/dist/adapters/postgres/schema.default.d.ts +151 -38
  25. package/dist/adapters/postgres/schema.default.d.ts.map +1 -1
  26. package/dist/adapters/postgres/schema.default.js +2 -2
  27. package/dist/adapters/postgres/schema.js +60 -23
  28. package/dist/adapters/schemas.d.ts +124 -80
  29. package/dist/adapters/schemas.d.ts.map +1 -1
  30. package/dist/adapters/schemas.js +139 -26
  31. package/dist/client.d.ts +426 -22
  32. package/dist/client.d.ts.map +1 -1
  33. package/dist/client.js +370 -20
  34. package/dist/constants.js +6 -0
  35. package/dist/errors.d.ts +166 -9
  36. package/dist/errors.d.ts.map +1 -1
  37. package/dist/errors.js +189 -19
  38. package/dist/index.d.ts +2 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/server.d.ts +99 -37
  41. package/dist/server.d.ts.map +1 -1
  42. package/dist/server.js +84 -25
  43. package/dist/step-manager.d.ts +111 -4
  44. package/dist/step-manager.d.ts.map +1 -1
  45. package/dist/step-manager.js +411 -75
  46. package/dist/telemetry/index.d.ts +1 -4
  47. package/dist/telemetry/index.d.ts.map +1 -1
  48. package/dist/telemetry/index.js +2 -4
  49. package/dist/telemetry/local-span-exporter.d.ts +56 -0
  50. package/dist/telemetry/local-span-exporter.d.ts.map +1 -0
  51. package/dist/telemetry/local-span-exporter.js +118 -0
  52. package/dist/utils/p-retry.d.ts +5 -0
  53. package/dist/utils/p-retry.d.ts.map +1 -1
  54. package/dist/utils/p-retry.js +8 -0
  55. package/dist/utils/wait-for-abort.d.ts +1 -0
  56. package/dist/utils/wait-for-abort.d.ts.map +1 -1
  57. package/dist/utils/wait-for-abort.js +1 -0
  58. package/migrations/postgres/{20260119153838_flimsy_thor_girl → 20260121160012_normal_bloodstrike}/migration.sql +32 -20
  59. package/migrations/postgres/{20260119153838_flimsy_thor_girl → 20260121160012_normal_bloodstrike}/snapshot.json +241 -66
  60. package/package.json +42 -26
  61. package/src/action-job.ts +43 -32
  62. package/src/action-manager.ts +5 -5
  63. package/src/action.ts +317 -149
  64. package/src/adapters/adapter.ts +54 -54
  65. package/src/adapters/postgres/base.ts +266 -86
  66. package/src/adapters/postgres/schema.default.ts +2 -2
  67. package/src/adapters/postgres/schema.ts +52 -24
  68. package/src/adapters/schemas.ts +91 -36
  69. package/src/client.ts +322 -68
  70. package/src/errors.ts +141 -30
  71. package/src/index.ts +2 -0
  72. package/src/server.ts +39 -37
  73. package/src/step-manager.ts +254 -91
  74. package/src/telemetry/index.ts +2 -20
  75. package/src/telemetry/local-span-exporter.ts +148 -0
  76. package/dist/telemetry/adapter.d.ts +0 -107
  77. package/dist/telemetry/adapter.d.ts.map +0 -1
  78. package/dist/telemetry/adapter.js +0 -134
  79. package/dist/telemetry/local.d.ts +0 -22
  80. package/dist/telemetry/local.d.ts.map +0 -1
  81. package/dist/telemetry/local.js +0 -243
  82. package/dist/telemetry/noop.d.ts +0 -17
  83. package/dist/telemetry/noop.d.ts.map +0 -1
  84. package/dist/telemetry/noop.js +0 -66
  85. package/dist/telemetry/opentelemetry.d.ts +0 -25
  86. package/dist/telemetry/opentelemetry.d.ts.map +0 -1
  87. package/dist/telemetry/opentelemetry.js +0 -312
  88. package/src/telemetry/adapter.ts +0 -642
  89. package/src/telemetry/local.ts +0 -429
  90. package/src/telemetry/noop.ts +0 -141
  91. package/src/telemetry/opentelemetry.ts +0 -453
@@ -24,7 +24,7 @@ import type {
24
24
  DelayJobStepOptions,
25
25
  DeleteJobOptions,
26
26
  DeleteJobsOptions,
27
- DeleteMetricsOptions,
27
+ DeleteSpansOptions,
28
28
  FailJobOptions,
29
29
  FailJobStepOptions,
30
30
  FetchOptions,
@@ -33,9 +33,9 @@ import type {
33
33
  GetJobStepsResult,
34
34
  GetJobsOptions,
35
35
  GetJobsResult,
36
- GetMetricsOptions,
37
- GetMetricsResult,
38
- InsertMetricOptions,
36
+ GetSpansOptions,
37
+ GetSpansResult,
38
+ InsertSpanOptions,
39
39
  Job,
40
40
  JobStatusResult,
41
41
  JobStep,
@@ -56,7 +56,7 @@ import {
56
56
  DelayJobStepOptionsSchema,
57
57
  DeleteJobOptionsSchema,
58
58
  DeleteJobsOptionsSchema,
59
- DeleteMetricsOptionsSchema,
59
+ DeleteSpansOptionsSchema,
60
60
  FailJobOptionsSchema,
61
61
  FailJobStepOptionsSchema,
62
62
  FetchOptionsSchema,
@@ -65,9 +65,9 @@ import {
65
65
  GetJobStepsResultSchema,
66
66
  GetJobsOptionsSchema,
67
67
  GetJobsResultSchema,
68
- GetMetricsOptionsSchema,
69
- GetMetricsResultSchema,
70
- InsertMetricOptionsSchema,
68
+ GetSpansOptionsSchema,
69
+ GetSpansResultSchema,
70
+ InsertSpanOptionsSchema,
71
71
  JobIdResultSchema,
72
72
  JobSchema,
73
73
  JobStatusResultSchema,
@@ -93,7 +93,7 @@ export type {
93
93
  DelayJobStepOptions,
94
94
  DeleteJobOptions,
95
95
  DeleteJobsOptions,
96
- DeleteMetricsOptions,
96
+ DeleteSpansOptions,
97
97
  FailJobOptions,
98
98
  FailJobStepOptions,
99
99
  FetchOptions,
@@ -102,9 +102,9 @@ export type {
102
102
  GetJobStepsResult,
103
103
  GetJobsOptions,
104
104
  GetJobsResult,
105
- GetMetricsOptions,
106
- GetMetricsResult,
107
- InsertMetricOptions,
105
+ GetSpansOptions,
106
+ GetSpansResult,
107
+ InsertSpanOptions,
108
108
  Job,
109
109
  JobFilters,
110
110
  JobSort,
@@ -112,14 +112,16 @@ export type {
112
112
  JobStatusResult,
113
113
  JobStep,
114
114
  JobStepStatusResult,
115
- Metric,
116
- MetricFilters,
117
- MetricSort,
118
- MetricSortField,
119
- MetricType,
120
115
  RecoverJobsOptions,
121
116
  RetryJobOptions,
122
117
  SortOrder,
118
+ Span,
119
+ SpanEvent,
120
+ SpanFilters,
121
+ SpanKind,
122
+ SpanSort,
123
+ SpanSortField,
124
+ SpanStatusCode,
123
125
  TimeTravelJobOptions,
124
126
  } from './schemas.js'
125
127
 
@@ -993,100 +995,98 @@ export abstract class Adapter extends EventEmitter<AdapterEvents> {
993
995
  protected abstract _getActions(): Promise<GetActionsResult>
994
996
 
995
997
  // ============================================================================
996
- // Metrics Methods
998
+ // Span Methods (OpenTelemetry)
997
999
  // ============================================================================
998
1000
 
999
1001
  /**
1000
- * Insert multiple metric records in a single batch operation.
1001
- * Note: This method bypasses telemetry tracing to prevent infinite loops.
1002
+ * Insert multiple span records in a single batch operation.
1003
+ * Used by LocalSpanExporter to store spans from the OpenTelemetry SDK.
1002
1004
  *
1003
- * @param metrics - Array of metric data to insert
1004
- * @returns Promise resolving to the number of metrics inserted
1005
+ * @param spans - Array of span data to insert
1006
+ * @returns Promise resolving to the number of spans inserted
1005
1007
  */
1006
- async insertMetrics(metrics: InsertMetricOptions[]): Promise<number> {
1008
+ async insertSpans(spans: InsertSpanOptions[]): Promise<number> {
1007
1009
  try {
1008
- if (metrics.length === 0) {
1010
+ if (spans.length === 0) {
1009
1011
  return 0
1010
1012
  }
1011
1013
  await this.start()
1012
- const parsedMetrics = metrics.map((m) => InsertMetricOptionsSchema.parse(m))
1013
- const result = await this._insertMetrics(parsedMetrics)
1014
+ const parsedSpans = spans.map((s) => InsertSpanOptionsSchema.parse(s))
1015
+ const result = await this._insertSpans(parsedSpans)
1014
1016
  return NumberResultSchema.parse(result)
1015
1017
  } catch (error) {
1016
- this.#logger?.error(error, 'Error in Adapter.insertMetrics()')
1018
+ this.#logger?.error(error, 'Error in Adapter.insertSpans()')
1017
1019
  throw error
1018
1020
  }
1019
1021
  }
1020
1022
 
1021
1023
  /**
1022
- * Get metrics for a job or step.
1023
- * Note: This method bypasses telemetry tracing to prevent infinite loops.
1024
+ * Get spans for a job or step.
1024
1025
  *
1025
- * @param options - Query options including jobId/stepId, filters, sort, and pagination
1026
- * @returns Promise resolving to metrics result with pagination info
1026
+ * @param options - Query options including jobId/stepId, filters, and sort
1027
+ * @returns Promise resolving to spans result
1027
1028
  */
1028
- async getMetrics(options: GetMetricsOptions): Promise<GetMetricsResult> {
1029
+ async getSpans(options: GetSpansOptions): Promise<GetSpansResult> {
1029
1030
  try {
1030
1031
  await this.start()
1031
- const parsedOptions = GetMetricsOptionsSchema.parse(options)
1032
+ const parsedOptions = GetSpansOptionsSchema.parse(options)
1032
1033
  // Validate that at least one of jobId or stepId is provided
1033
1034
  if (!parsedOptions.jobId && !parsedOptions.stepId) {
1034
1035
  throw new Error('At least one of jobId or stepId must be provided')
1035
1036
  }
1036
- const result = await this._getMetrics(parsedOptions)
1037
- return GetMetricsResultSchema.parse(result)
1037
+ const result = await this._getSpans(parsedOptions)
1038
+ return GetSpansResultSchema.parse(result)
1038
1039
  } catch (error) {
1039
- this.#logger?.error(error, 'Error in Adapter.getMetrics()')
1040
+ this.#logger?.error(error, 'Error in Adapter.getSpans()')
1040
1041
  throw error
1041
1042
  }
1042
1043
  }
1043
1044
 
1044
1045
  /**
1045
- * Delete all metrics for a job.
1046
- * Note: This method bypasses telemetry tracing to prevent infinite loops.
1046
+ * Delete all spans for a job.
1047
1047
  *
1048
1048
  * @param options - Options containing the jobId
1049
- * @returns Promise resolving to the number of metrics deleted
1049
+ * @returns Promise resolving to the number of spans deleted
1050
1050
  */
1051
- async deleteMetrics(options: DeleteMetricsOptions): Promise<number> {
1051
+ async deleteSpans(options: DeleteSpansOptions): Promise<number> {
1052
1052
  try {
1053
1053
  await this.start()
1054
- const parsedOptions = DeleteMetricsOptionsSchema.parse(options)
1055
- const result = await this._deleteMetrics(parsedOptions)
1054
+ const parsedOptions = DeleteSpansOptionsSchema.parse(options)
1055
+ const result = await this._deleteSpans(parsedOptions)
1056
1056
  return NumberResultSchema.parse(result)
1057
1057
  } catch (error) {
1058
- this.#logger?.error(error, 'Error in Adapter.deleteMetrics()')
1058
+ this.#logger?.error(error, 'Error in Adapter.deleteSpans()')
1059
1059
  throw error
1060
1060
  }
1061
1061
  }
1062
1062
 
1063
1063
  // ============================================================================
1064
- // Private Metrics Methods (to be implemented by adapters)
1064
+ // Private Span Methods (to be implemented by adapters)
1065
1065
  // ============================================================================
1066
1066
 
1067
1067
  /**
1068
- * Internal method to insert multiple metric records in a single batch.
1068
+ * Internal method to insert multiple span records in a single batch.
1069
1069
  *
1070
- * @param metrics - Array of validated metric data
1071
- * @returns Promise resolving to the number of metrics inserted
1070
+ * @param spans - Array of validated span data
1071
+ * @returns Promise resolving to the number of spans inserted
1072
1072
  */
1073
- protected abstract _insertMetrics(metrics: InsertMetricOptions[]): Promise<number>
1073
+ protected abstract _insertSpans(spans: InsertSpanOptions[]): Promise<number>
1074
1074
 
1075
1075
  /**
1076
- * Internal method to get metrics for a job or step.
1076
+ * Internal method to get spans for a job or step.
1077
1077
  *
1078
1078
  * @param options - Validated query options
1079
- * @returns Promise resolving to metrics result with pagination info
1079
+ * @returns Promise resolving to spans result
1080
1080
  */
1081
- protected abstract _getMetrics(options: GetMetricsOptions): Promise<GetMetricsResult>
1081
+ protected abstract _getSpans(options: GetSpansOptions): Promise<GetSpansResult>
1082
1082
 
1083
1083
  /**
1084
- * Internal method to delete all metrics for a job.
1084
+ * Internal method to delete all spans for a job.
1085
1085
  *
1086
1086
  * @param options - Validated options containing the jobId
1087
- * @returns Promise resolving to the number of metrics deleted
1087
+ * @returns Promise resolving to the number of spans deleted
1088
1088
  */
1089
- protected abstract _deleteMetrics(options: DeleteMetricsOptions): Promise<number>
1089
+ protected abstract _deleteSpans(options: DeleteSpansOptions): Promise<number>
1090
1090
 
1091
1091
  // ============================================================================
1092
1092
  // Protected Abstract Methods (to be implemented by adapters)