agkan 3.17.1 → 3.18.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/cli/commands/tag/delete.d.ts.map +1 -1
- package/dist/cli/commands/tag/delete.js +21 -8
- package/dist/cli/commands/tag/delete.js.map +1 -1
- package/dist/cli/commands/task/delete.d.ts.map +1 -1
- package/dist/cli/commands/task/delete.js +38 -4
- package/dist/cli/commands/task/delete.js.map +1 -1
- package/dist/cli/commands/task/find.d.ts.map +1 -1
- package/dist/cli/commands/task/find.js +19 -2
- package/dist/cli/commands/task/find.js.map +1 -1
- package/dist/hooks/claudeHookSettings.js +4 -4
- package/dist/hooks/claudeHookSettings.js.map +1 -1
- package/dist/services/TagService.d.ts +14 -2
- package/dist/services/TagService.d.ts.map +1 -1
- package/dist/services/TagService.js +20 -2
- package/dist/services/TagService.js.map +1 -1
- package/dist/services/TaskService.d.ts +22 -2
- package/dist/services/TaskService.d.ts.map +1 -1
- package/dist/services/TaskService.js +24 -2
- package/dist/services/TaskService.js.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +8 -13
- package/dist/utils/security.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/tag/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/tag/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE5D"}
|
|
@@ -11,6 +11,18 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
11
11
|
const service_container_1 = require("../../utils/service-container");
|
|
12
12
|
const output_formatter_1 = require("../../utils/output-formatter");
|
|
13
13
|
const tag_resolver_1 = require("../../utils/tag-resolver");
|
|
14
|
+
function printResult(tag, impact, dryRun) {
|
|
15
|
+
if (dryRun) {
|
|
16
|
+
console.log(chalk_1.default.bold('\n[Dry Run] Tag would be deleted\n'));
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.log(chalk_1.default.green('\n✓ Tag deleted successfully\n'));
|
|
20
|
+
}
|
|
21
|
+
console.log(`${chalk_1.default.bold('ID:')} ${chalk_1.default.cyan(tag.id)}`);
|
|
22
|
+
console.log(`${chalk_1.default.bold('Name:')} ${tag.name}`);
|
|
23
|
+
console.log(`${chalk_1.default.bold('Impact:')} ${impact.taskCount} task(s) will lose this tag association`);
|
|
24
|
+
console.log();
|
|
25
|
+
}
|
|
14
26
|
function setupTagDeleteCommand(program) {
|
|
15
27
|
// Find the tag command group
|
|
16
28
|
const tagCommand = program.commands.find((cmd) => cmd.name() === 'tag');
|
|
@@ -21,6 +33,7 @@ function setupTagDeleteCommand(program) {
|
|
|
21
33
|
.command('delete')
|
|
22
34
|
.argument('<id-or-name>', 'Tag ID or name')
|
|
23
35
|
.description('Delete a tag')
|
|
36
|
+
.option('--dry-run', 'Preview the impact of deletion without deleting the tag')
|
|
24
37
|
.option('--json', 'Output in JSON format')
|
|
25
38
|
.action(async (id, options) => {
|
|
26
39
|
const formatter = (0, output_formatter_1.createFormatter)(options);
|
|
@@ -34,20 +47,20 @@ function setupTagDeleteCommand(program) {
|
|
|
34
47
|
console.error(chalk_1.default.red(`\nError: ${message}\n`));
|
|
35
48
|
});
|
|
36
49
|
process.exit(1);
|
|
50
|
+
return;
|
|
37
51
|
}
|
|
52
|
+
const impact = tagService.getTagDeleteImpact(tag.id);
|
|
53
|
+
const dryRun = !!options.dryRun;
|
|
38
54
|
// Delete tag
|
|
39
55
|
try {
|
|
40
|
-
tagService.deleteTag(tag.id);
|
|
56
|
+
tagService.deleteTag(tag.id, dryRun);
|
|
41
57
|
formatter.output(() => ({
|
|
42
|
-
success:
|
|
58
|
+
success: !dryRun,
|
|
59
|
+
dryRun,
|
|
43
60
|
id: tag.id,
|
|
44
61
|
name: tag.name,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
console.log(`${chalk_1.default.bold('ID:')} ${chalk_1.default.cyan(tag.id)}`);
|
|
48
|
-
console.log(`${chalk_1.default.bold('Name:')} ${tag.name}`);
|
|
49
|
-
console.log();
|
|
50
|
-
});
|
|
62
|
+
impact,
|
|
63
|
+
}), () => printResult(tag, impact, dryRun));
|
|
51
64
|
}
|
|
52
65
|
catch (error) {
|
|
53
66
|
if (error instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/cli/commands/tag/delete.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/cli/commands/tag/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4D7D"}
|
|
@@ -11,6 +11,31 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
11
11
|
const service_container_1 = require("../../utils/service-container");
|
|
12
12
|
const error_handler_1 = require("../../utils/error-handler");
|
|
13
13
|
const output_formatter_1 = require("../../utils/output-formatter");
|
|
14
|
+
/** Human-readable summary of the records a task delete will affect */
|
|
15
|
+
function formatImpact(impact) {
|
|
16
|
+
const parts = [];
|
|
17
|
+
if (impact.childCount > 0)
|
|
18
|
+
parts.push(`${impact.childCount} child task(s) will be orphaned (parent_id cleared)`);
|
|
19
|
+
if (impact.commentCount > 0)
|
|
20
|
+
parts.push(`${impact.commentCount} comment(s) will be deleted`);
|
|
21
|
+
if (impact.tagCount > 0)
|
|
22
|
+
parts.push(`${impact.tagCount} tag association(s) will be removed`);
|
|
23
|
+
if (impact.metadataCount > 0)
|
|
24
|
+
parts.push(`${impact.metadataCount} metadata entry(ies) will be deleted`);
|
|
25
|
+
if (impact.blockCount > 0)
|
|
26
|
+
parts.push(`${impact.blockCount} block relationship(s) will be removed`);
|
|
27
|
+
return parts.length > 0 ? parts.join(', ') : 'no related data';
|
|
28
|
+
}
|
|
29
|
+
function printResult(taskId, impact, dryRun) {
|
|
30
|
+
if (dryRun) {
|
|
31
|
+
console.log(chalk_1.default.bold(`\n[Dry Run] Task #${taskId} would be deleted\n`));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
console.log(chalk_1.default.green(`\n✓ Task #${taskId} deleted successfully\n`));
|
|
35
|
+
}
|
|
36
|
+
console.log(`${chalk_1.default.bold('Impact:')} ${formatImpact(impact)}`);
|
|
37
|
+
console.log('');
|
|
38
|
+
}
|
|
14
39
|
function setupTaskDeleteCommand(program) {
|
|
15
40
|
const taskCommand = program.commands.find((cmd) => cmd.name() === 'task');
|
|
16
41
|
if (!taskCommand) {
|
|
@@ -19,6 +44,7 @@ function setupTaskDeleteCommand(program) {
|
|
|
19
44
|
taskCommand
|
|
20
45
|
.command('delete')
|
|
21
46
|
.argument('<id>', 'Task ID')
|
|
47
|
+
.option('--dry-run', 'Preview the impact of deletion without deleting the task')
|
|
22
48
|
.option('--json', 'Output in JSON format')
|
|
23
49
|
.description('Delete a task')
|
|
24
50
|
.action(async (id, options) => {
|
|
@@ -32,16 +58,24 @@ function setupTaskDeleteCommand(program) {
|
|
|
32
58
|
});
|
|
33
59
|
process.exit(1);
|
|
34
60
|
}
|
|
35
|
-
const
|
|
61
|
+
const impact = taskService.getTaskDeleteImpact(taskId);
|
|
62
|
+
if (!impact) {
|
|
63
|
+
formatter.error(`Task with ID ${id} not found`, () => {
|
|
64
|
+
console.error(chalk_1.default.red(`\nTask with ID ${id} not found\n`));
|
|
65
|
+
});
|
|
66
|
+
process.exit(1);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const dryRun = !!options.dryRun;
|
|
70
|
+
const deleted = taskService.deleteTask(taskId, dryRun);
|
|
36
71
|
if (!deleted) {
|
|
37
72
|
formatter.error(`Task with ID ${id} not found`, () => {
|
|
38
73
|
console.error(chalk_1.default.red(`\nTask with ID ${id} not found\n`));
|
|
39
74
|
});
|
|
40
75
|
process.exit(1);
|
|
76
|
+
return;
|
|
41
77
|
}
|
|
42
|
-
formatter.output(() => ({ success:
|
|
43
|
-
console.log(chalk_1.default.green(`\n✓ Task #${taskId} deleted successfully\n`));
|
|
44
|
-
});
|
|
78
|
+
formatter.output(() => ({ success: !dryRun, dryRun, id: taskId, impact }), () => printResult(taskId, impact, dryRun));
|
|
45
79
|
}
|
|
46
80
|
catch (error) {
|
|
47
81
|
if (error instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/delete.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/find.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/find.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4I3D"}
|
|
@@ -12,6 +12,24 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
12
12
|
const service_container_1 = require("../../utils/service-container");
|
|
13
13
|
const format_1 = require("../../../utils/format");
|
|
14
14
|
const output_formatter_1 = require("../../utils/output-formatter");
|
|
15
|
+
const validators_1 = require("../../utils/validators");
|
|
16
|
+
const errors_1 = require("../../../errors");
|
|
17
|
+
/**
|
|
18
|
+
* Parse and validate a comma-separated status filter string.
|
|
19
|
+
* Throws ValidationError if any status value is invalid.
|
|
20
|
+
*/
|
|
21
|
+
function parseStatusFilter(statusOption) {
|
|
22
|
+
const statuses = statusOption
|
|
23
|
+
.split(',')
|
|
24
|
+
.map((s) => s.trim())
|
|
25
|
+
.filter((s) => s !== '');
|
|
26
|
+
for (const s of statuses) {
|
|
27
|
+
if (!(0, validators_1.validateTaskStatus)(s)) {
|
|
28
|
+
throw new errors_1.ValidationError(`Invalid status: ${s}. Valid statuses: icebox, backlog, ready, in_progress, review, done, closed`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return statuses;
|
|
32
|
+
}
|
|
15
33
|
function setupTaskFindCommand(program) {
|
|
16
34
|
const taskCommand = program.commands.find((cmd) => cmd.name() === 'task');
|
|
17
35
|
if (!taskCommand) {
|
|
@@ -40,8 +58,7 @@ function setupTaskFindCommand(program) {
|
|
|
40
58
|
// Parse status filter from comma-separated string
|
|
41
59
|
let statusFilter;
|
|
42
60
|
if (options.status) {
|
|
43
|
-
|
|
44
|
-
statusFilter = statuses;
|
|
61
|
+
statusFilter = parseStatusFilter(options.status);
|
|
45
62
|
}
|
|
46
63
|
const tasks = taskService.searchTasks(normalizedKeyword, options.all || false, statusFilter, options.archived || false);
|
|
47
64
|
formatter.output(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/find.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,24 +12,24 @@ function buildSettings() {
|
|
|
12
12
|
hooks: {
|
|
13
13
|
SessionStart: [
|
|
14
14
|
{
|
|
15
|
-
hooks: [{ type: 'command', command: `node ${SESSION_START_HOOK}` }],
|
|
15
|
+
hooks: [{ type: 'command', command: `node ${JSON.stringify(SESSION_START_HOOK)}` }],
|
|
16
16
|
},
|
|
17
17
|
],
|
|
18
18
|
PreToolUse: [
|
|
19
19
|
{
|
|
20
20
|
matcher: 'AskUserQuestion',
|
|
21
|
-
hooks: [{ type: 'command', command: `node ${ATTENTION_HOOK} pre` }],
|
|
21
|
+
hooks: [{ type: 'command', command: `node ${JSON.stringify(ATTENTION_HOOK)} pre` }],
|
|
22
22
|
},
|
|
23
23
|
],
|
|
24
24
|
PostToolUse: [
|
|
25
25
|
{
|
|
26
26
|
matcher: 'AskUserQuestion',
|
|
27
|
-
hooks: [{ type: 'command', command: `node ${ATTENTION_HOOK} post` }],
|
|
27
|
+
hooks: [{ type: 'command', command: `node ${JSON.stringify(ATTENTION_HOOK)} post` }],
|
|
28
28
|
},
|
|
29
29
|
],
|
|
30
30
|
Stop: [
|
|
31
31
|
{
|
|
32
|
-
hooks: [{ type: 'command', command: `node ${STOP_HOOK}` }],
|
|
32
|
+
hooks: [{ type: 'command', command: `node ${JSON.stringify(STOP_HOOK)}` }],
|
|
33
33
|
},
|
|
34
34
|
],
|
|
35
35
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeHookSettings.js","sourceRoot":"","sources":["../../src/hooks/claudeHookSettings.ts"],"names":[],"mappings":";;AAsCA,0DAcC;AApDD,2BAAoC;AACpC,+BAAqC;AAErC,MAAM,cAAc,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAChE,MAAM,kBAAkB,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;AACxE,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAEtD,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAEjD,SAAS,aAAa;IACpB,OAAO;QACL,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ;oBACE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,kBAAkB,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"claudeHookSettings.js","sourceRoot":"","sources":["../../src/hooks/claudeHookSettings.ts"],"names":[],"mappings":";;AAsCA,0DAcC;AApDD,2BAAoC;AACpC,+BAAqC;AAErC,MAAM,cAAc,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAChE,MAAM,kBAAkB,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;AACxE,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAEtD,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAEjD,SAAS,aAAa;IACpB,OAAO;QACL,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ;oBACE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;iBACpF;aACF;YACD,UAAU,EAAE;gBACV;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;iBACpF;aACF;YACD,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;iBACrF;aACF;YACD,IAAI,EAAE;gBACJ;oBACE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;iBAC3E;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,OAAe;IAC3D,MAAM,aAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Tag, CreateTagInput, UpdateTagInput } from '../models';
|
|
2
2
|
import { StorageBackend } from '../db/types/repository';
|
|
3
|
+
/** Counts of records affected by deleting a tag */
|
|
4
|
+
export interface TagDeleteImpact {
|
|
5
|
+
/** Tasks referencing this tag; their task_tags association will be cascade-deleted */
|
|
6
|
+
taskCount: number;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Tag Service
|
|
5
10
|
* Manages creation, retrieval, update, and deletion of tags
|
|
@@ -42,8 +47,15 @@ export declare class TagService {
|
|
|
42
47
|
/**
|
|
43
48
|
* Delete tag
|
|
44
49
|
* @param id - Tag ID
|
|
45
|
-
* @
|
|
50
|
+
* @param dryRun - If true, verify the tag exists without deleting it
|
|
51
|
+
* @returns True if deletion (or dry-run check) succeeded, false if tag not found
|
|
52
|
+
*/
|
|
53
|
+
deleteTag(id: number, dryRun?: boolean): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Compute the cascade impact of deleting a tag, without deleting it.
|
|
56
|
+
* @param id - Tag ID
|
|
57
|
+
* @returns Impact counts, or null if the tag does not exist
|
|
46
58
|
*/
|
|
47
|
-
|
|
59
|
+
getTagDeleteImpact(id: number): TagDeleteImpact | null;
|
|
48
60
|
}
|
|
49
61
|
//# sourceMappingURL=TagService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagService.d.ts","sourceRoot":"","sources":["../../src/services/TagService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,CAAC,EAAE,cAAc;IAIpC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG;IAiBrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAI9B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAItC;;;OAGG;IACH,QAAQ,IAAI,GAAG,EAAE;IAIjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI;IA+BxD
|
|
1
|
+
{"version":3,"file":"TagService.d.ts","sourceRoot":"","sources":["../../src/services/TagService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,CAAC,EAAE,cAAc;IAIpC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG;IAiBrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAI9B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAItC;;;OAGG;IACH,QAAQ,IAAI,GAAG,EAAE;IAIjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI;IA+BxD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO;IAOvD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;CASvD"}
|
|
@@ -93,11 +93,29 @@ class TagService {
|
|
|
93
93
|
/**
|
|
94
94
|
* Delete tag
|
|
95
95
|
* @param id - Tag ID
|
|
96
|
-
* @
|
|
96
|
+
* @param dryRun - If true, verify the tag exists without deleting it
|
|
97
|
+
* @returns True if deletion (or dry-run check) succeeded, false if tag not found
|
|
97
98
|
*/
|
|
98
|
-
deleteTag(id) {
|
|
99
|
+
deleteTag(id, dryRun = false) {
|
|
100
|
+
if (dryRun) {
|
|
101
|
+
return this.getTag(id) !== null;
|
|
102
|
+
}
|
|
99
103
|
return this.backend.tags.delete(id);
|
|
100
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Compute the cascade impact of deleting a tag, without deleting it.
|
|
107
|
+
* @param id - Tag ID
|
|
108
|
+
* @returns Impact counts, or null if the tag does not exist
|
|
109
|
+
*/
|
|
110
|
+
getTagDeleteImpact(id) {
|
|
111
|
+
const tag = this.getTag(id);
|
|
112
|
+
if (!tag) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
taskCount: this.backend.taskTags.findTaskIdsByTagId(id).length,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
101
119
|
}
|
|
102
120
|
exports.TagService = TagService;
|
|
103
121
|
//# sourceMappingURL=TagService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagService.js","sourceRoot":"","sources":["../../src/services/TagService.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AACrD,gEAA6D;AAE7D,sCAA2D;
|
|
1
|
+
{"version":3,"file":"TagService.js","sourceRoot":"","sources":["../../src/services/TagService.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,19 @@ import { BoardEventService } from './BoardEventService';
|
|
|
5
5
|
export declare const ALLOWED_SORT_FIELDS: readonly ["id", "title", "status", "created_at", "updated_at", "priority"];
|
|
6
6
|
export type SortField = (typeof ALLOWED_SORT_FIELDS)[number];
|
|
7
7
|
export type SortOrder = 'asc' | 'desc';
|
|
8
|
+
/** Counts of records affected by deleting a task */
|
|
9
|
+
export interface TaskDeleteImpact {
|
|
10
|
+
/** Direct child tasks; their parent_id will be set to null (ON DELETE SET NULL) */
|
|
11
|
+
childCount: number;
|
|
12
|
+
/** Comments that will be cascade-deleted */
|
|
13
|
+
commentCount: number;
|
|
14
|
+
/** Tag associations that will be cascade-deleted */
|
|
15
|
+
tagCount: number;
|
|
16
|
+
/** Metadata entries that will be cascade-deleted */
|
|
17
|
+
metadataCount: number;
|
|
18
|
+
/** Blocking relationships (as blocker or blocked) that will be cascade-deleted */
|
|
19
|
+
blockCount: number;
|
|
20
|
+
}
|
|
8
21
|
/**
|
|
9
22
|
* Task Service
|
|
10
23
|
* Provides CRUD operations for tasks
|
|
@@ -53,9 +66,16 @@ export declare class TaskService {
|
|
|
53
66
|
/**
|
|
54
67
|
* Delete task
|
|
55
68
|
* @param id - Task ID
|
|
56
|
-
* @
|
|
69
|
+
* @param dryRun - If true, verify the task exists without deleting it
|
|
70
|
+
* @returns true if deletion (or dry-run check) succeeded, false if task not found
|
|
71
|
+
*/
|
|
72
|
+
deleteTask(id: number, dryRun?: boolean): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Compute the cascade impact of deleting a task, without deleting it.
|
|
75
|
+
* @param id - Task ID
|
|
76
|
+
* @returns Impact counts, or null if the task does not exist
|
|
57
77
|
*/
|
|
58
|
-
|
|
78
|
+
getTaskDeleteImpact(id: number): TaskDeleteImpact | null;
|
|
59
79
|
/**
|
|
60
80
|
* Get task count by status
|
|
61
81
|
* @returns Map of task count for each status
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskService.d.ts","sourceRoot":"","sources":["../../src/services/TaskService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI/E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,4EAA6E,CAAC;AAC9G,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAElC,OAAO,CAAC,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAE,iBAAiB;IAK3E;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IA8CxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIhC;;;;;;OAMG;IACH,SAAS,CACP,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;QACnC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,EACD,IAAI,CAAC,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,SAAS,GAChB,IAAI,EAAE;IAuBT;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IA8B3D
|
|
1
|
+
{"version":3,"file":"TaskService.d.ts","sourceRoot":"","sources":["../../src/services/TaskService.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,18 +133,40 @@ class TaskService {
|
|
|
133
133
|
/**
|
|
134
134
|
* Delete task
|
|
135
135
|
* @param id - Task ID
|
|
136
|
-
* @
|
|
136
|
+
* @param dryRun - If true, verify the task exists without deleting it
|
|
137
|
+
* @returns true if deletion (or dry-run check) succeeded, false if task not found
|
|
137
138
|
*/
|
|
138
|
-
deleteTask(id) {
|
|
139
|
+
deleteTask(id, dryRun = false) {
|
|
139
140
|
const task = this.getTask(id);
|
|
140
141
|
if (!task) {
|
|
141
142
|
return false;
|
|
142
143
|
}
|
|
144
|
+
if (dryRun) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
143
147
|
const deleted = this.backend.tasks.delete(id);
|
|
144
148
|
if (deleted)
|
|
145
149
|
this.boardEventService?.notify();
|
|
146
150
|
return deleted;
|
|
147
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Compute the cascade impact of deleting a task, without deleting it.
|
|
154
|
+
* @param id - Task ID
|
|
155
|
+
* @returns Impact counts, or null if the task does not exist
|
|
156
|
+
*/
|
|
157
|
+
getTaskDeleteImpact(id) {
|
|
158
|
+
const task = this.getTask(id);
|
|
159
|
+
if (!task) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
childCount: this.backend.tasks.findChildren(id).length,
|
|
164
|
+
commentCount: this.backend.comments.findByTaskId(id).length,
|
|
165
|
+
tagCount: this.backend.taskTags.findTagIdsByTaskId(id).length,
|
|
166
|
+
metadataCount: this.backend.metadata.findByTaskId(id).length,
|
|
167
|
+
blockCount: this.backend.blocks.findBlockedTaskIds(id).length + this.backend.blocks.findBlockerTaskIds(id).length,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
148
170
|
/**
|
|
149
171
|
* Get task count by status
|
|
150
172
|
* @returns Map of task count for each status
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../src/services/TaskService.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AACrD,gEAAuF;AACvF,4DAA2D;AAE3D,sCAA0E;AAG1E,2CAA2C;AAC9B,QAAA,mBAAmB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../src/services/TaskService.ts"],"names":[],"mappings":"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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* Centrally manages all service classes
|
|
4
4
|
*/
|
|
5
5
|
export { TaskService } from './TaskService';
|
|
6
|
+
export type { TaskDeleteImpact } from './TaskService';
|
|
6
7
|
export { FileService } from './FileService';
|
|
7
8
|
export { TaskBlockService } from './TaskBlockService';
|
|
8
9
|
export { TagService } from './TagService';
|
|
10
|
+
export type { TagDeleteImpact } from './TagService';
|
|
9
11
|
export { TaskTagService } from './TaskTagService';
|
|
10
12
|
export { MetadataService } from './MetadataService';
|
|
11
13
|
export { CommentService } from './CommentService';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrG,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrG,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWpD"}
|
package/dist/utils/security.js
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isPathSafe = isPathSafe;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
2
|
/**
|
|
9
3
|
* Security utility functions
|
|
10
4
|
* Provides path validation and security checks
|
|
11
5
|
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.isPathSafe = isPathSafe;
|
|
12
8
|
/**
|
|
13
9
|
* Check if a file path is safe from path traversal attacks
|
|
14
10
|
* @param filePath - Path to validate
|
|
15
11
|
* @returns True if path is safe, false otherwise
|
|
16
12
|
*/
|
|
17
13
|
function isPathSafe(filePath) {
|
|
18
|
-
// Check for path traversal
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (normalizedPath.includes('..')) {
|
|
14
|
+
// Check for path traversal by inspecting path segments, not substrings.
|
|
15
|
+
// This must run against the original path (not path.normalize(filePath)),
|
|
16
|
+
// since normalize collapses 'dir/../file.txt' into 'file.txt' and would
|
|
17
|
+
// hide a traversal segment.
|
|
18
|
+
const segments = filePath.split(/[/\\]/);
|
|
19
|
+
if (segments.includes('..')) {
|
|
25
20
|
return false;
|
|
26
21
|
}
|
|
27
22
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,gCAWC;AAhBD;;;;GAIG;AACH,SAAgB,UAAU,CAAC,QAAgB;IACzC,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|