@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 +10 -0
- package/README.md +56 -0
- package/dist/constants/index.d.ts +8 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +7 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/types/api.d.ts +87 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +2 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/auth.d.ts +29 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +6 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/feedback.d.ts +66 -0
- package/dist/types/feedback.d.ts.map +1 -0
- package/dist/types/feedback.js +22 -0
- package/dist/types/feedback.js.map +1 -0
- package/dist/types/project.d.ts +33 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +2 -0
- package/dist/types/project.js.map +1 -0
- package/dist/types/task.d.ts +47 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +22 -0
- package/dist/types/task.js.map +1 -0
- package/package.json +36 -0
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|