@stackfactor/client-api 1.19.3 → 1.20.2
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/cjs/lib/constants.d.ts +2 -1
- package/dist/cjs/lib/constants.d.ts.map +1 -1
- package/dist/cjs/lib/constants.js +3 -1
- package/dist/cjs/lib/constants.js.map +1 -1
- package/dist/cjs/lib/knowledgeAssessmentAttempts.d.ts +22 -0
- package/dist/cjs/lib/knowledgeAssessmentAttempts.d.ts.map +1 -1
- package/dist/cjs/lib/knowledgeAssessmentAttempts.js +44 -1
- package/dist/cjs/lib/knowledgeAssessmentAttempts.js.map +1 -1
- package/dist/cjs/lib/knowledgeBase/documents.d.ts +127 -0
- package/dist/cjs/lib/knowledgeBase/documents.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/documents.js +114 -0
- package/dist/cjs/lib/knowledgeBase/documents.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.d.ts +118 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.js +256 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/review.d.ts +184 -0
- package/dist/cjs/lib/knowledgeBase/review.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/review.js +413 -0
- package/dist/cjs/lib/knowledgeBase/review.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/skills.d.ts +247 -0
- package/dist/cjs/lib/knowledgeBase/skills.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/skills.js +199 -0
- package/dist/cjs/lib/knowledgeBase/skills.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/sources.d.ts +136 -0
- package/dist/cjs/lib/knowledgeBase/sources.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/sources.js +234 -0
- package/dist/cjs/lib/knowledgeBase/sources.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase.d.ts +5 -785
- package/dist/cjs/lib/knowledgeBase.d.ts.map +1 -1
- package/dist/cjs/lib/knowledgeBase.js +32 -1229
- package/dist/cjs/lib/knowledgeBase.js.map +1 -1
- package/dist/cjs/lib/knowledgeBaseAgent.d.ts +109 -2
- package/dist/cjs/lib/knowledgeBaseAgent.d.ts.map +1 -1
- package/dist/cjs/lib/knowledgeBaseAgent.js +71 -8
- package/dist/cjs/lib/knowledgeBaseAgent.js.map +1 -1
- package/dist/cjs/lib/learningContent.d.ts.map +1 -1
- package/dist/cjs/lib/learningContent.js +12 -2
- package/dist/cjs/lib/learningContent.js.map +1 -1
- package/dist/cjs/lib/learningContentCohorts.d.ts +80 -0
- package/dist/cjs/lib/learningContentCohorts.d.ts.map +1 -1
- package/dist/cjs/lib/learningContentCohorts.js +80 -1
- package/dist/cjs/lib/learningContentCohorts.js.map +1 -1
- package/dist/esm/lib/constants.d.ts +2 -1
- package/dist/esm/lib/constants.d.ts.map +1 -1
- package/dist/esm/lib/constants.js +3 -1
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/knowledgeAssessmentAttempts.d.ts +22 -0
- package/dist/esm/lib/knowledgeAssessmentAttempts.d.ts.map +1 -1
- package/dist/esm/lib/knowledgeAssessmentAttempts.js +40 -0
- package/dist/esm/lib/knowledgeAssessmentAttempts.js.map +1 -1
- package/dist/esm/lib/knowledgeBase/documents.d.ts +127 -0
- package/dist/esm/lib/knowledgeBase/documents.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/documents.js +107 -0
- package/dist/esm/lib/knowledgeBase/documents.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.d.ts +118 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.js +242 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/review.d.ts +184 -0
- package/dist/esm/lib/knowledgeBase/review.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/review.js +392 -0
- package/dist/esm/lib/knowledgeBase/review.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/skills.d.ts +247 -0
- package/dist/esm/lib/knowledgeBase/skills.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/skills.js +189 -0
- package/dist/esm/lib/knowledgeBase/skills.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/sources.d.ts +136 -0
- package/dist/esm/lib/knowledgeBase/sources.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/sources.js +221 -0
- package/dist/esm/lib/knowledgeBase/sources.js.map +1 -0
- package/dist/esm/lib/knowledgeBase.d.ts +5 -785
- package/dist/esm/lib/knowledgeBase.d.ts.map +1 -1
- package/dist/esm/lib/knowledgeBase.js +18 -1175
- package/dist/esm/lib/knowledgeBase.js.map +1 -1
- package/dist/esm/lib/knowledgeBaseAgent.d.ts +109 -2
- package/dist/esm/lib/knowledgeBaseAgent.d.ts.map +1 -1
- package/dist/esm/lib/knowledgeBaseAgent.js +66 -7
- package/dist/esm/lib/knowledgeBaseAgent.js.map +1 -1
- package/dist/esm/lib/learningContent.d.ts.map +1 -1
- package/dist/esm/lib/learningContent.js +12 -2
- package/dist/esm/lib/learningContent.js.map +1 -1
- package/dist/esm/lib/learningContentCohorts.d.ts +80 -0
- package/dist/esm/lib/learningContentCohorts.d.ts.map +1 -1
- package/dist/esm/lib/learningContentCohorts.js +66 -0
- package/dist/esm/lib/learningContentCohorts.js.map +1 -1
- package/package.json +1 -3
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { client } from "../axiosClient.js";
|
|
2
|
+
// ── Document Management ───────────────────────────────────────────────────────
|
|
3
|
+
/**
|
|
4
|
+
* List a knowledge base's documents (paginated, with status + lastSync). There is
|
|
5
|
+
* no upload endpoint — documents are only ingested via configured sources.
|
|
6
|
+
* GET /api/v1/knowledge-base/:id/documents
|
|
7
|
+
* @param {String} id The knowledge base id
|
|
8
|
+
* @param {DocumentListParams} params Optional pagination / status filters
|
|
9
|
+
* @param {String} authToken Authentication token
|
|
10
|
+
* @returns {Promise<object>}
|
|
11
|
+
*/
|
|
12
|
+
export const listDocuments = (id, params, authToken) => {
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
const request = client.get(`/api/v1/knowledge-base/${id}/documents`, {
|
|
15
|
+
headers: { authorization: authToken },
|
|
16
|
+
params: params,
|
|
17
|
+
});
|
|
18
|
+
request
|
|
19
|
+
.then((response) => {
|
|
20
|
+
resolve(response.data);
|
|
21
|
+
})
|
|
22
|
+
.catch((error) => {
|
|
23
|
+
reject(error);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Get one knowledge base document and what the RAG holds for it: its chunks,
|
|
29
|
+
* after redaction, in order (the first 1000; `truncated` says when there are
|
|
30
|
+
* more). No chunks while the document is not processed, or is held for review
|
|
31
|
+
* or blocked. Needs the knowledge base access search needs, and the
|
|
32
|
+
* document's own source permissions (403); 404 when either is missing.
|
|
33
|
+
* GET /api/v1/knowledge-base/:id/documents/:docId
|
|
34
|
+
* @param {String} id The knowledge base id
|
|
35
|
+
* @param {String} docId The document id
|
|
36
|
+
* @param {String} authToken Authentication token
|
|
37
|
+
* @returns {Promise<KnowledgeBaseDocumentContent>}
|
|
38
|
+
*/
|
|
39
|
+
export const getDocument = (id, docId, authToken) => {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const request = client.get(`/api/v1/knowledge-base/${id}/documents/${docId}`, { headers: { authorization: authToken } });
|
|
42
|
+
request
|
|
43
|
+
.then((response) => {
|
|
44
|
+
resolve(response.data);
|
|
45
|
+
})
|
|
46
|
+
.catch((error) => {
|
|
47
|
+
reject(error);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Get the picture of one image passage (chunk) of a knowledge base document,
|
|
53
|
+
* for the document's page: a chunk `getDocument` answered with `hasImage`.
|
|
54
|
+
* Its preview unless `size` is "full", which is the stored original (often
|
|
55
|
+
* several MB: ask for it only to show the picture full size). The same access
|
|
56
|
+
* as `getDocument` applies (403), and only while its chunks are shown; 404
|
|
57
|
+
* when the passage has no picture to show. Answered `private, no-cache`, so
|
|
58
|
+
* the platform judges access each time it is asked.
|
|
59
|
+
* GET /api/v1/knowledge-base/:id/documents/:docId/chunks/:chunkId/image[?size=full]
|
|
60
|
+
* @param {String} id The knowledge base id
|
|
61
|
+
* @param {String} docId The document id
|
|
62
|
+
* @param {String} chunkId The image chunk id
|
|
63
|
+
* @param {String} authToken Authentication token
|
|
64
|
+
* @param {DocumentImageSize} size Optional: "full" for the stored original;
|
|
65
|
+
* the preview otherwise
|
|
66
|
+
* @returns {Promise<Blob>} The picture, typed by what it is: the preview is
|
|
67
|
+
* WebP, or the original's own type when no preview could be made; the full
|
|
68
|
+
* picture is the original's type
|
|
69
|
+
*/
|
|
70
|
+
export const getDocumentImage = (id, docId, chunkId, authToken, size) => {
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
const request = client.get(`/api/v1/knowledge-base/${id}/documents/${docId}/chunks/${chunkId}/image`, {
|
|
73
|
+
headers: { authorization: authToken },
|
|
74
|
+
responseType: "blob",
|
|
75
|
+
...(size ? { params: { size } } : {}),
|
|
76
|
+
});
|
|
77
|
+
request
|
|
78
|
+
.then((response) => {
|
|
79
|
+
resolve(response.data);
|
|
80
|
+
})
|
|
81
|
+
.catch((error) => {
|
|
82
|
+
reject(error);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Delete a single document (cascades to chunks + S3 images + dependent entity
|
|
88
|
+
* flags).
|
|
89
|
+
* DELETE /api/v1/knowledge-base/:id/documents/:docId
|
|
90
|
+
* @param {String} id The knowledge base id
|
|
91
|
+
* @param {String} docId The document id
|
|
92
|
+
* @param {String} authToken Authentication token
|
|
93
|
+
* @returns {Promise<object>}
|
|
94
|
+
*/
|
|
95
|
+
export const deleteDocument = (id, docId, authToken) => {
|
|
96
|
+
return new Promise((resolve, reject) => {
|
|
97
|
+
const request = client.delete(`/api/v1/knowledge-base/${id}/documents/${docId}`, { headers: { authorization: authToken } });
|
|
98
|
+
request
|
|
99
|
+
.then((response) => {
|
|
100
|
+
resolve(response.data);
|
|
101
|
+
})
|
|
102
|
+
.catch((error) => {
|
|
103
|
+
reject(error);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/** Create / update payload for a KB's metadata (§14 CRUD). */
|
|
2
|
+
export interface KnowledgeBaseInput {
|
|
3
|
+
name?: string;
|
|
4
|
+
description?: string | null;
|
|
5
|
+
category?: string | null;
|
|
6
|
+
/** One of `KNOWLEDGE_BASE.VISIBILITY` — "private" | "team" | "public". */
|
|
7
|
+
visibility?: string;
|
|
8
|
+
embeddingProvider?: string;
|
|
9
|
+
embeddingModel?: string;
|
|
10
|
+
embeddingDimensions?: number;
|
|
11
|
+
status?: number;
|
|
12
|
+
}
|
|
13
|
+
/** An access grant (§14 KB Access Management). */
|
|
14
|
+
export interface AccessEntryInput {
|
|
15
|
+
/** One of `KNOWLEDGE_BASE.SUBJECT_TYPE` — "user" | "group" | "team". */
|
|
16
|
+
subjectType: string;
|
|
17
|
+
subjectId: string;
|
|
18
|
+
/** One of `KNOWLEDGE_BASE.ACCESS_ROLE` — "owner" | "editor" | "contributor" | "viewer". */
|
|
19
|
+
role: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* List the knowledge bases the caller can see.
|
|
23
|
+
* GET /api/v1/knowledge-base
|
|
24
|
+
* @param {String} authToken Authentication token
|
|
25
|
+
* @returns {Promise<object>}
|
|
26
|
+
*/
|
|
27
|
+
export declare const listKnowledgeBases: (authToken: string) => Promise<object>;
|
|
28
|
+
/**
|
|
29
|
+
* Create a knowledge base (the creator becomes owner automatically). Requires the
|
|
30
|
+
* global CREATE_KNOWLEDGE_BASE capability.
|
|
31
|
+
* POST /api/v1/knowledge-base
|
|
32
|
+
* @param {KnowledgeBaseInput} data KB metadata (at minimum `name`)
|
|
33
|
+
* @param {String} authToken Authentication token
|
|
34
|
+
* @returns {Promise<object>}
|
|
35
|
+
*/
|
|
36
|
+
export declare const createKnowledgeBase: (data: KnowledgeBaseInput, authToken: string) => Promise<object>;
|
|
37
|
+
/**
|
|
38
|
+
* Get a single knowledge base (plus stats).
|
|
39
|
+
* GET /api/v1/knowledge-base/:id
|
|
40
|
+
* @param {String} id The knowledge base id
|
|
41
|
+
* @param {String} authToken Authentication token
|
|
42
|
+
* @returns {Promise<object>}
|
|
43
|
+
*/
|
|
44
|
+
export declare const getKnowledgeBase: (id: string, authToken: string) => Promise<object>;
|
|
45
|
+
/**
|
|
46
|
+
* Update a knowledge base's metadata. Owner or editor only. Does not touch
|
|
47
|
+
* `access[]`, `sources`, or `createdBy` — those have their own gated flows.
|
|
48
|
+
* PUT /api/v1/knowledge-base/:id
|
|
49
|
+
* @param {String} id The knowledge base id
|
|
50
|
+
* @param {KnowledgeBaseInput} data The fields to update
|
|
51
|
+
* @param {String} authToken Authentication token
|
|
52
|
+
* @returns {Promise<object>}
|
|
53
|
+
*/
|
|
54
|
+
export declare const updateKnowledgeBase: (id: string, data: KnowledgeBaseInput, authToken: string) => Promise<object>;
|
|
55
|
+
/**
|
|
56
|
+
* Delete a knowledge base (cascades to its chunks). Owner only.
|
|
57
|
+
* DELETE /api/v1/knowledge-base/:id
|
|
58
|
+
* @param {String} id The knowledge base id
|
|
59
|
+
* @param {String} authToken Authentication token
|
|
60
|
+
* @returns {Promise<object>}
|
|
61
|
+
*/
|
|
62
|
+
export declare const deleteKnowledgeBase: (id: string, authToken: string) => Promise<object>;
|
|
63
|
+
/**
|
|
64
|
+
* List a knowledge base's access entries.
|
|
65
|
+
* GET /api/v1/knowledge-base/:id/access
|
|
66
|
+
* @param {String} id The knowledge base id
|
|
67
|
+
* @param {String} authToken Authentication token
|
|
68
|
+
* @returns {Promise<object>}
|
|
69
|
+
*/
|
|
70
|
+
export declare const listAccess: (id: string, authToken: string) => Promise<object>;
|
|
71
|
+
/**
|
|
72
|
+
* Grant (upsert) an access entry. Owner only. Access is keyed by
|
|
73
|
+
* `(subjectType, subjectId)`, so re-granting a subject that already has an entry
|
|
74
|
+
* updates its role — there is no separate "update role" endpoint.
|
|
75
|
+
* POST /api/v1/knowledge-base/:id/access
|
|
76
|
+
* @param {String} id The knowledge base id
|
|
77
|
+
* @param {AccessEntryInput} entry The `{ subjectType, subjectId, role }` grant
|
|
78
|
+
* @param {String} authToken Authentication token
|
|
79
|
+
* @returns {Promise<object>}
|
|
80
|
+
*/
|
|
81
|
+
export declare const grantAccess: (id: string, entry: AccessEntryInput, authToken: string) => Promise<object>;
|
|
82
|
+
/**
|
|
83
|
+
* Revoke a subject's access. Owner only. Keyed by `(subjectType, subjectId)` — the
|
|
84
|
+
* same composite key `grantAccess` upserts on. The backend refuses to remove the
|
|
85
|
+
* last owner.
|
|
86
|
+
* DELETE /api/v1/knowledge-base/:id/access
|
|
87
|
+
* @param {String} id The knowledge base id
|
|
88
|
+
* @param {String} subjectType One of `KNOWLEDGE_BASE.SUBJECT_TYPE`
|
|
89
|
+
* @param {String} subjectId The subject whose access is revoked
|
|
90
|
+
* @param {String} authToken Authentication token
|
|
91
|
+
* @returns {Promise<object>}
|
|
92
|
+
*/
|
|
93
|
+
export declare const revokeAccess: (id: string, subjectType: string, subjectId: string, authToken: string) => Promise<object>;
|
|
94
|
+
/**
|
|
95
|
+
* Read the tenant's compliance profile (admin only). Governs which RAG processors
|
|
96
|
+
* a KB may route to (e.g. HIPAA tenants → BAA-eligible processors only).
|
|
97
|
+
* GET /api/v1/tenants/compliance-profile
|
|
98
|
+
* @param {String} authToken Authentication token
|
|
99
|
+
* @returns {Promise<object>}
|
|
100
|
+
*/
|
|
101
|
+
export declare const getComplianceProfile: (authToken: string) => Promise<object>;
|
|
102
|
+
/**
|
|
103
|
+
* Update the tenant's compliance profile (admin only; not exposed via the KB UI).
|
|
104
|
+
* PUT /api/v1/tenants/compliance-profile
|
|
105
|
+
* @param {object} profile The compliance profile
|
|
106
|
+
* @param {String} authToken Authentication token
|
|
107
|
+
* @returns {Promise<object>}
|
|
108
|
+
*/
|
|
109
|
+
export declare const updateComplianceProfile: (profile: object, authToken: string) => Promise<object>;
|
|
110
|
+
/**
|
|
111
|
+
* Trigger a GDPR subject-purge ("right to be forgotten"; admin only).
|
|
112
|
+
* POST /api/v1/compliance/right-to-be-forgotten
|
|
113
|
+
* @param {object} data The subject-purge request
|
|
114
|
+
* @param {String} authToken Authentication token
|
|
115
|
+
* @returns {Promise<object>}
|
|
116
|
+
*/
|
|
117
|
+
export declare const rightToBeForgotten: (data: object, authToken: string) => Promise<object>;
|
|
118
|
+
//# sourceMappingURL=knowledgeBases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeBases.d.ts","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/knowledgeBases.ts"],"names":[],"mappings":"AAQA,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CAGjB;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;CACd;AAID;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAapE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,kBAAkB,EACxB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,IAAI,MAAM,EACV,MAAM,kBAAkB,EACxB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,IAAI,MAAM,EACV,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAahB,CAAC;AAIF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAaxE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,MAAM,EACV,OAAO,gBAAgB,EACvB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GACvB,IAAI,MAAM,EACV,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAchB,CAAC;AAIF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAatE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { client } from "../axiosClient.js";
|
|
2
|
+
// ── Knowledge Base CRUD ───────────────────────────────────────────────────────
|
|
3
|
+
/**
|
|
4
|
+
* List the knowledge bases the caller can see.
|
|
5
|
+
* GET /api/v1/knowledge-base
|
|
6
|
+
* @param {String} authToken Authentication token
|
|
7
|
+
* @returns {Promise<object>}
|
|
8
|
+
*/
|
|
9
|
+
export const listKnowledgeBases = (authToken) => {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
const request = client.get(`/api/v1/knowledge-base`, {
|
|
12
|
+
headers: { authorization: authToken },
|
|
13
|
+
});
|
|
14
|
+
request
|
|
15
|
+
.then((response) => {
|
|
16
|
+
resolve(response.data);
|
|
17
|
+
})
|
|
18
|
+
.catch((error) => {
|
|
19
|
+
reject(error);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Create a knowledge base (the creator becomes owner automatically). Requires the
|
|
25
|
+
* global CREATE_KNOWLEDGE_BASE capability.
|
|
26
|
+
* POST /api/v1/knowledge-base
|
|
27
|
+
* @param {KnowledgeBaseInput} data KB metadata (at minimum `name`)
|
|
28
|
+
* @param {String} authToken Authentication token
|
|
29
|
+
* @returns {Promise<object>}
|
|
30
|
+
*/
|
|
31
|
+
export const createKnowledgeBase = (data, authToken) => {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
const request = client.post(`/api/v1/knowledge-base`, data, {
|
|
34
|
+
headers: { authorization: authToken },
|
|
35
|
+
});
|
|
36
|
+
request
|
|
37
|
+
.then((response) => {
|
|
38
|
+
resolve(response.data);
|
|
39
|
+
})
|
|
40
|
+
.catch((error) => {
|
|
41
|
+
reject(error);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Get a single knowledge base (plus stats).
|
|
47
|
+
* GET /api/v1/knowledge-base/:id
|
|
48
|
+
* @param {String} id The knowledge base id
|
|
49
|
+
* @param {String} authToken Authentication token
|
|
50
|
+
* @returns {Promise<object>}
|
|
51
|
+
*/
|
|
52
|
+
export const getKnowledgeBase = (id, authToken) => {
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
const request = client.get(`/api/v1/knowledge-base/${id}`, {
|
|
55
|
+
headers: { authorization: authToken },
|
|
56
|
+
});
|
|
57
|
+
request
|
|
58
|
+
.then((response) => {
|
|
59
|
+
resolve(response.data);
|
|
60
|
+
})
|
|
61
|
+
.catch((error) => {
|
|
62
|
+
reject(error);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Update a knowledge base's metadata. Owner or editor only. Does not touch
|
|
68
|
+
* `access[]`, `sources`, or `createdBy` — those have their own gated flows.
|
|
69
|
+
* PUT /api/v1/knowledge-base/:id
|
|
70
|
+
* @param {String} id The knowledge base id
|
|
71
|
+
* @param {KnowledgeBaseInput} data The fields to update
|
|
72
|
+
* @param {String} authToken Authentication token
|
|
73
|
+
* @returns {Promise<object>}
|
|
74
|
+
*/
|
|
75
|
+
export const updateKnowledgeBase = (id, data, authToken) => {
|
|
76
|
+
return new Promise((resolve, reject) => {
|
|
77
|
+
const request = client.put(`/api/v1/knowledge-base/${id}`, data, {
|
|
78
|
+
headers: { authorization: authToken },
|
|
79
|
+
});
|
|
80
|
+
request
|
|
81
|
+
.then((response) => {
|
|
82
|
+
resolve(response.data);
|
|
83
|
+
})
|
|
84
|
+
.catch((error) => {
|
|
85
|
+
reject(error);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Delete a knowledge base (cascades to its chunks). Owner only.
|
|
91
|
+
* DELETE /api/v1/knowledge-base/:id
|
|
92
|
+
* @param {String} id The knowledge base id
|
|
93
|
+
* @param {String} authToken Authentication token
|
|
94
|
+
* @returns {Promise<object>}
|
|
95
|
+
*/
|
|
96
|
+
export const deleteKnowledgeBase = (id, authToken) => {
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
const request = client.delete(`/api/v1/knowledge-base/${id}`, {
|
|
99
|
+
headers: { authorization: authToken },
|
|
100
|
+
});
|
|
101
|
+
request
|
|
102
|
+
.then((response) => {
|
|
103
|
+
resolve(response.data);
|
|
104
|
+
})
|
|
105
|
+
.catch((error) => {
|
|
106
|
+
reject(error);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
// ── KB Access Management (owner only) ─────────────────────────────────────────
|
|
111
|
+
/**
|
|
112
|
+
* List a knowledge base's access entries.
|
|
113
|
+
* GET /api/v1/knowledge-base/:id/access
|
|
114
|
+
* @param {String} id The knowledge base id
|
|
115
|
+
* @param {String} authToken Authentication token
|
|
116
|
+
* @returns {Promise<object>}
|
|
117
|
+
*/
|
|
118
|
+
export const listAccess = (id, authToken) => {
|
|
119
|
+
return new Promise((resolve, reject) => {
|
|
120
|
+
const request = client.get(`/api/v1/knowledge-base/${id}/access`, {
|
|
121
|
+
headers: { authorization: authToken },
|
|
122
|
+
});
|
|
123
|
+
request
|
|
124
|
+
.then((response) => {
|
|
125
|
+
resolve(response.data);
|
|
126
|
+
})
|
|
127
|
+
.catch((error) => {
|
|
128
|
+
reject(error);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Grant (upsert) an access entry. Owner only. Access is keyed by
|
|
134
|
+
* `(subjectType, subjectId)`, so re-granting a subject that already has an entry
|
|
135
|
+
* updates its role — there is no separate "update role" endpoint.
|
|
136
|
+
* POST /api/v1/knowledge-base/:id/access
|
|
137
|
+
* @param {String} id The knowledge base id
|
|
138
|
+
* @param {AccessEntryInput} entry The `{ subjectType, subjectId, role }` grant
|
|
139
|
+
* @param {String} authToken Authentication token
|
|
140
|
+
* @returns {Promise<object>}
|
|
141
|
+
*/
|
|
142
|
+
export const grantAccess = (id, entry, authToken) => {
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
const request = client.post(`/api/v1/knowledge-base/${id}/access`, entry, {
|
|
145
|
+
headers: { authorization: authToken },
|
|
146
|
+
});
|
|
147
|
+
request
|
|
148
|
+
.then((response) => {
|
|
149
|
+
resolve(response.data);
|
|
150
|
+
})
|
|
151
|
+
.catch((error) => {
|
|
152
|
+
reject(error);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Revoke a subject's access. Owner only. Keyed by `(subjectType, subjectId)` — the
|
|
158
|
+
* same composite key `grantAccess` upserts on. The backend refuses to remove the
|
|
159
|
+
* last owner.
|
|
160
|
+
* DELETE /api/v1/knowledge-base/:id/access
|
|
161
|
+
* @param {String} id The knowledge base id
|
|
162
|
+
* @param {String} subjectType One of `KNOWLEDGE_BASE.SUBJECT_TYPE`
|
|
163
|
+
* @param {String} subjectId The subject whose access is revoked
|
|
164
|
+
* @param {String} authToken Authentication token
|
|
165
|
+
* @returns {Promise<object>}
|
|
166
|
+
*/
|
|
167
|
+
export const revokeAccess = (id, subjectType, subjectId, authToken) => {
|
|
168
|
+
return new Promise((resolve, reject) => {
|
|
169
|
+
const request = client.delete(`/api/v1/knowledge-base/${id}/access`, {
|
|
170
|
+
headers: { authorization: authToken },
|
|
171
|
+
data: { subjectType: subjectType, subjectId: subjectId },
|
|
172
|
+
});
|
|
173
|
+
request
|
|
174
|
+
.then((response) => {
|
|
175
|
+
resolve(response.data);
|
|
176
|
+
})
|
|
177
|
+
.catch((error) => {
|
|
178
|
+
reject(error);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
// ── Compliance ────────────────────────────────────────────────────────────────
|
|
183
|
+
/**
|
|
184
|
+
* Read the tenant's compliance profile (admin only). Governs which RAG processors
|
|
185
|
+
* a KB may route to (e.g. HIPAA tenants → BAA-eligible processors only).
|
|
186
|
+
* GET /api/v1/tenants/compliance-profile
|
|
187
|
+
* @param {String} authToken Authentication token
|
|
188
|
+
* @returns {Promise<object>}
|
|
189
|
+
*/
|
|
190
|
+
export const getComplianceProfile = (authToken) => {
|
|
191
|
+
return new Promise((resolve, reject) => {
|
|
192
|
+
const request = client.get(`/api/v1/tenants/compliance-profile`, {
|
|
193
|
+
headers: { authorization: authToken },
|
|
194
|
+
});
|
|
195
|
+
request
|
|
196
|
+
.then((response) => {
|
|
197
|
+
resolve(response.data);
|
|
198
|
+
})
|
|
199
|
+
.catch((error) => {
|
|
200
|
+
reject(error);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Update the tenant's compliance profile (admin only; not exposed via the KB UI).
|
|
206
|
+
* PUT /api/v1/tenants/compliance-profile
|
|
207
|
+
* @param {object} profile The compliance profile
|
|
208
|
+
* @param {String} authToken Authentication token
|
|
209
|
+
* @returns {Promise<object>}
|
|
210
|
+
*/
|
|
211
|
+
export const updateComplianceProfile = (profile, authToken) => {
|
|
212
|
+
return new Promise((resolve, reject) => {
|
|
213
|
+
const request = client.put(`/api/v1/tenants/compliance-profile`, profile, { headers: { authorization: authToken } });
|
|
214
|
+
request
|
|
215
|
+
.then((response) => {
|
|
216
|
+
resolve(response.data);
|
|
217
|
+
})
|
|
218
|
+
.catch((error) => {
|
|
219
|
+
reject(error);
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Trigger a GDPR subject-purge ("right to be forgotten"; admin only).
|
|
225
|
+
* POST /api/v1/compliance/right-to-be-forgotten
|
|
226
|
+
* @param {object} data The subject-purge request
|
|
227
|
+
* @param {String} authToken Authentication token
|
|
228
|
+
* @returns {Promise<object>}
|
|
229
|
+
*/
|
|
230
|
+
export const rightToBeForgotten = (data, authToken) => {
|
|
231
|
+
return new Promise((resolve, reject) => {
|
|
232
|
+
const request = client.post(`/api/v1/compliance/right-to-be-forgotten`, data, { headers: { authorization: authToken } });
|
|
233
|
+
request
|
|
234
|
+
.then((response) => {
|
|
235
|
+
resolve(response.data);
|
|
236
|
+
})
|
|
237
|
+
.catch((error) => {
|
|
238
|
+
reject(error);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=knowledgeBases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeBases.js","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/knowledgeBases.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA+B3C,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAmB,EAAE;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE;YACnD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAwB,EACxB,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE;YAC1D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,EAAU,EACV,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,EAAE;YACzD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,EAAU,EACV,IAAwB,EACxB,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,EAAE,IAAI,EAAE;YAC/D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,EAAU,EACV,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,EAAE,EAAE;YAC5D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,iFAAiF;AAEjF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,SAAiB,EAAmB,EAAE;IAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,EAAE;YAChE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,EAAU,EACV,KAAuB,EACvB,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAE;YACxE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,EAAU,EACV,WAAmB,EACnB,SAAiB,EACjB,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,SAAS,EAAE;YACnE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;YACrC,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE;SACzD,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,iFAAiF;AAEjF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAmB,EAAE;IACzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,oCAAoC,EAAE;YAC/D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAe,EACf,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CACxB,oCAAoC,EACpC,OAAO,EACP,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAC1C,CAAC;QACF,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAY,EACZ,SAAiB,EACA,EAAE;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,0CAA0C,EAC1C,IAAI,EACJ,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAC1C,CAAC;QACF,OAAO;aACJ,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|