@orjok/commons 1.0.2 → 1.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/dist/chunk-DB3CMKPP.cjs +165 -0
- package/dist/chunk-DB3CMKPP.cjs.map +1 -0
- package/dist/chunk-ZDGYAVEC.js +165 -0
- package/dist/chunk-ZDGYAVEC.js.map +1 -0
- package/dist/hooks.cjs +492 -2
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +130 -2
- package/dist/hooks.d.ts +130 -2
- package/dist/hooks.js +491 -1
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +590 -224
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +86 -14
- package/dist/index.d.ts +86 -14
- package/dist/index.js +549 -183
- package/dist/index.js.map +1 -1
- package/dist/{client-Bm9aiyTx.d.ts → practice-Dh2Tv80G.d.ts} +36 -5
- package/dist/{client-BaOC79Nc.d.cts → practice-QnWtC5A7.d.cts} +36 -5
- package/dist/testing.cjs +10 -0
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +2 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +10 -0
- package/dist/testing.js.map +1 -1
- package/package.json +5 -3
|
@@ -162,8 +162,8 @@ interface UpdateUserAvatarInput {
|
|
|
162
162
|
type Tier = "FREE" | "PREMIUM";
|
|
163
163
|
type QuestionType = "MCQ" | "WRITTEN";
|
|
164
164
|
type Difficulty = "Easy" | "Medium" | "Hard";
|
|
165
|
-
type Level = "
|
|
166
|
-
type Language = "Bangla" | "English";
|
|
165
|
+
type Level = "One" | "Two" | "Three" | "Four" | "Five" | "Six" | "Seven" | "Eight" | "SSC" | "HSC" | "Admission" | "HSC+Admission" | "BCS";
|
|
166
|
+
type Language = "Bangla" | "English" | "Any";
|
|
167
167
|
type VoteType = "upvote" | "downvote";
|
|
168
168
|
type ModelType = "question" | "pack";
|
|
169
169
|
type VerificationType = "question" | "pack";
|
|
@@ -535,8 +535,8 @@ declare class UserService {
|
|
|
535
535
|
constructor(network: NetworkProvider);
|
|
536
536
|
get(id: string): Promise<User | null>;
|
|
537
537
|
updateAvatar(input: UpdateUserAvatarInput): Promise<User | null>;
|
|
538
|
-
getQuestions(userId: string, nextToken?: string): Promise<PaginatedList<QuestionObject>>;
|
|
539
|
-
getPacks(userId: string, nextToken?: string): Promise<PaginatedList<Pack>>;
|
|
538
|
+
getQuestions(userId: string, nextToken?: string, limit?: number): Promise<PaginatedList<QuestionObject>>;
|
|
539
|
+
getPacks(userId: string, nextToken?: string, limit?: number): Promise<PaginatedList<Pack>>;
|
|
540
540
|
getCourses(userId: string): Promise<Course[]>;
|
|
541
541
|
getEnrolledCourses(userId: string): Promise<CourseEnrolled[]>;
|
|
542
542
|
}
|
|
@@ -607,7 +607,23 @@ declare class QuestionService {
|
|
|
607
607
|
getFull(id: string): Promise<QuestionObject | null>;
|
|
608
608
|
getAnswer(id: string): Promise<Option | null>;
|
|
609
609
|
getQuestionId(packId: string, order: number): Promise<string | null>;
|
|
610
|
+
listByPack(packId: string, limit?: number, sortDirection?: "ASC" | "DESC", nextToken?: string | null): Promise<PaginatedList<QuestionObject>>;
|
|
610
611
|
update(id: string, fields: Record<string, unknown>): Promise<QuestionObject | null>;
|
|
612
|
+
updateOption(id: string, content: string): Promise<{
|
|
613
|
+
id: string;
|
|
614
|
+
content: string;
|
|
615
|
+
} | null>;
|
|
616
|
+
createOption(input: {
|
|
617
|
+
id?: string;
|
|
618
|
+
content: string;
|
|
619
|
+
questionId: string;
|
|
620
|
+
}): Promise<{
|
|
621
|
+
id: string;
|
|
622
|
+
content: string;
|
|
623
|
+
} | null>;
|
|
624
|
+
deleteOption(id: string): Promise<{
|
|
625
|
+
id: string;
|
|
626
|
+
} | null>;
|
|
611
627
|
delete(id: string): Promise<QuestionObject | null>;
|
|
612
628
|
vote(input: VoteInput): Promise<StatusIdResponse>;
|
|
613
629
|
upVote(questionId: string): Promise<StatusIdResponse>;
|
|
@@ -768,8 +784,23 @@ declare class OrjokClient {
|
|
|
768
784
|
readonly progress: ProgressService;
|
|
769
785
|
readonly ai: AIService;
|
|
770
786
|
readonly news: NewsService;
|
|
787
|
+
readonly storage?: StorageProvider;
|
|
771
788
|
constructor(config: OrjokClientConfig);
|
|
772
789
|
}
|
|
773
790
|
declare function createOrjokClient(config: OrjokClientConfig): OrjokClient;
|
|
774
791
|
|
|
775
|
-
|
|
792
|
+
interface PracticeMetrics {
|
|
793
|
+
totalPracticed: number;
|
|
794
|
+
totalMistakes: number;
|
|
795
|
+
totalCorrected: number;
|
|
796
|
+
accuracy: number;
|
|
797
|
+
}
|
|
798
|
+
declare function aggregateSubjectMetrics(progress: UserSubjectProgress[]): PracticeMetrics;
|
|
799
|
+
declare function aggregateChapterMetrics(progress: UserChapterProgress[]): PracticeMetrics;
|
|
800
|
+
declare function aggregateTopicMetrics(progress: UserTopicProgress[]): PracticeMetrics;
|
|
801
|
+
declare function calculateAccuracy(practiced: number, mistakes: number): number;
|
|
802
|
+
declare function isLanguageMatch(qLang?: string | null, targetLang?: string): boolean;
|
|
803
|
+
declare function isDifficultyMatch(qDiff?: string | null, targetDiff?: string): boolean;
|
|
804
|
+
declare function isValidMCQ(q: unknown): boolean;
|
|
805
|
+
|
|
806
|
+
export { type ListByRandomHashInput as $, AIService as A, type CreateCourseItemInput as B, type Chapter as C, type Difficulty as D, type CreateCourseLiveExamInput as E, type CreateCourseResponse as F, type CreateCourseVideoInput as G, type CreateCourseVideoResponse as H, type CreatePackInput as I, type CreateQuestionInput as J, type CreateQuestionResponse as K, type Language as L, CurriculumService as M, type DeleteCourseItemInput as N, OrjokClient as O, type Pack as P, type QuestionObject as Q, type EnrollStudentInput as R, type Subject as S, type Topic as T, type UserSubjectProgress as U, type EvaluateWrittenAnswerInput as V, type EvaluateWrittenAnswerResponse as W, type GetSignedFileURLInput as X, type GetSignedURLInput as Y, type LeaderboardResponse as Z, type ListByCurriculumInput as _, type Contest as a, MediaService as a0, type ModelType as a1, type NewsArticle as a2, NewsService as a3, type Option as a4, type OrjokClientConfig as a5, type PackExamResults as a6, type PackGroup as a7, type PackReport as a8, PackService as a9, type Verification as aA, type VerificationType as aB, type VoteInput as aC, type VoteType as aD, aggregateChapterMetrics as aE, aggregateSubjectMetrics as aF, aggregateTopicMetrics as aG, calculateAccuracy as aH, createOrjokClient as aI, isDifficultyMatch as aJ, isLanguageMatch as aK, isValidMCQ as aL, type PackTag as aa, type PaginatedList as ab, type PaymentStatus as ac, type PaymentTransaction as ad, ProgressService as ae, type QuestionReport as af, QuestionService as ag, type QuestionTag as ah, type QuestionTracking as ai, type QuestionTrackingStatus as aj, type QuestionVote as ak, type SendEnrollmentRequestInput as al, type SignedURLResponse as am, type SortDirection as an, type StatusIdResponse as ao, type StatusResponse as ap, type SubmitPackExamInput as aq, type Tag as ar, type Tier as as, type TrackPracticeProgressInput as at, type UpdateUserAvatarInput as au, type UploadImageResponse as av, type UploadVideoToBunnyInput as aw, type User as ax, UserService as ay, type UserTopicMetric as az, type CheckParticipationResponse as b, type Course as c, type CourseItem as d, type CourseLiveExam as e, type UserChapterProgress as f, type UserTopicProgress as g, type PracticeMetrics as h, type Level as i, type QuestionType as j, type AIUsageLog as k, type AddQuestionTagInput as l, type ContestAnswersResponse as m, type ContestOption as n, type ContestParticipant as o, type ContestQuestion as p, type ContestQuestionsResponse as q, ContestService as r, type CourseEnrolled as s, type CourseEnrollmentRequest as t, type CourseItemType as u, type CourseLiveExamParticipant as v, type CourseLiveExamQuestionsResponse as w, CourseService as x, type CreateContestInput as y, type CreateCourseInput as z };
|
|
@@ -162,8 +162,8 @@ interface UpdateUserAvatarInput {
|
|
|
162
162
|
type Tier = "FREE" | "PREMIUM";
|
|
163
163
|
type QuestionType = "MCQ" | "WRITTEN";
|
|
164
164
|
type Difficulty = "Easy" | "Medium" | "Hard";
|
|
165
|
-
type Level = "
|
|
166
|
-
type Language = "Bangla" | "English";
|
|
165
|
+
type Level = "One" | "Two" | "Three" | "Four" | "Five" | "Six" | "Seven" | "Eight" | "SSC" | "HSC" | "Admission" | "HSC+Admission" | "BCS";
|
|
166
|
+
type Language = "Bangla" | "English" | "Any";
|
|
167
167
|
type VoteType = "upvote" | "downvote";
|
|
168
168
|
type ModelType = "question" | "pack";
|
|
169
169
|
type VerificationType = "question" | "pack";
|
|
@@ -535,8 +535,8 @@ declare class UserService {
|
|
|
535
535
|
constructor(network: NetworkProvider);
|
|
536
536
|
get(id: string): Promise<User | null>;
|
|
537
537
|
updateAvatar(input: UpdateUserAvatarInput): Promise<User | null>;
|
|
538
|
-
getQuestions(userId: string, nextToken?: string): Promise<PaginatedList<QuestionObject>>;
|
|
539
|
-
getPacks(userId: string, nextToken?: string): Promise<PaginatedList<Pack>>;
|
|
538
|
+
getQuestions(userId: string, nextToken?: string, limit?: number): Promise<PaginatedList<QuestionObject>>;
|
|
539
|
+
getPacks(userId: string, nextToken?: string, limit?: number): Promise<PaginatedList<Pack>>;
|
|
540
540
|
getCourses(userId: string): Promise<Course[]>;
|
|
541
541
|
getEnrolledCourses(userId: string): Promise<CourseEnrolled[]>;
|
|
542
542
|
}
|
|
@@ -607,7 +607,23 @@ declare class QuestionService {
|
|
|
607
607
|
getFull(id: string): Promise<QuestionObject | null>;
|
|
608
608
|
getAnswer(id: string): Promise<Option | null>;
|
|
609
609
|
getQuestionId(packId: string, order: number): Promise<string | null>;
|
|
610
|
+
listByPack(packId: string, limit?: number, sortDirection?: "ASC" | "DESC", nextToken?: string | null): Promise<PaginatedList<QuestionObject>>;
|
|
610
611
|
update(id: string, fields: Record<string, unknown>): Promise<QuestionObject | null>;
|
|
612
|
+
updateOption(id: string, content: string): Promise<{
|
|
613
|
+
id: string;
|
|
614
|
+
content: string;
|
|
615
|
+
} | null>;
|
|
616
|
+
createOption(input: {
|
|
617
|
+
id?: string;
|
|
618
|
+
content: string;
|
|
619
|
+
questionId: string;
|
|
620
|
+
}): Promise<{
|
|
621
|
+
id: string;
|
|
622
|
+
content: string;
|
|
623
|
+
} | null>;
|
|
624
|
+
deleteOption(id: string): Promise<{
|
|
625
|
+
id: string;
|
|
626
|
+
} | null>;
|
|
611
627
|
delete(id: string): Promise<QuestionObject | null>;
|
|
612
628
|
vote(input: VoteInput): Promise<StatusIdResponse>;
|
|
613
629
|
upVote(questionId: string): Promise<StatusIdResponse>;
|
|
@@ -768,8 +784,23 @@ declare class OrjokClient {
|
|
|
768
784
|
readonly progress: ProgressService;
|
|
769
785
|
readonly ai: AIService;
|
|
770
786
|
readonly news: NewsService;
|
|
787
|
+
readonly storage?: StorageProvider;
|
|
771
788
|
constructor(config: OrjokClientConfig);
|
|
772
789
|
}
|
|
773
790
|
declare function createOrjokClient(config: OrjokClientConfig): OrjokClient;
|
|
774
791
|
|
|
775
|
-
|
|
792
|
+
interface PracticeMetrics {
|
|
793
|
+
totalPracticed: number;
|
|
794
|
+
totalMistakes: number;
|
|
795
|
+
totalCorrected: number;
|
|
796
|
+
accuracy: number;
|
|
797
|
+
}
|
|
798
|
+
declare function aggregateSubjectMetrics(progress: UserSubjectProgress[]): PracticeMetrics;
|
|
799
|
+
declare function aggregateChapterMetrics(progress: UserChapterProgress[]): PracticeMetrics;
|
|
800
|
+
declare function aggregateTopicMetrics(progress: UserTopicProgress[]): PracticeMetrics;
|
|
801
|
+
declare function calculateAccuracy(practiced: number, mistakes: number): number;
|
|
802
|
+
declare function isLanguageMatch(qLang?: string | null, targetLang?: string): boolean;
|
|
803
|
+
declare function isDifficultyMatch(qDiff?: string | null, targetDiff?: string): boolean;
|
|
804
|
+
declare function isValidMCQ(q: unknown): boolean;
|
|
805
|
+
|
|
806
|
+
export { type ListByRandomHashInput as $, AIService as A, type CreateCourseItemInput as B, type Chapter as C, type Difficulty as D, type CreateCourseLiveExamInput as E, type CreateCourseResponse as F, type CreateCourseVideoInput as G, type CreateCourseVideoResponse as H, type CreatePackInput as I, type CreateQuestionInput as J, type CreateQuestionResponse as K, type Language as L, CurriculumService as M, type DeleteCourseItemInput as N, OrjokClient as O, type Pack as P, type QuestionObject as Q, type EnrollStudentInput as R, type Subject as S, type Topic as T, type UserSubjectProgress as U, type EvaluateWrittenAnswerInput as V, type EvaluateWrittenAnswerResponse as W, type GetSignedFileURLInput as X, type GetSignedURLInput as Y, type LeaderboardResponse as Z, type ListByCurriculumInput as _, type Contest as a, MediaService as a0, type ModelType as a1, type NewsArticle as a2, NewsService as a3, type Option as a4, type OrjokClientConfig as a5, type PackExamResults as a6, type PackGroup as a7, type PackReport as a8, PackService as a9, type Verification as aA, type VerificationType as aB, type VoteInput as aC, type VoteType as aD, aggregateChapterMetrics as aE, aggregateSubjectMetrics as aF, aggregateTopicMetrics as aG, calculateAccuracy as aH, createOrjokClient as aI, isDifficultyMatch as aJ, isLanguageMatch as aK, isValidMCQ as aL, type PackTag as aa, type PaginatedList as ab, type PaymentStatus as ac, type PaymentTransaction as ad, ProgressService as ae, type QuestionReport as af, QuestionService as ag, type QuestionTag as ah, type QuestionTracking as ai, type QuestionTrackingStatus as aj, type QuestionVote as ak, type SendEnrollmentRequestInput as al, type SignedURLResponse as am, type SortDirection as an, type StatusIdResponse as ao, type StatusResponse as ap, type SubmitPackExamInput as aq, type Tag as ar, type Tier as as, type TrackPracticeProgressInput as at, type UpdateUserAvatarInput as au, type UploadImageResponse as av, type UploadVideoToBunnyInput as aw, type User as ax, UserService as ay, type UserTopicMetric as az, type CheckParticipationResponse as b, type Course as c, type CourseItem as d, type CourseLiveExam as e, type UserChapterProgress as f, type UserTopicProgress as g, type PracticeMetrics as h, type Level as i, type QuestionType as j, type AIUsageLog as k, type AddQuestionTagInput as l, type ContestAnswersResponse as m, type ContestOption as n, type ContestParticipant as o, type ContestQuestion as p, type ContestQuestionsResponse as q, ContestService as r, type CourseEnrolled as s, type CourseEnrollmentRequest as t, type CourseItemType as u, type CourseLiveExamParticipant as v, type CourseLiveExamQuestionsResponse as w, CourseService as x, type CreateContestInput as y, type CreateCourseInput as z };
|
package/dist/testing.cjs
CHANGED
|
@@ -45,13 +45,18 @@ var MockAuthProvider = class {
|
|
|
45
45
|
var MockNetworkProvider = class {
|
|
46
46
|
constructor() {
|
|
47
47
|
this.responses = /* @__PURE__ */ new Map();
|
|
48
|
+
this.errors = /* @__PURE__ */ new Map();
|
|
48
49
|
this.calls = [];
|
|
49
50
|
}
|
|
50
51
|
setResponse(operationKey, data) {
|
|
51
52
|
this.responses.set(operationKey, data);
|
|
52
53
|
}
|
|
54
|
+
setError(operationKey, error) {
|
|
55
|
+
this.errors.set(operationKey, error);
|
|
56
|
+
}
|
|
53
57
|
reset() {
|
|
54
58
|
this.responses.clear();
|
|
59
|
+
this.errors.clear();
|
|
55
60
|
this.calls.length = 0;
|
|
56
61
|
}
|
|
57
62
|
async query(query, variables) {
|
|
@@ -63,6 +68,11 @@ var MockNetworkProvider = class {
|
|
|
63
68
|
return this.findResponse(mutation);
|
|
64
69
|
}
|
|
65
70
|
findResponse(queryString) {
|
|
71
|
+
for (const [key, error] of this.errors.entries()) {
|
|
72
|
+
if (queryString.includes(key)) {
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
66
76
|
for (const [key, value] of this.responses.entries()) {
|
|
67
77
|
if (queryString.includes(key)) {
|
|
68
78
|
return { data: value };
|
package/dist/testing.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/orjok/orjok/packages/commons/dist/testing.cjs","../src/testing/mock-providers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/orjok/orjok/packages/commons/dist/testing.cjs","../src/testing/mock-providers.ts"],"names":[],"mappings":"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","file":"/home/runner/work/orjok/orjok/packages/commons/dist/testing.cjs","sourcesContent":[null,"import type { AuthProvider, UserAttributes, AuthSession } from \"../providers/auth\";\nimport type { NetworkProvider, GraphQLResult } from \"../providers/network\";\nimport type { StorageProvider, UploadOptions } from \"../providers/storage\";\n\nexport class MockAuthProvider implements AuthProvider {\n private currentUserId: string | null = \"test-user-id\";\n\n setCurrentUserId(userId: string | null): void {\n this.currentUserId = userId;\n }\n\n async signIn(_username: string, _password: string) {\n return { isSignedIn: true };\n }\n\n async signUp(_username: string, _password: string, _attributes: Record<string, string>) {\n return { isSignUpComplete: true, userId: this.currentUserId ?? undefined };\n }\n\n async signOut() {}\n\n async signInWithRedirect(_provider: string) {}\n\n async fetchUserAttributes(): Promise<UserAttributes> {\n return { email: \"test@test.com\", sub: this.currentUserId ?? undefined };\n }\n\n async updateUserAttributes(_attributes: Record<string, string>) {}\n\n async fetchAuthSession(): Promise<AuthSession> {\n return {\n tokens: {\n accessToken: { toString: () => \"mock-access-token\" },\n idToken: { toString: () => \"mock-id-token\" },\n },\n };\n }\n\n async confirmSignUp(_username: string, _code: string) {\n return { isSignUpComplete: true };\n }\n\n async resendSignUpCode(_username: string) {}\n\n async resetPassword(_username: string) {}\n\n async confirmResetPassword(_username: string, _code: string, _newPassword: string) {}\n\n async getCurrentUserId(): Promise<string | null> {\n return this.currentUserId;\n }\n}\n\nexport class MockNetworkProvider implements NetworkProvider {\n private responses = new Map<string, unknown>();\n private errors = new Map<string, Error>();\n readonly calls: Array<{ type: \"query\" | \"mutation\"; query: string; variables?: Record<string, unknown> }> = [];\n\n setResponse<T>(operationKey: string, data: T): void {\n this.responses.set(operationKey, data);\n }\n\n setError(operationKey: string, error: Error): void {\n this.errors.set(operationKey, error);\n }\n\n reset(): void {\n this.responses.clear();\n this.errors.clear();\n this.calls.length = 0;\n }\n\n async query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>> {\n this.calls.push({ type: \"query\", query, variables });\n return this.findResponse<T>(query);\n }\n\n async mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>> {\n this.calls.push({ type: \"mutation\", query: mutation, variables });\n return this.findResponse<T>(mutation);\n }\n\n private findResponse<T>(queryString: string): GraphQLResult<T> {\n for (const [key, error] of this.errors.entries()) {\n if (queryString.includes(key)) {\n throw error;\n }\n }\n for (const [key, value] of this.responses.entries()) {\n if (queryString.includes(key)) {\n return { data: value as T };\n }\n }\n throw new Error(\n `No mock response registered for query containing operation. Query starts with: \"${queryString.slice(0, 80)}...\"`\n );\n }\n}\n\nexport class MockStorageProvider implements StorageProvider {\n readonly calls: Array<{ method: string; args: unknown[] }> = [];\n\n async getFileUrl(path: string): Promise<{ url: string }> {\n this.calls.push({ method: \"getFileUrl\", args: [path] });\n return { url: `https://mock-storage.test/${path}` };\n }\n\n async uploadFile(\n path: string,\n data: Blob | ArrayBuffer | string,\n options?: UploadOptions\n ): Promise<{ path: string }> {\n this.calls.push({ method: \"uploadFile\", args: [path, data, options] });\n if (options?.onProgress) {\n options.onProgress({ loaded: 100, total: 100 });\n }\n return { path };\n }\n}\n"]}
|
package/dist/testing.d.cts
CHANGED
|
@@ -25,12 +25,14 @@ declare class MockAuthProvider implements AuthProvider {
|
|
|
25
25
|
}
|
|
26
26
|
declare class MockNetworkProvider implements NetworkProvider {
|
|
27
27
|
private responses;
|
|
28
|
+
private errors;
|
|
28
29
|
readonly calls: Array<{
|
|
29
30
|
type: "query" | "mutation";
|
|
30
31
|
query: string;
|
|
31
32
|
variables?: Record<string, unknown>;
|
|
32
33
|
}>;
|
|
33
34
|
setResponse<T>(operationKey: string, data: T): void;
|
|
35
|
+
setError(operationKey: string, error: Error): void;
|
|
34
36
|
reset(): void;
|
|
35
37
|
query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
|
36
38
|
mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
package/dist/testing.d.ts
CHANGED
|
@@ -25,12 +25,14 @@ declare class MockAuthProvider implements AuthProvider {
|
|
|
25
25
|
}
|
|
26
26
|
declare class MockNetworkProvider implements NetworkProvider {
|
|
27
27
|
private responses;
|
|
28
|
+
private errors;
|
|
28
29
|
readonly calls: Array<{
|
|
29
30
|
type: "query" | "mutation";
|
|
30
31
|
query: string;
|
|
31
32
|
variables?: Record<string, unknown>;
|
|
32
33
|
}>;
|
|
33
34
|
setResponse<T>(operationKey: string, data: T): void;
|
|
35
|
+
setError(operationKey: string, error: Error): void;
|
|
34
36
|
reset(): void;
|
|
35
37
|
query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
|
36
38
|
mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
package/dist/testing.js
CHANGED
|
@@ -45,13 +45,18 @@ var MockAuthProvider = class {
|
|
|
45
45
|
var MockNetworkProvider = class {
|
|
46
46
|
constructor() {
|
|
47
47
|
this.responses = /* @__PURE__ */ new Map();
|
|
48
|
+
this.errors = /* @__PURE__ */ new Map();
|
|
48
49
|
this.calls = [];
|
|
49
50
|
}
|
|
50
51
|
setResponse(operationKey, data) {
|
|
51
52
|
this.responses.set(operationKey, data);
|
|
52
53
|
}
|
|
54
|
+
setError(operationKey, error) {
|
|
55
|
+
this.errors.set(operationKey, error);
|
|
56
|
+
}
|
|
53
57
|
reset() {
|
|
54
58
|
this.responses.clear();
|
|
59
|
+
this.errors.clear();
|
|
55
60
|
this.calls.length = 0;
|
|
56
61
|
}
|
|
57
62
|
async query(query, variables) {
|
|
@@ -63,6 +68,11 @@ var MockNetworkProvider = class {
|
|
|
63
68
|
return this.findResponse(mutation);
|
|
64
69
|
}
|
|
65
70
|
findResponse(queryString) {
|
|
71
|
+
for (const [key, error] of this.errors.entries()) {
|
|
72
|
+
if (queryString.includes(key)) {
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
66
76
|
for (const [key, value] of this.responses.entries()) {
|
|
67
77
|
if (queryString.includes(key)) {
|
|
68
78
|
return { data: value };
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing/mock-providers.ts"],"sourcesContent":["import type { AuthProvider, UserAttributes, AuthSession } from \"../providers/auth\";\nimport type { NetworkProvider, GraphQLResult } from \"../providers/network\";\nimport type { StorageProvider, UploadOptions } from \"../providers/storage\";\n\nexport class MockAuthProvider implements AuthProvider {\n private currentUserId: string | null = \"test-user-id\";\n\n setCurrentUserId(userId: string | null): void {\n this.currentUserId = userId;\n }\n\n async signIn(_username: string, _password: string) {\n return { isSignedIn: true };\n }\n\n async signUp(_username: string, _password: string, _attributes: Record<string, string>) {\n return { isSignUpComplete: true, userId: this.currentUserId ?? undefined };\n }\n\n async signOut() {}\n\n async signInWithRedirect(_provider: string) {}\n\n async fetchUserAttributes(): Promise<UserAttributes> {\n return { email: \"test@test.com\", sub: this.currentUserId ?? undefined };\n }\n\n async updateUserAttributes(_attributes: Record<string, string>) {}\n\n async fetchAuthSession(): Promise<AuthSession> {\n return {\n tokens: {\n accessToken: { toString: () => \"mock-access-token\" },\n idToken: { toString: () => \"mock-id-token\" },\n },\n };\n }\n\n async confirmSignUp(_username: string, _code: string) {\n return { isSignUpComplete: true };\n }\n\n async resendSignUpCode(_username: string) {}\n\n async resetPassword(_username: string) {}\n\n async confirmResetPassword(_username: string, _code: string, _newPassword: string) {}\n\n async getCurrentUserId(): Promise<string | null> {\n return this.currentUserId;\n }\n}\n\nexport class MockNetworkProvider implements NetworkProvider {\n private responses = new Map<string, unknown>();\n readonly calls: Array<{ type: \"query\" | \"mutation\"; query: string; variables?: Record<string, unknown> }> = [];\n\n setResponse<T>(operationKey: string, data: T): void {\n this.responses.set(operationKey, data);\n }\n\n reset(): void {\n this.responses.clear();\n this.calls.length = 0;\n }\n\n async query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>> {\n this.calls.push({ type: \"query\", query, variables });\n return this.findResponse<T>(query);\n }\n\n async mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>> {\n this.calls.push({ type: \"mutation\", query: mutation, variables });\n return this.findResponse<T>(mutation);\n }\n\n private findResponse<T>(queryString: string): GraphQLResult<T> {\n for (const [key, value] of this.responses.entries()) {\n if (queryString.includes(key)) {\n return { data: value as T };\n }\n }\n throw new Error(\n `No mock response registered for query containing operation. Query starts with: \"${queryString.slice(0, 80)}...\"`\n );\n }\n}\n\nexport class MockStorageProvider implements StorageProvider {\n readonly calls: Array<{ method: string; args: unknown[] }> = [];\n\n async getFileUrl(path: string): Promise<{ url: string }> {\n this.calls.push({ method: \"getFileUrl\", args: [path] });\n return { url: `https://mock-storage.test/${path}` };\n }\n\n async uploadFile(\n path: string,\n data: Blob | ArrayBuffer | string,\n options?: UploadOptions\n ): Promise<{ path: string }> {\n this.calls.push({ method: \"uploadFile\", args: [path, data, options] });\n if (options?.onProgress) {\n options.onProgress({ loaded: 100, total: 100 });\n }\n return { path };\n }\n}\n"],"mappings":";AAIO,IAAM,mBAAN,MAA+C;AAAA,EAA/C;AACL,SAAQ,gBAA+B;AAAA;AAAA,EAEvC,iBAAiB,QAA6B;AAC5C,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,MAAM,OAAO,WAAmB,WAAmB;AACjD,WAAO,EAAE,YAAY,KAAK;AAAA,EAC5B;AAAA,EAEA,MAAM,OAAO,WAAmB,WAAmB,aAAqC;AACtF,WAAO,EAAE,kBAAkB,MAAM,QAAQ,KAAK,iBAAiB,OAAU;AAAA,EAC3E;AAAA,EAEA,MAAM,UAAU;AAAA,EAAC;AAAA,EAEjB,MAAM,mBAAmB,WAAmB;AAAA,EAAC;AAAA,EAE7C,MAAM,sBAA+C;AACnD,WAAO,EAAE,OAAO,iBAAiB,KAAK,KAAK,iBAAiB,OAAU;AAAA,EACxE;AAAA,EAEA,MAAM,qBAAqB,aAAqC;AAAA,EAAC;AAAA,EAEjE,MAAM,mBAAyC;AAC7C,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,aAAa,EAAE,UAAU,MAAM,oBAAoB;AAAA,QACnD,SAAS,EAAE,UAAU,MAAM,gBAAgB;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,WAAmB,OAAe;AACpD,WAAO,EAAE,kBAAkB,KAAK;AAAA,EAClC;AAAA,EAEA,MAAM,iBAAiB,WAAmB;AAAA,EAAC;AAAA,EAE3C,MAAM,cAAc,WAAmB;AAAA,EAAC;AAAA,EAExC,MAAM,qBAAqB,WAAmB,OAAe,cAAsB;AAAA,EAAC;AAAA,EAEpF,MAAM,mBAA2C;AAC/C,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAM,sBAAN,MAAqD;AAAA,EAArD;AACL,SAAQ,YAAY,oBAAI,IAAqB;AAC7C,SAAS,QAAmG,CAAC;AAAA;AAAA,EAE7G,YAAe,cAAsB,MAAe;AAClD,SAAK,UAAU,IAAI,cAAc,IAAI;AAAA,EACvC;AAAA,EAEA,QAAc;AACZ,SAAK,UAAU,MAAM;AACrB,SAAK,MAAM,SAAS;AAAA,EACtB;AAAA,EAEA,MAAM,MAAS,OAAe,WAAgE;AAC5F,SAAK,MAAM,KAAK,EAAE,MAAM,SAAS,OAAO,UAAU,CAAC;AACnD,WAAO,KAAK,aAAgB,KAAK;AAAA,EACnC;AAAA,EAEA,MAAM,OAAU,UAAkB,WAAgE;AAChG,SAAK,MAAM,KAAK,EAAE,MAAM,YAAY,OAAO,UAAU,UAAU,CAAC;AAChE,WAAO,KAAK,aAAgB,QAAQ;AAAA,EACtC;AAAA,EAEQ,aAAgB,aAAuC;AAC7D,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,UAAU,QAAQ,GAAG;AACnD,UAAI,YAAY,SAAS,GAAG,GAAG;AAC7B,eAAO,EAAE,MAAM,MAAW;AAAA,MAC5B;AAAA,IACF;AACA,UAAM,IAAI;AAAA,MACR,mFAAmF,YAAY,MAAM,GAAG,EAAE,CAAC;AAAA,IAC7G;AAAA,EACF;AACF;AAEO,IAAM,sBAAN,MAAqD;AAAA,EAArD;AACL,SAAS,QAAoD,CAAC;AAAA;AAAA,EAE9D,MAAM,WAAW,MAAwC;AACvD,SAAK,MAAM,KAAK,EAAE,QAAQ,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC;AACtD,WAAO,EAAE,KAAK,6BAA6B,IAAI,GAAG;AAAA,EACpD;AAAA,EAEA,MAAM,WACJ,MACA,MACA,SAC2B;AAC3B,SAAK,MAAM,KAAK,EAAE,QAAQ,cAAc,MAAM,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC;AACrE,QAAI,SAAS,YAAY;AACvB,cAAQ,WAAW,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,IAChD;AACA,WAAO,EAAE,KAAK;AAAA,EAChB;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/testing/mock-providers.ts"],"sourcesContent":["import type { AuthProvider, UserAttributes, AuthSession } from \"../providers/auth\";\nimport type { NetworkProvider, GraphQLResult } from \"../providers/network\";\nimport type { StorageProvider, UploadOptions } from \"../providers/storage\";\n\nexport class MockAuthProvider implements AuthProvider {\n private currentUserId: string | null = \"test-user-id\";\n\n setCurrentUserId(userId: string | null): void {\n this.currentUserId = userId;\n }\n\n async signIn(_username: string, _password: string) {\n return { isSignedIn: true };\n }\n\n async signUp(_username: string, _password: string, _attributes: Record<string, string>) {\n return { isSignUpComplete: true, userId: this.currentUserId ?? undefined };\n }\n\n async signOut() {}\n\n async signInWithRedirect(_provider: string) {}\n\n async fetchUserAttributes(): Promise<UserAttributes> {\n return { email: \"test@test.com\", sub: this.currentUserId ?? undefined };\n }\n\n async updateUserAttributes(_attributes: Record<string, string>) {}\n\n async fetchAuthSession(): Promise<AuthSession> {\n return {\n tokens: {\n accessToken: { toString: () => \"mock-access-token\" },\n idToken: { toString: () => \"mock-id-token\" },\n },\n };\n }\n\n async confirmSignUp(_username: string, _code: string) {\n return { isSignUpComplete: true };\n }\n\n async resendSignUpCode(_username: string) {}\n\n async resetPassword(_username: string) {}\n\n async confirmResetPassword(_username: string, _code: string, _newPassword: string) {}\n\n async getCurrentUserId(): Promise<string | null> {\n return this.currentUserId;\n }\n}\n\nexport class MockNetworkProvider implements NetworkProvider {\n private responses = new Map<string, unknown>();\n private errors = new Map<string, Error>();\n readonly calls: Array<{ type: \"query\" | \"mutation\"; query: string; variables?: Record<string, unknown> }> = [];\n\n setResponse<T>(operationKey: string, data: T): void {\n this.responses.set(operationKey, data);\n }\n\n setError(operationKey: string, error: Error): void {\n this.errors.set(operationKey, error);\n }\n\n reset(): void {\n this.responses.clear();\n this.errors.clear();\n this.calls.length = 0;\n }\n\n async query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>> {\n this.calls.push({ type: \"query\", query, variables });\n return this.findResponse<T>(query);\n }\n\n async mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>> {\n this.calls.push({ type: \"mutation\", query: mutation, variables });\n return this.findResponse<T>(mutation);\n }\n\n private findResponse<T>(queryString: string): GraphQLResult<T> {\n for (const [key, error] of this.errors.entries()) {\n if (queryString.includes(key)) {\n throw error;\n }\n }\n for (const [key, value] of this.responses.entries()) {\n if (queryString.includes(key)) {\n return { data: value as T };\n }\n }\n throw new Error(\n `No mock response registered for query containing operation. Query starts with: \"${queryString.slice(0, 80)}...\"`\n );\n }\n}\n\nexport class MockStorageProvider implements StorageProvider {\n readonly calls: Array<{ method: string; args: unknown[] }> = [];\n\n async getFileUrl(path: string): Promise<{ url: string }> {\n this.calls.push({ method: \"getFileUrl\", args: [path] });\n return { url: `https://mock-storage.test/${path}` };\n }\n\n async uploadFile(\n path: string,\n data: Blob | ArrayBuffer | string,\n options?: UploadOptions\n ): Promise<{ path: string }> {\n this.calls.push({ method: \"uploadFile\", args: [path, data, options] });\n if (options?.onProgress) {\n options.onProgress({ loaded: 100, total: 100 });\n }\n return { path };\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orjok/commons",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Orjok platform shared business logic for React and React Native",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"prepublishOnly": "npm run build"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
|
-
"react": ">=17.0.0",
|
|
66
65
|
"@tanstack/react-query": ">=5.0.0",
|
|
67
|
-
"papaparse": ">=5.0.0"
|
|
66
|
+
"papaparse": ">=5.0.0",
|
|
67
|
+
"react": ">=17.0.0"
|
|
68
68
|
},
|
|
69
69
|
"peerDependenciesMeta": {
|
|
70
70
|
"react": {
|
|
@@ -79,9 +79,11 @@
|
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@tanstack/react-query": "^5.101.0",
|
|
82
|
+
"@testing-library/react": "^15.0.7",
|
|
82
83
|
"@types/papaparse": "^5.3.14",
|
|
83
84
|
"@types/react": "^18.2.0",
|
|
84
85
|
"aws-amplify": "^6.2.0",
|
|
86
|
+
"happy-dom": "^20.11.6",
|
|
85
87
|
"papaparse": "^5.4.1",
|
|
86
88
|
"tsup": "^8.0.0",
|
|
87
89
|
"tsx": "^4.7.2",
|