@sudobility/testomniac_client 0.0.22 → 0.0.24

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.
Files changed (93) hide show
  1. package/dist/hooks/index.d.ts +16 -2
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/index.js +16 -2
  4. package/dist/hooks/index.js.map +1 -1
  5. package/dist/hooks/useEntityProjects.d.ts +17 -0
  6. package/dist/hooks/useEntityProjects.d.ts.map +1 -0
  7. package/dist/hooks/useEntityProjects.js +20 -0
  8. package/dist/hooks/useEntityProjects.js.map +1 -0
  9. package/dist/hooks/usePageStateItems.d.ts +17 -0
  10. package/dist/hooks/usePageStateItems.d.ts.map +1 -0
  11. package/dist/hooks/usePageStateItems.js +20 -0
  12. package/dist/hooks/usePageStateItems.js.map +1 -0
  13. package/dist/hooks/usePageStates.d.ts +17 -0
  14. package/dist/hooks/usePageStates.d.ts.map +1 -0
  15. package/dist/hooks/usePageStates.js +20 -0
  16. package/dist/hooks/usePageStates.js.map +1 -0
  17. package/dist/hooks/usePersonaUseCases.d.ts +17 -0
  18. package/dist/hooks/usePersonaUseCases.d.ts.map +1 -0
  19. package/dist/hooks/usePersonaUseCases.js +20 -0
  20. package/dist/hooks/usePersonaUseCases.js.map +1 -0
  21. package/dist/hooks/useProject.d.ts +17 -0
  22. package/dist/hooks/useProject.d.ts.map +1 -0
  23. package/dist/hooks/useProject.js +20 -0
  24. package/dist/hooks/useProject.js.map +1 -0
  25. package/dist/hooks/useProjectRuns.d.ts +17 -0
  26. package/dist/hooks/useProjectRuns.d.ts.map +1 -0
  27. package/dist/hooks/useProjectRuns.js +20 -0
  28. package/dist/hooks/useProjectRuns.js.map +1 -0
  29. package/dist/hooks/useRun.d.ts +17 -0
  30. package/dist/hooks/useRun.d.ts.map +1 -0
  31. package/dist/hooks/useRun.js +20 -0
  32. package/dist/hooks/useRun.js.map +1 -0
  33. package/dist/hooks/useRunActions.d.ts +17 -0
  34. package/dist/hooks/useRunActions.d.ts.map +1 -0
  35. package/dist/hooks/useRunActions.js +20 -0
  36. package/dist/hooks/useRunActions.js.map +1 -0
  37. package/dist/hooks/useRunComponents.d.ts +17 -0
  38. package/dist/hooks/useRunComponents.d.ts.map +1 -0
  39. package/dist/hooks/useRunComponents.js +20 -0
  40. package/dist/hooks/useRunComponents.js.map +1 -0
  41. package/dist/hooks/useRunIssues.d.ts +17 -0
  42. package/dist/hooks/useRunIssues.d.ts.map +1 -0
  43. package/dist/hooks/useRunIssues.js +20 -0
  44. package/dist/hooks/useRunIssues.js.map +1 -0
  45. package/dist/hooks/useRunPages.d.ts +17 -0
  46. package/dist/hooks/useRunPages.d.ts.map +1 -0
  47. package/dist/hooks/useRunPages.js +20 -0
  48. package/dist/hooks/useRunPages.js.map +1 -0
  49. package/dist/hooks/useRunPersonas.d.ts +17 -0
  50. package/dist/hooks/useRunPersonas.d.ts.map +1 -0
  51. package/dist/hooks/useRunPersonas.js +20 -0
  52. package/dist/hooks/useRunPersonas.js.map +1 -0
  53. package/dist/hooks/useRunTestCases.d.ts +17 -0
  54. package/dist/hooks/useRunTestCases.d.ts.map +1 -0
  55. package/dist/hooks/useRunTestCases.js +20 -0
  56. package/dist/hooks/useRunTestCases.js.map +1 -0
  57. package/dist/hooks/useRunTestRuns.d.ts +17 -0
  58. package/dist/hooks/useRunTestRuns.d.ts.map +1 -0
  59. package/dist/hooks/useRunTestRuns.js +20 -0
  60. package/dist/hooks/useRunTestRuns.js.map +1 -0
  61. package/dist/hooks/useSubmitScan.d.ts +14 -0
  62. package/dist/hooks/useSubmitScan.d.ts.map +1 -0
  63. package/dist/hooks/useSubmitScan.js +16 -0
  64. package/dist/hooks/useSubmitScan.js.map +1 -0
  65. package/dist/hooks/useUseCaseInputValues.d.ts +17 -0
  66. package/dist/hooks/useUseCaseInputValues.d.ts.map +1 -0
  67. package/dist/hooks/useUseCaseInputValues.js +20 -0
  68. package/dist/hooks/useUseCaseInputValues.js.map +1 -0
  69. package/dist/network/TestomniacClient.d.ts +30 -0
  70. package/dist/network/TestomniacClient.d.ts.map +1 -0
  71. package/dist/network/TestomniacClient.js +142 -0
  72. package/dist/network/TestomniacClient.js.map +1 -0
  73. package/dist/network/index.d.ts +1 -1
  74. package/dist/network/index.d.ts.map +1 -1
  75. package/dist/network/index.js +1 -1
  76. package/dist/network/index.js.map +1 -1
  77. package/dist/types.d.ts +16 -3
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/types.js +16 -3
  80. package/dist/types.js.map +1 -1
  81. package/package.json +2 -2
  82. package/dist/hooks/useHistories.d.ts +0 -19
  83. package/dist/hooks/useHistories.d.ts.map +0 -1
  84. package/dist/hooks/useHistories.js +0 -98
  85. package/dist/hooks/useHistories.js.map +0 -1
  86. package/dist/hooks/useHistoriesTotal.d.ts +0 -11
  87. package/dist/hooks/useHistoriesTotal.d.ts.map +0 -1
  88. package/dist/hooks/useHistoriesTotal.js +0 -29
  89. package/dist/hooks/useHistoriesTotal.js.map +0 -1
  90. package/dist/network/StarterClient.d.ts +0 -18
  91. package/dist/network/StarterClient.d.ts.map +0 -1
  92. package/dist/network/StarterClient.js +0 -59
  93. package/dist/network/StarterClient.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { TestomniacClient } from '../network/TestomniacClient';
3
+ import { DEFAULT_STALE_TIME, QUERY_KEYS } from '../types';
4
+ export function useRunPersonas(config) {
5
+ const { networkClient, baseUrl, runId, token, enabled = true } = config;
6
+ const client = new TestomniacClient({ baseUrl, networkClient });
7
+ const query = useQuery({
8
+ queryKey: QUERY_KEYS.runPersonas(runId),
9
+ queryFn: () => client.getRunPersonas(runId, token),
10
+ enabled: enabled && !!runId && !!token,
11
+ staleTime: DEFAULT_STALE_TIME,
12
+ });
13
+ return {
14
+ personas: query.data?.data ?? [],
15
+ isLoading: query.isLoading,
16
+ error: query.error?.message ?? query.data?.error ?? null,
17
+ refetch: query.refetch,
18
+ };
19
+ }
20
+ //# sourceMappingURL=useRunPersonas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRunPersonas.js","sourceRoot":"","sources":["../../src/hooks/useRunPersonas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAUhF,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;QACvC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;QAClD,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK;QACtC,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { NetworkClient } from '@sudobility/types';
2
+ import { type FirebaseIdToken } from '../types';
3
+ interface UseRunTestCasesConfig {
4
+ networkClient: NetworkClient;
5
+ baseUrl: string;
6
+ runId: number;
7
+ token: FirebaseIdToken;
8
+ enabled?: boolean;
9
+ }
10
+ export declare function useRunTestCases(config: UseRunTestCasesConfig): {
11
+ testCases: import("@sudobility/testomniac_types").TestCaseResponse[];
12
+ isLoading: boolean;
13
+ error: string | null;
14
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@sudobility/types").BaseResponse<import("@sudobility/testomniac_types").TestCaseResponse[]>, Error>>;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=useRunTestCases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRunTestCases.d.ts","sourceRoot":"","sources":["../../src/hooks/useRunTestCases.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,eAAe,EAAc,MAAM,UAAU,CAAC;AAEhF,UAAU,qBAAqB;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB;;;;;EAiB5D"}
@@ -0,0 +1,20 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { TestomniacClient } from '../network/TestomniacClient';
3
+ import { DEFAULT_STALE_TIME, QUERY_KEYS } from '../types';
4
+ export function useRunTestCases(config) {
5
+ const { networkClient, baseUrl, runId, token, enabled = true } = config;
6
+ const client = new TestomniacClient({ baseUrl, networkClient });
7
+ const query = useQuery({
8
+ queryKey: QUERY_KEYS.runTestCases(runId),
9
+ queryFn: () => client.getRunTestCases(runId, token),
10
+ enabled: enabled && !!runId && !!token,
11
+ staleTime: DEFAULT_STALE_TIME,
12
+ });
13
+ return {
14
+ testCases: query.data?.data ?? [],
15
+ isLoading: query.isLoading,
16
+ error: query.error?.message ?? query.data?.error ?? null,
17
+ refetch: query.refetch,
18
+ };
19
+ }
20
+ //# sourceMappingURL=useRunTestCases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRunTestCases.js","sourceRoot":"","sources":["../../src/hooks/useRunTestCases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAUhF,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;QACnD,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK;QACtC,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;QACjC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { NetworkClient } from '@sudobility/types';
2
+ import { type FirebaseIdToken } from '../types';
3
+ interface UseRunTestRunsConfig {
4
+ networkClient: NetworkClient;
5
+ baseUrl: string;
6
+ runId: number;
7
+ token: FirebaseIdToken;
8
+ enabled?: boolean;
9
+ }
10
+ export declare function useRunTestRuns(config: UseRunTestRunsConfig): {
11
+ testRuns: import("@sudobility/testomniac_types").TestRunResponse[];
12
+ isLoading: boolean;
13
+ error: string | null;
14
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@sudobility/types").BaseResponse<import("@sudobility/testomniac_types").TestRunResponse[]>, Error>>;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=useRunTestRuns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRunTestRuns.d.ts","sourceRoot":"","sources":["../../src/hooks/useRunTestRuns.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,eAAe,EAAc,MAAM,UAAU,CAAC;AAEhF,UAAU,oBAAoB;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB;;;;;EAiB1D"}
@@ -0,0 +1,20 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { TestomniacClient } from '../network/TestomniacClient';
3
+ import { DEFAULT_STALE_TIME, QUERY_KEYS } from '../types';
4
+ export function useRunTestRuns(config) {
5
+ const { networkClient, baseUrl, runId, token, enabled = true } = config;
6
+ const client = new TestomniacClient({ baseUrl, networkClient });
7
+ const query = useQuery({
8
+ queryKey: QUERY_KEYS.runTestRuns(runId),
9
+ queryFn: () => client.getRunTestRuns(runId, token),
10
+ enabled: enabled && !!runId && !!token,
11
+ staleTime: DEFAULT_STALE_TIME,
12
+ });
13
+ return {
14
+ testRuns: query.data?.data ?? [],
15
+ isLoading: query.isLoading,
16
+ error: query.error?.message ?? query.data?.error ?? null,
17
+ refetch: query.refetch,
18
+ };
19
+ }
20
+ //# sourceMappingURL=useRunTestRuns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRunTestRuns.js","sourceRoot":"","sources":["../../src/hooks/useRunTestRuns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAUhF,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;QACvC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;QAClD,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK;QACtC,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { NetworkClient } from '@sudobility/types';
2
+ import type { CreateScanRequest } from '@sudobility/testomniac_types';
3
+ interface UseSubmitScanConfig {
4
+ networkClient: NetworkClient;
5
+ baseUrl: string;
6
+ }
7
+ export declare function useSubmitScan(config: UseSubmitScanConfig): {
8
+ submitScan: import("@tanstack/react-query").UseMutateAsyncFunction<import("@sudobility/types").BaseResponse<import("@sudobility/testomniac_types").CreateScanResponse>, Error, CreateScanRequest, unknown>;
9
+ isSubmitting: boolean;
10
+ error: string | null;
11
+ reset: () => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=useSubmitScan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSubmitScan.d.ts","sourceRoot":"","sources":["../../src/hooks/useSubmitScan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,UAAU,mBAAmB;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB;;;;;EAcxD"}
@@ -0,0 +1,16 @@
1
+ import { useMutation } from '@tanstack/react-query';
2
+ import { TestomniacClient } from '../network/TestomniacClient';
3
+ export function useSubmitScan(config) {
4
+ const { networkClient, baseUrl } = config;
5
+ const client = new TestomniacClient({ baseUrl, networkClient });
6
+ const mutation = useMutation({
7
+ mutationFn: (data) => client.submitScan(data),
8
+ });
9
+ return {
10
+ submitScan: mutation.mutateAsync,
11
+ isSubmitting: mutation.isPending,
12
+ error: mutation.error?.message ?? null,
13
+ reset: mutation.reset,
14
+ };
15
+ }
16
+ //# sourceMappingURL=useSubmitScan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSubmitScan.js","sourceRoot":"","sources":["../../src/hooks/useSubmitScan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAO/D,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,CAAC,IAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACjE,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,WAAW;QAChC,YAAY,EAAE,QAAQ,CAAC,SAAS;QAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI;QACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { NetworkClient } from '@sudobility/types';
2
+ import { type FirebaseIdToken } from '../types';
3
+ interface UseUseCaseInputValuesConfig {
4
+ networkClient: NetworkClient;
5
+ baseUrl: string;
6
+ useCaseId: number;
7
+ token: FirebaseIdToken;
8
+ enabled?: boolean;
9
+ }
10
+ export declare function useUseCaseInputValues(config: UseUseCaseInputValuesConfig): {
11
+ inputValues: import("@sudobility/testomniac_types").InputValueResponse[];
12
+ isLoading: boolean;
13
+ error: string | null;
14
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@sudobility/types").BaseResponse<import("@sudobility/testomniac_types").InputValueResponse[]>, Error>>;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=useUseCaseInputValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUseCaseInputValues.d.ts","sourceRoot":"","sources":["../../src/hooks/useUseCaseInputValues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,eAAe,EAAc,MAAM,UAAU,CAAC;AAEhF,UAAU,2BAA2B;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B;;;;;EAiBxE"}
@@ -0,0 +1,20 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { TestomniacClient } from '../network/TestomniacClient';
3
+ import { DEFAULT_STALE_TIME, QUERY_KEYS } from '../types';
4
+ export function useUseCaseInputValues(config) {
5
+ const { networkClient, baseUrl, useCaseId, token, enabled = true } = config;
6
+ const client = new TestomniacClient({ baseUrl, networkClient });
7
+ const query = useQuery({
8
+ queryKey: QUERY_KEYS.useCaseInputValues(useCaseId),
9
+ queryFn: () => client.getUseCaseInputValues(useCaseId, token),
10
+ enabled: enabled && !!useCaseId && !!token,
11
+ staleTime: DEFAULT_STALE_TIME,
12
+ });
13
+ return {
14
+ inputValues: query.data?.data ?? [],
15
+ isLoading: query.isLoading,
16
+ error: query.error?.message ?? query.data?.error ?? null,
17
+ refetch: query.refetch,
18
+ };
19
+ }
20
+ //# sourceMappingURL=useUseCaseInputValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUseCaseInputValues.js","sourceRoot":"","sources":["../../src/hooks/useUseCaseInputValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAUhF,MAAM,UAAU,qBAAqB,CAAC,MAAmC;IACvE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC;QAClD,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;QAC7D,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK;QAC1C,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;QACnC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { NetworkClient } from '@sudobility/types';
2
+ import type { ActionableItemResponse, ActionResponse, AppResponse, BaseResponse, CreateScanRequest, CreateScanResponse, InputValueResponse, IssueResponse, PageResponse, PageStateResponse, PersonaResponse, ProjectSummaryResponse, RunDetailResponse, TestCaseResponse, TestRunResponse, UseCaseResponse, User } from '@sudobility/testomniac_types';
3
+ import type { FirebaseIdToken } from '../types';
4
+ export declare class TestomniacClient {
5
+ private readonly baseUrl;
6
+ private readonly networkClient;
7
+ constructor(config: {
8
+ baseUrl: string;
9
+ networkClient: NetworkClient;
10
+ });
11
+ getUser(userId: string, token: FirebaseIdToken): Promise<BaseResponse<User>>;
12
+ submitScan(data: CreateScanRequest): Promise<BaseResponse<CreateScanResponse>>;
13
+ submitScanAuthenticated(data: CreateScanRequest, token: FirebaseIdToken): Promise<BaseResponse<CreateScanResponse>>;
14
+ getEntityProjects(entitySlug: string, token: FirebaseIdToken): Promise<BaseResponse<ProjectSummaryResponse[]>>;
15
+ getProject(projectId: number, token: FirebaseIdToken): Promise<BaseResponse<AppResponse>>;
16
+ getProjectRuns(projectId: number, token: FirebaseIdToken): Promise<BaseResponse<RunDetailResponse[]>>;
17
+ getRun(runId: number, token: FirebaseIdToken): Promise<BaseResponse<RunDetailResponse>>;
18
+ getRunPages(runId: number, token: FirebaseIdToken): Promise<BaseResponse<PageResponse[]>>;
19
+ getRunActions(runId: number, token: FirebaseIdToken): Promise<BaseResponse<ActionResponse[]>>;
20
+ getRunTestCases(runId: number, token: FirebaseIdToken): Promise<BaseResponse<TestCaseResponse[]>>;
21
+ getRunTestRuns(runId: number, token: FirebaseIdToken): Promise<BaseResponse<TestRunResponse[]>>;
22
+ getRunIssues(runId: number, token: FirebaseIdToken): Promise<BaseResponse<IssueResponse[]>>;
23
+ getRunPersonas(runId: number, token: FirebaseIdToken): Promise<BaseResponse<PersonaResponse[]>>;
24
+ getRunComponents(runId: number, token: FirebaseIdToken): Promise<BaseResponse<unknown[]>>;
25
+ getPageStates(pageId: number, token: FirebaseIdToken): Promise<BaseResponse<PageStateResponse[]>>;
26
+ getPageStateItems(pageStateId: number, token: FirebaseIdToken): Promise<BaseResponse<ActionableItemResponse[]>>;
27
+ getPersonaUseCases(personaId: number, token: FirebaseIdToken): Promise<BaseResponse<UseCaseResponse[]>>;
28
+ getUseCaseInputValues(useCaseId: number, token: FirebaseIdToken): Promise<BaseResponse<InputValueResponse[]>>;
29
+ }
30
+ //# sourceMappingURL=TestomniacClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestomniacClient.d.ts","sourceRoot":"","sources":["../../src/network/TestomniacClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { buildUrl, createAuthHeaders } from '../utils/starter-helpers';
2
+ function validateResponse(data, operation) {
3
+ if (data != null &&
4
+ typeof data === 'object' &&
5
+ 'success' in data &&
6
+ typeof data.success === 'boolean') {
7
+ return data;
8
+ }
9
+ throw new Error(`Invalid API response for ${operation}: response does not match expected BaseResponse shape`);
10
+ }
11
+ export class TestomniacClient {
12
+ constructor(config) {
13
+ this.baseUrl = config.baseUrl;
14
+ this.networkClient = config.networkClient;
15
+ }
16
+ async getUser(userId, token) {
17
+ const url = buildUrl(this.baseUrl, `/api/v1/users/${userId}`);
18
+ const response = await this.networkClient.get(url, {
19
+ headers: createAuthHeaders(token),
20
+ });
21
+ return validateResponse(response.data, 'getUser');
22
+ }
23
+ async submitScan(data) {
24
+ const url = buildUrl(this.baseUrl, '/api/v1/scan');
25
+ const response = await this.networkClient.post(url, { body: data });
26
+ return validateResponse(response.data, 'submitScan');
27
+ }
28
+ async submitScanAuthenticated(data, token) {
29
+ const url = buildUrl(this.baseUrl, '/api/v1/scan');
30
+ const response = await this.networkClient.post(url, {
31
+ headers: createAuthHeaders(token),
32
+ body: data,
33
+ });
34
+ return validateResponse(response.data, 'submitScanAuthenticated');
35
+ }
36
+ async getEntityProjects(entitySlug, token) {
37
+ const url = buildUrl(this.baseUrl, `/api/v1/entities/${entitySlug}/projects`);
38
+ const response = await this.networkClient.get(url, {
39
+ headers: createAuthHeaders(token),
40
+ });
41
+ return validateResponse(response.data, 'getEntityProjects');
42
+ }
43
+ async getProject(projectId, token) {
44
+ const url = buildUrl(this.baseUrl, `/api/v1/projects/${projectId}`);
45
+ const response = await this.networkClient.get(url, {
46
+ headers: createAuthHeaders(token),
47
+ });
48
+ return validateResponse(response.data, 'getProject');
49
+ }
50
+ async getProjectRuns(projectId, token) {
51
+ const url = buildUrl(this.baseUrl, `/api/v1/projects/${projectId}/runs`);
52
+ const response = await this.networkClient.get(url, {
53
+ headers: createAuthHeaders(token),
54
+ });
55
+ return validateResponse(response.data, 'getProjectRuns');
56
+ }
57
+ async getRun(runId, token) {
58
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}`);
59
+ const response = await this.networkClient.get(url, {
60
+ headers: createAuthHeaders(token),
61
+ });
62
+ return validateResponse(response.data, 'getRun');
63
+ }
64
+ async getRunPages(runId, token) {
65
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/pages`);
66
+ const response = await this.networkClient.get(url, {
67
+ headers: createAuthHeaders(token),
68
+ });
69
+ return validateResponse(response.data, 'getRunPages');
70
+ }
71
+ async getRunActions(runId, token) {
72
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/actions`);
73
+ const response = await this.networkClient.get(url, {
74
+ headers: createAuthHeaders(token),
75
+ });
76
+ return validateResponse(response.data, 'getRunActions');
77
+ }
78
+ async getRunTestCases(runId, token) {
79
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/test-cases`);
80
+ const response = await this.networkClient.get(url, {
81
+ headers: createAuthHeaders(token),
82
+ });
83
+ return validateResponse(response.data, 'getRunTestCases');
84
+ }
85
+ async getRunTestRuns(runId, token) {
86
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/test-runs`);
87
+ const response = await this.networkClient.get(url, {
88
+ headers: createAuthHeaders(token),
89
+ });
90
+ return validateResponse(response.data, 'getRunTestRuns');
91
+ }
92
+ async getRunIssues(runId, token) {
93
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/issues`);
94
+ const response = await this.networkClient.get(url, {
95
+ headers: createAuthHeaders(token),
96
+ });
97
+ return validateResponse(response.data, 'getRunIssues');
98
+ }
99
+ async getRunPersonas(runId, token) {
100
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/personas`);
101
+ const response = await this.networkClient.get(url, {
102
+ headers: createAuthHeaders(token),
103
+ });
104
+ return validateResponse(response.data, 'getRunPersonas');
105
+ }
106
+ async getRunComponents(runId, token) {
107
+ const url = buildUrl(this.baseUrl, `/api/v1/runs/${runId}/components`);
108
+ const response = await this.networkClient.get(url, {
109
+ headers: createAuthHeaders(token),
110
+ });
111
+ return validateResponse(response.data, 'getRunComponents');
112
+ }
113
+ async getPageStates(pageId, token) {
114
+ const url = buildUrl(this.baseUrl, `/api/v1/pages/${pageId}/states`);
115
+ const response = await this.networkClient.get(url, {
116
+ headers: createAuthHeaders(token),
117
+ });
118
+ return validateResponse(response.data, 'getPageStates');
119
+ }
120
+ async getPageStateItems(pageStateId, token) {
121
+ const url = buildUrl(this.baseUrl, `/api/v1/page-states/${pageStateId}/items`);
122
+ const response = await this.networkClient.get(url, {
123
+ headers: createAuthHeaders(token),
124
+ });
125
+ return validateResponse(response.data, 'getPageStateItems');
126
+ }
127
+ async getPersonaUseCases(personaId, token) {
128
+ const url = buildUrl(this.baseUrl, `/api/v1/personas/${personaId}/use-cases`);
129
+ const response = await this.networkClient.get(url, {
130
+ headers: createAuthHeaders(token),
131
+ });
132
+ return validateResponse(response.data, 'getPersonaUseCases');
133
+ }
134
+ async getUseCaseInputValues(useCaseId, token) {
135
+ const url = buildUrl(this.baseUrl, `/api/v1/use-cases/${useCaseId}/input-values`);
136
+ const response = await this.networkClient.get(url, {
137
+ headers: createAuthHeaders(token),
138
+ });
139
+ return validateResponse(response.data, 'getUseCaseInputValues');
140
+ }
141
+ }
142
+ //# sourceMappingURL=TestomniacClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestomniacClient.js","sourceRoot":"","sources":["../../src/network/TestomniacClient.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { StarterClient } from './StarterClient';
1
+ export { TestomniacClient } from './TestomniacClient';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { StarterClient } from './StarterClient';
1
+ export { TestomniacClient } from './TestomniacClient';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -2,8 +2,21 @@ export type FirebaseIdToken = string;
2
2
  export declare const DEFAULT_STALE_TIME: number;
3
3
  export declare const DEFAULT_GC_TIME: number;
4
4
  export declare const QUERY_KEYS: {
5
- readonly histories: (entitySlug: string) => readonly ["starter", "histories", string];
6
- readonly historiesTotal: () => readonly ["starter", "histories", "total"];
7
- readonly user: (userId: string) => readonly ["starter", "user", string];
5
+ readonly user: (userId: string) => readonly ["testomniac", "user", string];
6
+ readonly entityProjects: (entitySlug: string) => readonly ["testomniac", "projects", string];
7
+ readonly project: (projectId: number) => readonly ["testomniac", "project", number];
8
+ readonly projectRuns: (projectId: number) => readonly ["testomniac", "project", number, "runs"];
9
+ readonly run: (runId: number) => readonly ["testomniac", "run", number];
10
+ readonly runPages: (runId: number) => readonly ["testomniac", "run", number, "pages"];
11
+ readonly runActions: (runId: number) => readonly ["testomniac", "run", number, "actions"];
12
+ readonly runTestCases: (runId: number) => readonly ["testomniac", "run", number, "test-cases"];
13
+ readonly runTestRuns: (runId: number) => readonly ["testomniac", "run", number, "test-runs"];
14
+ readonly runIssues: (runId: number) => readonly ["testomniac", "run", number, "issues"];
15
+ readonly runPersonas: (runId: number) => readonly ["testomniac", "run", number, "personas"];
16
+ readonly runComponents: (runId: number) => readonly ["testomniac", "run", number, "components"];
17
+ readonly pageStates: (pageId: number) => readonly ["testomniac", "page", number, "states"];
18
+ readonly pageStateItems: (pageStateId: number) => readonly ["testomniac", "page-state", number, "items"];
19
+ readonly personaUseCases: (personaId: number) => readonly ["testomniac", "persona", number, "use-cases"];
20
+ readonly useCaseInputValues: (useCaseId: number) => readonly ["testomniac", "use-case", number, "input-values"];
8
21
  };
9
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAQrC,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAShD,eAAO,MAAM,eAAe,QAAiB,CAAC;AAmB9C,eAAO,MAAM,UAAU;qCAEG,MAAM;;4BAKf,MAAM;CACb,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAQrC,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAShD,eAAO,MAAM,eAAe,QAAiB,CAAC;AAgB9C,eAAO,MAAM,UAAU;4BACN,MAAM;0CACQ,MAAM;kCAEd,MAAM;sCACF,MAAM;0BAElB,MAAM;+BACD,MAAM;iCACJ,MAAM;mCAEJ,MAAM;kCAEP,MAAM;gCAER,MAAM;kCACJ,MAAM;oCAEJ,MAAM;kCAER,MAAM;2CAEG,MAAM;0CAEP,MAAM;6CAEH,MAAM;CAE9B,CAAC"}
package/dist/types.js CHANGED
@@ -1,8 +1,21 @@
1
1
  export const DEFAULT_STALE_TIME = 5 * 60 * 1000;
2
2
  export const DEFAULT_GC_TIME = 30 * 60 * 1000;
3
3
  export const QUERY_KEYS = {
4
- histories: (entitySlug) => ['starter', 'histories', entitySlug],
5
- historiesTotal: () => ['starter', 'histories', 'total'],
6
- user: (userId) => ['starter', 'user', userId],
4
+ user: (userId) => ['testomniac', 'user', userId],
5
+ entityProjects: (entitySlug) => ['testomniac', 'projects', entitySlug],
6
+ project: (projectId) => ['testomniac', 'project', projectId],
7
+ projectRuns: (projectId) => ['testomniac', 'project', projectId, 'runs'],
8
+ run: (runId) => ['testomniac', 'run', runId],
9
+ runPages: (runId) => ['testomniac', 'run', runId, 'pages'],
10
+ runActions: (runId) => ['testomniac', 'run', runId, 'actions'],
11
+ runTestCases: (runId) => ['testomniac', 'run', runId, 'test-cases'],
12
+ runTestRuns: (runId) => ['testomniac', 'run', runId, 'test-runs'],
13
+ runIssues: (runId) => ['testomniac', 'run', runId, 'issues'],
14
+ runPersonas: (runId) => ['testomniac', 'run', runId, 'personas'],
15
+ runComponents: (runId) => ['testomniac', 'run', runId, 'components'],
16
+ pageStates: (pageId) => ['testomniac', 'page', pageId, 'states'],
17
+ pageStateItems: (pageStateId) => ['testomniac', 'page-state', pageStateId, 'items'],
18
+ personaUseCases: (personaId) => ['testomniac', 'persona', personaId, 'use-cases'],
19
+ useCaseInputValues: (useCaseId) => ['testomniac', 'use-case', useCaseId, 'input-values'],
7
20
  };
8
21
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAShD,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAmB9C,MAAM,CAAC,MAAM,UAAU,GAAG;IAExB,SAAS,EAAE,CAAC,UAAkB,EAAE,EAAE,CAChC,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAU;IAE/C,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAU;IAEhE,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAU;CACtD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAShD,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAgB9C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAU;IACjE,cAAc,EAAE,CAAC,UAAkB,EAAE,EAAE,CACrC,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAU;IACjD,OAAO,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAU;IAC7E,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE,CACjC,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU;IACvD,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAU;IAC7D,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAU;IAC3E,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAC5B,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU;IAClD,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAC9B,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAU;IACrD,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAC7B,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAU;IACpD,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAU;IAC7E,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAC7B,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAU;IACnD,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAC/B,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAU;IACrD,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAC7B,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAU;IACnD,cAAc,EAAE,CAAC,WAAmB,EAAE,EAAE,CACtC,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAU;IAC7D,eAAe,EAAE,CAAC,SAAiB,EAAE,EAAE,CACrC,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAU;IAC5D,kBAAkB,EAAE,CAAC,SAAiB,EAAE,EAAE,CACxC,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAU;CACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/testomniac_client",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Testomniac API client library with TanStack Query hooks",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -40,7 +40,7 @@
40
40
  "react": ">=18.0.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@sudobility/testomniac_types": "^0.0.20",
43
+ "@sudobility/testomniac_types": "^0.0.21",
44
44
  "@sudobility/types": "^1.9.61",
45
45
  "@tanstack/react-query": "^5.90.5",
46
46
  "@types/react": "^19.2.2",
@@ -1,19 +0,0 @@
1
- import type { BaseResponse, History, HistoryCreateRequest, HistoryUpdateRequest, NetworkClient, Optional } from '@sudobility/testomniac_types';
2
- import type { FirebaseIdToken } from '../types';
3
- export interface UseHistoriesReturn {
4
- histories: History[];
5
- isLoading: boolean;
6
- error: Optional<string>;
7
- update: () => void;
8
- createHistory: (data: HistoryCreateRequest) => Promise<BaseResponse<History>>;
9
- updateHistory: (historyId: string, data: HistoryUpdateRequest) => Promise<BaseResponse<History>>;
10
- deleteHistory: (historyId: string) => Promise<BaseResponse<null>>;
11
- isCreating: boolean;
12
- isUpdating: boolean;
13
- isDeleting: boolean;
14
- clearError: () => void;
15
- }
16
- export declare const useHistories: (networkClient: NetworkClient, baseUrl: string, entitySlug: string | null, token: FirebaseIdToken | null, options?: {
17
- enabled?: boolean;
18
- }) => UseHistoriesReturn;
19
- //# sourceMappingURL=useHistories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHistories.d.ts","sourceRoot":"","sources":["../../src/hooks/useHistories.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACT,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAMhD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,oBAAoB,KACvB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,GACvB,eAAe,aAAa,EAC5B,SAAS,MAAM,EACf,YAAY,MAAM,GAAG,IAAI,EACzB,OAAO,eAAe,GAAG,IAAI,EAC7B,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAC9B,kBAoIF,CAAC"}