@panoptic-it-solutions/zoho-projects-client 0.1.3 → 0.2.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/__tests__/fixtures/attachments.d.ts +126 -0
- package/dist/__tests__/fixtures/attachments.d.ts.map +1 -0
- package/dist/__tests__/fixtures/attachments.js +60 -0
- package/dist/__tests__/fixtures/attachments.js.map +1 -0
- package/dist/__tests__/fixtures/blueprints.d.ts +114 -0
- package/dist/__tests__/fixtures/blueprints.d.ts.map +1 -0
- package/dist/__tests__/fixtures/blueprints.js +102 -0
- package/dist/__tests__/fixtures/blueprints.js.map +1 -0
- package/dist/__tests__/fixtures/comments.d.ts +92 -0
- package/dist/__tests__/fixtures/comments.d.ts.map +1 -0
- package/dist/__tests__/fixtures/comments.js +42 -0
- package/dist/__tests__/fixtures/comments.js.map +1 -0
- package/dist/__tests__/fixtures/customviews.d.ts +5 -0
- package/dist/__tests__/fixtures/customviews.d.ts.map +1 -0
- package/dist/__tests__/fixtures/customviews.js +55 -0
- package/dist/__tests__/fixtures/customviews.js.map +1 -0
- package/dist/__tests__/fixtures/events.d.ts +133 -0
- package/dist/__tests__/fixtures/events.d.ts.map +1 -0
- package/dist/__tests__/fixtures/events.js +75 -0
- package/dist/__tests__/fixtures/events.js.map +1 -0
- package/dist/__tests__/fixtures/forums.d.ts +114 -0
- package/dist/__tests__/fixtures/forums.d.ts.map +1 -0
- package/dist/__tests__/fixtures/forums.js +53 -0
- package/dist/__tests__/fixtures/forums.js.map +1 -0
- package/dist/__tests__/fixtures/groups.d.ts +25 -0
- package/dist/__tests__/fixtures/groups.d.ts.map +1 -0
- package/dist/__tests__/fixtures/groups.js +36 -0
- package/dist/__tests__/fixtures/groups.js.map +1 -0
- package/dist/__tests__/fixtures/index.d.ts +22 -0
- package/dist/__tests__/fixtures/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/index.js +22 -0
- package/dist/__tests__/fixtures/index.js.map +1 -0
- package/dist/__tests__/fixtures/issues.d.ts +196 -0
- package/dist/__tests__/fixtures/issues.d.ts.map +1 -0
- package/dist/__tests__/fixtures/issues.js +80 -0
- package/dist/__tests__/fixtures/issues.js.map +1 -0
- package/dist/__tests__/fixtures/modules.d.ts +6 -0
- package/dist/__tests__/fixtures/modules.d.ts.map +1 -0
- package/dist/__tests__/fixtures/modules.js +103 -0
- package/dist/__tests__/fixtures/modules.js.map +1 -0
- package/dist/__tests__/fixtures/phases.d.ts +123 -0
- package/dist/__tests__/fixtures/phases.d.ts.map +1 -0
- package/dist/__tests__/fixtures/phases.js +68 -0
- package/dist/__tests__/fixtures/phases.js.map +1 -0
- package/dist/__tests__/fixtures/portals.d.ts +4 -0
- package/dist/__tests__/fixtures/portals.d.ts.map +1 -0
- package/dist/__tests__/fixtures/portals.js +48 -0
- package/dist/__tests__/fixtures/portals.js.map +1 -0
- package/dist/__tests__/fixtures/projects.d.ts +298 -0
- package/dist/__tests__/fixtures/projects.d.ts.map +1 -0
- package/dist/__tests__/fixtures/projects.js +44 -0
- package/dist/__tests__/fixtures/projects.js.map +1 -0
- package/dist/__tests__/fixtures/tags.d.ts +22 -0
- package/dist/__tests__/fixtures/tags.d.ts.map +1 -0
- package/dist/__tests__/fixtures/tags.js +33 -0
- package/dist/__tests__/fixtures/tags.js.map +1 -0
- package/dist/__tests__/fixtures/tasklists.d.ts +107 -0
- package/dist/__tests__/fixtures/tasklists.d.ts.map +1 -0
- package/dist/__tests__/fixtures/tasklists.js +31 -0
- package/dist/__tests__/fixtures/tasklists.js.map +1 -0
- package/dist/__tests__/fixtures/tasks.d.ts +209 -0
- package/dist/__tests__/fixtures/tasks.d.ts.map +1 -0
- package/dist/__tests__/fixtures/tasks.js +69 -0
- package/dist/__tests__/fixtures/tasks.js.map +1 -0
- package/dist/__tests__/fixtures/timelogs.d.ts +151 -0
- package/dist/__tests__/fixtures/timelogs.d.ts.map +1 -0
- package/dist/__tests__/fixtures/timelogs.js +79 -0
- package/dist/__tests__/fixtures/timelogs.js.map +1 -0
- package/dist/__tests__/fixtures/timers.d.ts +5 -0
- package/dist/__tests__/fixtures/timers.d.ts.map +1 -0
- package/dist/__tests__/fixtures/timers.js +50 -0
- package/dist/__tests__/fixtures/timers.js.map +1 -0
- package/dist/__tests__/fixtures/users.d.ts +55 -0
- package/dist/__tests__/fixtures/users.d.ts.map +1 -0
- package/dist/__tests__/fixtures/users.js +47 -0
- package/dist/__tests__/fixtures/users.js.map +1 -0
- package/dist/__tests__/integration/setup.d.ts +14 -0
- package/dist/__tests__/integration/setup.d.ts.map +1 -0
- package/dist/__tests__/integration/setup.js +52 -0
- package/dist/__tests__/integration/setup.js.map +1 -0
- package/dist/__tests__/mocks/handlers.d.ts +34 -0
- package/dist/__tests__/mocks/handlers.d.ts.map +1 -0
- package/dist/__tests__/mocks/handlers.js +49 -0
- package/dist/__tests__/mocks/handlers.js.map +1 -0
- package/dist/__tests__/mocks/server.d.ts +2 -0
- package/dist/__tests__/mocks/server.d.ts.map +1 -0
- package/dist/__tests__/mocks/server.js +7 -0
- package/dist/__tests__/mocks/server.js.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +18 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/__tests__/unit/client/attachments.test.d.ts +2 -0
- package/dist/__tests__/unit/client/attachments.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/attachments.test.js +55 -0
- package/dist/__tests__/unit/client/attachments.test.js.map +1 -0
- package/dist/__tests__/unit/client/blueprints.test.d.ts +2 -0
- package/dist/__tests__/unit/client/blueprints.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/blueprints.test.js +127 -0
- package/dist/__tests__/unit/client/blueprints.test.js.map +1 -0
- package/dist/__tests__/unit/client/comments.test.d.ts +2 -0
- package/dist/__tests__/unit/client/comments.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/comments.test.js +95 -0
- package/dist/__tests__/unit/client/comments.test.js.map +1 -0
- package/dist/__tests__/unit/client/customviews.test.d.ts +2 -0
- package/dist/__tests__/unit/client/customviews.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/customviews.test.js +112 -0
- package/dist/__tests__/unit/client/customviews.test.js.map +1 -0
- package/dist/__tests__/unit/client/events.test.d.ts +2 -0
- package/dist/__tests__/unit/client/events.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/events.test.js +79 -0
- package/dist/__tests__/unit/client/events.test.js.map +1 -0
- package/dist/__tests__/unit/client/forums.test.d.ts +2 -0
- package/dist/__tests__/unit/client/forums.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/forums.test.js +75 -0
- package/dist/__tests__/unit/client/forums.test.js.map +1 -0
- package/dist/__tests__/unit/client/groups.test.d.ts +2 -0
- package/dist/__tests__/unit/client/groups.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/groups.test.js +74 -0
- package/dist/__tests__/unit/client/groups.test.js.map +1 -0
- package/dist/__tests__/unit/client/issues.test.d.ts +2 -0
- package/dist/__tests__/unit/client/issues.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/issues.test.js +75 -0
- package/dist/__tests__/unit/client/issues.test.js.map +1 -0
- package/dist/__tests__/unit/client/modules.test.d.ts +2 -0
- package/dist/__tests__/unit/client/modules.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/modules.test.js +92 -0
- package/dist/__tests__/unit/client/modules.test.js.map +1 -0
- package/dist/__tests__/unit/client/phases.test.d.ts +2 -0
- package/dist/__tests__/unit/client/phases.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/phases.test.js +79 -0
- package/dist/__tests__/unit/client/phases.test.js.map +1 -0
- package/dist/__tests__/unit/client/portals.test.d.ts +2 -0
- package/dist/__tests__/unit/client/portals.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/portals.test.js +54 -0
- package/dist/__tests__/unit/client/portals.test.js.map +1 -0
- package/dist/__tests__/unit/client/projects.test.d.ts +2 -0
- package/dist/__tests__/unit/client/projects.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/projects.test.js +171 -0
- package/dist/__tests__/unit/client/projects.test.js.map +1 -0
- package/dist/__tests__/unit/client/tags.test.d.ts +2 -0
- package/dist/__tests__/unit/client/tags.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/tags.test.js +99 -0
- package/dist/__tests__/unit/client/tags.test.js.map +1 -0
- package/dist/__tests__/unit/client/tasklists.test.d.ts +2 -0
- package/dist/__tests__/unit/client/tasklists.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/tasklists.test.js +75 -0
- package/dist/__tests__/unit/client/tasklists.test.js.map +1 -0
- package/dist/__tests__/unit/client/tasks.test.d.ts +2 -0
- package/dist/__tests__/unit/client/tasks.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/tasks.test.js +157 -0
- package/dist/__tests__/unit/client/tasks.test.js.map +1 -0
- package/dist/__tests__/unit/client/timers.test.d.ts +2 -0
- package/dist/__tests__/unit/client/timers.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/timers.test.js +122 -0
- package/dist/__tests__/unit/client/timers.test.js.map +1 -0
- package/dist/__tests__/unit/client/users.test.d.ts +2 -0
- package/dist/__tests__/unit/client/users.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/users.test.js +89 -0
- package/dist/__tests__/unit/client/users.test.js.map +1 -0
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +130 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/client.d.ts +2613 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1623 -1
- package/dist/client.js.map +1 -1
- package/dist/types/attachments.d.ts +1545 -0
- package/dist/types/attachments.d.ts.map +1 -0
- package/dist/types/attachments.js +78 -0
- package/dist/types/attachments.js.map +1 -0
- package/dist/types/blueprints.d.ts +5070 -0
- package/dist/types/blueprints.d.ts.map +1 -0
- package/dist/types/blueprints.js +111 -0
- package/dist/types/blueprints.js.map +1 -0
- package/dist/types/clients.d.ts +384 -0
- package/dist/types/clients.d.ts.map +1 -0
- package/dist/types/clients.js +77 -0
- package/dist/types/clients.js.map +1 -0
- package/dist/types/comments.d.ts +1111 -0
- package/dist/types/comments.d.ts.map +1 -0
- package/dist/types/comments.js +73 -0
- package/dist/types/comments.js.map +1 -0
- package/dist/types/contacts.d.ts +444 -0
- package/dist/types/contacts.d.ts.map +1 -0
- package/dist/types/contacts.js +86 -0
- package/dist/types/contacts.js.map +1 -0
- package/dist/types/customviews.d.ts +1593 -0
- package/dist/types/customviews.d.ts.map +1 -0
- package/dist/types/customviews.js +117 -0
- package/dist/types/customviews.js.map +1 -0
- package/dist/types/dashboards.d.ts +1675 -0
- package/dist/types/dashboards.d.ts.map +1 -0
- package/dist/types/dashboards.js +77 -0
- package/dist/types/dashboards.js.map +1 -0
- package/dist/types/documents.d.ts +2322 -0
- package/dist/types/documents.d.ts.map +1 -0
- package/dist/types/documents.js +121 -0
- package/dist/types/documents.js.map +1 -0
- package/dist/types/events.d.ts +1747 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +122 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/followers.d.ts +198 -0
- package/dist/types/followers.d.ts.map +1 -0
- package/dist/types/followers.js +44 -0
- package/dist/types/followers.js.map +1 -0
- package/dist/types/forums.d.ts +1443 -0
- package/dist/types/forums.d.ts.map +1 -0
- package/dist/types/forums.js +89 -0
- package/dist/types/forums.js.map +1 -0
- package/dist/types/groups.d.ts +237 -0
- package/dist/types/groups.d.ts.map +1 -0
- package/dist/types/groups.js +52 -0
- package/dist/types/groups.js.map +1 -0
- package/dist/types/index.d.ts +31 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +58 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/issues.d.ts +2600 -0
- package/dist/types/issues.d.ts.map +1 -0
- package/dist/types/issues.js +147 -0
- package/dist/types/issues.js.map +1 -0
- package/dist/types/leaves.d.ts +435 -0
- package/dist/types/leaves.d.ts.map +1 -0
- package/dist/types/leaves.js +92 -0
- package/dist/types/leaves.js.map +1 -0
- package/dist/types/modules.d.ts +469 -0
- package/dist/types/modules.d.ts.map +1 -0
- package/dist/types/modules.js +91 -0
- package/dist/types/modules.js.map +1 -0
- package/dist/types/phases.d.ts +1564 -0
- package/dist/types/phases.d.ts.map +1 -0
- package/dist/types/phases.js +98 -0
- package/dist/types/phases.js.map +1 -0
- package/dist/types/portals.d.ts +1050 -0
- package/dist/types/portals.d.ts.map +1 -0
- package/dist/types/portals.js +58 -0
- package/dist/types/portals.js.map +1 -0
- package/dist/types/profiles.d.ts +243 -0
- package/dist/types/profiles.d.ts.map +1 -0
- package/dist/types/profiles.js +59 -0
- package/dist/types/profiles.js.map +1 -0
- package/dist/types/projects.d.ts +128 -0
- package/dist/types/projects.d.ts.map +1 -1
- package/dist/types/projects.js +44 -0
- package/dist/types/projects.js.map +1 -1
- package/dist/types/reports.d.ts +2010 -0
- package/dist/types/reports.d.ts.map +1 -0
- package/dist/types/reports.js +110 -0
- package/dist/types/reports.js.map +1 -0
- package/dist/types/roles.d.ts +243 -0
- package/dist/types/roles.d.ts.map +1 -0
- package/dist/types/roles.js +59 -0
- package/dist/types/roles.js.map +1 -0
- package/dist/types/search.d.ts +1091 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +83 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/tags.d.ts +198 -0
- package/dist/types/tags.d.ts.map +1 -0
- package/dist/types/tags.js +49 -0
- package/dist/types/tags.js.map +1 -0
- package/dist/types/tasklists.d.ts +1317 -0
- package/dist/types/tasklists.d.ts.map +1 -0
- package/dist/types/tasklists.js +78 -0
- package/dist/types/tasklists.js.map +1 -0
- package/dist/types/tasks.d.ts +182 -0
- package/dist/types/tasks.d.ts.map +1 -1
- package/dist/types/tasks.js +52 -0
- package/dist/types/tasks.js.map +1 -1
- package/dist/types/teams.d.ts +504 -0
- package/dist/types/teams.d.ts.map +1 -0
- package/dist/types/teams.js +75 -0
- package/dist/types/teams.js.map +1 -0
- package/dist/types/timelogs.d.ts +245 -0
- package/dist/types/timelogs.d.ts.map +1 -1
- package/dist/types/timelogs.js +53 -0
- package/dist/types/timelogs.js.map +1 -1
- package/dist/types/timers.d.ts +1334 -0
- package/dist/types/timers.d.ts.map +1 -0
- package/dist/types/timers.js +108 -0
- package/dist/types/timers.js.map +1 -0
- package/dist/types/trash.d.ts +1447 -0
- package/dist/types/trash.d.ts.map +1 -0
- package/dist/types/trash.js +77 -0
- package/dist/types/trash.js.map +1 -0
- package/dist/types/users.d.ts +100 -0
- package/dist/types/users.d.ts.map +1 -1
- package/dist/types/users.js +56 -0
- package/dist/types/users.js.map +1 -1
- package/dist/types/widgets.d.ts +1083 -0
- package/dist/types/widgets.d.ts.map +1 -0
- package/dist/types/widgets.js +87 -0
- package/dist/types/widgets.js.map +1 -0
- package/package.json +15 -3
- package/templates/CLAUDE.md +66 -0
- package/templates/commands/zoho-auth.md +195 -0
- package/templates/commands/zoho-examples.md +375 -0
- package/templates/commands/zoho-projects.md +183 -0
- package/templates/types/zoho-projects-api.d.ts +364 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import type { Task } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a mock task fixture
|
|
4
|
+
*/
|
|
5
|
+
export declare function createTaskFixture(overrides?: Partial<Task>): Task;
|
|
6
|
+
/**
|
|
7
|
+
* Create multiple task fixtures
|
|
8
|
+
*/
|
|
9
|
+
export declare function createTaskListFixture(count?: number): Task[];
|
|
10
|
+
/**
|
|
11
|
+
* Create a task API response
|
|
12
|
+
*/
|
|
13
|
+
export declare function createTaskListResponse(tasks: Task[], hasMore?: boolean): {
|
|
14
|
+
tasks: import("zod").objectOutputType<{
|
|
15
|
+
id: import("zod").ZodNumber;
|
|
16
|
+
id_string: import("zod").ZodString;
|
|
17
|
+
key: import("zod").ZodOptional<import("zod").ZodString>;
|
|
18
|
+
name: import("zod").ZodString;
|
|
19
|
+
description: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
20
|
+
status: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
21
|
+
id: import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>;
|
|
22
|
+
name: import("zod").ZodString;
|
|
23
|
+
type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
|
+
color_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
25
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
26
|
+
id: string | number;
|
|
27
|
+
name: string;
|
|
28
|
+
type?: string | undefined;
|
|
29
|
+
color_code?: string | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
id: string | number;
|
|
32
|
+
name: string;
|
|
33
|
+
type?: string | undefined;
|
|
34
|
+
color_code?: string | undefined;
|
|
35
|
+
}>>;
|
|
36
|
+
completed: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
37
|
+
percent_complete: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>>;
|
|
38
|
+
priority: import("zod").ZodOptional<import("zod").ZodString>;
|
|
39
|
+
start_date: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
40
|
+
start_date_long: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>;
|
|
41
|
+
end_date: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
42
|
+
end_date_long: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>;
|
|
43
|
+
created_time: import("zod").ZodOptional<import("zod").ZodString>;
|
|
44
|
+
created_time_long: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
45
|
+
created_time_format: import("zod").ZodOptional<import("zod").ZodString>;
|
|
46
|
+
last_updated_time: import("zod").ZodOptional<import("zod").ZodString>;
|
|
47
|
+
last_updated_time_long: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
48
|
+
duration: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>>>;
|
|
49
|
+
duration_type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
50
|
+
work: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
51
|
+
work_type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
52
|
+
created_by: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>>;
|
|
53
|
+
created_person: import("zod").ZodOptional<import("zod").ZodString>;
|
|
54
|
+
details: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
55
|
+
owners: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
56
|
+
id: import("zod").ZodString;
|
|
57
|
+
name: import("zod").ZodString;
|
|
58
|
+
email: import("zod").ZodOptional<import("zod").ZodString>;
|
|
59
|
+
zpuid: import("zod").ZodOptional<import("zod").ZodString>;
|
|
60
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
61
|
+
id: string;
|
|
62
|
+
name: string;
|
|
63
|
+
email?: string | undefined;
|
|
64
|
+
zpuid?: string | undefined;
|
|
65
|
+
}, {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
email?: string | undefined;
|
|
69
|
+
zpuid?: string | undefined;
|
|
70
|
+
}>, "many">>;
|
|
71
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
72
|
+
owners?: {
|
|
73
|
+
id: string;
|
|
74
|
+
name: string;
|
|
75
|
+
email?: string | undefined;
|
|
76
|
+
zpuid?: string | undefined;
|
|
77
|
+
}[] | undefined;
|
|
78
|
+
}, {
|
|
79
|
+
owners?: {
|
|
80
|
+
id: string;
|
|
81
|
+
name: string;
|
|
82
|
+
email?: string | undefined;
|
|
83
|
+
zpuid?: string | undefined;
|
|
84
|
+
}[] | undefined;
|
|
85
|
+
}>>;
|
|
86
|
+
tasklist: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
87
|
+
id: import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>;
|
|
88
|
+
id_string: import("zod").ZodOptional<import("zod").ZodString>;
|
|
89
|
+
name: import("zod").ZodString;
|
|
90
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
91
|
+
id: string | number;
|
|
92
|
+
name: string;
|
|
93
|
+
id_string?: string | undefined;
|
|
94
|
+
}, {
|
|
95
|
+
id: string | number;
|
|
96
|
+
name: string;
|
|
97
|
+
id_string?: string | undefined;
|
|
98
|
+
}>>;
|
|
99
|
+
milestone_id: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>>>;
|
|
100
|
+
parent_task_id: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>>>;
|
|
101
|
+
root_task_id: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodString]>>>;
|
|
102
|
+
isparent: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
103
|
+
subtasks: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
104
|
+
depth: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
105
|
+
order_sequence: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
106
|
+
billingtype: import("zod").ZodOptional<import("zod").ZodString>;
|
|
107
|
+
log_hours: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
108
|
+
billable_hours: import("zod").ZodOptional<import("zod").ZodString>;
|
|
109
|
+
non_billable_hours: import("zod").ZodOptional<import("zod").ZodString>;
|
|
110
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
111
|
+
billable_hours?: string | undefined;
|
|
112
|
+
non_billable_hours?: string | undefined;
|
|
113
|
+
}, {
|
|
114
|
+
billable_hours?: string | undefined;
|
|
115
|
+
non_billable_hours?: string | undefined;
|
|
116
|
+
}>>;
|
|
117
|
+
project: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
118
|
+
id: import("zod").ZodNumber;
|
|
119
|
+
id_string: import("zod").ZodOptional<import("zod").ZodString>;
|
|
120
|
+
name: import("zod").ZodString;
|
|
121
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
122
|
+
id: number;
|
|
123
|
+
name: string;
|
|
124
|
+
id_string?: string | undefined;
|
|
125
|
+
}, {
|
|
126
|
+
id: number;
|
|
127
|
+
name: string;
|
|
128
|
+
id_string?: string | undefined;
|
|
129
|
+
}>>;
|
|
130
|
+
link: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
131
|
+
self: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
132
|
+
url: import("zod").ZodString;
|
|
133
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
134
|
+
url: string;
|
|
135
|
+
}, {
|
|
136
|
+
url: string;
|
|
137
|
+
}>>;
|
|
138
|
+
timesheet: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
139
|
+
url: import("zod").ZodString;
|
|
140
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
141
|
+
url: string;
|
|
142
|
+
}, {
|
|
143
|
+
url: string;
|
|
144
|
+
}>>;
|
|
145
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
146
|
+
self: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
147
|
+
url: import("zod").ZodString;
|
|
148
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
149
|
+
url: string;
|
|
150
|
+
}, {
|
|
151
|
+
url: string;
|
|
152
|
+
}>>;
|
|
153
|
+
timesheet: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
154
|
+
url: import("zod").ZodString;
|
|
155
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
156
|
+
url: string;
|
|
157
|
+
}, {
|
|
158
|
+
url: string;
|
|
159
|
+
}>>;
|
|
160
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
161
|
+
self: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
162
|
+
url: import("zod").ZodString;
|
|
163
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
164
|
+
url: string;
|
|
165
|
+
}, {
|
|
166
|
+
url: string;
|
|
167
|
+
}>>;
|
|
168
|
+
timesheet: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
169
|
+
url: import("zod").ZodString;
|
|
170
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
171
|
+
url: string;
|
|
172
|
+
}, {
|
|
173
|
+
url: string;
|
|
174
|
+
}>>;
|
|
175
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
176
|
+
tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
177
|
+
id: import("zod").ZodNumber;
|
|
178
|
+
name: import("zod").ZodString;
|
|
179
|
+
color_class: import("zod").ZodOptional<import("zod").ZodString>;
|
|
180
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
181
|
+
id: number;
|
|
182
|
+
name: string;
|
|
183
|
+
color_class?: string | undefined;
|
|
184
|
+
}, {
|
|
185
|
+
id: number;
|
|
186
|
+
name: string;
|
|
187
|
+
color_class?: string | undefined;
|
|
188
|
+
}>, "many">>;
|
|
189
|
+
custom_fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
190
|
+
label_name: import("zod").ZodString;
|
|
191
|
+
value: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean, import("zod").ZodNull]>;
|
|
192
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
193
|
+
value: string | number | boolean | null;
|
|
194
|
+
label_name: string;
|
|
195
|
+
}, {
|
|
196
|
+
value: string | number | boolean | null;
|
|
197
|
+
label_name: string;
|
|
198
|
+
}>, "many">>;
|
|
199
|
+
dependency: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
200
|
+
task_followers: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
201
|
+
}, import("zod").ZodTypeAny, "passthrough">[];
|
|
202
|
+
page_info: {
|
|
203
|
+
page: number;
|
|
204
|
+
per_page: number;
|
|
205
|
+
has_more_page: boolean;
|
|
206
|
+
total_count: number;
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/tasks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,OAAO,CAAC,IAAI,CAAM,GAAG,IAAI,CAwCrE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,GAAE,OAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task fixtures for testing
|
|
3
|
+
*/
|
|
4
|
+
import { faker } from "@faker-js/faker";
|
|
5
|
+
/**
|
|
6
|
+
* Create a mock task fixture
|
|
7
|
+
*/
|
|
8
|
+
export function createTaskFixture(overrides = {}) {
|
|
9
|
+
const id = faker.number.int({ min: 100000, max: 999999 });
|
|
10
|
+
return {
|
|
11
|
+
id,
|
|
12
|
+
id_string: id.toString(),
|
|
13
|
+
key: `TASK-${id}`,
|
|
14
|
+
name: faker.lorem.sentence(4),
|
|
15
|
+
description: faker.lorem.paragraph(),
|
|
16
|
+
status: {
|
|
17
|
+
id: 1,
|
|
18
|
+
name: "Open",
|
|
19
|
+
type: "open",
|
|
20
|
+
color_code: "#4caf50",
|
|
21
|
+
},
|
|
22
|
+
completed: false,
|
|
23
|
+
percent_complete: faker.number.int({ min: 0, max: 100 }),
|
|
24
|
+
priority: faker.helpers.arrayElement(["None", "Low", "Medium", "High"]),
|
|
25
|
+
start_date: faker.date.past().toLocaleDateString("en-US", {
|
|
26
|
+
month: "2-digit",
|
|
27
|
+
day: "2-digit",
|
|
28
|
+
year: "numeric",
|
|
29
|
+
}),
|
|
30
|
+
start_date_long: faker.date.past().getTime(),
|
|
31
|
+
end_date: faker.date.future().toLocaleDateString("en-US", {
|
|
32
|
+
month: "2-digit",
|
|
33
|
+
day: "2-digit",
|
|
34
|
+
year: "numeric",
|
|
35
|
+
}),
|
|
36
|
+
end_date_long: faker.date.future().getTime(),
|
|
37
|
+
created_time: faker.date.past().toISOString(),
|
|
38
|
+
created_time_long: faker.date.past().getTime(),
|
|
39
|
+
created_by: faker.string.numeric(10),
|
|
40
|
+
created_person: faker.person.fullName(),
|
|
41
|
+
project: {
|
|
42
|
+
id: faker.number.int({ min: 100000, max: 999999 }),
|
|
43
|
+
id_string: faker.string.numeric(10),
|
|
44
|
+
name: faker.company.name() + " Project",
|
|
45
|
+
},
|
|
46
|
+
...overrides,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create multiple task fixtures
|
|
51
|
+
*/
|
|
52
|
+
export function createTaskListFixture(count = 5) {
|
|
53
|
+
return Array.from({ length: count }, () => createTaskFixture());
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a task API response
|
|
57
|
+
*/
|
|
58
|
+
export function createTaskListResponse(tasks, hasMore = false) {
|
|
59
|
+
return {
|
|
60
|
+
tasks,
|
|
61
|
+
page_info: {
|
|
62
|
+
page: 1,
|
|
63
|
+
per_page: 100,
|
|
64
|
+
has_more_page: hasMore,
|
|
65
|
+
total_count: tasks.length,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAA2B,EAAE;IAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,OAAO;QACL,EAAE;QACF,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;QACxB,GAAG,EAAE,QAAQ,EAAE,EAAE;QACjB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7B,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;QACpC,MAAM,EAAE;YACN,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,SAAS;SACtB;QACD,SAAS,EAAE,KAAK;QAChB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACxD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;QAC5C,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACxD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAC5C,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAC7C,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;QAC9C,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,OAAO,EAAE;YACP,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAClD,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,UAAU;SACxC;QACD,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,CAAC;IACrD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,UAAmB,KAAK;IAC5E,OAAO;QACL,KAAK;QACL,SAAS,EAAE;YACT,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,GAAG;YACb,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,MAAM;SAC1B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { TimeLog } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a mock timelog fixture
|
|
4
|
+
*/
|
|
5
|
+
export declare function createTimeLogFixture(overrides?: Partial<TimeLog>): TimeLog;
|
|
6
|
+
/**
|
|
7
|
+
* Create multiple timelog fixtures
|
|
8
|
+
*/
|
|
9
|
+
export declare function createTimeLogListFixture(count?: number): TimeLog[];
|
|
10
|
+
/**
|
|
11
|
+
* Create a timelog API response (nested date structure)
|
|
12
|
+
*/
|
|
13
|
+
export declare function createTimeLogListResponse(timelogs: TimeLog[], hasMore?: boolean): {
|
|
14
|
+
timelogs: {
|
|
15
|
+
date: {
|
|
16
|
+
date: string;
|
|
17
|
+
display_format: string;
|
|
18
|
+
tasklogs: import("zod").objectOutputType<{
|
|
19
|
+
id: import("zod").ZodNumber;
|
|
20
|
+
id_string: import("zod").ZodString;
|
|
21
|
+
hours: import("zod").ZodNumber;
|
|
22
|
+
minutes: import("zod").ZodNumber;
|
|
23
|
+
hours_display: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
|
+
total_minutes: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
25
|
+
log_date: import("zod").ZodOptional<import("zod").ZodString>;
|
|
26
|
+
log_date_long: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
27
|
+
log_date_format: import("zod").ZodOptional<import("zod").ZodString>;
|
|
28
|
+
date: import("zod").ZodOptional<import("zod").ZodString>;
|
|
29
|
+
notes: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
30
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
31
|
+
owner_id: import("zod").ZodNumber;
|
|
32
|
+
owner_name: import("zod").ZodString;
|
|
33
|
+
owner_zpuid: import("zod").ZodOptional<import("zod").ZodString>;
|
|
34
|
+
bill_status: import("zod").ZodOptional<import("zod").ZodEnum<["Billable", "Non Billable"]>>;
|
|
35
|
+
cost: import("zod").ZodOptional<import("zod").ZodString>;
|
|
36
|
+
approval_status: import("zod").ZodOptional<import("zod").ZodEnum<["Approved", "Pending", "Rejected"]>>;
|
|
37
|
+
approver_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
38
|
+
approver_zpuid: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
39
|
+
created_date: import("zod").ZodOptional<import("zod").ZodString>;
|
|
40
|
+
created_time_long: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
41
|
+
created_time_format: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
|
+
last_modified_date: import("zod").ZodOptional<import("zod").ZodString>;
|
|
43
|
+
last_modified_time_long: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
44
|
+
last_modified_time_format: import("zod").ZodOptional<import("zod").ZodString>;
|
|
45
|
+
start_time: import("zod").ZodOptional<import("zod").ZodString>;
|
|
46
|
+
end_time: import("zod").ZodOptional<import("zod").ZodString>;
|
|
47
|
+
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
48
|
+
id: import("zod").ZodNumber;
|
|
49
|
+
id_string: import("zod").ZodOptional<import("zod").ZodString>;
|
|
50
|
+
name: import("zod").ZodString;
|
|
51
|
+
is_sub_task: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
52
|
+
sub_task_level: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
53
|
+
is_parent: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
54
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
55
|
+
id: number;
|
|
56
|
+
name: string;
|
|
57
|
+
id_string?: string | undefined;
|
|
58
|
+
is_sub_task?: boolean | undefined;
|
|
59
|
+
sub_task_level?: number | undefined;
|
|
60
|
+
is_parent?: boolean | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
id: number;
|
|
63
|
+
name: string;
|
|
64
|
+
id_string?: string | undefined;
|
|
65
|
+
is_sub_task?: boolean | undefined;
|
|
66
|
+
sub_task_level?: number | undefined;
|
|
67
|
+
is_parent?: boolean | undefined;
|
|
68
|
+
}>>;
|
|
69
|
+
task_list: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
70
|
+
id: import("zod").ZodNumber;
|
|
71
|
+
name: import("zod").ZodString;
|
|
72
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
73
|
+
id: number;
|
|
74
|
+
name: string;
|
|
75
|
+
}, {
|
|
76
|
+
id: number;
|
|
77
|
+
name: string;
|
|
78
|
+
}>>;
|
|
79
|
+
project: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
80
|
+
id: import("zod").ZodNumber;
|
|
81
|
+
id_string: import("zod").ZodOptional<import("zod").ZodString>;
|
|
82
|
+
name: import("zod").ZodString;
|
|
83
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
84
|
+
id: number;
|
|
85
|
+
name: string;
|
|
86
|
+
id_string?: string | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
id: number;
|
|
89
|
+
name: string;
|
|
90
|
+
id_string?: string | undefined;
|
|
91
|
+
}>>;
|
|
92
|
+
bug: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
93
|
+
id: import("zod").ZodNumber;
|
|
94
|
+
id_string: import("zod").ZodOptional<import("zod").ZodString>;
|
|
95
|
+
title: import("zod").ZodString;
|
|
96
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
97
|
+
id: number;
|
|
98
|
+
title: string;
|
|
99
|
+
id_string?: string | undefined;
|
|
100
|
+
}, {
|
|
101
|
+
id: number;
|
|
102
|
+
title: string;
|
|
103
|
+
id_string?: string | undefined;
|
|
104
|
+
}>>;
|
|
105
|
+
invoice_id: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>;
|
|
106
|
+
link: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
107
|
+
self: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
108
|
+
url: import("zod").ZodString;
|
|
109
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
110
|
+
url: string;
|
|
111
|
+
}, {
|
|
112
|
+
url: string;
|
|
113
|
+
}>>;
|
|
114
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
115
|
+
self: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
116
|
+
url: import("zod").ZodString;
|
|
117
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
118
|
+
url: string;
|
|
119
|
+
}, {
|
|
120
|
+
url: string;
|
|
121
|
+
}>>;
|
|
122
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
123
|
+
self: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
124
|
+
url: import("zod").ZodString;
|
|
125
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
126
|
+
url: string;
|
|
127
|
+
}, {
|
|
128
|
+
url: string;
|
|
129
|
+
}>>;
|
|
130
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
131
|
+
custom_fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
132
|
+
label_name: import("zod").ZodString;
|
|
133
|
+
value: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean, import("zod").ZodNull]>;
|
|
134
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
135
|
+
value: string | number | boolean | null;
|
|
136
|
+
label_name: string;
|
|
137
|
+
}, {
|
|
138
|
+
value: string | number | boolean | null;
|
|
139
|
+
label_name: string;
|
|
140
|
+
}>, "many">>;
|
|
141
|
+
}, import("zod").ZodTypeAny, "passthrough">[];
|
|
142
|
+
}[];
|
|
143
|
+
};
|
|
144
|
+
page_info: {
|
|
145
|
+
page: number;
|
|
146
|
+
per_page: number;
|
|
147
|
+
has_more_page: boolean;
|
|
148
|
+
total_count: number;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=timelogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelogs.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/timelogs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,CAmC9E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,OAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BzB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TimeLog fixtures for testing
|
|
3
|
+
*/
|
|
4
|
+
import { faker } from "@faker-js/faker";
|
|
5
|
+
/**
|
|
6
|
+
* Create a mock timelog fixture
|
|
7
|
+
*/
|
|
8
|
+
export function createTimeLogFixture(overrides = {}) {
|
|
9
|
+
const id = faker.number.int({ min: 100000, max: 999999 });
|
|
10
|
+
const hours = faker.number.int({ min: 0, max: 8 });
|
|
11
|
+
const minutes = faker.number.int({ min: 0, max: 59 });
|
|
12
|
+
return {
|
|
13
|
+
id,
|
|
14
|
+
id_string: id.toString(),
|
|
15
|
+
hours,
|
|
16
|
+
minutes,
|
|
17
|
+
hours_display: `${hours}:${minutes.toString().padStart(2, "0")}`,
|
|
18
|
+
total_minutes: hours * 60 + minutes,
|
|
19
|
+
log_date: faker.date.recent().toLocaleDateString("en-US", {
|
|
20
|
+
month: "2-digit",
|
|
21
|
+
day: "2-digit",
|
|
22
|
+
year: "numeric",
|
|
23
|
+
}),
|
|
24
|
+
log_date_long: faker.date.recent().getTime(),
|
|
25
|
+
owner_id: faker.number.int({ min: 100000, max: 999999 }),
|
|
26
|
+
owner_name: faker.person.fullName(),
|
|
27
|
+
owner_zpuid: faker.string.numeric(15),
|
|
28
|
+
bill_status: faker.helpers.arrayElement(["Billable", "Non Billable"]),
|
|
29
|
+
approval_status: faker.helpers.arrayElement(["Approved", "Pending", "Rejected"]),
|
|
30
|
+
notes: faker.lorem.sentence(),
|
|
31
|
+
task: {
|
|
32
|
+
id: faker.number.int({ min: 100000, max: 999999 }),
|
|
33
|
+
id_string: faker.string.numeric(10),
|
|
34
|
+
name: faker.lorem.sentence(3),
|
|
35
|
+
},
|
|
36
|
+
project: {
|
|
37
|
+
id: faker.number.int({ min: 100000, max: 999999 }),
|
|
38
|
+
id_string: faker.string.numeric(10),
|
|
39
|
+
name: faker.company.name() + " Project",
|
|
40
|
+
},
|
|
41
|
+
...overrides,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create multiple timelog fixtures
|
|
46
|
+
*/
|
|
47
|
+
export function createTimeLogListFixture(count = 5) {
|
|
48
|
+
return Array.from({ length: count }, () => createTimeLogFixture());
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a timelog API response (nested date structure)
|
|
52
|
+
*/
|
|
53
|
+
export function createTimeLogListResponse(timelogs, hasMore = false) {
|
|
54
|
+
// Group by date
|
|
55
|
+
const dateGroups = new Map();
|
|
56
|
+
for (const log of timelogs) {
|
|
57
|
+
const date = log.log_date || "01-01-2025";
|
|
58
|
+
if (!dateGroups.has(date)) {
|
|
59
|
+
dateGroups.set(date, []);
|
|
60
|
+
}
|
|
61
|
+
dateGroups.get(date).push(log);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
timelogs: {
|
|
65
|
+
date: Array.from(dateGroups.entries()).map(([date, logs]) => ({
|
|
66
|
+
date,
|
|
67
|
+
display_format: date,
|
|
68
|
+
tasklogs: logs,
|
|
69
|
+
})),
|
|
70
|
+
},
|
|
71
|
+
page_info: {
|
|
72
|
+
page: 1,
|
|
73
|
+
per_page: 100,
|
|
74
|
+
has_more_page: hasMore,
|
|
75
|
+
total_count: timelogs.length,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=timelogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelogs.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/timelogs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/timers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,KAuBvB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAuB7B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,EAAiC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export const mockTimer = {
|
|
2
|
+
id: "timer_001",
|
|
3
|
+
id_string: "timer_001",
|
|
4
|
+
status: "running",
|
|
5
|
+
entity_id: "task_123",
|
|
6
|
+
entity_type: "task",
|
|
7
|
+
log_id: "log_001",
|
|
8
|
+
start_time: "2024-01-15T09:00:00Z",
|
|
9
|
+
start_time_long: 1705312800000,
|
|
10
|
+
elapsed_time: 3600000,
|
|
11
|
+
elapsed_time_string: "1:00:00",
|
|
12
|
+
project_id: "proj_001",
|
|
13
|
+
project: {
|
|
14
|
+
id: "proj_001",
|
|
15
|
+
name: "Test Project",
|
|
16
|
+
},
|
|
17
|
+
owner: {
|
|
18
|
+
id: "user_001",
|
|
19
|
+
name: "John Doe",
|
|
20
|
+
email: "john@example.com",
|
|
21
|
+
},
|
|
22
|
+
notes: "Working on feature implementation",
|
|
23
|
+
bill_status: "billable",
|
|
24
|
+
};
|
|
25
|
+
export const mockPausedTimer = {
|
|
26
|
+
id: "timer_002",
|
|
27
|
+
id_string: "timer_002",
|
|
28
|
+
status: "paused",
|
|
29
|
+
entity_id: "task_456",
|
|
30
|
+
entity_type: "task",
|
|
31
|
+
log_id: "log_002",
|
|
32
|
+
start_time: "2024-01-15T10:00:00Z",
|
|
33
|
+
start_time_long: 1705316400000,
|
|
34
|
+
elapsed_time: 1800000,
|
|
35
|
+
elapsed_time_string: "0:30:00",
|
|
36
|
+
project_id: "proj_001",
|
|
37
|
+
project: {
|
|
38
|
+
id: "proj_001",
|
|
39
|
+
name: "Test Project",
|
|
40
|
+
},
|
|
41
|
+
owner: {
|
|
42
|
+
id: "user_001",
|
|
43
|
+
name: "John Doe",
|
|
44
|
+
email: "john@example.com",
|
|
45
|
+
},
|
|
46
|
+
notes: "Paused for meeting",
|
|
47
|
+
bill_status: "billable",
|
|
48
|
+
};
|
|
49
|
+
export const mockTimers = [mockTimer, mockPausedTimer];
|
|
50
|
+
//# sourceMappingURL=timers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/timers.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,EAAE,EAAE,WAAW;IACf,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,sBAAsB;IAClC,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,OAAO;IACrB,mBAAmB,EAAE,SAAS;IAC9B,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE;QACP,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,cAAc;KACrB;IACD,KAAK,EAAE;QACL,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,kBAAkB;KAC1B;IACD,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,EAAE,EAAE,WAAW;IACf,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,sBAAsB;IAClC,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,OAAO;IACrB,mBAAmB,EAAE,SAAS;IAC9B,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE;QACP,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,cAAc;KACrB;IACD,KAAK,EAAE;QACL,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,kBAAkB;KAC1B;IACD,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { User } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a mock user fixture
|
|
4
|
+
*/
|
|
5
|
+
export declare function createUserFixture(overrides?: Partial<User>): User;
|
|
6
|
+
/**
|
|
7
|
+
* Create multiple user fixtures
|
|
8
|
+
*/
|
|
9
|
+
export declare function createUserListFixture(count?: number): User[];
|
|
10
|
+
/**
|
|
11
|
+
* Create a user API response
|
|
12
|
+
*/
|
|
13
|
+
export declare function createUserListResponse(users: User[], hasMore?: boolean): {
|
|
14
|
+
users: import("zod").objectOutputType<{
|
|
15
|
+
id: import("zod").ZodString;
|
|
16
|
+
zpuid: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
+
name: import("zod").ZodString;
|
|
18
|
+
email: import("zod").ZodString;
|
|
19
|
+
active: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
20
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
21
|
+
role_name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
22
|
+
role_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
23
|
+
profile_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
|
+
profile_name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
25
|
+
profile_type: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
26
|
+
rate: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>>;
|
|
27
|
+
cost_per_hour: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>>;
|
|
28
|
+
user_budget: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>>;
|
|
29
|
+
revenue_budget: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>>;
|
|
30
|
+
budget_threshold: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>>;
|
|
31
|
+
invoice: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
32
|
+
currency_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
33
|
+
client_company_name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
34
|
+
client_company_id: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
35
|
+
associated_projects: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
36
|
+
id: import("zod").ZodString;
|
|
37
|
+
name: import("zod").ZodString;
|
|
38
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
39
|
+
id: string;
|
|
40
|
+
name: string;
|
|
41
|
+
}, {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
}>, "many">>;
|
|
45
|
+
added_time: import("zod").ZodOptional<import("zod").ZodString>;
|
|
46
|
+
added_time_long: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
47
|
+
}, import("zod").ZodTypeAny, "passthrough">[];
|
|
48
|
+
page_info: {
|
|
49
|
+
page: number;
|
|
50
|
+
per_page: number;
|
|
51
|
+
has_more_page: boolean;
|
|
52
|
+
total_count: number;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=users.d.ts.map
|