@humancheck/shared 0.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,10 @@
1
+ # @humancheck/shared
2
+
3
+ ## 0.1.0
4
+
5
+ ### Initial Release
6
+
7
+ - Task, Project, Scenario, Feedback tipleri ve enum'lar
8
+ - API response interface'leri (`ApiProject`, `ApiTask`, `ApiFeedbackItem` vb.)
9
+ - Auth tipleri (`UserRole`, `AuthResult`)
10
+ - Platform sabitleri (`MAX_TESTERS_PER_TASK`, `FEEDBACK_CHANNELS` vb.)
package/README.md ADDED
@@ -0,0 +1,56 @@
1
+ # @humancheck/shared
2
+
3
+ Shared TypeScript types, interfaces, and constants for the [HumanCheck](https://humancheckme.com) platform.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @humancheck/shared
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import {
15
+ TaskStatus,
16
+ TaskDifficulty,
17
+ type ApiTask,
18
+ type ApiFeedbackItem,
19
+ type CreateTaskDTO,
20
+ MAX_TESTERS_PER_TASK,
21
+ FEEDBACK_CHANNELS,
22
+ } from "@humancheck/shared";
23
+
24
+ // Enums
25
+ const status = TaskStatus.ACTIVE;
26
+ const difficulty = TaskDifficulty.MEDIUM;
27
+
28
+ // Constants
29
+ console.log(MAX_TESTERS_PER_TASK); // 20
30
+ console.log(FEEDBACK_CHANNELS); // ["WEB", "TELEGRAM", "WHATSAPP"]
31
+ ```
32
+
33
+ ## Exports
34
+
35
+ ### Enums
36
+ - `TaskStatus` — DRAFT, ACTIVE, IN_PROGRESS, COMPLETED, CANCELLED
37
+ - `TaskDifficulty` — EASY, MEDIUM, HARD
38
+ - `AssignmentStatus` — PENDING, ACCEPTED, IN_PROGRESS, COMPLETED
39
+ - `UserRole` — CUSTOMER, TESTER, ADMIN
40
+ - `Severity` — LOW, MEDIUM, HIGH, CRITICAL
41
+ - `FeedbackCategory` — UI, FUNCTIONALITY, PERFORMANCE, SECURITY, OTHER
42
+ - `Reproducibility` — ALWAYS, SOMETIMES, RARELY, ONCE
43
+
44
+ ### Interfaces
45
+ - `ApiProject`, `ApiScenario`, `ApiTask`, `ApiAssignment`
46
+ - `ApiFeedbackItem`, `ApiResultsRaw`, `ApiResultsAI`
47
+ - `CreateTaskDTO`, `TaskResponse`, `AuthResult`
48
+
49
+ ### Constants
50
+ - `MAX_TESTERS_PER_TASK`, `MIN_TESTERS_PER_TASK`
51
+ - `MAX_SCENARIOS_PER_PROJECT`, `MAX_STEPS_PER_SCENARIO`
52
+ - `FEEDBACK_CHANNELS`
53
+
54
+ ## License
55
+
56
+ [MIT](../../LICENSE)
@@ -0,0 +1,8 @@
1
+ export declare const MAX_TESTERS_PER_TASK = 20;
2
+ export declare const MIN_TESTERS_PER_TASK = 1;
3
+ export declare const MAX_SCENARIOS_PER_PROJECT = 50;
4
+ export declare const MAX_STEPS_PER_SCENARIO = 30;
5
+ export declare const JWT_EXPIRY = "7d";
6
+ export declare const FEEDBACK_CHANNELS: readonly ["WEB", "TELEGRAM", "WHATSAPP"];
7
+ export type FeedbackChannel = (typeof FEEDBACK_CHANNELS)[number];
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,UAAU,OAAO,CAAC;AAC/B,eAAO,MAAM,iBAAiB,0CAA2C,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const MAX_TESTERS_PER_TASK = 20;
2
+ export const MIN_TESTERS_PER_TASK = 1;
3
+ export const MAX_SCENARIOS_PER_PROJECT = 50;
4
+ export const MAX_STEPS_PER_SCENARIO = 30;
5
+ export const JWT_EXPIRY = "7d";
6
+ export const FEEDBACK_CHANNELS = ["WEB", "TELEGRAM", "WHATSAPP"];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./types/auth.js";
2
+ export * from "./types/project.js";
3
+ export * from "./types/task.js";
4
+ export * from "./types/feedback.js";
5
+ export * from "./types/api.js";
6
+ export * from "./constants/index.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "./types/auth.js";
2
+ export * from "./types/project.js";
3
+ export * from "./types/task.js";
4
+ export * from "./types/feedback.js";
5
+ export * from "./types/api.js";
6
+ export * from "./constants/index.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { UserRole } from "./auth.js";
2
+ import { ScenarioStep } from "./project.js";
3
+ import { TaskStatus, TaskDifficulty, AssignmentStatus } from "./task.js";
4
+ import { Severity, FeedbackCategory, Reproducibility, AIFeedbackResponse } from "./feedback.js";
5
+ export interface ApiUser {
6
+ id: string;
7
+ email: string;
8
+ name: string;
9
+ role: UserRole;
10
+ }
11
+ export interface AuthResult {
12
+ token: string;
13
+ user: ApiUser;
14
+ }
15
+ export interface ApiProject {
16
+ id: string;
17
+ name: string;
18
+ appUrl: string;
19
+ description: string | null;
20
+ autoAcceptTesters?: boolean;
21
+ createdAt: string;
22
+ scenarioCount?: number;
23
+ taskCount?: number;
24
+ scenarios?: ApiScenario[];
25
+ tasks?: ApiTask[];
26
+ }
27
+ export interface ApiScenario {
28
+ id: string;
29
+ projectId: string;
30
+ title: string;
31
+ steps: ScenarioStep[];
32
+ expectedOutcome: string;
33
+ createdAt: string;
34
+ }
35
+ export interface ApiTask {
36
+ id: string;
37
+ projectId: string;
38
+ status: TaskStatus;
39
+ testerCount: number;
40
+ difficulty: TaskDifficulty;
41
+ deadline: string | null;
42
+ price: number | null;
43
+ createdAt: string;
44
+ project?: {
45
+ name: string;
46
+ appUrl: string;
47
+ description?: string | null;
48
+ };
49
+ assignments?: ApiAssignment[];
50
+ _count?: {
51
+ assignments: number;
52
+ };
53
+ }
54
+ export interface ApiAssignment {
55
+ id: string;
56
+ taskId: string;
57
+ testerId: string;
58
+ status: AssignmentStatus;
59
+ tester?: {
60
+ id: string;
61
+ name: string;
62
+ };
63
+ startedAt: string | null;
64
+ completedAt: string | null;
65
+ }
66
+ export interface ApiFeedbackItem {
67
+ id: string;
68
+ scenarioTitle: string;
69
+ stepNumber: number;
70
+ passFail: boolean;
71
+ severity: Severity | null;
72
+ category: FeedbackCategory | null;
73
+ description: string | null;
74
+ screenshotUrl: string | null;
75
+ reproducibility: Reproducibility | null;
76
+ testerName: string;
77
+ createdAt: string;
78
+ }
79
+ export interface ApiResultsRaw {
80
+ taskId: string;
81
+ status: string;
82
+ totalFeedback: number;
83
+ testers: number;
84
+ items: ApiFeedbackItem[];
85
+ }
86
+ export type { AIFeedbackResponse as ApiResultsAI };
87
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ export declare enum UserRole {
2
+ CLIENT = "CLIENT",
3
+ TESTER = "TESTER"
4
+ }
5
+ export interface RegisterDTO {
6
+ email: string;
7
+ password: string;
8
+ name: string;
9
+ role: UserRole;
10
+ }
11
+ export interface LoginDTO {
12
+ email: string;
13
+ password: string;
14
+ }
15
+ export interface AuthPayload {
16
+ userId: string;
17
+ email: string;
18
+ role: UserRole;
19
+ }
20
+ export interface AuthResponse {
21
+ token: string;
22
+ user: {
23
+ id: string;
24
+ email: string;
25
+ name: string;
26
+ role: UserRole;
27
+ };
28
+ }
29
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC;KAChB,CAAC;CACH"}
@@ -0,0 +1,6 @@
1
+ export var UserRole;
2
+ (function (UserRole) {
3
+ UserRole["CLIENT"] = "CLIENT";
4
+ UserRole["TESTER"] = "TESTER";
5
+ })(UserRole || (UserRole = {}));
6
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;AACnB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
@@ -0,0 +1,66 @@
1
+ export declare enum Severity {
2
+ CRITICAL = "CRITICAL",
3
+ MAJOR = "MAJOR",
4
+ MINOR = "MINOR",
5
+ COSMETIC = "COSMETIC"
6
+ }
7
+ export declare enum FeedbackCategory {
8
+ UX = "UX",
9
+ FUNCTIONAL = "FUNCTIONAL",
10
+ VISUAL = "VISUAL",
11
+ PERFORMANCE = "PERFORMANCE",
12
+ ACCESSIBILITY = "ACCESSIBILITY"
13
+ }
14
+ export declare enum Reproducibility {
15
+ ALWAYS = "ALWAYS",
16
+ SOMETIMES = "SOMETIMES",
17
+ ONCE = "ONCE"
18
+ }
19
+ export interface CreateFeedbackDTO {
20
+ scenarioId: string;
21
+ stepNumber: number;
22
+ passFail: boolean;
23
+ severity?: Severity;
24
+ category?: FeedbackCategory;
25
+ description?: string;
26
+ screenshotUrl?: string;
27
+ reproducibility?: Reproducibility;
28
+ }
29
+ export interface FeedbackItemResponse {
30
+ id: string;
31
+ scenarioId: string;
32
+ scenarioTitle: string;
33
+ stepNumber: number;
34
+ passFail: boolean;
35
+ severity: Severity | null;
36
+ category: FeedbackCategory | null;
37
+ description: string | null;
38
+ screenshotUrl: string | null;
39
+ reproducibility: Reproducibility | null;
40
+ testerName: string;
41
+ }
42
+ export interface AIFeedbackIssue {
43
+ scenario: string;
44
+ step: string;
45
+ severity: Severity;
46
+ category: FeedbackCategory;
47
+ description: string;
48
+ reproducibility: Reproducibility;
49
+ reportedBy: number;
50
+ totalTesters: number;
51
+ screenshotUrl?: string;
52
+ }
53
+ export interface AIFeedbackResponse {
54
+ taskId: string;
55
+ appUrl: string;
56
+ summary: {
57
+ totalScenarios: number;
58
+ passed: number;
59
+ failed: number;
60
+ testers: number;
61
+ consensusScore: number;
62
+ };
63
+ issues: AIFeedbackIssue[];
64
+ aiPrompt: string;
65
+ }
66
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/types/feedback.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED,oBAAY,gBAAgB;IAC1B,EAAE,OAAO;IACT,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAChC;AAED,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,22 @@
1
+ export var Severity;
2
+ (function (Severity) {
3
+ Severity["CRITICAL"] = "CRITICAL";
4
+ Severity["MAJOR"] = "MAJOR";
5
+ Severity["MINOR"] = "MINOR";
6
+ Severity["COSMETIC"] = "COSMETIC";
7
+ })(Severity || (Severity = {}));
8
+ export var FeedbackCategory;
9
+ (function (FeedbackCategory) {
10
+ FeedbackCategory["UX"] = "UX";
11
+ FeedbackCategory["FUNCTIONAL"] = "FUNCTIONAL";
12
+ FeedbackCategory["VISUAL"] = "VISUAL";
13
+ FeedbackCategory["PERFORMANCE"] = "PERFORMANCE";
14
+ FeedbackCategory["ACCESSIBILITY"] = "ACCESSIBILITY";
15
+ })(FeedbackCategory || (FeedbackCategory = {}));
16
+ export var Reproducibility;
17
+ (function (Reproducibility) {
18
+ Reproducibility["ALWAYS"] = "ALWAYS";
19
+ Reproducibility["SOMETIMES"] = "SOMETIMES";
20
+ Reproducibility["ONCE"] = "ONCE";
21
+ })(Reproducibility || (Reproducibility = {}));
22
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/types/feedback.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,iCAAqB,CAAA;AACvB,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,6BAAS,CAAA;IACT,6CAAyB,CAAA;IACzB,qCAAiB,CAAA;IACjB,+CAA2B,CAAA;IAC3B,mDAA+B,CAAA;AACjC,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,gCAAa,CAAA;AACf,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B"}
@@ -0,0 +1,33 @@
1
+ export interface ScenarioStep {
2
+ order: number;
3
+ instruction: string;
4
+ expectedResult: string;
5
+ }
6
+ export interface CreateProjectDTO {
7
+ name: string;
8
+ appUrl: string;
9
+ description?: string;
10
+ }
11
+ export interface CreateScenarioDTO {
12
+ title: string;
13
+ steps: ScenarioStep[];
14
+ expectedOutcome: string;
15
+ }
16
+ export interface ProjectResponse {
17
+ id: string;
18
+ name: string;
19
+ appUrl: string;
20
+ description: string | null;
21
+ createdAt: string;
22
+ scenarioCount: number;
23
+ taskCount: number;
24
+ }
25
+ export interface ScenarioResponse {
26
+ id: string;
27
+ projectId: string;
28
+ title: string;
29
+ steps: ScenarioStep[];
30
+ expectedOutcome: string;
31
+ createdAt: string;
32
+ }
33
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ export declare enum TaskStatus {
2
+ DRAFT = "DRAFT",
3
+ ACTIVE = "ACTIVE",
4
+ IN_PROGRESS = "IN_PROGRESS",
5
+ COMPLETED = "COMPLETED",
6
+ CANCELLED = "CANCELLED"
7
+ }
8
+ export declare enum TaskDifficulty {
9
+ EASY = "EASY",
10
+ MEDIUM = "MEDIUM",
11
+ HARD = "HARD"
12
+ }
13
+ export declare enum AssignmentStatus {
14
+ PENDING = "PENDING",
15
+ ACCEPTED = "ACCEPTED",
16
+ IN_PROGRESS = "IN_PROGRESS",
17
+ COMPLETED = "COMPLETED"
18
+ }
19
+ export interface CreateTaskDTO {
20
+ projectId: string;
21
+ testerCount: number;
22
+ difficulty: TaskDifficulty;
23
+ deadline?: string;
24
+ price?: number;
25
+ }
26
+ export interface TaskResponse {
27
+ id: string;
28
+ projectId: string;
29
+ status: TaskStatus;
30
+ testerCount: number;
31
+ difficulty: TaskDifficulty;
32
+ deadline: string | null;
33
+ price: number | null;
34
+ createdAt: string;
35
+ assignedCount: number;
36
+ completedCount: number;
37
+ }
38
+ export interface TaskAssignmentResponse {
39
+ id: string;
40
+ taskId: string;
41
+ testerId: string;
42
+ testerName: string;
43
+ status: AssignmentStatus;
44
+ startedAt: string | null;
45
+ completedAt: string | null;
46
+ }
47
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/types/task.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;CACxB;AAED,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
@@ -0,0 +1,22 @@
1
+ export var TaskStatus;
2
+ (function (TaskStatus) {
3
+ TaskStatus["DRAFT"] = "DRAFT";
4
+ TaskStatus["ACTIVE"] = "ACTIVE";
5
+ TaskStatus["IN_PROGRESS"] = "IN_PROGRESS";
6
+ TaskStatus["COMPLETED"] = "COMPLETED";
7
+ TaskStatus["CANCELLED"] = "CANCELLED";
8
+ })(TaskStatus || (TaskStatus = {}));
9
+ export var TaskDifficulty;
10
+ (function (TaskDifficulty) {
11
+ TaskDifficulty["EASY"] = "EASY";
12
+ TaskDifficulty["MEDIUM"] = "MEDIUM";
13
+ TaskDifficulty["HARD"] = "HARD";
14
+ })(TaskDifficulty || (TaskDifficulty = {}));
15
+ export var AssignmentStatus;
16
+ (function (AssignmentStatus) {
17
+ AssignmentStatus["PENDING"] = "PENDING";
18
+ AssignmentStatus["ACCEPTED"] = "ACCEPTED";
19
+ AssignmentStatus["IN_PROGRESS"] = "IN_PROGRESS";
20
+ AssignmentStatus["COMPLETED"] = "COMPLETED";
21
+ })(AssignmentStatus || (AssignmentStatus = {}));
22
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/types/task.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,qCAAuB,CAAA;AACzB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;IACrB,+CAA2B,CAAA;IAC3B,2CAAuB,CAAA;AACzB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@humancheck/shared",
3
+ "version": "0.1.0",
4
+ "description": "Shared types, interfaces, and constants for HumanCheck platform",
5
+ "license": "MIT",
6
+ "author": "HumanCheck <hello@humancheckme.com>",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/humancheck/human-check-systems.git",
10
+ "directory": "packages/shared"
11
+ },
12
+ "homepage": "https://humancheckme.com",
13
+ "keywords": ["humancheck", "human-in-the-loop", "ai-validation", "testing", "types"],
14
+ "type": "module",
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
+ }
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "README.md",
26
+ "CHANGELOG.md"
27
+ ],
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "typecheck": "tsc --noEmit",
31
+ "prepublishOnly": "npm run build"
32
+ },
33
+ "devDependencies": {
34
+ "typescript": "^5.7.0"
35
+ }
36
+ }