@seenn/node 0.2.2 → 0.2.3
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/types.d.ts +17 -69
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/package.json +12 -10
- package/src/types.ts +46 -85
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Seenn Node.js SDK Types
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from @seenn/types (single source of truth)
|
|
5
|
+
* Plus Node.js SDK specific types
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.npmjs.com/package/@seenn/types
|
|
8
|
+
*/
|
|
9
|
+
export type { JobStatus, ChildProgressMode, StageInfo, QueueInfo, JobResult, JobError, ParentInfo, ChildrenStats, ChildJobSummary, EtaStats, } from '@seenn/types';
|
|
10
|
+
import type { StageInfo, QueueInfo, JobResult, JobError, ChildProgressMode, ParentInfo, ChildrenStats } from '@seenn/types';
|
|
2
11
|
export interface StartJobParams {
|
|
3
12
|
/** Unique job type identifier (e.g., 'video-generation', 'image-processing') */
|
|
4
13
|
jobType: string;
|
|
@@ -55,67 +64,6 @@ export interface FailParams {
|
|
|
55
64
|
/** Whether the job can be retried */
|
|
56
65
|
retryable?: boolean;
|
|
57
66
|
}
|
|
58
|
-
export interface QueueInfo {
|
|
59
|
-
/** Current position in queue (1-based) */
|
|
60
|
-
position: number;
|
|
61
|
-
/** Total items in queue */
|
|
62
|
-
total?: number;
|
|
63
|
-
/** Optional queue name/tier */
|
|
64
|
-
queueName?: string;
|
|
65
|
-
}
|
|
66
|
-
export interface StageInfo {
|
|
67
|
-
/** Current stage name */
|
|
68
|
-
name: string;
|
|
69
|
-
/** Current stage number (1-based) */
|
|
70
|
-
current: number;
|
|
71
|
-
/** Total number of stages */
|
|
72
|
-
total: number;
|
|
73
|
-
/** Optional stage description */
|
|
74
|
-
description?: string;
|
|
75
|
-
}
|
|
76
|
-
export interface JobResult {
|
|
77
|
-
/** Result type identifier */
|
|
78
|
-
type?: string;
|
|
79
|
-
/** Result URL (e.g., generated video URL) */
|
|
80
|
-
url?: string;
|
|
81
|
-
/** Additional result data */
|
|
82
|
-
data?: Record<string, unknown>;
|
|
83
|
-
}
|
|
84
|
-
export interface JobError {
|
|
85
|
-
/** Error code */
|
|
86
|
-
code: string;
|
|
87
|
-
/** Human-readable error message */
|
|
88
|
-
message: string;
|
|
89
|
-
/** Additional error details */
|
|
90
|
-
details?: Record<string, unknown>;
|
|
91
|
-
}
|
|
92
|
-
/** Summary of a child job */
|
|
93
|
-
export interface ChildJobSummary {
|
|
94
|
-
id: string;
|
|
95
|
-
childIndex: number;
|
|
96
|
-
title: string;
|
|
97
|
-
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
98
|
-
progress: number;
|
|
99
|
-
message?: string;
|
|
100
|
-
result?: JobResult;
|
|
101
|
-
error?: JobError;
|
|
102
|
-
createdAt: string;
|
|
103
|
-
updatedAt: string;
|
|
104
|
-
completedAt?: string;
|
|
105
|
-
}
|
|
106
|
-
/** Parent info included in child job responses */
|
|
107
|
-
export interface ParentInfo {
|
|
108
|
-
parentJobId: string;
|
|
109
|
-
childIndex: number;
|
|
110
|
-
}
|
|
111
|
-
/** Children stats included in parent job responses */
|
|
112
|
-
export interface ChildrenStats {
|
|
113
|
-
total: number;
|
|
114
|
-
completed: number;
|
|
115
|
-
failed: number;
|
|
116
|
-
running: number;
|
|
117
|
-
pending: number;
|
|
118
|
-
}
|
|
119
67
|
/** Parameters for creating a parent job */
|
|
120
68
|
export interface CreateParentParams {
|
|
121
69
|
/** Unique job type identifier */
|
|
@@ -167,11 +115,6 @@ export interface CreateBatchParams {
|
|
|
167
115
|
/** Optional TTL in seconds */
|
|
168
116
|
ttlSeconds?: number;
|
|
169
117
|
}
|
|
170
|
-
/** Parent job with all its children */
|
|
171
|
-
export interface ParentWithChildren {
|
|
172
|
-
parent: JobResponse;
|
|
173
|
-
children: ChildJobSummary[];
|
|
174
|
-
}
|
|
175
118
|
export interface JobResponse {
|
|
176
119
|
id: string;
|
|
177
120
|
appId: string;
|
|
@@ -206,8 +149,13 @@ export interface JobResponse {
|
|
|
206
149
|
/** Child progress mode (if this is a parent job) */
|
|
207
150
|
childProgressMode?: ChildProgressMode;
|
|
208
151
|
}
|
|
209
|
-
/**
|
|
210
|
-
export interface
|
|
152
|
+
/** Parent job with all its children (server response) */
|
|
153
|
+
export interface ParentWithChildren {
|
|
154
|
+
parent: JobResponse;
|
|
155
|
+
children: import('@seenn/types').ChildJobSummary[];
|
|
156
|
+
}
|
|
157
|
+
/** Extended ETA statistics for a workflow */
|
|
158
|
+
export interface EtaStatsExtended {
|
|
211
159
|
/** ETA key (workflowId or jobType) */
|
|
212
160
|
etaKey: string;
|
|
213
161
|
/** Number of completed jobs in statistics */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seenn/node",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Seenn Node.js Backend SDK - Open source job state transport for real-time progress tracking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,7 +17,17 @@
|
|
|
17
17
|
"README.md",
|
|
18
18
|
"LICENSE"
|
|
19
19
|
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"dev": "tsc --watch",
|
|
23
|
+
"lint": "tsc --noEmit",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"prepublishOnly": "pnpm build"
|
|
28
|
+
},
|
|
20
29
|
"dependencies": {
|
|
30
|
+
"@seenn/types": "0.1.0",
|
|
21
31
|
"ulid": "^2.3.0"
|
|
22
32
|
},
|
|
23
33
|
"devDependencies": {
|
|
@@ -53,13 +63,5 @@
|
|
|
53
63
|
},
|
|
54
64
|
"engines": {
|
|
55
65
|
"node": ">=18.0.0"
|
|
56
|
-
},
|
|
57
|
-
"scripts": {
|
|
58
|
-
"build": "tsc",
|
|
59
|
-
"dev": "tsc --watch",
|
|
60
|
-
"lint": "tsc --noEmit",
|
|
61
|
-
"typecheck": "tsc --noEmit",
|
|
62
|
-
"test": "vitest run",
|
|
63
|
-
"test:watch": "vitest"
|
|
64
66
|
}
|
|
65
|
-
}
|
|
67
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -1,7 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Seenn Node.js SDK Types
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from @seenn/types (single source of truth)
|
|
5
|
+
* Plus Node.js SDK specific types
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.npmjs.com/package/@seenn/types
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// Re-export shared types from @seenn/types
|
|
11
|
+
export type {
|
|
12
|
+
// Core Types
|
|
13
|
+
JobStatus,
|
|
14
|
+
ChildProgressMode,
|
|
15
|
+
StageInfo,
|
|
16
|
+
QueueInfo,
|
|
17
|
+
JobResult,
|
|
18
|
+
JobError,
|
|
19
|
+
|
|
20
|
+
// Parent-Child Types
|
|
21
|
+
ParentInfo,
|
|
22
|
+
ChildrenStats,
|
|
23
|
+
ChildJobSummary,
|
|
24
|
+
|
|
25
|
+
// ETA Types (basic)
|
|
26
|
+
EtaStats,
|
|
27
|
+
} from '@seenn/types';
|
|
28
|
+
|
|
29
|
+
// ============================================
|
|
30
|
+
// Node.js SDK Specific Types
|
|
31
|
+
// ============================================
|
|
32
|
+
|
|
33
|
+
import type { StageInfo, QueueInfo, JobResult, JobError, ChildProgressMode, ParentInfo, ChildrenStats } from '@seenn/types';
|
|
34
|
+
|
|
35
|
+
// Job Parameters (server-side)
|
|
5
36
|
|
|
6
37
|
export interface StartJobParams {
|
|
7
38
|
/** Unique job type identifier (e.g., 'video-generation', 'image-processing') */
|
|
@@ -63,77 +94,7 @@ export interface FailParams {
|
|
|
63
94
|
retryable?: boolean;
|
|
64
95
|
}
|
|
65
96
|
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
export interface QueueInfo {
|
|
69
|
-
/** Current position in queue (1-based) */
|
|
70
|
-
position: number;
|
|
71
|
-
/** Total items in queue */
|
|
72
|
-
total?: number;
|
|
73
|
-
/** Optional queue name/tier */
|
|
74
|
-
queueName?: string;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface StageInfo {
|
|
78
|
-
/** Current stage name */
|
|
79
|
-
name: string;
|
|
80
|
-
/** Current stage number (1-based) */
|
|
81
|
-
current: number;
|
|
82
|
-
/** Total number of stages */
|
|
83
|
-
total: number;
|
|
84
|
-
/** Optional stage description */
|
|
85
|
-
description?: string;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export interface JobResult {
|
|
89
|
-
/** Result type identifier */
|
|
90
|
-
type?: string;
|
|
91
|
-
/** Result URL (e.g., generated video URL) */
|
|
92
|
-
url?: string;
|
|
93
|
-
/** Additional result data */
|
|
94
|
-
data?: Record<string, unknown>;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export interface JobError {
|
|
98
|
-
/** Error code */
|
|
99
|
-
code: string;
|
|
100
|
-
/** Human-readable error message */
|
|
101
|
-
message: string;
|
|
102
|
-
/** Additional error details */
|
|
103
|
-
details?: Record<string, unknown>;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// Parent-child types
|
|
107
|
-
|
|
108
|
-
/** Summary of a child job */
|
|
109
|
-
export interface ChildJobSummary {
|
|
110
|
-
id: string;
|
|
111
|
-
childIndex: number;
|
|
112
|
-
title: string;
|
|
113
|
-
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
114
|
-
progress: number;
|
|
115
|
-
message?: string;
|
|
116
|
-
result?: JobResult;
|
|
117
|
-
error?: JobError;
|
|
118
|
-
createdAt: string;
|
|
119
|
-
updatedAt: string;
|
|
120
|
-
completedAt?: string;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/** Parent info included in child job responses */
|
|
124
|
-
export interface ParentInfo {
|
|
125
|
-
parentJobId: string;
|
|
126
|
-
childIndex: number;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/** Children stats included in parent job responses */
|
|
130
|
-
export interface ChildrenStats {
|
|
131
|
-
total: number;
|
|
132
|
-
completed: number;
|
|
133
|
-
failed: number;
|
|
134
|
-
running: number;
|
|
135
|
-
pending: number;
|
|
136
|
-
}
|
|
97
|
+
// Parent-child specific types (server-side)
|
|
137
98
|
|
|
138
99
|
/** Parameters for creating a parent job */
|
|
139
100
|
export interface CreateParentParams {
|
|
@@ -189,13 +150,7 @@ export interface CreateBatchParams {
|
|
|
189
150
|
ttlSeconds?: number;
|
|
190
151
|
}
|
|
191
152
|
|
|
192
|
-
|
|
193
|
-
export interface ParentWithChildren {
|
|
194
|
-
parent: JobResponse;
|
|
195
|
-
children: ChildJobSummary[];
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// API Response Types
|
|
153
|
+
// API Response Types (server-side format)
|
|
199
154
|
|
|
200
155
|
export interface JobResponse {
|
|
201
156
|
id: string;
|
|
@@ -232,10 +187,16 @@ export interface JobResponse {
|
|
|
232
187
|
childProgressMode?: ChildProgressMode;
|
|
233
188
|
}
|
|
234
189
|
|
|
235
|
-
|
|
190
|
+
/** Parent job with all its children (server response) */
|
|
191
|
+
export interface ParentWithChildren {
|
|
192
|
+
parent: JobResponse;
|
|
193
|
+
children: import('@seenn/types').ChildJobSummary[];
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// ETA Types (server-side extended)
|
|
236
197
|
|
|
237
|
-
/** ETA statistics for a workflow */
|
|
238
|
-
export interface
|
|
198
|
+
/** Extended ETA statistics for a workflow */
|
|
199
|
+
export interface EtaStatsExtended {
|
|
239
200
|
/** ETA key (workflowId or jobType) */
|
|
240
201
|
etaKey: string;
|
|
241
202
|
/** Number of completed jobs in statistics */
|