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.
- package/dist/action-job.d.ts +33 -2
- package/dist/action-job.d.ts.map +1 -1
- package/dist/action-job.js +93 -26
- package/dist/action-manager.d.ts +44 -2
- package/dist/action-manager.d.ts.map +1 -1
- package/dist/action-manager.js +64 -3
- package/dist/action.d.ts +388 -7
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +44 -23
- package/dist/adapters/adapter.d.ts +365 -8
- package/dist/adapters/adapter.d.ts.map +1 -1
- package/dist/adapters/adapter.js +221 -15
- package/dist/adapters/postgres/base.d.ts +184 -6
- package/dist/adapters/postgres/base.d.ts.map +1 -1
- package/dist/adapters/postgres/base.js +436 -75
- package/dist/adapters/postgres/pglite.d.ts +37 -0
- package/dist/adapters/postgres/pglite.d.ts.map +1 -1
- package/dist/adapters/postgres/pglite.js +38 -0
- package/dist/adapters/postgres/postgres.d.ts +35 -0
- package/dist/adapters/postgres/postgres.d.ts.map +1 -1
- package/dist/adapters/postgres/postgres.js +42 -0
- package/dist/adapters/postgres/schema.d.ts +150 -37
- package/dist/adapters/postgres/schema.d.ts.map +1 -1
- package/dist/adapters/postgres/schema.default.d.ts +151 -38
- package/dist/adapters/postgres/schema.default.d.ts.map +1 -1
- package/dist/adapters/postgres/schema.default.js +2 -2
- package/dist/adapters/postgres/schema.js +60 -23
- package/dist/adapters/schemas.d.ts +124 -80
- package/dist/adapters/schemas.d.ts.map +1 -1
- package/dist/adapters/schemas.js +139 -26
- package/dist/client.d.ts +426 -22
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +370 -20
- package/dist/constants.js +6 -0
- package/dist/errors.d.ts +166 -9
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +189 -19
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/server.d.ts +99 -37
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +84 -25
- package/dist/step-manager.d.ts +111 -4
- package/dist/step-manager.d.ts.map +1 -1
- package/dist/step-manager.js +411 -75
- package/dist/telemetry/index.d.ts +1 -4
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +2 -4
- package/dist/telemetry/local-span-exporter.d.ts +56 -0
- package/dist/telemetry/local-span-exporter.d.ts.map +1 -0
- package/dist/telemetry/local-span-exporter.js +118 -0
- package/dist/utils/p-retry.d.ts +5 -0
- package/dist/utils/p-retry.d.ts.map +1 -1
- package/dist/utils/p-retry.js +8 -0
- package/dist/utils/wait-for-abort.d.ts +1 -0
- package/dist/utils/wait-for-abort.d.ts.map +1 -1
- package/dist/utils/wait-for-abort.js +1 -0
- package/migrations/postgres/{20260119153838_flimsy_thor_girl → 20260121160012_normal_bloodstrike}/migration.sql +32 -20
- package/migrations/postgres/{20260119153838_flimsy_thor_girl → 20260121160012_normal_bloodstrike}/snapshot.json +241 -66
- package/package.json +42 -26
- package/src/action-job.ts +43 -32
- package/src/action-manager.ts +5 -5
- package/src/action.ts +317 -149
- package/src/adapters/adapter.ts +54 -54
- package/src/adapters/postgres/base.ts +266 -86
- package/src/adapters/postgres/schema.default.ts +2 -2
- package/src/adapters/postgres/schema.ts +52 -24
- package/src/adapters/schemas.ts +91 -36
- package/src/client.ts +322 -68
- package/src/errors.ts +141 -30
- package/src/index.ts +2 -0
- package/src/server.ts +39 -37
- package/src/step-manager.ts +254 -91
- package/src/telemetry/index.ts +2 -20
- package/src/telemetry/local-span-exporter.ts +148 -0
- package/dist/telemetry/adapter.d.ts +0 -107
- package/dist/telemetry/adapter.d.ts.map +0 -1
- package/dist/telemetry/adapter.js +0 -134
- package/dist/telemetry/local.d.ts +0 -22
- package/dist/telemetry/local.d.ts.map +0 -1
- package/dist/telemetry/local.js +0 -243
- package/dist/telemetry/noop.d.ts +0 -17
- package/dist/telemetry/noop.d.ts.map +0 -1
- package/dist/telemetry/noop.js +0 -66
- package/dist/telemetry/opentelemetry.d.ts +0 -25
- package/dist/telemetry/opentelemetry.d.ts.map +0 -1
- package/dist/telemetry/opentelemetry.js +0 -312
- package/src/telemetry/adapter.ts +0 -642
- package/src/telemetry/local.ts +0 -429
- package/src/telemetry/noop.ts +0 -141
- package/src/telemetry/opentelemetry.ts +0 -453
package/src/adapters/adapter.ts
CHANGED
|
@@ -24,7 +24,7 @@ import type {
|
|
|
24
24
|
DelayJobStepOptions,
|
|
25
25
|
DeleteJobOptions,
|
|
26
26
|
DeleteJobsOptions,
|
|
27
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
//
|
|
998
|
+
// Span Methods (OpenTelemetry)
|
|
997
999
|
// ============================================================================
|
|
998
1000
|
|
|
999
1001
|
/**
|
|
1000
|
-
* Insert multiple
|
|
1001
|
-
*
|
|
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
|
|
1004
|
-
* @returns Promise resolving to the number of
|
|
1005
|
+
* @param spans - Array of span data to insert
|
|
1006
|
+
* @returns Promise resolving to the number of spans inserted
|
|
1005
1007
|
*/
|
|
1006
|
-
async
|
|
1008
|
+
async insertSpans(spans: InsertSpanOptions[]): Promise<number> {
|
|
1007
1009
|
try {
|
|
1008
|
-
if (
|
|
1010
|
+
if (spans.length === 0) {
|
|
1009
1011
|
return 0
|
|
1010
1012
|
}
|
|
1011
1013
|
await this.start()
|
|
1012
|
-
const
|
|
1013
|
-
const result = await this.
|
|
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.
|
|
1018
|
+
this.#logger?.error(error, 'Error in Adapter.insertSpans()')
|
|
1017
1019
|
throw error
|
|
1018
1020
|
}
|
|
1019
1021
|
}
|
|
1020
1022
|
|
|
1021
1023
|
/**
|
|
1022
|
-
* Get
|
|
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,
|
|
1026
|
-
* @returns Promise resolving to
|
|
1026
|
+
* @param options - Query options including jobId/stepId, filters, and sort
|
|
1027
|
+
* @returns Promise resolving to spans result
|
|
1027
1028
|
*/
|
|
1028
|
-
async
|
|
1029
|
+
async getSpans(options: GetSpansOptions): Promise<GetSpansResult> {
|
|
1029
1030
|
try {
|
|
1030
1031
|
await this.start()
|
|
1031
|
-
const parsedOptions =
|
|
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.
|
|
1037
|
-
return
|
|
1037
|
+
const result = await this._getSpans(parsedOptions)
|
|
1038
|
+
return GetSpansResultSchema.parse(result)
|
|
1038
1039
|
} catch (error) {
|
|
1039
|
-
this.#logger?.error(error, 'Error in Adapter.
|
|
1040
|
+
this.#logger?.error(error, 'Error in Adapter.getSpans()')
|
|
1040
1041
|
throw error
|
|
1041
1042
|
}
|
|
1042
1043
|
}
|
|
1043
1044
|
|
|
1044
1045
|
/**
|
|
1045
|
-
* Delete all
|
|
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
|
|
1049
|
+
* @returns Promise resolving to the number of spans deleted
|
|
1050
1050
|
*/
|
|
1051
|
-
async
|
|
1051
|
+
async deleteSpans(options: DeleteSpansOptions): Promise<number> {
|
|
1052
1052
|
try {
|
|
1053
1053
|
await this.start()
|
|
1054
|
-
const parsedOptions =
|
|
1055
|
-
const result = await this.
|
|
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.
|
|
1058
|
+
this.#logger?.error(error, 'Error in Adapter.deleteSpans()')
|
|
1059
1059
|
throw error
|
|
1060
1060
|
}
|
|
1061
1061
|
}
|
|
1062
1062
|
|
|
1063
1063
|
// ============================================================================
|
|
1064
|
-
// Private
|
|
1064
|
+
// Private Span Methods (to be implemented by adapters)
|
|
1065
1065
|
// ============================================================================
|
|
1066
1066
|
|
|
1067
1067
|
/**
|
|
1068
|
-
* Internal method to insert multiple
|
|
1068
|
+
* Internal method to insert multiple span records in a single batch.
|
|
1069
1069
|
*
|
|
1070
|
-
* @param
|
|
1071
|
-
* @returns Promise resolving to the number of
|
|
1070
|
+
* @param spans - Array of validated span data
|
|
1071
|
+
* @returns Promise resolving to the number of spans inserted
|
|
1072
1072
|
*/
|
|
1073
|
-
protected abstract
|
|
1073
|
+
protected abstract _insertSpans(spans: InsertSpanOptions[]): Promise<number>
|
|
1074
1074
|
|
|
1075
1075
|
/**
|
|
1076
|
-
* Internal method to get
|
|
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
|
|
1079
|
+
* @returns Promise resolving to spans result
|
|
1080
1080
|
*/
|
|
1081
|
-
protected abstract
|
|
1081
|
+
protected abstract _getSpans(options: GetSpansOptions): Promise<GetSpansResult>
|
|
1082
1082
|
|
|
1083
1083
|
/**
|
|
1084
|
-
* Internal method to delete all
|
|
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
|
|
1087
|
+
* @returns Promise resolving to the number of spans deleted
|
|
1088
1088
|
*/
|
|
1089
|
-
protected abstract
|
|
1089
|
+
protected abstract _deleteSpans(options: DeleteSpansOptions): Promise<number>
|
|
1090
1090
|
|
|
1091
1091
|
// ============================================================================
|
|
1092
1092
|
// Protected Abstract Methods (to be implemented by adapters)
|