@epam/ai-dial-chat-hooks 1.3.0-dev.252 → 1.3.0-dev.256
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/catalog/deployment-id.d.ts +6 -0
- package/catalog/deployment-id.d.ts.map +1 -1
- package/catalog/deployment-id.js +12 -2
- package/catalog/map-deployment-to-catalog-item.d.ts +4 -1
- package/catalog/map-deployment-to-catalog-item.d.ts.map +1 -1
- package/catalog/map-deployment-to-catalog-item.js +10 -10
- package/catalog.js +23 -23
- package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -1
- package/conversation/useConversationStream/useConversationStream.js +3 -1
- package/entry-points/project.d.ts +10 -0
- package/entry-points/project.d.ts.map +1 -0
- package/index.d.ts +9 -0
- package/index.d.ts.map +1 -1
- package/index.js +177 -168
- package/package.json +25 -16
- package/project/project-form-errors.d.ts +23 -0
- package/project/project-form-errors.d.ts.map +1 -0
- package/project/project-form-errors.js +46 -0
- package/project/project-limits.d.ts +17 -0
- package/project/project-limits.d.ts.map +1 -0
- package/project/project-limits.js +11 -0
- package/project/project-mapping.d.ts +11 -0
- package/project/project-mapping.d.ts.map +1 -0
- package/project/project-mapping.js +36 -0
- package/project/projects-api-client.d.ts +157 -0
- package/project/projects-api-client.d.ts.map +1 -0
- package/project/projects-api-client.js +81 -0
- package/project/use-project-actions.d.ts +49 -0
- package/project/use-project-actions.d.ts.map +1 -0
- package/project/use-project-actions.js +102 -0
- package/project/use-project-conversations.d.ts +27 -0
- package/project/use-project-conversations.d.ts.map +1 -0
- package/project/use-project-conversations.js +109 -0
- package/project/use-project-submit.d.ts +49 -0
- package/project/use-project-submit.d.ts.map +1 -0
- package/project/use-project-submit.js +73 -0
- package/project/use-project.d.ts +20 -0
- package/project/use-project.d.ts.map +1 -0
- package/project/use-project.js +48 -0
- package/project/use-projects.d.ts +19 -0
- package/project/use-projects.d.ts.map +1 -0
- package/project/use-projects.js +46 -0
- package/project.d.ts +2 -0
- package/project.js +10 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
+
//#region src/project/use-project-conversations.ts
|
|
3
|
+
var i = {
|
|
4
|
+
items: [],
|
|
5
|
+
isLoading: !0,
|
|
6
|
+
hasError: !1,
|
|
7
|
+
hasMore: !1,
|
|
8
|
+
isLoadingMore: !1
|
|
9
|
+
}, a = {
|
|
10
|
+
...i,
|
|
11
|
+
isLoading: !1
|
|
12
|
+
}, o = ({ items: e }) => e.map(({ id: e, title: t, author: n }) => ({
|
|
13
|
+
id: e,
|
|
14
|
+
title: t,
|
|
15
|
+
authorName: n
|
|
16
|
+
})), s = (s, c) => {
|
|
17
|
+
let [l, u] = r(i), [d, f] = r(0), p = n(null);
|
|
18
|
+
t(() => {
|
|
19
|
+
if (c == null) {
|
|
20
|
+
u(a);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
let e = new AbortController();
|
|
24
|
+
return p.current = e, (async () => {
|
|
25
|
+
u((e) => ({
|
|
26
|
+
...e,
|
|
27
|
+
isLoading: !0,
|
|
28
|
+
hasError: !1,
|
|
29
|
+
isLoadingMore: !1
|
|
30
|
+
}));
|
|
31
|
+
try {
|
|
32
|
+
let t = await s.listProjectConversations(c, e.signal);
|
|
33
|
+
if (e.signal.aborted) return;
|
|
34
|
+
u({
|
|
35
|
+
items: o(t),
|
|
36
|
+
isLoading: !1,
|
|
37
|
+
hasError: !1,
|
|
38
|
+
hasMore: t.hasMore,
|
|
39
|
+
isLoadingMore: !1
|
|
40
|
+
});
|
|
41
|
+
} catch {
|
|
42
|
+
if (e.signal.aborted) return;
|
|
43
|
+
u({
|
|
44
|
+
...a,
|
|
45
|
+
hasError: !0
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
})(), () => e.abort();
|
|
49
|
+
}, [
|
|
50
|
+
s,
|
|
51
|
+
c,
|
|
52
|
+
d
|
|
53
|
+
]);
|
|
54
|
+
let m = e(() => f((e) => e + 1), []), h = e(async () => {
|
|
55
|
+
let e = p.current;
|
|
56
|
+
if (c != null && e != null) {
|
|
57
|
+
u((e) => ({
|
|
58
|
+
...e,
|
|
59
|
+
isLoadingMore: !0
|
|
60
|
+
}));
|
|
61
|
+
try {
|
|
62
|
+
let t = await s.listProjectConversations(c, e.signal, { offset: l.items.length });
|
|
63
|
+
if (e.signal.aborted) return;
|
|
64
|
+
u((e) => {
|
|
65
|
+
let n = new Set(e.items.map((e) => e.id));
|
|
66
|
+
return {
|
|
67
|
+
...e,
|
|
68
|
+
items: [...e.items, ...o(t).filter((e) => !n.has(e.id))],
|
|
69
|
+
hasMore: t.hasMore,
|
|
70
|
+
isLoadingMore: !1
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
} catch (t) {
|
|
74
|
+
if (e.signal.aborted) return;
|
|
75
|
+
throw u((e) => ({
|
|
76
|
+
...e,
|
|
77
|
+
isLoadingMore: !1
|
|
78
|
+
})), t;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, [
|
|
82
|
+
s,
|
|
83
|
+
c,
|
|
84
|
+
l.items.length
|
|
85
|
+
]), g = e(async (e, t) => {
|
|
86
|
+
let { name: n } = await s.renameProjectConversation(e, t);
|
|
87
|
+
u((t) => ({
|
|
88
|
+
...t,
|
|
89
|
+
items: t.items.map((t) => t.id === e ? {
|
|
90
|
+
...t,
|
|
91
|
+
title: n
|
|
92
|
+
} : t)
|
|
93
|
+
}));
|
|
94
|
+
}, [s]), _ = e(async (e) => {
|
|
95
|
+
await s.deleteProjectConversation(e), u((t) => ({
|
|
96
|
+
...t,
|
|
97
|
+
items: t.items.filter((t) => t.id !== e)
|
|
98
|
+
}));
|
|
99
|
+
}, [s]);
|
|
100
|
+
return {
|
|
101
|
+
...l,
|
|
102
|
+
retry: m,
|
|
103
|
+
loadMore: h,
|
|
104
|
+
rename: g,
|
|
105
|
+
remove: _
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
//#endregion
|
|
109
|
+
export { s as useProjectConversations };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CreateProjectResponseDto, UpdateProjectResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
2
|
+
import { ProjectFields, ProjectsApiClient, ProjectUpdateRequest } from './projects-api-client';
|
|
3
|
+
/** A rejected create or save, normalised for the page. */
|
|
4
|
+
export interface ProjectSubmitFailure {
|
|
5
|
+
/** `true` when the page unmounted mid-request; nothing should be shown. */
|
|
6
|
+
isAborted: boolean;
|
|
7
|
+
/** HTTP status of the rejection. */
|
|
8
|
+
status?: number;
|
|
9
|
+
/** The BFF's `ProjectCreateErrorCode`, when the rejection carried one. */
|
|
10
|
+
code?: string;
|
|
11
|
+
/** Trace id for the error toast. */
|
|
12
|
+
requestId?: string;
|
|
13
|
+
}
|
|
14
|
+
/** Result of one {@link useCreateProject} `create` call. */
|
|
15
|
+
export type CreateProjectOutcome = {
|
|
16
|
+
isCreated: true;
|
|
17
|
+
project: CreateProjectResponseDto;
|
|
18
|
+
} | ({
|
|
19
|
+
isCreated: false;
|
|
20
|
+
} & ProjectSubmitFailure);
|
|
21
|
+
/** Result of one {@link useSaveProject} `save` call. */
|
|
22
|
+
export type SaveProjectOutcome = {
|
|
23
|
+
isSaved: true;
|
|
24
|
+
project: UpdateProjectResponseDto;
|
|
25
|
+
} | ({
|
|
26
|
+
isSaved: false;
|
|
27
|
+
} & ProjectSubmitFailure);
|
|
28
|
+
/**
|
|
29
|
+
* Submits the New project form; the page owns the form state and decides
|
|
30
|
+
* what each outcome means.
|
|
31
|
+
*
|
|
32
|
+
* @param client - Configured project requests, from `createProjectsApiClient`.
|
|
33
|
+
*/
|
|
34
|
+
export declare const useCreateProject: (client: Pick<ProjectsApiClient, "createProject">) => {
|
|
35
|
+
create: (fields: ProjectFields, files: File[]) => Promise<CreateProjectOutcome>;
|
|
36
|
+
isSubmitting: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Submits the Edit project form as one atomic update, conditioned on the
|
|
40
|
+
* loaded `contentVersion`; the page owns the draft and decides what each
|
|
41
|
+
* outcome means.
|
|
42
|
+
*
|
|
43
|
+
* @param client - Configured project requests, from `createProjectsApiClient`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const useSaveProject: (client: Pick<ProjectsApiClient, "updateProject">) => {
|
|
46
|
+
save: (request: ProjectUpdateRequest) => Promise<SaveProjectOutcome>;
|
|
47
|
+
isSubmitting: boolean;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=use-project-submit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-project-submit.d.ts","sourceRoot":"","sources":["../../src/project/use-project-submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,MAAM,oBAAoB,GAC5B;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,wBAAwB,CAAA;CAAE,GACtD,CAAC;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GAAG,oBAAoB,CAAC,CAAC;AAElD,wDAAwD;AACxD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,wBAAwB,CAAA;CAAE,GACpD,CAAC;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG,oBAAoB,CAAC,CAAC;AAkDhD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC;qBAMpC,aAAa,SACd,IAAI,EAAE,KACZ,OAAO,CAAC,oBAAoB,CAAC;;CAYnC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC;oBAK9B,oBAAoB,KAAG,OAAO,CAAC,kBAAkB,CAAC;;CAYrE,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getApiErrorDetails as e } from "../api-error/api-error.js";
|
|
2
|
+
import { useCallback as t, useEffect as n, useRef as r, useState as i } from "react";
|
|
3
|
+
//#region src/project/use-project-submit.ts
|
|
4
|
+
var a = () => {
|
|
5
|
+
let [a, o] = i(!1), s = r(null);
|
|
6
|
+
return n(() => () => {
|
|
7
|
+
s.current?.abort();
|
|
8
|
+
}, []), {
|
|
9
|
+
run: t(async (t) => {
|
|
10
|
+
s.current?.abort();
|
|
11
|
+
let n = new AbortController();
|
|
12
|
+
s.current = n, o(!0);
|
|
13
|
+
try {
|
|
14
|
+
return {
|
|
15
|
+
isOk: !0,
|
|
16
|
+
value: await t(n.signal)
|
|
17
|
+
};
|
|
18
|
+
} catch (t) {
|
|
19
|
+
if (n.signal.aborted) return {
|
|
20
|
+
isOk: !1,
|
|
21
|
+
isAborted: !0
|
|
22
|
+
};
|
|
23
|
+
let { status: r, code: i, traceId: a } = await e(t);
|
|
24
|
+
return {
|
|
25
|
+
isOk: !1,
|
|
26
|
+
isAborted: !1,
|
|
27
|
+
status: r,
|
|
28
|
+
code: i,
|
|
29
|
+
requestId: a
|
|
30
|
+
};
|
|
31
|
+
} finally {
|
|
32
|
+
n.signal.aborted || o(!1), s.current === n && (s.current = null);
|
|
33
|
+
}
|
|
34
|
+
}, []),
|
|
35
|
+
isSubmitting: a
|
|
36
|
+
};
|
|
37
|
+
}, o = (e) => {
|
|
38
|
+
let { run: n, isSubmitting: r } = a();
|
|
39
|
+
return {
|
|
40
|
+
create: t(async (t, r) => {
|
|
41
|
+
let i = await n((n) => e.createProject(t, r, n));
|
|
42
|
+
if (i.isOk) return {
|
|
43
|
+
isCreated: !0,
|
|
44
|
+
project: i.value
|
|
45
|
+
};
|
|
46
|
+
let { isOk: a, ...o } = i;
|
|
47
|
+
return {
|
|
48
|
+
isCreated: !1,
|
|
49
|
+
...o
|
|
50
|
+
};
|
|
51
|
+
}, [e, n]),
|
|
52
|
+
isSubmitting: r
|
|
53
|
+
};
|
|
54
|
+
}, s = (e) => {
|
|
55
|
+
let { run: n, isSubmitting: r } = a();
|
|
56
|
+
return {
|
|
57
|
+
save: t(async (t) => {
|
|
58
|
+
let r = await n((n) => e.updateProject(t, n));
|
|
59
|
+
if (r.isOk) return {
|
|
60
|
+
isSaved: !0,
|
|
61
|
+
project: r.value
|
|
62
|
+
};
|
|
63
|
+
let { isOk: i, ...a } = r;
|
|
64
|
+
return {
|
|
65
|
+
isSaved: !1,
|
|
66
|
+
...a
|
|
67
|
+
};
|
|
68
|
+
}, [e, n]),
|
|
69
|
+
isSubmitting: r
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
//#endregion
|
|
73
|
+
export { o as useCreateProject, s as useSaveProject };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ProjectDetailsDto } from '@epam/ai-dial-chat-api-client';
|
|
2
|
+
import { ProjectsApiClient } from './projects-api-client';
|
|
3
|
+
/**
|
|
4
|
+
* Loads one project's details. Loading is derived from whether a result
|
|
5
|
+
* answers the current id and reload token, so a page never renders a stale
|
|
6
|
+
* project for a new id. A `404` is a not-found result, every other failure an
|
|
7
|
+
* error; the request is aborted on unmount and on an id change.
|
|
8
|
+
*
|
|
9
|
+
* @param client - Configured project requests, from `createProjectsApiClient`; it must be referentially stable, because a new object reloads.
|
|
10
|
+
* @param id - The project's DIAL id, or `null` when the route names none.
|
|
11
|
+
* @param enabled - Whether the page is enabled; no request is sent while `false`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const useProject: (client: Pick<ProjectsApiClient, "getProject">, id: string | null, enabled: boolean) => {
|
|
14
|
+
project: ProjectDetailsDto | null;
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
hasError: boolean;
|
|
17
|
+
isNotFound: boolean;
|
|
18
|
+
retry: () => void;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=use-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-project.d.ts","sourceRoot":"","sources":["../../src/project/use-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAU/D;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,QAAQ,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAC7C,IAAI,MAAM,GAAG,IAAI,EACjB,SAAS,OAAO;;;;;;CAuCjB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { getApiErrorStatus as e } from "../api-error/api-error.js";
|
|
2
|
+
import { useCallback as t, useEffect as n, useState as r } from "react";
|
|
3
|
+
//#region src/project/use-project.ts
|
|
4
|
+
var i = (i, a, o) => {
|
|
5
|
+
let [s, c] = r(0), [l, u] = r(), d = `${s}:${a ?? ""}`;
|
|
6
|
+
n(() => {
|
|
7
|
+
if (!o || a == null) return;
|
|
8
|
+
let t = new AbortController();
|
|
9
|
+
return (async () => {
|
|
10
|
+
try {
|
|
11
|
+
let e = await i.getProject(a, t.signal);
|
|
12
|
+
if (t.signal.aborted) return;
|
|
13
|
+
u({
|
|
14
|
+
key: d,
|
|
15
|
+
project: e,
|
|
16
|
+
hasError: !1,
|
|
17
|
+
isNotFound: !1
|
|
18
|
+
});
|
|
19
|
+
} catch (n) {
|
|
20
|
+
if (t.signal.aborted) return;
|
|
21
|
+
let r = e(n) === 404;
|
|
22
|
+
u({
|
|
23
|
+
key: d,
|
|
24
|
+
project: null,
|
|
25
|
+
hasError: !r,
|
|
26
|
+
isNotFound: r
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
})(), () => t.abort();
|
|
30
|
+
}, [
|
|
31
|
+
i,
|
|
32
|
+
o,
|
|
33
|
+
a,
|
|
34
|
+
d
|
|
35
|
+
]);
|
|
36
|
+
let f = t(() => {
|
|
37
|
+
c((e) => e + 1);
|
|
38
|
+
}, []), p = l?.key === d ? l : void 0;
|
|
39
|
+
return {
|
|
40
|
+
project: p?.project ?? null,
|
|
41
|
+
isLoading: o && a != null && p == null,
|
|
42
|
+
hasError: p?.hasError ?? !1,
|
|
43
|
+
isNotFound: p?.isNotFound ?? !1,
|
|
44
|
+
retry: f
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { i as useProject };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ProjectItem, ProjectSource } from '@epam/ai-dial-projects';
|
|
2
|
+
import { ProjectsApiClient } from './projects-api-client';
|
|
3
|
+
/**
|
|
4
|
+
* Loads the projects the session user can see, mapped to the Projects lib's
|
|
5
|
+
* cards. Loading is derived from whether a result answers the current reload
|
|
6
|
+
* token, so an enabled page is loading from its very first render. The
|
|
7
|
+
* request is aborted on unmount or when `enabled` turns false.
|
|
8
|
+
*
|
|
9
|
+
* @param client - Configured project requests, from `createProjectsApiClient`; it must be referentially stable, because a new object reloads.
|
|
10
|
+
* @param enabled - Whether the page is enabled; no request is sent while `false`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const useProjects: (client: Pick<ProjectsApiClient, "listProjects">, enabled: boolean) => {
|
|
13
|
+
projects: ProjectItem[];
|
|
14
|
+
incompleteSources: ProjectSource[];
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
hasError: boolean;
|
|
17
|
+
retry: () => void;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=use-projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-projects.d.ts","sourceRoot":"","sources":["../../src/project/use-projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAU/D;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,EAC/C,SAAS,OAAO;;;;;;CAiDjB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { mapProjectDtoToItem as e, mapProjectSource as t } from "./project-mapping.js";
|
|
2
|
+
import { useCallback as n, useEffect as r, useState as i } from "react";
|
|
3
|
+
//#region src/project/use-projects.ts
|
|
4
|
+
var a = (a, o) => {
|
|
5
|
+
let [s, c] = i(0), [l, u] = i();
|
|
6
|
+
r(() => {
|
|
7
|
+
if (!o) return;
|
|
8
|
+
let n = new AbortController();
|
|
9
|
+
return (async () => {
|
|
10
|
+
try {
|
|
11
|
+
let { items: r, incompleteSources: i } = await a.listProjects(n.signal);
|
|
12
|
+
if (n.signal.aborted) return;
|
|
13
|
+
u({
|
|
14
|
+
reloadToken: s,
|
|
15
|
+
projects: r.map(e),
|
|
16
|
+
incompleteSources: i.map(t),
|
|
17
|
+
hasError: !1
|
|
18
|
+
});
|
|
19
|
+
} catch {
|
|
20
|
+
if (n.signal.aborted) return;
|
|
21
|
+
u({
|
|
22
|
+
reloadToken: s,
|
|
23
|
+
projects: [],
|
|
24
|
+
incompleteSources: [],
|
|
25
|
+
hasError: !0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
})(), () => n.abort();
|
|
29
|
+
}, [
|
|
30
|
+
a,
|
|
31
|
+
o,
|
|
32
|
+
s
|
|
33
|
+
]);
|
|
34
|
+
let d = n(() => {
|
|
35
|
+
c((e) => e + 1);
|
|
36
|
+
}, []), f = l?.reloadToken === s ? l : void 0;
|
|
37
|
+
return {
|
|
38
|
+
projects: f?.projects ?? [],
|
|
39
|
+
incompleteSources: f?.incompleteSources ?? [],
|
|
40
|
+
isLoading: o && f == null,
|
|
41
|
+
hasError: f?.hasError ?? !1,
|
|
42
|
+
retry: d
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { a as useProjects };
|
package/project.d.ts
ADDED
package/project.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { buildCreateConversationDto as e, createProjectsApiClient as t, splitProjectConversationId as n } from "./project/projects-api-client.js";
|
|
2
|
+
import { mapProjectDetailsToViewModel as r, mapProjectDtoToItem as i, mapProjectSource as a, mapStoredContextFiles as o } from "./project/project-mapping.js";
|
|
3
|
+
import { DEFAULT_PROJECT_CONTEXT_ALLOWED_EXTENSIONS as s, DEFAULT_PROJECT_CONTEXT_FILE_MAX_BYTES as c, DEFAULT_PROJECT_CONTEXT_TOTAL_MAX_BYTES as l, getMimeTypesForExtensions as u, resolveByteLimit as d, resolveExtensionList as f } from "./project/project-limits.js";
|
|
4
|
+
import { ProjectFormErrorField as p, ProjectFormErrorReason as m, getProjectFormError as h } from "./project/project-form-errors.js";
|
|
5
|
+
import { useProjects as g } from "./project/use-projects.js";
|
|
6
|
+
import { useProject as _ } from "./project/use-project.js";
|
|
7
|
+
import { useCreateProject as v, useSaveProject as y } from "./project/use-project-submit.js";
|
|
8
|
+
import { useProjectConversations as b } from "./project/use-project-conversations.js";
|
|
9
|
+
import { ProjectActionError as x, useProjectActions as S } from "./project/use-project-actions.js";
|
|
10
|
+
export { s as DEFAULT_PROJECT_CONTEXT_ALLOWED_EXTENSIONS, c as DEFAULT_PROJECT_CONTEXT_FILE_MAX_BYTES, l as DEFAULT_PROJECT_CONTEXT_TOTAL_MAX_BYTES, x as ProjectActionError, p as ProjectFormErrorField, m as ProjectFormErrorReason, e as buildCreateConversationDto, t as createProjectsApiClient, u as getMimeTypesForExtensions, h as getProjectFormError, r as mapProjectDetailsToViewModel, i as mapProjectDtoToItem, a as mapProjectSource, o as mapStoredContextFiles, d as resolveByteLimit, f as resolveExtensionList, n as splitProjectConversationId, v as useCreateProject, _ as useProject, S as useProjectActions, b as useProjectConversations, g as useProjects, y as useSaveProject };
|