@panoptic-it-solutions/zoho-projects-client 0.2.3 → 0.2.5
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 +51 -7
- package/dist/__tests__/fixtures/attachments.d.ts +59 -39
- package/dist/__tests__/fixtures/attachments.d.ts.map +1 -1
- package/dist/__tests__/fixtures/attachments.js +2 -4
- package/dist/__tests__/fixtures/attachments.js.map +1 -1
- package/dist/__tests__/fixtures/comments.d.ts +25 -13
- package/dist/__tests__/fixtures/comments.d.ts.map +1 -1
- package/dist/__tests__/fixtures/events.d.ts +27 -15
- package/dist/__tests__/fixtures/events.d.ts.map +1 -1
- package/dist/__tests__/fixtures/forums.d.ts +25 -13
- package/dist/__tests__/fixtures/forums.d.ts.map +1 -1
- package/dist/__tests__/fixtures/issues.d.ts +50 -26
- package/dist/__tests__/fixtures/issues.d.ts.map +1 -1
- package/dist/__tests__/fixtures/phases.d.ts +325 -41
- package/dist/__tests__/fixtures/phases.d.ts.map +1 -1
- package/dist/__tests__/fixtures/projects.d.ts +176 -8
- package/dist/__tests__/fixtures/projects.d.ts.map +1 -1
- package/dist/__tests__/fixtures/tasklists.d.ts +71 -25
- package/dist/__tests__/fixtures/tasklists.d.ts.map +1 -1
- package/dist/__tests__/fixtures/tasklists.js +1 -3
- package/dist/__tests__/fixtures/tasklists.js.map +1 -1
- package/dist/__tests__/fixtures/tasks.d.ts +257 -62
- package/dist/__tests__/fixtures/tasks.d.ts.map +1 -1
- package/dist/__tests__/fixtures/timelogs.d.ts +2 -2
- package/dist/__tests__/integration/api-v3.test.d.ts +2 -0
- package/dist/__tests__/integration/api-v3.test.d.ts.map +1 -0
- package/dist/__tests__/integration/api-v3.test.js +180 -0
- package/dist/__tests__/integration/api-v3.test.js.map +1 -0
- package/dist/__tests__/integration/setup.d.ts +0 -3
- package/dist/__tests__/integration/setup.d.ts.map +1 -1
- package/dist/__tests__/integration/setup.js +7 -1
- package/dist/__tests__/integration/setup.js.map +1 -1
- package/dist/__tests__/unit/client/attachments.test.js +31 -10
- package/dist/__tests__/unit/client/attachments.test.js.map +1 -1
- package/dist/__tests__/unit/client/blueprints.test.js +11 -11
- package/dist/__tests__/unit/client/blueprints.test.js.map +1 -1
- package/dist/__tests__/unit/client/clients.test.js +6 -6
- package/dist/__tests__/unit/client/clients.test.js.map +1 -1
- package/dist/__tests__/unit/client/comments.test.js +7 -7
- package/dist/__tests__/unit/client/comments.test.js.map +1 -1
- package/dist/__tests__/unit/client/contacts.test.js +6 -6
- package/dist/__tests__/unit/client/contacts.test.js.map +1 -1
- package/dist/__tests__/unit/client/customviews.test.js +8 -8
- package/dist/__tests__/unit/client/customviews.test.js.map +1 -1
- package/dist/__tests__/unit/client/dashboards.test.js +6 -6
- package/dist/__tests__/unit/client/dashboards.test.js.map +1 -1
- package/dist/__tests__/unit/client/events.test.js +6 -6
- package/dist/__tests__/unit/client/events.test.js.map +1 -1
- package/dist/__tests__/unit/client/followers.test.js +8 -8
- package/dist/__tests__/unit/client/followers.test.js.map +1 -1
- package/dist/__tests__/unit/client/forums.test.js +6 -6
- package/dist/__tests__/unit/client/forums.test.js.map +1 -1
- package/dist/__tests__/unit/client/groups.test.js +6 -6
- package/dist/__tests__/unit/client/groups.test.js.map +1 -1
- package/dist/__tests__/unit/client/issues.test.js +6 -6
- package/dist/__tests__/unit/client/issues.test.js.map +1 -1
- package/dist/__tests__/unit/client/leaves.test.js +6 -6
- package/dist/__tests__/unit/client/leaves.test.js.map +1 -1
- package/dist/__tests__/unit/client/modules.test.js +7 -7
- package/dist/__tests__/unit/client/modules.test.js.map +1 -1
- package/dist/__tests__/unit/client/phases.test.js +6 -6
- package/dist/__tests__/unit/client/phases.test.js.map +1 -1
- package/dist/__tests__/unit/client/portals.test.js +3 -3
- package/dist/__tests__/unit/client/portals.test.js.map +1 -1
- package/dist/__tests__/unit/client/profiles.test.js +6 -6
- package/dist/__tests__/unit/client/profiles.test.js.map +1 -1
- package/dist/__tests__/unit/client/projects.test.js +18 -18
- package/dist/__tests__/unit/client/projects.test.js.map +1 -1
- package/dist/__tests__/unit/client/reports.test.js +9 -9
- package/dist/__tests__/unit/client/reports.test.js.map +1 -1
- package/dist/__tests__/unit/client/roles.test.js +6 -6
- package/dist/__tests__/unit/client/roles.test.js.map +1 -1
- package/dist/__tests__/unit/client/search.test.js +7 -7
- package/dist/__tests__/unit/client/search.test.js.map +1 -1
- package/dist/__tests__/unit/client/tags.test.js +9 -9
- package/dist/__tests__/unit/client/tags.test.js.map +1 -1
- package/dist/__tests__/unit/client/tasklists.test.js +12 -12
- package/dist/__tests__/unit/client/tasklists.test.js.map +1 -1
- package/dist/__tests__/unit/client/tasks.test.js +17 -17
- package/dist/__tests__/unit/client/tasks.test.js.map +1 -1
- package/dist/__tests__/unit/client/teams.test.js +8 -8
- package/dist/__tests__/unit/client/teams.test.js.map +1 -1
- package/dist/__tests__/unit/client/timelogs.test.js +7 -7
- package/dist/__tests__/unit/client/timelogs.test.js.map +1 -1
- package/dist/__tests__/unit/client/timers.test.js +11 -11
- package/dist/__tests__/unit/client/timers.test.js.map +1 -1
- package/dist/__tests__/unit/client/trash.test.js +8 -8
- package/dist/__tests__/unit/client/trash.test.js.map +1 -1
- package/dist/__tests__/unit/client/users.test.js +8 -8
- package/dist/__tests__/unit/client/users.test.js.map +1 -1
- package/dist/__tests__/unit/client/widgets.test.js +6 -6
- package/dist/__tests__/unit/client/widgets.test.js.map +1 -1
- package/dist/cli/init.js +26 -10
- package/dist/cli/init.js.map +1 -1
- package/dist/client.d.ts +63 -11
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +470 -274
- package/dist/client.js.map +1 -1
- package/dist/types/attachments.d.ts +1525 -512
- package/dist/types/attachments.d.ts.map +1 -1
- package/dist/types/attachments.js +51 -10
- package/dist/types/attachments.js.map +1 -1
- package/dist/types/clients.js +2 -2
- package/dist/types/clients.js.map +1 -1
- package/dist/types/comments.d.ts +325 -169
- package/dist/types/comments.d.ts.map +1 -1
- package/dist/types/common.d.ts +33 -15
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +12 -7
- package/dist/types/common.js.map +1 -1
- package/dist/types/contacts.d.ts +6 -6
- package/dist/types/dashboards.d.ts +979 -511
- package/dist/types/dashboards.d.ts.map +1 -1
- package/dist/types/dashboards.js +1 -1
- package/dist/types/dashboards.js.map +1 -1
- package/dist/types/documents.d.ts +1300 -676
- package/dist/types/documents.d.ts.map +1 -1
- package/dist/types/events.d.ts +351 -195
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/forums.d.ts +325 -169
- package/dist/types/forums.d.ts.map +1 -1
- package/dist/types/forums.js +2 -2
- package/dist/types/forums.js.map +1 -1
- package/dist/types/groups.js +1 -1
- package/dist/types/groups.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/issues.d.ts +650 -338
- package/dist/types/issues.d.ts.map +1 -1
- package/dist/types/issues.js +3 -3
- package/dist/types/issues.js.map +1 -1
- package/dist/types/phases.d.ts +4358 -561
- package/dist/types/phases.d.ts.map +1 -1
- package/dist/types/phases.js +103 -25
- package/dist/types/phases.js.map +1 -1
- package/dist/types/portals.js +5 -5
- package/dist/types/portals.js.map +1 -1
- package/dist/types/profiles.js +1 -1
- package/dist/types/profiles.js.map +1 -1
- package/dist/types/projects.d.ts +6324 -1368
- package/dist/types/projects.d.ts.map +1 -1
- package/dist/types/projects.js +123 -39
- package/dist/types/projects.js.map +1 -1
- package/dist/types/reports.d.ts +650 -338
- package/dist/types/reports.d.ts.map +1 -1
- package/dist/types/reports.js +1 -1
- package/dist/types/reports.js.map +1 -1
- package/dist/types/search.js +1 -1
- package/dist/types/search.js.map +1 -1
- package/dist/types/tags.js +1 -1
- package/dist/types/tags.js.map +1 -1
- package/dist/types/tasklists.d.ts +938 -326
- package/dist/types/tasklists.d.ts.map +1 -1
- package/dist/types/tasklists.js +43 -16
- package/dist/types/tasklists.js.map +1 -1
- package/dist/types/tasks.d.ts +3516 -876
- package/dist/types/tasks.d.ts.map +1 -1
- package/dist/types/tasks.js +70 -23
- package/dist/types/tasks.js.map +1 -1
- package/dist/types/teams.js +2 -2
- package/dist/types/teams.js.map +1 -1
- package/dist/types/timelogs.d.ts +232 -230
- package/dist/types/timelogs.d.ts.map +1 -1
- package/dist/types/timelogs.js.map +1 -1
- package/dist/types/timers.d.ts +750 -390
- package/dist/types/timers.d.ts.map +1 -1
- package/dist/types/trash.d.ts +650 -338
- package/dist/types/trash.d.ts.map +1 -1
- package/dist/types/workdrive.d.ts +1002 -0
- package/dist/types/workdrive.d.ts.map +1 -0
- package/dist/types/workdrive.js +70 -0
- package/dist/types/workdrive.js.map +1 -0
- package/dist/utils/pagination.d.ts +9 -9
- package/dist/utils/pagination.d.ts.map +1 -1
- package/dist/utils/pagination.js +11 -11
- package/dist/utils/pagination.js.map +1 -1
- package/package.json +3 -1
- package/templates/CLAUDE.md +185 -2
|
@@ -7,7 +7,7 @@ import { server } from "../../mocks/server.js";
|
|
|
7
7
|
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
8
|
import { mockTimer, mockTimers, mockPausedTimer } from "../../fixtures/timers.js";
|
|
9
9
|
const TEST_PORTAL_ID = "12345";
|
|
10
|
-
const BASE_URL = `https://projectsapi.zoho.com/
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/api/v3/portal/${TEST_PORTAL_ID}`;
|
|
11
11
|
describe("timers", () => {
|
|
12
12
|
let client;
|
|
13
13
|
beforeEach(() => {
|
|
@@ -20,7 +20,7 @@ describe("timers", () => {
|
|
|
20
20
|
});
|
|
21
21
|
describe("list", () => {
|
|
22
22
|
it("should list all running timers", async () => {
|
|
23
|
-
server.use(http.get(`${BASE_URL}/mytimers
|
|
23
|
+
server.use(http.get(`${BASE_URL}/mytimers`, () => {
|
|
24
24
|
return HttpResponse.json({ timers: mockTimers });
|
|
25
25
|
}));
|
|
26
26
|
const result = await client.timers.list();
|
|
@@ -31,7 +31,7 @@ describe("timers", () => {
|
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
it("should return empty array when no timers", async () => {
|
|
34
|
-
server.use(http.get(`${BASE_URL}/mytimers
|
|
34
|
+
server.use(http.get(`${BASE_URL}/mytimers`, () => {
|
|
35
35
|
return new HttpResponse("", { status: 204 });
|
|
36
36
|
}));
|
|
37
37
|
const result = await client.timers.list();
|
|
@@ -40,7 +40,7 @@ describe("timers", () => {
|
|
|
40
40
|
});
|
|
41
41
|
describe("getCurrent", () => {
|
|
42
42
|
it("should get the current running timer", async () => {
|
|
43
|
-
server.use(http.get(`${BASE_URL}/mytimers
|
|
43
|
+
server.use(http.get(`${BASE_URL}/mytimers`, () => {
|
|
44
44
|
return HttpResponse.json({ timers: [mockTimer] });
|
|
45
45
|
}));
|
|
46
46
|
const result = await client.timers.getCurrent();
|
|
@@ -48,7 +48,7 @@ describe("timers", () => {
|
|
|
48
48
|
expect(result?.status).toBe("running");
|
|
49
49
|
});
|
|
50
50
|
it("should return null when no timer is running", async () => {
|
|
51
|
-
server.use(http.get(`${BASE_URL}/mytimers
|
|
51
|
+
server.use(http.get(`${BASE_URL}/mytimers`, () => {
|
|
52
52
|
return new HttpResponse("", { status: 204 });
|
|
53
53
|
}));
|
|
54
54
|
const result = await client.timers.getCurrent();
|
|
@@ -57,7 +57,7 @@ describe("timers", () => {
|
|
|
57
57
|
});
|
|
58
58
|
describe("start", () => {
|
|
59
59
|
it("should start a timer for a task", async () => {
|
|
60
|
-
server.use(http.post(`${BASE_URL}/projects/proj_001/tasks/task_123/timer/start
|
|
60
|
+
server.use(http.post(`${BASE_URL}/projects/proj_001/tasks/task_123/timer/start`, () => {
|
|
61
61
|
return HttpResponse.json({ timer: mockTimer });
|
|
62
62
|
}));
|
|
63
63
|
const result = await client.timers.start({
|
|
@@ -71,7 +71,7 @@ describe("timers", () => {
|
|
|
71
71
|
describe("stop", () => {
|
|
72
72
|
it("should stop the current timer", async () => {
|
|
73
73
|
const stoppedTimer = { ...mockTimer, status: "stopped" };
|
|
74
|
-
server.use(http.post(`${BASE_URL}/mytimers/stop
|
|
74
|
+
server.use(http.post(`${BASE_URL}/mytimers/stop`, () => {
|
|
75
75
|
return HttpResponse.json({ timer: stoppedTimer });
|
|
76
76
|
}));
|
|
77
77
|
const result = await client.timers.stop({});
|
|
@@ -80,7 +80,7 @@ describe("timers", () => {
|
|
|
80
80
|
});
|
|
81
81
|
describe("pause", () => {
|
|
82
82
|
it("should pause the current timer", async () => {
|
|
83
|
-
server.use(http.post(`${BASE_URL}/mytimers/pause
|
|
83
|
+
server.use(http.post(`${BASE_URL}/mytimers/pause`, () => {
|
|
84
84
|
return HttpResponse.json({ timer: mockPausedTimer });
|
|
85
85
|
}));
|
|
86
86
|
const result = await client.timers.pause();
|
|
@@ -89,7 +89,7 @@ describe("timers", () => {
|
|
|
89
89
|
});
|
|
90
90
|
describe("resume", () => {
|
|
91
91
|
it("should resume a paused timer", async () => {
|
|
92
|
-
server.use(http.post(`${BASE_URL}/mytimers/resume
|
|
92
|
+
server.use(http.post(`${BASE_URL}/mytimers/resume`, () => {
|
|
93
93
|
return HttpResponse.json({ timer: mockTimer });
|
|
94
94
|
}));
|
|
95
95
|
const result = await client.timers.resume();
|
|
@@ -98,7 +98,7 @@ describe("timers", () => {
|
|
|
98
98
|
});
|
|
99
99
|
describe("startForTask", () => {
|
|
100
100
|
it("should start a timer for a specific task", async () => {
|
|
101
|
-
server.use(http.post(`${BASE_URL}/projects/proj_001/tasks/task_123/timer/start
|
|
101
|
+
server.use(http.post(`${BASE_URL}/projects/proj_001/tasks/task_123/timer/start`, () => {
|
|
102
102
|
return HttpResponse.json({ timer: mockTimer });
|
|
103
103
|
}));
|
|
104
104
|
const result = await client.timers.startForTask("proj_001", "task_123", {
|
|
@@ -111,7 +111,7 @@ describe("timers", () => {
|
|
|
111
111
|
describe("startForIssue", () => {
|
|
112
112
|
it("should start a timer for a specific issue", async () => {
|
|
113
113
|
const issueTimer = { ...mockTimer, entity_type: "issue" };
|
|
114
|
-
server.use(http.post(`${BASE_URL}/projects/proj_001/issues/issue_123/timer/start
|
|
114
|
+
server.use(http.post(`${BASE_URL}/projects/proj_001/issues/issue_123/timer/start`, () => {
|
|
115
115
|
return HttpResponse.json({ timer: issueTimer });
|
|
116
116
|
}));
|
|
117
117
|
const result = await client.timers.startForIssue("proj_001", "issue_123");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timers.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/timers.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAElF,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"timers.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/timers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { server } from "../../mocks/server.js";
|
|
|
7
7
|
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
8
|
import { mockTrashItems, mockTrashRestoreResponse, } from "../../fixtures/trash.js";
|
|
9
9
|
const TEST_PORTAL_ID = "12345";
|
|
10
|
-
const BASE_URL = `https://projectsapi.zoho.com/
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/api/v3/portal/${TEST_PORTAL_ID}`;
|
|
11
11
|
describe("trash", () => {
|
|
12
12
|
let client;
|
|
13
13
|
beforeEach(() => {
|
|
@@ -20,7 +20,7 @@ describe("trash", () => {
|
|
|
20
20
|
});
|
|
21
21
|
describe("list", () => {
|
|
22
22
|
it("should list all items in trash", async () => {
|
|
23
|
-
server.use(http.get(`${BASE_URL}/trash
|
|
23
|
+
server.use(http.get(`${BASE_URL}/trash`, () => {
|
|
24
24
|
return HttpResponse.json({
|
|
25
25
|
trash: mockTrashItems,
|
|
26
26
|
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
@@ -35,7 +35,7 @@ describe("trash", () => {
|
|
|
35
35
|
});
|
|
36
36
|
it("should filter trash by entity type", async () => {
|
|
37
37
|
let capturedParams;
|
|
38
|
-
server.use(http.get(`${BASE_URL}/trash
|
|
38
|
+
server.use(http.get(`${BASE_URL}/trash`, ({ request }) => {
|
|
39
39
|
capturedParams = new URL(request.url).searchParams;
|
|
40
40
|
return HttpResponse.json({
|
|
41
41
|
trash: mockTrashItems.filter((i) => i.entity_type === "task"),
|
|
@@ -49,7 +49,7 @@ describe("trash", () => {
|
|
|
49
49
|
});
|
|
50
50
|
describe("restore", () => {
|
|
51
51
|
it("should restore an item from trash", async () => {
|
|
52
|
-
server.use(http.post(`${BASE_URL}/trash/task/task_deleted_001/restore
|
|
52
|
+
server.use(http.post(`${BASE_URL}/trash/task/task_deleted_001/restore`, () => {
|
|
53
53
|
return HttpResponse.json(mockTrashRestoreResponse);
|
|
54
54
|
}));
|
|
55
55
|
const result = await client.trash.restore("task", "task_deleted_001");
|
|
@@ -59,7 +59,7 @@ describe("trash", () => {
|
|
|
59
59
|
});
|
|
60
60
|
describe("permanentDelete", () => {
|
|
61
61
|
it("should permanently delete an item from trash", async () => {
|
|
62
|
-
server.use(http.delete(`${BASE_URL}/trash/task/task_deleted_001
|
|
62
|
+
server.use(http.delete(`${BASE_URL}/trash/task/task_deleted_001`, () => {
|
|
63
63
|
return new HttpResponse(null, { status: 204 });
|
|
64
64
|
}));
|
|
65
65
|
await expect(client.trash.permanentDelete("task", "task_deleted_001")).resolves.toBeUndefined();
|
|
@@ -67,13 +67,13 @@ describe("trash", () => {
|
|
|
67
67
|
});
|
|
68
68
|
describe("empty", () => {
|
|
69
69
|
it("should empty all trash", async () => {
|
|
70
|
-
server.use(http.delete(`${BASE_URL}/trash
|
|
70
|
+
server.use(http.delete(`${BASE_URL}/trash`, () => {
|
|
71
71
|
return new HttpResponse(null, { status: 204 });
|
|
72
72
|
}));
|
|
73
73
|
await expect(client.trash.empty()).resolves.toBeUndefined();
|
|
74
74
|
});
|
|
75
75
|
it("should empty trash for a specific entity type", async () => {
|
|
76
|
-
server.use(http.delete(`${BASE_URL}/trash/task
|
|
76
|
+
server.use(http.delete(`${BASE_URL}/trash/task`, () => {
|
|
77
77
|
return new HttpResponse(null, { status: 204 });
|
|
78
78
|
}));
|
|
79
79
|
await expect(client.trash.empty("task")).resolves.toBeUndefined();
|
|
@@ -81,7 +81,7 @@ describe("trash", () => {
|
|
|
81
81
|
});
|
|
82
82
|
describe("listForProject", () => {
|
|
83
83
|
it("should list trash for a specific project", async () => {
|
|
84
|
-
server.use(http.get(`${BASE_URL}/trash
|
|
84
|
+
server.use(http.get(`${BASE_URL}/trash`, ({ request }) => {
|
|
85
85
|
const url = new URL(request.url);
|
|
86
86
|
const projectId = url.searchParams.get("project_id");
|
|
87
87
|
if (projectId === "proj_001") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trash.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/trash.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"trash.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/trash.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { server } from "../../mocks/server.js";
|
|
|
7
7
|
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
8
|
import { createUserFixture, createUserListFixture, createUserListResponse, } from "../../fixtures/users.js";
|
|
9
9
|
const TEST_PORTAL_ID = "12345";
|
|
10
|
-
const BASE_URL = `https://projectsapi.zoho.com/
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/api/v3/portal/${TEST_PORTAL_ID}`;
|
|
11
11
|
describe("users", () => {
|
|
12
12
|
let client;
|
|
13
13
|
beforeEach(() => {
|
|
@@ -21,7 +21,7 @@ describe("users", () => {
|
|
|
21
21
|
describe("list", () => {
|
|
22
22
|
it("should list users with default pagination", async () => {
|
|
23
23
|
const mockUsers = createUserListFixture(3);
|
|
24
|
-
server.use(http.get(`${BASE_URL}/users
|
|
24
|
+
server.use(http.get(`${BASE_URL}/users`, () => {
|
|
25
25
|
return HttpResponse.json(createUserListResponse(mockUsers));
|
|
26
26
|
}));
|
|
27
27
|
const result = await client.users.list();
|
|
@@ -33,7 +33,7 @@ describe("users", () => {
|
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
it("should handle empty response", async () => {
|
|
36
|
-
server.use(http.get(`${BASE_URL}/users
|
|
36
|
+
server.use(http.get(`${BASE_URL}/users`, () => {
|
|
37
37
|
return HttpResponse.json(createUserListResponse([]));
|
|
38
38
|
}));
|
|
39
39
|
const result = await client.users.list();
|
|
@@ -43,7 +43,7 @@ describe("users", () => {
|
|
|
43
43
|
describe("get", () => {
|
|
44
44
|
it("should get a single user by ID", async () => {
|
|
45
45
|
const mockUser = createUserFixture({ id: "123" });
|
|
46
|
-
server.use(http.get(`${BASE_URL}/users/123
|
|
46
|
+
server.use(http.get(`${BASE_URL}/users/123`, () => {
|
|
47
47
|
return HttpResponse.json({ users: [mockUser] });
|
|
48
48
|
}));
|
|
49
49
|
const result = await client.users.get("123");
|
|
@@ -56,11 +56,11 @@ describe("users", () => {
|
|
|
56
56
|
const page1 = createUserListFixture(100);
|
|
57
57
|
const page2 = createUserListFixture(50);
|
|
58
58
|
let requestCount = 0;
|
|
59
|
-
server.use(http.get(`${BASE_URL}/users
|
|
59
|
+
server.use(http.get(`${BASE_URL}/users`, ({ request }) => {
|
|
60
60
|
requestCount++;
|
|
61
61
|
const url = new URL(request.url);
|
|
62
|
-
const
|
|
63
|
-
if (
|
|
62
|
+
const page = parseInt(url.searchParams.get("page") || "1");
|
|
63
|
+
if (page === 1) {
|
|
64
64
|
return HttpResponse.json(createUserListResponse(page1, true));
|
|
65
65
|
}
|
|
66
66
|
else {
|
|
@@ -75,7 +75,7 @@ describe("users", () => {
|
|
|
75
75
|
describe("iterate", () => {
|
|
76
76
|
it("should yield users one at a time", async () => {
|
|
77
77
|
const mockUsers = createUserListFixture(3);
|
|
78
|
-
server.use(http.get(`${BASE_URL}/users
|
|
78
|
+
server.use(http.get(`${BASE_URL}/users`, () => {
|
|
79
79
|
return HttpResponse.json(createUserListResponse(mockUsers));
|
|
80
80
|
}));
|
|
81
81
|
const results = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/users.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"users.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/users.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { server } from "../../mocks/server.js";
|
|
|
7
7
|
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
8
|
import { mockWidget, mockWidgets } from "../../fixtures/widgets.js";
|
|
9
9
|
const TEST_PORTAL_ID = "12345";
|
|
10
|
-
const BASE_URL = `https://projectsapi.zoho.com/
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/api/v3/portal/${TEST_PORTAL_ID}`;
|
|
11
11
|
describe("widgets", () => {
|
|
12
12
|
let client;
|
|
13
13
|
beforeEach(() => {
|
|
@@ -20,7 +20,7 @@ describe("widgets", () => {
|
|
|
20
20
|
});
|
|
21
21
|
describe("list", () => {
|
|
22
22
|
it("should list widgets for a dashboard", async () => {
|
|
23
|
-
server.use(http.get(`${BASE_URL}/dashboards/1001/widgets
|
|
23
|
+
server.use(http.get(`${BASE_URL}/dashboards/1001/widgets`, () => {
|
|
24
24
|
return HttpResponse.json({
|
|
25
25
|
widgets: mockWidgets,
|
|
26
26
|
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
@@ -37,7 +37,7 @@ describe("widgets", () => {
|
|
|
37
37
|
});
|
|
38
38
|
describe("get", () => {
|
|
39
39
|
it("should get a single widget by ID", async () => {
|
|
40
|
-
server.use(http.get(`${BASE_URL}/dashboards/1001/widgets/2001
|
|
40
|
+
server.use(http.get(`${BASE_URL}/dashboards/1001/widgets/2001`, () => {
|
|
41
41
|
return HttpResponse.json({ widgets: [mockWidget] });
|
|
42
42
|
}));
|
|
43
43
|
const widgetOps = client.dashboards.widgets("1001");
|
|
@@ -49,7 +49,7 @@ describe("widgets", () => {
|
|
|
49
49
|
describe("create", () => {
|
|
50
50
|
it("should create a widget", async () => {
|
|
51
51
|
let capturedBody;
|
|
52
|
-
server.use(http.post(`${BASE_URL}/dashboards/1001/widgets
|
|
52
|
+
server.use(http.post(`${BASE_URL}/dashboards/1001/widgets`, async ({ request }) => {
|
|
53
53
|
capturedBody = await request.json();
|
|
54
54
|
return HttpResponse.json({ widgets: [mockWidget] });
|
|
55
55
|
}));
|
|
@@ -68,7 +68,7 @@ describe("widgets", () => {
|
|
|
68
68
|
describe("update", () => {
|
|
69
69
|
it("should update a widget", async () => {
|
|
70
70
|
const updatedWidget = { ...mockWidget, name: "Updated Chart" };
|
|
71
|
-
server.use(http.put(`${BASE_URL}/dashboards/1001/widgets/2001
|
|
71
|
+
server.use(http.put(`${BASE_URL}/dashboards/1001/widgets/2001`, () => {
|
|
72
72
|
return HttpResponse.json({ widgets: [updatedWidget] });
|
|
73
73
|
}));
|
|
74
74
|
const widgetOps = client.dashboards.widgets("1001");
|
|
@@ -80,7 +80,7 @@ describe("widgets", () => {
|
|
|
80
80
|
});
|
|
81
81
|
describe("delete", () => {
|
|
82
82
|
it("should delete a widget", async () => {
|
|
83
|
-
server.use(http.delete(`${BASE_URL}/dashboards/1001/widgets/2001
|
|
83
|
+
server.use(http.delete(`${BASE_URL}/dashboards/1001/widgets/2001`, () => {
|
|
84
84
|
return new HttpResponse(null, { status: 204 });
|
|
85
85
|
}));
|
|
86
86
|
const widgetOps = client.dashboards.widgets("1001");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgets.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/widgets.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"widgets.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/widgets.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -44,21 +44,37 @@ async function init(options) {
|
|
|
44
44
|
catch (error) {
|
|
45
45
|
console.error("Failed to create .claude/commands/:", error);
|
|
46
46
|
}
|
|
47
|
-
// 3. Create CLAUDE.md
|
|
47
|
+
// 3. Create or update CLAUDE.md
|
|
48
48
|
const claudeMdPath = path.join(projectRoot, "CLAUDE.md");
|
|
49
49
|
const templateClaudeMd = path.join(templatesDir, "CLAUDE.md");
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
await fs.
|
|
56
|
-
|
|
50
|
+
const ZOHO_SECTION_MARKER = "<!-- zoho-projects-client -->";
|
|
51
|
+
try {
|
|
52
|
+
if (await fileExists(claudeMdPath)) {
|
|
53
|
+
// Read existing content
|
|
54
|
+
const existingContent = await fs.readFile(claudeMdPath, "utf-8");
|
|
55
|
+
const templateContent = await fs.readFile(templateClaudeMd, "utf-8");
|
|
56
|
+
// Check if already has Zoho Projects section
|
|
57
|
+
if (existingContent.includes(ZOHO_SECTION_MARKER)) {
|
|
58
|
+
console.log("CLAUDE.md already contains Zoho Projects section, skipping");
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Append with clear separator
|
|
62
|
+
const appendContent = `\n\n---\n\n${ZOHO_SECTION_MARKER}\n${templateContent}`;
|
|
63
|
+
await fs.appendFile(claudeMdPath, appendContent);
|
|
64
|
+
console.log("Appended Zoho Projects section to existing CLAUDE.md");
|
|
65
|
+
}
|
|
57
66
|
}
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
else {
|
|
68
|
+
// Create new file with marker
|
|
69
|
+
const templateContent = await fs.readFile(templateClaudeMd, "utf-8");
|
|
70
|
+
const contentWithMarker = `${ZOHO_SECTION_MARKER}\n${templateContent}`;
|
|
71
|
+
await fs.writeFile(claudeMdPath, contentWithMarker);
|
|
72
|
+
console.log("Created CLAUDE.md");
|
|
60
73
|
}
|
|
61
74
|
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error("Failed to create/update CLAUDE.md:", error);
|
|
77
|
+
}
|
|
62
78
|
// 4. Optionally copy types
|
|
63
79
|
if (options.withTypes) {
|
|
64
80
|
const typesDir = path.join(projectRoot, ".ai-types");
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAO3C,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,OAAoB;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,QAAQ,CAAC,yDAAyD,EAAE;gBAClE,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAEhE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type Bottleneck from "bottleneck";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { TokenManager } from "./auth/token-manager.js";
|
|
4
|
-
import { type Project, type Task, type TimeLog, type User, type Tag, type Role, type Profile, type Client, type Contact, type ProjectGroup, type Leave, type Team, type TaskList, type Phase, type Issue, type Forum, type Event, type Attachment, type Document, type DocumentFolder, type Comment, type Follower, type Dashboard, type Widget, type Report, type ReportDataResponse, type SearchResult, type TrashItem, type TrashRestoreResponse, type Portal, type Module, type ModuleField, type Timer, type CustomView, type Blueprint, type BlueprintTransition, type NextTransitionsResponse, type DuringActionsResponse, type CommentableEntityType, type FollowableEntityType, type ListParams, type TimeLogParams, type CreateProjectInput, type UpdateProjectInput, type CreateTaskInput, type UpdateTaskInput, type CreateTaskTimeLogInput, type CreateBugTimeLogInput, type CreateGeneralTimeLogInput, type UpdateTimeLogInput, type InviteUserInput, type AddUserToProjectInput, type UpdateUserInput, type CreateTagInput, type UpdateTagInput, type CreateRoleInput, type UpdateRoleInput, type CreateProfileInput, type UpdateProfileInput, type CreateClientInput, type UpdateClientInput, type CreateContactInput, type UpdateContactInput, type CreateProjectGroupInput, type UpdateProjectGroupInput, type CreateLeaveInput, type UpdateLeaveInput, type CreateTeamInput, type UpdateTeamInput, type AddTeamMembersInput, type CreateTaskListInput, type UpdateTaskListInput, type CreatePhaseInput, type UpdatePhaseInput, type CreateIssueInput, type UpdateIssueInput, type CreateForumInput, type UpdateForumInput, type CreateEventInput, type UpdateEventInput, type
|
|
4
|
+
import { type Project, type Task, type TimeLog, type User, type Tag, type Role, type Profile, type Client, type Contact, type ProjectGroup, type Leave, type Team, type TaskList, type Phase, type Issue, type Forum, type Event, type Attachment, type Document, type DocumentFolder, type Comment, type Follower, type Dashboard, type Widget, type Report, type ReportDataResponse, type SearchResult, type TrashItem, type TrashRestoreResponse, type Portal, type Module, type ModuleField, type Timer, type CustomView, type Blueprint, type BlueprintTransition, type NextTransitionsResponse, type DuringActionsResponse, type CommentableEntityType, type FollowableEntityType, type ListParams, type TimeLogParams, type CreateProjectInput, type UpdateProjectInput, type CreateTaskInput, type UpdateTaskInput, type CreateTaskTimeLogInput, type CreateBugTimeLogInput, type CreateGeneralTimeLogInput, type UpdateTimeLogInput, type InviteUserInput, type AddUserToProjectInput, type UpdateUserInput, type CreateTagInput, type UpdateTagInput, type CreateRoleInput, type UpdateRoleInput, type CreateProfileInput, type UpdateProfileInput, type CreateClientInput, type UpdateClientInput, type CreateContactInput, type UpdateContactInput, type CreateProjectGroupInput, type UpdateProjectGroupInput, type CreateLeaveInput, type UpdateLeaveInput, type CreateTeamInput, type UpdateTeamInput, type AddTeamMembersInput, type CreateTaskListInput, type UpdateTaskListInput, type CreatePhaseInput, type UpdatePhaseInput, type CreateIssueInput, type UpdateIssueInput, type CreateForumInput, type UpdateForumInput, type CreateEventInput, type UpdateEventInput, type ListAttachmentsParams, type AssociateAttachmentInput, type AddAttachmentsToEntityInput, type WorkDriveFile, type WorkDriveUploadInput, type UploadDocumentInput, type UpdateDocumentInput, type CreateDocumentFolderInput, type UpdateDocumentFolderInput, type CreateCommentInput, type UpdateCommentInput, type AddFollowersInput, type CreateDashboardInput, type UpdateDashboardInput, type CreateWidgetInput, type UpdateWidgetInput, type ReportQueryInput, type SearchQueryInput, type TrashFilterInput, type TrashableEntityType, type ModuleFilterInput, type StartTimerInput, type StopTimerInput, type PauseResumeTimerInput, type CreateCustomViewInput, type UpdateCustomViewInput, type CustomViewEntityType, type ExecuteTransitionInput, type BlueprintModuleType } from "./types/index.js";
|
|
5
5
|
import { type RateLimiterConfig } from "./utils/rate-limiter.js";
|
|
6
6
|
import { type AutoPaginateOptions, type PaginatedResponse } from "./utils/pagination.js";
|
|
7
7
|
/**
|
|
@@ -109,10 +109,12 @@ export declare function createZohoProjectsClient(config: ZohoProjectsConfig): {
|
|
|
109
109
|
listAllAcrossProjects(options?: AutoPaginateOptions): Promise<Task[]>;
|
|
110
110
|
/**
|
|
111
111
|
* Create a new task in a project
|
|
112
|
+
* Note: V3 API requires a tasklist to be specified
|
|
112
113
|
*/
|
|
113
114
|
create(projectId: string, data: CreateTaskInput): Promise<Task>;
|
|
114
115
|
/**
|
|
115
116
|
* Update an existing task
|
|
117
|
+
* Note: V3 API uses PATCH method for updates
|
|
116
118
|
*/
|
|
117
119
|
update(projectId: string, taskId: string, data: UpdateTaskInput): Promise<Task>;
|
|
118
120
|
/**
|
|
@@ -161,11 +163,11 @@ export declare function createZohoProjectsClient(config: ZohoProjectsConfig): {
|
|
|
161
163
|
/**
|
|
162
164
|
* Get all time logs for a project with auto-pagination
|
|
163
165
|
*/
|
|
164
|
-
listAll(projectId: string, params: Omit<TimeLogParams, "
|
|
166
|
+
listAll(projectId: string, params: Omit<TimeLogParams, "page" | "per_page">, options?: AutoPaginateOptions): Promise<TimeLog[]>;
|
|
165
167
|
/**
|
|
166
168
|
* Iterate over all time logs for a project with auto-pagination
|
|
167
169
|
*/
|
|
168
|
-
iterate(projectId: string, params: Omit<TimeLogParams, "
|
|
170
|
+
iterate(projectId: string, params: Omit<TimeLogParams, "page" | "per_page">, options?: AutoPaginateOptions): AsyncGenerator<TimeLog, void, unknown>;
|
|
169
171
|
/**
|
|
170
172
|
* List all time logs across all projects
|
|
171
173
|
*/
|
|
@@ -428,22 +430,72 @@ export declare function createZohoProjectsClient(config: ZohoProjectsConfig): {
|
|
|
428
430
|
};
|
|
429
431
|
/**
|
|
430
432
|
* Attachments API (project-scoped)
|
|
431
|
-
* Note:
|
|
433
|
+
* Note: V3 API requires entity_type and entity_id for listing
|
|
434
|
+
* Note: V3 Upload requires WorkDrive integration - use workdrive.upload() then associate()
|
|
432
435
|
*/
|
|
433
436
|
attachments: {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
+
/**
|
|
438
|
+
* List attachments for an entity (V3 API)
|
|
439
|
+
* Note: V3 requires entity_type and entity_id parameters
|
|
440
|
+
* @param projectId - Project ID
|
|
441
|
+
* @param params - List parameters including required entity_type and entity_id
|
|
442
|
+
*/
|
|
443
|
+
listForEntity(projectId: string, params: ListAttachmentsParams): Promise<PaginatedResponse<Attachment>>;
|
|
444
|
+
/**
|
|
445
|
+
* List all attachments for an entity with auto-pagination
|
|
446
|
+
*/
|
|
447
|
+
listAllForEntity(projectId: string, params: Omit<ListAttachmentsParams, "page" | "per_page">, options?: AutoPaginateOptions): Promise<Attachment[]>;
|
|
448
|
+
/**
|
|
449
|
+
* Iterate over all attachments for an entity with auto-pagination
|
|
450
|
+
*/
|
|
451
|
+
iterateForEntity(projectId: string, params: Omit<ListAttachmentsParams, "page" | "per_page">, options?: AutoPaginateOptions): AsyncGenerator<Attachment, void, unknown>;
|
|
452
|
+
/**
|
|
453
|
+
* Convenience method: List attachments for a task
|
|
454
|
+
*/
|
|
455
|
+
listForTask(projectId: string, taskId: string, params?: {
|
|
456
|
+
page?: number;
|
|
457
|
+
per_page?: number;
|
|
458
|
+
}): Promise<PaginatedResponse<Attachment>>;
|
|
459
|
+
/**
|
|
460
|
+
* Convenience method: List attachments for a bug/issue
|
|
461
|
+
*/
|
|
462
|
+
listForIssue(projectId: string, issueId: string, params?: {
|
|
463
|
+
page?: number;
|
|
464
|
+
per_page?: number;
|
|
465
|
+
}): Promise<PaginatedResponse<Attachment>>;
|
|
437
466
|
get(projectId: string, attachmentId: string): Promise<Attachment>;
|
|
438
467
|
/**
|
|
439
|
-
*
|
|
468
|
+
* Associate an existing attachment with an entity (V3 API)
|
|
469
|
+
* Use this after uploading a file to WorkDrive
|
|
440
470
|
* @param projectId - Project ID
|
|
471
|
+
* @param attachmentId - Attachment ID (from WorkDrive upload)
|
|
472
|
+
* @param data - Entity association details
|
|
473
|
+
*/
|
|
474
|
+
associate(projectId: string, attachmentId: string, data: AssociateAttachmentInput): Promise<void>;
|
|
475
|
+
/**
|
|
476
|
+
* Add attachments to an entity using attachment IDs (V3 API)
|
|
477
|
+
* @param projectId - Project ID
|
|
478
|
+
* @param entityType - Entity type (task, bug, forum)
|
|
479
|
+
* @param entityId - Entity ID
|
|
480
|
+
* @param data - Attachment IDs to add
|
|
481
|
+
*/
|
|
482
|
+
addToEntity(projectId: string, entityType: "task" | "bug" | "forum", entityId: string, data: AddAttachmentsToEntityInput): Promise<void>;
|
|
483
|
+
delete(projectId: string, attachmentId: string): Promise<void>;
|
|
484
|
+
};
|
|
485
|
+
/**
|
|
486
|
+
* WorkDrive API for file uploads
|
|
487
|
+
* V3 attachments require uploading to WorkDrive first, then associating with entities
|
|
488
|
+
*/
|
|
489
|
+
workdrive: {
|
|
490
|
+
/**
|
|
491
|
+
* Upload a file to WorkDrive
|
|
492
|
+
* After uploading, use attachments.associate() to link to a task/issue
|
|
441
493
|
* @param file - File buffer or stream
|
|
442
494
|
* @param filename - Original filename
|
|
443
|
-
* @param options -
|
|
495
|
+
* @param options - Upload options including parent_id (folder ID)
|
|
496
|
+
* @returns WorkDrive file object with ID to use for association
|
|
444
497
|
*/
|
|
445
|
-
upload(
|
|
446
|
-
delete(projectId: string, attachmentId: string): Promise<void>;
|
|
498
|
+
upload(file: Buffer | NodeJS.ReadableStream, filename: string, options: WorkDriveUploadInput): Promise<WorkDriveFile>;
|
|
447
499
|
};
|
|
448
500
|
/**
|
|
449
501
|
* Documents API (project-scoped)
|