@cyberismo/backend 0.0.21 → 0.0.23
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/app.d.ts +5 -2
- package/dist/app.js +25 -10
- package/dist/app.js.map +1 -1
- package/dist/auth/index.d.ts +16 -0
- package/dist/auth/index.js +15 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/keycloak.d.ts +27 -0
- package/dist/auth/keycloak.js +81 -0
- package/dist/auth/keycloak.js.map +1 -0
- package/dist/auth/mock.d.ts +23 -0
- package/dist/auth/mock.js +28 -0
- package/dist/auth/mock.js.map +1 -0
- package/dist/auth/types.d.ts +16 -0
- package/dist/auth/types.js +14 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/domain/auth/index.d.ts +14 -0
- package/dist/domain/auth/index.js +30 -0
- package/dist/domain/auth/index.js.map +1 -0
- package/dist/domain/calculations/index.js +3 -1
- package/dist/domain/calculations/index.js.map +1 -1
- package/dist/domain/calculations/service.js +13 -11
- package/dist/domain/calculations/service.js.map +1 -1
- package/dist/domain/cardTypes/index.js +5 -3
- package/dist/domain/cardTypes/index.js.map +1 -1
- package/dist/domain/cardTypes/service.js +24 -72
- package/dist/domain/cardTypes/service.js.map +1 -1
- package/dist/domain/cards/index.js +124 -25
- package/dist/domain/cards/index.js.map +1 -1
- package/dist/domain/cards/lib.js +92 -93
- package/dist/domain/cards/lib.js.map +1 -1
- package/dist/domain/cards/presence.d.ts +50 -0
- package/dist/domain/cards/presence.js +93 -0
- package/dist/domain/cards/presence.js.map +1 -0
- package/dist/domain/cards/schema.d.ts +47 -0
- package/dist/domain/cards/schema.js +37 -0
- package/dist/domain/cards/schema.js.map +1 -0
- package/dist/domain/cards/service.d.ts +7 -3
- package/dist/domain/cards/service.js +81 -91
- package/dist/domain/cards/service.js.map +1 -1
- package/dist/domain/connectors/index.d.ts +15 -0
- package/dist/domain/connectors/index.js +37 -0
- package/dist/domain/connectors/index.js.map +1 -0
- package/dist/domain/connectors/service.d.ts +23 -0
- package/dist/domain/connectors/service.js +46 -0
- package/dist/domain/connectors/service.js.map +1 -0
- package/dist/domain/fieldTypes/index.js +4 -2
- package/dist/domain/fieldTypes/index.js.map +1 -1
- package/dist/domain/graphModels/index.js +3 -1
- package/dist/domain/graphModels/index.js.map +1 -1
- package/dist/domain/graphViews/index.js +3 -1
- package/dist/domain/graphViews/index.js.map +1 -1
- package/dist/domain/labels/index.js +4 -2
- package/dist/domain/labels/index.js.map +1 -1
- package/dist/domain/labels/service.d.ts +1 -1
- package/dist/domain/labels/service.js +2 -2
- package/dist/domain/labels/service.js.map +1 -1
- package/dist/domain/linkTypes/index.js +4 -2
- package/dist/domain/linkTypes/index.js.map +1 -1
- package/dist/domain/logicPrograms/index.js +3 -1
- package/dist/domain/logicPrograms/index.js.map +1 -1
- package/dist/domain/mcp/index.d.ts +15 -0
- package/dist/domain/mcp/index.js +127 -0
- package/dist/domain/mcp/index.js.map +1 -0
- package/dist/domain/project/index.js +19 -6
- package/dist/domain/project/index.js.map +1 -1
- package/dist/domain/project/schema.d.ts +3 -0
- package/dist/domain/project/schema.js +8 -0
- package/dist/domain/project/schema.js.map +1 -1
- package/dist/domain/project/service.d.ts +3 -1
- package/dist/domain/project/service.js +24 -14
- package/dist/domain/project/service.js.map +1 -1
- package/dist/domain/reports/index.js +3 -1
- package/dist/domain/reports/index.js.map +1 -1
- package/dist/domain/resources/index.js +6 -4
- package/dist/domain/resources/index.js.map +1 -1
- package/dist/domain/resources/service.js +66 -64
- package/dist/domain/resources/service.js.map +1 -1
- package/dist/domain/templates/index.js +5 -3
- package/dist/domain/templates/index.js.map +1 -1
- package/dist/domain/tree/index.js +3 -1
- package/dist/domain/tree/index.js.map +1 -1
- package/dist/domain/tree/service.js +0 -1
- package/dist/domain/tree/service.js.map +1 -1
- package/dist/domain/workflows/index.js +3 -1
- package/dist/domain/workflows/index.js.map +1 -1
- package/dist/export.d.ts +6 -5
- package/dist/export.js +16 -13
- package/dist/export.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/main.js +29 -2
- package/dist/main.js.map +1 -1
- package/dist/middleware/auth.d.ts +40 -0
- package/dist/middleware/auth.js +68 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/commandManager.d.ts +2 -2
- package/dist/middleware/commandManager.js +9 -11
- package/dist/middleware/commandManager.js.map +1 -1
- package/dist/public/THIRD-PARTY.txt +1212 -605
- package/dist/public/assets/index-Cdn_jRWy.js +720 -0
- package/dist/public/assets/index-ypsafPwV.css +1 -0
- package/dist/public/config.json +1 -0
- package/dist/public/images/broken_link.svg +7 -0
- package/dist/public/index.html +2 -2
- package/dist/types.d.ts +25 -0
- package/dist/types.js +13 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -7
- package/src/app.ts +37 -15
- package/src/auth/index.ts +17 -0
- package/src/auth/keycloak.ts +109 -0
- package/src/auth/mock.ts +38 -0
- package/src/auth/types.ts +18 -0
- package/src/domain/auth/index.ts +35 -0
- package/src/domain/calculations/index.ts +13 -6
- package/src/domain/calculations/service.ts +16 -14
- package/src/domain/cardTypes/index.ts +24 -16
- package/src/domain/cardTypes/service.ts +41 -95
- package/src/domain/cards/index.ts +258 -90
- package/src/domain/cards/lib.ts +102 -100
- package/src/domain/cards/presence.ts +124 -0
- package/src/domain/cards/schema.ts +41 -0
- package/src/domain/cards/service.ts +138 -93
- package/src/domain/connectors/index.ts +39 -0
- package/src/domain/connectors/service.ts +67 -0
- package/src/domain/fieldTypes/index.ts +23 -16
- package/src/domain/graphModels/index.ts +13 -6
- package/src/domain/graphViews/index.ts +13 -6
- package/src/domain/labels/index.ts +5 -2
- package/src/domain/labels/service.ts +2 -2
- package/src/domain/linkTypes/index.ts +14 -7
- package/src/domain/logicPrograms/index.ts +3 -0
- package/src/domain/mcp/index.ts +159 -0
- package/src/domain/project/index.ts +40 -9
- package/src/domain/project/schema.ts +9 -0
- package/src/domain/project/service.ts +37 -17
- package/src/domain/reports/index.ts +13 -6
- package/src/domain/resources/index.ts +6 -1
- package/src/domain/resources/service.ts +102 -97
- package/src/domain/templates/index.ts +31 -19
- package/src/domain/tree/index.ts +3 -1
- package/src/domain/tree/service.ts +0 -1
- package/src/domain/workflows/index.ts +13 -6
- package/src/export.ts +17 -15
- package/src/index.ts +18 -7
- package/src/main.ts +44 -2
- package/src/middleware/auth.ts +90 -0
- package/src/middleware/commandManager.ts +11 -14
- package/src/types.ts +27 -0
- package/dist/public/assets/index-CRSBseQM.css +0 -1
- package/dist/public/assets/index-Ca10XaMv.js +0 -164156
|
@@ -34,87 +34,39 @@ function getCurrentGroup(alwaysVisibleFields, optionallyVisibleFields, fieldName
|
|
|
34
34
|
*/
|
|
35
35
|
export async function updateFieldVisibility(commands, cardTypeName, body) {
|
|
36
36
|
const { fieldName, group: targetGroup, index: targetIndex } = body;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const currentGroup = getCurrentGroup(alwaysVisibleFields, optionallyVisibleFields, fieldName);
|
|
51
|
-
// If same group, just handle reordering
|
|
52
|
-
if (currentGroup === targetGroup) {
|
|
53
|
-
if (targetGroup === 'hidden') {
|
|
54
|
-
// Nothing to reorder in hidden group
|
|
55
|
-
return;
|
|
37
|
+
await commands.atomic(async () => {
|
|
38
|
+
// Read is now inside the write lock
|
|
39
|
+
const cardType = await commands.showCmd.showResource(cardTypeName, 'cardTypes');
|
|
40
|
+
if (!cardType) {
|
|
41
|
+
throw new Error(`Card type '${cardTypeName}' not found`);
|
|
42
|
+
}
|
|
43
|
+
const customFields = cardType.customFields || [];
|
|
44
|
+
const alwaysVisibleFields = cardType.alwaysVisibleFields || [];
|
|
45
|
+
const optionallyVisibleFields = cardType.optionallyVisibleFields || [];
|
|
46
|
+
// Validate that the field exists in customFields
|
|
47
|
+
const fieldExists = customFields.some((f) => f.name === fieldName);
|
|
48
|
+
if (!fieldExists) {
|
|
49
|
+
throw new Error(`Field '${fieldName}' does not exist in card type '${cardTypeName}'. `);
|
|
56
50
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
name: 'rank',
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
});
|
|
51
|
+
const currentGroup = getCurrentGroup(alwaysVisibleFields, optionallyVisibleFields, fieldName);
|
|
52
|
+
// If same group, just handle reordering
|
|
53
|
+
if (currentGroup === targetGroup) {
|
|
54
|
+
if (targetGroup !== 'hidden' && targetIndex !== undefined) {
|
|
55
|
+
await commands.updateCmd.applyResourceOperation(cardTypeName, { key: groupToKey[targetGroup] }, { name: 'rank', target: fieldName, newIndex: targetIndex });
|
|
56
|
+
}
|
|
57
|
+
return;
|
|
65
58
|
}
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
// Different group - need to remove from old and add to new
|
|
69
|
-
let removedFromOld = false;
|
|
70
|
-
try {
|
|
71
59
|
// Remove from current group (if not hidden)
|
|
72
60
|
if (currentGroup !== 'hidden') {
|
|
73
|
-
await commands.updateCmd.applyResourceOperation(cardTypeName, {
|
|
74
|
-
key: groupToKey[currentGroup],
|
|
75
|
-
}, {
|
|
76
|
-
name: 'remove',
|
|
77
|
-
target: fieldName,
|
|
78
|
-
});
|
|
79
|
-
removedFromOld = true;
|
|
61
|
+
await commands.updateCmd.applyResourceOperation(cardTypeName, { key: groupToKey[currentGroup] }, { name: 'remove', target: fieldName });
|
|
80
62
|
}
|
|
81
63
|
// Add to new group (if not hidden)
|
|
82
64
|
if (targetGroup !== 'hidden') {
|
|
83
|
-
await commands.updateCmd.applyResourceOperation(cardTypeName, {
|
|
84
|
-
key: groupToKey[targetGroup],
|
|
85
|
-
}, {
|
|
86
|
-
name: 'add',
|
|
87
|
-
target: fieldName,
|
|
88
|
-
});
|
|
89
|
-
// Reorder if index specified
|
|
65
|
+
await commands.updateCmd.applyResourceOperation(cardTypeName, { key: groupToKey[targetGroup] }, { name: 'add', target: fieldName });
|
|
90
66
|
if (targetIndex !== undefined) {
|
|
91
|
-
await commands.updateCmd.applyResourceOperation(cardTypeName, {
|
|
92
|
-
key: groupToKey[targetGroup],
|
|
93
|
-
}, {
|
|
94
|
-
name: 'rank',
|
|
95
|
-
target: fieldName,
|
|
96
|
-
newIndex: targetIndex,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
// Attempt rollback if we removed from old group but failed to add to new
|
|
103
|
-
if (removedFromOld && currentGroup !== 'hidden') {
|
|
104
|
-
try {
|
|
105
|
-
await commands.updateCmd.applyResourceOperation(cardTypeName, {
|
|
106
|
-
key: groupToKey[currentGroup],
|
|
107
|
-
}, {
|
|
108
|
-
name: 'add',
|
|
109
|
-
target: fieldName,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
// Rollback failed - log but throw original error
|
|
114
|
-
console.error(`Rollback failed for field '${fieldName}' in card type '${cardTypeName}'`);
|
|
67
|
+
await commands.updateCmd.applyResourceOperation(cardTypeName, { key: groupToKey[targetGroup] }, { name: 'rank', target: fieldName, newIndex: targetIndex });
|
|
115
68
|
}
|
|
116
69
|
}
|
|
117
|
-
|
|
118
|
-
}
|
|
70
|
+
}, `Update field visibility for ${cardTypeName}`);
|
|
119
71
|
}
|
|
120
72
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/cardTypes/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAKF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAwB;IACzD,MAAM,oBAAoB,GACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IACpD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,YAAoB,EACpB,YAAoB;IAEpB,MAAM,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,GAAuD;IACrE,MAAM,EAAE,qBAAqB;IAC7B,QAAQ,EAAE,yBAAyB;CACpC,CAAC;AAEF,SAAS,eAAe,CACtB,mBAA6B,EAC7B,uBAAiC,EACjC,SAAiB;IAEjB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7D,IAAI,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,UAAU,CAAC;IACnE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAwB,EACxB,YAAoB,EACpB,IAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEnE,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/cardTypes/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,15 @@
|
|
|
11
11
|
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
12
12
|
*/
|
|
13
13
|
import { Hono } from 'hono';
|
|
14
|
+
import { streamSSE } from 'hono/streaming';
|
|
14
15
|
import { getCardDetails } from './lib.js';
|
|
15
16
|
import * as cardService from './service.js';
|
|
16
17
|
import { isSSGContext, ssgParams } from 'hono/ssg';
|
|
18
|
+
import { UserRole } from '../../types.js';
|
|
19
|
+
import { presenceStore } from './presence.js';
|
|
20
|
+
import { requireRole } from '../../middleware/auth.js';
|
|
21
|
+
import { zValidator } from '../../middleware/zvalidator.js';
|
|
22
|
+
import { createLinkSchema, removeLinkSchema, updateLinkSchema, } from './schema.js';
|
|
17
23
|
const router = new Hono();
|
|
18
24
|
/**
|
|
19
25
|
* @swagger
|
|
@@ -29,7 +35,7 @@ const router = new Hono();
|
|
|
29
35
|
* 500:
|
|
30
36
|
* description: project_path not set.
|
|
31
37
|
*/
|
|
32
|
-
router.get('/', async (c) => {
|
|
38
|
+
router.get('/', requireRole(UserRole.Reader), async (c) => {
|
|
33
39
|
const commands = c.get('commands');
|
|
34
40
|
try {
|
|
35
41
|
const response = await cardService.getProjectInfo(commands);
|
|
@@ -64,7 +70,7 @@ router.get('/', async (c) => {
|
|
|
64
70
|
* 500:
|
|
65
71
|
* description: project_path not set.
|
|
66
72
|
*/
|
|
67
|
-
router.get('/:key', ssgParams(async (c) => {
|
|
73
|
+
router.get('/:key', requireRole(UserRole.Reader), ssgParams(async (c) => {
|
|
68
74
|
const commands = c.get('commands');
|
|
69
75
|
const opts = c.get('tree');
|
|
70
76
|
const cards = await cardService.findAllCards(commands, opts);
|
|
@@ -121,7 +127,7 @@ router.get('/:key', ssgParams(async (c) => {
|
|
|
121
127
|
* 500:
|
|
122
128
|
* description: project_path not set.
|
|
123
129
|
*/
|
|
124
|
-
router.patch('/:key', async (c) => {
|
|
130
|
+
router.patch('/:key', requireRole(UserRole.Editor), async (c) => {
|
|
125
131
|
const commands = c.get('commands');
|
|
126
132
|
const key = c.req.param('key');
|
|
127
133
|
if (!key) {
|
|
@@ -165,7 +171,7 @@ router.patch('/:key', async (c) => {
|
|
|
165
171
|
* 500:
|
|
166
172
|
* description: project_path not set.
|
|
167
173
|
*/
|
|
168
|
-
router.delete('/:key', async (c) => {
|
|
174
|
+
router.delete('/:key', requireRole(UserRole.Editor), async (c) => {
|
|
169
175
|
const commands = c.get('commands');
|
|
170
176
|
const key = c.req.param('key');
|
|
171
177
|
if (!key) {
|
|
@@ -204,7 +210,7 @@ router.delete('/:key', async (c) => {
|
|
|
204
210
|
* 500:
|
|
205
211
|
* description: project_path not set
|
|
206
212
|
*/
|
|
207
|
-
router.post('/:key', async (c) => {
|
|
213
|
+
router.post('/:key', requireRole(UserRole.Editor), async (c) => {
|
|
208
214
|
const key = c.req.param('key');
|
|
209
215
|
if (!key) {
|
|
210
216
|
return c.text('No search key', 400);
|
|
@@ -254,7 +260,7 @@ router.post('/:key', async (c) => {
|
|
|
254
260
|
* 500:
|
|
255
261
|
* description: Server error
|
|
256
262
|
*/
|
|
257
|
-
router.post('/:key/attachments', async (c) => {
|
|
263
|
+
router.post('/:key/attachments', requireRole(UserRole.Editor), async (c) => {
|
|
258
264
|
const commands = c.get('commands');
|
|
259
265
|
const key = c.req.param('key');
|
|
260
266
|
try {
|
|
@@ -298,7 +304,7 @@ router.post('/:key/attachments', async (c) => {
|
|
|
298
304
|
* 500:
|
|
299
305
|
* description: Server error
|
|
300
306
|
*/
|
|
301
|
-
router.delete('/:key/attachments/:filename', async (c) => {
|
|
307
|
+
router.delete('/:key/attachments/:filename', requireRole(UserRole.Editor), async (c) => {
|
|
302
308
|
const commands = c.get('commands');
|
|
303
309
|
const { key, filename } = c.req.param();
|
|
304
310
|
try {
|
|
@@ -337,7 +343,7 @@ router.delete('/:key/attachments/:filename', async (c) => {
|
|
|
337
343
|
* 500:
|
|
338
344
|
* description: Server error
|
|
339
345
|
*/
|
|
340
|
-
router.post('/:key/attachments/:filename/open', async (c) => {
|
|
346
|
+
router.post('/:key/attachments/:filename/open', requireRole(UserRole.Reader), async (c) => {
|
|
341
347
|
const commands = c.get('commands');
|
|
342
348
|
const { key, filename } = c.req.param();
|
|
343
349
|
try {
|
|
@@ -346,7 +352,9 @@ router.post('/:key/attachments/:filename/open', async (c) => {
|
|
|
346
352
|
}
|
|
347
353
|
catch (error) {
|
|
348
354
|
return c.json({
|
|
349
|
-
error: error instanceof Error
|
|
355
|
+
error: error instanceof Error
|
|
356
|
+
? error.message
|
|
357
|
+
: 'Failed to open attachment',
|
|
350
358
|
}, 500);
|
|
351
359
|
}
|
|
352
360
|
});
|
|
@@ -377,7 +385,7 @@ router.post('/:key/attachments/:filename/open', async (c) => {
|
|
|
377
385
|
* 500:
|
|
378
386
|
* description: Server error
|
|
379
387
|
*/
|
|
380
|
-
router.post('/:key/parse', async (c) => {
|
|
388
|
+
router.post('/:key/parse', requireRole(UserRole.Reader), async (c) => {
|
|
381
389
|
const commands = c.get('commands');
|
|
382
390
|
const key = c.req.param('key');
|
|
383
391
|
const { content } = await c.req.json();
|
|
@@ -425,15 +433,12 @@ router.post('/:key/parse', async (c) => {
|
|
|
425
433
|
* 500:
|
|
426
434
|
* description: Server error
|
|
427
435
|
*/
|
|
428
|
-
router.post('/:key/links', async (c) => {
|
|
436
|
+
router.post('/:key/links', requireRole(UserRole.Editor), zValidator('json', createLinkSchema), async (c) => {
|
|
429
437
|
const commands = c.get('commands');
|
|
430
438
|
const key = c.req.param('key');
|
|
431
|
-
const { toCard, linkType, description } =
|
|
432
|
-
if (!toCard || !linkType) {
|
|
433
|
-
return c.json({ error: 'toCard and linkType are required' }, 400);
|
|
434
|
-
}
|
|
439
|
+
const { toCard, linkType, description, direction } = c.req.valid('json');
|
|
435
440
|
try {
|
|
436
|
-
const result = await cardService.createLink(commands, key, toCard, linkType, description);
|
|
441
|
+
const result = await cardService.createLink(commands, key, toCard, linkType, direction, description);
|
|
437
442
|
return c.json(result);
|
|
438
443
|
}
|
|
439
444
|
catch (error) {
|
|
@@ -473,15 +478,12 @@ router.post('/:key/links', async (c) => {
|
|
|
473
478
|
* 500:
|
|
474
479
|
* description: Server error
|
|
475
480
|
*/
|
|
476
|
-
router.delete('/:key/links', async (c) => {
|
|
481
|
+
router.delete('/:key/links', requireRole(UserRole.Editor), zValidator('json', removeLinkSchema), async (c) => {
|
|
477
482
|
const commands = c.get('commands');
|
|
478
483
|
const key = c.req.param('key');
|
|
479
|
-
const { toCard, linkType, description } =
|
|
480
|
-
if (!toCard || !linkType) {
|
|
481
|
-
return c.json({ error: 'toCard and linkType are required' }, 400);
|
|
482
|
-
}
|
|
484
|
+
const { toCard, linkType, description, direction } = c.req.valid('json');
|
|
483
485
|
try {
|
|
484
|
-
const result = await cardService.removeLink(commands, key, toCard, linkType, description);
|
|
486
|
+
const result = await cardService.removeLink(commands, key, toCard, linkType, direction, description);
|
|
485
487
|
return c.json(result);
|
|
486
488
|
}
|
|
487
489
|
catch (error) {
|
|
@@ -490,6 +492,61 @@ router.delete('/:key/links', async (c) => {
|
|
|
490
492
|
}, 500);
|
|
491
493
|
}
|
|
492
494
|
});
|
|
495
|
+
/**
|
|
496
|
+
* @swagger
|
|
497
|
+
* /api/cards/{key}/links:
|
|
498
|
+
* put:
|
|
499
|
+
* summary: Update a link between cards
|
|
500
|
+
* parameters:
|
|
501
|
+
* - name: key
|
|
502
|
+
* in: path
|
|
503
|
+
* required: true
|
|
504
|
+
* schema:
|
|
505
|
+
* type: string
|
|
506
|
+
* requestBody:
|
|
507
|
+
* content:
|
|
508
|
+
* application/json:
|
|
509
|
+
* schema:
|
|
510
|
+
* type: object
|
|
511
|
+
* properties:
|
|
512
|
+
* toCard:
|
|
513
|
+
* type: string
|
|
514
|
+
* linkType:
|
|
515
|
+
* type: string
|
|
516
|
+
* description:
|
|
517
|
+
* type: string
|
|
518
|
+
* direction:
|
|
519
|
+
* type: string
|
|
520
|
+
* previousToCard:
|
|
521
|
+
* type: string
|
|
522
|
+
* previousLinkType:
|
|
523
|
+
* type: string
|
|
524
|
+
* previousDirection:
|
|
525
|
+
* type: string
|
|
526
|
+
* previousDescription:
|
|
527
|
+
* type: string
|
|
528
|
+
* responses:
|
|
529
|
+
* 200:
|
|
530
|
+
* description: Link updated successfully
|
|
531
|
+
* 400:
|
|
532
|
+
* description: Invalid request
|
|
533
|
+
* 500:
|
|
534
|
+
* description: Server error
|
|
535
|
+
*/
|
|
536
|
+
router.put('/:key/links', requireRole(UserRole.Editor), zValidator('json', updateLinkSchema), async (c) => {
|
|
537
|
+
const commands = c.get('commands');
|
|
538
|
+
const key = c.req.param('key');
|
|
539
|
+
const { toCard, linkType, description, direction, previousToCard, previousLinkType, previousDirection, previousDescription, } = c.req.valid('json');
|
|
540
|
+
try {
|
|
541
|
+
const result = await cardService.updateLink(commands, key, toCard, linkType, direction, previousToCard, previousLinkType, previousDirection, description, previousDescription);
|
|
542
|
+
return c.json(result);
|
|
543
|
+
}
|
|
544
|
+
catch (error) {
|
|
545
|
+
return c.json({
|
|
546
|
+
error: error instanceof Error ? error.message : 'Failed to update link',
|
|
547
|
+
}, 500);
|
|
548
|
+
}
|
|
549
|
+
});
|
|
493
550
|
/**
|
|
494
551
|
* @swagger
|
|
495
552
|
* /api/cards/{key}/a/{attachment}:
|
|
@@ -514,10 +571,10 @@ router.delete('/:key/links', async (c) => {
|
|
|
514
571
|
* 500:
|
|
515
572
|
* description: project_path not set.
|
|
516
573
|
*/
|
|
517
|
-
router.get('/:key/a/:attachment', ssgParams(async (c) => {
|
|
574
|
+
router.get('/:key/a/:attachment', requireRole(UserRole.Reader), ssgParams(async (c) => {
|
|
518
575
|
const commands = c.get('commands');
|
|
519
576
|
return await cardService.findRelevantAttachments(commands, c.get('tree'));
|
|
520
|
-
}), (c) => {
|
|
577
|
+
}), async (c) => {
|
|
521
578
|
const commands = c.get('commands');
|
|
522
579
|
const { key, attachment } = c.req.param();
|
|
523
580
|
const filename = decodeURI(attachment);
|
|
@@ -525,7 +582,7 @@ router.get('/:key/a/:attachment', ssgParams(async (c) => {
|
|
|
525
582
|
return c.text('Missing cardKey or filename', 400);
|
|
526
583
|
}
|
|
527
584
|
try {
|
|
528
|
-
const attachmentResponse = cardService.getAttachment(commands, key, filename);
|
|
585
|
+
const attachmentResponse = await cardService.getAttachment(commands, key, filename);
|
|
529
586
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
530
587
|
const payload = attachmentResponse;
|
|
531
588
|
return new Response(payload.fileBuffer, {
|
|
@@ -544,5 +601,47 @@ router.get('/:key/a/:attachment', ssgParams(async (c) => {
|
|
|
544
601
|
}, 404);
|
|
545
602
|
}
|
|
546
603
|
});
|
|
604
|
+
/**
|
|
605
|
+
* @swagger
|
|
606
|
+
* /api/cards/{key}/presence:
|
|
607
|
+
* get:
|
|
608
|
+
* summary: SSE stream of users currently viewing or editing this card
|
|
609
|
+
* parameters:
|
|
610
|
+
* - name: key
|
|
611
|
+
* in: path
|
|
612
|
+
* required: true
|
|
613
|
+
* description: Card key (string)
|
|
614
|
+
* - name: mode
|
|
615
|
+
* in: query
|
|
616
|
+
* required: false
|
|
617
|
+
* schema:
|
|
618
|
+
* type: string
|
|
619
|
+
* enum: [viewing, editing]
|
|
620
|
+
* description: Whether the user is viewing or editing (default: viewing)
|
|
621
|
+
* responses:
|
|
622
|
+
* 200:
|
|
623
|
+
* description: SSE stream with presence events
|
|
624
|
+
*/
|
|
625
|
+
router.get('/:key/presence', requireRole(UserRole.Reader), (c) => {
|
|
626
|
+
const key = c.req.param('key');
|
|
627
|
+
const mode = c.req.query('mode') === 'editing' ? 'editing' : 'viewing';
|
|
628
|
+
const user = c.get('user');
|
|
629
|
+
if (!key) {
|
|
630
|
+
return c.text('No card key', 400);
|
|
631
|
+
}
|
|
632
|
+
return streamSSE(c, async (stream) => {
|
|
633
|
+
const connId = presenceStore.add(key, user, mode, (data) => void stream.writeSSE(data));
|
|
634
|
+
let aborted = false;
|
|
635
|
+
stream.onAbort(() => {
|
|
636
|
+
aborted = true;
|
|
637
|
+
presenceStore.remove(key, connId);
|
|
638
|
+
});
|
|
639
|
+
// Keep connection alive with periodic heartbeat
|
|
640
|
+
while (!aborted) {
|
|
641
|
+
await stream.write(': hb\n\n');
|
|
642
|
+
await stream.sleep(30000);
|
|
643
|
+
}
|
|
644
|
+
});
|
|
645
|
+
});
|
|
547
646
|
export default router;
|
|
548
647
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/cards/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/cards/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAgB,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,EAC/F,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,GAAG,CACR,OAAO,EACP,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,SAAS,CAAC,KAAK,EAAE,CAAa,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EACjB,GAAG,EACH,YAAY,CAAC,CAAC,CAAC,EACf,GAAG,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAC7C,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;SACzC,EACD,MAAM,CAAC,MAA8B,CACtC,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EACjB,GAAG,EACH,YAAY,CAAC,CAAC,CAAC,EACf,GAAG,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAC7C,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;aACzC,EACD,MAAM,CAAC,MAA8B,CACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EACxD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EACjB,IAAI,CAAC,QAAQ,EACb,GAAG,CACJ,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACzE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,iBAAiB,CAChD,QAAQ,EACR,GAAG,EACH,KAAe,CAChB,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,8BAA8B;SACrC,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,CACX,6BAA6B,EAC7B,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAC/C,QAAQ,EACR,GAAG,EACH,QAAQ,CACT,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,6BAA6B;SACpC,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,2BAA2B;SAClC,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAEvC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;SACrE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,IAAI,CACT,aAAa,EACb,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,QAAQ,EACR,GAAG,EACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,CACZ,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;SACnE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,CACX,aAAa,EACb,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,QAAQ,EACR,GAAG,EACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,CACZ,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;SACnE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,GAAG,CACR,aAAa,EACb,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,QAAQ,EACR,GAAG,EACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,CACpB,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;SACnE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,GAAG,CACR,qBAAqB,EACrB,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,SAAS,CAAC,KAAK,EAAE,CAAU,EAAE,EAAE;IAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,MAAM,WAAW,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,aAAa,CACxD,QAAQ,EACR,GAAG,EACH,QAAQ,CACT,CAAC;QACF,8DAA8D;QAC9D,MAAM,OAAO,GAAG,kBAAyB,CAAC;QAE1C,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;YACtC,OAAO,EAAE;gBACP,cAAc,EAAE,OAAO,CAAC,QAAQ;gBAChC,qBAAqB,EAAE,yBAAyB,QAAQ,GAAG;gBAC3D,eAAe,EAAE,UAAU;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,iCAAiC,GAAG,iBAAiB,QAAQ,EAAE;SACtE,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AACF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAC9B,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrC,CAAC;QAEF,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAClB,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,OAAO,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,eAAe,MAAM,CAAC"}
|
package/dist/domain/cards/lib.js
CHANGED
|
@@ -14,110 +14,109 @@ import Processor from '@asciidoctor/core';
|
|
|
14
14
|
import { evaluateMacros } from '@cyberismo/data-handler';
|
|
15
15
|
import { getCardQueryResult } from '../../export.js';
|
|
16
16
|
export async function getCardDetails(commands, key, staticMode, raw) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
project: commands.project,
|
|
37
|
-
cardKey: key,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
asciidocContent = `Macro error: ${error instanceof Error ? error.message : 'Unknown error'}\n\n${asciidocContent}`;
|
|
42
|
-
}
|
|
43
|
-
const htmlContent = Processor()
|
|
44
|
-
.convert(asciidocContent, {
|
|
45
|
-
safe: 'safe',
|
|
46
|
-
attributes: {
|
|
47
|
-
imagesdir: `/api/cards/${key}/a`,
|
|
48
|
-
icons: 'font',
|
|
49
|
-
},
|
|
50
|
-
})
|
|
51
|
-
.toString();
|
|
52
|
-
if (raw) {
|
|
53
|
-
if (!cardDetailsResponse.metadata) {
|
|
54
|
-
throw new Error('Card has no metadata');
|
|
17
|
+
return commands.consistent(async () => {
|
|
18
|
+
let cardDetailsResponse;
|
|
19
|
+
try {
|
|
20
|
+
cardDetailsResponse = await commands.showCmd.showCardDetails(key);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return { status: 400, message: `Card ${key} not found from project` };
|
|
24
|
+
}
|
|
25
|
+
if (!cardDetailsResponse) {
|
|
26
|
+
return { status: 400, message: `Card ${key} not found from project` };
|
|
27
|
+
}
|
|
28
|
+
let asciidocContent = '';
|
|
29
|
+
try {
|
|
30
|
+
asciidocContent = await evaluateMacros(cardDetailsResponse.content || '', {
|
|
31
|
+
context: staticMode ? 'exportedSite' : 'localApp',
|
|
32
|
+
mode: staticMode ? 'staticSite' : 'inject',
|
|
33
|
+
project: commands.project,
|
|
34
|
+
cardKey: key,
|
|
35
|
+
});
|
|
55
36
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
37
|
+
catch (error) {
|
|
38
|
+
asciidocContent = `Macro error: ${error instanceof Error ? error.message : 'Unknown error'}\n\n${asciidocContent}`;
|
|
39
|
+
}
|
|
40
|
+
const htmlContent = Processor()
|
|
41
|
+
.convert(asciidocContent, {
|
|
42
|
+
safe: 'safe',
|
|
43
|
+
attributes: {
|
|
44
|
+
imagesdir: `/api/cards/${key}/a`,
|
|
45
|
+
icons: 'font',
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
.toString();
|
|
49
|
+
if (raw) {
|
|
50
|
+
if (!cardDetailsResponse.metadata) {
|
|
51
|
+
throw new Error('Card has no metadata');
|
|
52
|
+
}
|
|
53
|
+
const cardType = await commands.showCmd.showResource(cardDetailsResponse.metadata.cardType, 'cardTypes');
|
|
54
|
+
const fields = [];
|
|
55
|
+
let i = 0;
|
|
56
|
+
for (const customField of cardType.customFields) {
|
|
57
|
+
const fieldType = await commands.showCmd.showResource(customField.name, 'fieldTypes');
|
|
58
|
+
fields.push({
|
|
59
|
+
key: customField.name,
|
|
60
|
+
visibility: 'always',
|
|
61
|
+
index: i++,
|
|
62
|
+
fieldDisplayName: fieldType.displayName,
|
|
63
|
+
fieldDescription: fieldType.description,
|
|
64
|
+
dataType: fieldType.dataType,
|
|
65
|
+
isCalculated: customField.isCalculated,
|
|
66
|
+
value: cardDetailsResponse.metadata[customField.name],
|
|
67
|
+
enumValues: fieldType.enumValues ?? [],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
status: 200,
|
|
72
|
+
data: {
|
|
73
|
+
key: cardDetailsResponse.key,
|
|
74
|
+
rank: cardDetailsResponse.metadata?.rank,
|
|
75
|
+
title: cardDetailsResponse.metadata?.title || '',
|
|
76
|
+
cardType: cardDetailsResponse.metadata?.cardType || '',
|
|
77
|
+
cardTypeDisplayName: cardDetailsResponse.metadata.cardType,
|
|
78
|
+
workflowState: '',
|
|
79
|
+
lastUpdated: cardDetailsResponse.metadata.lastUpdated,
|
|
80
|
+
createdAt: cardDetailsResponse.metadata.createdAt,
|
|
81
|
+
fields,
|
|
82
|
+
labels: cardDetailsResponse.metadata?.labels || [],
|
|
83
|
+
links: [],
|
|
84
|
+
notifications: [],
|
|
85
|
+
policyChecks: {
|
|
86
|
+
successes: [],
|
|
87
|
+
failures: [],
|
|
88
|
+
},
|
|
89
|
+
deniedOperations: {
|
|
90
|
+
transition: [],
|
|
91
|
+
move: [],
|
|
92
|
+
delete: [],
|
|
93
|
+
editField: [],
|
|
94
|
+
editContent: [],
|
|
95
|
+
},
|
|
96
|
+
rawContent: cardDetailsResponse.content || '',
|
|
97
|
+
parsedContent: htmlContent,
|
|
98
|
+
attachments: cardDetailsResponse.attachments,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const card = staticMode
|
|
103
|
+
? await getCardQueryResult(commands, key)
|
|
104
|
+
: await commands.calculateCmd.runQuery('card', 'localApp', {
|
|
105
|
+
cardKey: key,
|
|
71
106
|
});
|
|
107
|
+
if (card.length !== 1) {
|
|
108
|
+
throw new Error('Query failed. Check card-query syntax');
|
|
72
109
|
}
|
|
73
110
|
return {
|
|
74
111
|
status: 200,
|
|
75
112
|
data: {
|
|
76
|
-
|
|
77
|
-
rank: cardDetailsResponse.metadata?.rank,
|
|
78
|
-
title: cardDetailsResponse.metadata?.title || '',
|
|
79
|
-
cardType: cardDetailsResponse.metadata?.cardType || '',
|
|
80
|
-
cardTypeDisplayName: cardDetailsResponse.metadata.cardType,
|
|
81
|
-
workflowState: '',
|
|
82
|
-
lastUpdated: cardDetailsResponse.metadata.lastUpdated,
|
|
83
|
-
fields,
|
|
84
|
-
labels: cardDetailsResponse.metadata?.labels || [],
|
|
85
|
-
links: [],
|
|
86
|
-
notifications: [],
|
|
87
|
-
policyChecks: {
|
|
88
|
-
successes: [],
|
|
89
|
-
failures: [],
|
|
90
|
-
},
|
|
91
|
-
deniedOperations: {
|
|
92
|
-
transition: [],
|
|
93
|
-
move: [],
|
|
94
|
-
delete: [],
|
|
95
|
-
editField: [],
|
|
96
|
-
editContent: [],
|
|
97
|
-
},
|
|
113
|
+
...card[0],
|
|
98
114
|
rawContent: cardDetailsResponse.content || '',
|
|
99
115
|
parsedContent: htmlContent,
|
|
100
116
|
attachments: cardDetailsResponse.attachments,
|
|
101
117
|
},
|
|
102
118
|
};
|
|
103
|
-
}
|
|
104
|
-
const card = staticMode
|
|
105
|
-
? await getCardQueryResult(commands.project.basePath, key)
|
|
106
|
-
: await commands.calculateCmd.runQuery('card', 'localApp', {
|
|
107
|
-
cardKey: key,
|
|
108
|
-
});
|
|
109
|
-
if (card.length !== 1) {
|
|
110
|
-
throw new Error('Query failed. Check card-query syntax');
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
status: 200,
|
|
114
|
-
data: {
|
|
115
|
-
...card[0],
|
|
116
|
-
rawContent: cardDetailsResponse.content || '',
|
|
117
|
-
parsedContent: htmlContent,
|
|
118
|
-
attachments: cardDetailsResponse.attachments,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
119
|
+
});
|
|
121
120
|
}
|
|
122
121
|
/**
|
|
123
122
|
* Returns all cards from a tree query, flattened.
|