@elqnt/entity 2.1.1 → 2.1.3
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/README.md +210 -0
- package/dist/api/index.d.mts +16 -1
- package/dist/api/index.d.ts +16 -1
- package/dist/api/index.js +4 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +3 -1
- package/dist/{chunk-SXBB42DJ.js → chunk-6SB5QDL5.js} +10 -2
- package/dist/chunk-6SB5QDL5.js.map +1 -0
- package/dist/{chunk-GQJJP4YL.js → chunk-ESJH4DJM.js} +9 -9
- package/dist/{chunk-GQJJP4YL.js.map → chunk-ESJH4DJM.js.map} +1 -1
- package/dist/{chunk-JEDTIUWW.mjs → chunk-OIVRV2UT.mjs} +2 -2
- package/dist/{chunk-UHASYUCH.mjs → chunk-SHMUKUYC.mjs} +10 -2
- package/dist/{chunk-UHASYUCH.mjs.map → chunk-SHMUKUYC.mjs.map} +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/index.mjs +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -147
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -146
- package/dist/index.mjs.map +1 -1
- package/dist/models/index.js +108 -73
- package/dist/models/index.js.map +1 -1
- package/dist/models/index.mjs +108 -73
- package/dist/models/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-4GC36G4D.js +0 -184
- package/dist/chunk-4GC36G4D.js.map +0 -1
- package/dist/chunk-LIACJMHV.mjs +0 -184
- package/dist/chunk-LIACJMHV.mjs.map +0 -1
- package/dist/chunk-SXBB42DJ.js.map +0 -1
- /package/dist/{chunk-JEDTIUWW.mjs.map → chunk-OIVRV2UT.mjs.map} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# @elqnt/entity
|
|
2
|
+
|
|
3
|
+
Complete entity management for Eloquent platform - models, API, hooks, and store.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @elqnt/entity
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
Create app-specific hooks that wrap `useEntities` internally:
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
// hooks/use-contacts.ts
|
|
17
|
+
import { useEntities } from "@elqnt/entity/hooks";
|
|
18
|
+
import type { EntityRecord } from "@elqnt/entity/models";
|
|
19
|
+
import { useAppConfig } from "@/app/providers";
|
|
20
|
+
|
|
21
|
+
// App-specific model (camelCase)
|
|
22
|
+
interface Contact {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
email: string;
|
|
26
|
+
company?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Transform EntityRecord → App model
|
|
30
|
+
function toContact(record: EntityRecord): Contact {
|
|
31
|
+
return {
|
|
32
|
+
id: record.id,
|
|
33
|
+
name: record.fields.name,
|
|
34
|
+
email: record.fields.email,
|
|
35
|
+
company: record.fields.company,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function useContacts() {
|
|
40
|
+
const config = useAppConfig();
|
|
41
|
+
const { queryRecords, getRecord, createRecord, updateRecord, deleteRecord, loading, error } = useEntities({
|
|
42
|
+
baseUrl: config.apiGatewayUrl,
|
|
43
|
+
orgId: config.orgId,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const fetchContacts = async (filters?: Record<string, unknown>) => {
|
|
47
|
+
const result = await queryRecords("contact", { filters });
|
|
48
|
+
return result?.records?.map(toContact) ?? [];
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const getContact = async (id: string) => {
|
|
52
|
+
const record = await getRecord("contact", id);
|
|
53
|
+
return record ? toContact(record) : null;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const createContact = async (data: Omit<Contact, "id">) => {
|
|
57
|
+
const record = await createRecord("contact", { fields: data });
|
|
58
|
+
return record ? toContact(record) : null;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const updateContact = async (id: string, data: Partial<Contact>) => {
|
|
62
|
+
const record = await updateRecord("contact", id, { fields: data });
|
|
63
|
+
return record ? toContact(record) : null;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
return { fetchContacts, getContact, createContact, updateContact, deleteContact: deleteRecord, loading, error };
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Usage in components:
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
// components/contact-list.tsx
|
|
74
|
+
function ContactList() {
|
|
75
|
+
const { fetchContacts, loading, error } = useContacts();
|
|
76
|
+
const [contacts, setContacts] = useState<Contact[]>([]);
|
|
77
|
+
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
fetchContacts({ status: "active" }).then(setContacts);
|
|
80
|
+
}, []);
|
|
81
|
+
|
|
82
|
+
if (loading) return <Spinner />;
|
|
83
|
+
if (error) return <Error message={error} />;
|
|
84
|
+
return <List items={contacts} />;
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Recommended Pattern
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
@elqnt/entity/hooks (useEntities)
|
|
92
|
+
↓
|
|
93
|
+
App-specific hook (useContacts, useTickets, etc.)
|
|
94
|
+
↓
|
|
95
|
+
React Component
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Key points:**
|
|
99
|
+
- `useEntities` handles loading states, error handling, and authentication
|
|
100
|
+
- App hooks transform `EntityRecord` → domain models (camelCase)
|
|
101
|
+
- Components consume app hooks, not `useEntities` directly
|
|
102
|
+
|
|
103
|
+
## Exports
|
|
104
|
+
|
|
105
|
+
### `/hooks` - React Hooks
|
|
106
|
+
|
|
107
|
+
| Hook | Description |
|
|
108
|
+
|------|-------------|
|
|
109
|
+
| `useEntities(options)` | Full CRUD operations with loading/error states |
|
|
110
|
+
|
|
111
|
+
Use `useEntities` inside your app-specific hooks (not directly in components):
|
|
112
|
+
|
|
113
|
+
```tsx
|
|
114
|
+
// Inside your custom hook
|
|
115
|
+
import { useEntities } from "@elqnt/entity/hooks";
|
|
116
|
+
|
|
117
|
+
export function useMyEntities() {
|
|
118
|
+
const {
|
|
119
|
+
queryRecords, // Query multiple records with filters/pagination
|
|
120
|
+
getRecord, // Get single record by ID
|
|
121
|
+
createRecord, // Create new record
|
|
122
|
+
updateRecord, // Update existing record
|
|
123
|
+
deleteRecord, // Delete record
|
|
124
|
+
listDefinitions,// List entity definitions
|
|
125
|
+
getDefinition, // Get entity definition by name
|
|
126
|
+
loading, // Loading state
|
|
127
|
+
error, // Error message
|
|
128
|
+
} = useEntities({ baseUrl, orgId });
|
|
129
|
+
|
|
130
|
+
// Transform and expose domain-specific functions
|
|
131
|
+
// ...
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### `/api` - API Functions
|
|
136
|
+
|
|
137
|
+
Low-level API functions for direct HTTP calls.
|
|
138
|
+
|
|
139
|
+
```tsx
|
|
140
|
+
import {
|
|
141
|
+
// Entity Definitions
|
|
142
|
+
listEntityDefinitionsApi,
|
|
143
|
+
getEntityDefinitionApi,
|
|
144
|
+
createEntityDefinitionApi,
|
|
145
|
+
updateEntityDefinitionApi,
|
|
146
|
+
deleteEntityDefinitionApi,
|
|
147
|
+
|
|
148
|
+
// Entity Records
|
|
149
|
+
queryEntityRecordsApi,
|
|
150
|
+
getEntityRecordApi,
|
|
151
|
+
createEntityRecordApi,
|
|
152
|
+
updateEntityRecordApi,
|
|
153
|
+
deleteEntityRecordApi,
|
|
154
|
+
|
|
155
|
+
// Bulk Operations
|
|
156
|
+
bulkCreateEntityRecordsApi,
|
|
157
|
+
bulkUpdateEntityRecordsApi,
|
|
158
|
+
bulkDeleteEntityRecordsApi,
|
|
159
|
+
|
|
160
|
+
// Count
|
|
161
|
+
countEntityRecordsApi,
|
|
162
|
+
} from "@elqnt/entity/api";
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### `/models` - TypeScript Types
|
|
166
|
+
|
|
167
|
+
Types generated from Go via tygo.
|
|
168
|
+
|
|
169
|
+
```tsx
|
|
170
|
+
import type {
|
|
171
|
+
EntityDefinition,
|
|
172
|
+
EntityRecord,
|
|
173
|
+
EntityQuery,
|
|
174
|
+
Filter,
|
|
175
|
+
Sort,
|
|
176
|
+
ListEntityRecordsResponse,
|
|
177
|
+
GetEntityRecordResponse,
|
|
178
|
+
} from "@elqnt/entity/models";
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Main Entry Point
|
|
182
|
+
|
|
183
|
+
You can also import everything from the main entry:
|
|
184
|
+
|
|
185
|
+
```tsx
|
|
186
|
+
import { useEntities, EntityRecord, queryEntityRecordsApi } from "@elqnt/entity";
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Options
|
|
190
|
+
|
|
191
|
+
```tsx
|
|
192
|
+
interface UseEntitiesOptions {
|
|
193
|
+
baseUrl: string; // API Gateway URL
|
|
194
|
+
orgId: string; // Organization ID
|
|
195
|
+
userId?: string; // Optional user ID for headers
|
|
196
|
+
userEmail?: string; // Optional user email for headers
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Query Options
|
|
201
|
+
|
|
202
|
+
```tsx
|
|
203
|
+
interface QueryOptions {
|
|
204
|
+
page?: number; // Page number (default: 1)
|
|
205
|
+
pageSize?: number; // Items per page (default: 20)
|
|
206
|
+
filters?: Record<string, unknown>; // Filter conditions
|
|
207
|
+
sortBy?: string; // Field to sort by
|
|
208
|
+
sortOrder?: "asc" | "desc"; // Sort direction
|
|
209
|
+
}
|
|
210
|
+
```
|
package/dist/api/index.d.mts
CHANGED
|
@@ -41,5 +41,20 @@ declare function countEntityRecordsApi(entityName: string, filters: Record<strin
|
|
|
41
41
|
count: number;
|
|
42
42
|
metadata: ResponseMetadata;
|
|
43
43
|
}>>;
|
|
44
|
+
interface ProvisionEntitiesResponse {
|
|
45
|
+
created: number;
|
|
46
|
+
updated: number;
|
|
47
|
+
errors: string[];
|
|
48
|
+
success: boolean;
|
|
49
|
+
metadata: ResponseMetadata;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Provision entity definitions for an organization.
|
|
53
|
+
* Creates or updates entity definitions in bulk.
|
|
54
|
+
*
|
|
55
|
+
* @param definitions - Array of EntityDefinition to provision
|
|
56
|
+
* @param options - API client options (baseUrl, orgId)
|
|
57
|
+
*/
|
|
58
|
+
declare function provisionEntitiesApi(definitions: EntityDefinition[], options: ApiClientOptions): Promise<ApiResponse<ProvisionEntitiesResponse>>;
|
|
44
59
|
|
|
45
|
-
export { bulkCreateEntityRecordsApi, bulkDeleteEntityRecordsApi, bulkUpdateEntityRecordsApi, countEntityRecordsApi, createEntityDefinitionApi, createEntityRecordApi, deleteEntityDefinitionApi, deleteEntityRecordApi, getEntityDefinitionApi, getEntityRecordApi, listEntityDefinitionsApi, queryEntityRecordsApi, updateEntityDefinitionApi, updateEntityRecordApi };
|
|
60
|
+
export { type ProvisionEntitiesResponse, bulkCreateEntityRecordsApi, bulkDeleteEntityRecordsApi, bulkUpdateEntityRecordsApi, countEntityRecordsApi, createEntityDefinitionApi, createEntityRecordApi, deleteEntityDefinitionApi, deleteEntityRecordApi, getEntityDefinitionApi, getEntityRecordApi, listEntityDefinitionsApi, provisionEntitiesApi, queryEntityRecordsApi, updateEntityDefinitionApi, updateEntityRecordApi };
|
package/dist/api/index.d.ts
CHANGED
|
@@ -41,5 +41,20 @@ declare function countEntityRecordsApi(entityName: string, filters: Record<strin
|
|
|
41
41
|
count: number;
|
|
42
42
|
metadata: ResponseMetadata;
|
|
43
43
|
}>>;
|
|
44
|
+
interface ProvisionEntitiesResponse {
|
|
45
|
+
created: number;
|
|
46
|
+
updated: number;
|
|
47
|
+
errors: string[];
|
|
48
|
+
success: boolean;
|
|
49
|
+
metadata: ResponseMetadata;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Provision entity definitions for an organization.
|
|
53
|
+
* Creates or updates entity definitions in bulk.
|
|
54
|
+
*
|
|
55
|
+
* @param definitions - Array of EntityDefinition to provision
|
|
56
|
+
* @param options - API client options (baseUrl, orgId)
|
|
57
|
+
*/
|
|
58
|
+
declare function provisionEntitiesApi(definitions: EntityDefinition[], options: ApiClientOptions): Promise<ApiResponse<ProvisionEntitiesResponse>>;
|
|
44
59
|
|
|
45
|
-
export { bulkCreateEntityRecordsApi, bulkDeleteEntityRecordsApi, bulkUpdateEntityRecordsApi, countEntityRecordsApi, createEntityDefinitionApi, createEntityRecordApi, deleteEntityDefinitionApi, deleteEntityRecordApi, getEntityDefinitionApi, getEntityRecordApi, listEntityDefinitionsApi, queryEntityRecordsApi, updateEntityDefinitionApi, updateEntityRecordApi };
|
|
60
|
+
export { type ProvisionEntitiesResponse, bulkCreateEntityRecordsApi, bulkDeleteEntityRecordsApi, bulkUpdateEntityRecordsApi, countEntityRecordsApi, createEntityDefinitionApi, createEntityRecordApi, deleteEntityDefinitionApi, deleteEntityRecordApi, getEntityDefinitionApi, getEntityRecordApi, listEntityDefinitionsApi, provisionEntitiesApi, queryEntityRecordsApi, updateEntityDefinitionApi, updateEntityRecordApi };
|
package/dist/api/index.js
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var _chunkSXBB42DJjs = require('../chunk-SXBB42DJ.js');
|
|
18
17
|
|
|
18
|
+
var _chunk6SB5QDL5js = require('../chunk-6SB5QDL5.js');
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
@@ -30,5 +30,7 @@ var _chunkSXBB42DJjs = require('../chunk-SXBB42DJ.js');
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.bulkCreateEntityRecordsApi = _chunk6SB5QDL5js.bulkCreateEntityRecordsApi; exports.bulkDeleteEntityRecordsApi = _chunk6SB5QDL5js.bulkDeleteEntityRecordsApi; exports.bulkUpdateEntityRecordsApi = _chunk6SB5QDL5js.bulkUpdateEntityRecordsApi; exports.countEntityRecordsApi = _chunk6SB5QDL5js.countEntityRecordsApi; exports.createEntityDefinitionApi = _chunk6SB5QDL5js.createEntityDefinitionApi; exports.createEntityRecordApi = _chunk6SB5QDL5js.createEntityRecordApi; exports.deleteEntityDefinitionApi = _chunk6SB5QDL5js.deleteEntityDefinitionApi; exports.deleteEntityRecordApi = _chunk6SB5QDL5js.deleteEntityRecordApi; exports.getEntityDefinitionApi = _chunk6SB5QDL5js.getEntityDefinitionApi; exports.getEntityRecordApi = _chunk6SB5QDL5js.getEntityRecordApi; exports.listEntityDefinitionsApi = _chunk6SB5QDL5js.listEntityDefinitionsApi; exports.provisionEntitiesApi = _chunk6SB5QDL5js.provisionEntitiesApi; exports.queryEntityRecordsApi = _chunk6SB5QDL5js.queryEntityRecordsApi; exports.updateEntityDefinitionApi = _chunk6SB5QDL5js.updateEntityDefinitionApi; exports.updateEntityRecordApi = _chunk6SB5QDL5js.updateEntityRecordApi;
|
|
34
36
|
//# sourceMappingURL=index.js.map
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/api/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/api/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,6mCAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/api/index.js"}
|
package/dist/api/index.mjs
CHANGED
|
@@ -11,10 +11,11 @@ import {
|
|
|
11
11
|
getEntityDefinitionApi,
|
|
12
12
|
getEntityRecordApi,
|
|
13
13
|
listEntityDefinitionsApi,
|
|
14
|
+
provisionEntitiesApi,
|
|
14
15
|
queryEntityRecordsApi,
|
|
15
16
|
updateEntityDefinitionApi,
|
|
16
17
|
updateEntityRecordApi
|
|
17
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-SHMUKUYC.mjs";
|
|
18
19
|
export {
|
|
19
20
|
bulkCreateEntityRecordsApi,
|
|
20
21
|
bulkDeleteEntityRecordsApi,
|
|
@@ -27,6 +28,7 @@ export {
|
|
|
27
28
|
getEntityDefinitionApi,
|
|
28
29
|
getEntityRecordApi,
|
|
29
30
|
listEntityDefinitionsApi,
|
|
31
|
+
provisionEntitiesApi,
|
|
30
32
|
queryEntityRecordsApi,
|
|
31
33
|
updateEntityDefinitionApi,
|
|
32
34
|
updateEntityRecordApi
|
|
@@ -60,6 +60,14 @@ async function countEntityRecordsApi(entityName, filters, options) {
|
|
|
60
60
|
const endpoint = `/api/v1/entities/${entityName}/records/count${queryString ? `?${queryString}` : ""}`;
|
|
61
61
|
return _browser.browserApiRequest.call(void 0, endpoint, { method: "GET", ...options });
|
|
62
62
|
}
|
|
63
|
+
async function provisionEntitiesApi(definitions, options) {
|
|
64
|
+
return _browser.browserApiRequest.call(void 0, "/api/v1/admin/entities/update", {
|
|
65
|
+
method: "POST",
|
|
66
|
+
body: { definitions },
|
|
67
|
+
...options
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
63
71
|
|
|
64
72
|
|
|
65
73
|
|
|
@@ -76,5 +84,5 @@ async function countEntityRecordsApi(entityName, filters, options) {
|
|
|
76
84
|
|
|
77
85
|
|
|
78
86
|
|
|
79
|
-
exports.listEntityDefinitionsApi = listEntityDefinitionsApi; exports.getEntityDefinitionApi = getEntityDefinitionApi; exports.createEntityDefinitionApi = createEntityDefinitionApi; exports.updateEntityDefinitionApi = updateEntityDefinitionApi; exports.deleteEntityDefinitionApi = deleteEntityDefinitionApi; exports.queryEntityRecordsApi = queryEntityRecordsApi; exports.getEntityRecordApi = getEntityRecordApi; exports.createEntityRecordApi = createEntityRecordApi; exports.updateEntityRecordApi = updateEntityRecordApi; exports.deleteEntityRecordApi = deleteEntityRecordApi; exports.bulkCreateEntityRecordsApi = bulkCreateEntityRecordsApi; exports.bulkUpdateEntityRecordsApi = bulkUpdateEntityRecordsApi; exports.bulkDeleteEntityRecordsApi = bulkDeleteEntityRecordsApi; exports.countEntityRecordsApi = countEntityRecordsApi;
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
exports.listEntityDefinitionsApi = listEntityDefinitionsApi; exports.getEntityDefinitionApi = getEntityDefinitionApi; exports.createEntityDefinitionApi = createEntityDefinitionApi; exports.updateEntityDefinitionApi = updateEntityDefinitionApi; exports.deleteEntityDefinitionApi = deleteEntityDefinitionApi; exports.queryEntityRecordsApi = queryEntityRecordsApi; exports.getEntityRecordApi = getEntityRecordApi; exports.createEntityRecordApi = createEntityRecordApi; exports.updateEntityRecordApi = updateEntityRecordApi; exports.deleteEntityRecordApi = deleteEntityRecordApi; exports.bulkCreateEntityRecordsApi = bulkCreateEntityRecordsApi; exports.bulkUpdateEntityRecordsApi = bulkUpdateEntityRecordsApi; exports.bulkDeleteEntityRecordsApi = bulkDeleteEntityRecordsApi; exports.countEntityRecordsApi = countEntityRecordsApi; exports.provisionEntitiesApi = provisionEntitiesApi;
|
|
88
|
+
//# sourceMappingURL=chunk-6SB5QDL5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/chunk-6SB5QDL5.js","../api/index.ts"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;ACKA,oDAAkC;AAgBlC,MAAA,SAAsB,wBAAA,CACpB,OAAA,EACqD;AACrD,EAAA,OAAO,wCAAA,8BAAkB,EAAgC,EAAE,MAAA,EAAQ,KAAA,EAAO,GAAG,QAAQ,CAAC,CAAA;AACxF;AAEA,MAAA,SAAsB,sBAAA,CACpB,UAAA,EACA,OAAA,EACgD;AAChD,EAAA,OAAO,wCAAA,CAAkB,6BAAA,EAAgC,UAAU,CAAA,CAAA;AACrE;AAKkD;AACmB,EAAA;AACrE;AAKE;AAEmE,EAAA;AACrE;AAK0E;AACL,EAAA;AACrE;AAUmD;AACd,EAAA;AACa,EAAA;AACH,IAAA;AACZ,MAAA;AAC/B,IAAA;AACD,EAAA;AACmC,EAAA;AACsB,EAAA;AACM,EAAA;AAClE;AAM8C;AACuB,EAAA;AACrE;AAM8C;AACuB,EAAA;AACrE;AAME;AAEmE,EAAA;AACrE;AAM0E;AACL,EAAA;AACrE;AASE;AAEuD,EAAA;AACzD;AAKE;AAEuD,EAAA;AACzD;AAKE;AAEuD,EAAA;AACzD;AAUuE;AAClC,EAAA;AACe,EAAA;AACL,IAAA;AACZ,MAAA;AAC/B,IAAA;AACD,EAAA;AACmC,EAAA;AAC4B,EAAA;AACA,EAAA;AAClE;AAwBmD;AACS,EAAA;AAChD,IAAA;AACY,IAAA;AACjB,IAAA;AACJ,EAAA;AACH;ADtHsE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/chunk-6SB5QDL5.js","sourcesContent":[null,"/**\n * Entity API functions\n *\n * Browser-side API client for entity operations.\n * Uses @elqnt/api-client for HTTP requests with automatic token management.\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n EntityDefinition,\n EntityRecord,\n ListEntityDefinitionsResponse,\n EntityDefinitionResponse,\n ListEntityRecordsResponse,\n EntityRecordResponse,\n} from \"../models\";\n\n// =============================================================================\n// ENTITY DEFINITIONS\n// =============================================================================\n\nexport async function listEntityDefinitionsApi(\n options: ApiClientOptions\n): Promise<ApiResponse<ListEntityDefinitionsResponse>> {\n return browserApiRequest(\"/api/v1/entities/definitions\", { method: \"GET\", ...options });\n}\n\nexport async function getEntityDefinitionApi(\n entityName: string,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"GET\", ...options });\n}\n\nexport async function createEntityDefinitionApi(\n definition: Partial<EntityDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(\"/api/v1/entities/definitions\", { method: \"POST\", body: definition, ...options });\n}\n\nexport async function updateEntityDefinitionApi(\n entityName: string,\n definition: Partial<EntityDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"PUT\", body: definition, ...options });\n}\n\nexport async function deleteEntityDefinitionApi(\n entityName: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// ENTITY RECORDS\n// =============================================================================\n\nexport async function queryEntityRecordsApi(\n entityName: string,\n query: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<ListEntityRecordsResponse>> {\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n });\n const queryString = params.toString();\n const endpoint = `/api/v1/entities/${entityName}/records${queryString ? `?${queryString}` : \"\"}`;\n return browserApiRequest(endpoint, { method: \"GET\", ...options });\n}\n\nexport async function getEntityRecordApi(\n entityName: string,\n recordId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"GET\", ...options });\n}\n\nexport async function createEntityRecordApi(\n entityName: string,\n record: Partial<EntityRecord>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records`, { method: \"POST\", body: record, ...options });\n}\n\nexport async function updateEntityRecordApi(\n entityName: string,\n recordId: string,\n record: Partial<EntityRecord>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"PUT\", body: record, ...options });\n}\n\nexport async function deleteEntityRecordApi(\n entityName: string,\n recordId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// BULK OPERATIONS\n// =============================================================================\n\nexport async function bulkCreateEntityRecordsApi(\n entityName: string,\n records: Partial<EntityRecord>[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ records: EntityRecord[]; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"POST\", body: { records }, ...options });\n}\n\nexport async function bulkUpdateEntityRecordsApi(\n entityName: string,\n records: Partial<EntityRecord>[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ records: EntityRecord[]; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"PUT\", body: { records }, ...options });\n}\n\nexport async function bulkDeleteEntityRecordsApi(\n entityName: string,\n recordIds: string[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"DELETE\", body: { recordIds }, ...options });\n}\n\n// =============================================================================\n// COUNT\n// =============================================================================\n\nexport async function countEntityRecordsApi(\n entityName: string,\n filters: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<{ count: number; metadata: ResponseMetadata }>> {\n const params = new URLSearchParams();\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n });\n const queryString = params.toString();\n const endpoint = `/api/v1/entities/${entityName}/records/count${queryString ? `?${queryString}` : \"\"}`;\n return browserApiRequest(endpoint, { method: \"GET\", ...options });\n}\n\n// =============================================================================\n// PROVISIONING\n// =============================================================================\n\nexport interface ProvisionEntitiesResponse {\n created: number;\n updated: number;\n errors: string[];\n success: boolean;\n metadata: ResponseMetadata;\n}\n\n/**\n * Provision entity definitions for an organization.\n * Creates or updates entity definitions in bulk.\n *\n * @param definitions - Array of EntityDefinition to provision\n * @param options - API client options (baseUrl, orgId)\n */\nexport async function provisionEntitiesApi(\n definitions: EntityDefinition[],\n options: ApiClientOptions\n): Promise<ApiResponse<ProvisionEntitiesResponse>> {\n return browserApiRequest(\"/api/v1/admin/entities/update\", {\n method: \"POST\",\n body: { definitions },\n ...options,\n });\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunk6SB5QDL5js = require('./chunk-6SB5QDL5.js');
|
|
11
11
|
|
|
12
12
|
// hooks/use-entities.ts
|
|
13
13
|
var _react = require('react');
|
|
@@ -18,7 +18,7 @@ function useEntities(options) {
|
|
|
18
18
|
setLoading(true);
|
|
19
19
|
setError(null);
|
|
20
20
|
try {
|
|
21
|
-
const response = await
|
|
21
|
+
const response = await _chunk6SB5QDL5js.listEntityDefinitionsApi.call(void 0, options);
|
|
22
22
|
if (response.error) {
|
|
23
23
|
setError(response.error);
|
|
24
24
|
return [];
|
|
@@ -37,7 +37,7 @@ function useEntities(options) {
|
|
|
37
37
|
setLoading(true);
|
|
38
38
|
setError(null);
|
|
39
39
|
try {
|
|
40
|
-
const response = await
|
|
40
|
+
const response = await _chunk6SB5QDL5js.getEntityDefinitionApi.call(void 0, entityName, options);
|
|
41
41
|
if (response.error) {
|
|
42
42
|
setError(response.error);
|
|
43
43
|
return null;
|
|
@@ -71,7 +71,7 @@ function useEntities(options) {
|
|
|
71
71
|
if (query.sortOrder) {
|
|
72
72
|
queryParams.sortOrder = query.sortOrder;
|
|
73
73
|
}
|
|
74
|
-
const response = await
|
|
74
|
+
const response = await _chunk6SB5QDL5js.queryEntityRecordsApi.call(void 0, entityName, queryParams, options);
|
|
75
75
|
if (response.error) {
|
|
76
76
|
setError(response.error);
|
|
77
77
|
return { records: [], total: 0, page: 1, pageSize: 20 };
|
|
@@ -106,7 +106,7 @@ function useEntities(options) {
|
|
|
106
106
|
setLoading(true);
|
|
107
107
|
setError(null);
|
|
108
108
|
try {
|
|
109
|
-
const response = await
|
|
109
|
+
const response = await _chunk6SB5QDL5js.getEntityRecordApi.call(void 0, entityName, recordId, options);
|
|
110
110
|
if (response.error) {
|
|
111
111
|
setError(response.error);
|
|
112
112
|
return null;
|
|
@@ -127,7 +127,7 @@ function useEntities(options) {
|
|
|
127
127
|
setLoading(true);
|
|
128
128
|
setError(null);
|
|
129
129
|
try {
|
|
130
|
-
const response = await
|
|
130
|
+
const response = await _chunk6SB5QDL5js.createEntityRecordApi.call(void 0, entityName, record, options);
|
|
131
131
|
if (response.error) {
|
|
132
132
|
setError(response.error);
|
|
133
133
|
return null;
|
|
@@ -148,7 +148,7 @@ function useEntities(options) {
|
|
|
148
148
|
setLoading(true);
|
|
149
149
|
setError(null);
|
|
150
150
|
try {
|
|
151
|
-
const response = await
|
|
151
|
+
const response = await _chunk6SB5QDL5js.updateEntityRecordApi.call(void 0, entityName, recordId, record, options);
|
|
152
152
|
if (response.error) {
|
|
153
153
|
setError(response.error);
|
|
154
154
|
return null;
|
|
@@ -169,7 +169,7 @@ function useEntities(options) {
|
|
|
169
169
|
setLoading(true);
|
|
170
170
|
setError(null);
|
|
171
171
|
try {
|
|
172
|
-
const response = await
|
|
172
|
+
const response = await _chunk6SB5QDL5js.deleteEntityRecordApi.call(void 0, entityName, recordId, options);
|
|
173
173
|
if (response.error) {
|
|
174
174
|
setError(response.error);
|
|
175
175
|
return false;
|
|
@@ -201,4 +201,4 @@ function useEntities(options) {
|
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
exports.useEntities = useEntities;
|
|
204
|
-
//# sourceMappingURL=chunk-
|
|
204
|
+
//# sourceMappingURL=chunk-ESJH4DJM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/chunk-GQJJP4YL.js","../hooks/use-entities.ts"],"names":[],"mappings":"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","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/chunk-GQJJP4YL.js","sourcesContent":[null,"\"use client\";\n\n/**\n * Entity hooks for React applications\n *\n * Provides React hooks for entity CRUD operations with loading/error states.\n */\n\nimport { useState, useCallback } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { EntityDefinition, EntityRecord } from \"../models\";\nimport {\n listEntityDefinitionsApi,\n getEntityDefinitionApi,\n queryEntityRecordsApi,\n getEntityRecordApi,\n createEntityRecordApi,\n updateEntityRecordApi,\n deleteEntityRecordApi,\n} from \"../api\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport type UseEntitiesOptions = ApiClientOptions;\n\nexport interface QueryOptions {\n page?: number;\n pageSize?: number;\n filters?: Record<string, unknown>;\n sortBy?: string;\n sortOrder?: \"asc\" | \"desc\";\n}\n\nexport interface QueryResult {\n records: EntityRecord[];\n total: number;\n page: number;\n pageSize: number;\n}\n\n// =============================================================================\n// USE ENTITIES HOOK\n// =============================================================================\n\n/**\n * Hook for entity CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, queryRecords, createRecord } = useEntities({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * userId: user?.id,\n * userEmail: user?.email,\n * });\n *\n * const records = await queryRecords(\"contacts\", { page: 1, pageSize: 20 });\n * ```\n */\nexport function useEntities(options: UseEntitiesOptions) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const listDefinitions = useCallback(async (): Promise<EntityDefinition[]> => {\n setLoading(true);\n setError(null);\n try {\n const response = await listEntityDefinitionsApi(options);\n if (response.error) {\n setError(response.error);\n return [];\n }\n return response.data?.definitions || [];\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to load definitions\";\n setError(message);\n return [];\n } finally {\n setLoading(false);\n }\n }, [options]);\n\n const getDefinition = useCallback(\n async (entityName: string): Promise<EntityDefinition | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getEntityDefinitionApi(entityName, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.definition || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get definition\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const queryRecords = useCallback(\n async (entityName: string, query: QueryOptions = {}): Promise<QueryResult> => {\n setLoading(true);\n setError(null);\n try {\n const queryParams: Record<string, unknown> = {\n page: query.page || 1,\n pageSize: query.pageSize || 20,\n };\n if (query.filters) {\n queryParams.filters = JSON.stringify(query.filters);\n }\n if (query.sortBy) {\n queryParams.sortBy = query.sortBy;\n }\n if (query.sortOrder) {\n queryParams.sortOrder = query.sortOrder;\n }\n\n const response = await queryEntityRecordsApi(entityName, queryParams, options);\n if (response.error) {\n setError(response.error);\n return { records: [], total: 0, page: 1, pageSize: 20 };\n }\n\n // Handle both direct records array and nested ListResult structure\n const data = response.data;\n if (data?.records?.items) {\n // ListEntityRecordsResponse with ListResult\n return {\n records: data.records.items,\n total: data.records.totalCount,\n page: data.records.currentPage,\n pageSize: data.records.pageSize,\n };\n }\n // Fallback for simpler response structure\n return {\n records: (data as any)?.records || [],\n total: (data as any)?.total || 0,\n page: (data as any)?.page || 1,\n pageSize: (data as any)?.pageSize || 20,\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to query records\";\n setError(message);\n return { records: [], total: 0, page: 1, pageSize: 20 };\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const getRecord = useCallback(\n async (entityName: string, recordId: string): Promise<EntityRecord | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getEntityRecordApi(entityName, recordId, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.record || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get record\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const createRecord = useCallback(\n async (entityName: string, record: Partial<EntityRecord>): Promise<EntityRecord | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await createEntityRecordApi(entityName, record, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.record || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to create record\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const updateRecord = useCallback(\n async (\n entityName: string,\n recordId: string,\n record: Partial<EntityRecord>\n ): Promise<EntityRecord | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await updateEntityRecordApi(entityName, recordId, record, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.record || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to update record\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const deleteRecord = useCallback(\n async (entityName: string, recordId: string): Promise<boolean> => {\n setLoading(true);\n setError(null);\n try {\n const response = await deleteEntityRecordApi(entityName, recordId, options);\n if (response.error) {\n setError(response.error);\n return false;\n }\n return true;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to delete record\";\n setError(message);\n return false;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n return {\n loading,\n error,\n listDefinitions,\n getDefinition,\n queryRecords,\n getRecord,\n createRecord,\n updateRecord,\n deleteRecord,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/chunk-ESJH4DJM.js","../hooks/use-entities.ts"],"names":[],"mappings":"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","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/entity/dist/chunk-ESJH4DJM.js","sourcesContent":[null,"\"use client\";\n\n/**\n * Entity hooks for React applications\n *\n * Provides React hooks for entity CRUD operations with loading/error states.\n */\n\nimport { useState, useCallback } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { EntityDefinition, EntityRecord } from \"../models\";\nimport {\n listEntityDefinitionsApi,\n getEntityDefinitionApi,\n queryEntityRecordsApi,\n getEntityRecordApi,\n createEntityRecordApi,\n updateEntityRecordApi,\n deleteEntityRecordApi,\n} from \"../api\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport type UseEntitiesOptions = ApiClientOptions;\n\nexport interface QueryOptions {\n page?: number;\n pageSize?: number;\n filters?: Record<string, unknown>;\n sortBy?: string;\n sortOrder?: \"asc\" | \"desc\";\n}\n\nexport interface QueryResult {\n records: EntityRecord[];\n total: number;\n page: number;\n pageSize: number;\n}\n\n// =============================================================================\n// USE ENTITIES HOOK\n// =============================================================================\n\n/**\n * Hook for entity CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, queryRecords, createRecord } = useEntities({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * userId: user?.id,\n * userEmail: user?.email,\n * });\n *\n * const records = await queryRecords(\"contacts\", { page: 1, pageSize: 20 });\n * ```\n */\nexport function useEntities(options: UseEntitiesOptions) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const listDefinitions = useCallback(async (): Promise<EntityDefinition[]> => {\n setLoading(true);\n setError(null);\n try {\n const response = await listEntityDefinitionsApi(options);\n if (response.error) {\n setError(response.error);\n return [];\n }\n return response.data?.definitions || [];\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to load definitions\";\n setError(message);\n return [];\n } finally {\n setLoading(false);\n }\n }, [options]);\n\n const getDefinition = useCallback(\n async (entityName: string): Promise<EntityDefinition | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getEntityDefinitionApi(entityName, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.definition || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get definition\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const queryRecords = useCallback(\n async (entityName: string, query: QueryOptions = {}): Promise<QueryResult> => {\n setLoading(true);\n setError(null);\n try {\n const queryParams: Record<string, unknown> = {\n page: query.page || 1,\n pageSize: query.pageSize || 20,\n };\n if (query.filters) {\n queryParams.filters = JSON.stringify(query.filters);\n }\n if (query.sortBy) {\n queryParams.sortBy = query.sortBy;\n }\n if (query.sortOrder) {\n queryParams.sortOrder = query.sortOrder;\n }\n\n const response = await queryEntityRecordsApi(entityName, queryParams, options);\n if (response.error) {\n setError(response.error);\n return { records: [], total: 0, page: 1, pageSize: 20 };\n }\n\n // Handle both direct records array and nested ListResult structure\n const data = response.data;\n if (data?.records?.items) {\n // ListEntityRecordsResponse with ListResult\n return {\n records: data.records.items,\n total: data.records.totalCount,\n page: data.records.currentPage,\n pageSize: data.records.pageSize,\n };\n }\n // Fallback for simpler response structure\n return {\n records: (data as any)?.records || [],\n total: (data as any)?.total || 0,\n page: (data as any)?.page || 1,\n pageSize: (data as any)?.pageSize || 20,\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to query records\";\n setError(message);\n return { records: [], total: 0, page: 1, pageSize: 20 };\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const getRecord = useCallback(\n async (entityName: string, recordId: string): Promise<EntityRecord | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getEntityRecordApi(entityName, recordId, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.record || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get record\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const createRecord = useCallback(\n async (entityName: string, record: Partial<EntityRecord>): Promise<EntityRecord | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await createEntityRecordApi(entityName, record, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.record || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to create record\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const updateRecord = useCallback(\n async (\n entityName: string,\n recordId: string,\n record: Partial<EntityRecord>\n ): Promise<EntityRecord | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await updateEntityRecordApi(entityName, recordId, record, options);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.record || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to update record\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n const deleteRecord = useCallback(\n async (entityName: string, recordId: string): Promise<boolean> => {\n setLoading(true);\n setError(null);\n try {\n const response = await deleteEntityRecordApi(entityName, recordId, options);\n if (response.error) {\n setError(response.error);\n return false;\n }\n return true;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to delete record\";\n setError(message);\n return false;\n } finally {\n setLoading(false);\n }\n },\n [options]\n );\n\n return {\n loading,\n error,\n listDefinitions,\n getDefinition,\n queryRecords,\n getRecord,\n createRecord,\n updateRecord,\n deleteRecord,\n };\n}\n"]}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
listEntityDefinitionsApi,
|
|
8
8
|
queryEntityRecordsApi,
|
|
9
9
|
updateEntityRecordApi
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SHMUKUYC.mjs";
|
|
11
11
|
|
|
12
12
|
// hooks/use-entities.ts
|
|
13
13
|
import { useState, useCallback } from "react";
|
|
@@ -201,4 +201,4 @@ function useEntities(options) {
|
|
|
201
201
|
export {
|
|
202
202
|
useEntities
|
|
203
203
|
};
|
|
204
|
-
//# sourceMappingURL=chunk-
|
|
204
|
+
//# sourceMappingURL=chunk-OIVRV2UT.mjs.map
|
|
@@ -60,6 +60,13 @@ async function countEntityRecordsApi(entityName, filters, options) {
|
|
|
60
60
|
const endpoint = `/api/v1/entities/${entityName}/records/count${queryString ? `?${queryString}` : ""}`;
|
|
61
61
|
return browserApiRequest(endpoint, { method: "GET", ...options });
|
|
62
62
|
}
|
|
63
|
+
async function provisionEntitiesApi(definitions, options) {
|
|
64
|
+
return browserApiRequest("/api/v1/admin/entities/update", {
|
|
65
|
+
method: "POST",
|
|
66
|
+
body: { definitions },
|
|
67
|
+
...options
|
|
68
|
+
});
|
|
69
|
+
}
|
|
63
70
|
|
|
64
71
|
export {
|
|
65
72
|
listEntityDefinitionsApi,
|
|
@@ -75,6 +82,7 @@ export {
|
|
|
75
82
|
bulkCreateEntityRecordsApi,
|
|
76
83
|
bulkUpdateEntityRecordsApi,
|
|
77
84
|
bulkDeleteEntityRecordsApi,
|
|
78
|
-
countEntityRecordsApi
|
|
85
|
+
countEntityRecordsApi,
|
|
86
|
+
provisionEntitiesApi
|
|
79
87
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-SHMUKUYC.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../api/index.ts"],"sourcesContent":["/**\n * Entity API functions\n *\n * Browser-side API client for entity operations.\n * Uses @elqnt/api-client for HTTP requests with automatic token management.\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n EntityDefinition,\n EntityRecord,\n ListEntityDefinitionsResponse,\n EntityDefinitionResponse,\n ListEntityRecordsResponse,\n EntityRecordResponse,\n} from \"../models\";\n\n// =============================================================================\n// ENTITY DEFINITIONS\n// =============================================================================\n\nexport async function listEntityDefinitionsApi(\n options: ApiClientOptions\n): Promise<ApiResponse<ListEntityDefinitionsResponse>> {\n return browserApiRequest(\"/api/v1/entities/definitions\", { method: \"GET\", ...options });\n}\n\nexport async function getEntityDefinitionApi(\n entityName: string,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"GET\", ...options });\n}\n\nexport async function createEntityDefinitionApi(\n definition: Partial<EntityDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(\"/api/v1/entities/definitions\", { method: \"POST\", body: definition, ...options });\n}\n\nexport async function updateEntityDefinitionApi(\n entityName: string,\n definition: Partial<EntityDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"PUT\", body: definition, ...options });\n}\n\nexport async function deleteEntityDefinitionApi(\n entityName: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// ENTITY RECORDS\n// =============================================================================\n\nexport async function queryEntityRecordsApi(\n entityName: string,\n query: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<ListEntityRecordsResponse>> {\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n });\n const queryString = params.toString();\n const endpoint = `/api/v1/entities/${entityName}/records${queryString ? `?${queryString}` : \"\"}`;\n return browserApiRequest(endpoint, { method: \"GET\", ...options });\n}\n\nexport async function getEntityRecordApi(\n entityName: string,\n recordId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"GET\", ...options });\n}\n\nexport async function createEntityRecordApi(\n entityName: string,\n record: Partial<EntityRecord>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records`, { method: \"POST\", body: record, ...options });\n}\n\nexport async function updateEntityRecordApi(\n entityName: string,\n recordId: string,\n record: Partial<EntityRecord>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"PUT\", body: record, ...options });\n}\n\nexport async function deleteEntityRecordApi(\n entityName: string,\n recordId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// BULK OPERATIONS\n// =============================================================================\n\nexport async function bulkCreateEntityRecordsApi(\n entityName: string,\n records: Partial<EntityRecord>[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ records: EntityRecord[]; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"POST\", body: { records }, ...options });\n}\n\nexport async function bulkUpdateEntityRecordsApi(\n entityName: string,\n records: Partial<EntityRecord>[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ records: EntityRecord[]; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"PUT\", body: { records }, ...options });\n}\n\nexport async function bulkDeleteEntityRecordsApi(\n entityName: string,\n recordIds: string[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"DELETE\", body: { recordIds }, ...options });\n}\n\n// =============================================================================\n// COUNT\n// =============================================================================\n\nexport async function countEntityRecordsApi(\n entityName: string,\n filters: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<{ count: number; metadata: ResponseMetadata }>> {\n const params = new URLSearchParams();\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n });\n const queryString = params.toString();\n const endpoint = `/api/v1/entities/${entityName}/records/count${queryString ? `?${queryString}` : \"\"}`;\n return browserApiRequest(endpoint, { method: \"GET\", ...options });\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../api/index.ts"],"sourcesContent":["/**\n * Entity API functions\n *\n * Browser-side API client for entity operations.\n * Uses @elqnt/api-client for HTTP requests with automatic token management.\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n EntityDefinition,\n EntityRecord,\n ListEntityDefinitionsResponse,\n EntityDefinitionResponse,\n ListEntityRecordsResponse,\n EntityRecordResponse,\n} from \"../models\";\n\n// =============================================================================\n// ENTITY DEFINITIONS\n// =============================================================================\n\nexport async function listEntityDefinitionsApi(\n options: ApiClientOptions\n): Promise<ApiResponse<ListEntityDefinitionsResponse>> {\n return browserApiRequest(\"/api/v1/entities/definitions\", { method: \"GET\", ...options });\n}\n\nexport async function getEntityDefinitionApi(\n entityName: string,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"GET\", ...options });\n}\n\nexport async function createEntityDefinitionApi(\n definition: Partial<EntityDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(\"/api/v1/entities/definitions\", { method: \"POST\", body: definition, ...options });\n}\n\nexport async function updateEntityDefinitionApi(\n entityName: string,\n definition: Partial<EntityDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityDefinitionResponse>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"PUT\", body: definition, ...options });\n}\n\nexport async function deleteEntityDefinitionApi(\n entityName: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/definitions/${entityName}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// ENTITY RECORDS\n// =============================================================================\n\nexport async function queryEntityRecordsApi(\n entityName: string,\n query: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<ListEntityRecordsResponse>> {\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n });\n const queryString = params.toString();\n const endpoint = `/api/v1/entities/${entityName}/records${queryString ? `?${queryString}` : \"\"}`;\n return browserApiRequest(endpoint, { method: \"GET\", ...options });\n}\n\nexport async function getEntityRecordApi(\n entityName: string,\n recordId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"GET\", ...options });\n}\n\nexport async function createEntityRecordApi(\n entityName: string,\n record: Partial<EntityRecord>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records`, { method: \"POST\", body: record, ...options });\n}\n\nexport async function updateEntityRecordApi(\n entityName: string,\n recordId: string,\n record: Partial<EntityRecord>,\n options: ApiClientOptions\n): Promise<ApiResponse<EntityRecordResponse>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"PUT\", body: record, ...options });\n}\n\nexport async function deleteEntityRecordApi(\n entityName: string,\n recordId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/${recordId}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// BULK OPERATIONS\n// =============================================================================\n\nexport async function bulkCreateEntityRecordsApi(\n entityName: string,\n records: Partial<EntityRecord>[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ records: EntityRecord[]; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"POST\", body: { records }, ...options });\n}\n\nexport async function bulkUpdateEntityRecordsApi(\n entityName: string,\n records: Partial<EntityRecord>[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ records: EntityRecord[]; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"PUT\", body: { records }, ...options });\n}\n\nexport async function bulkDeleteEntityRecordsApi(\n entityName: string,\n recordIds: string[],\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/entities/${entityName}/records/bulk`, { method: \"DELETE\", body: { recordIds }, ...options });\n}\n\n// =============================================================================\n// COUNT\n// =============================================================================\n\nexport async function countEntityRecordsApi(\n entityName: string,\n filters: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<{ count: number; metadata: ResponseMetadata }>> {\n const params = new URLSearchParams();\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n });\n const queryString = params.toString();\n const endpoint = `/api/v1/entities/${entityName}/records/count${queryString ? `?${queryString}` : \"\"}`;\n return browserApiRequest(endpoint, { method: \"GET\", ...options });\n}\n\n// =============================================================================\n// PROVISIONING\n// =============================================================================\n\nexport interface ProvisionEntitiesResponse {\n created: number;\n updated: number;\n errors: string[];\n success: boolean;\n metadata: ResponseMetadata;\n}\n\n/**\n * Provision entity definitions for an organization.\n * Creates or updates entity definitions in bulk.\n *\n * @param definitions - Array of EntityDefinition to provision\n * @param options - API client options (baseUrl, orgId)\n */\nexport async function provisionEntitiesApi(\n definitions: EntityDefinition[],\n options: ApiClientOptions\n): Promise<ApiResponse<ProvisionEntitiesResponse>> {\n return browserApiRequest(\"/api/v1/admin/entities/update\", {\n method: \"POST\",\n body: { definitions },\n ...options,\n });\n}\n"],"mappings":"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","names":[]}
|
package/dist/hooks/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('../chunk-
|
|
5
|
+
var _chunkESJH4DJMjs = require('../chunk-ESJH4DJM.js');
|
|
6
|
+
require('../chunk-6SB5QDL5.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.useEntities =
|
|
9
|
+
exports.useEntities = _chunkESJH4DJMjs.useEntities;
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.mjs
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EntityDefinition, EntityView, EntityRecord, EntityQuery, ListResult } from './models/index.mjs';
|
|
2
|
-
export {
|
|
3
|
-
export { bulkCreateEntityRecordsApi, bulkDeleteEntityRecordsApi, bulkUpdateEntityRecordsApi, countEntityRecordsApi, createEntityDefinitionApi, createEntityRecordApi, deleteEntityDefinitionApi, deleteEntityRecordApi, getEntityDefinitionApi, getEntityRecordApi, listEntityDefinitionsApi, queryEntityRecordsApi, updateEntityDefinitionApi, updateEntityRecordApi } from './api/index.mjs';
|
|
2
|
+
export { EntityDefinitionResponse, EntityFilterOperatorTS, EntityRecordResponse, Filter, GetEntityRecordResponse, ListEntityDefinitionsResponse, ListEntityRecordsResponse, ResponseMetadata, Sort, ViewColumn, ViewFilter } from './models/index.mjs';
|
|
4
3
|
export { QueryOptions, QueryResult, UseEntitiesOptions, useEntities } from './hooks/index.mjs';
|
|
4
|
+
export { bulkCreateEntityRecordsApi, bulkDeleteEntityRecordsApi, bulkUpdateEntityRecordsApi, countEntityRecordsApi, createEntityDefinitionApi, createEntityRecordApi, deleteEntityDefinitionApi, deleteEntityRecordApi, getEntityDefinitionApi, getEntityRecordApi, listEntityDefinitionsApi, queryEntityRecordsApi, updateEntityDefinitionApi, updateEntityRecordApi } from './api/index.mjs';
|
|
5
5
|
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
|
|
6
6
|
import '@elqnt/types';
|
|
7
7
|
import '@elqnt/api-client';
|