@taskcast/server 0.3.0 → 1.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.
@@ -0,0 +1,143 @@
1
+ import { z } from '@hono/zod-openapi';
2
+ // ─── Enums ──────────────────────────────────────────────────────────────────
3
+ export const TaskStatusSchema = z.enum([
4
+ 'pending',
5
+ 'assigned',
6
+ 'running',
7
+ 'paused',
8
+ 'blocked',
9
+ 'completed',
10
+ 'failed',
11
+ 'timeout',
12
+ 'cancelled',
13
+ ]);
14
+ export const LevelSchema = z.enum(['debug', 'info', 'warn', 'error']);
15
+ export const SeriesModeSchema = z.enum(['keep-all', 'accumulate', 'latest']);
16
+ export const AssignModeSchema = z.enum(['external', 'pull', 'ws-offer', 'ws-race']);
17
+ export const DisconnectPolicySchema = z.enum(['reassign', 'mark', 'fail']);
18
+ // ─── Response Schemas ───────────────────────────────────────────────────────
19
+ export const TaskErrorSchema = z
20
+ .object({
21
+ code: z.string().optional(),
22
+ message: z.string(),
23
+ details: z.record(z.unknown()).optional(),
24
+ })
25
+ .openapi('TaskError');
26
+ export const TaskSchema = z
27
+ .object({
28
+ id: z.string(),
29
+ type: z.string().optional(),
30
+ status: TaskStatusSchema,
31
+ params: z.record(z.unknown()).optional(),
32
+ result: z.record(z.unknown()).optional(),
33
+ error: TaskErrorSchema.optional(),
34
+ metadata: z.record(z.unknown()).optional(),
35
+ createdAt: z.number(),
36
+ updatedAt: z.number(),
37
+ completedAt: z.number().optional(),
38
+ ttl: z.number().int().positive().optional(),
39
+ tags: z.array(z.string()).optional(),
40
+ assignMode: AssignModeSchema.optional(),
41
+ cost: z.number().int().positive().optional(),
42
+ assignedWorker: z.string().optional(),
43
+ disconnectPolicy: DisconnectPolicySchema.optional(),
44
+ })
45
+ .openapi('Task');
46
+ export const TaskEventSchema = z
47
+ .object({
48
+ id: z.string(),
49
+ taskId: z.string(),
50
+ index: z.number().int(),
51
+ timestamp: z.number(),
52
+ type: z.string(),
53
+ level: LevelSchema,
54
+ data: z.unknown(),
55
+ seriesId: z.string().optional(),
56
+ seriesMode: SeriesModeSchema.optional(),
57
+ seriesAccField: z.string().optional(),
58
+ })
59
+ .openapi('TaskEvent');
60
+ export const WorkerSchema = z
61
+ .object({
62
+ id: z.string(),
63
+ status: z.enum(['idle', 'busy', 'draining', 'offline']),
64
+ matchRule: z.object({
65
+ taskTypes: z.array(z.string()).optional(),
66
+ tags: z
67
+ .object({
68
+ all: z.array(z.string()).optional(),
69
+ any: z.array(z.string()).optional(),
70
+ none: z.array(z.string()).optional(),
71
+ })
72
+ .optional(),
73
+ }),
74
+ capacity: z.number().int(),
75
+ usedSlots: z.number().int(),
76
+ weight: z.number(),
77
+ connectionMode: z.enum(['pull', 'websocket']),
78
+ connectedAt: z.number(),
79
+ lastHeartbeatAt: z.number(),
80
+ metadata: z.record(z.unknown()).optional(),
81
+ })
82
+ .openapi('Worker');
83
+ export const ErrorSchema = z
84
+ .object({
85
+ error: z.string(),
86
+ })
87
+ .openapi('Error');
88
+ // ─── Request Body Schemas ───────────────────────────────────────────────────
89
+ export const CreateTaskSchema = z
90
+ .object({
91
+ id: z.string().optional(),
92
+ type: z.string().optional(),
93
+ params: z.record(z.unknown()).optional(),
94
+ metadata: z.record(z.unknown()).optional(),
95
+ ttl: z.number().int().positive().optional(),
96
+ webhooks: z.array(z.unknown()).optional(),
97
+ cleanup: z.object({ rules: z.array(z.unknown()) }).optional(),
98
+ tags: z.array(z.string()).optional(),
99
+ assignMode: AssignModeSchema.optional(),
100
+ cost: z.number().int().positive().optional(),
101
+ disconnectPolicy: DisconnectPolicySchema.optional(),
102
+ authConfig: z.record(z.unknown()).optional(),
103
+ })
104
+ .openapi('CreateTaskInput');
105
+ export const TransitionSchema = z
106
+ .object({
107
+ status: TaskStatusSchema,
108
+ result: z.record(z.unknown()).optional(),
109
+ error: z
110
+ .object({
111
+ code: z.string().optional(),
112
+ message: z.string(),
113
+ details: z.record(z.unknown()).optional(),
114
+ })
115
+ .optional(),
116
+ reason: z.string().optional(),
117
+ ttl: z.number().int().positive().optional(),
118
+ resumeAfterMs: z.number().int().positive().optional(),
119
+ blockedRequest: z.object({ type: z.string(), data: z.unknown() }).optional(),
120
+ })
121
+ .openapi('TransitionInput');
122
+ export const PublishEventSchema = z
123
+ .object({
124
+ type: z.string(),
125
+ level: LevelSchema,
126
+ data: z.unknown(),
127
+ seriesId: z.string().optional(),
128
+ seriesMode: SeriesModeSchema.optional(),
129
+ seriesAccField: z.string().optional(),
130
+ })
131
+ .openapi('PublishEventInput');
132
+ export const DeclineSchema = z
133
+ .object({
134
+ workerId: z.string(),
135
+ blacklist: z.boolean().optional(),
136
+ })
137
+ .openapi('DeclineInput');
138
+ export const WorkerStatusUpdateSchema = z
139
+ .object({
140
+ status: z.enum(['draining', 'idle']),
141
+ })
142
+ .openapi('WorkerStatusUpdateInput');
143
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export { createTaskcastApp } from './index.js';
2
+ export type { TaskcastServerOptions } from './index.js';
3
+ /**
4
+ * Starts a real HTTP server for integration testing.
5
+ * Requires @hono/node-server as a devDependency.
6
+ * Returns baseUrl and a close function.
7
+ */
8
+ export declare function startTestServer(opts: import('./index.js').TaskcastServerOptions & {
9
+ port?: number;
10
+ }): Promise<{
11
+ baseUrl: string;
12
+ close: () => void;
13
+ }>;
14
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,YAAY,EAAE,qBAAqB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAYjD"}
@@ -0,0 +1,20 @@
1
+ export { createTaskcastApp } from './index.js';
2
+ /**
3
+ * Starts a real HTTP server for integration testing.
4
+ * Requires @hono/node-server as a devDependency.
5
+ * Returns baseUrl and a close function.
6
+ */
7
+ export async function startTestServer(opts) {
8
+ const { serve } = await import('@hono/node-server');
9
+ const { createTaskcastApp } = await import('./index.js');
10
+ const taskcast = createTaskcastApp(opts);
11
+ return new Promise((resolve) => {
12
+ const server = serve({ fetch: taskcast.app.fetch, port: opts.port ?? 0 }, (info) => {
13
+ resolve({
14
+ baseUrl: `http://localhost:${info.port}`,
15
+ close: () => { taskcast.stop(); server.close(); },
16
+ });
17
+ });
18
+ });
19
+ }
20
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAoE;IAEpE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;IACnD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YACjF,OAAO,CAAC;gBACN,OAAO,EAAE,oBAAqB,IAAyB,CAAC,IAAI,EAAE;gBAC9D,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC;aACjD,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taskcast/server",
3
- "version": "0.3.0",
3
+ "version": "1.0.0",
4
4
  "description": "Hono HTTP server — REST + SSE + auth + webhooks for Taskcast.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,16 +22,22 @@
22
22
  ".": {
23
23
  "types": "./dist/index.d.ts",
24
24
  "import": "./dist/index.js"
25
+ },
26
+ "./testing": {
27
+ "types": "./dist/testing.d.ts",
28
+ "import": "./dist/testing.js"
25
29
  }
26
30
  },
27
31
  "publishConfig": {
28
32
  "provenance": true
29
33
  },
30
34
  "dependencies": {
35
+ "@hono/zod-openapi": "^0.19.10",
36
+ "@scalar/hono-api-reference": "^0.10.0",
31
37
  "hono": "^4.6.0",
32
38
  "jose": "^5.9.0",
33
39
  "zod": "^3.23.0",
34
- "@taskcast/core": "0.3.0"
40
+ "@taskcast/core": "1.0.0"
35
41
  },
36
42
  "devDependencies": {
37
43
  "@hono/node-server": "^1.19.9",
@@ -40,7 +46,7 @@
40
46
  "testcontainers": "^10.13.0",
41
47
  "typescript": "^5.7.0",
42
48
  "vitest": "^2.1.0",
43
- "@taskcast/redis": "0.3.0"
49
+ "@taskcast/redis": "1.0.0"
44
50
  },
45
51
  "scripts": {
46
52
  "build": "tsc",