@orjok/commons 1.0.2 → 1.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/amplify.cjs +30 -5
- package/dist/amplify.cjs.map +1 -1
- package/dist/amplify.d.cts +5 -2
- package/dist/amplify.d.ts +5 -2
- package/dist/amplify.js +30 -5
- package/dist/amplify.js.map +1 -1
- package/dist/chunk-B4UJE3F4.js +529 -0
- package/dist/chunk-B4UJE3F4.js.map +1 -0
- package/dist/chunk-ODXD2WJN.cjs +529 -0
- package/dist/chunk-ODXD2WJN.cjs.map +1 -0
- package/dist/hooks.cjs +639 -2
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +162 -3
- package/dist/hooks.d.ts +162 -3
- package/dist/hooks.js +638 -1
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +2454 -363
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +303 -15
- package/dist/index.d.ts +303 -15
- package/dist/index.js +2430 -339
- package/dist/index.js.map +1 -1
- package/dist/{client-BaOC79Nc.d.cts → notification-BoqtkNrc.d.ts} +392 -12
- package/dist/{client-Bm9aiyTx.d.ts → notification-Ctfy0m05.d.cts} +392 -12
- package/dist/{storage-DLqdJgQt.d.cts → storage-9pK8KwIM.d.cts} +4 -2
- package/dist/{storage-DLqdJgQt.d.ts → storage-9pK8KwIM.d.ts} +4 -2
- package/dist/testing.cjs +34 -3
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +9 -2
- package/dist/testing.d.ts +9 -2
- package/dist/testing.js +34 -3
- package/dist/testing.js.map +1 -1
- package/package.json +6 -3
package/dist/testing.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var MockAuthProvider = class {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.currentUserId = "test-user-id";
|
|
5
|
+
this.eventListeners = [];
|
|
5
6
|
}
|
|
6
7
|
setCurrentUserId(userId) {
|
|
7
8
|
this.currentUserId = userId;
|
|
@@ -41,28 +42,58 @@ var MockAuthProvider = class {
|
|
|
41
42
|
async getCurrentUserId() {
|
|
42
43
|
return this.currentUserId;
|
|
43
44
|
}
|
|
45
|
+
onAuthEvent(listener) {
|
|
46
|
+
this.eventListeners.push(listener);
|
|
47
|
+
return () => {
|
|
48
|
+
this.eventListeners = this.eventListeners.filter((l) => l !== listener);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
emitAuthEvent(event, data) {
|
|
52
|
+
this.eventListeners.forEach((l) => l(event, data));
|
|
53
|
+
}
|
|
44
54
|
};
|
|
45
55
|
var MockNetworkProvider = class {
|
|
46
56
|
constructor() {
|
|
47
57
|
this.responses = /* @__PURE__ */ new Map();
|
|
58
|
+
this.handlers = /* @__PURE__ */ new Map();
|
|
59
|
+
this.errors = /* @__PURE__ */ new Map();
|
|
48
60
|
this.calls = [];
|
|
49
61
|
}
|
|
50
62
|
setResponse(operationKey, data) {
|
|
51
63
|
this.responses.set(operationKey, data);
|
|
52
64
|
}
|
|
65
|
+
setHandler(operationKey, handler) {
|
|
66
|
+
this.handlers.set(operationKey, handler);
|
|
67
|
+
}
|
|
68
|
+
setError(operationKey, error) {
|
|
69
|
+
this.errors.set(operationKey, error);
|
|
70
|
+
}
|
|
53
71
|
reset() {
|
|
54
72
|
this.responses.clear();
|
|
73
|
+
this.handlers.clear();
|
|
74
|
+
this.errors.clear();
|
|
55
75
|
this.calls.length = 0;
|
|
56
76
|
}
|
|
57
77
|
async query(query, variables) {
|
|
58
78
|
this.calls.push({ type: "query", query, variables });
|
|
59
|
-
return this.findResponse(query);
|
|
79
|
+
return this.findResponse(query, variables);
|
|
60
80
|
}
|
|
61
81
|
async mutate(mutation, variables) {
|
|
62
82
|
this.calls.push({ type: "mutation", query: mutation, variables });
|
|
63
|
-
return this.findResponse(mutation);
|
|
83
|
+
return this.findResponse(mutation, variables);
|
|
64
84
|
}
|
|
65
|
-
findResponse(queryString) {
|
|
85
|
+
findResponse(queryString, variables) {
|
|
86
|
+
for (const [key, error] of this.errors.entries()) {
|
|
87
|
+
if (queryString.includes(key)) {
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const [key, handler] of this.handlers.entries()) {
|
|
92
|
+
if (queryString.includes(key)) {
|
|
93
|
+
const data = handler(variables);
|
|
94
|
+
return { data };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
66
97
|
for (const [key, value] of this.responses.entries()) {
|
|
67
98
|
if (queryString.includes(key)) {
|
|
68
99
|
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":"AAAA;ACIO,IAAM,iBAAA,EAAN,MAA+C;AAAA,EAA/C,WAAA,CAAA,EAAA;AACL,IAAA,IAAA,CAAQ,cAAA,EAA+B,cAAA;AAAA,EAAA;AAAA,
|
|
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, AuthEventListener } 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 private eventListeners: AuthEventListener[] = [];\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 onAuthEvent(listener: AuthEventListener): () => void {\n this.eventListeners.push(listener);\n return () => {\n this.eventListeners = this.eventListeners.filter((l) => l !== listener);\n };\n }\n\n emitAuthEvent(event: string, data?: unknown): void {\n this.eventListeners.forEach((l) => l(event, data));\n }\n}\n\nexport class MockNetworkProvider implements NetworkProvider {\n private responses = new Map<string, unknown>();\n private handlers = new Map<string, (variables?: Record<string, unknown>) => 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 setHandler(operationKey: string, handler: (variables?: Record<string, unknown>) => unknown): void {\n this.handlers.set(operationKey, handler);\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.handlers.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, variables);\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, variables);\n }\n\n private findResponse<T>(queryString: string, variables?: Record<string, unknown>): 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, handler] of this.handlers.entries()) {\n if (queryString.includes(key)) {\n const data = handler(variables);\n return { data: data as T };\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
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { A as AuthProvider, U as UserAttributes, a as AuthSession, N as NetworkProvider, G as GraphQLResult, S as StorageProvider,
|
|
1
|
+
import { A as AuthProvider, U as UserAttributes, a as AuthSession, b as AuthEventListener, N as NetworkProvider, G as GraphQLResult, S as StorageProvider, c as UploadOptions } from './storage-9pK8KwIM.cjs';
|
|
2
2
|
|
|
3
3
|
declare class MockAuthProvider implements AuthProvider {
|
|
4
4
|
private currentUserId;
|
|
5
|
+
private eventListeners;
|
|
5
6
|
setCurrentUserId(userId: string | null): void;
|
|
6
7
|
signIn(_username: string, _password: string): Promise<{
|
|
7
8
|
isSignedIn: boolean;
|
|
@@ -11,7 +12,7 @@ declare class MockAuthProvider implements AuthProvider {
|
|
|
11
12
|
userId: string | undefined;
|
|
12
13
|
}>;
|
|
13
14
|
signOut(): Promise<void>;
|
|
14
|
-
signInWithRedirect(_provider
|
|
15
|
+
signInWithRedirect(_provider?: string): Promise<void>;
|
|
15
16
|
fetchUserAttributes(): Promise<UserAttributes>;
|
|
16
17
|
updateUserAttributes(_attributes: Record<string, string>): Promise<void>;
|
|
17
18
|
fetchAuthSession(): Promise<AuthSession>;
|
|
@@ -22,15 +23,21 @@ declare class MockAuthProvider implements AuthProvider {
|
|
|
22
23
|
resetPassword(_username: string): Promise<void>;
|
|
23
24
|
confirmResetPassword(_username: string, _code: string, _newPassword: string): Promise<void>;
|
|
24
25
|
getCurrentUserId(): Promise<string | null>;
|
|
26
|
+
onAuthEvent(listener: AuthEventListener): () => void;
|
|
27
|
+
emitAuthEvent(event: string, data?: unknown): void;
|
|
25
28
|
}
|
|
26
29
|
declare class MockNetworkProvider implements NetworkProvider {
|
|
27
30
|
private responses;
|
|
31
|
+
private handlers;
|
|
32
|
+
private errors;
|
|
28
33
|
readonly calls: Array<{
|
|
29
34
|
type: "query" | "mutation";
|
|
30
35
|
query: string;
|
|
31
36
|
variables?: Record<string, unknown>;
|
|
32
37
|
}>;
|
|
33
38
|
setResponse<T>(operationKey: string, data: T): void;
|
|
39
|
+
setHandler(operationKey: string, handler: (variables?: Record<string, unknown>) => unknown): void;
|
|
40
|
+
setError(operationKey: string, error: Error): void;
|
|
34
41
|
reset(): void;
|
|
35
42
|
query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
|
36
43
|
mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { A as AuthProvider, U as UserAttributes, a as AuthSession, N as NetworkProvider, G as GraphQLResult, S as StorageProvider,
|
|
1
|
+
import { A as AuthProvider, U as UserAttributes, a as AuthSession, b as AuthEventListener, N as NetworkProvider, G as GraphQLResult, S as StorageProvider, c as UploadOptions } from './storage-9pK8KwIM.js';
|
|
2
2
|
|
|
3
3
|
declare class MockAuthProvider implements AuthProvider {
|
|
4
4
|
private currentUserId;
|
|
5
|
+
private eventListeners;
|
|
5
6
|
setCurrentUserId(userId: string | null): void;
|
|
6
7
|
signIn(_username: string, _password: string): Promise<{
|
|
7
8
|
isSignedIn: boolean;
|
|
@@ -11,7 +12,7 @@ declare class MockAuthProvider implements AuthProvider {
|
|
|
11
12
|
userId: string | undefined;
|
|
12
13
|
}>;
|
|
13
14
|
signOut(): Promise<void>;
|
|
14
|
-
signInWithRedirect(_provider
|
|
15
|
+
signInWithRedirect(_provider?: string): Promise<void>;
|
|
15
16
|
fetchUserAttributes(): Promise<UserAttributes>;
|
|
16
17
|
updateUserAttributes(_attributes: Record<string, string>): Promise<void>;
|
|
17
18
|
fetchAuthSession(): Promise<AuthSession>;
|
|
@@ -22,15 +23,21 @@ declare class MockAuthProvider implements AuthProvider {
|
|
|
22
23
|
resetPassword(_username: string): Promise<void>;
|
|
23
24
|
confirmResetPassword(_username: string, _code: string, _newPassword: string): Promise<void>;
|
|
24
25
|
getCurrentUserId(): Promise<string | null>;
|
|
26
|
+
onAuthEvent(listener: AuthEventListener): () => void;
|
|
27
|
+
emitAuthEvent(event: string, data?: unknown): void;
|
|
25
28
|
}
|
|
26
29
|
declare class MockNetworkProvider implements NetworkProvider {
|
|
27
30
|
private responses;
|
|
31
|
+
private handlers;
|
|
32
|
+
private errors;
|
|
28
33
|
readonly calls: Array<{
|
|
29
34
|
type: "query" | "mutation";
|
|
30
35
|
query: string;
|
|
31
36
|
variables?: Record<string, unknown>;
|
|
32
37
|
}>;
|
|
33
38
|
setResponse<T>(operationKey: string, data: T): void;
|
|
39
|
+
setHandler(operationKey: string, handler: (variables?: Record<string, unknown>) => unknown): void;
|
|
40
|
+
setError(operationKey: string, error: Error): void;
|
|
34
41
|
reset(): void;
|
|
35
42
|
query<T>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
|
36
43
|
mutate<T>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResult<T>>;
|
package/dist/testing.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var MockAuthProvider = class {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.currentUserId = "test-user-id";
|
|
5
|
+
this.eventListeners = [];
|
|
5
6
|
}
|
|
6
7
|
setCurrentUserId(userId) {
|
|
7
8
|
this.currentUserId = userId;
|
|
@@ -41,28 +42,58 @@ var MockAuthProvider = class {
|
|
|
41
42
|
async getCurrentUserId() {
|
|
42
43
|
return this.currentUserId;
|
|
43
44
|
}
|
|
45
|
+
onAuthEvent(listener) {
|
|
46
|
+
this.eventListeners.push(listener);
|
|
47
|
+
return () => {
|
|
48
|
+
this.eventListeners = this.eventListeners.filter((l) => l !== listener);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
emitAuthEvent(event, data) {
|
|
52
|
+
this.eventListeners.forEach((l) => l(event, data));
|
|
53
|
+
}
|
|
44
54
|
};
|
|
45
55
|
var MockNetworkProvider = class {
|
|
46
56
|
constructor() {
|
|
47
57
|
this.responses = /* @__PURE__ */ new Map();
|
|
58
|
+
this.handlers = /* @__PURE__ */ new Map();
|
|
59
|
+
this.errors = /* @__PURE__ */ new Map();
|
|
48
60
|
this.calls = [];
|
|
49
61
|
}
|
|
50
62
|
setResponse(operationKey, data) {
|
|
51
63
|
this.responses.set(operationKey, data);
|
|
52
64
|
}
|
|
65
|
+
setHandler(operationKey, handler) {
|
|
66
|
+
this.handlers.set(operationKey, handler);
|
|
67
|
+
}
|
|
68
|
+
setError(operationKey, error) {
|
|
69
|
+
this.errors.set(operationKey, error);
|
|
70
|
+
}
|
|
53
71
|
reset() {
|
|
54
72
|
this.responses.clear();
|
|
73
|
+
this.handlers.clear();
|
|
74
|
+
this.errors.clear();
|
|
55
75
|
this.calls.length = 0;
|
|
56
76
|
}
|
|
57
77
|
async query(query, variables) {
|
|
58
78
|
this.calls.push({ type: "query", query, variables });
|
|
59
|
-
return this.findResponse(query);
|
|
79
|
+
return this.findResponse(query, variables);
|
|
60
80
|
}
|
|
61
81
|
async mutate(mutation, variables) {
|
|
62
82
|
this.calls.push({ type: "mutation", query: mutation, variables });
|
|
63
|
-
return this.findResponse(mutation);
|
|
83
|
+
return this.findResponse(mutation, variables);
|
|
64
84
|
}
|
|
65
|
-
findResponse(queryString) {
|
|
85
|
+
findResponse(queryString, variables) {
|
|
86
|
+
for (const [key, error] of this.errors.entries()) {
|
|
87
|
+
if (queryString.includes(key)) {
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const [key, handler] of this.handlers.entries()) {
|
|
92
|
+
if (queryString.includes(key)) {
|
|
93
|
+
const data = handler(variables);
|
|
94
|
+
return { data };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
66
97
|
for (const [key, value] of this.responses.entries()) {
|
|
67
98
|
if (queryString.includes(key)) {
|
|
68
99
|
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
|
|
1
|
+
{"version":3,"sources":["../src/testing/mock-providers.ts"],"sourcesContent":["import type { AuthProvider, UserAttributes, AuthSession, AuthEventListener } 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 private eventListeners: AuthEventListener[] = [];\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 onAuthEvent(listener: AuthEventListener): () => void {\n this.eventListeners.push(listener);\n return () => {\n this.eventListeners = this.eventListeners.filter((l) => l !== listener);\n };\n }\n\n emitAuthEvent(event: string, data?: unknown): void {\n this.eventListeners.forEach((l) => l(event, data));\n }\n}\n\nexport class MockNetworkProvider implements NetworkProvider {\n private responses = new Map<string, unknown>();\n private handlers = new Map<string, (variables?: Record<string, unknown>) => 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 setHandler(operationKey: string, handler: (variables?: Record<string, unknown>) => unknown): void {\n this.handlers.set(operationKey, handler);\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.handlers.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, variables);\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, variables);\n }\n\n private findResponse<T>(queryString: string, variables?: Record<string, unknown>): 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, handler] of this.handlers.entries()) {\n if (queryString.includes(key)) {\n const data = handler(variables);\n return { data: data as T };\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,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orjok/commons",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Orjok platform shared business logic for React and React Native",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
|
+
"react-native": "./dist/index.js",
|
|
8
9
|
"types": "./dist/index.d.ts",
|
|
9
10
|
"exports": {
|
|
10
11
|
".": {
|
|
@@ -62,9 +63,9 @@
|
|
|
62
63
|
"prepublishOnly": "npm run build"
|
|
63
64
|
},
|
|
64
65
|
"peerDependencies": {
|
|
65
|
-
"react": ">=17.0.0",
|
|
66
66
|
"@tanstack/react-query": ">=5.0.0",
|
|
67
|
-
"papaparse": ">=5.0.0"
|
|
67
|
+
"papaparse": ">=5.0.0",
|
|
68
|
+
"react": ">=17.0.0"
|
|
68
69
|
},
|
|
69
70
|
"peerDependenciesMeta": {
|
|
70
71
|
"react": {
|
|
@@ -79,9 +80,11 @@
|
|
|
79
80
|
},
|
|
80
81
|
"devDependencies": {
|
|
81
82
|
"@tanstack/react-query": "^5.101.0",
|
|
83
|
+
"@testing-library/react": "^15.0.7",
|
|
82
84
|
"@types/papaparse": "^5.3.14",
|
|
83
85
|
"@types/react": "^18.2.0",
|
|
84
86
|
"aws-amplify": "^6.2.0",
|
|
87
|
+
"happy-dom": "^20.11.6",
|
|
85
88
|
"papaparse": "^5.4.1",
|
|
86
89
|
"tsup": "^8.0.0",
|
|
87
90
|
"tsx": "^4.7.2",
|