@stoneforge/shared-routes 1.7.0 → 1.9.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/README.md +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tasks.d.ts +10 -0
- package/dist/tasks.d.ts.map +1 -0
- package/dist/tasks.js +125 -0
- package/dist/tasks.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -52,6 +52,7 @@ export default app;
|
|
|
52
52
|
| `createDocumentRoutes(services)` | Document versioning and content |
|
|
53
53
|
| `createInboxRoutes(services)` | Per-entity notification inbox |
|
|
54
54
|
| `createPlanRoutes(services)` | Plan creation and status tracking |
|
|
55
|
+
| `createTaskRoutes(services)` | Task CRUD and assignment |
|
|
55
56
|
|
|
56
57
|
All factories accept a `CollaborateServices` (or `CollaborateServicesWithBroadcast`) object that provides the backing `QuarryAPI` and optional broadcast function.
|
|
57
58
|
|
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export { createLibraryRoutes } from './libraries.js';
|
|
|
12
12
|
export { createDocumentRoutes } from './documents.js';
|
|
13
13
|
export { createInboxRoutes } from './inbox.js';
|
|
14
14
|
export { createPlanRoutes } from './plans.js';
|
|
15
|
+
export { createTaskRoutes } from './tasks.js';
|
|
15
16
|
export * from './ws/index.js';
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export { createLibraryRoutes } from './libraries.js';
|
|
|
12
12
|
export { createDocumentRoutes } from './documents.js';
|
|
13
13
|
export { createInboxRoutes } from './inbox.js';
|
|
14
14
|
export { createPlanRoutes } from './plans.js';
|
|
15
|
+
export { createTaskRoutes } from './tasks.js';
|
|
15
16
|
// WebSocket types, broadcaster, and handler utilities
|
|
16
17
|
export * from './ws/index.js';
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,sDAAsD;AACtD,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,sDAAsD;AACtD,cAAc,eAAe,CAAC"}
|
package/dist/tasks.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Bulk Routes Factory
|
|
3
|
+
*
|
|
4
|
+
* Bulk update and bulk delete endpoints for tasks.
|
|
5
|
+
* These are shared across quarry and smithy servers to avoid duplication.
|
|
6
|
+
*/
|
|
7
|
+
import { Hono } from 'hono';
|
|
8
|
+
import type { CollaborateServices } from './types.js';
|
|
9
|
+
export declare function createTaskRoutes(services: CollaborateServices): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
10
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,8EAoI7D"}
|
package/dist/tasks.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Bulk Routes Factory
|
|
3
|
+
*
|
|
4
|
+
* Bulk update and bulk delete endpoints for tasks.
|
|
5
|
+
* These are shared across quarry and smithy servers to avoid duplication.
|
|
6
|
+
*/
|
|
7
|
+
import { Hono } from 'hono';
|
|
8
|
+
export function createTaskRoutes(services) {
|
|
9
|
+
const { api } = services;
|
|
10
|
+
const app = new Hono();
|
|
11
|
+
/**
|
|
12
|
+
* PATCH /api/tasks/bulk
|
|
13
|
+
* Bulk update tasks by IDs.
|
|
14
|
+
*
|
|
15
|
+
* IMPORTANT: This route MUST be registered before any PATCH /api/tasks/:id
|
|
16
|
+
* route, otherwise "bulk" gets matched as a task ID parameter.
|
|
17
|
+
*
|
|
18
|
+
* Body:
|
|
19
|
+
* - ids: string[] — Non-empty array of task IDs to update
|
|
20
|
+
* - updates: object — Fields to update (whitelisted)
|
|
21
|
+
*/
|
|
22
|
+
app.patch('/api/tasks/bulk', async (c) => {
|
|
23
|
+
try {
|
|
24
|
+
const body = await c.req.json();
|
|
25
|
+
// Validate request structure
|
|
26
|
+
if (!body.ids || !Array.isArray(body.ids) || body.ids.length === 0) {
|
|
27
|
+
return c.json({ error: { code: 'VALIDATION_ERROR', message: 'ids must be a non-empty array' } }, 400);
|
|
28
|
+
}
|
|
29
|
+
if (!body.updates || typeof body.updates !== 'object') {
|
|
30
|
+
return c.json({ error: { code: 'VALIDATION_ERROR', message: 'updates must be an object' } }, 400);
|
|
31
|
+
}
|
|
32
|
+
const ids = body.ids;
|
|
33
|
+
// Extract allowed updates
|
|
34
|
+
const updates = {};
|
|
35
|
+
const allowedFields = [
|
|
36
|
+
'status', 'priority', 'complexity', 'taskType',
|
|
37
|
+
'assignee', 'owner', 'deadline', 'scheduledFor', 'tags',
|
|
38
|
+
];
|
|
39
|
+
for (const field of allowedFields) {
|
|
40
|
+
if (body.updates[field] !== undefined) {
|
|
41
|
+
updates[field] = body.updates[field];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (Object.keys(updates).length === 0) {
|
|
45
|
+
return c.json({ error: { code: 'VALIDATION_ERROR', message: 'No valid fields to update' } }, 400);
|
|
46
|
+
}
|
|
47
|
+
// Update each task
|
|
48
|
+
const results = [];
|
|
49
|
+
for (const id of ids) {
|
|
50
|
+
try {
|
|
51
|
+
const existing = await api.get(id);
|
|
52
|
+
if (!existing || existing.type !== 'task') {
|
|
53
|
+
results.push({ id, success: false, error: 'Task not found' });
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
await api.update(id, updates);
|
|
57
|
+
results.push({ id, success: true });
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
results.push({ id, success: false, error: error.message });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const successCount = results.filter((r) => r.success).length;
|
|
64
|
+
const failureCount = results.filter((r) => !r.success).length;
|
|
65
|
+
return c.json({
|
|
66
|
+
updated: successCount,
|
|
67
|
+
failed: failureCount,
|
|
68
|
+
results,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error('[stoneforge] Failed to bulk update tasks:', error);
|
|
73
|
+
return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to bulk update tasks' } }, 500);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* POST /api/tasks/bulk-delete
|
|
78
|
+
* Bulk delete tasks by IDs.
|
|
79
|
+
*
|
|
80
|
+
* Uses POST with a body for better proxy compatibility
|
|
81
|
+
* (some proxies strip bodies from DELETE requests).
|
|
82
|
+
*
|
|
83
|
+
* Body:
|
|
84
|
+
* - ids: string[] — Non-empty array of task IDs to delete
|
|
85
|
+
*/
|
|
86
|
+
app.post('/api/tasks/bulk-delete', async (c) => {
|
|
87
|
+
try {
|
|
88
|
+
const body = await c.req.json();
|
|
89
|
+
// Validate request structure
|
|
90
|
+
if (!body.ids || !Array.isArray(body.ids) || body.ids.length === 0) {
|
|
91
|
+
return c.json({ error: { code: 'VALIDATION_ERROR', message: 'ids must be a non-empty array' } }, 400);
|
|
92
|
+
}
|
|
93
|
+
const ids = body.ids;
|
|
94
|
+
// Delete each task
|
|
95
|
+
const results = [];
|
|
96
|
+
for (const id of ids) {
|
|
97
|
+
try {
|
|
98
|
+
const existing = await api.get(id);
|
|
99
|
+
if (!existing || existing.type !== 'task') {
|
|
100
|
+
results.push({ id, success: false, error: 'Task not found' });
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
await api.delete(id);
|
|
104
|
+
results.push({ id, success: true });
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
results.push({ id, success: false, error: error.message });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const successCount = results.filter((r) => r.success).length;
|
|
111
|
+
const failureCount = results.filter((r) => !r.success).length;
|
|
112
|
+
return c.json({
|
|
113
|
+
deleted: successCount,
|
|
114
|
+
failed: failureCount,
|
|
115
|
+
results,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error('[stoneforge] Failed to bulk delete tasks:', error);
|
|
120
|
+
return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to bulk delete tasks' } }, 500);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
return app;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stoneforge/shared-routes",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared route factories for Stoneforge servers",
|
|
6
6
|
"repository": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"hono": "^4.7.0",
|
|
32
|
-
"@stoneforge/core": "1.
|
|
33
|
-
"@stoneforge/storage": "1.
|
|
32
|
+
"@stoneforge/core": "1.9.0",
|
|
33
|
+
"@stoneforge/storage": "1.9.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/bun": "latest",
|